{"version":3,"file":"static/js/main.081f7407.js","mappings":"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,OAAAA,EAAA,KAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,MAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,KAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,OAAAA,EAAA,MAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,MAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,MAAAA,EAAA,OAAAA,EAAA,MAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,MAAAA,EAAA,KAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,MAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,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","sources":["../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","utils/CustomError.js","api/utils.js","utils/errorHandler.js","api/index.js","../node_modules/@microsoft/applicationinsights-shims/src/Constants.ts","../node_modules/@microsoft/applicationinsights-shims/src/Helpers.ts","../node_modules/@microsoft/applicationinsights-shims/src/TsLibShims.ts","../node_modules/@microsoft/dynamicproto-js/lib/out/lib/src/DynamicProto.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/HelperFuncs.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EnvUtils.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DbgExtensionUtils.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DiagnosticLogger.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/PerfManager.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryPluginChain.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/Constants.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryHelpers.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ChannelController.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CookieMgr.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseCore.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/NotificationManager.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/AppInsightsCore.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/RandomHelper.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CoreUtils.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPointType.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/EventData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MessageData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MetricData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPoint.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataPoint.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Metric.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/HelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewPerfData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/StackFrame.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionDetails.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/StorageHelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/DomHelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/UrlHelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/RemoteDependencyData.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/ApplicationInsights.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ContextTagKeys.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Envelope.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Base.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Data.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Session.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Application.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Device.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Internal.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/User.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Location.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/TelemetryTrace.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/TelemetryContext.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/PropertiesPlugin.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InstrumentHooks.js","../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/TraceParent.js","../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/ConnectionStringParser.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/IConfig.js","../node_modules/@microsoft/applicationinsights-web/dist-esm/Initialization.js","../node_modules/@microsoft/applicationinsights-react-js/dist-esm/ReactPlugin.js","appInsights.js","authConfig.js","components/EllipsisDropdownMenu.jsx","components/Error.jsx","components/GlobalLoading.jsx","components/IeCheck.jsx","components/InputModal.jsx","../node_modules/antd/es/layout/index.js","components/SignOutButton.jsx","components/SignInButton.jsx","features/cme/Components/FormHeader.jsx","constants.js","components/Layout.jsx","components/NumberDisplay.jsx","components/input-types/YesNo.jsx","../node_modules/antd/es/time-picker/index.js","components/input-types/TimePicker.jsx","components/input-types/Checkbox.jsx","components/input-types/TreeSelect.jsx","components/input-types/Label.jsx","components/input-types/FileUploader.jsx","../node_modules/rc-cascader/es/context.js","../node_modules/rc-cascader/es/utils/commonUtil.js","../node_modules/rc-cascader/es/utils/treeUtil.js","../node_modules/rc-cascader/es/hooks/useDisplayValues.js","../node_modules/rc-cascader/es/hooks/useRefFunc.js","../node_modules/rc-cascader/es/hooks/useSearchOptions.js","../node_modules/rc-cascader/es/OptionList/Checkbox.js","../node_modules/rc-cascader/es/OptionList/Column.js","../node_modules/rc-cascader/es/OptionList/useActive.js","../node_modules/rc-cascader/es/OptionList/useKeyboard.js","../node_modules/rc-cascader/es/OptionList/index.js","../node_modules/rc-cascader/es/utils/warningPropsUtil.js","../node_modules/rc-cascader/es/Cascader.js","../node_modules/rc-cascader/es/hooks/useEntities.js","../node_modules/rc-cascader/es/hooks/useSearchConfig.js","../node_modules/rc-cascader/es/hooks/useMissingValues.js","../node_modules/rc-cascader/es/index.js","../node_modules/antd/es/cascader/index.js","components/input-types/Cascader.jsx","../node_modules/antd/es/auto-complete/index.js","components/input-types/AutoComplete.jsx","features/capex/DataComponents.jsx","features/capex/assetRc/AssetRc.jsx","features/capex/npi/RiskMatrix.jsx","features/capex/assetCategory/MajorCategory.jsx","features/capex/assetCategory/MinorCategory.jsx","features/capex/ProjectEndDate.jsx","features/roc/agency/index.jsx","components/Question.jsx","components/QuestionContainer.jsx","components/QuestionList.jsx","components/SectionContainer.jsx","components/Page.jsx","../node_modules/@ant-design/icons-svg/es/asn/CaretLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretRightOutlined.js","components/Paginator.jsx","components/PersonSearch.jsx","components/PersonSearchAd.jsx","components/QnaComponents.jsx","../node_modules/@ant-design/icons-svg/es/asn/SaveOutlined.js","../node_modules/@ant-design/icons/es/icons/SaveOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ArrowLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/ArrowLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ArrowRightOutlined.js","../node_modules/@ant-design/icons/es/icons/ArrowRightOutlined.js","../node_modules/antd/es/breadcrumb/BreadcrumbItem.js","../node_modules/antd/es/breadcrumb/BreadcrumbSeparator.js","../node_modules/antd/es/breadcrumb/Breadcrumb.js","../node_modules/antd/es/breadcrumb/index.js","../node_modules/antd/es/_util/transButton.js","../node_modules/antd/es/page-header/index.js","../node_modules/@ant-design/icons-svg/es/asn/ExpandAltOutlined.js","../node_modules/@ant-design/icons/es/icons/ExpandAltOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ShrinkOutlined.js","../node_modules/@ant-design/icons/es/icons/ShrinkOutlined.js","features/capex/FormHeader.jsx","../node_modules/@ant-design/icons-svg/es/asn/CopyOutlined.js","../node_modules/@ant-design/icons/es/icons/CopyOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EnterOutlined.js","../node_modules/@ant-design/icons/es/icons/EnterOutlined.js","../node_modules/antd/es/typography/Editable.js","../node_modules/antd/es/typography/hooks/useMergedConfig.js","../node_modules/antd/es/typography/hooks/useUpdatedEffect.js","../node_modules/antd/es/typography/Typography.js","../node_modules/antd/es/typography/Base/Ellipsis.js","../node_modules/antd/es/typography/Base/EllipsisTooltip.js","../node_modules/antd/es/typography/Base/index.js","../node_modules/antd/es/typography/Link.js","../node_modules/antd/es/typography/Paragraph.js","../node_modules/antd/es/typography/Text.js","../node_modules/antd/es/typography/Title.js","../node_modules/antd/es/typography/index.js","features/roc/FormHeader.jsx","features/capex/CapexApproval.jsx","features/capex/constants.js","features/capex/keyMembers/index.jsx","features/capex/approvalSummary/index.jsx","features/capex/CapexSummaryRenderer.jsx","components/Renderer.jsx","hooks/qnaHooks.js","components/ResultModal.jsx","../node_modules/@ant-design/icons-svg/es/asn/ExclamationOutlined.js","../node_modules/@ant-design/icons/es/icons/ExclamationOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LockFilled.js","../node_modules/@ant-design/icons/es/icons/LockFilled.js","components/StatusTag.jsx","../node_modules/rc-steps/es/Step.js","../node_modules/rc-steps/es/Steps.js","../node_modules/rc-steps/es/index.js","../node_modules/antd/es/steps/index.js","../node_modules/antd/es/steps/useLegacyItems.js","components/Steps.jsx","components/input-types/DatePicker.jsx","components/input-types/RadioGroup.jsx","components/input-types/Select.jsx","components/input-types/Text.jsx","components/input-types/TextArea.jsx","components/ApproverSearch.jsx","features/capex/role/RoleSelector.jsx","features/approval/TypeSelector.jsx","features/approval/SequenceSelector.jsx","features/approval/Comment.jsx","features/approval/WorkflowHistory.jsx","../node_modules/@ant-design/icons-svg/es/asn/HistoryOutlined.js","../node_modules/@ant-design/icons/es/icons/HistoryOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ReloadOutlined.js","../node_modules/@ant-design/icons/es/icons/ReloadOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SendOutlined.js","../node_modules/@ant-design/icons/es/icons/SendOutlined.js","features/approval/Components.jsx","features/approval/index.jsx","features/capex/admin/adminSlice.js","features/capex/assetCategory/assetCategorySlice.js","features/capex/assetRc/assetRcSlice.js","features/capex/division/divisionSlice.js","features/capex/form-definition/capex.js","features/capex/form-definition/lookups.js","features/capex/form-definition/rcs.js","features/capex/keyMembers/keyMembersSlice.js","features/capex/role/roleSlice.js","features/cme/Components/HelpTooltip.jsx","features/cme/Components/security.jsx","features/cme/admin/adminSlice.js","features/cme/attachment/attachmentsSlice.js","features/cme/balance/balanceSlice.js","features/cme/constants.js","features/cme/cpeForm/cpeFormSlice.js","features/cme/formApproval/formApprovalSlice.js","features/cme/formTeam/formTeamSlice.js","features/cme/leaveLine/index.jsx","features/cme/leaveLine/leaveLineSlice.js","features/cme/myHistory/myHistorySlice.js","features/cme/parentForm/parentFormSlice.js","features/cme/person/personSlice.jsx","features/cme/requestForm/requestFormSlice.js","features/cme/requestLine/requestLineSlice.js","features/roc/ConfidentialityStatement.jsx","features/roc/agency/agenciesSlice.js","components/SignIn.jsx","components/ErrorBoundary.jsx","components/Unauthenticated.jsx","../node_modules/react-idle-timer/src/utils.js","../node_modules/react-idle-timer/src/MessageChannel/methods/broadcastChannel.js","../node_modules/react-idle-timer/src/MessageChannel/ObliviousSet.js","../node_modules/react-idle-timer/src/MessageChannel/methods/localStorage.js","../node_modules/react-idle-timer/src/MessageChannel/methods/simulate.js","../node_modules/react-idle-timer/src/MessageChannel/methodChooser.js","../node_modules/react-idle-timer/src/MessageChannel/MessageChannel.js","../node_modules/react-idle-timer/src/MessageChannel/leaderElection.js","../node_modules/react-idle-timer/src/TabManager.js","../node_modules/react-idle-timer/src/IdleTimer.js","../node_modules/react-idle-timer/src/useIdleTimer.js","components/IdleTimer.jsx","features/cme/admin/LeaveClaim.jsx","features/capex/CapexQna.jsx","components/Router.jsx","components/SignedOut.jsx","App.jsx","serviceWorker.ts","../node_modules/@azure/msal-common/src/authority/ProtocolMode.ts","../node_modules/@azure/msal-browser/src/utils/MathUtils.ts","../node_modules/@azure/msal-browser/src/crypto/GuidGenerator.ts","../node_modules/@azure/msal-browser/src/utils/BrowserStringUtils.ts","../node_modules/@azure/msal-browser/src/encode/Base64Encode.ts","../node_modules/@azure/msal-browser/src/encode/Base64Decode.ts","../node_modules/@azure/msal-browser/src/error/BrowserAuthError.ts","../node_modules/@azure/msal-browser/src/crypto/PkceGenerator.ts","../node_modules/@azure/msal-browser/src/crypto/BrowserCrypto.ts","../node_modules/@azure/msal-browser/src/cache/DatabaseStorage.ts","../node_modules/@azure/msal-browser/src/crypto/CryptoOps.ts","../node_modules/@azure/msal-common/src/crypto/ICrypto.ts","../node_modules/@azure/msal-common/src/error/ClientConfigurationError.ts","../node_modules/@azure/msal-common/src/url/UrlString.ts","../node_modules/@azure/msal-common/src/error/ServerError.ts","../node_modules/@azure/msal-common/src/network/ThrottlingUtils.ts","../node_modules/@azure/msal-common/src/error/InteractionRequiredAuthError.ts","../node_modules/@azure/msal-common/src/authority/OpenIdConfigResponse.ts","../node_modules/@azure/msal-common/src/utils/TimeUtils.ts","../node_modules/@azure/msal-common/src/cache/entities/AuthorityMetadataEntity.ts","../node_modules/@azure/msal-common/src/authority/RegionDiscovery.ts","../node_modules/@azure/msal-common/src/authority/Authority.ts","../node_modules/@azure/msal-common/src/authority/CloudInstanceDiscoveryResponse.ts","../node_modules/@azure/msal-common/src/authority/AuthorityFactory.ts","../node_modules/@azure/msal-common/src/packageMetadata.ts","../node_modules/@azure/msal-common/src/cache/entities/CredentialEntity.ts","../node_modules/@azure/msal-common/src/request/ScopeSet.ts","../node_modules/@azure/msal-common/src/account/AuthToken.ts","../node_modules/@azure/msal-common/src/cache/CacheManager.ts","../node_modules/@azure/msal-common/src/config/ClientConfiguration.ts","../node_modules/@azure/msal-common/src/account/CcsCredential.ts","../node_modules/@azure/msal-common/src/network/NetworkManager.ts","../node_modules/@azure/msal-common/src/crypto/PopTokenGenerator.ts","../node_modules/@azure/msal-common/src/client/BaseClient.ts","../node_modules/@azure/msal-common/src/request/RequestValidator.ts","../node_modules/@azure/msal-common/src/request/RequestParameterBuilder.ts","../node_modules/@azure/msal-common/src/cache/entities/IdTokenEntity.ts","../node_modules/@azure/msal-common/src/cache/entities/AccessTokenEntity.ts","../node_modules/@azure/msal-common/src/cache/entities/RefreshTokenEntity.ts","../node_modules/@azure/msal-common/src/cache/entities/CacheRecord.ts","../node_modules/@azure/msal-common/src/utils/ProtocolUtils.ts","../node_modules/@azure/msal-common/src/cache/entities/AppMetadataEntity.ts","../node_modules/@azure/msal-common/src/cache/persistence/TokenCacheContext.ts","../node_modules/@azure/msal-common/src/response/ResponseHandler.ts","../node_modules/@azure/msal-common/src/client/AuthorizationCodeClient.ts","../node_modules/@azure/msal-common/src/client/RefreshTokenClient.ts","../node_modules/@azure/msal-common/src/client/SilentFlowClient.ts","../node_modules/@azure/msal-common/src/cache/entities/ServerTelemetryEntity.ts","../node_modules/@azure/msal-common/src/telemetry/server/ServerTelemetryManager.ts","../node_modules/@azure/msal-common/src/cache/entities/ThrottlingEntity.ts","../node_modules/@azure/msal-browser/src/cache/BrowserStorage.ts","../node_modules/@azure/msal-browser/src/cache/MemoryStorage.ts","../node_modules/@azure/msal-browser/src/utils/BrowserProtocolUtils.ts","../node_modules/@azure/msal-browser/src/cache/BrowserCacheManager.ts","../node_modules/@azure/msal-common/src/network/INetworkModule.ts","../node_modules/@azure/msal-browser/src/network/FetchClient.ts","../node_modules/@azure/msal-browser/src/network/XhrClient.ts","../node_modules/@azure/msal-browser/src/utils/BrowserUtils.ts","../node_modules/@azure/msal-browser/src/navigation/NavigationClient.ts","../node_modules/@azure/msal-browser/src/config/Configuration.ts","../node_modules/@azure/msal-browser/src/interaction_handler/InteractionHandler.ts","../node_modules/@azure/msal-browser/src/interaction_handler/RedirectHandler.ts","../node_modules/@azure/msal-browser/src/utils/PopupUtils.ts","../node_modules/@azure/msal-browser/src/interaction_handler/PopupHandler.ts","../node_modules/@azure/msal-browser/src/interaction_handler/SilentHandler.ts","../node_modules/@azure/msal-browser/src/packageMetadata.ts","../node_modules/@azure/msal-browser/src/event/EventHandler.ts","../node_modules/@azure/msal-browser/src/app/ClientApplication.ts","../node_modules/@azure/msal-browser/src/app/PublicClientApplication.ts","index.jsx","../node_modules/hot-formula-parser/error.mjs","../node_modules/hot-formula-parser/helper/number.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/add.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/ampersand.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/divide.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/equal.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/formula-function.mjs","../node_modules/hot-formula-parser/supported-formulas.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/greater-than.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/greater-than-or-equal.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/less-than.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/less-than-or-equal.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/minus.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/multiply.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/not-equal.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/operator/power.mjs","../node_modules/hot-formula-parser/evaluate-by-operator/evaluate-by-operator.mjs","../node_modules/hot-formula-parser/grammar-parser/grammar-parser.mjs","../node_modules/hot-formula-parser/helper/string.mjs","../node_modules/hot-formula-parser/helper/cell.mjs","../node_modules/hot-formula-parser/parser.mjs","components/Parser.jsx","reducers/answersSlice.js","reducers/attachmentsSlice.js","reducers/dependenciesSlice.js","reducers/formSlice.js","reducers/formulasSlice.js","reducers/global.js","reducers/error.js","features/cme/leaveManager/leaveManagerSlice.js","features/cme/reducers.js","features/capex/reducers.js","features/roc/reducers.js","reducers/index.js","reducers/lookupsSlice.js","reducers/pagesSlice.js","reducers/questionsSlice.js","reducers/rowsSlice.js","reducers/sectionsSlice.js","reducers/securitySlice.js","reducers/store.js","reducers/treesSlice.js","reducers/workflowHistorySlice.js","reducers/workflowsSlice.js","utils/common.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/@ant-design/icons-svg/lib/asn/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CheckOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/CloseCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CloseOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CopyOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/EditOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/EnterOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/InfoCircleFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/InfoCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons/CheckOutlined.js","../node_modules/@ant-design/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons/CloseOutlined.js","../node_modules/@ant-design/icons/CopyOutlined.js","../node_modules/@ant-design/icons/EditOutlined.js","../node_modules/@ant-design/icons/EnterOutlined.js","../node_modules/@ant-design/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons/InfoCircleFilled.js","../node_modules/@ant-design/icons/InfoCircleOutlined.js","../node_modules/@ant-design/icons/LoadingOutlined.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@ant-design/icons-svg/es/asn/CalendarOutlined.js","../node_modules/@ant-design/icons/es/icons/CalendarOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ClockCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/ClockCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CommentOutlined.js","../node_modules/@ant-design/icons/es/icons/CommentOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DeleteOutlined.js","../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/@ant-design/icons/es/icons/DownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","../node_modules/@ant-design/icons/es/icons/EditOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","../node_modules/@ant-design/icons/es/icons/FileOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/HomeOutlined.js","../node_modules/@ant-design/icons/es/icons/HomeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","../node_modules/@ant-design/icons/es/icons/LeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LockOutlined.js","../node_modules/@ant-design/icons/es/icons/LockOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PaperClipOutlined.js","../node_modules/@ant-design/icons/es/icons/PaperClipOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/QuestionCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/QuestionCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RightCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/RightCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","../node_modules/@ant-design/icons/es/icons/RightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","../node_modules/@ant-design/icons/es/icons/SearchOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UnlockOutlined.js","../node_modules/@ant-design/icons/es/icons/UnlockOutlined.js","../node_modules/@ant-design/icons/lib/components/AntdIcon.js","../node_modules/@ant-design/icons/lib/components/Context.js","../node_modules/@ant-design/icons/lib/components/IconBase.js","../node_modules/@ant-design/icons/lib/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/lib/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons/lib/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/CheckOutlined.js","../node_modules/@ant-design/icons/lib/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons/lib/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/CloseOutlined.js","../node_modules/@ant-design/icons/lib/icons/CopyOutlined.js","../node_modules/@ant-design/icons/lib/icons/EditOutlined.js","../node_modules/@ant-design/icons/lib/icons/EnterOutlined.js","../node_modules/@ant-design/icons/lib/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/lib/icons/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/InfoCircleFilled.js","../node_modules/@ant-design/icons/lib/icons/InfoCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/LoadingOutlined.js","../node_modules/@ant-design/icons/lib/utils.js","../node_modules/@azure/msal-browser/src/error/BrowserConfigurationAuthError.ts","../node_modules/@azure/msal-browser/src/event/EventType.ts","../node_modules/@azure/msal-browser/src/utils/BrowserConstants.ts","../node_modules/@azure/msal-common/src/account/ClientInfo.ts","../node_modules/@azure/msal-common/src/authority/AuthorityType.ts","../node_modules/@azure/msal-common/src/cache/entities/AccountEntity.ts","../node_modules/@azure/msal-common/src/error/AuthError.ts","../node_modules/@azure/msal-common/src/error/ClientAuthError.ts","../node_modules/@azure/msal-common/src/logger/Logger.ts","../node_modules/@azure/msal-common/src/utils/Constants.ts","../node_modules/@azure/msal-common/src/utils/StringUtils.ts","../node_modules/@azure/msal-browser/src/app/IPublicClientApplication.ts","../node_modules/@azure/msal-browser/src/event/EventMessage.ts","../node_modules/@azure/msal-react/src/MsalContext.ts","../node_modules/@azure/msal-react/src/utils/utilities.ts","../node_modules/@azure/msal-react/src/packageMetadata.ts","../node_modules/@azure/msal-react/src/MsalProvider.tsx","../node_modules/@azure/msal-react/src/hooks/useMsal.ts","../node_modules/@azure/msal-react/src/hooks/useAccount.ts","../node_modules/@azure/msal-react/src/hooks/useIsAuthenticated.ts","../node_modules/@azure/msal-react/src/components/AuthenticatedTemplate.tsx","../node_modules/@azure/msal-react/src/components/UnauthenticatedTemplate.tsx","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/@ctrl/tinycolor/dist/module/readability.js","../node_modules/@ctrl/tinycolor/dist/module/to-ms-filter.js","../node_modules/@ctrl/tinycolor/dist/module/from-ratio.js","../node_modules/@ctrl/tinycolor/dist/module/random.js","../node_modules/@ctrl/tinycolor/dist/module/public_api.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@handsontable/formulajs/index.js","../node_modules/@handsontable/formulajs/lib/compatibility.js","../node_modules/@handsontable/formulajs/lib/database.js","../node_modules/@handsontable/formulajs/lib/date-time.js","../node_modules/@handsontable/formulajs/lib/engineering.js","../node_modules/@handsontable/formulajs/lib/financial.js","../node_modules/@handsontable/formulajs/lib/information.js","../node_modules/@handsontable/formulajs/lib/logical.js","../node_modules/@handsontable/formulajs/lib/lookup-reference.js","../node_modules/@handsontable/formulajs/lib/math-trig.js","../node_modules/@handsontable/formulajs/lib/miscellaneous.js","../node_modules/@handsontable/formulajs/lib/statistical.js","../node_modules/@handsontable/formulajs/lib/text.js","../node_modules/@handsontable/formulajs/lib/utils/common.js","../node_modules/@handsontable/formulajs/lib/utils/criteria-eval.js","../node_modules/@handsontable/formulajs/lib/utils/error.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/SeverityLevel.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/entities/state_adapter.ts","../node_modules/@reduxjs/toolkit/src/entities/utils.ts","../node_modules/@reduxjs/toolkit/src/entities/unsorted_state_adapter.ts","../node_modules/@reduxjs/toolkit/src/entities/create_adapter.ts","../node_modules/@reduxjs/toolkit/src/entities/entity_state.ts","../node_modules/@reduxjs/toolkit/src/entities/state_selectors.ts","../node_modules/@reduxjs/toolkit/src/entities/sorted_state_adapter.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/index.ts","../node_modules/abortcontroller-polyfill/dist/umd-polyfill.js","../node_modules/antd/es/_util/ActionButton.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/_util/getDataOrAriaProps.js","../node_modules/antd/es/_util/getRenderPropValue.js","../node_modules/antd/es/_util/hooks/useFlexGapSupport.js","../node_modules/antd/es/_util/hooks/useForceUpdate.js","../node_modules/antd/es/_util/motion.js","../node_modules/antd/es/_util/placements.js","../node_modules/antd/es/_util/reactNode.js","../node_modules/antd/es/_util/responsiveObserve.js","../node_modules/antd/es/_util/statusUtils.js","../node_modules/antd/es/_util/styleChecker.js","../node_modules/antd/es/_util/type.js","../node_modules/antd/es/_util/raf.js","../node_modules/antd/es/_util/wave.js","../node_modules/antd/es/alert/ErrorBoundary.js","../node_modules/antd/es/alert/index.js","../node_modules/antd/es/avatar/SizeContext.js","../node_modules/antd/es/avatar/avatar.js","../node_modules/antd/es/avatar/group.js","../node_modules/antd/es/avatar/index.js","../node_modules/antd/es/badge/utils.js","../node_modules/antd/es/badge/Ribbon.js","../node_modules/antd/es/badge/SingleNumber.js","../node_modules/antd/es/badge/ScrollNumber.js","../node_modules/antd/es/badge/index.js","../node_modules/antd/es/button/button-group.js","../node_modules/antd/es/button/LoadingIcon.js","../node_modules/antd/es/button/button.js","../node_modules/antd/es/button/index.js","../node_modules/antd/es/checkbox/Group.js","../node_modules/antd/es/checkbox/Checkbox.js","../node_modules/antd/es/checkbox/index.js","../node_modules/antd/es/col/index.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/config-provider/context.js","../node_modules/antd/es/config-provider/defaultRenderEmpty.js","../node_modules/antd/es/locale-provider/index.js","../node_modules/antd/es/config-provider/cssVariables.js","../node_modules/antd/es/config-provider/index.js","../node_modules/rc-picker/es/generate/moment.js","../node_modules/@ant-design/icons-svg/es/asn/SwapRightOutlined.js","../node_modules/@ant-design/icons/es/icons/SwapRightOutlined.js","../node_modules/rc-picker/es/PanelContext.js","../node_modules/rc-picker/es/panels/Header.js","../node_modules/rc-picker/es/panels/DecadePanel/DecadeHeader.js","../node_modules/rc-picker/es/utils/timeUtil.js","../node_modules/rc-picker/es/panels/PanelBody.js","../node_modules/rc-picker/es/panels/DecadePanel/DecadeBody.js","../node_modules/rc-picker/es/utils/uiUtil.js","../node_modules/rc-picker/es/panels/DecadePanel/index.js","../node_modules/rc-picker/es/utils/dateUtil.js","../node_modules/rc-picker/es/panels/TimePanel/TimeHeader.js","../node_modules/rc-picker/es/utils/miscUtil.js","../node_modules/rc-picker/es/panels/TimePanel/TimeUnitColumn.js","../node_modules/rc-picker/es/panels/TimePanel/TimeBody.js","../node_modules/rc-picker/es/hooks/useTimeSelection.js","../node_modules/rc-picker/es/panels/TimePanel/index.js","../node_modules/rc-picker/es/RangeContext.js","../node_modules/rc-picker/es/hooks/useCellClassName.js","../node_modules/rc-picker/es/panels/DatePanel/DateBody.js","../node_modules/rc-picker/es/panels/DatePanel/DateHeader.js","../node_modules/rc-picker/es/panels/DatePanel/index.js","../node_modules/rc-picker/es/panels/DatetimePanel/index.js","../node_modules/rc-picker/es/panels/WeekPanel/index.js","../node_modules/rc-picker/es/panels/MonthPanel/MonthHeader.js","../node_modules/rc-picker/es/panels/MonthPanel/MonthBody.js","../node_modules/rc-picker/es/panels/MonthPanel/index.js","../node_modules/rc-picker/es/panels/QuarterPanel/QuarterHeader.js","../node_modules/rc-picker/es/panels/QuarterPanel/QuarterBody.js","../node_modules/rc-picker/es/panels/QuarterPanel/index.js","../node_modules/rc-picker/es/panels/YearPanel/YearHeader.js","../node_modules/rc-picker/es/panels/YearPanel/YearBody.js","../node_modules/rc-picker/es/panels/YearPanel/index.js","../node_modules/rc-picker/es/utils/getExtraFooter.js","../node_modules/rc-picker/es/utils/getRanges.js","../node_modules/rc-picker/es/PickerPanel.js","../node_modules/rc-picker/es/PickerTrigger.js","../node_modules/rc-picker/es/hooks/usePickerInput.js","../node_modules/rc-picker/es/hooks/useTextValueMapping.js","../node_modules/rc-picker/es/hooks/useValueTexts.js","../node_modules/rc-picker/es/hooks/useHoverValue.js","../node_modules/rc-picker/es/Picker.js","../node_modules/rc-picker/es/hooks/useRangeViewDates.js","../node_modules/rc-picker/es/RangePicker.js","../node_modules/rc-picker/es/hooks/useRangeDisabled.js","../node_modules/rc-picker/es/index.js","../node_modules/antd/es/date-picker/util.js","../node_modules/antd/es/date-picker/generatePicker/generateRangePicker.js","../node_modules/antd/es/date-picker/generatePicker/generateSinglePicker.js","../node_modules/antd/es/date-picker/generatePicker/index.js","../node_modules/antd/es/date-picker/PickerButton.js","../node_modules/antd/es/date-picker/PickerTag.js","../node_modules/antd/es/date-picker/index.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/descriptions/Item.js","../node_modules/antd/es/descriptions/Cell.js","../node_modules/antd/es/descriptions/Row.js","../node_modules/antd/es/descriptions/index.js","../node_modules/rc-drawer/es/context.js","../node_modules/rc-drawer/es/DrawerPanel.js","../node_modules/rc-drawer/es/util.js","../node_modules/rc-drawer/es/DrawerPopup.js","../node_modules/rc-drawer/es/Drawer.js","../node_modules/rc-drawer/es/index.js","../node_modules/antd/es/drawer/index.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/antd/es/dropdown/dropdown-button.js","../node_modules/antd/es/dropdown/dropdown.js","../node_modules/antd/es/dropdown/index.js","../node_modules/antd/es/empty/empty.js","../node_modules/antd/es/empty/simple.js","../node_modules/antd/es/empty/index.js","../node_modules/antd/es/form/context.js","../node_modules/antd/es/form/hooks/useDebounce.js","../node_modules/antd/es/form/ErrorList.js","../node_modules/compute-scroll-into-view/src/index.ts","../node_modules/scroll-into-view-if-needed/es/index.js","../node_modules/antd/es/form/util.js","../node_modules/antd/es/form/hooks/useForm.js","../node_modules/antd/es/form/Form.js","../node_modules/antd/es/form/hooks/useFormItemStatus.js","../node_modules/antd/es/form/FormItemLabel.js","../node_modules/antd/es/form/FormItemInput.js","../node_modules/antd/es/form/FormItem/ItemHolder.js","../node_modules/antd/es/form/FormItem/index.js","../node_modules/antd/es/form/hooks/useFrameState.js","../node_modules/antd/es/form/hooks/useItemRef.js","../node_modules/antd/es/form/FormList.js","../node_modules/antd/es/form/index.js","../node_modules/antd/es/form/hooks/useFormInstance.js","../node_modules/antd/es/form/validateMessagesContext.js","../node_modules/antd/es/grid/RowContext.js","../node_modules/antd/es/grid/col.js","../node_modules/antd/es/grid/hooks/useBreakpoint.js","../node_modules/antd/es/grid/index.js","../node_modules/antd/es/grid/row.js","../node_modules/@ant-design/icons-svg/es/asn/UpOutlined.js","../node_modules/@ant-design/icons/es/icons/UpOutlined.js","../node_modules/rc-input-number/es/utils/supportUtil.js","../node_modules/rc-input-number/es/utils/numberUtil.js","../node_modules/rc-input-number/es/utils/MiniDecimal.js","../node_modules/rc-input-number/es/StepHandler.js","../node_modules/rc-input-number/es/InputNumber.js","../node_modules/rc-input-number/es/hooks/useCursor.js","../node_modules/rc-input-number/es/hooks/useFrame.js","../node_modules/rc-input-number/es/index.js","../node_modules/antd/es/input-number/index.js","../node_modules/antd/es/input/Input.js","../node_modules/antd/es/input/utils.js","../node_modules/antd/es/input/ClearableLabeledInput.js","../node_modules/antd/es/input/TextArea.js","../node_modules/antd/es/input/hooks/useRemovePasswordTimeout.js","../node_modules/antd/es/input/Group.js","../node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeInvisibleOutlined.js","../node_modules/antd/es/input/Password.js","../node_modules/antd/es/input/Search.js","../node_modules/antd/es/input/index.js","../node_modules/@ant-design/icons-svg/es/asn/BarsOutlined.js","../node_modules/@ant-design/icons/es/icons/BarsOutlined.js","../node_modules/antd/es/_util/isNumeric.js","../node_modules/antd/es/layout/Sider.js","../node_modules/antd/es/layout/layout.js","../node_modules/antd/es/locale-provider/default.js","../node_modules/antd/es/locale-provider/LocaleReceiver.js","../node_modules/antd/es/locale-provider/context.js","../node_modules/antd/es/calendar/locale/en_US.js","../node_modules/antd/es/locale/default.js","../node_modules/antd/es/menu/OverrideContext.js","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/index.js","../node_modules/antd/es/menu/MenuDivider.js","../node_modules/antd/es/menu/MenuContext.js","../node_modules/antd/es/menu/MenuItem.js","../node_modules/antd/es/menu/SubMenu.js","../node_modules/antd/es/menu/hooks/useItems.js","../node_modules/antd/es/menu/index.js","../node_modules/antd/es/message/index.js","../node_modules/antd/es/message/hooks/useMessage.js","../node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-dialog/es/Dialog/Mask.js","../node_modules/rc-dialog/es/util.js","../node_modules/rc-dialog/es/Dialog/Content/MemoChildren.js","../node_modules/rc-dialog/es/Dialog/Content/Panel.js","../node_modules/rc-dialog/es/Dialog/Content/index.js","../node_modules/rc-dialog/es/Dialog/index.js","../node_modules/rc-dialog/es/DialogWrap.js","../node_modules/antd/es/modal/Modal.js","../node_modules/rc-dialog/es/index.js","../node_modules/antd/es/modal/ConfirmDialog.js","../node_modules/antd/es/modal/destroyFns.js","../node_modules/antd/es/modal/confirm.js","../node_modules/antd/es/modal/useModal/HookModal.js","../node_modules/antd/es/modal/useModal/index.js","../node_modules/antd/es/_util/hooks/usePatchElement.js","../node_modules/antd/es/modal/index.js","../node_modules/antd/es/modal/locale.js","../node_modules/antd/es/notification/index.js","../node_modules/antd/es/notification/hooks/useNotification.js","../node_modules/antd/es/popconfirm/PurePanel.js","../node_modules/antd/es/popconfirm/index.js","../node_modules/antd/es/popover/index.js","../node_modules/rc-progress/es/common.js","../node_modules/rc-progress/es/Line.js","../node_modules/rc-progress/es/hooks/useId.js","../node_modules/rc-progress/es/Circle.js","../node_modules/antd/es/progress/utils.js","../node_modules/antd/es/progress/Circle.js","../node_modules/antd/es/progress/Line.js","../node_modules/antd/es/progress/Steps.js","../node_modules/antd/es/progress/progress.js","../node_modules/antd/es/progress/index.js","../node_modules/antd/es/radio/context.js","../node_modules/antd/es/radio/radio.js","../node_modules/antd/es/radio/group.js","../node_modules/antd/es/radio/radioButton.js","../node_modules/antd/es/radio/index.js","../node_modules/@ant-design/icons-svg/es/asn/WarningFilled.js","../node_modules/@ant-design/icons/es/icons/WarningFilled.js","../node_modules/antd/es/result/noFound.js","../node_modules/antd/es/result/serverError.js","../node_modules/antd/es/result/unauthorized.js","../node_modules/antd/es/result/index.js","../node_modules/antd/es/row/index.js","../node_modules/antd/es/select/index.js","../node_modules/antd/es/select/utils/iconUtil.js","../node_modules/antd/es/space/Compact.js","../node_modules/antd/es/space/Item.js","../node_modules/antd/es/space/index.js","../node_modules/antd/es/spin/index.js","../node_modules/antd/es/tag/CheckableTag.js","../node_modules/antd/es/tag/index.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/tooltip/index.js","../node_modules/rc-tree-select/es/LegacyContext.js","../node_modules/rc-tree-select/es/TreeSelectContext.js","../node_modules/rc-tree-select/es/utils/valueUtil.js","../node_modules/rc-tree-select/es/OptionList.js","../node_modules/rc-tree-select/es/TreeNode.js","../node_modules/rc-tree-select/es/utils/strategyUtil.js","../node_modules/rc-tree-select/es/utils/legacyUtil.js","../node_modules/rc-tree-select/es/hooks/useTreeData.js","../node_modules/rc-tree-select/es/hooks/useRefFunc.js","../node_modules/rc-tree-select/es/utils/warningPropsUtil.js","../node_modules/rc-tree-select/es/TreeSelect.js","../node_modules/rc-tree-select/es/hooks/useDataEntities.js","../node_modules/rc-tree-select/es/hooks/useFilterTreeData.js","../node_modules/rc-tree-select/es/hooks/useCheckedKeys.js","../node_modules/rc-tree-select/es/hooks/useCache.js","../node_modules/rc-tree-select/es/index.js","../node_modules/antd/es/tree-select/index.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","../node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","../node_modules/@ant-design/icons-svg/es/asn/MinusSquareOutlined.js","../node_modules/@ant-design/icons/es/icons/MinusSquareOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusSquareOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusSquareOutlined.js","../node_modules/antd/es/tree/utils/iconUtil.js","../node_modules/rc-upload/es/request.js","../node_modules/rc-upload/es/uid.js","../node_modules/rc-upload/es/attr-accept.js","../node_modules/rc-upload/es/traverseFileTree.js","../node_modules/rc-upload/es/AjaxUploader.js","../node_modules/rc-upload/es/Upload.js","../node_modules/rc-upload/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/FileTwoTone.js","../node_modules/@ant-design/icons/es/icons/FileTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/PictureTwoTone.js","../node_modules/@ant-design/icons/es/icons/PictureTwoTone.js","../node_modules/antd/es/upload/utils.js","../node_modules/@ant-design/icons-svg/es/asn/DownloadOutlined.js","../node_modules/@ant-design/icons/es/icons/DownloadOutlined.js","../node_modules/antd/es/upload/UploadList/ListItem.js","../node_modules/antd/es/upload/UploadList/index.js","../node_modules/antd/es/upload/Upload.js","../node_modules/antd/es/upload/Dragger.js","../node_modules/antd/es/upload/index.js","../node_modules/antd/lib/_util/colors.js","../node_modules/antd/lib/_util/motion.js","../node_modules/antd/lib/_util/placements.js","../node_modules/antd/lib/_util/reactNode.js","../node_modules/antd/lib/_util/statusUtils.js","../node_modules/antd/lib/_util/styleChecker.js","../node_modules/antd/lib/_util/transButton.js","../node_modules/antd/lib/_util/type.js","../node_modules/antd/lib/_util/warning.js","../node_modules/antd/lib/calendar/locale/en_US.js","../node_modules/antd/lib/checkbox/Checkbox.js","../node_modules/antd/lib/checkbox/Group.js","../node_modules/antd/lib/config-provider/DisabledContext.js","../node_modules/antd/lib/config-provider/SizeContext.js","../node_modules/antd/lib/config-provider/context.js","../node_modules/antd/lib/config-provider/cssVariables.js","../node_modules/antd/lib/config-provider/index.js","../node_modules/antd/lib/date-picker/locale/en_US.js","../node_modules/antd/lib/form/context.js","../node_modules/antd/lib/form/validateMessagesContext.js","../node_modules/antd/lib/input/ClearableLabeledInput.js","../node_modules/antd/lib/input/Input.js","../node_modules/antd/lib/input/TextArea.js","../node_modules/antd/lib/input/hooks/useRemovePasswordTimeout.js","../node_modules/antd/lib/input/utils.js","../node_modules/antd/lib/locale-provider/LocaleReceiver.js","../node_modules/antd/lib/locale-provider/context.js","../node_modules/antd/lib/locale-provider/default.js","../node_modules/antd/lib/locale-provider/index.js","../node_modules/antd/lib/locale/default.js","../node_modules/antd/lib/message/hooks/useMessage.js","../node_modules/antd/lib/message/index.js","../node_modules/antd/lib/modal/locale.js","../node_modules/antd/lib/notification/hooks/useNotification.js","../node_modules/antd/lib/notification/index.js","../node_modules/antd/lib/space/Compact.js","../node_modules/antd/lib/time-picker/locale/en_US.js","../node_modules/antd/lib/tooltip/index.js","../node_modules/antd/lib/typography/Base/Ellipsis.js","../node_modules/antd/lib/typography/Base/EllipsisTooltip.js","../node_modules/antd/lib/typography/Base/index.js","../node_modules/antd/lib/typography/Editable.js","../node_modules/antd/lib/typography/Text.js","../node_modules/antd/lib/typography/Typography.js","../node_modules/antd/lib/typography/hooks/useMergedConfig.js","../node_modules/antd/lib/typography/hooks/useUpdatedEffect.js","../node_modules/asap/browser-raw.js","../node_modules/bessel/bessel.js","../node_modules/bowser/es5.js","../node_modules/classnames/index.js","../node_modules/copy-to-clipboard/index.js","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/utc.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/history/esm/history.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/isarray/index.js","../node_modules/jstat/dist/jstat.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_root.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/camelCase.js","../node_modules/lodash/capitalize.js","../node_modules/lodash/debounce.js","../node_modules/lodash/deburr.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/lodash.js","../node_modules/lodash/now.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toString.js","../node_modules/lodash/upperFirst.js","../node_modules/lodash/words.js","../node_modules/moment/moment.js","../node_modules/object-assign/index.js","../node_modules/path-to-regexp/index.js","../node_modules/promise/lib/core.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/rc-checkbox/es/index.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/src/util.ts","../node_modules/src/rule/required.ts","../node_modules/src/rule/url.ts","../node_modules/src/rule/type.ts","../node_modules/src/rule/enum.ts","../node_modules/src/rule/index.ts","../node_modules/src/rule/whitespace.ts","../node_modules/src/rule/range.ts","../node_modules/src/rule/pattern.ts","../node_modules/src/validator/type.ts","../node_modules/src/validator/index.ts","../node_modules/src/validator/string.ts","../node_modules/src/validator/method.ts","../node_modules/src/validator/number.ts","../node_modules/src/validator/boolean.ts","../node_modules/src/validator/regexp.ts","../node_modules/src/validator/integer.ts","../node_modules/src/validator/float.ts","../node_modules/src/validator/array.ts","../node_modules/src/validator/object.ts","../node_modules/src/validator/enum.ts","../node_modules/src/validator/pattern.ts","../node_modules/src/validator/date.ts","../node_modules/src/validator/required.ts","../node_modules/src/validator/any.ts","../node_modules/src/messages.ts","../node_modules/src/index.ts","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/rc-input/es/utils/commonUtils.js","../node_modules/rc-input/es/BaseInput.js","../node_modules/rc-input/es/Input.js","../node_modules/rc-input/es/index.js","../node_modules/rc-motion/es/context.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/rc-notification/es/Notice.js","../node_modules/rc-notification/es/Notification.js","../node_modules/rc-notification/es/index.js","../node_modules/rc-notification/es/useNotification.js","../node_modules/rc-notification/lib/Notice.js","../node_modules/rc-notification/lib/useNotification.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-overflow/es/hooks/useEffectState.js","../node_modules/rc-overflow/es/hooks/channelUpdate.js","../node_modules/rc-overflow/es/context.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/rc-pagination/lib/locale/en_US.js","../node_modules/rc-picker/lib/locale/en_US.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-select/es/hooks/useId.js","../node_modules/rc-select/es/hooks/useBaseProps.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-select/es/TransBtn.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/utils/keyUtil.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/rc-select/es/BaseSelect.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/rc-select/es/hooks/useFilterOptions.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/hooks/useRefFunc.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-select/es/SelectContext.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/utils/platformUtil.js","../node_modules/rc-select/es/utils/warningPropsUtil.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/hooks/useOptions.js","../node_modules/rc-select/es/hooks/useCache.js","../node_modules/rc-select/es/index.js","../node_modules/rc-textarea/es/calculateNodeHeight.js","../node_modules/rc-textarea/es/ResizableTextArea.js","../node_modules/rc-textarea/es/index.js","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/lib/placements.js","../node_modules/rc-tree/es/Indent.js","../node_modules/rc-tree/es/TreeNode.js","../node_modules/rc-tree/es/contextTypes.js","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/rc-tree/es/MotionTreeNode.js","../node_modules/rc-tree/es/useUnmount.js","../node_modules/rc-tree/es/utils/diffUtil.js","../node_modules/rc-tree/es/NodeList.js","../node_modules/rc-tree/es/Tree.js","../node_modules/rc-tree/es/DropIndicator.js","../node_modules/rc-tree/es/index.js","../node_modules/rc-tree/es/util.js","../node_modules/rc-tree/es/utils/conductUtil.js","../node_modules/rc-tree/es/utils/keyUtil.js","../node_modules/rc-tree/es/utils/treeUtil.js","../node_modules/rc-util/es/Portal.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup/Mask.js","../node_modules/src/propertyUtils.js","../node_modules/src/utils.js","../node_modules/src/getOffsetParent.js","../node_modules/src/isAncestorFixed.js","../node_modules/src/getVisibleRectForElement.js","../node_modules/src/getRegion.js","../node_modules/src/getAlignOffset.js","../node_modules/src/getElFuturePos.js","../node_modules/src/align/align.js","../node_modules/src/adjustForViewport.js","../node_modules/src/align/alignElement.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/src/align/alignPoint.js","../node_modules/rc-align/es/index.js","../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../node_modules/rc-trigger/es/Popup/PopupInner.js","../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../node_modules/rc-trigger/es/Popup/index.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/rc-util/es/Dom/styleChecker.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-util/es/React/render.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/isEqual.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-util/es/omit.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/lib/Children/toArray.js","../node_modules/rc-util/lib/Dom/canUseDom.js","../node_modules/rc-util/lib/Dom/contains.js","../node_modules/rc-util/lib/Dom/dynamicCSS.js","../node_modules/rc-util/lib/Dom/styleChecker.js","../node_modules/rc-util/lib/KeyCode.js","../node_modules/rc-util/lib/hooks/useEvent.js","../node_modules/rc-util/lib/hooks/useLayoutEffect.js","../node_modules/rc-util/lib/hooks/useMemo.js","../node_modules/rc-util/lib/hooks/useMergedState.js","../node_modules/rc-util/lib/hooks/useState.js","../node_modules/rc-util/lib/omit.js","../node_modules/rc-util/lib/ref.js","../node_modules/rc-util/lib/utils/get.js","../node_modules/rc-util/lib/utils/set.js","../node_modules/rc-util/lib/warning.js","../node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/rc-util/node_modules/react-is/index.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/es/ScrollBar.js","../node_modules/rc-virtual-list/es/Item.js","../node_modules/rc-virtual-list/es/utils/CacheMap.js","../node_modules/rc-virtual-list/es/hooks/useScrollTo.js","../node_modules/rc-virtual-list/es/hooks/useDiffItem.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/utils/isFirefox.js","../node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","../node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","../node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","../node_modules/rc-virtual-list/es/utils/scrollbarUtil.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/hooks/useHeights.js","../node_modules/rc-virtual-list/es/hooks/useGetSize.js","../node_modules/rc-virtual-list/es/hooks/useChildren.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/react-app-polyfill/ie11.js","../node_modules/react-app-polyfill/stable.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/index.js","../node_modules/react-redux/es/components/connect.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/modules/createNameContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/redux/es/redux.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/reselect/es/defaultMemoize.js","../node_modules/reselect/es/index.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/tiny-emitter/index.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/toggle-selection/index.js","../node_modules/ua-parser-js/src/ua-parser.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/whatwg-fetch/fetch.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/toArray.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/a-constructor.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/internals/add-to-unscopables.js","../node_modules/core-js/internals/advance-string-index.js","../node_modules/core-js/internals/an-instance.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/array-buffer-basic-detection.js","../node_modules/core-js/internals/array-buffer-non-extensible.js","../node_modules/core-js/internals/array-buffer-view-core.js","../node_modules/core-js/internals/array-buffer.js","../node_modules/core-js/internals/array-copy-within.js","../node_modules/core-js/internals/array-fill.js","../node_modules/core-js/internals/array-for-each.js","../node_modules/core-js/internals/array-from-constructor-and-list.js","../node_modules/core-js/internals/array-from.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/array-iteration.js","../node_modules/core-js/internals/array-last-index-of.js","../node_modules/core-js/internals/array-method-has-species-support.js","../node_modules/core-js/internals/array-method-is-strict.js","../node_modules/core-js/internals/array-reduce.js","../node_modules/core-js/internals/array-set-length.js","../node_modules/core-js/internals/array-slice-simple.js","../node_modules/core-js/internals/array-slice.js","../node_modules/core-js/internals/array-sort.js","../node_modules/core-js/internals/array-species-constructor.js","../node_modules/core-js/internals/array-species-create.js","../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/collection-strong.js","../node_modules/core-js/internals/collection-weak.js","../node_modules/core-js/internals/collection.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/correct-is-regexp-logic.js","../node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/core-js/internals/create-html.js","../node_modules/core-js/internals/create-iter-result-object.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/create-property.js","../node_modules/core-js/internals/date-to-primitive.js","../node_modules/core-js/internals/define-built-in-accessor.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/core-js/internals/define-built-ins.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/delete-property-or-throw.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/document-all.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../node_modules/core-js/internals/dom-iterables.js","../node_modules/core-js/internals/dom-token-list-prototype.js","../node_modules/core-js/internals/engine-ff-version.js","../node_modules/core-js/internals/engine-is-browser.js","../node_modules/core-js/internals/engine-is-bun.js","../node_modules/core-js/internals/engine-is-deno.js","../node_modules/core-js/internals/engine-is-ie-or-edge.js","../node_modules/core-js/internals/engine-is-ios-pebble.js","../node_modules/core-js/internals/engine-is-ios.js","../node_modules/core-js/internals/engine-is-node.js","../node_modules/core-js/internals/engine-is-webos-webkit.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/engine-webkit-version.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../node_modules/core-js/internals/flatten-into-array.js","../node_modules/core-js/internals/freezing.js","../node_modules/core-js/internals/function-apply.js","../node_modules/core-js/internals/function-bind-context.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/function-bind.js","../node_modules/core-js/internals/function-call.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/function-uncurry-this-accessor.js","../node_modules/core-js/internals/function-uncurry-this-clause.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/get-iterator-method.js","../node_modules/core-js/internals/get-iterator.js","../node_modules/core-js/internals/get-json-replacer-function.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/get-substitution.js","../node_modules/core-js/internals/global.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/host-report-errors.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/ieee754.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/inherit-if-required.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/internal-metadata.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/is-array-iterator-method.js","../node_modules/core-js/internals/is-array.js","../node_modules/core-js/internals/is-big-int-array.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/is-constructor.js","../node_modules/core-js/internals/is-data-descriptor.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/is-integral-number.js","../node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/is-pure.js","../node_modules/core-js/internals/is-regexp.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/iterate.js","../node_modules/core-js/internals/iterator-close.js","../node_modules/core-js/internals/iterator-create-constructor.js","../node_modules/core-js/internals/iterator-define.js","../node_modules/core-js/internals/iterators-core.js","../node_modules/core-js/internals/iterators.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/math-expm1.js","../node_modules/core-js/internals/math-float-round.js","../node_modules/core-js/internals/math-fround.js","../node_modules/core-js/internals/math-log10.js","../node_modules/core-js/internals/math-log1p.js","../node_modules/core-js/internals/math-sign.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/microtask.js","../node_modules/core-js/internals/new-promise-capability.js","../node_modules/core-js/internals/not-a-regexp.js","../node_modules/core-js/internals/number-is-finite.js","../node_modules/core-js/internals/number-parse-float.js","../node_modules/core-js/internals/number-parse-int.js","../node_modules/core-js/internals/object-assign.js","../node_modules/core-js/internals/object-create.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/object-get-own-property-names-external.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/core-js/internals/object-is-extensible.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/object-prototype-accessors-forced.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/object-to-array.js","../node_modules/core-js/internals/object-to-string.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/path.js","../node_modules/core-js/internals/perform.js","../node_modules/core-js/internals/promise-constructor-detection.js","../node_modules/core-js/internals/promise-native-constructor.js","../node_modules/core-js/internals/promise-resolve.js","../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../node_modules/core-js/internals/proxy-accessor.js","../node_modules/core-js/internals/queue.js","../node_modules/core-js/internals/regexp-exec-abstract.js","../node_modules/core-js/internals/regexp-exec.js","../node_modules/core-js/internals/regexp-flags.js","../node_modules/core-js/internals/regexp-get-flags.js","../node_modules/core-js/internals/regexp-sticky-helpers.js","../node_modules/core-js/internals/regexp-unsupported-dot-all.js","../node_modules/core-js/internals/regexp-unsupported-ncg.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/same-value.js","../node_modules/core-js/internals/schedulers-fix.js","../node_modules/core-js/internals/set-species.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/species-constructor.js","../node_modules/core-js/internals/string-html-forced.js","../node_modules/core-js/internals/string-multibyte.js","../node_modules/core-js/internals/string-pad-webkit-bug.js","../node_modules/core-js/internals/string-pad.js","../node_modules/core-js/internals/string-punycode-to-ascii.js","../node_modules/core-js/internals/string-repeat.js","../node_modules/core-js/internals/string-trim-end.js","../node_modules/core-js/internals/string-trim-forced.js","../node_modules/core-js/internals/string-trim-start.js","../node_modules/core-js/internals/string-trim.js","../node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/core-js/internals/symbol-define-to-primitive.js","../node_modules/core-js/internals/symbol-registry-detection.js","../node_modules/core-js/internals/task.js","../node_modules/core-js/internals/this-number-value.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/to-big-int.js","../node_modules/core-js/internals/to-index.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/to-offset.js","../node_modules/core-js/internals/to-positive-integer.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/internals/to-string.js","../node_modules/core-js/internals/to-uint8-clamped.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/typed-array-constructor.js","../node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","../node_modules/core-js/internals/typed-array-from-species-and-list.js","../node_modules/core-js/internals/typed-array-from.js","../node_modules/core-js/internals/typed-array-species-constructor.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/url-constructor-detection.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/validate-arguments-length.js","../node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/core-js/internals/well-known-symbol-define.js","../node_modules/core-js/internals/well-known-symbol-wrapped.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/whitespaces.js","../node_modules/core-js/modules/es.array-buffer.constructor.js","../node_modules/core-js/modules/es.array-buffer.slice.js","../node_modules/core-js/modules/es.array.concat.js","../node_modules/core-js/modules/es.array.copy-within.js","../node_modules/core-js/modules/es.array.fill.js","../node_modules/core-js/modules/es.array.filter.js","../node_modules/core-js/modules/es.array.find-index.js","../node_modules/core-js/modules/es.array.find.js","../node_modules/core-js/modules/es.array.flat-map.js","../node_modules/core-js/modules/es.array.flat.js","../node_modules/core-js/modules/es.array.from.js","../node_modules/core-js/modules/es.array.includes.js","../node_modules/core-js/modules/es.array.iterator.js","../node_modules/core-js/modules/es.array.join.js","../node_modules/core-js/modules/es.array.map.js","../node_modules/core-js/modules/es.array.of.js","../node_modules/core-js/modules/es.array.reduce-right.js","../node_modules/core-js/modules/es.array.reduce.js","../node_modules/core-js/modules/es.array.reverse.js","../node_modules/core-js/modules/es.array.slice.js","../node_modules/core-js/modules/es.array.sort.js","../node_modules/core-js/modules/es.array.species.js","../node_modules/core-js/modules/es.array.splice.js","../node_modules/core-js/modules/es.array.unscopables.flat-map.js","../node_modules/core-js/modules/es.array.unscopables.flat.js","../node_modules/core-js/modules/es.date.to-json.js","../node_modules/core-js/modules/es.date.to-primitive.js","../node_modules/core-js/modules/es.function.has-instance.js","../node_modules/core-js/modules/es.function.name.js","../node_modules/core-js/modules/es.json.stringify.js","../node_modules/core-js/modules/es.json.to-string-tag.js","../node_modules/core-js/modules/es.map.constructor.js","../node_modules/core-js/modules/es.map.js","../node_modules/core-js/modules/es.math.acosh.js","../node_modules/core-js/modules/es.math.asinh.js","../node_modules/core-js/modules/es.math.atanh.js","../node_modules/core-js/modules/es.math.cbrt.js","../node_modules/core-js/modules/es.math.clz32.js","../node_modules/core-js/modules/es.math.cosh.js","../node_modules/core-js/modules/es.math.expm1.js","../node_modules/core-js/modules/es.math.fround.js","../node_modules/core-js/modules/es.math.hypot.js","../node_modules/core-js/modules/es.math.imul.js","../node_modules/core-js/modules/es.math.log10.js","../node_modules/core-js/modules/es.math.log1p.js","../node_modules/core-js/modules/es.math.log2.js","../node_modules/core-js/modules/es.math.sign.js","../node_modules/core-js/modules/es.math.sinh.js","../node_modules/core-js/modules/es.math.tanh.js","../node_modules/core-js/modules/es.math.to-string-tag.js","../node_modules/core-js/modules/es.math.trunc.js","../node_modules/core-js/modules/es.number.constructor.js","../node_modules/core-js/modules/es.number.epsilon.js","../node_modules/core-js/modules/es.number.is-finite.js","../node_modules/core-js/modules/es.number.is-integer.js","../node_modules/core-js/modules/es.number.is-nan.js","../node_modules/core-js/modules/es.number.is-safe-integer.js","../node_modules/core-js/modules/es.number.max-safe-integer.js","../node_modules/core-js/modules/es.number.min-safe-integer.js","../node_modules/core-js/modules/es.number.parse-float.js","../node_modules/core-js/modules/es.number.parse-int.js","../node_modules/core-js/modules/es.number.to-fixed.js","../node_modules/core-js/modules/es.object.assign.js","../node_modules/core-js/modules/es.object.define-getter.js","../node_modules/core-js/modules/es.object.define-setter.js","../node_modules/core-js/modules/es.object.entries.js","../node_modules/core-js/modules/es.object.freeze.js","../node_modules/core-js/modules/es.object.from-entries.js","../node_modules/core-js/modules/es.object.get-own-property-descriptor.js","../node_modules/core-js/modules/es.object.get-own-property-descriptors.js","../node_modules/core-js/modules/es.object.get-own-property-names.js","../node_modules/core-js/modules/es.object.get-own-property-symbols.js","../node_modules/core-js/modules/es.object.get-prototype-of.js","../node_modules/core-js/modules/es.object.is-extensible.js","../node_modules/core-js/modules/es.object.is-frozen.js","../node_modules/core-js/modules/es.object.is-sealed.js","../node_modules/core-js/modules/es.object.is.js","../node_modules/core-js/modules/es.object.keys.js","../node_modules/core-js/modules/es.object.lookup-getter.js","../node_modules/core-js/modules/es.object.lookup-setter.js","../node_modules/core-js/modules/es.object.prevent-extensions.js","../node_modules/core-js/modules/es.object.seal.js","../node_modules/core-js/modules/es.object.to-string.js","../node_modules/core-js/modules/es.object.values.js","../node_modules/core-js/modules/es.promise.all.js","../node_modules/core-js/modules/es.promise.catch.js","../node_modules/core-js/modules/es.promise.constructor.js","../node_modules/core-js/modules/es.promise.finally.js","../node_modules/core-js/modules/es.promise.js","../node_modules/core-js/modules/es.promise.race.js","../node_modules/core-js/modules/es.promise.reject.js","../node_modules/core-js/modules/es.promise.resolve.js","../node_modules/core-js/modules/es.reflect.apply.js","../node_modules/core-js/modules/es.reflect.construct.js","../node_modules/core-js/modules/es.reflect.define-property.js","../node_modules/core-js/modules/es.reflect.delete-property.js","../node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","../node_modules/core-js/modules/es.reflect.get-prototype-of.js","../node_modules/core-js/modules/es.reflect.get.js","../node_modules/core-js/modules/es.reflect.has.js","../node_modules/core-js/modules/es.reflect.is-extensible.js","../node_modules/core-js/modules/es.reflect.own-keys.js","../node_modules/core-js/modules/es.reflect.prevent-extensions.js","../node_modules/core-js/modules/es.reflect.set-prototype-of.js","../node_modules/core-js/modules/es.reflect.set.js","../node_modules/core-js/modules/es.regexp.constructor.js","../node_modules/core-js/modules/es.regexp.exec.js","../node_modules/core-js/modules/es.regexp.flags.js","../node_modules/core-js/modules/es.regexp.to-string.js","../node_modules/core-js/modules/es.set.constructor.js","../node_modules/core-js/modules/es.set.js","../node_modules/core-js/modules/es.string.anchor.js","../node_modules/core-js/modules/es.string.big.js","../node_modules/core-js/modules/es.string.blink.js","../node_modules/core-js/modules/es.string.bold.js","../node_modules/core-js/modules/es.string.code-point-at.js","../node_modules/core-js/modules/es.string.ends-with.js","../node_modules/core-js/modules/es.string.fixed.js","../node_modules/core-js/modules/es.string.fontcolor.js","../node_modules/core-js/modules/es.string.fontsize.js","../node_modules/core-js/modules/es.string.from-code-point.js","../node_modules/core-js/modules/es.string.includes.js","../node_modules/core-js/modules/es.string.italics.js","../node_modules/core-js/modules/es.string.iterator.js","../node_modules/core-js/modules/es.string.link.js","../node_modules/core-js/modules/es.string.match.js","../node_modules/core-js/modules/es.string.pad-end.js","../node_modules/core-js/modules/es.string.pad-start.js","../node_modules/core-js/modules/es.string.raw.js","../node_modules/core-js/modules/es.string.repeat.js","../node_modules/core-js/modules/es.string.replace.js","../node_modules/core-js/modules/es.string.search.js","../node_modules/core-js/modules/es.string.small.js","../node_modules/core-js/modules/es.string.split.js","../node_modules/core-js/modules/es.string.starts-with.js","../node_modules/core-js/modules/es.string.strike.js","../node_modules/core-js/modules/es.string.sub.js","../node_modules/core-js/modules/es.string.sup.js","../node_modules/core-js/modules/es.string.trim-end.js","../node_modules/core-js/modules/es.string.trim-left.js","../node_modules/core-js/modules/es.string.trim-right.js","../node_modules/core-js/modules/es.string.trim-start.js","../node_modules/core-js/modules/es.string.trim.js","../node_modules/core-js/modules/es.symbol.async-iterator.js","../node_modules/core-js/modules/es.symbol.constructor.js","../node_modules/core-js/modules/es.symbol.description.js","../node_modules/core-js/modules/es.symbol.for.js","../node_modules/core-js/modules/es.symbol.has-instance.js","../node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","../node_modules/core-js/modules/es.symbol.iterator.js","../node_modules/core-js/modules/es.symbol.js","../node_modules/core-js/modules/es.symbol.key-for.js","../node_modules/core-js/modules/es.symbol.match.js","../node_modules/core-js/modules/es.symbol.replace.js","../node_modules/core-js/modules/es.symbol.search.js","../node_modules/core-js/modules/es.symbol.species.js","../node_modules/core-js/modules/es.symbol.split.js","../node_modules/core-js/modules/es.symbol.to-primitive.js","../node_modules/core-js/modules/es.symbol.to-string-tag.js","../node_modules/core-js/modules/es.symbol.unscopables.js","../node_modules/core-js/modules/es.typed-array.copy-within.js","../node_modules/core-js/modules/es.typed-array.every.js","../node_modules/core-js/modules/es.typed-array.fill.js","../node_modules/core-js/modules/es.typed-array.filter.js","../node_modules/core-js/modules/es.typed-array.find-index.js","../node_modules/core-js/modules/es.typed-array.find.js","../node_modules/core-js/modules/es.typed-array.float32-array.js","../node_modules/core-js/modules/es.typed-array.float64-array.js","../node_modules/core-js/modules/es.typed-array.for-each.js","../node_modules/core-js/modules/es.typed-array.from.js","../node_modules/core-js/modules/es.typed-array.includes.js","../node_modules/core-js/modules/es.typed-array.index-of.js","../node_modules/core-js/modules/es.typed-array.int16-array.js","../node_modules/core-js/modules/es.typed-array.int32-array.js","../node_modules/core-js/modules/es.typed-array.int8-array.js","../node_modules/core-js/modules/es.typed-array.iterator.js","../node_modules/core-js/modules/es.typed-array.join.js","../node_modules/core-js/modules/es.typed-array.last-index-of.js","../node_modules/core-js/modules/es.typed-array.map.js","../node_modules/core-js/modules/es.typed-array.of.js","../node_modules/core-js/modules/es.typed-array.reduce-right.js","../node_modules/core-js/modules/es.typed-array.reduce.js","../node_modules/core-js/modules/es.typed-array.reverse.js","../node_modules/core-js/modules/es.typed-array.set.js","../node_modules/core-js/modules/es.typed-array.slice.js","../node_modules/core-js/modules/es.typed-array.some.js","../node_modules/core-js/modules/es.typed-array.sort.js","../node_modules/core-js/modules/es.typed-array.subarray.js","../node_modules/core-js/modules/es.typed-array.to-locale-string.js","../node_modules/core-js/modules/es.typed-array.to-string.js","../node_modules/core-js/modules/es.typed-array.uint16-array.js","../node_modules/core-js/modules/es.typed-array.uint32-array.js","../node_modules/core-js/modules/es.typed-array.uint8-array.js","../node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","../node_modules/core-js/modules/es.weak-map.constructor.js","../node_modules/core-js/modules/es.weak-map.js","../node_modules/core-js/modules/es.weak-set.constructor.js","../node_modules/core-js/modules/es.weak-set.js","../node_modules/core-js/modules/esnext.symbol.dispose.js","../node_modules/core-js/modules/esnext.symbol.observable.js","../node_modules/core-js/modules/esnext.symbol.pattern-match.js","../node_modules/core-js/modules/web.clear-immediate.js","../node_modules/core-js/modules/web.dom-collections.for-each.js","../node_modules/core-js/modules/web.dom-collections.iterator.js","../node_modules/core-js/modules/web.immediate.js","../node_modules/core-js/modules/web.queue-microtask.js","../node_modules/core-js/modules/web.set-immediate.js","../node_modules/core-js/modules/web.url-search-params.constructor.js","../node_modules/core-js/modules/web.url-search-params.js","../node_modules/core-js/modules/web.url.constructor.js","../node_modules/core-js/modules/web.url.js","../node_modules/core-js/modules/web.url.to-json.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../webpack/startup"],"sourcesContent":["import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","export class CustomError extends Error {\r\n\tconstructor(name, statusCode, description, isPopup = false) {\r\n\t\tsuper(description);\r\n\r\n\t\tObject.setPrototypeOf(this, new.target.prototype);\r\n\t\tthis.name = name;\r\n\t\tthis.statusCode = statusCode;\r\n\t\tthis.isPopup = isPopup;\r\n\t\t//handle IE11\r\n\t\tif (Error.captureStackTrace) Error.captureStackTrace(this);\r\n\t}\r\n}\r\n","//define get(), post() any standard error handling logic, api headers etc in here\r\nimport { CustomError } from \"../utils/CustomError\";\r\nimport { msalInstance } from \"../index\";\r\nimport { SeverityLevel } from \"@microsoft/applicationinsights-web\";\r\nimport { appInsights } from \"../appInsights\";\r\n\r\nconst getApiHeaders = async () => {\r\n\tconst headers = new Headers();\r\n\r\n\tif (process.env.REACT_APP_ENVIRONMENT === \"AZURE\") {\r\n\t\tconst bearer = await getMsalToken();\r\n\t\theaders.append(\"Authorization\", \"Bearer \" + bearer);\r\n\t}\r\n\theaders.append(\"Content-Type\", \"application/json\");\r\n\theaders.append(\"Access-Control-Request-Headers\", \"*\");\r\n\theaders.append(\"Access-Control-Request-Method\", \"*\");\r\n\theaders.append(\"pragma\", \"no-cache\");\r\n\theaders.append(\"cache-control\", \"no-cache\");\r\n\r\n\treturn headers;\r\n};\r\n\r\nconst getApiHeadersLookup = async () => {\r\n\tconst headers = new Headers();\r\n\theaders.append(\"Content-Type\", \"application/json\");\r\n\theaders.append(\"Access-Control-Request-Headers\", \"*\");\r\n\theaders.append(\"Access-Control-Request-Method\", \"*\");\r\n\theaders.append(\"cache-control\", \"max-age=3600\");\r\n\r\n\treturn headers;\r\n};\r\n\r\nexport const getMsalToken = async () => {\r\n\tlet token = \"\";\r\n\r\n\tif (process.env.REACT_APP_ENVIRONMENT === \"AZURE\") {\r\n\t\t//instance and account can pass from compoent then easier\r\n\t\tconst accounts = msalInstance.getAllAccounts();\r\n\r\n\t\tconst request = {\r\n\t\t\tscopes: [process.env.REACT_APP_SCOPES], //[\"User.Read\"],\r\n\t\t\taccount: accounts[0],\r\n\t\t};\r\n\r\n\t\t// Silently acquires an access token which is then attached to a request for web api\r\n\t\tawait msalInstance\r\n\t\t\t.acquireTokenSilent(request)\r\n\t\t\t.then((response) => {\r\n\t\t\t\ttoken = response.accessToken;\r\n\t\t\t})\r\n\t\t\t.catch((e) => {\r\n\t\t\t\tmsalInstance.acquireTokenRedirect(request).then((response) => {\r\n\t\t\t\t\ttoken = response.accessToken;\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n\treturn token;\r\n};\r\n\r\nconst fetchWithErrorHanlding = async (apiUrl, options, timeout) => {\r\n\ttry {\r\n\t\ttimeout = timeout * 1000; //change to miliseconds\r\n\r\n\t\tconst controller = new AbortController();\r\n\t\tconst id = setTimeout(() => {\r\n\t\t\tcontroller.abort();\r\n\t\t}, timeout);\r\n\r\n\t\tconst response = await fetch(apiUrl, {\r\n\t\t\t...options,\r\n\t\t\tsignal: controller.signal,\r\n\t\t});\r\n\r\n\t\tclearTimeout(id);\r\n\r\n\t\tconst { ok, status } = response;\r\n\t\tif (!ok) {\r\n\t\t\tconst errorMessage = await response.json();\r\n\t\t\tthrow new CustomError(\r\n\t\t\t\terrorMessage.error,\r\n\t\t\t\tresponse.status,\r\n\t\t\t\terrorMessage.message\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tif (status !== 204) return await response.json();\r\n\t\t\telse return null;\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tif (error.name === \"AbortError\") {\r\n\t\t\tthrow new CustomError(\"AbortError\");\r\n\t\t} else if (error instanceof CustomError) throw error;\r\n\t\telse throw new CustomError(error.message);\r\n\t}\r\n};\r\n\r\nexport const get = async (\r\n\tapiUrl,\r\n\tisAuth = true,\r\n\tcustomHeaders = null,\r\n\ttimeout = 20\r\n) => {\r\n\ttry {\r\n\t\tvar headers = isAuth\r\n\t\t\t? await getApiHeaders()\r\n\t\t\t: await getApiHeadersLookup();\r\n\r\n\t\tcustomHeaders &&\r\n\t\t\tcustomHeaders.forEach((h) => {\r\n\t\t\t\theaders.append(h.key, h.value);\r\n\t\t\t});\r\n\r\n\t\tconst options = {\r\n\t\t\tmethod: \"GET\",\r\n\t\t\tcredentials: \"include\",\r\n\t\t\theaders: headers,\r\n\t\t};\r\n\r\n\t\tif (\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== undefined &&\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY &&\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== \"\"\r\n\t\t) {\r\n\t\t\tappInsights.trackTrace({\r\n\t\t\t\tmessage: apiUrl,\r\n\t\t\t\tseverityLevel: SeverityLevel.Information,\r\n\t\t\t\tproperties: { apiUrl },\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn await fetchWithErrorHanlding(apiUrl, options, timeout);\r\n\t} catch (error) {\r\n\t\tif (\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== undefined &&\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY &&\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== \"\"\r\n\t\t) {\r\n\t\t\tappInsights.trackException({\r\n\t\t\t\tmessage: \"Get Exception\",\r\n\t\t\t\terror: error,\r\n\t\t\t\texception: error,\r\n\t\t\t\tseverityLevel: SeverityLevel.Error,\r\n\t\t\t\tproperties: { ...error },\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (error instanceof CustomError) throw error;\r\n\t\telse throw new CustomError(error.message);\r\n\t}\r\n};\r\n\r\nexport const post = async (apiUrl, data, timeout = 20) => {\r\n\ttry {\r\n\t\tconst options = {\r\n\t\t\tmethod: \"POST\",\r\n\t\t\tcredentials: \"include\",\r\n\t\t\theaders: await getApiHeaders(),\r\n\t\t\tbody: JSON.stringify(data),\r\n\t\t};\r\n\t\tif (\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== undefined &&\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY &&\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== \"\"\r\n\t\t) {\r\n\t\t\tappInsights.trackTrace({\r\n\t\t\t\tmessage: apiUrl,\r\n\t\t\t\tseverityLevel: SeverityLevel.Information,\r\n\t\t\t\tproperties: { data },\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn await fetchWithErrorHanlding(apiUrl, options, timeout);\r\n\t} catch (error) {\r\n\t\tif (\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== undefined &&\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY &&\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== \"\"\r\n\t\t) {\r\n\t\t\tappInsights.trackException({\r\n\t\t\t\tmessage: \"Post Exception\",\r\n\t\t\t\terror: error,\r\n\t\t\t\texception: error,\r\n\t\t\t\tseverityLevel: SeverityLevel.Error,\r\n\t\t\t\tproperties: { error, data },\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (error instanceof CustomError) throw error;\r\n\t\telse throw new CustomError(error.message);\r\n\t}\r\n};\r\n","import { CustomError } from \"./CustomError\";\r\nexport const throwCustomError = (error, customError400Obj) => {\r\n\tif (error?.statusCode === 401 || error?.statusCode === 403) {\r\n\t\tvar customObj =\r\n\t\t\terror?.statusCode === 401\r\n\t\t\t\t? UNAUTHORISED_ERROR_MESSAGE\r\n\t\t\t\t: TOKEN_ERROR_MESSAGE;\r\n\t\tthrow new CustomError(\r\n\t\t\tcustomObj.name,\r\n\t\t\terror.statusCode,\r\n\t\t\tcustomObj.message,\r\n\t\t\tfalse\r\n\t\t);\r\n\t} else if (\r\n\t\terror.name?.indexOf(\"Failed to fetch\") >= 0 ||\r\n\t\terror.statusCode === 500\r\n\t) {\r\n\t\tthrow new CustomError(\r\n\t\t\tTOKEN_ERROR_MESSAGE.name,\r\n\t\t\terror?.statusCode ? error.statusCode : 500,\r\n\t\t\tTOKEN_ERROR_MESSAGE.message,\r\n\t\t\tfalse\r\n\t\t);\r\n\t} else if (error.name === \"AbortError\") {\r\n\t\tthrow new CustomError(\r\n\t\t\tTIMEOUT_ERROR_MESSAGE.name,\r\n\t\t\terror?.statusCode ? error.statusCode : 500,\r\n\t\t\tTIMEOUT_ERROR_MESSAGE.message,\r\n\t\t\tfalse\r\n\t\t);\r\n\t} else {\r\n\t\tif (!customError400Obj) throw error;\r\n\t\tthrow new CustomError(\r\n\t\t\tcustomError400Obj.name,\r\n\t\t\terror.statusCode,\r\n\t\t\tcustomError400Obj.message,\r\n\t\t\ttrue\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const TOKEN_ERROR_MESSAGE = {\r\n\tname: \"Unauthorised Access\",\r\n\tmessage:\r\n\t\t\"We couldn't sign you in with the credentials provided. Are you sure you are signing in with the correct email address?\",\r\n};\r\n\r\nexport const UNAUTHORISED_ERROR_MESSAGE = {\r\n\tname: \"Unauthorised\",\r\n\tmessage: \"Unauthrorised action for this user\",\r\n};\r\n\r\nexport const TIMEOUT_ERROR_MESSAGE = {\r\n\tname: \"Timeout\",\r\n\tmessage: \"Your request has timed out. Please try again\",\r\n};\r\n\r\nexport const UNSPECIFIED_ERROR_MESSAGE = {\r\n\tname: \"Unspecified network error\",\r\n\tmessage: \"Please try again. If the error persists, please contact support\",\r\n};\r\n\r\nexport const FORMS_ERROR_MESSAGE = {\r\n\tname: \"Error\",\r\n\tmessage: \"Unspecified application error\",\r\n};\r\n\r\nexport const FORM_BY_ID_ERROR_MESSAGE = {\r\n\tname: \"Error while loading form\",\r\n\tmessage:\r\n\t\t\"The data you requested could not be loaded. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const FORMDEFINITION_BY_ID_ERROR_MESSAGE = {\r\n\tname: \"Error while loading form\",\r\n\tmessage:\r\n\t\t\"The data you requested could not be loaded. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const ATTACHMENT_BY_ID_ERROR_MESSAGE = {\r\n\tname: \"Error while downloading attachment\",\r\n\tmessage: `There was an error downloading this attachment`,\r\n};\r\n\r\nexport const UPLOAD_DOCUMENTS_ERROR_MESSAGE = {\r\n\tname: \"Error while loading attachments\",\r\n\tmessage: \"There was an error loading attachments\",\r\n};\r\n\r\nexport const WORKFLOWS_BY_FORMID_ERROR_MESSAGE = {\r\n\tname: \"Error while loading workflows\",\r\n\tmessage:\r\n\t\t\"The workflows you requested could not be loaded. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const POST_FORMDEFINITION_ERROR_MESSAGE = {\r\n\tname: \"Error while saving form definition\",\r\n\tmessage:\r\n\t\t\"Your form definition has NOT been saved. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const POST_RESPONSEFORM_ERROR_MESSAGE = {\r\n\tname: \"Error while saving form\",\r\n\tmessage:\r\n\t\t\"Your form has NOT been saved. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const UPLOAD_DOCUMENT_ERROR_MESSAGE = {\r\n\tname: \"Error while uploading attachment\",\r\n\tmessage:\r\n\t\t\"Your upload file has NOT been saved. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const USER_DEFINE_TEMPLATE_ERROR_MESSAGE = {\r\n\tname: \"Error while creating workflows\",\r\n\tmessage:\r\n\t\t\"Could not create your workflows from the template. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const POST_WORKFLOW_ERROR_MESSAGE = {\r\n\tname: \"Error while saving workflows\",\r\n\tmessage:\r\n\t\t\"Could not save your workflows. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const SUBMIT_WORKFLOW_ERROR_MESSGE = {\r\n\tname: \"Error while submitting workflows\",\r\n\tmessage:\r\n\t\t\"Could not submit your workflows. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const RESET_WORKFLOW_ERROR_MESSGE = {\r\n\tname: \"Error while updating workflows\",\r\n\tmessage:\r\n\t\t\"Could not update your workflows. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const RESUME_WORKFLOW_ERROR_MESSAGE = {\r\n\tname: \"Error while updating workflows\",\r\n\tmessage:\r\n\t\t\"Could not update your workflows. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const APPROVE_WORKFLOW_ERROR_MESSAGE = {\r\n\tname: \"Error while updating workflows\",\r\n\tmessage:\r\n\t\t\"Could not update your workflows. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const DECLINE_WORKFLOW_ERROR_MESSAGE = {\r\n\tname: \"Error while updating workflows\",\r\n\tmessage:\r\n\t\t\"Could not update your workflows. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const UPSERT_WORKFLOW_ERROR_MESSAGE = {\r\n\tname: \"Error while updating workflows\",\r\n\tmessage:\r\n\t\t\"Could not update your workflows. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const TREE_BY_DOMAIN_ERROR_MESSAGE = {\r\n\tname: \"Error\",\r\n\tmessage: \"Unspecified application error\",\r\n};\r\n\r\nexport const GENERIC_ERROR_MESSAGE = {\r\n\tname: \"Error while loading data\",\r\n\tmessage:\r\n\t\t\"The data you requested could not be loaded. Please try again. If problems persist, please contact support.\",\r\n};\r\n\r\nexport const GENERIC_POST_ERROR_MESSAGE = {\r\n\tname: \"Error while submitting your request\",\r\n\tmessage:\r\n\t\t\"Your request could not be processed. Please try again. If problems persist, please contact support.\",\r\n};\r\n","//define each api like getSomething() here\r\nimport { get, post } from \"./utils\";\r\nimport * as customError from \"../utils/errorHandler\";\r\n\r\nexport const getToken = async () => {\r\n\ttry {\r\n\t\treturn await get(`${process.env.REACT_APP_API_URL}/Token`);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.TOKEN_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getUserPermissionByAppId = async (data) => {\r\n\ttry {\r\n\t\tconst { appId, userId } = data;\r\n\r\n\t\treturn await get(\r\n\t\t\t`${\r\n\t\t\t\tprocess.env.REACT_APP_API_URL\r\n\t\t\t}/User/GetUserPermissionByAppId/${appId}/${userId ? userId : \"\"}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const searchByName = async (data) => {\r\n\ttry {\r\n\t\tconst { name, appHierarchyId } = data;\r\n\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/User/SearchByName/${name}/${\r\n\t\t\t\tappHierarchyId ? appHierarchyId : \"null\"\r\n\t\t\t}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const searchByNameAd = async (data) => {\r\n\ttry {\r\n\t\tconst { name } = data;\r\n\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/User/GetAdUsersByName/${name}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getOrAddCapexUserByEmail = async (data) => {\r\n\ttry {\r\n\t\tconst { email } = data;\r\n\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/User/GetOrAddCapexUserByEmail/${email}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const searchByPersonId = async (data) => {\r\n\ttry {\r\n\t\tconst { personId } = data;\r\n\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/User/SearchByPersonId/${personId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\n//deepsearch -1, get ancestors\r\nexport const getUsersByOrgHierarchy = async (data) => {\r\n\ttry {\r\n\t\tconst {\r\n\t\t\torganisationHierarchyId,\r\n\t\t\tdomain,\r\n\t\t\tdeepSearch,\r\n\t\t\tincludeNewUser,\r\n\t\t\tappId,\r\n\t\t} = data;\r\n\r\n\t\treturn await get(\r\n\t\t\t`${\r\n\t\t\t\tprocess.env.REACT_APP_API_URL\r\n\t\t\t}/User/GetUsersByOrgHierarchy/${domain}/${\r\n\t\t\t\torganisationHierarchyId\r\n\t\t\t\t\t? organisationHierarchyId\r\n\t\t\t\t\t: \"00000000-0000-0000-0000-000000000000\"\r\n\t\t\t}/${deepSearch ? deepSearch : false}/${\r\n\t\t\t\tincludeNewUser ? includeNewUser : false\r\n\t\t\t}/${appId ? appId : \"00000000-0000-0000-0000-000000000000\"}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const postUser = async (data) => {\r\n\ttry {\r\n\t\treturn await post(`${process.env.REACT_APP_API_URL}/User`, data);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const postUserApp = async (data) => {\r\n\ttry {\r\n\t\treturn await post(`${process.env.REACT_APP_API_URL}/UserApp`, data);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const postUserRole = async (data) => {\r\n\ttry {\r\n\t\treturn await post(`${process.env.REACT_APP_API_URL}/UserRole`, data);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getUserRolesByUserIdAndAppId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/UserRole/GetByUserIdAndAppId/${\r\n\t\t\t\tdata.userId\r\n\t\t\t}/${data.appId ? data.appId : \"\"}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.FORMS_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getAppRolesByAppId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/AppRole/GetByAppId/${\r\n\t\t\t\tdata.appId ? data.appId : \"\"\r\n\t\t\t}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.FORMS_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getForms = async (appId, filter) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/ResponseForm/GetForms?appId=${appId}&filter=${filter}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.FORMS_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getFormById = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/ResponseForm/${data.formId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.FORM_BY_ID_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getFormDefinitionById = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/FormDefinition/${data.formDefinitionId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.FORMDEFINITION_BY_ID_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getAttachmentById = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/UploadDocument/GetUploadDocument/${data.attachmentId}`,\r\n\t\t\t[{ key: \"respnseType\", value: \"arraybuffer\" }]\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.ATTACHMENT_BY_ID_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getUploadDocuments = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/UploadDocument/GetUploadDocuments/${data.formId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.UPLOAD_DOCUMENTS_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getWorkflowsByFormId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/${data.responseFormId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.WORKFLOWS_BY_FORMID_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getWorkflowHistoryByFormId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/WorkflowHistory/${data.responseFormId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.WORKFLOWS_BY_FORMID_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const postWorkflowHistory = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/WorkflowHistory`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const postFormDefinition = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/FormDefinition`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.POST_FORMDEFINITION_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const postResponseForm = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/ResponseForm`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.POST_RESPONSEFORM_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const uploadDocument = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/UploadDocument/UploadDocument`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.UPLOAD_DOCUMENT_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const uploadRoC = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/UploadDocument/UploadRoC`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.UPLOAD_DOCUMENT_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const deleteUploadDocument = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/UploadDocument/Delete`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const submitWorkflow = async (data, comment = \"\") => {\r\n\ttry {\r\n\t\treturn await post(`${process.env.REACT_APP_API_URL}/Workflow`, {\r\n\t\t\tworkflowDtos: data,\r\n\t\t\taction: \"Submit\",\r\n\t\t\tcomment: comment,\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.SUBMIT_WORKFLOW_ERROR_MESSGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getWorkflowApprovers = async (data) => {\r\n\ttry {\r\n\t\tconst { roleId, organisationId, domain } = data;\r\n\t\treturn await get(\r\n\t\t\t`${\r\n\t\t\t\tprocess.env.REACT_APP_API_URL\r\n\t\t\t}/Workflow/GetApprovers?domain=${domain}${\r\n\t\t\t\torganisationId ? \"&organisationId=\" + organisationId : \"\"\r\n\t\t\t}${roleId ? \"&roleId=\" + roleId : \"\"}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const resumeWorkflow = async (data, comment = \"\") => {\r\n\ttry {\r\n\t\treturn await post(`${process.env.REACT_APP_API_URL}/Workflow`, {\r\n\t\t\tworkflowDtos: data,\r\n\t\t\taction: \"Resume\",\r\n\t\t\tcomment: comment,\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.RESUME_WORKFLOW_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const delegateWorkflow = async (data, delegateUserId, comment = \"\") => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/WorkflowAction`,\r\n\t\t\t{\r\n\t\t\t\tworkflowDto: data,\r\n\t\t\t\taction: \"Delegate\",\r\n\t\t\t\tdelegatedUserId: delegateUserId,\r\n\t\t\t\tcomment: comment,\r\n\t\t\t}\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.UPSERT_WORKFLOW_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const queryWorkflow = async (data, delegateUserId, comment = \"\") => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/WorkflowAction`,\r\n\t\t\t{\r\n\t\t\t\tworkflowDto: data,\r\n\t\t\t\taction: \"Query\",\r\n\t\t\t\tdelegatedUserId: delegateUserId,\r\n\t\t\t\tcomment: comment,\r\n\t\t\t}\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.UPSERT_WORKFLOW_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const approveWorkflow = async (data, comment = \"\") => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/WorkflowAction`,\r\n\t\t\t{\r\n\t\t\t\tworkflowDto: data,\r\n\t\t\t\taction: \"Approve\",\r\n\t\t\t\tcomment: comment,\r\n\t\t\t}\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.APPROVE_WORKFLOW_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const respondWorkflow = async (data, comment = \"\") => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/WorkflowAction`,\r\n\t\t\t{\r\n\t\t\t\tworkflowDto: data,\r\n\t\t\t\taction: \"Respond\",\r\n\t\t\t\tcomment: comment,\r\n\t\t\t}\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.APPROVE_WORKFLOW_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const declineWorkflow = async (data, comment = \"\") => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/WorkflowAction`,\r\n\t\t\t{\r\n\t\t\t\tworkflowDto: data,\r\n\t\t\t\taction: \"Decline\",\r\n\t\t\t\tcomment: comment,\r\n\t\t\t}\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.DECLINE_WORKFLOW_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const addWorkflow = async (data, comment = \"\") => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/WorkflowAction`,\r\n\t\t\t{\r\n\t\t\t\tworkflowDto: data,\r\n\t\t\t\taction: \"Add\",\r\n\t\t\t\tcomment: comment,\r\n\t\t\t}\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.UPSERT_WORKFLOW_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const editWorkflow = async (data, comment = \"\") => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/WorkflowAction`,\r\n\t\t\t{\r\n\t\t\t\tworkflowDto: data,\r\n\t\t\t\taction: \"Change\",\r\n\t\t\t\tcomment: comment,\r\n\t\t\t}\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.UPSERT_WORKFLOW_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const deleteWorkflow = async (data, comment = \"\") => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/WorkflowAction`,\r\n\t\t\t{\r\n\t\t\t\tworkflowDto: data,\r\n\t\t\t\taction: \"Delete\",\r\n\t\t\t\tcomment: comment,\r\n\t\t\t}\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.UPSERT_WORKFLOW_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const resendPayrollEmail = async (data, comment = \"\") => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/WorkflowAction`,\r\n\t\t\t{\r\n\t\t\t\tworkflowDto: data,\r\n\t\t\t\taction: \"ResendPayrollEmail\",\r\n\t\t\t\tcomment: comment,\r\n\t\t\t}\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.UPSERT_WORKFLOW_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const deleteWorkflowsByResponseFormId = async ({ responseFormId }) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/DeleteWorkflows/${responseFormId}`,\r\n\t\t\tnull\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.UPSERT_WORKFLOW_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getWorkflowsByTemplate = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/PopulateWorkflows`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getTreeById = async (data) => {\r\n\ttry {\r\n\t\tconst { id } = data;\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Hierarchy/GetById?id=${id}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.TREE_BY_DOMAIN_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getTreeByDomain = async (data) => {\r\n\ttry {\r\n\t\tconst { domain, parentId, allowAllSelect, hideChildren } = data;\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Hierarchy?domain=${domain}${\r\n\t\t\t\tparentId ? \"&parentId=\" + parentId : \"\"\r\n\t\t\t}${allowAllSelect ? \"&allowAllSelect=true\" : \"\"}\r\n\t\t\t${hideChildren ? \"&hideChildren=true\" : \"\"}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.TREE_BY_DOMAIN_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getChildrenByDomain = async (data) => {\r\n\ttry {\r\n\t\tconst { domain } = data;\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Hierarchy/GetChildrenByDomain/${domain}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getHierarchies = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Hierarchy/GetHierarchies`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const postHierarchy = async (data) => {\r\n\ttry {\r\n\t\treturn await post(`${process.env.REACT_APP_API_URL}/Hierarchy`, data);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getDelegateUserById = async (data) => {\r\n\ttry {\r\n\t\tconst { id } = data;\r\n\t\treturn await get(`${process.env.REACT_APP_API_URL}/DelegateUser/${id}`);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getDelegateUserByUserId = async (data) => {\r\n\ttry {\r\n\t\tconst { userId } = data;\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/DelegateUser/GetByUserId/${userId}?onlyActive=false`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getDelegateUserByForUserId = async (data) => {\r\n\ttry {\r\n\t\tconst { forUserId } = data;\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/DelegateUser/GetByForUserId/${forUserId}?onlyActive=false`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const postDelegateUser = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/DelegateUser`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\n//CME apis\r\nexport const getCMEFormById = async (data) => {\r\n\ttry {\r\n\t\tconst { id } = data;\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/GetByFormGuid/${id}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.FORM_BY_ID_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getCPEFormById = async (data) => {\r\n\ttry {\r\n\t\tconst { id, formId } = data;\r\n\t\tif (id) {\r\n\t\t\treturn await get(\r\n\t\t\t\t`${process.env.REACT_APP_API_URL}/CME/CPEForm/${id}`\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\treturn await get(\r\n\t\t\t\t`${process.env.REACT_APP_API_URL}/CME/CPEForm/byFormId/${formId}`\r\n\t\t\t);\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.FORM_BY_ID_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const postCPEForm = async (data) => {\r\n\ttry {\r\n\t\treturn await post(`${process.env.REACT_APP_API_URL}/CME/CPEForm`, data);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.POST_RESPONSEFORM_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getRequestFormById = async (data) => {\r\n\ttry {\r\n\t\tconst { id, formId } = data;\r\n\r\n\t\tif (id) {\r\n\t\t\treturn await get(\r\n\t\t\t\t`${process.env.REACT_APP_API_URL}/CME/RequestForm/${id}`\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\treturn await get(\r\n\t\t\t\t`${process.env.REACT_APP_API_URL}/CME/RequestForm/byFormId/${formId}`\r\n\t\t\t);\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.FORM_BY_ID_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const postRequestForm = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/RequestForm`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.POST_RESPONSEFORM_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const saveByPayroll = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/RequestForm/SaveByPayroll`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.POST_RESPONSEFORM_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getAttachmentsByFormId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Attachment/${data.formId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getCMEAttachmentById = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Attachment/Download/${data.attachmentId}`,\r\n\t\t\t[{ key: \"respnseType\", value: \"arraybuffer\" }]\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.ATTACHMENT_BY_ID_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const postAttachment = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Attachment`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.UPLOAD_DOCUMENT_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getLeaveLinesByFormId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/LeaveLine/${data.formId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const postLeaveLines = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/LeaveLine`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const deleteLeaveLineByFormId = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/LeaveLine/DeleteByFormId/${data.formId}`,\r\n\t\t\tnull\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getRequestLinesByFormId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/RequestLine/${data.formId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getRequestLinesByParentFormId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/RequestLine/GetByParentFormId/${data.parentFormId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const postRequestLines = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/RequestLine`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getBalanceByPersonId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Balance/${data.personId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getOpenCommitmentByPersonId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/OpenCommitment/${data.personId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getTransByPersonIdAndPeriodDate = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Trans/${data.personId}/${data.periodDate}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const postTrans = async (data) => {\r\n\ttry {\r\n\t\treturn await post(`${process.env.REACT_APP_API_URL}/CME/Trans`, data);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getCPEEnrolmentByPersonId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/CPEEnrolment/${data.personId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const deleteCPEEnrolmentById = async (id) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/CPEEnrolment/DeleteById/${id}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const processCPEEnrolmentUpdate = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/CPEEnrolment/ProcessCPEEnrolmentUpdate`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getFormsByPersonId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/${data.personId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getSMOLeaveFormsByPersonId = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/GetSMOLeaveFormsByPersonId/${data.personId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getActiveLeaveApplication = async (data) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/GetActiveLeaveApplication/${data.minLeaveDate}/${data.teamId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const updateFormStatus = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/UpdateFormStatus/${data.formGuid}/${data.status}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const updateFormIsRostered = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/PostIsRostered/${data.formGuid}/${data.isRostered}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const processLeaveRequest = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/ProcessLeaveRequest/${data.formId}/${data.statusId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const rejectByPayroll = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/RejectByPayroll/${data.formId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const rejectByCountiesFinance = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/RejectByCountiesFinance`,\r\n\t\t\tdata\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const deleteForm = async (data) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/Delete/${data.formGuid}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getFormApproval = async (data) => {\r\n\ttry {\r\n\t\tconst {\r\n\t\t\tapproverId,\r\n\t\t\tpersonId,\r\n\t\t\tworkflowWaitingOnId,\r\n\t\t\tformTypeId,\r\n\t\t\tincludeHistory,\r\n\t\t} = data;\r\n\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/FormApproval/${approverId}/${personId}/${workflowWaitingOnId}/${formTypeId}/${includeHistory}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getLeaveReport = async (data) => {\r\n\ttry {\r\n\t\tconst { leaveFrom, leaveTo } = data;\r\n\r\n\t\tvar fromParam = leaveFrom ? \"leaveFrom=\" + leaveFrom : null;\r\n\t\tvar toParam = leaveTo ? \"leaveTo=\" + leaveTo : null;\r\n\t\tvar params = [fromParam, toParam].filter(Boolean).join(\"&\");\r\n\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/CPEForm/LeaveReport${\r\n\t\t\t\tparams ? \"?\" + params : \"\"\r\n\t\t\t}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getPayrollForms = async (personId) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/GetPayrollForms/${personId}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\n//End of CME apis\r\n\r\n//#region Workflow approval apis\r\n\r\nexport const migrate = async (data) => {\r\n\ttry {\r\n\t\tconst { userId, migrateUserId, organisationHierarchyId } = data;\r\n\t\treturn await post(`${process.env.REACT_APP_API_URL}/Workflow/Migrate`, {\r\n\t\t\toldUserId: userId,\r\n\t\t\tnewUserId: migrateUserId,\r\n\t\t\torganisationHierarchyId,\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\nexport const getMigrationPendingWorkflows = async (data) => {\r\n\ttry {\r\n\t\tconst { userId, organisationHierarchyId } = data;\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/Workflow/PendingWorkflows`,\r\n\t\t\t{\r\n\t\t\t\tuserId,\r\n\t\t\t\torganisationHierarchyId,\r\n\t\t\t}\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n\r\n//#endregion\r\n\r\nexport const postDeleteForm = async (id) => {\r\n\ttry {\r\n\t\treturn await post(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/ResponseForm/DeleteForm/${id}`,\r\n\t\t\tnull\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(\r\n\t\t\terror,\r\n\t\t\tcustomError.GENERIC_POST_ERROR_MESSAGE\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport const getPreviousItClaim = async ({\r\n\tcategoryLookupId,\r\n\tpersonId,\r\n\texcludeFormId,\r\n\tinvoiceDate,\r\n}) => {\r\n\ttry {\r\n\t\treturn await get(\r\n\t\t\t`${process.env.REACT_APP_API_URL}/CME/Form/GetPreviousITClaim/${categoryLookupId}/${personId}/${excludeFormId}/${invoiceDate}`\r\n\t\t);\r\n\t} catch (error) {\r\n\t\tcustomError.throwCustomError(error, customError.GENERIC_ERROR_MESSAGE);\r\n\t}\r\n};\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport const strShimFunction = \"function\";\r\nexport const strShimObject = \"object\";\r\nexport const strShimUndefined = \"undefined\";\r\nexport const strShimPrototype = \"prototype\";\r\nexport const strShimHasOwnProperty = \"hasOwnProperty\";\r\nexport const strDefault = \"default\";\r\n\r\nexport const ObjClass = Object;\r\nexport const ObjProto = ObjClass[strShimPrototype];\r\nexport const ObjAssign = ObjClass[\"assign\"];\r\nexport const ObjCreate = ObjClass[\"create\"];\r\nexport const ObjDefineProperty = ObjClass[\"defineProperty\"];\r\nexport const ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { ObjCreate, strShimFunction, strShimObject, strShimPrototype, strShimUndefined } from \"./Constants\";\r\n\r\ndeclare var globalThis: Window;\r\ndeclare var global: Window;\r\n\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal \r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\n export function getGlobal(): Window {\r\n if (typeof globalThis !== strShimUndefined && globalThis) {\r\n return globalThis;\r\n }\r\n\r\n if (typeof self !== strShimUndefined && self) {\r\n return self;\r\n }\r\n\r\n if (typeof window !== strShimUndefined && window) {\r\n return window;\r\n }\r\n\r\n if (typeof global !== strShimUndefined && global) {\r\n return global;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function throwTypeError(message: string): never {\r\n throw new TypeError(message); \r\n}\r\n\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport function objCreateFn(obj: any): any {\r\n var func = ObjCreate;\r\n // Use build in Object.create\r\n if (func) {\r\n // Use Object create method if it exists\r\n return func(obj); \r\n }\r\n if (obj == null) { \r\n return {}; \r\n }\r\n var type = typeof obj;\r\n if (type !== strShimObject && type !== strShimFunction) { \r\n throwTypeError('Object prototype may only be an Object:' + obj); \r\n }\r\n\r\n function tmpFunc() {}\r\n tmpFunc[strShimPrototype] = obj;\r\n\r\n return new (tmpFunc as any)(); \r\n}\r\n\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n ObjAssign, ObjClass, ObjCreate, ObjDefineProperty, ObjHasOwnProperty, ObjProto,\r\n strDefault, strShimFunction, strShimHasOwnProperty, strShimPrototype\r\n} from \"./Constants\";\r\nimport { getGlobal, objCreateFn, throwTypeError } from \"./Helpers\";\r\n\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES3 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\n\r\nexport const SymbolObj = (getGlobal()||{})[\"Symbol\"];\r\nexport const ReflectObj = (getGlobal()||{})[\"Reflect\"];\r\nexport const __hasSymbol = !!SymbolObj;\r\nexport const __hasReflect = !!ReflectObj;\r\n\r\nconst strDecorate = \"decorate\";\r\nconst strMetadata = \"metadata\";\r\nconst strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nconst strIterator = \"iterator\";\r\n\r\nexport declare type ObjAssignFunc = (t: any, ...sources:any[]) => any;\r\n\r\nexport var __objAssignFnImpl: ObjAssignFunc = function(t: any): any {\r\n // tslint:disable-next-line: ban-comma-operator\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) {\r\n if (ObjProto[strShimHasOwnProperty].call(s, p)) {\r\n (t as any)[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\n\r\nexport var __assignFn: ObjAssignFunc = ObjAssign || __objAssignFnImpl;\r\n\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function(d: any, b: any): any {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d: any, b: any) { d.__proto__ = b; }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d: any, b: any) { \r\n for (var p in b) {\r\n if (b[strShimHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\n\r\nexport function __extendsFn(d: any, b: any) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\"); \r\n }\r\n extendStaticsFn(d, b);\r\n function __() { this.constructor = d; }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new (__ as any)());\r\n}\r\n\r\nexport function __restFn(s: any, e: any) {\r\n var t = {};\r\n for (var k in s) {\r\n if (ObjHasOwnProperty.call(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorateFn(decorators: any, target: any, key: any, desc: any) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n } else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && ObjDefineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __paramFn(paramIndex: number, decorator: Function) {\r\n return function (target: any, key: any) { \r\n decorator(target, key, paramIndex); \r\n }\r\n}\r\n\r\nexport function __metadataFn(metadataKey: any, metadataValue: any) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\n\r\nexport function __exportStarFn(m: any, o: any) {\r\n for (var p in m) {\r\n if (p !== strDefault && !ObjHasOwnProperty.call(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\n\r\nexport function __createBindingFn(o: any, m: any, k: any, k2?: any) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n \r\n if (ObjCreate) {\r\n ObjDefineProperty(o, k2, { \r\n enumerable: true, \r\n get() { \r\n return m[k]; \r\n } \r\n });\r\n } else {\r\n o[k2] = m[k];\r\n }\r\n}\r\n\r\nexport function __valuesFn(o: any) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __readFn(o: any, n: any) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n\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) {\r\n ar.push(r.value);\r\n }\r\n } catch (error) { \r\n e = { \r\n error \r\n }; \r\n } finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n } finally { \r\n if (e) {\r\n // tslint:disable-next-line:no-unsafe-finally\r\n throw e.error; \r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n\r\n return r;\r\n}\r\n\r\nexport function __spreadArrayFn(to: any, from: any) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n\r\n return to;\r\n}\r\n\r\nexport function __makeTemplateObjectFn(cooked: any, raw: any) {\r\n if (ObjDefineProperty) { \r\n ObjDefineProperty(cooked, \"raw\", { value: raw }); \r\n } else { \r\n cooked.raw = raw; \r\n }\r\n\r\n return cooked;\r\n};\r\n\r\nexport function __importStarFn(mod: any) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n\r\n // Set default module\r\n if (ObjCreate) {\r\n ObjDefineProperty( result, strDefault, { enumerable: true, value: mod });\r\n } else {\r\n result[strDefault] = mod;\r\n } \r\n\r\n return result;\r\n};\r\n\r\nexport function __importDefaultFn(mod:any) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Internal Global used to generate a unique dynamic class name, every new class will increase this value\r\n * @ignore\r\n */\r\nvar _dynamicNames = 0;\r\n/**\r\n * Helper to check if the object contains a property of the name\r\n * @ignore\r\n */\r\nfunction _hasOwnProperty(obj, prop) {\r\n return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n var newProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n if (newProto) {\r\n return newProto;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n var getOwnProps = Obj[\"getOwnPropertyNames\"];\r\n if (getOwnProps) {\r\n props = getOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && _hasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throw new TypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = {};\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = {};\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && _hasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !_hasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {}); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (_hasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!_hasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] is not in class hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (_hasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _dynamicNames;\r\n _dynamicNames++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\nvar perfDefaults = {\r\n setInstFuncs: true,\r\n useBaseInst: true\r\n};\r\n// And expose for testing\r\ndynamicProto[DynProtoDefaultOptions] = perfDefaults;\r\n//# sourceMappingURL=DynamicProto.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var LoggingSeverity;\r\n(function (LoggingSeverity) {\r\n /**\r\n * Error will be sent as internal telemetry\r\n */\r\n LoggingSeverity[LoggingSeverity[\"CRITICAL\"] = 1] = \"CRITICAL\";\r\n /**\r\n * Error will NOT be sent as internal telemetry, and will only be shown in browser console\r\n */\r\n LoggingSeverity[LoggingSeverity[\"WARNING\"] = 2] = \"WARNING\";\r\n})(LoggingSeverity || (LoggingSeverity = {}));\r\n/**\r\n * Internal message ID. Please create a new one for every conceptually different message. Please keep alphabetically ordered\r\n */\r\nexport var _InternalMessageId = {\r\n // Non user actionable\r\n BrowserDoesNotSupportLocalStorage: 0,\r\n BrowserCannotReadLocalStorage: 1,\r\n BrowserCannotReadSessionStorage: 2,\r\n BrowserCannotWriteLocalStorage: 3,\r\n BrowserCannotWriteSessionStorage: 4,\r\n BrowserFailedRemovalFromLocalStorage: 5,\r\n BrowserFailedRemovalFromSessionStorage: 6,\r\n CannotSendEmptyTelemetry: 7,\r\n ClientPerformanceMathError: 8,\r\n ErrorParsingAISessionCookie: 9,\r\n ErrorPVCalc: 10,\r\n ExceptionWhileLoggingError: 11,\r\n FailedAddingTelemetryToBuffer: 12,\r\n FailedMonitorAjaxAbort: 13,\r\n FailedMonitorAjaxDur: 14,\r\n FailedMonitorAjaxOpen: 15,\r\n FailedMonitorAjaxRSC: 16,\r\n FailedMonitorAjaxSend: 17,\r\n FailedMonitorAjaxGetCorrelationHeader: 18,\r\n FailedToAddHandlerForOnBeforeUnload: 19,\r\n FailedToSendQueuedTelemetry: 20,\r\n FailedToReportDataLoss: 21,\r\n FlushFailed: 22,\r\n MessageLimitPerPVExceeded: 23,\r\n MissingRequiredFieldSpecification: 24,\r\n NavigationTimingNotSupported: 25,\r\n OnError: 26,\r\n SessionRenewalDateIsZero: 27,\r\n SenderNotInitialized: 28,\r\n StartTrackEventFailed: 29,\r\n StopTrackEventFailed: 30,\r\n StartTrackFailed: 31,\r\n StopTrackFailed: 32,\r\n TelemetrySampledAndNotSent: 33,\r\n TrackEventFailed: 34,\r\n TrackExceptionFailed: 35,\r\n TrackMetricFailed: 36,\r\n TrackPVFailed: 37,\r\n TrackPVFailedCalc: 38,\r\n TrackTraceFailed: 39,\r\n TransmissionFailed: 40,\r\n FailedToSetStorageBuffer: 41,\r\n FailedToRestoreStorageBuffer: 42,\r\n InvalidBackendResponse: 43,\r\n FailedToFixDepricatedValues: 44,\r\n InvalidDurationValue: 45,\r\n TelemetryEnvelopeInvalid: 46,\r\n CreateEnvelopeError: 47,\r\n // User actionable\r\n CannotSerializeObject: 48,\r\n CannotSerializeObjectNonSerializable: 49,\r\n CircularReferenceDetected: 50,\r\n ClearAuthContextFailed: 51,\r\n ExceptionTruncated: 52,\r\n IllegalCharsInName: 53,\r\n ItemNotInArray: 54,\r\n MaxAjaxPerPVExceeded: 55,\r\n MessageTruncated: 56,\r\n NameTooLong: 57,\r\n SampleRateOutOfRange: 58,\r\n SetAuthContextFailed: 59,\r\n SetAuthContextFailedAccountName: 60,\r\n StringValueTooLong: 61,\r\n StartCalledMoreThanOnce: 62,\r\n StopCalledWithoutStart: 63,\r\n TelemetryInitializerFailed: 64,\r\n TrackArgumentsNotSpecified: 65,\r\n UrlTooLong: 66,\r\n SessionStorageBufferFull: 67,\r\n CannotAccessCookie: 68,\r\n IdTooLong: 69,\r\n InvalidEvent: 70,\r\n FailedMonitorAjaxSetRequestHeader: 71,\r\n SendBrowserInfoOnUserInit: 72,\r\n PluginException: 73,\r\n NotificationException: 74,\r\n SnippetScriptLoadFailure: 99,\r\n InvalidInstrumentationKey: 100,\r\n CannotParseAiBlobValue: 101,\r\n InvalidContentBlob: 102,\r\n TrackPageActionEventFailed: 103,\r\n FailedAddingCustomDefinedRequestContext: 104,\r\n InMemoryStorageBufferFull: 105\r\n};\r\n//# sourceMappingURL=LoggingEnums.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strShimUndefined, strShimObject, strShimFunction, throwTypeError, ObjClass, ObjProto, ObjAssign, ObjHasOwnProperty, ObjDefineProperty } from \"@microsoft/applicationinsights-shims\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar _objDefineProperty = ObjDefineProperty;\r\nvar _objFreeze = ObjClass[\"freeze\"];\r\nvar _objSeal = ObjClass[\"seal\"];\r\nexport function objToString(obj) {\r\n return ObjProto.toString.call(obj);\r\n}\r\nexport function isTypeof(value, theType) {\r\n return typeof value === theType;\r\n}\r\nexport function isUndefined(value) {\r\n return value === undefined || typeof value === strShimUndefined;\r\n}\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNullOrUndefined(value) {\r\n return (value === null || isUndefined(value));\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\nexport function hasOwnProperty(obj, prop) {\r\n return obj && ObjHasOwnProperty.call(obj, prop);\r\n}\r\nexport function isObject(value) {\r\n // Changing to inline for performance\r\n return typeof value === strShimObject;\r\n}\r\nexport function isFunction(value) {\r\n // Changing to inline for performance\r\n return typeof value === strShimFunction;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (!isNullOrUndefined(obj)) {\r\n try {\r\n if (!isNullOrUndefined(obj[strAddEventHelper])) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](eventNameWithoutOn, handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (!isNullOrUndefined(obj[strAttachEvent])) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n result = true;\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventNameWithoutOn {string} - The name of the event\r\n * @param handlerRef {any} - The callback function that needs to be executed for the given event\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (!isNullOrUndefined(obj)) {\r\n try {\r\n if (!isNullOrUndefined(obj[strRemoveEventListener])) {\r\n obj[strRemoveEventListener](eventNameWithoutOn, handlerRef, useCapture);\r\n }\r\n else if (!isNullOrUndefined(obj[strDetachEvent])) {\r\n obj[strDetachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n var match = /([^\\w\\d_$])/g;\r\n if (match.test(name)) {\r\n value = name.replace(match, \"_\");\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is a helper function for the equivalent of arForEach(objKeys(target), callbackFn), this is a\r\n * performance optimization to avoid the creation of a new array for large objects\r\n * @param target The target object to find and process the keys\r\n * @param callbackfn The function to call with the details\r\n */\r\nexport function objForEachKey(target, callbackfn) {\r\n if (target) {\r\n for (var prop in target) {\r\n if (ObjHasOwnProperty.call(target, prop)) {\r\n callbackfn.call(target, prop, target[prop]);\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var searchLen = search.length;\r\n var valLen = value.length;\r\n if (value === search) {\r\n return true;\r\n }\r\n else if (valLen >= searchLen) {\r\n var pos = valLen - 1;\r\n for (var lp = searchLen - 1; lp >= 0; lp--) {\r\n if (value[pos] != search[lp]) {\r\n return false;\r\n }\r\n pos--;\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * The strStartsWith() method determines whether a string starts with the characters of the specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param checkValue - The characters to be searched for at the start of the value.\r\n * @returns true if the given search value is found at the start of the string, otherwise false.\r\n */\r\nexport function strStartsWith(value, checkValue) {\r\n // Using helper for performance and because string startsWith() is not available on IE\r\n var result = false;\r\n if (value && checkValue) {\r\n var chkLen = checkValue.length;\r\n if (value === checkValue) {\r\n return true;\r\n }\r\n else if (value.length >= chkLen) {\r\n for (var lp = 0; lp < chkLen; lp++) {\r\n if (value[lp] !== checkValue[lp]) {\r\n return false;\r\n }\r\n }\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return value.indexOf(search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Check if an object is of type Date\r\n */\r\nexport function isDate(obj) {\r\n return objToString(obj) === \"[object Date]\";\r\n}\r\n/**\r\n * Check if an object is of type Array\r\n */\r\nexport function isArray(obj) {\r\n return objToString(obj) === \"[object Array]\";\r\n}\r\n/**\r\n * Check if an object is of type Error\r\n */\r\nexport function isError(obj) {\r\n return objToString(obj) === \"[object Error]\";\r\n}\r\n/**\r\n * Checks if the type of value is a string.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a string, false otherwise.\r\n */\r\nexport function isString(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"string\";\r\n}\r\n/**\r\n * Checks if the type of value is a number.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\nexport function isNumber(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"number\";\r\n}\r\n/**\r\n * Checks if the type of value is a boolean.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\nexport function isBoolean(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"boolean\";\r\n}\r\n/**\r\n * Checks if the type of value is a Symbol.\r\n * This only returns a boolean as returning value is Symbol will cause issues for older TypeScript consumers\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Symbol, false otherwise.\r\n */\r\nexport function isSymbol(value) {\r\n return typeof value === \"symbol\";\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n if (isDate(date)) {\r\n var pad = function (num) {\r\n var r = String(num);\r\n if (r.length === 1) {\r\n r = \"0\" + r;\r\n }\r\n return r;\r\n };\r\n return date.getUTCFullYear()\r\n + \"-\" + pad(date.getUTCMonth() + 1)\r\n + \"-\" + pad(date.getUTCDate())\r\n + \"T\" + pad(date.getUTCHours())\r\n + \":\" + pad(date.getUTCMinutes())\r\n + \":\" + pad(date.getUTCSeconds())\r\n + \".\" + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)\r\n + \"Z\";\r\n }\r\n}\r\n/**\r\n * Performs the specified action for each element in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array. It can return -1 to break out of the loop\r\n * @param thisArg [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrForEach(arr, callbackfn, thisArg) {\r\n var len = arr.length;\r\n try {\r\n for (var idx = 0; idx < len; idx++) {\r\n if (idx in arr) {\r\n if (callbackfn.call(thisArg || arr, arr[idx], idx, arr) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Returns the index of the first occurrence of a value in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\nexport function arrIndexOf(arr, searchElement, fromIndex) {\r\n var len = arr.length;\r\n var from = fromIndex || 0;\r\n try {\r\n for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {\r\n if (lp in arr && arr[lp] === searchElement) {\r\n return lp;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results. This helper exists\r\n * to avoid adding a polyfil for older browsers that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page\r\n * checks for presence/absence of the prototype implementation. Note: For consistency this will not use the Array.prototype.xxxx\r\n * implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrMap(arr, callbackfn, thisArg) {\r\n var len = arr.length;\r\n var _this = thisArg || arr;\r\n var results = new Array(len);\r\n try {\r\n for (var lp = 0; lp < len; lp++) {\r\n if (lp in arr) {\r\n results[lp] = callbackfn.call(_this, arr[lp], arr);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return results;\r\n}\r\n/**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is\r\n * provided as an argument in the next call to the callback function. This helper exists to avoid adding a polyfil for older browsers that do not define\r\n * Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype implementation. Note: For consistency\r\n * this will not use the Array.prototype.xxxx implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\nexport function arrReduce(arr, callbackfn, initialValue) {\r\n var len = arr.length;\r\n var lp = 0;\r\n var value;\r\n // Specifically checking the number of passed arguments as the value could be anything\r\n if (arguments.length >= 3) {\r\n value = arguments[2];\r\n }\r\n else {\r\n while (lp < len && !(lp in arr)) {\r\n lp++;\r\n }\r\n value = arr[lp++];\r\n }\r\n while (lp < len) {\r\n if (lp in arr) {\r\n value = callbackfn(value, arr[lp], lp, arr);\r\n }\r\n lp++;\r\n }\r\n return value;\r\n}\r\n/**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\nexport function strTrim(str) {\r\n if (typeof str !== \"string\") {\r\n return str;\r\n }\r\n return str.replace(/^\\s+|\\s+$/g, \"\");\r\n}\r\nvar _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable(\"toString\");\r\nvar _objKeysDontEnums = [\r\n \"toString\",\r\n \"toLocaleString\",\r\n \"valueOf\",\r\n \"hasOwnProperty\",\r\n \"isPrototypeOf\",\r\n \"propertyIsEnumerable\",\r\n \"constructor\"\r\n];\r\n/**\r\n * Returns the names of the enumerable string properties and methods of an object. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Object.keys eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.keys implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n */\r\nexport function objKeys(obj) {\r\n var objType = typeof obj;\r\n if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {\r\n throwTypeError(\"objKeys called on non-object\");\r\n }\r\n var result = [];\r\n for (var prop in obj) {\r\n if (obj && ObjHasOwnProperty.call(obj, prop)) {\r\n result.push(prop);\r\n }\r\n }\r\n if (_objKeysHasDontEnumBug) {\r\n var dontEnumsLength = _objKeysDontEnums.length;\r\n for (var lp = 0; lp < dontEnumsLength; lp++) {\r\n if (obj && ObjHasOwnProperty.call(obj, _objKeysDontEnums[lp])) {\r\n result.push(_objKeysDontEnums[lp]);\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @param target The object on which to define the property.\r\n * @param prop The name of the property to be defined or modified.\r\n * @param getProp The getter function to wire against the getter.\r\n * @param setProp The setter function to wire against the setter.\r\n * @returns True if it was able to create the accessors otherwise false\r\n */\r\nexport function objDefineAccessors(target, prop, getProp, setProp) {\r\n if (_objDefineProperty) {\r\n try {\r\n var descriptor = {\r\n enumerable: true,\r\n configurable: true\r\n };\r\n if (getProp) {\r\n descriptor.get = getProp;\r\n }\r\n if (setProp) {\r\n descriptor.set = setProp;\r\n }\r\n _objDefineProperty(target, prop, descriptor);\r\n return true;\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n return false;\r\n}\r\nexport function objFreeze(value) {\r\n if (_objFreeze) {\r\n value = _objFreeze(value);\r\n }\r\n return value;\r\n}\r\nexport function objSeal(value) {\r\n if (_objSeal) {\r\n value = _objSeal(value);\r\n }\r\n return value;\r\n}\r\n/**\r\n * Return the current time via the Date now() function (if available) and falls back to (new Date()).getTime() if now() is unavailable (IE8 or less)\r\n * https://caniuse.com/#search=Date.now\r\n */\r\nexport function dateNow() {\r\n var dt = Date;\r\n if (dt.now) {\r\n return dt.now();\r\n }\r\n return new dt().getTime();\r\n}\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object.name;\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nexport function isNotTruthy(value) {\r\n return !value;\r\n}\r\nexport function isTruthy(value) {\r\n return !!value;\r\n}\r\nexport function throwError(message) {\r\n throw new Error(message);\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n * @memberof Initialization\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && target !== source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = (function (funcName) {\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n return source[funcName].apply(source, originalArguments);\r\n };\r\n })(field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (hasOwnProperty(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n if (!objDefineAccessors(target, field, function () {\r\n return source[field];\r\n }, function (theValue) {\r\n source[field] = theValue;\r\n })) {\r\n // Unable to create an accessor, so just assign the values as a fallback\r\n // -- this will (mostly) work for objects\r\n // -- but will fail for accessing primitives (if the source changes it) and all types of \"setters\" as the source won't be modified\r\n target[field] = value;\r\n }\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this_1 = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this_1[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject) {\r\n theObject = ObjClass(ObjAssign ? ObjAssign({}, theObject) : theObject);\r\n }\r\n return theObject;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { getGlobal, strShimUndefined, strShimObject, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { isString, isUndefined, strContains } from \"./HelperFuncs\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strWindow = \"window\";\r\nvar strDocument = \"document\";\r\nvar strNavigator = \"navigator\";\r\nvar strHistory = \"history\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strPerformance = \"performance\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @param name The globally named object\r\n */\r\nexport function getGlobalInst(name) {\r\n var gbl = getGlobal();\r\n if (gbl && gbl[name]) {\r\n return gbl[name];\r\n }\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === strWindow && hasWindow()) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return window;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Checks if window object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a window\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: window is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasWindow() {\r\n return Boolean(typeof window === strShimObject && window);\r\n}\r\n/**\r\n * Returns the global window object if it is present otherwise null.\r\n * This helper is used to access the window object without causing an exception\r\n * \"Uncaught ReferenceError: window is not defined\"\r\n */\r\nexport function getWindow() {\r\n if (hasWindow()) {\r\n return window;\r\n }\r\n // Return the global instance or null\r\n return getGlobalInst(strWindow);\r\n}\r\n/**\r\n * Checks if document object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a document\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: document is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasDocument() {\r\n return Boolean(typeof document === strShimObject && document);\r\n}\r\n/**\r\n * Returns the global document object if it is present otherwise null.\r\n * This helper is used to access the document object without causing an exception\r\n * \"Uncaught ReferenceError: document is not defined\"\r\n */\r\nexport function getDocument() {\r\n if (hasDocument()) {\r\n return document;\r\n }\r\n return getGlobalInst(strDocument);\r\n}\r\n/**\r\n * Checks if navigator object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a navigator\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: navigator is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasNavigator() {\r\n return Boolean(typeof navigator === strShimObject && navigator);\r\n}\r\n/**\r\n * Returns the global navigator object if it is present otherwise null.\r\n * This helper is used to access the navigator object without causing an exception\r\n * \"Uncaught ReferenceError: navigator is not defined\"\r\n */\r\nexport function getNavigator() {\r\n if (hasNavigator()) {\r\n return navigator;\r\n }\r\n return getGlobalInst(strNavigator);\r\n}\r\n/**\r\n * Checks if history object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: history is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasHistory() {\r\n return Boolean(typeof history === strShimObject && history);\r\n}\r\n/**\r\n * Returns the global history object if it is present otherwise null.\r\n * This helper is used to access the history object without causing an exception\r\n * \"Uncaught ReferenceError: history is not defined\"\r\n */\r\nexport function getHistory() {\r\n if (hasHistory()) {\r\n return history;\r\n }\r\n return getGlobalInst(strHistory);\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getGlobalInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getGlobalInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getGlobalInst(strConsole);\r\n}\r\n/**\r\n * Returns the performance object if it is present otherwise null.\r\n * This helper is used to access the performance object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getPerformance() {\r\n return getGlobalInst(strPerformance);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getGlobalInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getGlobalInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getGlobalInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getGlobalInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav.userAgent !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav.userAgent;\r\n var userAgent = (_navUserAgentCheck || \"\").toLowerCase();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1.userAgent || \"\").toLowerCase() : \"\";\r\n }\r\n var ua = (userAgentStr || \"\").toLowerCase();\r\n if (strContains(ua, strMsie)) {\r\n return parseInt(ua.split(strMsie)[1]);\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua.split(strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\nexport function dumpObj(object) {\r\n var objectTypeDump = Object[strShimPrototype].toString.call(object);\r\n var propertyValueDump = \"\";\r\n if (objectTypeDump === \"[object Error]\") {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object.name + \"'\";\r\n }\r\n else if (hasJSON()) {\r\n propertyValueDump = getJSON().stringify(object);\r\n }\r\n return objectTypeDump + propertyValueDump;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2.userAgent || \"\").toLowerCase() : \"\";\r\n }\r\n var ua = (userAgentStr || \"\").toLowerCase();\r\n return (ua.indexOf(\"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported() {\r\n if (_beaconsSupported === null) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n var fetchApi = getGlobalInst(\"fetch\");\r\n isSupported = !!fetchApi;\r\n var request = getGlobalInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== undefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(\"XMLHttpRequest\"), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getGlobalInst(\"XMLHttpRequest\");\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getGlobalInst } from \"./EnvUtils\";\r\nvar listenerFuncs = [\"eventsSent\", \"eventsDiscarded\", \"eventsSendRequest\", \"perfEvent\"];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name].apply(listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getGlobalInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs.length; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { hasJSON, getJSON, getConsole } from \"./EnvUtils\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, isNullOrUndefined, isUndefined } from \"./HelperFuncs\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nvar strErrorToConsole = \"errorToConsole\";\r\nvar strWarnToConsole = \"warnToConsole\";\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text.replace(/\\\"/g, \"\") + \"\\\"\";\r\n }\r\n return \"\";\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self.messageId = msgId;\r\n _self.message =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = \"\";\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : \"\") +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : \"\");\r\n _self.message += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {}).logger || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n if (isNullOrUndefined(config)) {\r\n config = {};\r\n }\r\n _self.consoleLoggingLevel = function () { return _getConfigValue(\"loggingLevelConsole\", 0); };\r\n _self.telemetryLoggingLevel = function () { return _getConfigValue(\"loggingLevelTelemetry\", 1); };\r\n _self.maxInternalMessageLimit = function () { return _getConfigValue(\"maxMessageLimit\", 25); };\r\n _self.enableDebugExceptions = function () { return _getConfigValue(\"enableDebugExceptions\", false); };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_self.enableDebugExceptions()) {\r\n throw message;\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = severity === LoggingSeverity.CRITICAL ? strErrorToConsole : strWarnToConsole;\r\n if (!isUndefined(message.message)) {\r\n var logLevel = _self.consoleLoggingLevel();\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message.messageId;\r\n if (!_messageLogged[messageKey] && logLevel >= severity) {\r\n _self[logFunc](message.message);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (logLevel >= severity) {\r\n _self[logFunc](message.message);\r\n }\r\n }\r\n _self.logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === LoggingSeverity.CRITICAL ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n _self.warnToConsole = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The error message\r\n */\r\n _self.errorToConsole = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n _self.logInternalMessage = function (severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message.messageId;\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _self.telemetryLoggingLevel()) {\r\n _self.queue.push(message);\r\n _messageCount++;\r\n _debugExtMsg((severity === LoggingSeverity.CRITICAL ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _self.maxInternalMessageLimit()) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);\r\n _self.queue.push(throttleMessage);\r\n if (severity === LoggingSeverity.CRITICAL) {\r\n _self.errorToConsole(throttleLimitMessage);\r\n }\r\n else {\r\n _self.warnToConsole(throttleLimitMessage);\r\n }\r\n }\r\n }\r\n };\r\n function _getConfigValue(name, defValue) {\r\n var value = config[name];\r\n if (!isNullOrUndefined(value)) {\r\n return value;\r\n }\r\n return defValue;\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _self.maxInternalMessageLimit();\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt && dbgExt.diagLog) {\r\n dbgExt.diagLog(name, data);\r\n }\r\n }\r\n });\r\n }\r\n /**\r\n * When this is true the SDK will throw exceptions to aid in debugging.\r\n */\r\n DiagnosticLogger.prototype.enableDebugExceptions = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n /**\r\n * 0: OFF (default)\r\n * 1: CRITICAL\r\n * 2: >= WARNING\r\n */\r\n DiagnosticLogger.prototype.consoleLoggingLevel = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n /**\r\n * 0: OFF\r\n * 1: CRITICAL (default)\r\n * 2: >= WARNING\r\n */\r\n DiagnosticLogger.prototype.telemetryLoggingLevel = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 1;\r\n };\r\n /**\r\n * The maximum number of internal messages allowed to be sent per page view\r\n */\r\n DiagnosticLogger.prototype.maxInternalMessageLimit = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 25;\r\n };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n DiagnosticLogger.prototype.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.warnToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.errorToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n DiagnosticLogger.prototype.resetInternalMessageCount = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n DiagnosticLogger.prototype.logInternalMessage = function (severity, message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\n//# sourceMappingURL=DiagnosticLogger.js.map","import dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateNow, isArray, isFunction, objDefineAccessors } from \"./HelperFuncs\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n var accessorDefined = false;\r\n _self.start = dateNow();\r\n _self.name = name;\r\n _self.isAsync = isAsync;\r\n _self.isChildEvt = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n accessorDefined = objDefineAccessors(_self, \"payload\", function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n });\r\n }\r\n _self.getCtx = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent.ParentContextKey || key === PerfEvent.ChildrenContextKey) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self.setCtx = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent.ParentContextKey) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self.isChildEvt = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent.ChildrenContextKey) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self.complete = function () {\r\n var childTime = 0;\r\n var childEvts = _self.getCtx(PerfEvent.ChildrenContextKey);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts.length; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt.time;\r\n }\r\n }\r\n }\r\n _self.time = dateNow() - _self.start;\r\n _self.exTime = _self.time - childTime;\r\n _self.complete = function () { };\r\n if (!accessorDefined && isFunction(payloadDetails)) {\r\n // If we couldn't define the property set during complete -- to minimize the perf impact until after the time\r\n _self.payload = payloadDetails();\r\n }\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent.complete();\r\n if (manager && isFunction(manager.perfEvent)) {\r\n manager.perfEvent(perfEvent);\r\n }\r\n }\r\n };\r\n _self.setCtx = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self.getCtx = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n /**\r\n * Create a new event and start timing, the manager may return null/undefined to indicate that it does not\r\n * want to monitor this source event.\r\n * @param src The source name of the event\r\n * @param payloadDetails - An optional callback function to fetch the payload details for the event.\r\n * @param isAsync - Is the event occurring from a async event\r\n */\r\n PerfManager.prototype.create = function (src, payload, isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Complete the perfEvent and fire any notifications.\r\n * @param perfEvent Fire the event which will also complete the passed event\r\n */\r\n PerfManager.prototype.fire = function (perfEvent) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Set an execution context value\r\n * @param key - The context key name\r\n * @param value - The value\r\n */\r\n PerfManager.prototype.setCtx = function (key, value) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get the execution context value\r\n * @param key - The context key\r\n */\r\n PerfManager.prototype.getCtx = function (key) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (isFunction(perfMgr[\"getPerfMgr\"])) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[\"getPerfMgr\"]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr.getCtx(doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt.setCtx) {\r\n perfEvt.setCtx(PerfEvent.ParentContextKey, currentActive);\r\n if (currentActive.getCtx && currentActive.setCtx) {\r\n var children = currentActive.getCtx(PerfEvent.ChildrenContextKey);\r\n if (!children) {\r\n children = [];\r\n currentActive.setCtx(PerfEvent.ChildrenContextKey, children);\r\n }\r\n children.push(perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr.setCtx(doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt.setCtx) {\r\n perfEvt.setCtx(\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr.setCtx(doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { LoggingSeverity, _InternalMessageId } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { isFunction } from \"./HelperFuncs\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nvar TelemetryPluginChain = /** @class */ (function () {\r\n function TelemetryPluginChain(plugin, defItemCtx) {\r\n var _self = this;\r\n var _nextProxy = null;\r\n var _hasProcessTelemetry = isFunction(plugin.processTelemetry);\r\n var _hasSetNext = isFunction(plugin.setNextPlugin);\r\n _self._hasRun = false;\r\n _self.getPlugin = function () {\r\n return plugin;\r\n };\r\n _self.getNext = function () {\r\n return _nextProxy;\r\n };\r\n _self.setNext = function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n if (!itemCtx) {\r\n // Looks like a plugin didn't pass the (optional) context, so restore to the default\r\n itemCtx = defItemCtx;\r\n }\r\n var identifier = plugin ? plugin.identifier : \"TelemetryPluginChain\";\r\n doPerf(itemCtx ? itemCtx.core() : null, function () { return identifier + \":processTelemetry\"; }, function () {\r\n if (plugin && _hasProcessTelemetry) {\r\n _self._hasRun = true;\r\n try {\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n itemCtx.setNext(_nextProxy);\r\n if (_hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin.setNextPlugin(_nextProxy);\r\n }\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n _nextProxy && (_nextProxy._hasRun = false);\r\n plugin.processTelemetry(env, itemCtx);\r\n }\r\n catch (error) {\r\n var hasRun = _nextProxy && _nextProxy._hasRun;\r\n if (!_nextProxy || !hasRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.PluginException, \"Plugin [\" + plugin.identifier + \"] failed during processTelemetry - \" + dumpObj(error));\r\n }\r\n if (_nextProxy && !hasRun) {\r\n // As part of the failure the current plugin did not attempt to call the next plugin in the cahin\r\n // So rather than leave the pipeline dead in the water we call the next plugin\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n }\r\n }\r\n else if (_nextProxy) {\r\n _self._hasRun = true;\r\n // The underlying plugin is either not defined or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n }, function () { return ({ item: env }); }, !(env.sync));\r\n };\r\n }\r\n return TelemetryPluginChain;\r\n}());\r\nexport { TelemetryPluginChain };\r\n//# sourceMappingURL=TelemetryPluginChain.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { TelemetryPluginChain } from \"./TelemetryPluginChain\";\r\nimport { arrForEach, isFunction, isNullOrUndefined, isUndefined } from \"./HelperFuncs\";\r\n/**\r\n * Creates the instance execution chain for the plugins\r\n */\r\nfunction _createProxyChain(plugins, itemCtx) {\r\n var proxies = [];\r\n if (plugins && plugins.length > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy = null;\r\n for (var idx = 0; idx < plugins.length; idx++) {\r\n var thePlugin = plugins[idx];\r\n if (thePlugin && isFunction(thePlugin.processTelemetry)) {\r\n // Only add plugins that are processors\r\n var newProxy = new TelemetryPluginChain(thePlugin, itemCtx);\r\n proxies.push(newProxy);\r\n if (lastProxy) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy.setNext(newProxy);\r\n }\r\n lastProxy = newProxy;\r\n }\r\n }\r\n }\r\n return proxies.length > 0 ? proxies[0] : null;\r\n}\r\nfunction _copyProxyChain(proxy, itemCtx, startAt) {\r\n var plugins = [];\r\n var add = startAt ? false : true;\r\n if (proxy) {\r\n while (proxy) {\r\n var thePlugin = proxy.getPlugin();\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n proxy = proxy.getNext();\r\n }\r\n }\r\n if (!add) {\r\n plugins.push(startAt);\r\n }\r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\nfunction _copyPluginChain(srcPlugins, itemCtx, startAt) {\r\n var plugins = srcPlugins;\r\n var add = false;\r\n if (startAt && srcPlugins) {\r\n plugins = [];\r\n arrForEach(srcPlugins, function (thePlugin) {\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n });\r\n }\r\n if (startAt && !add) {\r\n if (!plugins) {\r\n plugins = [];\r\n }\r\n plugins.push(startAt);\r\n }\r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(plugins, config, core, startAt) {\r\n var _self = this;\r\n var _nextProxy = null; // Null == No next plugin\r\n // There is no next element (null) vs not defined (undefined)\r\n if (startAt !== null) {\r\n if (plugins && isFunction(plugins.getPlugin)) {\r\n // We have a proxy chain object\r\n _nextProxy = _copyProxyChain(plugins, _self, startAt || plugins.getPlugin());\r\n }\r\n else {\r\n // We just have an array\r\n if (startAt) {\r\n _nextProxy = _copyPluginChain(plugins, _self, startAt);\r\n }\r\n else if (isUndefined(startAt)) {\r\n // Undefined means copy the existing chain\r\n _nextProxy = _createProxyChain(plugins, _self);\r\n }\r\n }\r\n }\r\n _self.core = function () {\r\n return core;\r\n };\r\n _self.diagLog = function () {\r\n return safeGetLogger(core, config);\r\n };\r\n _self.getCfg = function () {\r\n return config;\r\n };\r\n _self.getExtCfg = function (identifier, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = {}; }\r\n var theConfig;\r\n if (config) {\r\n var extConfig = config.extensionConfig;\r\n if (extConfig && identifier) {\r\n theConfig = extConfig[identifier];\r\n }\r\n }\r\n return (theConfig ? theConfig : defaultValue);\r\n };\r\n _self.getConfig = function (identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _self.getExtCfg(identifier, null);\r\n if (extConfig && !isNullOrUndefined(extConfig[field])) {\r\n theValue = extConfig[field];\r\n }\r\n else if (config && !isNullOrUndefined(config[field])) {\r\n theValue = config[field];\r\n }\r\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n };\r\n _self.hasNext = function () {\r\n return _nextProxy != null;\r\n };\r\n _self.getNext = function () {\r\n return _nextProxy;\r\n };\r\n _self.setNext = function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n };\r\n _self.processNext = function (env) {\r\n var nextPlugin = _nextProxy;\r\n if (nextPlugin) {\r\n // Automatically move to the next plugin\r\n _nextProxy = nextPlugin.getNext();\r\n nextPlugin.processTelemetry(env, _self);\r\n }\r\n };\r\n _self.createNew = function (plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n return new ProcessTelemetryContext(plugins || _nextProxy, config, core, startAt);\r\n };\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strIKey = \"iKey\";\r\nexport var strExtensionConfig = \"extensionConfig\";\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\r\nimport { isFunction, isNullOrUndefined, setValue } from \"./HelperFuncs\";\r\nimport { strExtensionConfig } from \"./Constants\";\r\nvar strGetPlugin = \"getPlugin\";\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this;\r\n var _isinitialized = false;\r\n var _rootCtx = null; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin = null; // Used for backward compatibility where plugins don't call the main pipeline\r\n _self.core = null;\r\n _self.diagLog = function (itemCtx) {\r\n return _self._getTelCtx(itemCtx).diagLog();\r\n };\r\n _self.isInitialized = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self.setNextPlugin = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self.processNext = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx.processNext(env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin.processTelemetry)) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin.processTelemetry(env, null);\r\n }\r\n };\r\n _self._getTelCtx = function (currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || new ProcessTelemetryContext(null, {}, _self.core);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx.createNew(null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx.createNew(null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n };\r\n _self._baseTelInit = function (config, core, extensions, pluginChain) {\r\n if (config) {\r\n // Make sure the extensionConfig exists\r\n setValue(config, strExtensionConfig, [], null, isNullOrUndefined);\r\n }\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core.getProcessTelContext().getNext();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self.core = core;\r\n _rootCtx = new ProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n _isinitialized = true;\r\n };\r\n }\r\n BaseTelemetryPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n this._baseTelInit(config, core, extensions, pluginChain);\r\n };\r\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from \"./HelperFuncs\";\r\nvar processTelemetry = \"processTelemetry\";\r\nvar priority = \"priority\";\r\nvar setNextPlugin = \"setNextPlugin\";\r\nvar isInitialized = \"isInitialized\";\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config The current config for the instance\r\n * @param core THe current core instance\r\n * @param extensions The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext.getNext();\r\n while (proxy) {\r\n var thePlugin = proxy.getPlugin();\r\n if (thePlugin) {\r\n if (lastPlugin &&\r\n isFunction(lastPlugin[setNextPlugin]) &&\r\n isFunction(thePlugin[processTelemetry])) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[setNextPlugin](thePlugin);\r\n }\r\n if (!isFunction(thePlugin[isInitialized]) || !thePlugin[isInitialized]()) {\r\n initPlugins.push(thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy.getNext();\r\n }\r\n }\r\n // Now initiatilize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n thePlugin.initialize(processContext.getCfg(), processContext.core(), extensions, processContext.getNext());\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n var bHasProcess = isFunction(extB[processTelemetry]);\r\n if (isFunction(extA[processTelemetry])) {\r\n result = bHasProcess ? extA[priority] - extB[priority] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\r\nimport { initializePlugins } from \"./TelemetryHelpers\";\r\nimport { arrForEach, objDefineAccessors, throwError } from \"./HelperFuncs\";\r\nvar ChannelControllerPriority = 500;\r\nvar ChannelValidationMessage = \"Channel has invalid priority\";\r\nvar ChannelController = /** @class */ (function (_super) {\r\n __extends(ChannelController, _super);\r\n function ChannelController() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"ChannelControllerPlugin\";\r\n _this.priority = ChannelControllerPriority; // in reserved range 100 to 200\r\n var _channelQueue;\r\n dynamicProto(ChannelController, _this, function (_self, _base) {\r\n _self.setNextPlugin = function (next) {\r\n // The Channel controller is last in pipeline\r\n };\r\n _self.processTelemetry = function (item, itemCtx) {\r\n if (_channelQueue) {\r\n arrForEach(_channelQueue, function (queues) {\r\n // pass on to first item in queue\r\n if (queues.length > 0) {\r\n // Copying the item context as we could have mutiple chains that are executing asynchronously\r\n // and calling _getDefTelCtx as it's possible that the caller doesn't pass any context\r\n var chainCtx = _this._getTelCtx(itemCtx).createNew(queues);\r\n chainCtx.processNext(item);\r\n }\r\n });\r\n }\r\n };\r\n _self.getChannelControls = function () {\r\n return _channelQueue;\r\n };\r\n _self.initialize = function (config, core, extensions) {\r\n if (_self.isInitialized()) {\r\n // already initialized\r\n return;\r\n }\r\n _base.initialize(config, core, extensions);\r\n _createChannelQueues((config || {}).channels, extensions);\r\n // Initialize the Queues\r\n arrForEach(_channelQueue, function (queue) { return initializePlugins(new ProcessTelemetryContext(queue, config, core), extensions); });\r\n };\r\n });\r\n function _checkQueuePriority(queue) {\r\n arrForEach(queue, function (queueItem) {\r\n if (queueItem.priority < ChannelControllerPriority) {\r\n throwError(ChannelValidationMessage + queueItem.identifier);\r\n }\r\n });\r\n }\r\n function _addChannelQueue(queue) {\r\n if (queue && queue.length > 0) {\r\n queue = queue.sort(function (a, b) {\r\n return a.priority - b.priority;\r\n });\r\n _checkQueuePriority(queue);\r\n _channelQueue.push(queue);\r\n }\r\n }\r\n function _createChannelQueues(channels, extensions) {\r\n _channelQueue = [];\r\n if (channels) {\r\n // Add and sort the configuration channel queues\r\n arrForEach(channels, function (queue) { return _addChannelQueue(queue); });\r\n }\r\n if (extensions) {\r\n // Create a new channel queue for any extensions with a priority > the ChannelControllerPriority\r\n var extensionQueue_1 = [];\r\n arrForEach(extensions, function (plugin) {\r\n if (plugin.priority > ChannelControllerPriority) {\r\n extensionQueue_1.push(plugin);\r\n }\r\n });\r\n _addChannelQueue(extensionQueue_1);\r\n }\r\n }\r\n return _this;\r\n }\r\n ChannelController.prototype.processTelemetry = function (item, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ChannelController.prototype.getChannelControls = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ChannelController.prototype.initialize = function (config, core, extensions) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Static constructor, attempt to create accessors\r\n */\r\n // tslint:disable-next-line\r\n ChannelController._staticInit = (function () {\r\n var proto = ChannelController.prototype;\r\n // Dynamically create get/set property accessors\r\n objDefineAccessors(proto, \"ChannelControls\", proto.getChannelControls);\r\n objDefineAccessors(proto, \"channelQueue\", proto.getChannelControls);\r\n })();\r\n return ChannelController;\r\n}(BaseTelemetryPlugin));\r\nexport { ChannelController };\r\n//# sourceMappingURL=ChannelController.js.map","import { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { dumpObj, getDocument, getLocation, getNavigator, isIE } from \"./EnvUtils\";\r\nimport { arrForEach, dateNow, getExceptionName, isFunction, isNotNullOrUndefined, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, setValue, strContains, strEndsWith, strTrim } from \"./HelperFuncs\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strEnabled = \"enabled\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar strEmpty = \"\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc = getDocument();\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nexport function _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _createCookieMgrConfig(rootConfig) {\r\n var cookieMgrCfg = rootConfig.cookieCfg = rootConfig.cookieCfg || {};\r\n // Sets the values from the root config if not already present on the cookieMgrCfg\r\n setValue(cookieMgrCfg, \"domain\", rootConfig.cookieDomain, isNotNullOrUndefined, isNullOrUndefined);\r\n setValue(cookieMgrCfg, \"path\", rootConfig.cookiePath || \"/\", null, isNullOrUndefined);\r\n if (isNullOrUndefined(cookieMgrCfg[strEnabled])) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n cookieMgrCfg[strEnabled] = cookieEnabled;\r\n }\r\n return cookieMgrCfg;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config.cookieCfg;\r\n if (cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {}).logger);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var cookieMgrConfig = _createCookieMgrConfig(rootConfig || _globalCookieConfig);\r\n var _path = cookieMgrConfig.path || \"/\";\r\n var _domain = cookieMgrConfig.domain;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled = cookieMgrConfig[strEnabled] !== false;\r\n var cookieMgr = {\r\n isEnabled: function () {\r\n var enabled = _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n },\r\n setEnabled: function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n var values = {};\r\n var theValue = strTrim(value || strEmpty);\r\n var idx = theValue.indexOf(\";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(value.substring(0, idx));\r\n values = _extractParts(value.substring(idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, \"domain\", domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = dateNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || strEmpty, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", strEmpty + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {}).userAgent);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, \"path\", path || _path, null, isUndefined);\r\n var setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = strEmpty;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n value = (cookieMgrConfig.getCookie || _getCookieValue)(name);\r\n }\r\n return value;\r\n },\r\n del: function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[\"path\"] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n var delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n delCookie(name, _formatCookieValue(strEmpty, values));\r\n result = true;\r\n }\r\n return result;\r\n }\r\n };\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n try {\r\n var doc = _doc || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotAccessCookie, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue.length) {\r\n var parts = strTrim(theValue).split(\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || strEmpty);\r\n if (thePart) {\r\n var idx = thePart.indexOf(\"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(thePart.substring(0, idx))] = strTrim(thePart.substring(idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || strEmpty;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : strEmpty);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = strEmpty;\r\n if (_doc) {\r\n var theCookie = _doc[strCookie] || strEmpty;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || strEmpty);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n if (_doc) {\r\n _doc[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { __spreadArray } from \"tslib\";\r\nimport { objCreateFn } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { ChannelController } from \"./ChannelController\";\r\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\r\nimport { initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { getGblPerfMgr, PerfManager } from \"./PerfManager\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { arrForEach, isNullOrUndefined, toISOString, getSetValue, setValue, throwError, isNotTruthy, isFunction } from \"./HelperFuncs\";\r\nimport { strExtensionConfig, strIKey } from \"./Constants\";\r\nimport { DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nvar validationError = \"Extensions must provide callback to initialize\";\r\nvar strNotificationManager = \"_notificationManager\";\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nvar BaseCore = /** @class */ (function () {\r\n function BaseCore() {\r\n var _isInitialized = false;\r\n var _eventQueue;\r\n var _channelController;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cookieManager;\r\n dynamicProto(BaseCore, this, function (_self) {\r\n _self._extensions = new Array();\r\n _channelController = new ChannelController();\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _self.logger = new DiagnosticLogger({ loggingLevelConsole: LoggingSeverity.CRITICAL });\r\n _eventQueue = [];\r\n _self.isInitialized = function () { return _isInitialized; };\r\n _self.initialize = function (config, extensions, logger, notificationManager) {\r\n // Make sure core is only initialized once\r\n if (_self.isInitialized()) {\r\n throwError(\"Core should not be initialized more than once\");\r\n }\r\n if (!config || isNullOrUndefined(config.instrumentationKey)) {\r\n throwError(\"Please provide instrumentation key\");\r\n }\r\n _notificationManager = notificationManager;\r\n // For backward compatibility only\r\n _self[strNotificationManager] = notificationManager;\r\n _self.config = config || {};\r\n if (notificationManager && _self.config.disableDbgExt !== true) {\r\n notificationManager.addNotificationListener(getDebugListener(config));\r\n }\r\n if (_self.config.enablePerfMgr) {\r\n // Set the performance manager creation function if not defined\r\n setValue(_self.config, \"createPerfMgr\", _createPerfManager);\r\n }\r\n config.extensions = isNullOrUndefined(config.extensions) ? [] : config.extensions;\r\n // add notification to the extensions in the config so other plugins can access it\r\n var extConfig = getSetValue(config, strExtensionConfig);\r\n extConfig.NotificationManager = notificationManager;\r\n if (logger) {\r\n _self.logger = logger;\r\n }\r\n // Concat all available extensions\r\n var allExtensions = [];\r\n allExtensions.push.apply(allExtensions, __spreadArray(__spreadArray([], extensions, false), config.extensions, false));\r\n allExtensions = sortPlugins(allExtensions);\r\n var coreExtensions = [];\r\n var channelExtensions = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext.initialize)) {\r\n throwError(validationError);\r\n }\r\n var extPriority = ext.priority;\r\n var identifier = ext.identifier;\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n logger.warnToConsole(\"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channelController\r\n if (!extPriority || extPriority < _channelController.priority) {\r\n // Add to core extension that will be managed by BaseCore\r\n coreExtensions.push(ext);\r\n }\r\n else {\r\n // Add all other extensions to be managed by the channel controller\r\n channelExtensions.push(ext);\r\n }\r\n });\r\n // Validation complete\r\n // Add the channelController to the complete extension collection and\r\n // to the end of the core extensions\r\n allExtensions.push(_channelController);\r\n coreExtensions.push(_channelController);\r\n // Sort the complete set of extensions by priority\r\n allExtensions = sortPlugins(allExtensions);\r\n _self._extensions = allExtensions;\r\n // initialize channel controller first, this will initialize all channel plugins\r\n initializePlugins(new ProcessTelemetryContext([_channelController], config, _self), allExtensions);\r\n initializePlugins(new ProcessTelemetryContext(coreExtensions, config, _self), allExtensions);\r\n // Now reset the extensions to just those being managed by Basecore\r\n _self._extensions = coreExtensions;\r\n if (_self.getTransmissionControls().length === 0) {\r\n throwError(\"No channels available\");\r\n }\r\n _isInitialized = true;\r\n _self.releaseQueue();\r\n };\r\n _self.getTransmissionControls = function () {\r\n return _channelController.getChannelControls();\r\n };\r\n _self.track = function (telemetryItem) {\r\n // setup default iKey if not passed in\r\n setValue(telemetryItem, strIKey, _self.config.instrumentationKey, null, isNotTruthy);\r\n // add default timestamp if not passed in\r\n setValue(telemetryItem, \"time\", toISOString(new Date()), null, isNotTruthy);\r\n // Common Schema 4.0\r\n setValue(telemetryItem, \"ver\", \"4.0\", null, isNullOrUndefined);\r\n if (_self.isInitialized()) {\r\n // Process the telemetry plugin chain\r\n _self.getProcessTelContext().processNext(telemetryItem);\r\n }\r\n else {\r\n // Queue events until all extensions are initialized\r\n _eventQueue.push(telemetryItem);\r\n }\r\n };\r\n _self.getProcessTelContext = function () {\r\n var extensions = _self._extensions;\r\n var thePlugins = extensions;\r\n // invoke any common telemetry processors before sending through pipeline\r\n if (!extensions || extensions.length === 0) {\r\n // Pass to Channel controller so data is sent to correct channel queues\r\n thePlugins = [_channelController];\r\n }\r\n return new ProcessTelemetryContext(thePlugins, _self.config, _self);\r\n };\r\n _self.getNotifyMgr = function () {\r\n if (!_notificationManager) {\r\n // Create Dummy notification manager\r\n _notificationManager = objCreateFn({\r\n addNotificationListener: function (listener) { },\r\n removeNotificationListener: function (listener) { },\r\n eventsSent: function (events) { },\r\n eventsDiscarded: function (events, reason) { },\r\n eventsSendRequest: function (sendReason, isAsync) { }\r\n });\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_self.config, _self.logger);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n _cookieManager = cookieMgr;\r\n };\r\n _self.getPerfMgr = function () {\r\n if (!_perfManager) {\r\n if (_self.config && _self.config.enablePerfMgr && isFunction(_self.config.createPerfMgr)) {\r\n _perfManager = _self.config.createPerfMgr(_self, _self.getNotifyMgr());\r\n }\r\n }\r\n return _perfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue.length;\r\n };\r\n _self.releaseQueue = function () {\r\n if (_eventQueue.length > 0) {\r\n arrForEach(_eventQueue, function (event) {\r\n _self.getProcessTelContext().processNext(event);\r\n });\r\n _eventQueue = [];\r\n }\r\n };\r\n });\r\n }\r\n BaseCore.prototype.initialize = function (config, extensions, logger, notificationManager) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.getTransmissionControls = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseCore.prototype.track = function (telemetryItem) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.getProcessTelContext = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseCore.prototype.getNotifyMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n BaseCore.prototype.getCookieMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Set the current cookie manager for this instance\r\n * @param cookieMgr - The manager, if set to null/undefined will cause the default to be created\r\n */\r\n BaseCore.prototype.setCookieMgr = function (cookieMgr) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.getPerfMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseCore.prototype.setPerfMgr = function (perfMgr) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.eventCnt = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n BaseCore.prototype.releaseQueue = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return BaseCore;\r\n}());\r\nexport { BaseCore };\r\n//# sourceMappingURL=BaseCore.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * The EventsDiscardedReason enumeration contains a set of values that specify the reason for discarding an event.\r\n */\r\nexport var EventsDiscardedReason = {\r\n /**\r\n * Unknown.\r\n */\r\n Unknown: 0,\r\n /**\r\n * Status set to non-retryable.\r\n */\r\n NonRetryableStatus: 1,\r\n /**\r\n * The event is invalid.\r\n */\r\n InvalidEvent: 2,\r\n /**\r\n * The size of the event is too large.\r\n */\r\n SizeLimitExceeded: 3,\r\n /**\r\n * The server is not accepting events from this instrumentation key.\r\n */\r\n KillSwitch: 4,\r\n /**\r\n * The event queue is full.\r\n */\r\n QueueFull: 5\r\n};\r\n//# sourceMappingURL=EventsDiscardedReason.js.map","import dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrForEach, arrIndexOf } from \"./HelperFuncs\";\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll = !!(config || {}).perfEvtsSendAll;\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n _self.addNotificationListener = function (listener) {\r\n _self.listeners.push(listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n _self.removeNotificationListener = function (listener) {\r\n var index = arrIndexOf(_self.listeners, listener);\r\n while (index > -1) {\r\n _self.listeners.splice(index, 1);\r\n index = arrIndexOf(_self.listeners, listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n _self.eventsSent = function (events) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.eventsSent) {\r\n setTimeout(function () { return listener.eventsSent(events); }, 0);\r\n }\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self.eventsDiscarded = function (events, reason) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.eventsDiscarded) {\r\n setTimeout(function () { return listener.eventsDiscarded(events, reason); }, 0);\r\n }\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param {number} sendReason - The reason why the event batch is being sent.\r\n * @param {boolean} isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self.eventsSendRequest = function (sendReason, isAsync) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.eventsSendRequest) {\r\n if (isAsync) {\r\n setTimeout(function () { return listener.eventsSendRequest(sendReason, isAsync); }, 0);\r\n }\r\n else {\r\n try {\r\n listener.eventsSendRequest(sendReason, isAsync);\r\n }\r\n catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n };\r\n _self.perfEvent = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent.isChildEvt()) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.perfEvent) {\r\n if (perfEvent.isAsync) {\r\n setTimeout(function () { return listener.perfEvent(perfEvent); }, 0);\r\n }\r\n else {\r\n try {\r\n listener.perfEvent(perfEvent);\r\n }\r\n catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n };\r\n });\r\n }\r\n /**\r\n * Adds a notification listener.\r\n * @param {INotificationListener} listener - The notification listener to be added.\r\n */\r\n NotificationManager.prototype.addNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n NotificationManager.prototype.removeNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n NotificationManager.prototype.eventsSent = function (events) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n NotificationManager.prototype.eventsDiscarded = function (events, reason) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param {number} sendReason - The reason why the event batch is being sent.\r\n * @param {boolean} isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n NotificationManager.prototype.eventsSendRequest = function (sendReason, isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","import { __extends } from \"tslib\";\r\nimport { BaseCore } from \"./BaseCore\";\r\nimport { EventsDiscardedReason } from \"../JavaScriptSDK.Enums/EventsDiscardedReason\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _InternalLogMessage, DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrForEach, isNullOrUndefined, toISOString, throwError } from \"./HelperFuncs\";\r\n\"use strict\";\r\nvar AppInsightsCore = /** @class */ (function (_super) {\r\n __extends(AppInsightsCore, _super);\r\n function AppInsightsCore() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller = 0;\r\n dynamicProto(AppInsightsCore, _this, function (_self, _base) {\r\n _self.initialize = function (config, extensions, logger, notificationManager) {\r\n _base.initialize(config, extensions, logger || new DiagnosticLogger(config), notificationManager || new NotificationManager(config));\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self.getPerfMgr(), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n _validateTelemetryItem(telemetryItem);\r\n _base.track(telemetryItem);\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n _self.addNotificationListener = function (listener) {\r\n var manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.addNotificationListener(listener);\r\n }\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n _self.removeNotificationListener = function (listener) {\r\n var manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.removeNotificationListener(listener);\r\n }\r\n };\r\n /**\r\n * Periodically check logger.queue for log messages to be flushed\r\n */\r\n _self.pollInternalLogs = function (eventName) {\r\n var interval = _self.config.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n if (_internalLogPoller) {\r\n _self.stopPollingInternalLogs();\r\n }\r\n _internalLogPoller = setInterval(function () {\r\n var queue = _self.logger ? _self.logger.queue : [];\r\n arrForEach(queue, function (logMessage) {\r\n var item = {\r\n name: eventName ? eventName : \"InternalMessageId: \" + logMessage.messageId,\r\n iKey: _self.config.instrumentationKey,\r\n time: toISOString(new Date()),\r\n baseType: _InternalLogMessage.dataType,\r\n baseData: { message: logMessage.message }\r\n };\r\n _self.track(item);\r\n });\r\n queue.length = 0;\r\n }, interval);\r\n return _internalLogPoller;\r\n };\r\n /**\r\n * Stop polling log messages from logger.queue\r\n */\r\n _self.stopPollingInternalLogs = function () {\r\n if (!_internalLogPoller)\r\n return;\r\n clearInterval(_internalLogPoller);\r\n _internalLogPoller = 0;\r\n };\r\n function _validateTelemetryItem(telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem.name)) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throw Error(\"telemetry name required\");\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.eventsDiscarded([telemetryItem], EventsDiscardedReason.InvalidEvent);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n AppInsightsCore.prototype.initialize = function (config, extensions, logger, notificationManager) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsCore.prototype.track = function (telemetryItem) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n AppInsightsCore.prototype.addNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n AppInsightsCore.prototype.removeNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Periodically check logger.queue for\r\n */\r\n AppInsightsCore.prototype.pollInternalLogs = function (eventName) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n /**\r\n * Periodically check logger.queue for\r\n */\r\n AppInsightsCore.prototype.stopPollingInternalLogs = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return AppInsightsCore;\r\n}(BaseCore));\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { dateNow } from \"./HelperFuncs\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = 123456789;\r\nvar _mwcZ = 987654321;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (123456789 + seedValue) & MaxUInt32;\r\n _mwcZ = (987654321 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = dateNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n else if (isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n else {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { objCreateFn, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _gblCookieMgr } from \"./CookieMgr\";\r\nimport { getWindow, getDocument, getPerformance, isIE } from \"./EnvUtils\";\r\nimport { arrForEach, arrIndexOf, arrMap, arrReduce, attachEvent, dateNow, detachEvent, hasOwnProperty, isArray, isBoolean, isDate, isError, isFunction, isNullOrUndefined, isNumber, isObject, isString, isTypeof, isUndefined, objDefineAccessors, objKeys, strTrim, toISOString } from \"./HelperFuncs\";\r\nimport { randomValue, random32, mwcRandomSeed, mwcRandom32 } from \"./RandomHelper\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar _cookieMgrs = null;\r\nvar _canUseCookies; // legacy supported config\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = attachEvent(w, eventName, callback);\r\n result = attachEvent(w[\"body\"], eventName, callback) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = attachEvent(doc, eventName, callback) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n var excluded_1 = [];\r\n arrForEach(events, function (name) {\r\n if (isString(name)) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener) || added;\r\n }\r\n else {\r\n excluded_1.push(name);\r\n }\r\n }\r\n });\r\n if (!added && excluded_1.length > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = addEventListeners(excluded_1, listener);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([\"beforeunload\", \"unload\", \"pagehide\"], listener, excludeEvents);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n var pageUnloadAdded = false;\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strPageHide) === -1) {\r\n pageUnloadAdded = addEventHandler(strPageHide, listener);\r\n }\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n var pageShowAdded = false;\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strPageShow) === -1) {\r\n pageShowAdded = addEventHandler(strPageShow, listener);\r\n }\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageShowAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageShowAdded;\r\n }\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener);\r\n }\r\n return pageShowAdded;\r\n}\r\nexport function newGuid() {\r\n function randomHexDigit() {\r\n return randomValue(15); // Get a random value from 0..15\r\n }\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(GuidRegex, function (c) {\r\n var r = (randomHexDigit() | 0), v = (c === \"x\" ? r : r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n}\r\n/**\r\n * Return the current value of the Performance Api now() function (if available) and fallback to dateNow() if it is unavailable (IE9 or less)\r\n * https://caniuse.com/#search=performance.now\r\n */\r\nexport function perfNow() {\r\n var perf = getPerformance();\r\n if (perf && perf.now) {\r\n return perf.now();\r\n }\r\n return dateNow();\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = \"\";\r\n while (result.length < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value.length;\r\n var start = len - search.length;\r\n return value.substring(start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = \"\", tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return oct.substr(0, 8) + oct.substr(9, 4) + \"4\" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);\r\n}\r\n/**\r\n * Provides a collection of utility functions, included for backward compatibility with previous releases.\r\n * @deprecated Marking this instance as deprecated in favor of direct usage of the helper functions\r\n * as direct usage provides better tree-shaking and minification by avoiding the inclusion of the unused items\r\n * in your resulting code.\r\n */\r\nexport var CoreUtils = {\r\n _canUseCookies: undefined,\r\n isTypeof: isTypeof,\r\n isUndefined: isUndefined,\r\n isNullOrUndefined: isNullOrUndefined,\r\n hasOwnProperty: hasOwnProperty,\r\n isFunction: isFunction,\r\n isObject: isObject,\r\n isDate: isDate,\r\n isArray: isArray,\r\n isError: isError,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isBoolean: isBoolean,\r\n toISOString: toISOString,\r\n arrForEach: arrForEach,\r\n arrIndexOf: arrIndexOf,\r\n arrMap: arrMap,\r\n arrReduce: arrReduce,\r\n strTrim: strTrim,\r\n objCreate: objCreateFn,\r\n objKeys: objKeys,\r\n objDefineAccessors: objDefineAccessors,\r\n addEventHandler: addEventHandler,\r\n dateNow: dateNow,\r\n isIE: isIE,\r\n disableCookies: disableCookies,\r\n newGuid: newGuid,\r\n perfNow: perfNow,\r\n newId: newId,\r\n randomValue: randomValue,\r\n random32: random32,\r\n mwcRandomSeed: mwcRandomSeed,\r\n mwcRandom32: mwcRandom32,\r\n generateW3CId: generateW3CId\r\n};\r\nvar GuidRegex = /[xy]/g;\r\nexport var EventHelper = {\r\n Attach: attachEvent,\r\n AttachEvent: attachEvent,\r\n Detach: detachEvent,\r\n DetachEvent: detachEvent\r\n};\r\n/**\r\n * Helper to support backward compatibility for users that use the legacy cookie handling functions and the use the internal\r\n * CoreUtils._canUseCookies global flag to enable/disable cookies usage.\r\n * Note: This has the following deliberate side-effects\r\n * - Creates the global (legacy) cookie manager if it does not already exist\r\n * - Attempts to add \"listeners\" to the CoreUtils._canUseCookies property to support the legacy usage\r\n * @param config\r\n * @param logger\r\n * @returns\r\n */\r\nexport function _legacyCookieMgr(config, logger) {\r\n var cookieMgr = _gblCookieMgr(config, logger);\r\n var legacyCanUseCookies = CoreUtils._canUseCookies;\r\n if (_cookieMgrs === null) {\r\n _cookieMgrs = [];\r\n _canUseCookies = legacyCanUseCookies;\r\n // Dynamically create get/set property accessors for backward compatibility for enabling / disabling cookies\r\n // this WILL NOT work for ES3 browsers (< IE8)\r\n objDefineAccessors(CoreUtils, \"_canUseCookies\", function () {\r\n return _canUseCookies;\r\n }, function (value) {\r\n _canUseCookies = value;\r\n arrForEach(_cookieMgrs, function (mgr) {\r\n mgr.setEnabled(value);\r\n });\r\n });\r\n }\r\n if (arrIndexOf(_cookieMgrs, cookieMgr) === -1) {\r\n _cookieMgrs.push(cookieMgr);\r\n }\r\n if (isBoolean(legacyCanUseCookies)) {\r\n cookieMgr.setEnabled(legacyCanUseCookies);\r\n }\r\n if (isBoolean(_canUseCookies)) {\r\n cookieMgr.setEnabled(_canUseCookies);\r\n }\r\n return cookieMgr;\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().disable()\r\n * Force the SDK not to store and read any data from cookies.\r\n */\r\nexport function disableCookies() {\r\n _legacyCookieMgr().setEnabled(false);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().isEnabled()\r\n * Helper method to tell if document.cookie object is available and whether it can be used.\r\n */\r\nexport function canUseCookies(logger) {\r\n return _legacyCookieMgr(null, logger).isEnabled();\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().get()\r\n * helper method to access userId and sessionId cookie\r\n */\r\nexport function getCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).get(name);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().set()\r\n * helper method to set userId and sessionId cookie\r\n */\r\nexport function setCookie(logger, name, value, domain) {\r\n _legacyCookieMgr(null, logger).set(name, value, null, domain);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().del()\r\n * Deletes a cookie by setting it's expiration time in the past.\r\n * @param name - The name of the cookie to delete.\r\n */\r\nexport function deleteCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).del(name);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the\r\nexport { Util, CorrelationIdHelper, DateTimeUtils, dateTimeUtilsNow, dateTimeUtilsDuration, UrlHelper, isInternalApplicationInsightsEndpoint } from \"./Util\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, strNotSpecified } from \"./Constants\";\r\nexport { Data as AIData } from \"./Interfaces/Contracts/Generated/Data\";\r\nexport { Base as AIBase } from \"./Interfaces/Contracts/Generated/Base\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { PageViewData } from \"./Interfaces/Contracts/Generated/PageViewData\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/Generated/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/Generated/ContextTagKeys\";\r\nexport { DataSanitizer, dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { LoggingSeverity, _InternalMessageId, hasJSON, getJSON, objForEachKey, isObject, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key.length;\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field.length !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = field.substring(0, 150 /* MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(name.toString());\r\n // truncate the string to 150 chars\r\n if (name.length > 150 /* MAX_NAME_LENGTH */) {\r\n nameTrunc = name.substring(0, 150 /* MAX_NAME_LENGTH */);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NameTooLong, \"name is too long. It has been truncated to \" + 150 /* MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(value);\r\n if (value.toString().length > maxLength) {\r\n valueTrunc = value.toString().substring(0, maxLength);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StringValueTooLong, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* MAX_URL_LENGTH */, _InternalMessageId.UrlTooLong);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message.length > 32768 /* MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = message.substring(0, 32768 /* MAX_MESSAGE_LENGTH */);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.MessageTruncated, \"message is too long, it has been truncated to \" + 32768 /* MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value.length > 32768 /* MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = value.substring(0, 32768 /* MAX_EXCEPTION_LENGTH */);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ExceptionTruncated, \"exception is too long, it has been truncated to \" + 32768 /* MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON().stringify(value);\r\n }\r\n catch (e) {\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* MAX_ID_LENGTH */, _InternalMessageId.IdTooLong).toString() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(input);\r\n if (input.length > maxLength) {\r\n inputTrunc = input.substring(0, maxLength);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return s.substr(s.length - 3);\r\n}\r\n/**\r\n * Provides the DataSanitizer functions within the previous namespace.\r\n */\r\nexport var DataSanitizer = {\r\n MAX_NAME_LENGTH: 150 /* MAX_NAME_LENGTH */,\r\n MAX_ID_LENGTH: 128 /* MAX_ID_LENGTH */,\r\n MAX_PROPERTY_LENGTH: 8192 /* MAX_PROPERTY_LENGTH */,\r\n MAX_STRING_LENGTH: 1024 /* MAX_STRING_LENGTH */,\r\n MAX_URL_LENGTH: 2048 /* MAX_URL_LENGTH */,\r\n MAX_MESSAGE_LENGTH: 32768 /* MAX_MESSAGE_LENGTH */,\r\n MAX_EXCEPTION_LENGTH: 32768 /* MAX_EXCEPTION_LENGTH */,\r\n sanitizeKeyAndAddUniqueness: dataSanitizeKeyAndAddUniqueness,\r\n sanitizeKey: dataSanitizeKey,\r\n sanitizeString: dataSanitizeString,\r\n sanitizeUrl: dataSanitizeUrl,\r\n sanitizeMessage: dataSanitizeMessage,\r\n sanitizeException: dataSanitizeException,\r\n sanitizeProperties: dataSanitizeProperties,\r\n sanitizeMeasurements: dataSanitizeMeasurements,\r\n sanitizeId: dataSanitizeId,\r\n sanitizeInput: dataSanitizeInput,\r\n padNumber: dsPadNumber,\r\n trim: strTrim\r\n};\r\n//# sourceMappingURL=DataSanitizer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Type of the metric data measurement.\r\n */\r\nexport var DataPointType;\r\n(function (DataPointType) {\r\n DataPointType[DataPointType[\"Measurement\"] = 0] = \"Measurement\";\r\n DataPointType[DataPointType[\"Aggregation\"] = 1] = \"Aggregation\";\r\n})(DataPointType || (DataPointType = {}));\r\n//# sourceMappingURL=DataPointType.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { objForEachKey, isNullOrUndefined, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified, strIkey } from \"./Constants\";\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item domain specific properties; part B\r\n * @param baseType telemetry item type. ie PageViewData\r\n * @param envelopeName name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties user defined custom properties; part C\r\n * @param systemProperties system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = function (item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throw Error(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = {\r\n name: envelopeName,\r\n time: toISOString(new Date()),\r\n iKey: iKey,\r\n ext: systemProperties ? systemProperties : {},\r\n tags: [],\r\n data: {},\r\n baseType: baseType,\r\n baseData: item // Part B\r\n };\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n };\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Instances of Event represent structured event records that can be grouped and searched by their properties. Event data item also creates a metric of event count by name.\r\n */\r\nvar EventData = /** @class */ (function () {\r\n function EventData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return EventData;\r\n}());\r\nexport { EventData };\r\n//# sourceMappingURL=EventData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { EventData } from \"../Interfaces/Contracts/Generated/EventData\";\r\nimport { dataSanitizeString, dataSanitizeProperties, dataSanitizeMeasurements } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar Event = /** @class */ (function (_super) {\r\n __extends(Event, _super);\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n name: 1 /* Required */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}(EventData));\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { MessageData } from \"../Interfaces/Contracts/Generated/MessageData\";\r\nimport { dataSanitizeMessage, dataSanitizeProperties, dataSanitizeMeasurements } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar Trace = /** @class */ (function (_super) {\r\n __extends(Trace, _super);\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n message: 1 /* Required */,\r\n severityLevel: 0 /* Default */,\r\n properties: 0 /* Default */\r\n };\r\n message = message || strNotSpecified;\r\n _this.message = dataSanitizeMessage(logger, message);\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _this.severityLevel = severityLevel;\r\n }\r\n return _this;\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}(MessageData));\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Instances of Message represent printf-like trace statements that are text-searched. Log4Net, NLog and other text-based log file entries are translated into intances of this type. The message does not have measurements.\r\n */\r\nvar MessageData = /** @class */ (function () {\r\n function MessageData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return MessageData;\r\n}());\r\nexport { MessageData };\r\n//# sourceMappingURL=MessageData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * An instance of the Metric item is a list of measurements (single data points) and/or aggregations.\r\n */\r\nvar MetricData = /** @class */ (function () {\r\n function MetricData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * List of metrics. Only one metric in the list is currently supported by Application Insights storage. If multiple data points were sent only the first one will be used.\r\n */\r\n this.metrics = [];\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return MetricData;\r\n}());\r\nexport { MetricData };\r\n//# sourceMappingURL=MetricData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DataPointType } from \"./DataPointType\";\r\n/**\r\n * Metric data single measurement.\r\n */\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = DataPointType.Measurement;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { DataPoint as AIDataPoint } from \"../../Interfaces/Contracts/Generated/DataPoint\";\r\nvar DataPoint = /** @class */ (function (_super) {\r\n __extends(DataPoint, _super);\r\n function DataPoint() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n _this.aiDataContract = {\r\n name: 1 /* Required */,\r\n kind: 0 /* Default */,\r\n value: 1 /* Required */,\r\n count: 0 /* Default */,\r\n min: 0 /* Default */,\r\n max: 0 /* Default */,\r\n stdDev: 0 /* Default */\r\n };\r\n return _this;\r\n }\r\n return DataPoint;\r\n}(AIDataPoint));\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { MetricData } from \"../Interfaces/Contracts/Generated/MetricData\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar Metric = /** @class */ (function (_super) {\r\n __extends(Metric, _super);\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n metrics: 1 /* Required */,\r\n properties: 0 /* Default */\r\n };\r\n var dataPoint = new DataPoint();\r\n dataPoint.count = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _this.metrics = [dataPoint];\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}(MetricData));\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { EventData } from \"./EventData\";\r\n/**\r\n * An instance of PageView represents a generic action on a page like a button click. It is also the base type for PageView.\r\n */\r\nvar PageViewData = /** @class */ (function (_super) {\r\n __extends(PageViewData, _super);\r\n function PageViewData() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Schema version\r\n */\r\n _this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n _this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n _this.measurements = {};\r\n return _this;\r\n }\r\n return PageViewData;\r\n}(EventData));\r\nexport { PageViewData };\r\n//# sourceMappingURL=PageViewData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString().toLowerCase() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = \"\" + totalms % 1000;\r\n var sec = \"\" + Math.floor(totalms / 1000) % 60;\r\n var min = \"\" + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = \"\" + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms.length === 1 ? \"00\" + ms : ms.length === 2 ? \"0\" + ms : ms;\r\n sec = sec.length < 2 ? \"0\" + sec : sec;\r\n min = min.length < 2 ? \"0\" + min : min;\r\n hour = hour.length < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : \"\") + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { PageViewData } from \"../Interfaces/Contracts/Generated/PageViewData\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar PageView = /** @class */ (function (_super) {\r\n __extends(PageView, _super);\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n name: 0 /* Default */,\r\n url: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */,\r\n id: 0 /* Default */\r\n };\r\n _this.id = dataSanitizeId(logger, id);\r\n _this.url = dataSanitizeUrl(logger, url);\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _this.duration = msToTimeSpan(durationMs);\r\n }\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}(PageViewData));\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { PageViewPerfData } from \"../Interfaces/Contracts/Generated/PageViewPerfData\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar PageViewPerformance = /** @class */ (function (_super) {\r\n __extends(PageViewPerformance, _super);\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n name: 0 /* Default */,\r\n url: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n perfTotal: 0 /* Default */,\r\n networkConnect: 0 /* Default */,\r\n sentRequest: 0 /* Default */,\r\n receivedResponse: 0 /* Default */,\r\n domProcessing: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n _this.url = dataSanitizeUrl(logger, url);\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _this.domProcessing = cs4BaseData.domProcessing;\r\n _this.duration = cs4BaseData.duration;\r\n _this.networkConnect = cs4BaseData.networkConnect;\r\n _this.perfTotal = cs4BaseData.perfTotal;\r\n _this.receivedResponse = cs4BaseData.receivedResponse;\r\n _this.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n return _this;\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}(PageViewPerfData));\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { PageViewData } from \"./PageViewData\";\r\n/**\r\n * An instance of PageViewPerf represents: a page view with no performance data, a page view with performance data, or just the performance data of an earlier page request.\r\n */\r\nvar PageViewPerfData = /** @class */ (function (_super) {\r\n __extends(PageViewPerfData, _super);\r\n function PageViewPerfData() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Schema version\r\n */\r\n _this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n _this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n _this.measurements = {};\r\n return _this;\r\n }\r\n return PageViewPerfData;\r\n}(PageViewData));\r\nexport { PageViewPerfData };\r\n//# sourceMappingURL=PageViewPerfData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Stack frame information.\r\n */\r\nvar StackFrame = /** @class */ (function () {\r\n function StackFrame() {\r\n }\r\n return StackFrame;\r\n}());\r\nexport { StackFrame };\r\n//# sourceMappingURL=StackFrame.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Exception details of the exception in a chain.\r\n */\r\nvar ExceptionDetails = /** @class */ (function () {\r\n function ExceptionDetails() {\r\n /**\r\n * Indicates if full exception stack is provided in the exception. The stack may be trimmed, such as in the case of a StackOverflow exception.\r\n */\r\n this.hasFullStack = true;\r\n /**\r\n * List of stack frames. Either stack or parsedStack should have a value.\r\n */\r\n this.parsedStack = [];\r\n }\r\n return ExceptionDetails;\r\n}());\r\nexport { ExceptionDetails };\r\n//# sourceMappingURL=ExceptionDetails.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __assign, __extends } from \"tslib\";\r\nimport { StackFrame } from \"../Interfaces/Contracts/Generated/StackFrame\";\r\nimport { ExceptionData } from \"../Interfaces/Contracts/Generated/ExceptionData\";\r\nimport { ExceptionDetails } from \"../Interfaces/Contracts/Generated/ExceptionDetails\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nimport { isNullOrUndefined, arrMap, isString, strTrim, isArray, isError, arrForEach, isObject, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar NoMethod = \"\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON.stringify) {\r\n result = JSON.stringify(value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value.toString)) {\r\n result = value.toString();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && (evtMessage || \"\").indexOf(errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src.split(\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage.split(\"\\n\");\r\n for (var lp = 0; lp < lines.length; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack.push(entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (window && window[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj.message);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames.length > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame.toString();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame.sizeInBytes;\r\n parsedStack.push(parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack.length - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left].sizeInBytes;\r\n var rSize = parsedStack[right].sizeInBytes;\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType.name || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor.toString());\r\n typeName = (results && results.length > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (result.indexOf(errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function (_super) {\r\n __extends(Exception, _super);\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n exceptions: 1 /* Required */,\r\n severityLevel: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n _this.exceptions = [new _ExceptionDetails(logger, exception, properties)];\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _this.severityLevel = severityLevel;\r\n }\r\n if (id) {\r\n _this.id = id;\r\n }\r\n }\r\n else {\r\n _this.exceptions = exception.exceptions;\r\n _this.properties = exception.properties;\r\n _this.measurements = exception.measurements;\r\n if (exception.severityLevel) {\r\n _this.severityLevel = exception.severityLevel;\r\n }\r\n if (exception.id) {\r\n _this.id = exception.id;\r\n }\r\n if (exception.problemGroup) {\r\n _this.problemGroup = exception.problemGroup;\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n _this.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!isNullOrUndefined(exception.isManual)) {\r\n _this.isManual = exception.isManual;\r\n }\r\n }\r\n return _this;\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var errorType = _getErrorType(error || evt || message);\r\n return {\r\n message: _formatMessage(message, errorType),\r\n url: url,\r\n lineNumber: lineNumber,\r\n columnNumber: columnNumber,\r\n error: _formatErrorCode(error || evt || message),\r\n evt: _formatErrorCode(evt || message),\r\n typeName: errorType,\r\n stackDetails: _getStackFromErrorObj(stack || error || evt),\r\n errorSrc: errorSrc\r\n };\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception.exceptions\r\n && arrMap(exception.exceptions, function (ex) { return _ExceptionDetails.CreateFromInterface(logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a = this, exceptions = _a.exceptions, properties = _a.properties, measurements = _a.measurements, severityLevel = _a.severityLevel, ver = _a.ver, problemGroup = _a.problemGroup, id = _a.id, isManual = _a.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return {\r\n ver: \"4.0\",\r\n exceptions: exceptionDetailsInterface,\r\n severityLevel: severityLevel,\r\n properties: properties,\r\n measurements: measurements,\r\n problemGroup: problemGroup,\r\n id: id,\r\n isManual: isManual\r\n };\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n return {\r\n exceptions: [\r\n {\r\n hasFullStack: true,\r\n message: message,\r\n stack: details,\r\n typeName: typeName\r\n }\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}(ExceptionData));\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function (_super) {\r\n __extends(_ExceptionDetails, _super);\r\n function _ExceptionDetails(logger, exception, properties) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n id: 0 /* Default */,\r\n outerId: 0 /* Default */,\r\n typeName: 1 /* Required */,\r\n message: 1 /* Required */,\r\n hasFullStack: 0 /* Default */,\r\n stack: 0 /* Default */,\r\n parsedStack: 2 /* Array */\r\n };\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _this.typeName = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _this.message = dataSanitizeMessage(logger, _formatMessage(exception || error, _this.typeName)) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _this.parsedStack = _parseStack(stack);\r\n _this[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _this.hasFullStack = isArray(_this.parsedStack) && _this.parsedStack.length > 0;\r\n if (properties) {\r\n properties.typeName = properties.typeName || _this.typeName;\r\n }\r\n }\r\n else {\r\n _this.typeName = exception.typeName;\r\n _this.message = exception.message;\r\n _this[strStack] = exception[strStack];\r\n _this.parsedStack = exception.parsedStack;\r\n _this.hasFullStack = exception.hasFullStack;\r\n }\r\n return _this;\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var parsedStack = this.parsedStack instanceof Array\r\n && arrMap(this.parsedStack, function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = {\r\n id: this.id,\r\n outerId: this.outerId,\r\n typeName: this.typeName,\r\n message: this.message,\r\n hasFullStack: this.hasFullStack,\r\n stack: this[strStack],\r\n parsedStack: parsedStack || undefined\r\n };\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception.parsedStack instanceof Array\r\n && arrMap(exception.parsedStack, function (frame) { return _StackFrame.CreateFromInterface(frame); }))\r\n || exception.parsedStack;\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}(ExceptionDetails));\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function (_super) {\r\n __extends(_StackFrame, _super);\r\n function _StackFrame(sourceFrame, level) {\r\n var _this = _super.call(this) || this;\r\n _this.sizeInBytes = 0;\r\n _this.aiDataContract = {\r\n level: 1 /* Required */,\r\n method: 1 /* Required */,\r\n assembly: 0 /* Default */,\r\n fileName: 0 /* Default */,\r\n line: 0 /* Default */\r\n };\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _this.level = level;\r\n _this.method = NoMethod;\r\n _this.assembly = strTrim(frame);\r\n _this.fileName = \"\";\r\n _this.line = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches.length >= 5) {\r\n _this.method = strTrim(matches[2]) || _this.method;\r\n _this.fileName = strTrim(matches[4]);\r\n _this.line = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _this.level = sourceFrame.level;\r\n _this.method = sourceFrame.method;\r\n _this.assembly = sourceFrame.assembly;\r\n _this.fileName = sourceFrame.fileName;\r\n _this.line = sourceFrame.line;\r\n _this.sizeInBytes = 0;\r\n }\r\n _this.sizeInBytes += _this.method.length;\r\n _this.sizeInBytes += _this.fileName.length;\r\n _this.sizeInBytes += _this.assembly.length;\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _this.sizeInBytes += _StackFrame.baseSize;\r\n _this.sizeInBytes += _this.level.toString().length;\r\n _this.sizeInBytes += _this.line.toString().length;\r\n return _this;\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n return {\r\n level: this.level,\r\n method: this.method,\r\n assembly: this.assembly,\r\n fileName: this.fileName,\r\n line: this.line\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}(StackFrame));\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Type of storage to differentiate between local storage and session storage\r\n */\r\nexport var StorageType;\r\n(function (StorageType) {\r\n StorageType[StorageType[\"LocalStorage\"] = 0] = \"LocalStorage\";\r\n StorageType[StorageType[\"SessionStorage\"] = 1] = \"SessionStorage\";\r\n})(StorageType || (StorageType = {}));\r\nexport var DistributedTracingModes;\r\n(function (DistributedTracingModes) {\r\n /**\r\n * (Default) Send Application Insights correlation headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"AI\"] = 0] = \"AI\";\r\n /**\r\n * Send both W3C Trace Context headers and back-compatibility Application Insights headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"AI_AND_W3C\"] = 1] = \"AI_AND_W3C\";\r\n /**\r\n * Send W3C Trace Context headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"W3C\"] = 2] = \"W3C\";\r\n})(DistributedTracingModes || (DistributedTracingModes = {}));\r\n//# sourceMappingURL=Enums.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * An instance of Exception represents a handled or unhandled exception that occurred during execution of the monitored application.\r\n */\r\nvar ExceptionData = /** @class */ (function () {\r\n function ExceptionData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Exception chain - list of inner exceptions.\r\n */\r\n this.exceptions = [];\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return ExceptionData;\r\n}());\r\nexport { ExceptionData };\r\n//# sourceMappingURL=ExceptionData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, LoggingSeverity, objForEachKey, _InternalMessageId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = new Date;\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n storage.setItem(uid.toString(), uid.toString());\r\n var fail = storage.getItem(uid.toString()) !== uid.toString();\r\n storage.removeItem(uid.toString());\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\nexport function utlCanUseLocalStorage() {\r\n if (_canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadLocalStorage, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteLocalStorage, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.removeItem(name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromLocalStorage, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage() {\r\n if (_canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys.push(key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadSessionStorage, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteSessionStorage, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.removeItem(name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromSessionStorage, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isFunction, getDocument } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var RequestHeaders = {\r\n requestContextHeader: \"Request-Context\",\r\n requestContextTargetKey: \"appId\",\r\n requestContextAppIdFormat: \"appId=cid-v1:\",\r\n requestIdHeader: \"Request-Id\",\r\n traceParentHeader: \"traceparent\",\r\n traceStateHeader: \"tracestate\",\r\n sdkContextHeader: \"Sdk-Context\",\r\n sdkContextHeaderAppIdRequest: \"appId\",\r\n requestContextHeaderLowerCase: \"request-context\"\r\n};\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache.length) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.pathname;\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www[0-9]?\\.)?(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match.length > 3 && isString(match[2]) && match[2].length > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w*):\\/\\/(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match.length > 2 && isString(match[2]) && match[2].length > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match.length > 2) {\r\n var protocol = (match[1] || \"\").toLowerCase();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getPerformance, getExceptionName as coreGetExceptionName, dumpObj, isNullOrUndefined, strTrim, random32, isArray, isError, isDate, newId, generateW3CId, toISOString, arrForEach, getIEVersion, attachEvent, dateNow, uaDisallowsSameSiteNone, disableCookies as coreDisableCookies, canUseCookies as coreCanUseCookies, getCookie as coreGetCookie, setCookie as coreSetCookie, deleteCookie as coreDeleteCookie, isBeaconsSupported } from \"@microsoft/applicationinsights-core-js\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { createDomEvent } from \"./DomHelperFuncs\";\r\nimport { stringToBoolOrDefault, msToTimeSpan, isCrossOriginError, getExtensionByName } from \"./HelperFuncs\";\r\nimport { strNotSpecified } from \"./Constants\";\r\nimport { utlCanUseLocalStorage, utlCanUseSessionStorage, utlDisableStorage, utlGetSessionStorage, utlGetSessionStorageKeys, utlGetLocalStorage, utlRemoveSessionStorage, utlRemoveStorage, utlSetSessionStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\r\nimport { urlGetAbsoluteUrl, urlGetCompleteUrl, urlGetPathName, urlParseFullHost, urlParseHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n \"https://dc.services.visualstudio.com/v2/track\",\r\n \"https://breeze.aimon.applicationinsights.io/v2/track\",\r\n \"https://dc-int.services.visualstudio.com/v2/track\"\r\n];\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return _internalEndpoints.indexOf(endpointUrl.toLowerCase()) !== -1;\r\n}\r\nexport var Util = {\r\n NotSpecified: strNotSpecified,\r\n createDomEvent: createDomEvent,\r\n disableStorage: utlDisableStorage,\r\n isInternalApplicationInsightsEndpoint: isInternalApplicationInsightsEndpoint,\r\n canUseLocalStorage: utlCanUseLocalStorage,\r\n getStorage: utlGetLocalStorage,\r\n setStorage: utlSetLocalStorage,\r\n removeStorage: utlRemoveStorage,\r\n canUseSessionStorage: utlCanUseSessionStorage,\r\n getSessionStorageKeys: utlGetSessionStorageKeys,\r\n getSessionStorage: utlGetSessionStorage,\r\n setSessionStorage: utlSetSessionStorage,\r\n removeSessionStorage: utlRemoveSessionStorage,\r\n disableCookies: coreDisableCookies,\r\n canUseCookies: coreCanUseCookies,\r\n disallowsSameSiteNone: uaDisallowsSameSiteNone,\r\n setCookie: coreSetCookie,\r\n stringToBoolOrDefault: stringToBoolOrDefault,\r\n getCookie: coreGetCookie,\r\n deleteCookie: coreDeleteCookie,\r\n trim: strTrim,\r\n newId: newId,\r\n random32: function () {\r\n return random32(true);\r\n },\r\n generateW3CId: generateW3CId,\r\n isArray: isArray,\r\n isError: isError,\r\n isDate: isDate,\r\n toISOStringForIE8: toISOString,\r\n getIEVersion: getIEVersion,\r\n msToTimeSpan: msToTimeSpan,\r\n isCrossOriginError: isCrossOriginError,\r\n dump: dumpObj,\r\n getExceptionName: coreGetExceptionName,\r\n addEventHandler: attachEvent,\r\n IsBeaconApiSupported: isBeaconsSupported,\r\n getExtension: getExtensionByName\r\n};\r\nexport var UrlHelper = {\r\n parseUrl: urlParseUrl,\r\n getAbsoluteUrl: urlGetAbsoluteUrl,\r\n getPathName: urlGetPathName,\r\n getCompleteUrl: urlGetCompleteUrl,\r\n parseHost: urlParseHost,\r\n parseFullHost: urlParseFullHost\r\n};\r\nexport var CorrelationIdHelper = {\r\n correlationIdPrefix: \"cid-v1:\",\r\n /**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\n canIncludeCorrelationHeader: function (config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config.correlationHeaderExcludePatterns) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns.length; i++) {\r\n if (config.correlationHeaderExcludePatterns[i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host.toLowerCase();\r\n if (requestHost && (requestHost.indexOf(\":443\") !== -1 || requestHost.indexOf(\":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\").toLowerCase();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains.length === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains.length; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost.length > 0;\r\n },\r\n /**\r\n * Combines target appId and target role name from response header.\r\n */\r\n getCorrelationContext: function (responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders.requestContextTargetKey);\r\n if (correlationId && correlationId !== CorrelationIdHelper.correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n },\r\n /**\r\n * Gets key from correlation response header\r\n */\r\n getCorrelationContextValue: function (responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader.split(\",\");\r\n for (var i = 0; i < keyValues.length; ++i) {\r\n var keyValue = keyValues[i].split(\"=\");\r\n if (keyValue.length === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl.length > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl.pathname != null) {\r\n var pathName = (parsedUrl.pathname.length === 0) ? \"/\" : parsedUrl.pathname;\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl.pathname;\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * A utility class that helps getting time related parameters\r\n */\r\nexport var DateTimeUtils = {\r\n Now: dateTimeUtilsNow,\r\n GetDuration: dateTimeUtilsDuration\r\n};\r\n//# sourceMappingURL=Util.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { RemoteDependencyData as GeneratedRemoteDependencyData } from \"../Interfaces/Contracts/Generated/RemoteDependencyData\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nvar RemoteDependencyData = /** @class */ (function (_super) {\r\n __extends(RemoteDependencyData, _super);\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n id: 1 /* Required */,\r\n ver: 1 /* Required */,\r\n name: 0 /* Default */,\r\n resultCode: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n success: 0 /* Default */,\r\n data: 0 /* Default */,\r\n target: 0 /* Default */,\r\n type: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */,\r\n kind: 0 /* Default */,\r\n value: 0 /* Default */,\r\n count: 0 /* Default */,\r\n min: 0 /* Default */,\r\n max: 0 /* Default */,\r\n stdDev: 0 /* Default */,\r\n dependencyKind: 0 /* Default */,\r\n dependencySource: 0 /* Default */,\r\n commandName: 0 /* Default */,\r\n dependencyTypeName: 0 /* Default */\r\n };\r\n _this.id = id;\r\n _this.duration = msToTimeSpan(value);\r\n _this.success = success;\r\n _this.resultCode = resultCode + \"\";\r\n _this.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _this.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _this.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _this.target = \"\".concat(_this.target, \" | \").concat(correlationContext);\r\n }\r\n _this.name = dataSanitizeString(logger, dependencyFields.name);\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}(GeneratedRemoteDependencyData));\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * An instance of Remote Dependency represents an interaction of the monitored component with a remote component/service like SQL or an HTTP endpoint.\r\n */\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n function RemoteDependencyData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Indication of successful or unsuccessful call.\r\n */\r\n this.success = true;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, getDocument, getLocation, arrForEach, isNullOrUndefined, getExceptionName, dumpObj } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var intervalHandle = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels() {\r\n if (core) {\r\n arrForEach(core.getTransmissionControls(), function (queues) {\r\n arrForEach(queues, function (q) { return q.flush(true); });\r\n });\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n if (!intervalHandle) {\r\n intervalHandle = setInterval((function () {\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue.length === 0) {\r\n clearInterval(intervalHandle);\r\n intervalHandle = null;\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels();\r\n }\r\n }), 100);\r\n }\r\n }\r\n _self.trackPageView = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1.href || \"\";\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager.isPerformanceTimingSupported()) {\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n _flushChannels();\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NavigationTimingNotSupported, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager.getPerformanceTiming().navigationStart;\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager.shouldCollectDuration(customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties.duration)) {\r\n duration = customProperties.duration;\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[\"duration\"] = customDuration;\r\n }\r\n // case 2\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n _flushChannels();\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager.isPerformanceTimingDataReady()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[\"duration\"] = customDuration;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = pageViewPerformance.durationMs;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = maxDurationLimit;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailedCalc, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n });\r\n }\r\n /**\r\n * Currently supported cases:\r\n * 1) (default case) track page view called with default parameters, overridePageViewDuration = false. Page view is sent with page view performance when navigation timing data is available.\r\n * a. If navigation timing is not supported then page view is sent right away with undefined duration. Page view performance is not sent.\r\n * 2) overridePageViewDuration = true, custom duration provided. Custom duration is used, page view sends right away.\r\n * 3) overridePageViewDuration = true, custom duration NOT provided. Page view is sent right away, duration is time spent from page load till now (or undefined if navigation timing is not supported).\r\n * 4) overridePageViewDuration = false, custom duration is provided. Page view is sent right away with custom duration.\r\n *\r\n * In all cases page view performance is sent once (only for the 1st call of trackPageView), or not sent if navigation timing is not supported.\r\n */\r\n PageViewManager.prototype.trackPageView = function (pageView, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { hasJSON, getJSON, dateNow, dumpObj, throwError } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n this.prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;\r\n this._logger = logger;\r\n }\r\n /**\r\n * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n * @param currentPageName Name of page to begin timing for visit duration\r\n * @param currentPageUrl Url of page to begin timing for visit duration\r\n */\r\n PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n var prevPageVisitData = this.stopPageVisitTimer();\r\n this.startPageVisitTimer(pageName, pageUrl);\r\n return prevPageVisitData;\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Call to restart failed: \" + dumpObj(e));\r\n return null;\r\n }\r\n };\r\n /**\r\n * Starts timing visit duration of pageName\r\n * @param pageName\r\n * @returns {}\r\n */\r\n PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitData = new PageVisitData(pageName, pageUrl);\r\n var currPageVisitDataStr = getJSON().stringify(currPageVisitData);\r\n utlSetSessionStorage(this._logger, this.prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n // TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\r\n this._logger.warnToConsole(\"Call to start failed: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.stopPageVisitTimer = function () {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n var prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n // Return page visit data\r\n return prevPageVisitData;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n return null;\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Stop page visit timer failed: \" + dumpObj(e));\r\n return null;\r\n }\r\n };\r\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this.pageVisitStartTime = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, getNavigator, getPerformance } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n this.MAX_DURATION_ALLOWED = 3600000; // 1h\r\n if (core) {\r\n this._logger = core.logger;\r\n }\r\n }\r\n PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = this.getPerformanceNavigationTiming();\r\n var timing = this.getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming.duration;\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming.startTime === 0 ? navigationTiming.connectEnd : dateTimeUtilsDuration(navigationTiming.startTime, navigationTiming.connectEnd);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming.responseStart);\r\n response = dateTimeUtilsDuration(navigationTiming.responseStart, navigationTiming.responseEnd);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming.loadEventEnd);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing.navigationStart, timing.loadEventEnd);\r\n network = dateTimeUtilsDuration(timing.navigationStart, timing.connectEnd);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing.responseStart);\r\n response = dateTimeUtilsDuration(timing.responseStart, timing.responseEnd);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing.loadEventEnd);\r\n }\r\n if (total === 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ErrorPVCalc, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!this.shouldCollectDuration(total, network, request, response, dom)) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InvalidDurationValue, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ClientPerformanceMathError, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance.duration = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceTiming = function () {\r\n if (this.isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceNavigationTiming = function () {\r\n if (this.isPerformanceNavigationTimingSupported()) {\r\n return getPerformance().getEntriesByType(\"navigation\")[0];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns true is window PerformanceNavigationTiming API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceNavigationTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\").length > 0;\r\n };\r\n /**\r\n * Returns true is window performance timing API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.timing;\r\n };\r\n /**\r\n * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n * Returns true if ready, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingDataReady = function () {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing.navigationStart > 0\r\n && timing.responseStart > 0\r\n && timing.requestStart > 0\r\n && timing.loadEventEnd > 0\r\n && timing.responseEnd > 0\r\n && timing.connectEnd > 0\r\n && timing.domLoading > 0;\r\n };\r\n /**\r\n * This method tells if given durations should be excluded from collection.\r\n */\r\n PageViewPerformanceManager.prototype.shouldCollectDuration = function () {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames.length; i++) {\r\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations.length; i++) {\r\n if (durations[i] < 0 || durations[i] >= this.MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/**\r\n * ApplicationInsights.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport { __assign, __extends } from \"tslib\";\r\nimport { PageViewPerformance, PageView, RemoteDependencyData, Event as EventTelemetry, TelemetryItemCreator, Metric, Exception, SeverityLevel, Trace, dateTimeUtilsDuration, PropertiesPluginIdentifier, AnalyticsPluginIdentifier, stringToBoolOrDefault, createDomEvent, strNotSpecified, isCrossOriginError, utlDisableStorage, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, LoggingSeverity, _InternalMessageId, getWindow, getDocument, getHistory, getLocation, doPerf, objForEachKey, isString, isFunction, isNullOrUndefined, arrForEach, generateW3CId, dumpObj, getExceptionName, safeGetCookieMgr } from \"@microsoft/applicationinsights-core-js\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n\"use strict\";\r\nvar durationProperty = \"duration\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason.toString)) {\r\n return reason.toString();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar ApplicationInsights = /** @class */ (function (_super) {\r\n __extends(ApplicationInsights, _super);\r\n function ApplicationInsights() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _properties;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n dynamicProto(ApplicationInsights, _this, function (_self, _base) {\r\n var location = getLocation(true);\r\n _prevUri = location && location.href || \"\";\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self.core);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n doPerf(_self.core, function () { return _self.identifier + \":processTelemetry\"; }, function () {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _self._telemetryInitializers.length;\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _self._telemetryInitializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.apply(null, [env]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n if (!doNotSendItem) {\r\n _self.processNext(env, itemCtx);\r\n }\r\n }, function () { return ({ item: env }); }, !(env.sync));\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(event, EventTelemetry.dataType, EventTelemetry.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties); // Todo: Fix to pass measurements once type is updated\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(trace, Trace.dataType, Trace.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(metric, Metric.dataType, Metric.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self.trackPageView = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _self._pageViewManager.trackPageView(inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_self.config.autoTrackPageVisitTime) {\r\n _self._pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView Page view item to be sent\r\n * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self.sendPageViewInternal = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n var telemetryItem = TelemetryItemCreator.create(pageView, PageView.dataType, PageView.envelopeType, _self.diagLog(), properties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self.sendPageViewPerformanceInternal = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = TelemetryItemCreator.create(pageViewPerformance, PageViewPerformance.dataType, PageViewPerformance.envelopeType, _self.diagLog(), properties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n try {\r\n _self._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n _self.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc.href || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_self.config.autoTrackPageVisitTime) {\r\n _self._pageVisitTimeManager.trackPreviousPageVisit(name, url);\r\n }\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self.sendExceptionInternal = function (exception, customProperties, systemProperties) {\r\n var theError = exception.exception || exception.error || new Error(strNotSpecified);\r\n var exceptionPartB = new Exception(_self.diagLog(), theError, exception.properties || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = TelemetryItemCreator.create(exceptionPartB, Exception.dataType, Exception.envelopeType, _self.diagLog(), customProperties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param {IExceptionTelemetry} exception Object which contains exception to be sent\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n try {\r\n _self.sendExceptionInternal(exception, customProperties);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self._onerror = function (exception) {\r\n var error = exception && exception.error;\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception.errorSrc || \"window.onerror@\" + url + \":\" + (exception.lineNumber || 0) + \":\" + (exception.columnNumber || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception.lineNumber || 0,\r\n columnNumber: exception.columnNumber || 0,\r\n message: exception.message\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception.error)) {\r\n _sendCORSException(Exception.CreateAutoException(\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception.lineNumber || 0, exception.columnNumber || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception.errorSrc) {\r\n exception.errorSrc = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: SeverityLevel.Error }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error.message) : \"null\";\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n _self._telemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throw Error(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _self.setInitialized(false); // resetting the initialized state, just in case the following fails\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n _self.config = ctx.getExtCfg(identifier);\r\n // load default values if specified\r\n var defaults = ApplicationInsights.getDefaultConfig(config);\r\n if (defaults !== undefined) {\r\n objForEachKey(defaults, function (field, value) {\r\n // for each unspecified field, set the default value\r\n _self.config[field] = ctx.getConfig(identifier, field, value);\r\n if (_self.config[field] === undefined) {\r\n _self.config[field] = value;\r\n }\r\n });\r\n }\r\n // Todo: move this out of static state\r\n if (_self.config.isStorageUseDisabled) {\r\n utlDisableStorage();\r\n }\r\n var configGetters = {\r\n instrumentationKey: function () { return config.instrumentationKey; },\r\n accountId: function () { return _self.config.accountId || config.accountId; },\r\n sessionRenewalMs: function () { return _self.config.sessionRenewalMs || config.sessionRenewalMs; },\r\n sessionExpirationMs: function () { return _self.config.sessionExpirationMs || config.sessionExpirationMs; },\r\n sampleRate: function () { return _self.config.samplingPercentage || config.samplingPercentage; },\r\n sdkExtension: function () { return _self.config.sdkExtension || config.sdkExtension; },\r\n isBrowserLinkTrackingEnabled: function () { return _self.config.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled; },\r\n appId: function () { return _self.config.appId || config.appId; }\r\n };\r\n _self._pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);\r\n _self._pageViewManager = new PageViewManager(_this, _self.config.overridePageViewDuration, _self.core, _self._pageViewPerformanceManager);\r\n _self._pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _self._telemetryInitializers = _self._telemetryInitializers || [];\r\n _addDefaultTelemetryInitializers(configGetters);\r\n _eventTracking = new Timing(_self.diagLog(), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n _self.trackEvent({ name: name, properties: properties });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self.diagLog(), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self.sendPageViewInternal(pageViewItem, properties);\r\n };\r\n var _window = getWindow();\r\n var _history = getHistory();\r\n var _location = getLocation(true);\r\n var instance = _this;\r\n if (_self.config.disableExceptionTracking === false &&\r\n !_self.config.autoExceptionInstrumented && _window) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n var onerror_1 = \"onerror\";\r\n var originalOnError_1 = _window[onerror_1];\r\n _window.onerror = function (message, url, lineNumber, columnNumber, error) {\r\n var evt = _window[strEvent];\r\n var handled = originalOnError_1 && originalOnError_1(message, url, lineNumber, columnNumber, error);\r\n if (handled !== true) { // handled could be typeof function\r\n instance._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, evt));\r\n }\r\n return handled;\r\n };\r\n _self.config.autoExceptionInstrumented = true;\r\n }\r\n if (_self.config.disableExceptionTracking === false &&\r\n _self.config.enableUnhandledPromiseRejectionTracking === true &&\r\n !_self.config.autoUnhandledPromiseInstrumented && _window) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n var onunhandledrejection_1 = \"onunhandledrejection\";\r\n var originalOnUnhandledRejection_1 = _window[onunhandledrejection_1];\r\n _window[onunhandledrejection_1] = function (error) {\r\n var evt = _window[strEvent];\r\n var handled = originalOnUnhandledRejection_1 && originalOnUnhandledRejection_1.call(_window, error);\r\n if (handled !== true) { // handled could be typeof function\r\n instance._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : \"\", 0, 0, error, evt));\r\n }\r\n return handled;\r\n };\r\n _self.config.autoUnhandledPromiseInstrumented = true;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (_self.config.enableAutoRouteTracking === true\r\n && _history && isFunction(_history.pushState) && isFunction(_history.replaceState)\r\n && _window\r\n && typeof Event !== \"undefined\") {\r\n var _self_1 = _this;\r\n // Find the properties plugin\r\n arrForEach(extensions, function (extension) {\r\n if (extension.identifier === PropertiesPluginIdentifier) {\r\n _properties = extension;\r\n }\r\n });\r\n _history.pushState = (function (f) { return function pushState() {\r\n var ret = f.apply(this, arguments);\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"pushState\"));\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n }; })(_history.pushState);\r\n _history.replaceState = (function (f) { return function replaceState() {\r\n var ret = f.apply(this, arguments);\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"replaceState\"));\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n }; })(_history.replaceState);\r\n if (_window.addEventListener) {\r\n _window.addEventListener(_self_1.config.namePrefix + \"popstate\", function () {\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n });\r\n _window.addEventListener(_self_1.config.namePrefix + \"locationchange\", function () {\r\n if (_properties && _properties.context && _properties.context.telemetryTrace) {\r\n _properties.context.telemetryTrace.traceID = generateW3CId();\r\n var traceLocationName = \"_unknown_\";\r\n if (_location && _location.pathname) {\r\n traceLocationName = _location.pathname + (_location.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n _properties.context.telemetryTrace.name = dataSanitizeString(_self_1.diagLog(), traceLocationName);\r\n }\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = _location && _location.href || \"\";\r\n }\r\n else {\r\n _currUri = _location && _location.href || \"\";\r\n }\r\n setTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self_1.trackPageView({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_this, _prevUri), _self_1.autoRoutePVDelay);\r\n });\r\n }\r\n }\r\n _self.setInitialized(true);\r\n };\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milleseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers(configGetters) {\r\n if (!configGetters.isBrowserLinkTrackingEnabled()) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (envelope.baseType === RemoteDependencyData.dataType) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1.length; i++) {\r\n if (remoteData.target && remoteData.target.indexOf(browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _addTelemetryInitializer(dropBrowserLinkRequests);\r\n }\r\n }\r\n function _addTelemetryInitializer(telemetryInitializer) {\r\n _self._telemetryInitializers.push(telemetryInitializer);\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, _self.diagLog(), properties);\r\n _self.core.track(telemetryItem);\r\n }\r\n });\r\n return _this;\r\n }\r\n ApplicationInsights.getDefaultConfig = function (config) {\r\n if (!config) {\r\n config = {};\r\n }\r\n // set default values\r\n config.sessionRenewalMs = 30 * 60 * 1000;\r\n config.sessionExpirationMs = 24 * 60 * 60 * 1000;\r\n config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);\r\n config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);\r\n config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);\r\n config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);\r\n if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {\r\n config.samplingPercentage = 100;\r\n }\r\n config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);\r\n config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);\r\n config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);\r\n config.namePrefix = config.namePrefix || \"\";\r\n config.enableDebug = stringToBoolOrDefault(config.enableDebug);\r\n config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);\r\n config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);\r\n return config;\r\n };\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n ApplicationInsights.prototype.getCookieMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ApplicationInsights.prototype.processTelemetry = function (env, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ApplicationInsights.prototype.trackEvent = function (event, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n ApplicationInsights.prototype.startTrackEvent = function (name) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n ApplicationInsights.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackTrace = function (trace, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackMetric = function (metric, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n ApplicationInsights.prototype.trackPageView = function (pageView, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView Page view item to be sent\r\n * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n ApplicationInsights.prototype.sendPageViewInternal = function (pageView, properties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n ApplicationInsights.prototype.sendPageViewPerformanceInternal = function (pageViewPerformance, properties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n ApplicationInsights.prototype.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n ApplicationInsights.prototype.startTrackPage = function (name) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n ApplicationInsights.prototype.stopTrackPage = function (name, url, properties, measurement) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n ApplicationInsights.prototype.sendExceptionInternal = function (exception, customProperties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param {IExceptionTelemetry} exception Object which contains exception to be sent\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackException = function (exception, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype._onerror = function (exception) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ApplicationInsights.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ApplicationInsights.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ApplicationInsights.Version = \"2.7.2\"; // Not currently used anywhere\r\n return ApplicationInsights;\r\n}(BaseTelemetryPlugin));\r\nexport { ApplicationInsights };\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\n//# sourceMappingURL=ApplicationInsights.js.map","import { __extends } from \"tslib\";\r\nimport { utlGetSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, getJSON, arrForEach, isFunction, arrIndexOf, isString, dumpObj, isArray, getExceptionName } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n this._get = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self.enqueue = function (payload) {\r\n if (_self.count() >= config.eventsLimitInMem()) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InMemoryStorageBufferFull, \"Maximum in-memory buffer size reached: \" + _self.count(), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _buffer.push(payload);\r\n };\r\n _self.count = function () {\r\n return _buffer.length;\r\n };\r\n _self.size = function () {\r\n var size = _buffer.length;\r\n for (var lp = 0; lp < _buffer.length; lp++) {\r\n size += _buffer[lp].length;\r\n }\r\n if (!config.emitLineDelimitedJson()) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self.clear = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self.batchPayloads = function (payload) {\r\n if (payload && payload.length > 0) {\r\n var batch = config.emitLineDelimitedJson() ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n });\r\n }\r\n BaseSendBuffer.prototype.enqueue = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseSendBuffer.prototype.count = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n BaseSendBuffer.prototype.size = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n BaseSendBuffer.prototype.clear = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseSendBuffer.prototype.getItems = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseSendBuffer.prototype.batchPayloads = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self.markAsSent = function (payload) {\r\n _base.clear();\r\n };\r\n _self.clearSent = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n ArraySendBuffer.prototype.markAsSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ArraySendBuffer.prototype.clearSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer.BUFFER_KEY);\r\n var notDeliveredItems = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n var buffer = _self._set(bufferItems.concat(notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, buffer);\r\n _self.enqueue = function (payload) {\r\n if (_self.count() >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionStorageBufferFull, \"Maximum buffer size reached: \" + _self.count(), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _base.enqueue(payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());\r\n };\r\n _self.clear = function () {\r\n _base.clear();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.markAsSent = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._set(_removePayloadsFromBuffer(payload, _self._get())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements.concat(payload);\r\n if (sentElements.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SessionStorageBufferFull, \"Sent buffer reached its maximum size: \" + sentElements.length, true);\r\n sentElements.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n }\r\n };\r\n _self.clearSent = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {\r\n remaining.push(value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = utlGetSessionStorage(logger, prefixedKey);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToRestoreStorageBuffer, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON.stringify(buffer);\r\n utlSetSessionStorage(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n utlSetSessionStorage(logger, prefixedKey, JSON.stringify([]));\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedToSetStorageBuffer, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n SessionStorageSendBuffer.prototype.enqueue = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.clear = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.markAsSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.clearSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","import { ContextTagKeys } from \"./Contracts/Generated/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { Envelope as AIEnvelope } from \"../../Interfaces/Contracts/Generated/Envelope\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nvar Envelope = /** @class */ (function (_super) {\r\n __extends(Envelope, _super);\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = _super.call(this) || this;\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _this.data = data;\r\n _this.time = toISOString(new Date());\r\n _this.aiDataContract = {\r\n time: 1 /* Required */,\r\n iKey: 1 /* Required */,\r\n name: 1 /* Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* Hidden */ : 1 /* Required */;\r\n },\r\n tags: 1 /* Required */,\r\n data: 1 /* Required */\r\n };\r\n return _this;\r\n }\r\n return Envelope;\r\n}(AIEnvelope));\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * System variables for a telemetry item.\r\n */\r\nvar Envelope = /** @class */ (function () {\r\n function Envelope() {\r\n /**\r\n * Envelope version. For internal use only. By assigning this the default, it will not be serialized within the payload unless changed to a value other than #1.\r\n */\r\n this.ver = 1;\r\n /**\r\n * Sampling rate used in application. This telemetry item represents 1 / sampleRate actual telemetry items.\r\n */\r\n this.sampleRate = 100.0;\r\n /**\r\n * Key/value collection of context properties. See ContextTagKeys for information on available properties.\r\n */\r\n this.tags = {};\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Data struct to contain only C section with custom fields.\r\n */\r\nvar Base = /** @class */ (function () {\r\n function Base() {\r\n }\r\n return Base;\r\n}());\r\nexport { Base };\r\n//# sourceMappingURL=Base.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Base } from \"./Base\";\r\n/**\r\n * Data struct to contain both B and C sections.\r\n */\r\nvar Data = /** @class */ (function (_super) {\r\n __extends(Data, _super);\r\n function Data() {\r\n return _super.call(this) || this;\r\n }\r\n return Data;\r\n}(Base));\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { Data as AIData } from \"../../Interfaces/Contracts/Generated/Data\";\r\nvar Data = /** @class */ (function (_super) {\r\n __extends(Data, _super);\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n _this.aiDataContract = {\r\n baseType: 1 /* Required */,\r\n baseData: 1 /* Required */\r\n };\r\n _this.baseType = baseType;\r\n _this.baseData = data;\r\n return _this;\r\n }\r\n return Data;\r\n}(AIData));\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","import { __assign } from \"tslib\";\r\nimport { Data, Envelope, RemoteDependencyData, Event, Exception, Metric, PageView, Trace, PageViewPerformance, CtxTagKeys, HttpMethod, SampleRate, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, hasJSON, getJSON, objForEachKey, isNullOrUndefined, isNumber, isString, toISOString, setValue, isTruthy, optimizeObject } from \"@microsoft/applicationinsights-core-js\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env.tags = env.tags || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item.tags = item.tags || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceType);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env.data = env.data || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs.name);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace.name));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace.traceID);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags.length - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = \"javascript:\".concat(EnvelopeCreator.Version);\r\n }\r\n env.tags = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON().stringify(value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope.name = envelope.name.replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem.tags = telemetryItem.tags || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: \"2.7.2\"\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n logger.warnToConsole(\"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd.name, bd.duration, bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData.dataType, remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData.envelopeType, telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event.dataType) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event.dataType) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData].name;\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event.dataType, eventData);\r\n return _createEnvelope(logger, Event.envelopeType, telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception.dataType, exData);\r\n return _createEnvelope(logger, Exception.envelopeType, telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData.measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData.name, baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric.dataType, baseMetricData);\r\n return _createEnvelope(logger, Metric.envelopeType, telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var strDuration = \"duration\";\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][strDuration])) { // from part B properties\r\n duration = baseData[strProperties][strDuration];\r\n delete baseData[strProperties][strDuration];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem.data) &&\r\n !isNullOrUndefined(telemetryItem.data[strDuration])) { // from custom properties\r\n duration = telemetryItem.data[strDuration];\r\n delete telemetryItem.data[strDuration];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {}).traceID) {\r\n currentContextId = telemetryItem.ext.trace.traceID;\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd.name;\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd.measurements || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn.toString();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView.dataType, pageViewData);\r\n return _createEnvelope(logger, PageView.envelopeType, telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd.name;\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd.measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance.dataType, baseData);\r\n return _createEnvelope(logger, PageViewPerformance.envelopeType, telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData].measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace.dataType, baseData);\r\n return _createEnvelope(logger, Trace.envelopeType, telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","import { LoggingSeverity, _InternalMessageId, getJSON, objForEachKey, isFunction, isObject, isArray } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self.serialize = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON().stringify(output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CircularReferenceDetected, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON().stringify(source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* Required */) : (contract & 1 /* Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* Hidden */) : (contract & 4 /* Hidden */);\r\n var isArray = contract & 2 /* Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.MissingRequiredFieldSpecification, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ItemNotInArray, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources.length; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output.push(item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value.toString) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value.toString();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n if (isNaN(num)) {\r\n output[field] = \"NaN\";\r\n }\r\n else {\r\n output[field] = num;\r\n }\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n logger.throwInternal(LoggingSeverity.CRITICAL, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n Serializer.prototype.serialize = function (input) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","var _a;\r\nimport { __assign, __extends } from \"tslib\";\r\nimport { SessionStorageSendBuffer, ArraySendBuffer } from \"./SendBuffer\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { Serializer } from \"./Serializer\"; // todo move to channel\r\nimport { DisabledPropertyName, RequestHeaders, PageView, Event, Trace, Exception, Metric, PageViewPerformance, RemoteDependencyData, ProcessLegacy, BreezeChannelIdentifier, SampleRate, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, getWindow, getNavigator, getJSON, BaseTelemetryPlugin, objForEachKey, isNullOrUndefined, arrForEach, dateNow, dumpObj, getExceptionName, getIEVersion, throwError, objKeys, isBeaconsSupported, isFetchSupported, useXDomainRequest, isXhrSupported, isArray } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Offline } from \"./Offline\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nfunction _getDefaultAppInsightsChannelConfig() {\r\n // set default values\r\n return {\r\n endpointUrl: function () { return \"https://dc.services.visualstudio.com/v2/track\"; },\r\n emitLineDelimitedJson: function () { return false; },\r\n maxBatchInterval: function () { return 15000; },\r\n maxBatchSizeInBytes: function () { return 102400; },\r\n disableTelemetry: function () { return false; },\r\n enableSessionStorageBuffer: function () { return true; },\r\n isRetryDisabled: function () { return false; },\r\n isBeaconApiDisabled: function () { return true; },\r\n disableXhr: function () { return false; },\r\n onunloadDisableFetch: function () { return false; },\r\n onunloadDisableBeacon: function () { return false; },\r\n instrumentationKey: function () { return undefined; },\r\n namePrefix: function () { return undefined; },\r\n samplingPercentage: function () { return 100; },\r\n customHeaders: function () { return undefined; },\r\n convertUndefined: function () { return undefined; },\r\n eventsLimitInMem: function () { return 10000; }\r\n };\r\n}\r\nvar EnvelopeTypeCreator = (_a = {},\r\n _a[Event.dataType] = EventEnvelopeCreator,\r\n _a[Trace.dataType] = TraceEnvelopeCreator,\r\n _a[PageView.dataType] = PageViewEnvelopeCreator,\r\n _a[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _a[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _a[Metric.dataType] = MetricEnvelopeCreator,\r\n _a[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _a);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n /**\r\n * How many times in a row a retryable error condition has occurred.\r\n */\r\n var _consecutiveErrors;\r\n /**\r\n * The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n */\r\n var _retryAt;\r\n /**\r\n * The time of the last send operation.\r\n */\r\n var _lastSend;\r\n /**\r\n * Flag indicating that the sending should be paused\r\n */\r\n var _paused = false;\r\n /**\r\n * Handle to the timer for delayed sending of batches of data.\r\n */\r\n var _timeoutHandle;\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers = {};\r\n // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _syncFetchPayload = 0;\r\n /**\r\n * The sender to use if the payload size is too large\r\n */\r\n var _fallbackSender;\r\n /**\r\n * The identified sender to use for the synchronous unload stage\r\n */\r\n var _syncUnloadSender;\r\n _this._senderConfig = _getDefaultAppInsightsChannelConfig();\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n function _notImplemented() {\r\n throwError(\"Method not implemented.\");\r\n }\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n if (_self._buffer.size() > _self._senderConfig.maxBatchSizeInBytes()) {\r\n _self.triggerSend(true, null, 10 /* MaxBatchSize */);\r\n }\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function () {\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n _self.triggerSend(true, null, 1 /* ManualFlush */);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if ((_self._senderConfig.onunloadDisableBeacon() === false || _self._senderConfig.isBeaconApiDisabled() === false) && isBeaconsSupported()) {\r\n try {\r\n _self.triggerSend(true, _doUnloadSend, 2 /* Unload */);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToSendQueuedTelemetry, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush();\r\n }\r\n }\r\n };\r\n _self.teardown = _notImplemented;\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self._sender = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self.diagLog();\r\n var defaultConfig = _getDefaultAppInsightsChannelConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _self._senderConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n });\r\n _self._buffer = (_self._senderConfig.enableSessionStorageBuffer() && utlCanUseSessionStorage())\r\n ? new SessionStorageSendBuffer(diagLog, _self._senderConfig) : new ArraySendBuffer(diagLog, _self._senderConfig);\r\n _self._sample = new Sample(_self._senderConfig.samplingPercentage(), diagLog);\r\n if (!_validateInstrumentationKey(config)) {\r\n diagLog.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidInstrumentationKey, \"Invalid Instrumentation key \" + config.instrumentationKey);\r\n }\r\n if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders().length > 0) {\r\n arrForEach(_self._senderConfig.customHeaders(), function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n var senderConfig = _self._senderConfig;\r\n var sendPostFunc = null;\r\n if (!senderConfig.disableXhr() && useXDomainRequest()) {\r\n sendPostFunc = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig.disableXhr() && isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n if (!sendPostFunc && isFetchSupported()) {\r\n sendPostFunc = _fetchSender;\r\n }\r\n // always fallback to XHR\r\n _fallbackSender = sendPostFunc || _xhrSender;\r\n if (!senderConfig.isBeaconApiDisabled() && isBeaconsSupported()) {\r\n // Config is set to always used beacon sending\r\n sendPostFunc = _beaconSender;\r\n }\r\n _self._sender = sendPostFunc || _xhrSender;\r\n if (!senderConfig.onunloadDisableFetch() && isFetchSupported(true)) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Try and use sendBeacon\r\n _syncUnloadSender = _beaconSender;\r\n }\r\n else if (!senderConfig.disableXhr() && useXDomainRequest()) {\r\n _syncUnloadSender = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig.disableXhr() && isXhrSupported()) {\r\n _syncUnloadSender = _xhrSender;\r\n }\r\n else {\r\n _syncUnloadSender = _fallbackSender;\r\n }\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n try {\r\n // if master off switch is set, don't send any data\r\n if (_self._senderConfig.disableTelemetry()) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem.baseType) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, \"Cannot send telemetry without baseData and baseType\");\r\n return;\r\n }\r\n if (!telemetryItem.baseType) {\r\n // Default\r\n telemetryItem.baseType = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self._sender) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, \"Sender was not initialized\");\r\n return;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample.sampleRate });\r\n return;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample.sampleRate;\r\n }\r\n var convertUndefined = _self._senderConfig.convertUndefined() || undefined;\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _self._senderConfig.instrumentationKey();\r\n var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, itemCtx.diagLog(), convertUndefined);\r\n if (!aiEnvelope_1) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem_1 = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem.tags && telemetryItem.tags[ProcessLegacy]) {\r\n arrForEach(telemetryItem.tags[ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope_1) === false) {\r\n doNotSendItem_1 = true;\r\n itemCtx.diagLog().warnToConsole(\"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem.tags[ProcessLegacy];\r\n }\r\n if (doNotSendItem_1) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer.serialize(aiEnvelope_1);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self._buffer;\r\n var bufferSize = buffer.size();\r\n if ((bufferSize + payload.length) > _self._senderConfig.maxBatchSizeInBytes()) {\r\n _self.triggerSend(true, null, 10 /* MaxBatchSize */);\r\n }\r\n // enqueue the payload\r\n buffer.enqueue(payload);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedAddingTelemetryToBuffer, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self.triggerSend = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n if (!_paused) {\r\n try {\r\n var buffer = _self._buffer;\r\n // Send data only if disableTelemetry is false\r\n if (!_self._senderConfig.disableTelemetry()) {\r\n if (buffer.count() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n forcedSender.call(_this, payload, async);\r\n }\r\n else {\r\n _self._sender(payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer.clear();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self._onError = function (payload, message, event) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.OnError, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self._onPartialSuccess = function (payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry.push(extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed.push(extracted);\r\n }\r\n }\r\n if (payload.length > 0) {\r\n _self._onSuccess(payload, results.itemsAccepted);\r\n }\r\n if (failed.length > 0) {\r\n _self._onError(failed, _formatErrorMessageXhr(null, [\"partial success\", results.itemsAccepted, \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry.length > 0) {\r\n _resendPayload(retry);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \"Partial success. \" +\r\n \"Delivered: \" + payload.length + \", Failed: \" + failed.length +\r\n \". Will retry to send \" + retry.length + \" our of \" + results.itemsReceived + \" items\");\r\n }\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self._onSuccess = function (payload, countOfItemsInPayload) {\r\n _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self._onSuccess(payload, 0);\r\n }\r\n else {\r\n var results = _parseResponse(responseText);\r\n if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted\r\n && !_self._senderConfig.isRetryDisabled()) {\r\n _self._onPartialSuccess(payload, results);\r\n }\r\n else {\r\n _self._onError(payload, _formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n };\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = _parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self._onError(payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (!_self._senderConfig.isRetryDisabled() && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload.length + \" items.\");\r\n }\r\n else {\r\n _self._onError(payload, errorMessage);\r\n }\r\n }\r\n else if (Offline.isOffline()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_self._senderConfig.isRetryDisabled()) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(Offline.isOffline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = _parseResponse(res);\r\n }\r\n if (response && !_self._senderConfig.isRetryDisabled()) {\r\n _self._onPartialSuccess(payload, response);\r\n }\r\n else {\r\n _self._onError(payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self._onSuccess(payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _self._senderConfig.endpointUrl()) {\r\n _self._senderConfig.endpointUrl = function () { return responseUrl; };\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n _beaconSender(payload, isAsync);\r\n }\r\n }\r\n function _doBeaconSend(payload) {\r\n var nav = getNavigator();\r\n var buffer = _self._buffer;\r\n var url = _self._senderConfig.endpointUrl();\r\n var batch = _self._buffer.batchPayloads(payload);\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = new Blob([batch], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n if (queued) {\r\n buffer.markAsSent(payload);\r\n // no response from beaconSender, clear buffer\r\n _self._onSuccess(payload, payload.length);\r\n }\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, isAsync) {\r\n if (isArray(payload) && payload.length > 0) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload)) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < payload.length; lp++) {\r\n var thePayload = payload[lp];\r\n if (!_doBeaconSend([thePayload])) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload.push(thePayload);\r\n }\r\n }\r\n if (droppedPayload.length > 0) {\r\n _fallbackSender(droppedPayload, true);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n */\r\n function _xhrSender(payload, isAsync) {\r\n var xhr = new XMLHttpRequest();\r\n var endPointUrl = _self._senderConfig.endpointUrl();\r\n try {\r\n xhr[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n xhr.open(\"POST\", endPointUrl, isAsync);\r\n xhr.setRequestHeader(\"Content-type\", \"application/json\");\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n xhr.setRequestHeader(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n xhr.setRequestHeader(headerName, _headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () { return _self._xhrReadyStateChange(xhr, payload, payload.length); };\r\n xhr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXhr(xhr), event); };\r\n // compose an array of payloads\r\n var batch = _self._buffer.batchPayloads(payload);\r\n xhr.send(batch);\r\n _self._buffer.markAsSent(payload);\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n if (isArray(payload)) {\r\n var payloadSize = payload.length;\r\n for (var lp = 0; lp < payload.length; lp++) {\r\n payloadSize += payload[lp].length;\r\n }\r\n if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n _doFetchSender(payload, false);\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n _beaconSender(payload, isAsync);\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n _fallbackSender && _fallbackSender(payload, true);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n }\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n */\r\n function _fetchSender(payload, isAsync) {\r\n _doFetchSender(payload, true);\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n */\r\n function _doFetchSender(payload, isAsync) {\r\n var _a;\r\n var endPointUrl = _self._senderConfig.endpointUrl();\r\n var batch = _self._buffer.batchPayloads(payload);\r\n var plainTextBatch = new Blob([batch], { type: \"application/json\" });\r\n var requestHeaders = new Headers();\r\n var batchLength = batch.length;\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n requestHeaders.append(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n requestHeaders.append(headerName, _headers[headerName]);\r\n });\r\n var init = (_a = {\r\n method: \"POST\",\r\n headers: requestHeaders,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n if (!isAsync) {\r\n init.keepalive = true;\r\n _syncFetchPayload += batchLength;\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n fetch(request).then(function (response) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!response.ok) {\r\n _self._onError(payload, response.statusText);\r\n }\r\n else {\r\n response.text().then(function (text) {\r\n _checkResponsStatus(response.status, payload, response.url, payload.length, response.statusText, text);\r\n });\r\n }\r\n })[\"catch\"](function (error) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n _self._onError(payload, error.message);\r\n });\r\n _self._buffer.markAsSent(payload);\r\n }\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n function _parseResponse(response) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result.itemsReceived && result.itemsReceived >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors.length) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, \"Cannot parse the response. \" + getExceptionName(e), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload.length === 0) {\r\n return;\r\n }\r\n var buffer = _self._buffer;\r\n buffer.clearSent(payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n buffer.enqueue(item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_self._senderConfig.maxBatchInterval(), retryInterval);\r\n _timeoutHandle = setTimeout(function () {\r\n _timeoutHandle = null;\r\n _self.triggerSend(true, null, 1 /* NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n clearTimeout(_timeoutHandle);\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n return statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 503; // Service unavailable.\r\n }\r\n function _formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, isAsync) {\r\n var buffer = _self._buffer;\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };\r\n xdr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXdr(xdr), event); };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n buffer.clear();\r\n return;\r\n }\r\n var endpointUrl = _self._senderConfig.endpointUrl().replace(/^(https?:)/, \"\");\r\n xdr.open(\"POST\", endpointUrl);\r\n // compose an array of payloads\r\n var batch = buffer.batchPayloads(payload);\r\n xdr.send(batch);\r\n buffer.markAsSent(payload);\r\n }\r\n function _formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager.eventsSendRequest) {\r\n try {\r\n manager.eventsSendRequest(sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.NotificationException, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(config) {\r\n var disableIKeyValidationFlag = isNullOrUndefined(config.disableInstrumentationKeyValidation) ? false : config.disableInstrumentationKeyValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(config.instrumentationKey);\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n /**\r\n * Pause the sending (transmission) of events, this will cause all events to be batched only until the maximum limits are\r\n * hit at which point new events are dropped. Will also cause events to NOT be sent during page unload, so if Session storage\r\n * is disabled events will be lost.\r\n * SessionStorage Limit is 2000 events, In-Memory (Array) Storage is 10,000 events (can be configured via the eventsLimitInMem).\r\n */\r\n Sender.prototype.pause = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resume the sending (transmission) of events, this will restart the timer and any batched events will be sent using the normal\r\n * send interval.\r\n */\r\n Sender.prototype.resume = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Flush the batched events immediately (not synchronously).\r\n * Will not flush if the Sender has been paused.\r\n */\r\n Sender.prototype.flush = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Flush the batched events synchronously (if possible -- based on configuration).\r\n * Will not flush if the Send has been paused.\r\n */\r\n Sender.prototype.onunloadFlush = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.teardown = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.processTelemetry = function (telemetryItem, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n Sender.prototype._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n Sender.prototype.triggerSend = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * error handler\r\n */\r\n Sender.prototype._onError = function (payload, message, event) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n Sender.prototype._onPartialSuccess = function (payload, results) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * success handler\r\n */\r\n Sender.prototype._onSuccess = function (payload, countOfItemsInPayload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n Sender.prototype._xdrOnLoad = function (xdr, payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add header to request\r\n * @param name - Header name.\r\n * @param value - Header value.\r\n */\r\n Sender.prototype.addHeader = function (name, value) {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n };\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","import { getWindow, getDocument, getNavigator, isUndefined, isNullOrUndefined, attachEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n/**\r\n * @description Monitors browser for offline events\r\n * @export default - Offline: Static instance of OfflineListener\r\n * @class OfflineListener\r\n */\r\nvar OfflineListener = /** @class */ (function () {\r\n function OfflineListener() {\r\n var _window = getWindow();\r\n var _document = getDocument();\r\n var isListening = false;\r\n var _onlineStatus = true;\r\n dynamicProto(OfflineListener, this, function (_self) {\r\n try {\r\n if (_window) {\r\n if (attachEvent(_window, \"online\", _setOnline)) {\r\n attachEvent(_window, \"offline\", _setOffline);\r\n isListening = true;\r\n }\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n target.ononline = _setOnline;\r\n target.onoffline = _setOffline;\r\n isListening = true;\r\n }\r\n }\r\n if (isListening) {\r\n // We are listening to events so lets set the current status rather than assuming we are online #1538\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n if (_navigator && !isNullOrUndefined(_navigator.onLine)) { // navigator.onLine is undefined in react-native\r\n _onlineStatus = _navigator.onLine;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n isListening = false;\r\n }\r\n _self.isListening = isListening;\r\n _self.isOnline = function () {\r\n var result = true;\r\n var _navigator = getNavigator();\r\n if (isListening) {\r\n result = _onlineStatus;\r\n }\r\n else if (_navigator && !isNullOrUndefined(_navigator.onLine)) { // navigator.onLine is undefined in react-native\r\n result = _navigator.onLine;\r\n }\r\n return result;\r\n };\r\n _self.isOffline = function () {\r\n return !_self.isOnline();\r\n };\r\n function _setOnline() {\r\n _onlineStatus = true;\r\n }\r\n function _setOffline() {\r\n _onlineStatus = false;\r\n }\r\n });\r\n }\r\n OfflineListener.prototype.isOnline = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n OfflineListener.prototype.isOffline = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n OfflineListener.Offline = new OfflineListener;\r\n return OfflineListener;\r\n}());\r\nexport { OfflineListener };\r\nexport var Offline = OfflineListener.Offline;\r\n//# sourceMappingURL=Offline.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input.length < MIN_INPUT_LENGTH) {\r\n input = input.concat(input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input.length; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self.getSamplingScore = function (item) {\r\n var score = 0;\r\n if (item.tags && item.tags[keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item.tags[keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.user.id);\r\n }\r\n else if (item.tags && item.tags[keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item.tags[keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace.traceID) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace.traceID);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SampleRateOutOfRange, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this.sampleRate = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this.sampleRate; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric.dataType) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator.getSamplingScore(envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, safeGetCookieMgr, isFunction, newId, dumpObj, getExceptionName, dateNow, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nvar cookieNameConst = \"ai_session\";\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n if (!isFunction(config.sessionExpirationMs)) {\r\n config.sessionExpirationMs = function () { return _SessionManager.acquisitionSpan; };\r\n }\r\n if (!isFunction(config.sessionRenewalMs)) {\r\n config.sessionRenewalMs = function () { return _SessionManager.renewalSpan; };\r\n }\r\n _self.config = config;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = (_self.config.sessionCookiePostfix && _self.config.sessionCookiePostfix()) ?\r\n _self.config.sessionCookiePostfix() :\r\n ((_self.config.namePrefix && _self.config.namePrefix()) ? _self.config.namePrefix() : \"\");\r\n _storageNamePrefix = function () { return cookieNameConst + sessionCookiePostfix; };\r\n _self.automaticSession = new Session();\r\n _self.update = function () {\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self.automaticSession;\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n var sessionExpirationMs = _self.config.sessionExpirationMs();\r\n if (!isExpired && sessionExpirationMs > 0) {\r\n var sessionRenewalMs = _self.config.sessionRenewalMs();\r\n var timeSinceAcqMs = nowMs - session.acquisitionDate;\r\n var timeSinceRenewalMs = nowMs - session.renewalDate;\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > _SessionManager.cookieUpdateInterval) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _self.backup = function () {\r\n var session = _self.automaticSession;\r\n _setStorage(session.id, session.acquisitionDate, session.renewalDate);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix());\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix());\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param {string} sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens.length >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionRenewalDateIsZero, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionRenewalDateIsZero, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session.acquisitionDate = acqMs;\r\n session.renewalDate = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ErrorParsingAISessionCookie, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var theConfig = (_self.config || {});\r\n var getNewId = (theConfig.getNewId ? theConfig.getNewId() : null) || newId;\r\n _self.automaticSession.id = getNewId(theConfig.idLength ? theConfig.idLength() : 22);\r\n _self.automaticSession.acquisitionDate = nowMs;\r\n _setCookie(_self.automaticSession, nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserDoesNotSupportLocalStorage, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session.acquisitionDate;\r\n session.renewalDate = nowMs;\r\n var config = _self.config;\r\n var renewalPeriodMs = config.sessionRenewalMs();\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + config.sessionExpirationMs()) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config.cookieDomain ? config.cookieDomain() : null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix(), cookie.join(\"|\"), config.sessionExpirationMs() > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix(), [guid, acq, renewal].join(\"|\"));\r\n }\r\n });\r\n }\r\n _SessionManager.prototype.update = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _SessionManager.prototype.backup = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n _SessionManager.acquisitionSpan = 86400000; // 24 hours in ms\r\n _SessionManager.renewalSpan = 1800000; // 30 minutes in ms\r\n _SessionManager.cookieUpdateInterval = 60000; // 1 minute in ms\r\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Version = \"2.7.2\";\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config) {\r\n this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + \"_\" : \"\") + \"javascript:\" + Version;\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, safeGetCookieMgr, safeGetLogger, newId, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n _self.config = config;\r\n var userCookiePostfix = (_self.config.userCookiePostfix && _self.config.userCookiePostfix()) ? _self.config.userCookiePostfix() : \"\";\r\n _storageNamePrefix = function () { return User.userCookieName + userCookiePostfix; };\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix());\r\n if (cookie) {\r\n _self.isNewUser = false;\r\n var params = cookie.split(User.cookieSeparator);\r\n if (params.length > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self.isUserCookieSet = !!_self.id;\r\n }\r\n }\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = (theConfig.getNewId ? theConfig.getNewId() : null) || newId;\r\n var id = getNewId(theConfig.idLength ? config.idLength() : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self.isNewUser = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self.isUserCookieSet = _cookieManager.set(_storageNamePrefix(), cookie, oneYear);\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie.join(User.cookieSeparator));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"ai_session\" : \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self.accountId = config.accountId ? config.accountId() : undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n var authCookie = _cookieManager.get(User.authUserCookieName);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User.cookieSeparator);\r\n if (authCookieString[0]) {\r\n _self.authenticatedId = authCookieString[0];\r\n }\r\n if (authCookieString.length > 1 && authCookieString[1]) {\r\n _self.accountId = authCookieString[1];\r\n }\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SetAuthContextFailedAccountName, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self.authenticatedId = authenticatedUserId;\r\n var authCookie = _self.authenticatedId;\r\n if (accountId) {\r\n _self.accountId = accountId;\r\n authCookie = [_self.authenticatedId, _self.accountId].join(User.cookieSeparator);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User.authUserCookieName, encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self.authenticatedId = null;\r\n _self.accountId = null;\r\n _cookieManager.del(User.authUserCookieName);\r\n };\r\n _self.update = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self.isUserCookieSet) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie.join(User.cookieSeparator));\r\n }\r\n };\r\n });\r\n }\r\n /**\r\n * Sets the authenticated user id and the account id in this session.\r\n *\r\n * @param authenticatedUserId {string} - The authenticated user id. A unique and persistent string that represents each authenticated user in the service.\r\n * @param accountId {string} - An optional string to represent the account associated with the authenticated user.\r\n */\r\n User.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n User.prototype.clearAuthenticatedUserContext = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Update or create the user cookie if cookies where previously disabled or the new userId does not match the existing value.\r\n * If you pass nothing a new random user id will be created.\r\n * @param userId - Specific either the current (via appInsights.context.user.id) or new id that you want to set\r\n */\r\n User.prototype.update = function (userId) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n _self.name = name;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n _self.name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, _self.name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","/**\r\n * TelemetryContext.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isString, objKeys, hasWindow, _InternalLogMessage, setValue, getSetValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { Extensions, CtxTagKeys, PageView } from \"@microsoft/applicationinsights-common\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { User } from \"./Context/User\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name]).length === 0) {\r\n delete target[name];\r\n }\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig) {\r\n var _this = this;\r\n var logger = core.logger;\r\n this.appId = function () { return null; };\r\n this.getSessionId = function () { return null; };\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig);\r\n if (hasWindow()) {\r\n _self.sessionManager = new _SessionManager(defaultConfig, core);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core);\r\n _self.telemetryTrace = new TelemetryTrace(undefined, undefined, undefined, logger);\r\n _self.session = new Session();\r\n }\r\n _self.getSessionId = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self.sessionManager || {}).automaticSession;\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self.applySessionContext = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self.getSessionId(), isString);\r\n };\r\n _self.applyOperatingSystemContxt = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self.applyApplicationContext = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self.applyDeviceContext = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self.applyInternalContext = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, internal.sdkVersion, isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self.applyLocationContext = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self.applyOperationContext = function (evt, itemCtx) {\r\n var telemetryTrace = _self.telemetryTrace;\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self.applyUserContext = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user.accountId, isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user.authenticatedId, isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n TelemetryContext.prototype.applySessionContext = function (evt, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyOperatingSystemContxt = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyApplicationContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyDeviceContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyInternalContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyLocationContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyOperationContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyWebContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyUserContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.cleanUp = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","/**\r\n * PropertiesPlugin.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, isNullOrUndefined, _InternalLogMessage, LoggingSeverity, _InternalMessageId, getNavigator, objForEachKey, getSetValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { PageView, BreezeChannelIdentifier, PropertiesPluginIdentifier, getExtensionByName } from \"@microsoft/applicationinsights-common\";\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _breezeChannel; // optional. If exists, grab appId from it\r\n var _extensionConfig;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n var defaultConfig = PropertiesPlugin.getDefaultConfig();\r\n _extensionConfig = _extensionConfig || {};\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _extensionConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n });\r\n _self.context = new TelemetryContext(core, _extensionConfig);\r\n _breezeChannel = getExtensionByName(extensions, BreezeChannelIdentifier);\r\n _self.context.appId = function () { return _breezeChannel ? _breezeChannel[\"_appId\"] : null; };\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (isNullOrUndefined(event)) {\r\n // TODO(barustum): throw an internal event once we have support for internal logging\r\n }\r\n else {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_self.context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _self.context.session.id !== \"string\" && theContext.sessionManager) {\r\n theContext.sessionManager.update();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx.isUserCookieSet) {\r\n userCtx.update(theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx.isNewUser) {\r\n userCtx.isNewUser = false;\r\n var message = new _InternalLogMessage(_InternalMessageId.SendBrowserInfoOnUserInit, ((getNavigator() || {}).userAgent || \"\"));\r\n itemCtx.diagLog().logInternalMessage(LoggingSeverity.CRITICAL, message);\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx.applySessionContext(evt, itemCtx);\r\n ctx.applyApplicationContext(evt, itemCtx);\r\n ctx.applyDeviceContext(evt, itemCtx);\r\n ctx.applyOperationContext(evt, itemCtx);\r\n ctx.applyUserContext(evt, itemCtx);\r\n ctx.applyOperatingSystemContxt(evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx.applyLocationContext(evt, itemCtx); // legacy tags\r\n ctx.applyInternalContext(evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n PropertiesPlugin.getDefaultConfig = function () {\r\n var defaultConfig = {\r\n instrumentationKey: function () { return undefined; },\r\n accountId: function () { return null; },\r\n sessionRenewalMs: function () { return 30 * 60 * 1000; },\r\n samplingPercentage: function () { return 100; },\r\n sessionExpirationMs: function () { return 24 * 60 * 60 * 1000; },\r\n cookieDomain: function () { return null; },\r\n sdkExtension: function () { return null; },\r\n isBrowserLinkTrackingEnabled: function () { return false; },\r\n appId: function () { return null; },\r\n getSessionId: function () { return null; },\r\n namePrefix: function () { return undefined; },\r\n sessionCookiePostfix: function () { return undefined; },\r\n userCookiePostfix: function () { return undefined; },\r\n idLength: function () { return 22; },\r\n getNewId: function () { return null; }\r\n };\r\n return defaultConfig;\r\n };\r\n PropertiesPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n PropertiesPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { hasOwnProperty } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strConstructor = \"constructor\";\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr.length; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* Request */ && type <= 2 /* HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb.apply(callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb.apply(callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = {\r\n name: aiHook.n,\r\n inst: funcThis,\r\n ctx: null,\r\n set: _replaceArg\r\n };\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target.push(arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n try {\r\n funcArgs.rslt = theFunc.apply(funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Object[\"getPrototypeOf\"];\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];\r\n if (newProto) {\r\n return newProto;\r\n }\r\n }\r\n return null;\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype) {\r\n var owner = null;\r\n if (target) {\r\n if (hasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, false);\r\n }\r\n }\r\n return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n var aiHook_1 = fn[aiInstrumentHooks];\r\n if (!aiHook_1) {\r\n // Only hook the function once\r\n aiHook_1 = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook_1);\r\n newFunc[aiInstrumentHooks] = aiHook_1; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook_1.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook_1.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook_1.h.splice(idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook_1.i++;\r\n aiHook_1.h.push(theHook);\r\n return theHook;\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks.push(hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dataSanitizeUrl, dateTimeUtilsDuration, urlGetAbsoluteUrl, urlGetCompleteUrl, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { objKeys, arrForEach, isNumber, isString, normalizeJsName, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar strProperties = \"properties\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData.perfTiming;\r\n var props = dependency[strProperties] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strDuration = \"duration\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[strDuration];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, strDuration, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData.perfMark) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[strProperties] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self.openDone = false;\r\n self.setRequestHeaderDone = false;\r\n self.sendDone = false;\r\n self.abortDone = false;\r\n // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n self.stateChangeAttached = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceID, spanID, logger) {\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self.perfMark = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self.requestHeaders = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self.ajaxTotalDuration = null;\r\n self.aborted = 0;\r\n self.pageUrl = null;\r\n self.requestUrl = null;\r\n self.requestSize = 0;\r\n self.method = null;\r\n self.status = null;\r\n self.requestSentTime = null;\r\n self.responseStartedTime = null;\r\n self.responseFinishedTime = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self.traceID = traceID;\r\n self.spanID = spanID;\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self.requestUrl ? urlGetAbsoluteUrl(self.requestUrl) : null;\r\n };\r\n self.getPathName = function () {\r\n return self.requestUrl ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self.method, self.requestUrl)) : null;\r\n };\r\n self.CreateTrackItem = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self.ajaxTotalDuration < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self.traceID + \".\" + self.spanID,\r\n target: self.getAbsoluteUrl(),\r\n name: self.getPathName(),\r\n type: ajaxType,\r\n startTime: null,\r\n duration: self.ajaxTotalDuration,\r\n success: (+(self.status)) >= 200 && (+(self.status)) < 400,\r\n responseCode: (+(self.status)),\r\n method: self.method\r\n },\r\n _a[strProperties] = { HttpMethod: self.method },\r\n _a);\r\n if (self.requestSentTime) {\r\n // Set the correct dependency start time\r\n dependency.startTime = new Date();\r\n dependency.startTime.setTime(self.requestSentTime);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders).length > 0) {\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n dependency[strProperties].requestHeaders = self.requestHeaders;\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response.correlationContext;\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response.headerMap) {\r\n if (objKeys(response.headerMap).length > 0) {\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n dependency[strProperties].responseHeaders = response.headerMap;\r\n }\r\n }\r\n if (self.errorStatusText && self.status >= 400) {\r\n var responseType = response.type;\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n if (responseType === \"\" || responseType === \"text\") {\r\n dependency[strProperties][strResponseText] = response[strResponseText] ? response.statusText + \" - \" + response[strResponseText] : response.statusText;\r\n }\r\n if (responseType === \"json\") {\r\n dependency[strProperties][strResponseText] = response.response ? response.statusText + \" - \" + JSON.stringify(response.response) : response.statusText;\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n });\r\n }\r\n ajaxRecord.prototype.getAbsoluteUrl = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ajaxRecord.prototype.getPathName = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ajaxRecord.prototype.CreateTrackItem = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n//# sourceMappingURL=ajaxRecord.js.map","import { generateW3CId } from \"@microsoft/applicationinsights-core-js\";\r\nvar Traceparent = /** @class */ (function () {\r\n function Traceparent(traceId, spanId) {\r\n var self = this;\r\n self.traceFlag = Traceparent.DEFAULT_TRACE_FLAG;\r\n self.version = Traceparent.DEFAULT_VERSION;\r\n if (traceId && Traceparent.isValidTraceId(traceId)) {\r\n self.traceId = traceId;\r\n }\r\n else {\r\n self.traceId = generateW3CId();\r\n }\r\n if (spanId && Traceparent.isValidSpanId(spanId)) {\r\n self.spanId = spanId;\r\n }\r\n else {\r\n self.spanId = generateW3CId().substr(0, 16);\r\n }\r\n }\r\n Traceparent.isValidTraceId = function (id) {\r\n return id.match(/^[0-9a-f]{32}$/) && id !== \"00000000000000000000000000000000\";\r\n };\r\n Traceparent.isValidSpanId = function (id) {\r\n return id.match(/^[0-9a-f]{16}$/) && id !== \"0000000000000000\";\r\n };\r\n Traceparent.prototype.toString = function () {\r\n var self = this;\r\n return \"\".concat(self.version, \"-\").concat(self.traceId, \"-\").concat(self.spanId, \"-\").concat(self.traceFlag);\r\n };\r\n Traceparent.DEFAULT_TRACE_FLAG = \"01\";\r\n Traceparent.DEFAULT_VERSION = \"00\";\r\n return Traceparent;\r\n}());\r\nexport { Traceparent };\r\n//# sourceMappingURL=TraceParent.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __assign, __extends } from \"tslib\";\r\nimport { RequestHeaders, CorrelationIdHelper, TelemetryItemCreator, RemoteDependencyData, dateTimeUtilsNow, DisabledPropertyName, PropertiesPluginIdentifier, DistributedTracingModes, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { isNullOrUndefined, arrForEach, isString, strTrim, isFunction, LoggingSeverity, _InternalMessageId, BaseTelemetryPlugin, getLocation, getGlobal, strPrototype, InstrumentFunc, InstrumentProto, getPerformance, objForEachKey, generateW3CId, getIEVersion, dumpObj, isXhrSupported, attachEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\nimport { Traceparent } from \"./TraceParent\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar strAjaxData = \"ajaxData\";\r\nvar strThrowInternal = \"throwInternal\";\r\nvar strFetch = \"fetch\";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n isNullOrUndefined(_global.Request) ||\r\n isNullOrUndefined(_global.Request[strPrototype]) ||\r\n isNullOrUndefined(_global[strFetch])) {\r\n return null;\r\n }\r\n return _global[strFetch];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance) {\r\n var result = false;\r\n if (isXhrSupported()) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !isNullOrUndefined(proto) &&\r\n !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n !isNullOrUndefined(proto.send) &&\r\n !isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n xhr[strAjaxData] = {};\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", {\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n return result;\r\n}\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(xhr) &&\r\n !isNullOrUndefined(xhr[strAjaxData]) &&\r\n !isNullOrUndefined(xhr[strAjaxData].requestUrl)) {\r\n result += \"(url: '\" + xhr[strAjaxData].requestUrl + \"')\";\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.CRITICAL, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.WARNING, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (args) {\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args.inst),\r\n exception: dumpObj(args.err)\r\n });\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return value.indexOf(match);\r\n }\r\n return -1;\r\n}\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var strTrackDependencyDataInternal = \"trackDependencyDataInternal\"; // Using string to help with minification\r\n var location = getLocation();\r\n var _fetchInitialized = false; // fetch monitoring initialized\r\n var _xhrInitialized = false; // XHR monitoring initialized\r\n var _currentWindowHost = location && location.host && location.host.toLowerCase();\r\n var _config = AjaxMonitor.getEmptyConfig();\r\n var _enableRequestHeaderTracking = false;\r\n var _enableAjaxErrorStatusText = false;\r\n var _trackAjaxAttempts = 0;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking = false;\r\n var _maxAjaxCallsPerView = 0;\r\n var _enableResponseHeaderTracking = false;\r\n var _hooks = [];\r\n var _disabledUrls = {};\r\n var _excludeRequestFromAutoTrackingPatterns;\r\n var _addRequestContext;\r\n dynamicProto(AjaxMonitor, _this, function (_self, base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n base.initialize(config, core, extensions, pluginChain);\r\n var ctx_1 = _self._getTelCtx();\r\n var defaultConfig = AjaxMonitor.getDefaultConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _config[field] = ctx_1.getConfig(AjaxMonitor.identifier, field, value);\r\n });\r\n var distributedTracingMode = _config.distributedTracingMode;\r\n _enableRequestHeaderTracking = _config.enableRequestHeaderTracking;\r\n _enableAjaxErrorStatusText = _config.enableAjaxErrorStatusText;\r\n _enableAjaxPerfTracking = _config.enableAjaxPerfTracking;\r\n _maxAjaxCallsPerView = _config.maxAjaxCallsPerView;\r\n _enableResponseHeaderTracking = _config.enableResponseHeaderTracking;\r\n _excludeRequestFromAutoTrackingPatterns = _config.excludeRequestFromAutoTrackingPatterns;\r\n _addRequestContext = _config.addRequestContext;\r\n _isUsingAIHeaders = distributedTracingMode === DistributedTracingModes.AI || distributedTracingMode === DistributedTracingModes.AI_AND_W3C;\r\n _isUsingW3CHeaders = distributedTracingMode === DistributedTracingModes.AI_AND_W3C || distributedTracingMode === DistributedTracingModes.W3C;\r\n if (_enableAjaxPerfTracking) {\r\n var iKey = config.instrumentationKey || \"unkwn\";\r\n if (iKey.length > 5) {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey.substring(iKey.length - 5) + \".\";\r\n }\r\n else {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\r\n }\r\n }\r\n if (_config.disableAjaxTracking === false) {\r\n _instrumentXhr();\r\n }\r\n _instrumentFetch();\r\n if (extensions.length > 0 && extensions) {\r\n var propExt = void 0, extIx = 0;\r\n while (!propExt && extIx < extensions.length) {\r\n if (extensions[extIx] && extensions[extIx].identifier === PropertiesPluginIdentifier) {\r\n propExt = extensions[extIx];\r\n }\r\n extIx++;\r\n }\r\n if (propExt) {\r\n _context = propExt.context; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n }\r\n };\r\n _self.teardown = function () {\r\n // Remove all instrumentation hooks\r\n arrForEach(_hooks, function (fn) {\r\n fn.rm();\r\n });\r\n _hooks = [];\r\n _fetchInitialized = false;\r\n _xhrInitialized = false;\r\n _self.setInitialized(false);\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _self[strTrackDependencyDataInternal](dependency, properties);\r\n };\r\n _self.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n if (input) { // Fetch\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n init.headers = new Headers(init.headers || (input instanceof Request ? (input.headers || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n init.headers.set(RequestHeaders.requestIdHeader, id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId = _config.appId || (_context && _context.appId());\r\n if (appId) {\r\n init.headers.set(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n init.headers.set(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n return init;\r\n }\r\n else if (xhr) { // XHR\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n xhr.setRequestHeader(RequestHeaders.requestIdHeader, id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId = _config.appId || (_context && _context.appId());\r\n if (appId) {\r\n xhr.setRequestHeader(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n xhr.setRequestHeader(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[strTrackDependencyDataInternal] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_config.distributedTracingMode === DistributedTracingModes.W3C\r\n || _config.distributedTracingMode === DistributedTracingModes.AI_AND_W3C)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id.length - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (isNullOrUndefined(dependency.startTime)) {\r\n dependency.startTime = new Date();\r\n }\r\n var item = TelemetryItemCreator.create(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self.core.track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, _InternalMessageId.MaxAjaxPerPVExceeded, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n function _canIncludeHeaders(header) {\r\n var rlt = true;\r\n if (header || _config.ignoreHeaders) {\r\n arrForEach(_config.ignoreHeaders, (function (key) {\r\n if (key.toLowerCase() === header.toLowerCase()) {\r\n rlt = false;\r\n return -1;\r\n }\r\n }));\r\n }\r\n return rlt;\r\n }\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n if (_config.disableFetchTracking === false) {\r\n _hooks.push(InstrumentFunc(global, strFetch, {\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (_fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self.includeCorrelationHeaders(fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n var fetchData = callDetails.ctx().data;\r\n if (fetchData) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {}).status, input, response, fetchData, function () {\r\n var ajaxResponse = {\r\n statusText: response.statusText,\r\n headerMap: null,\r\n correlationContext: _getFetchCorrelationContext(response)\r\n };\r\n if (_enableResponseHeaderTracking) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n if (_canIncludeHeaders(name)) {\r\n responseHeaderMap_1[name] = value;\r\n }\r\n });\r\n ajaxResponse.headerMap = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })[\"catch\"](function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, null, fetchData, null, { error: reason.message });\r\n throw reason;\r\n });\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.\")\r\n }));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"poyyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _hooks.push(InstrumentFunc(global, strFetch, {\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n }\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[strFetch].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _hooks.push(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (_supportsAjaxMonitoring(_self) && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n req: function (args, method, url, async) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true)) {\r\n if (!ajaxData || !ajaxData.xhrMonitoringState.openDone) {\r\n // Only create a single ajaxData (even when multiple AI instances are running)\r\n _openHandler(xhr, method, url, async);\r\n }\r\n // always attach to the on ready state change (required for handling multiple instances)\r\n _attachToOnReadyStateChange(xhr);\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n req: function (args, context) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.sendDone) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData.requestSentTime = dateTimeUtilsNow();\r\n _self.includeCorrelationHeaders(ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState.sendDone = true;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSend, \"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n req: function (args) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.abortDone) {\r\n ajaxData.aborted = 1;\r\n ajaxData.xhrMonitoringState.abortDone = true;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxAbort, \"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument setRequestHeader\r\n if (_enableRequestHeaderTracking) {\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n req: function (args, header, value) {\r\n var xhr = args.inst;\r\n if (_isMonitoredXhrInstance(xhr) && _canIncludeHeaders(header)) {\r\n xhr[strAjaxData].requestHeaders[header] = value;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSetRequestHeader, \"Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n }\r\n _xhrInitialized = true;\r\n }\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\").toLowerCase();\r\n // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n var theRegex = regex;\r\n if (isString(regex)) {\r\n theRegex = new RegExp(regex);\r\n }\r\n if (!isDisabled) {\r\n isDisabled = theRegex.test(theUrl);\r\n }\r\n });\r\n // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n if (isDisabled) {\r\n return isDisabled;\r\n }\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!isNullOrUndefined(request)) { // fetch\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n isDisabled = true;\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// Verifies that particalar instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\r\n function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(xhr[strAjaxData]);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || generateW3CId();\r\n var spanID = generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n ajaxData.method = method;\r\n ajaxData.requestUrl = url;\r\n ajaxData.xhrMonitoringState.openDone = true;\r\n ajaxData.requestHeaders = {};\r\n ajaxData.async = async;\r\n ajaxData.errorStatusText = _enableAjaxErrorStatusText;\r\n xhr[strAjaxData] = ajaxData;\r\n }\r\n function _attachToOnReadyStateChange(xhr) {\r\n xhr[strAjaxData].xhrMonitoringState.stateChangeAttached = attachEvent(xhr, \"readystatechange\", function () {\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = dumpObj(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText.toLowerCase(), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxRSC, \"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.\", {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: exceptionText\r\n });\r\n }\r\n }\r\n });\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr.responseText;\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = xhr[strAjaxData];\r\n ajaxData.responseFinishedTime = dateTimeUtilsNow();\r\n ajaxData.status = xhr.status;\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxDur, \"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.\", errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData.CreateTrackItem(\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var ajaxResponse = {\r\n statusText: xhr.statusText,\r\n headerMap: null,\r\n correlationContext: _getAjaxCorrelationContext(xhr),\r\n type: xhr.responseType,\r\n responseText: _getResponseText(xhr),\r\n response: xhr.response\r\n };\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr.getAllResponseHeaders();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n arrForEach(arr, function (line) {\r\n var parts = line.split(\": \");\r\n var header = parts.shift();\r\n var value = parts.join(\": \");\r\n if (_canIncludeHeaders(header)) {\r\n responseHeaderMap_2[header] = value;\r\n }\r\n });\r\n ajaxResponse.headerMap = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n var properties = void 0;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: xhr.status, xhr: xhr });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedAddingCustomDefinedRequestContext, \"Failed to add custom defined request context as configured call back may missing a null check.\");\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency.properties = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n _self[strTrackDependencyDataInternal](dependency);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n xhr[strAjaxData] = null;\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n try {\r\n var responseHeadersString = xhr.getAllResponseHeaders();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString.toLowerCase(), RequestHeaders.requestContextHeaderLowerCase);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData.requestUrl && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries.length === 1) {\r\n ajaxData.perfMark = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData.perfMark;\r\n var performance = getPerformance();\r\n var maxAttempts = _config.maxAjaxPerfLookupAttempts;\r\n var retryDelay = _config.ajaxPerfLookupDelay;\r\n var requestUrl = ajaxData.requestUrl;\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries.length - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry.name, requestUrl) !== -1 || _indexOf(requestUrl, entry.name) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry.name === perfMark.name) {\r\n // We hit the start event\r\n ajaxData.perfTiming = perfTiming;\r\n break;\r\n }\r\n if (entry.startTime < perfMark.startTime - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData.perfTiming || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) { // - this is a sync request\r\n if (perfMark && isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark.name);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n setTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || generateW3CId();\r\n var spanID = generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n ajaxData.requestSentTime = dateTimeUtilsNow();\r\n ajaxData.errorStatusText = _enableAjaxErrorStatusText;\r\n if (input instanceof Request) {\r\n ajaxData.requestUrl = input ? input.url : \"\";\r\n }\r\n else {\r\n ajaxData.requestUrl = input;\r\n }\r\n var method = \"GET\";\r\n if (init && init.method) {\r\n method = init.method;\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input.method;\r\n }\r\n ajaxData.method = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init.headers : 0) || (input instanceof Request ? (input.headers || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n if (_canIncludeHeaders(key)) {\r\n requestHeaders[key] = value;\r\n }\r\n });\r\n }\r\n ajaxData.requestHeaders = requestHeaders;\r\n _createMarkId(\"fetch\", ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\".concat(input, \"')\");\r\n }\r\n else {\r\n result += \"(url: '\".concat(input.url, \"')\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, msgId, \"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\", errorProps);\r\n }\r\n ajaxData.responseFinishedTime = dateTimeUtilsNow();\r\n ajaxData.status = status;\r\n _findPerfResourceEntry(\"fetch\", ajaxData, function () {\r\n var dependency = ajaxData.CreateTrackItem(\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n var properties;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: status, request: input, response: response });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedAddingCustomDefinedRequestContext, \"Failed to add custom defined request context as configured call back may missing a null check.\");\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency.properties = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n _self[strTrackDependencyDataInternal](dependency);\r\n }\r\n else {\r\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxDur, null, {\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n if (response && response.headers) {\r\n try {\r\n var responseHeader = response.headers.get(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n AjaxMonitor.getDefaultConfig = function () {\r\n var config = {\r\n maxAjaxCallsPerView: 500,\r\n disableAjaxTracking: false,\r\n disableFetchTracking: true,\r\n excludeRequestFromAutoTrackingPatterns: undefined,\r\n disableCorrelationHeaders: false,\r\n distributedTracingMode: DistributedTracingModes.AI_AND_W3C,\r\n correlationHeaderExcludedDomains: [\r\n \"*.blob.core.windows.net\",\r\n \"*.blob.core.chinacloudapi.cn\",\r\n \"*.blob.core.cloudapi.de\",\r\n \"*.blob.core.usgovcloudapi.net\"\r\n ],\r\n correlationHeaderDomains: undefined,\r\n correlationHeaderExcludePatterns: undefined,\r\n appId: undefined,\r\n enableCorsCorrelation: false,\r\n enableRequestHeaderTracking: false,\r\n enableResponseHeaderTracking: false,\r\n enableAjaxErrorStatusText: false,\r\n enableAjaxPerfTracking: false,\r\n maxAjaxPerfLookupAttempts: 3,\r\n ajaxPerfLookupDelay: 25,\r\n ignoreHeaders: [\r\n \"Authorization\",\r\n \"X-API-Key\",\r\n \"WWW-Authenticate\"\r\n ],\r\n addRequestContext: undefined\r\n };\r\n return config;\r\n };\r\n AjaxMonitor.getEmptyConfig = function () {\r\n var emptyConfig = this.getDefaultConfig();\r\n objForEachKey(emptyConfig, function (value) {\r\n emptyConfig[value] = undefined;\r\n });\r\n return emptyConfig;\r\n };\r\n AjaxMonitor.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.prototype.teardown = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n /**\r\n * Logs dependency call\r\n * @param dependencyData dependency data object\r\n */\r\n AjaxMonitor.prototype.trackDependencyData = function (dependency, properties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.prototype.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Protected function to allow sub classes the chance to add additional properties to the dependency event\r\n * before it's sent. This function calls track, so sub-classes must call this function after they have\r\n * populated their properties.\r\n * @param dependencyData dependency data object\r\n */\r\n AjaxMonitor.prototype.trackDependencyDataInternal = function (dependency, properties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { arrReduce, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString.split(_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv.split(_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts.length === 2) { // only save fields with valid formats\r\n var key = kvParts[0].toLowerCase();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result).length > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // use endpoint suffix where overrides are not provided\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result.ingestionendpoint = result.ingestionendpoint || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply the default endpoints\r\n result.ingestionendpoint = result.ingestionendpoint || DEFAULT_BREEZE_ENDPOINT;\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nvar ConfigurationManager = /** @class */ (function () {\r\n function ConfigurationManager() {\r\n }\r\n ConfigurationManager.getConfig = function (config, field, identifier, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var configValue;\r\n if (identifier && config.extensionConfig && config.extensionConfig[identifier] && !isNullOrUndefined(config.extensionConfig[identifier][field])) {\r\n configValue = config.extensionConfig[identifier][field];\r\n }\r\n else {\r\n configValue = config[field];\r\n }\r\n return !isNullOrUndefined(configValue) ? configValue : defaultValue;\r\n };\r\n return ConfigurationManager;\r\n}());\r\nexport { ConfigurationManager };\r\n//# sourceMappingURL=IConfig.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { AppInsightsCore, LoggingSeverity, _InternalMessageId, hasWindow, hasDocument, isReactNative, doPerf, objForEachKey, proxyAssign, arrForEach, isString, isFunction, isNullOrUndefined, isArray, throwError, addPageUnloadEventListener, addPageHideEventListener } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { Util, CorrelationIdHelper, UrlHelper, DateTimeUtils, ConnectionStringParser, RequestHeaders, DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, AIData, AIBase, Envelope, Event, Exception, Metric, PageView, PageViewData, RemoteDependencyData, Trace, PageViewPerformance, Data, SeverityLevel, ConfigurationManager, ContextTagKeys, DataSanitizer, TelemetryItemCreator, CtxTagKeys, Extensions, DistributedTracingModes, PropertiesPluginIdentifier, BreezeChannelIdentifier, AnalyticsPluginIdentifier, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\n\"use strict\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n \"snippet\", \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\n// Re-exposing the Common classes as Telemetry, the list was taken by reviewing the generated code for the build while using\r\n// the previous configuration :-\r\n// import * as Common from \"@microsoft/applicationinsights-common\"\r\n// export const Telemetry = Common;\r\nvar fieldType = {\r\n Default: 0 /* Default */,\r\n Required: 1 /* Required */,\r\n Array: 2 /* Array */,\r\n Hidden: 4 /* Hidden */\r\n};\r\n/**\r\n * Telemetry type classes, e.g. PageView, Exception, etc\r\n */\r\nexport var Telemetry = {\r\n __proto__: null,\r\n PropertiesPluginIdentifier: PropertiesPluginIdentifier,\r\n BreezeChannelIdentifier: BreezeChannelIdentifier,\r\n AnalyticsPluginIdentifier: AnalyticsPluginIdentifier,\r\n Util: Util,\r\n CorrelationIdHelper: CorrelationIdHelper,\r\n UrlHelper: UrlHelper,\r\n DateTimeUtils: DateTimeUtils,\r\n ConnectionStringParser: ConnectionStringParser,\r\n FieldType: fieldType,\r\n RequestHeaders: RequestHeaders,\r\n DisabledPropertyName: DisabledPropertyName,\r\n ProcessLegacy: ProcessLegacy,\r\n SampleRate: SampleRate,\r\n HttpMethod: HttpMethod,\r\n DEFAULT_BREEZE_ENDPOINT: DEFAULT_BREEZE_ENDPOINT,\r\n AIData: AIData,\r\n AIBase: AIBase,\r\n Envelope: Envelope,\r\n Event: Event,\r\n Exception: Exception,\r\n Metric: Metric,\r\n PageView: PageView,\r\n PageViewData: PageViewData,\r\n RemoteDependencyData: RemoteDependencyData,\r\n Trace: Trace,\r\n PageViewPerformance: PageViewPerformance,\r\n Data: Data,\r\n SeverityLevel: SeverityLevel,\r\n ConfigurationManager: ConfigurationManager,\r\n ContextTagKeys: ContextTagKeys,\r\n DataSanitizer: DataSanitizer,\r\n TelemetryItemCreator: TelemetryItemCreator,\r\n CtxTagKeys: CtxTagKeys,\r\n Extensions: Extensions,\r\n DistributedTracingModes: DistributedTracingModes\r\n};\r\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar Initialization = /** @class */ (function () {\r\n function Initialization(snippet) {\r\n var _self = this;\r\n // initialize the queue and config in case they are undefined\r\n _self._snippetVersion = \"\" + (snippet.sv || snippet.version || \"\");\r\n snippet.queue = snippet.queue || [];\r\n snippet.version = snippet.version || 2.0; // Default to new version\r\n var config = snippet.config || {};\r\n if (config.connectionString) {\r\n var cs = parseConnectionString(config.connectionString);\r\n var ingest = cs.ingestionendpoint;\r\n config.endpointUrl = ingest ? \"\".concat(ingest, \"/v2/track\") : config.endpointUrl; // only add /v2/track when from connectionstring\r\n config.instrumentationKey = cs.instrumentationkey || config.instrumentationKey;\r\n }\r\n _self.appInsights = new ApplicationInsights();\r\n _self.properties = new PropertiesPlugin();\r\n _self.dependencies = new DependenciesPlugin();\r\n _self.core = new AppInsightsCore();\r\n _self._sender = new Sender();\r\n _self.snippet = snippet;\r\n _self.config = config;\r\n _self.getSKUDefaults();\r\n }\r\n // Analytics Plugin\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n Initialization.prototype.getCookieMgr = function () {\r\n return this.appInsights.getCookieMgr();\r\n };\r\n /**\r\n * Log a user action or other occurrence.\r\n * @param {IEventTelemetry} event\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackEvent = function (event, customProperties) {\r\n this.appInsights.trackEvent(event, customProperties);\r\n };\r\n /**\r\n * Logs that a page, or similar container was displayed to the user.\r\n * @param {IPageViewTelemetry} pageView\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageView = function (pageView) {\r\n var inPv = pageView || {};\r\n this.appInsights.trackPageView(inPv);\r\n };\r\n /**\r\n * Log a bag of performance information via the customProperties field.\r\n * @param {IPageViewPerformanceTelemetry} pageViewPerformance\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageViewPerformance = function (pageViewPerformance) {\r\n var inPvp = pageViewPerformance || {};\r\n this.appInsights.trackPageViewPerformance(inPvp);\r\n };\r\n /**\r\n * Log an exception that you have caught.\r\n * @param {IExceptionTelemetry} exception\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackException = function (exception, customProperties) {\r\n if (exception && !exception.exception && exception.error) {\r\n exception.exception = exception.error;\r\n }\r\n this.appInsights.trackException(exception, customProperties);\r\n };\r\n /**\r\n * Manually send uncaught exception telemetry. This method is automatically triggered\r\n * on a window.onerror event.\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype._onerror = function (exception) {\r\n this.appInsights._onerror(exception);\r\n };\r\n /**\r\n * Log a diagnostic scenario such entering or leaving a function.\r\n * @param {ITraceTelemetry} trace\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackTrace = function (trace, customProperties) {\r\n this.appInsights.trackTrace(trace, customProperties);\r\n };\r\n /**\r\n * Log a numeric value that is not associated with a specific event. Typically used\r\n * to send regular reports of performance indicators.\r\n *\r\n * To send a single measurement, just use the `name` and `average` fields\r\n * of {@link IMetricTelemetry}.\r\n *\r\n * If you take measurements frequently, you can reduce the telemetry bandwidth by\r\n * aggregating multiple measurements and sending the resulting average and modifying\r\n * the `sampleCount` field of {@link IMetricTelemetry}.\r\n * @param {IMetricTelemetry} metric input object argument. Only `name` and `average` are mandatory.\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackMetric = function (metric, customProperties) {\r\n this.appInsights.trackMetric(metric, customProperties);\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n Initialization.prototype.startTrackPage = function (name) {\r\n this.appInsights.startTrackPage(name);\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackPage = function (name, url, customProperties, measurements) {\r\n this.appInsights.stopTrackPage(name, url, customProperties, measurements);\r\n };\r\n Initialization.prototype.startTrackEvent = function (name) {\r\n this.appInsights.startTrackEvent(name);\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n this.appInsights.stopTrackEvent(name, properties, measurements); // Todo: Fix to pass measurements once type is updated\r\n };\r\n Initialization.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n return this.appInsights.addTelemetryInitializer(telemetryInitializer);\r\n };\r\n // Properties Plugin\r\n /**\r\n * Set the authenticated user id and the account id. Used for identifying a specific signed-in user. Parameters must not contain whitespace or ,;=|\r\n *\r\n * The method will only set the `authenticatedUserId` and `accountId` in the current page view. To set them for the whole session, you should set `storeInCookie = true`\r\n * @param {string} authenticatedUserId\r\n * @param {string} [accountId]\r\n * @param {boolean} [storeInCookie=false]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n this.properties.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId, storeInCookie);\r\n };\r\n /**\r\n * Clears the authenticated user id and account id. The associated cookie is cleared, if present.\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.clearAuthenticatedUserContext = function () {\r\n this.properties.context.user.clearAuthenticatedUserContext();\r\n };\r\n // Dependencies Plugin\r\n /**\r\n * Log a dependency call (e.g. ajax)\r\n * @param {IDependencyTelemetry} dependency\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackDependencyData = function (dependency) {\r\n this.dependencies.trackDependencyData(dependency);\r\n };\r\n // Misc\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.flush = function (async) {\r\n var _this = this;\r\n if (async === void 0) { async = true; }\r\n doPerf(this.core, function () { return \"AISKU.flush\"; }, function () {\r\n arrForEach(_this.core.getTransmissionControls(), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n channel.flush(async);\r\n });\r\n });\r\n }, null, async);\r\n };\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer using beacon Sender.\r\n * Fall back to xhr sender if beacon is not supported.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.onunloadFlush = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(this.core.getTransmissionControls(), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n if (channel.onunloadFlush) {\r\n channel.onunloadFlush();\r\n }\r\n else {\r\n channel.flush(async);\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initialize this instance of ApplicationInsights\r\n * @returns {IApplicationInsights}\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n var _this = this;\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n var _self = this;\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_self._snippetVersion)) {\r\n snippetVer += _self._snippetVersion;\r\n }\r\n if (legacyMode) {\r\n snippetVer += \".lg\";\r\n }\r\n if (_self.context && _self.context.internal) {\r\n _self.context.internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n _ignoreUpdateSnippetProperties.indexOf(field) === -1) {\r\n snippet[field] = value;\r\n }\r\n });\r\n }\r\n }\r\n // dont allow additional channels/other extensions for legacy mode; legacy mode is only to allow users to switch with no code changes!\r\n if (legacyMode && _self.config.extensions && _self.config.extensions.length > 0) {\r\n throwError(\"Extensions not allowed in legacy mode\");\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n var extensions = [];\r\n extensions.push(_self._sender);\r\n extensions.push(_self.properties);\r\n extensions.push(_self.dependencies);\r\n extensions.push(_self.appInsights);\r\n // initialize core\r\n _self.core.initialize(_self.config, extensions, logger, notificationManager);\r\n _self.context = _self.properties.context;\r\n if (_internalSdkSrc && _self.context) {\r\n _self.context.internal.sdkSrc = _internalSdkSrc;\r\n }\r\n _updateSnippetProperties(_self.snippet);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self.pollInternalLogs();\r\n _self.addHousekeepingBeforeUnload(_this);\r\n });\r\n return _self;\r\n };\r\n /**\r\n * Overwrite the lazy loaded fields of global window snippet to contain the\r\n * actual initialized API methods\r\n * @param {Snippet} snippet\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.updateSnippetDefinitions = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, this, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && _ignoreUpdateSnippetProperties.indexOf(name) === -1;\r\n });\r\n };\r\n /**\r\n * Call any functions that were queued before the main script was loaded\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.emptyQueue = function () {\r\n var _self = this;\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet.queue)) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet.queue.length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet.queue[i];\r\n call();\r\n }\r\n _self.snippet.queue = undefined;\r\n delete _self.snippet.queue;\r\n }\r\n }\r\n catch (exception) {\r\n var properties = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // LoggingSeverity.WARNING,\r\n // _InternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n Initialization.prototype.pollInternalLogs = function () {\r\n this.core.pollInternalLogs();\r\n };\r\n Initialization.prototype.stopPollingInternalLogs = function () {\r\n this.core.stopPollingInternalLogs();\r\n };\r\n Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance.onunloadFlush(false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n arrForEach(appInsightsInstance.appInsights.core[\"_extensions\"], function (ext) {\r\n if (ext.identifier === PropertiesPluginIdentifier) {\r\n if (ext && ext.context && ext.context._sessionManager) {\r\n ext.context._sessionManager.backup();\r\n }\r\n return -1;\r\n }\r\n });\r\n };\r\n var added = false;\r\n var excludePageUnloadEvents = appInsightsInstance.appInsights.config.disablePageUnloadEvents;\r\n if (!appInsightsInstance.appInsights.config.disableFlushOnBeforeUnload) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n added = addPageUnloadEventListener(performHousekeeping, excludePageUnloadEvents);\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n added = addPageHideEventListener(performHousekeeping, excludePageUnloadEvents) || added;\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added && !isReactNative()) {\r\n appInsightsInstance.appInsights.core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToAddHandlerForOnBeforeUnload, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added && !appInsightsInstance.appInsights.config.disableFlushOnUnload) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping, excludePageUnloadEvents);\r\n }\r\n }\r\n };\r\n Initialization.prototype.getSender = function () {\r\n return this._sender;\r\n };\r\n Initialization.prototype.getSKUDefaults = function () {\r\n var _self = this;\r\n _self.config.diagnosticLogInterval =\r\n _self.config.diagnosticLogInterval && _self.config.diagnosticLogInterval > 0 ? _self.config.diagnosticLogInterval : 10000;\r\n };\r\n return Initialization;\r\n}());\r\nexport { Initialization };\r\n// tslint:disable-next-line\r\n(function () {\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url = sdkSrc.toLowerCase();\r\n if (url) {\r\n var src = \"\";\r\n for (var idx = 0; idx < cdns.length; idx++) {\r\n if (url.indexOf(cdns[idx]) !== -1) {\r\n src = \"cdn\" + (idx + 1);\r\n if (url.indexOf(\"/scripts/\") === -1) {\r\n if (url.indexOf(\"/next/\") !== -1) {\r\n src += \"-next\";\r\n }\r\n else if (url.indexOf(\"/beta/\") !== -1) {\r\n src += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src + (isModule ? \".mod\" : \"\");\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n})();\r\n//# sourceMappingURL=Initialization.js.map","/**\r\n * ReactPlugin.ts\r\n * @copyright Microsoft 2019\r\n */\r\nimport { __extends } from \"tslib\";\r\nimport { BaseTelemetryPlugin, _InternalMessageId, LoggingSeverity, safeGetCookieMgr, arrForEach } from \"@microsoft/applicationinsights-core-js\";\r\nvar ReactPlugin = /** @class */ (function (_super) {\r\n __extends(ReactPlugin, _super);\r\n function ReactPlugin() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.priority = 185;\r\n _this.identifier = 'ReactPlugin';\r\n return _this;\r\n }\r\n ReactPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n var _this = this;\r\n _super.prototype.initialize.call(this, config, core, extensions, pluginChain);\r\n this._extensionConfig =\r\n config.extensionConfig && config.extensionConfig[this.identifier]\r\n ? config.extensionConfig[this.identifier]\r\n : { history: null };\r\n arrForEach(extensions, function (ext) {\r\n var identifier = ext.identifier;\r\n if (identifier === 'ApplicationInsightsAnalytics') {\r\n _this._analyticsPlugin = ext;\r\n }\r\n });\r\n if (this._extensionConfig.history) {\r\n this.addHistoryListener(this._extensionConfig.history);\r\n var pageViewTelemetry = {\r\n uri: this._extensionConfig.history.location.pathname\r\n };\r\n this.trackPageView(pageViewTelemetry);\r\n }\r\n };\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n ReactPlugin.prototype.getCookieMgr = function () {\r\n return safeGetCookieMgr(this.core);\r\n };\r\n /**\r\n * Get application insights instance.\r\n */\r\n ReactPlugin.prototype.getAppInsights = function () {\r\n return this._analyticsPlugin;\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n ReactPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n this.processNext(event, itemCtx);\r\n };\r\n ReactPlugin.prototype.trackMetric = function (metric, customProperties) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackMetric(metric, customProperties);\r\n }\r\n else {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n };\r\n ReactPlugin.prototype.trackPageView = function (pageView) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackPageView(pageView);\r\n }\r\n else {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n };\r\n ReactPlugin.prototype.trackEvent = function (event, customProperties) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackEvent(event, customProperties);\r\n }\r\n else {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n };\r\n ReactPlugin.prototype.trackException = function (exception, customProperties) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackException(exception, customProperties);\r\n }\r\n else {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n };\r\n ReactPlugin.prototype.trackTrace = function (trace, customProperties) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackTrace(trace, customProperties);\r\n }\r\n else {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n };\r\n ReactPlugin.prototype.addHistoryListener = function (history) {\r\n var _this = this;\r\n var locationListener = function (arg) {\r\n // v4 of the history API passes \"location\" as the first argument, while v5 passes an object that contains location and action \r\n var locn = null;\r\n if (\"location\" in arg) {\r\n // Looks like v5\r\n locn = arg[\"location\"];\r\n }\r\n else {\r\n locn = arg;\r\n }\r\n // Timeout to ensure any changes to the DOM made by route changes get included in pageView telemetry\r\n setTimeout(function () {\r\n var pageViewTelemetry = { uri: locn.pathname };\r\n _this.trackPageView(pageViewTelemetry);\r\n }, 500);\r\n };\r\n history.listen(locationListener);\r\n };\r\n return ReactPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default ReactPlugin;\r\n//# sourceMappingURL=ReactPlugin.js.map","// AppInsights.js\r\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\r\nimport UAParser from \"ua-parser-js\";\r\nimport { ReactPlugin } from \"@microsoft/applicationinsights-react-js\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport store from \"./reducers/store\";\r\n\r\nexport const getBrowserAndOsInfo = () => {\r\n\tconst parser = new UAParser();\r\n\tconst browserInfo = parser.getBrowser();\r\n\tconst osInfo = parser.getOS();\r\n\r\n\treturn {\r\n\t\tbrowserName: browserInfo.name,\r\n\t\tbrowserVersion: browserInfo.version,\r\n\t\tosName: osInfo.name,\r\n\t\tosVersion: osInfo.version,\r\n\t\tplatform: navigator.platform, // This will give platform information (e.g., \"Win32\", \"MacIntel\")\r\n\t\tuserAgent: navigator.userAgent, // Full user-agent string\r\n\t};\r\n};\r\n\r\nconst browserHistory = createBrowserHistory({ basename: \"\" });\r\nconst reactPlugin = new ReactPlugin();\r\nconst appInsights =\r\n\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== undefined &&\r\n\tprocess.env.REACT_APP_INSTRUMENTATION_KEY &&\r\n\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== \"\"\r\n\t\t? new ApplicationInsights({\r\n\t\t\t\tconfig: {\r\n\t\t\t\t\tinstrumentationKey:\r\n\t\t\t\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY ===\r\n\t\t\t\t\t\t\tundefined ||\r\n\t\t\t\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY === \"\"\r\n\t\t\t\t\t\t\t? \"\"\r\n\t\t\t\t\t\t\t: process.env.REACT_APP_INSTRUMENTATION_KEY,\r\n\t\t\t\t\tenableAutoRouteTracking: true,\r\n\t\t\t\t\textensions: [reactPlugin],\r\n\t\t\t\t\textensionConfig: {\r\n\t\t\t\t\t\t[reactPlugin.identifier]: {\r\n\t\t\t\t\t\t\thistory: browserHistory,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t })\r\n\t\t: null;\r\n\r\nif (appInsights !== null) {\r\n\tappInsights.loadAppInsights();\r\n\t// Global error handling for uncaught exceptions\r\n\twindow.onerror = function (message, source, lineno, colno, error) {\r\n\t\tconst reduxState = store.getState();\r\n\t\tappInsights.trackException({\r\n\t\t\texception: error || new Error(message),\r\n\t\t\tseverityLevel: 3, // Error severity\r\n\t\t\tproperties: {\r\n\t\t\t\tsourceFile: source,\r\n\t\t\t\tlineNumber: lineno,\r\n\t\t\t\tcolumnNumber: colno,\r\n\t\t\t\treduxState: JSON.stringify(reduxState),\r\n\t\t\t\tbrowserOs: getBrowserAndOsInfo(),\r\n\t\t\t},\r\n\t\t});\r\n\t\treturn false; // Return false to allow the browser to also log the error\r\n\t};\r\n}\r\n\r\nexport { reactPlugin, appInsights };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { LogLevel } from \"@azure/msal-browser\";\r\n\r\nconst ua = window.navigator.userAgent;\r\nconst msie = ua.indexOf(\"MSIE \");\r\nconst msie11 = ua.indexOf(\"Trident/\");\r\nconst msedge = ua.indexOf(\"Edge/\");\r\nconst firefox = ua.indexOf(\"Firefox\");\r\nconst isIE = msie > 0 || msie11 > 0;\r\nconst isEdge = msedge > 0;\r\nconst isFirefox = firefox > 0;\r\n\r\n/**\r\n * Configuration object to be passed to MSAL instance on creation.\r\n * For a full list of MSAL.js configuration parameters, visit:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md\r\n */\r\nexport const msalConfig = {\r\n\tauth: {\r\n\t\tclientId: process.env.REACT_APP_CLIENT_ID,\r\n\t\tauthority:\r\n\t\t\t\"https://login.microsoftonline.com/\" +\r\n\t\t\tprocess.env.REACT_APP_TENANT_ID,\r\n\t\tredirectUri: \"/\",\r\n\t\tnavigateToLoginRequestUrl: true,\r\n\t},\r\n\tcache: {\r\n\t\tcacheLocation: \"localStorage\", //cannot use sessionStorage for IE11\r\n\t\tstoreAuthStateInCookie: isIE || isEdge || isFirefox, //must be true for IE11\r\n\t},\r\n\tsystem: {\r\n\t\tloggerOptions: {\r\n\t\t\tloggerCallback: (level, message, containsPii) => {\r\n\t\t\t\tif (containsPii) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tswitch (level) {\r\n\t\t\t\t\tcase LogLevel.Error:\r\n\t\t\t\t\t\tconsole.error(message);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tcase LogLevel.Info:\r\n\t\t\t\t\t\t//console.info(message);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tcase LogLevel.Verbose:\r\n\t\t\t\t\t\t//console.debug(message);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tcase LogLevel.Warning:\r\n\t\t\t\t\t\t//console.warn(message);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n};\r\n\r\n/**\r\n * Scopes you add here will be prompted for user consent during sign-in.\r\n * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.\r\n * For more information about OIDC scopes, visit:\r\n * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes\r\n */\r\nexport const loginRequest = {\r\n\tscopes: [\"User.Read\"],\r\n};\r\n\r\nexport const webApiRequest = {\r\n\tscopes: [\"api://a1b40708-0937-4de5-a096-8f0069067afe/access_as_user\"],\r\n};\r\n","import React from \"react\";\r\nimport { Menu, Dropdown, Button } from \"antd\";\r\nimport { EllipsisOutlined } from \"@ant-design/icons\";\r\n\r\nconst Menus = ({ listMenu }) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t{listMenu.map((m, i) => (\r\n\t\t\t\t\r\n\t\t\t\t\t{m.label}\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst EllipsisDropdownMenu = ({ listMenu }) => (\r\n\t}\r\n\t>\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport default EllipsisDropdownMenu;\r\n","import React from \"react\";\r\nimport { Alert } from \"antd\";\r\n\r\nconst Error = ({ error, message }) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default Error;\r\n","import React from \"react\";\r\nimport { Result, Spin } from \"antd\";\r\n\r\nconst GlobalLoading = () => {\r\n\treturn } title=\"Loading...\" />;\r\n};\r\n\r\nexport default GlobalLoading;\r\n","import { Result } from \"antd\";\r\n\r\nconst IeCheck = ({ children }) => {\r\n\tconst isIe = window.document.documentMode ? true : false;\r\n\treturn isIe ? (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t

\r\n\t\t\t\t\tPlease use Edge browser to access this application instead.\r\n\t\t\t\t

\r\n\t\t\t\t

Instructions on how to find Edge on your computer

\r\n\t\t\t\t
    \r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t\tClick the Start menu button on your task bar, or press\r\n\t\t\t\t\t\tthe Windows key on your keyboard\r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t\tIn the Search programs and files box, type in\r\n\t\t\t\t\t\tEdge\r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t
  • Click Microsoft Edge shortcut
  • \r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t\tNavigate to this application via Staffnet, or paste in\r\n\t\t\t\t\t\tthe URL to this application\r\n\t\t\t\t\t
  • \r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t) : (\r\n\t\t<>{children}\r\n\t);\r\n};\r\n\r\nexport default IeCheck;\r\n","import React from \"react\";\r\nimport { Modal } from \"antd\";\r\n\r\nconst InputModal = ({ visible, footer, title, children }) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default InputModal;\r\n","import InternalLayout, { Content, Footer, Header } from './layout';\nimport Sider, { SiderContext } from './Sider';\nvar Layout = InternalLayout;\nLayout.Header = Header;\nLayout.Footer = Footer;\nLayout.Content = Content;\nLayout.Sider = Sider;\nLayout._InternalSiderContext = SiderContext;\nexport default Layout;","import React from \"react\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport { Button, Popconfirm } from \"antd\";\r\n\r\n/**\r\n * Renders a sign-out button\r\n */\r\nexport const SignOutButton = () => {\r\n\tconst { instance } = useMsal();\r\n\r\n\tconst handleLogout = (logoutType) => {\r\n\t\tif (logoutType === \"popup\") {\r\n\t\t\tinstance.logoutPopup({\r\n\t\t\t\tpostLogoutRedirectUri: \"/\",\r\n\t\t\t\tmainWindowRedirectUri: \"/\",\r\n\t\t\t});\r\n\t\t} else if (logoutType === \"redirect\") {\r\n\t\t\tinstance.logoutRedirect({\r\n\t\t\t\tpostLogoutRedirectUri: \"/#/SignedOut\",\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\treturn (\r\n\t\t handleLogout(\"redirect\")} okText=\"Logout\" cancelText=\"Cancel\"\r\n\t\t\tokButtonProps={{ danger : true}}>\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport { loginRequest } from \"../authConfig\";\r\nimport { Button } from \"antd\";\r\n\r\n/**\r\n * Renders a drop down button with child buttons for logging in with a popup or redirect\r\n */\r\nexport const SignInButton = () => {\r\n\tconst { instance } = useMsal();\r\n\r\n\tconst handleLogin = (loginType) => {\r\n\t\tif (loginType === \"popup\") {\r\n\t\t\tinstance.loginPopup(loginRequest).catch((e) => {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t});\r\n\t\t} else if (loginType === \"redirect\") {\r\n\t\t\tinstance.loginRedirect(loginRequest).catch((e) => {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\treturn ;\r\n};\r\n","import { Row, Col } from \"antd\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n\tselectCmeFormId,\r\n\tselectFormPersonId,\r\n\tselectForm,\r\n} from \"reducers/formSlice\";\r\nimport { selectPersonId } from \"reducers/securitySlice\";\r\nimport StatusTag from \"components/StatusTag\";\r\nimport { selectPerson } from \"../person/personSlice\";\r\n\r\nconst FormHeader = () => {\r\n\tconst personId = useSelector(selectPersonId);\r\n\tconst formPersonId = useSelector(selectFormPersonId);\r\n\tconst person = useSelector(selectPerson);\r\n\tconst formId = useSelector(selectCmeFormId);\r\n\tconst { status } = useSelector(selectForm);\r\n\treturn (\r\n\t\tformId && (\r\n\t\t\t\r\n\t\t\t\tID: {formId}\r\n\t\t\t\t\r\n\t\t\t\t\t{personId !== formPersonId &&\r\n\t\t\t\t\t\tpersonId !== null &&\r\n\t\t\t\t\t\tformPersonId !== null && <>From {person?.fullName}}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t)\r\n\t);\r\n};\r\n\r\nexport default FormHeader;\r\n","export const ORGS = {\r\n\tCOUNTIES_MANUKAU: \"Counties Manukau\",\r\n\tWDHB: \"WDHB\",\r\n\tNORTHLAND: \"Northland\",\r\n};\r\n","import React from \"react\";\r\nimport LogoWaitemata from \"assets/logo-waitemata.png\";\r\nimport LogoCounties from \"assets/logo-counties.jpg\";\r\nimport LogoNorthland from \"assets/logo-northland.jpeg\";\r\nimport { Layout as AntdLayout, Row, Col, Menu, Avatar, Tooltip } from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n\tDashboardOutlined,\r\n\tContainerOutlined,\r\n\tPlusOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { SignOutButton } from \"./SignOutButton\";\r\nimport { SignInButton } from \"./SignInButton\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { selectUser } from \"../reducers/securitySlice\";\r\nimport FormHeader from \"../features/cme/Components/FormHeader\";\r\nimport { selectGlobal } from \"reducers/global\";\r\nimport { ORGS } from \"constants.js\";\r\n\r\nconst {\r\n\tHeader: AntdHeader,\r\n\tContent: AntdContent,\r\n\tFooter: AntdFooter,\r\n\tSider,\r\n} = AntdLayout;\r\nconst { SubMenu } = Menu;\r\n\r\nconst Logo = () => {\r\n\tconst user = useSelector(selectUser);\r\n\treturn (\r\n\t\t
\r\n\t\t\t{user?.organisation === ORGS.COUNTIES_MANUKAU ? (\r\n\t\t\t\t\"Company\r\n\t\t\t) : user?.organisation === \"WDHB\" ||\r\n\t\t\t user?.organisation === \"Waitemata\" ? (\r\n\t\t\t\t\"Company\r\n\t\t\t) : user?.organisation === ORGS.NORTHLAND ? (\r\n\t\t\t\t\"Company\r\n\t\t\t) : (\r\n\t\t\t\t<>\r\n\t\t\t)}{\" \"}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nconst Title = ({ title }) => {\r\n\treturn title ? (\r\n\t\t
\r\n\t\t\t

\r\n\t\t\t\t{title}{\" \"}\r\n\t\t\t\t{process.env.REACT_APP_IS_PRODUCTION !== \"true\" ? (\r\n\t\t\t\t\tTEST\r\n\t\t\t\t) : null}\r\n\t\t\t

\r\n\t\t
\r\n\t) : (\r\n\t\t<>\r\n\t);\r\n};\r\n\r\nexport const Header = ({ showCmeFormHeader = true }) => {\r\n\tconst user = useSelector(selectUser);\r\n\tconst isAuthenticated = user?.id ? true : false;\r\n\tconst { screenTitle, showHeader } = useSelector(selectGlobal);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tdocument.title = screenTitle;\r\n\t}, [screenTitle]);\r\n\r\n\treturn showHeader ? (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t</Col>\r\n\t\t\t\t<Col span={4} className=\"qna-header-user\">\r\n\t\t\t\t\t{isAuthenticated ? (\r\n\t\t\t\t\t\t<Tooltip\r\n\t\t\t\t\t\t\ttitle={`Signed in User: ${user.firstName} ${user.lastName}`}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Avatar\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"#15284C\",\r\n\t\t\t\t\t\t\t\t\tcolor: \"white\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{user.firstName?.substring(0, 1)}\r\n\t\t\t\t\t\t\t\t{user.lastName?.substring(0, 1)}\r\n\t\t\t\t\t\t\t</Avatar>\r\n\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<SignInButton />\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Col>\r\n\t\t\t</Row>\r\n\t\t\t{showCmeFormHeader && (\r\n\t\t\t\t<Row\r\n\t\t\t\t\tjustify=\"space-between\"\r\n\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\theight: 35,\r\n\t\t\t\t\t\tlineHeight: \"35px\",\r\n\t\t\t\t\t\tborderBottom: \"1px solid #ddd\",\r\n\t\t\t\t\t\tbackground: \"#15284c\",\r\n\t\t\t\t\t\tpaddingLeft: 10,\r\n\t\t\t\t\t}}\r\n\t\t\t\t\twrap={false}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Col flex=\"auto\">\r\n\t\t\t\t\t\t<FormHeader />\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t\t<Col flex=\"70px\">\r\n\t\t\t\t\t\t<SignOutButton />\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t</Row>\r\n\t\t\t)}\r\n\t\t</AntdHeader>\r\n\t) : (\r\n\t\t<></>\r\n\t);\r\n};\r\n\r\nexport const Content = ({ children, style }) => {\r\n\treturn (\r\n\t\t<AntdContent\r\n\t\t\tstyle={style}\r\n\t\t\tclassName=\"site-content qna-content-container\"\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t</AntdContent>\r\n\t);\r\n};\r\n\r\nexport const Layout = ({ children }) => {\r\n\treturn <AntdLayout className=\"qna-container\">{children}</AntdLayout>;\r\n};\r\n\r\nexport const Footer = ({ style, children }) => {\r\n\treturn (\r\n\t\t<AntdFooter style={style} className=\"qna-footer-container print-hide\">\r\n\t\t\t{children}\r\n\t\t</AntdFooter>\r\n\t);\r\n};\r\n\r\nexport const FullLayout = ({ children, title }) => {\r\n\t//test only\r\n\treturn (\r\n\t\t<AntdLayout className=\"qna-container\">\r\n\t\t\t<Header title={title} />\r\n\t\t\t<AntdLayout>\r\n\t\t\t\t<Sider\r\n\t\t\t\t\tclassName=\"qna-sider\"\r\n\t\t\t\t\twidth={200}\r\n\t\t\t\t\tbreakpoint=\"xl\"\r\n\t\t\t\t\tcollapsedWidth=\"50\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<Menu\r\n\t\t\t\t\t\tmode=\"inline\"\r\n\t\t\t\t\t\tdefaultSelectedKeys={[\"1\"]}\r\n\t\t\t\t\t\tdefaultOpenKeys={[\"sub1\"]}\r\n\t\t\t\t\t\tstyle={{ height: \"100%\", borderRight: 0 }}\r\n\t\t\t\t\t\ttheme=\"dark\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<SubMenu\r\n\t\t\t\t\t\t\tkey=\"capex\"\r\n\t\t\t\t\t\t\ticon={<ContainerOutlined />}\r\n\t\t\t\t\t\t\ttitle=\"Capex Forms\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Menu.Item key=\"1\" icon={<DashboardOutlined />}>\r\n\t\t\t\t\t\t\t\tDashboard\r\n\t\t\t\t\t\t\t\t<Link to=\"/Capex/Dashboard\" />\r\n\t\t\t\t\t\t\t</Menu.Item>\r\n\t\t\t\t\t\t\t<Menu.Item key=\"2\" icon={<PlusOutlined />}>\r\n\t\t\t\t\t\t\t\tRaise New\r\n\t\t\t\t\t\t\t\t<Link to=\"/form/E3508ECC-7901-4552-B7DF-9734CB97403F\" />\r\n\t\t\t\t\t\t\t</Menu.Item>\r\n\t\t\t\t\t\t</SubMenu>\r\n\t\t\t\t\t\t{/* <Menu.Item key=\"settings\" icon={<SettingOutlined />}>\r\n\t\t\t\t\t\t\tSettings\r\n\t\t\t\t\t\t</Menu.Item> */}\r\n\t\t\t\t\t</Menu>\r\n\t\t\t\t</Sider>\r\n\t\t\t\t<AntdLayout>\r\n\t\t\t\t\t<Content className=\"site-content\">{children}</Content>\r\n\t\t\t\t</AntdLayout>\r\n\t\t\t</AntdLayout>\r\n\t\t</AntdLayout>\r\n\t);\r\n};\r\n","import React from \"react\";\r\n\r\nconst NumberDisplay = ({\r\n\tnumber,\r\n\tminDigits = 0,\r\n\tmaxDigits = 2,\r\n\tcurrency = true,\r\n\tblock = true,\r\n\tstyle,\r\n\t...otherProps\r\n}) => {\r\n\tconst combinedStyle = number < 0 ? { color: \"red\", ...style } : style;\r\n\tconst displayNumber = number || 0;\r\n\treturn (\r\n\t\t<span\r\n\t\t\tclassName={currency ? \"currency\" : \"align-right\"}\r\n\t\t\tstyle={{ ...combinedStyle, display: block ? \"block\" : \"inline\" }}\r\n\t\t\t{...otherProps}\r\n\t\t>{`${Number(displayNumber).toLocaleString(\"en\", {\r\n\t\t\tminimumFractionDigits: minDigits,\r\n\t\t\tmaximumFractionDigits: maxDigits,\r\n\t\t})}`}</span>\r\n\t);\r\n};\r\n\r\nexport default NumberDisplay;\r\n","import React from \"react\";\r\nimport { Radio } from \"antd\";\r\n\r\nconst YesNo = ({\r\n\tdefaultValue,\r\n\tdispatch,\r\n\tname,\r\n\tquestionId,\r\n\tdataType,\r\n\t...otherProps\r\n}) => {\r\n\tconst [answerAdded, answerEdited] = dispatch;\r\n\tconst onChange = (e) => {\r\n\t\tlet data = {\r\n\t\t\tquestionId: questionId,\r\n\t\t\tvalue: e.target.value,\r\n\t\t\tid: name,\r\n\t\t\tdataType: dataType,\r\n\t\t};\r\n\t\tif (defaultValue) answerEdited(data);\r\n\t\telse answerAdded(data);\r\n\t};\r\n\treturn (\r\n\t\t<Radio.Group onChange={onChange} value={defaultValue} {...otherProps}>\r\n\t\t\t<Radio value={\"Yes\"}>Yes</Radio>\r\n\t\t\t<Radio value={\"No\"}>No</Radio>\r\n\t\t</Radio.Group>\r\n\t);\r\n};\r\n\r\nexport default YesNo;\r\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport DatePicker from '../date-picker';\nimport warning from '../_util/warning';\nvar InternalTimePicker = DatePicker.TimePicker,\n InternalRangePicker = DatePicker.RangePicker;\nvar RangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var dropdownClassName = props.dropdownClassName,\n popupClassName = props.popupClassName;\n return /*#__PURE__*/React.createElement(InternalRangePicker, _extends({}, props, {\n dropdownClassName: dropdownClassName,\n popupClassName: popupClassName,\n picker: \"time\",\n mode: undefined,\n ref: ref\n }));\n});\nvar TimePicker = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var addon = _a.addon,\n renderExtraFooter = _a.renderExtraFooter,\n popupClassName = _a.popupClassName,\n dropdownClassName = _a.dropdownClassName,\n restProps = __rest(_a, [\"addon\", \"renderExtraFooter\", \"popupClassName\", \"dropdownClassName\"]);\n var internalRenderExtraFooter = React.useMemo(function () {\n if (renderExtraFooter) {\n return renderExtraFooter;\n }\n if (addon) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'TimePicker', '`addon` is deprecated. Please use `renderExtraFooter` instead.') : void 0;\n return addon;\n }\n return undefined;\n }, [addon, renderExtraFooter]);\n return /*#__PURE__*/React.createElement(InternalTimePicker, _extends({\n dropdownClassName: dropdownClassName,\n popupClassName: popupClassName\n }, restProps, {\n mode: undefined,\n ref: ref,\n renderExtraFooter: internalRenderExtraFooter\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n TimePicker.displayName = 'TimePicker';\n}\nTimePicker.RangePicker = RangePicker;\nexport default TimePicker;","import React from \"react\";\r\nimport { TimePicker as AntdTimePicker } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nconst TimePicker = ({\r\n\tdefaultValue,\r\n\tdispatch,\r\n\tname,\r\n\tformat = \"HH:mm\",\r\n\tisNew,\r\n\tdataType,\r\n\tquestionId,\r\n\toutputFormat = \"HH:mm\",\r\n\t...otherProps\r\n}) => {\r\n\t//data is stored in ISO format, rendered in local format\r\n\tconst dateValue = defaultValue ? moment(defaultValue, \"HH:mm\") : null;\r\n\tconst renderDateValue = dateValue ? moment(dateValue, format) : null;\r\n\tconst [answerAdded, answerEdited] = dispatch;\r\n\tconst handleDispatch = (e, date) => {\r\n\t\tlet data = {\r\n\t\t\tquestionId: questionId,\r\n\t\t\tvalue: moment(date, format).format(outputFormat),\r\n\t\t\tid: name,\r\n\t\t};\r\n\t\tif (!isNew) answerEdited(data);\r\n\t\telse answerAdded(data);\r\n\t};\r\n\treturn (\r\n\t\t<AntdTimePicker\r\n\t\t\tallowClear={false}\r\n\t\t\tshowTime={dataType === \"datetime\"}\r\n\t\t\tformat={format}\r\n\t\t\tdefaultValue={renderDateValue}\r\n\t\t\tonChange={handleDispatch}\r\n\t\t\tname={name}\r\n\t\t\t{...otherProps}\r\n\t\t\tsuffixIcon={null}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default TimePicker;\r\n","import React from \"react\";\r\nimport { Checkbox as AntdCheckbox } from \"antd\";\r\n\r\nconst Checkbox = ({\r\n\tdefaultChecked,\r\n\tdispatch,\r\n\tname,\r\n\tquestionId,\r\n\tlookup,\r\n\tisNew,\r\n\tdataType,\r\n\t...otherProps\r\n}) => {\r\n\tconst [answerAdded, answerEdited] = dispatch;\r\n\tconst handleDispatch = (e) => {\r\n\t\tlet data = {\r\n\t\t\tquestionId: questionId,\r\n\t\t\tvalue: e,\r\n\t\t\tid: name,\r\n\t\t\tdataType: dataType,\r\n\t\t};\r\n\t\tif (!isNew) answerEdited(data);\r\n\t\telse answerAdded(data);\r\n\t};\r\n\tconst options =\r\n\t\tlookup && lookup.map((l) => ({ label: l.description, value: l.code }));\r\n\treturn lookup ? (\r\n\t\t<AntdCheckbox.Group\r\n\t\t\toptions={options}\r\n\t\t\tonChange={handleDispatch}\r\n\t\t\tdefaultChecked={defaultChecked}\r\n\t\t\t{...otherProps}\r\n\t\t/>\r\n\t) : (\r\n\t\t<p>Error: a checkbox was rendered but no lookup list was passed</p>\r\n\t);\r\n};\r\n\r\nexport default Checkbox;\r\n","import React from \"react\";\r\nimport { TreeSelect as AntdTreeSelect } from \"antd\";\r\n\r\nconst TreeSelect = ({\r\n\tdefaultValue,\r\n\tdispatch,\r\n\tname,\r\n\tquestionId,\r\n\ttree,\r\n\tplaceholder,\r\n\tdataType,\r\n\tisNew,\r\n\t...otherProps\r\n}) => {\r\n\tconst [answerAdded, answerEdited] = dispatch;\r\n\tconst onChange = (value) => {\r\n\t\tlet data = {\r\n\t\t\tquestionId: questionId,\r\n\t\t\tvalue: value,\r\n\t\t\tid: name,\r\n\t\t\tdataType: dataType,\r\n\t\t};\r\n\t\tif (!isNew) answerEdited(data);\r\n\t\telse answerAdded(data);\r\n\t};\r\n\treturn (\r\n\t\t<AntdTreeSelect\r\n\t\t\ttreeDefaultExpandAll\r\n\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\tdropdownStyle={{ maxHeight: 400, overflow: \"auto\" }}\r\n\t\t\tonChange={onChange}\r\n\t\t\tvalue={defaultValue}\r\n\t\t\ttreeData={tree}\r\n\t\t\tplaceholder={placeholder || \"Search by description\"}\r\n\t\t\tshowSearch\r\n\t\t\tfilterTreeNode={(search, item) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\titem.title.toUpperCase().indexOf(search.toUpperCase()) >= 0\r\n\t\t\t\t);\r\n\t\t\t}}\r\n\t\t\t{...otherProps}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default TreeSelect;\r\n","import React from \"react\";\r\n\r\nconst Text = ({ defaultValue, ...otherProps }) => {\r\n\treturn <span {...otherProps}>{typeof defaultValue === \"object\" ? \"\" : defaultValue}</span>;\r\n};\r\n//todo: strip out typeof once we fix it at question container\r\nexport default Text;\r\n","import React, { useState } from \"react\";\r\nimport {\r\n\tSpace,\r\n\tUpload,\r\n\tButton,\r\n\tModal,\r\n\tBadge,\r\n\tnotification,\r\n\tRow,\r\n\tCol,\r\n\tPopconfirm,\r\n} from \"antd\";\r\nimport {\r\n\tPlusOutlined,\r\n\tPaperClipOutlined,\r\n\tDeleteOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { newId, getBase64 } from \"utils/common\";\r\nimport { deleteUploadDocument, uploadDocument } from \"api\";\r\nimport _ from \"lodash\";\r\n\r\nconst allowedFileTypes = [\r\n\t\"application/pdf\",\r\n\t\"image/png\",\r\n\t\"image/jpeg\",\r\n\t\"image/gif\",\r\n\t\"application/msword\",\r\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\r\n\t\"application/vnd.ms-powerpoint\",\r\n\t\"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\r\n\t\"application/vnd.ms-excel\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n\t\"image/bmp\",\r\n\t\"application/octet-stream\",\r\n\t// \"application/vnd.ms-outlook\", //disabling outlook since security issues prevent the download\r\n\t\"message/rfc822\",\r\n];\r\n\r\nconst allowedSize = 10485760 * 2; //20MB\r\n\r\nconst FileUploader = (props) => {\r\n\tconst [visible, setVisible] = useState(false);\r\n\tconst [loading, setLoading] = useState(false);\r\n\tconst {\r\n\t\tattachments,\r\n\t\tattachmentDispatch,\r\n\t\tname,\r\n\t\tdataType,\r\n\t\tisNew,\r\n\t\tquestionId,\r\n\t\tisFormNew,\r\n\t\tsaveFormDispatch,\r\n\t\tformId,\r\n\t\tdisabled,\r\n\t\t...otherProps\r\n\t} = props;\r\n\tconst [attachmentUpserted, fetchAttachmentById] = attachmentDispatch;\r\n\r\n\tconst onPreview = async (file) => {\r\n\t\ttry {\r\n\t\t\tsetLoading(true);\r\n\t\t\tawait fetchAttachmentById(file.uid);\r\n\t\t\tsetLoading(false);\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(e);\r\n\t\t}\r\n\t};\r\n\r\n\tconst saveForm = async () => {\r\n\t\treturn saveFormDispatch();\r\n\t};\r\n\r\n\tconst customRequest = async (uploaded) => {\r\n\t\t//first we need to check if the form has been saved\r\n\t\t//if not saved, we need to call the save action first\r\n\t\tsetLoading(true);\r\n\t\tif (isFormNew) {\r\n\t\t\tawait saveForm();\r\n\t\t}\r\n\t\tconst { file } = uploaded;\r\n\t\tconst fileContent = await getBase64(file);\r\n\t\tlet attachment = [\r\n\t\t\t{\r\n\t\t\t\tid: newId(),\r\n\t\t\t\tresponseFormId: formId,\r\n\t\t\t\tquestionId: name,\r\n\t\t\t\tfileName:_.deburr(file.name).replace(/[^0-9a-zA-Z._]/g, ''),\r\n\t\t\t\tfileType: file.type,\r\n\t\t\t\tfileContent: fileContent,\r\n\t\t\t},\r\n\t\t];\r\n\r\n\t\ttry {\r\n\t\t\tif (attachments.some((a) => a.fileName === file.name)) {\r\n\t\t\t\tnotification.error({\r\n\t\t\t\t\tmessage: \"Same file uploaded twice\",\r\n\t\t\t\t\tdescription: `You have attached a file with the of '${file.name}' already. Please check that you've selected the correct file`,\r\n\t\t\t\t\tduration: 10,\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tawait uploadDocument(attachment);\r\n\t\t\tuploaded.onSuccess(attachment);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\tuploaded.onError(error, attachment);\r\n\t\t} finally {\r\n\t\t\tsetLoading(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst onSuccess = (attachment) => {\r\n\t\t//dispatch attachment to redux without fileContent\r\n\t\tconst { fileContent, ...otherProps } = attachment[0];\r\n\t\tattachmentUpserted({ ...otherProps });\r\n\t};\r\n\r\n\tconst onError = (e, attachment) => {\r\n\t\t//todo: global error handler\r\n\t\tconsole.log(e.message, attachment);\r\n\t};\r\n\r\n\t//shape the fileList prop for antd's Upload component\r\n\t//based on our own attachment entity\r\n\tlet fileList = attachments.map((a) => {\r\n\t\treturn {\r\n\t\t\tuid: a.id,\r\n\t\t\tname: a.fileName,\r\n\t\t\tstatus: \"done\",\r\n\t\t\tfileType: a.fileType,\r\n\t\t\turl: `${process.env.REACT_APP_API_URL}/UploadDocument/GetUploadDocument/${a.id}`,\r\n\t\t};\r\n\t});\r\n\r\n\tconst uploadProps = {\r\n\t\tmultiple: true,\r\n\t\taction: `${process.env.REACT_APP_API_URL}/api/UploadDocument/UploadDocument`,\r\n\t\t// headers: {\r\n\t\t// \tauthorization: authToken,\r\n\t\t// },\r\n\t\tonPreview,\r\n\t\tcustomRequest,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t};\r\n\r\n\tconst handleCancel = () => {\r\n\t\tsetVisible(false);\r\n\t};\r\n\r\n\tconst handleOpenModal = () => {\r\n\t\tsetVisible(true);\r\n\t};\r\n\r\n\tconst handleDelete = async (f) => {\r\n\t\t//create a postable object, with no file content\r\n\t\tconst attachment = {\r\n\t\t\tid: f.uid,\r\n\t\t\tresponseFormId: formId,\r\n\t\t\tquestionId: name,\r\n\t\t\tfileName: f.name,\r\n\t\t\tfileType: f.fileType,\r\n\t\t\tisDeleted: true,\r\n\t\t};\r\n\t\ttry {\r\n\t\t\tawait deleteUploadDocument(attachment);\r\n\t\t\t//api receives an array of attachments, but redux expects a single object\r\n\t\t\tattachmentUpserted(attachment);\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(e);\r\n\t\t}\r\n\t};\r\n\r\n\tconst getFileType = (file) => {\r\n\t\tif (\r\n\t\t\tfile.name !== null &&\r\n\t\t\tfile.name !== undefined &&\r\n\t\t\tfile.name.endsWith(\".msg\")\r\n\t\t) {\r\n\t\t\treturn \"application/vnd.ms-outlook\";\r\n\t\t} else return file.type;\r\n\t};\r\n\r\n\tconst beforeUpload = (file) => {\r\n\t\tlet hasError = false;\r\n\t\tconst fileType = getFileType(file);\r\n\t\tif (!allowedFileTypes.includes(fileType)) {\r\n\t\t\tnotification.error({\r\n\t\t\t\tmessage: \"Can't upload this file\",\r\n\t\t\t\tdescription: `${file.name} is not supported for uploading. Please check that your attachment is one of the following - image, office document or pdf.`,\r\n\t\t\t\tduration: 20,\r\n\t\t\t});\r\n\t\t\thasError = true;\r\n\t\t}\r\n\t\tif (file.size > allowedSize) {\r\n\t\t\tnotification.error({\r\n\t\t\t\tmessage: \"Can't upload this file\",\r\n\t\t\t\tdescription: `${file.name} is too big (${Number(\r\n\t\t\t\t\tfile.size / 1024 / 1024\r\n\t\t\t\t).toFixed(\r\n\t\t\t\t\t2\r\n\t\t\t\t)} MB). Please check that you are uploading the correct file. If it is an image, please consider cropping it.`,\r\n\t\t\t\tduration: 20,\r\n\t\t\t});\r\n\t\t\thasError = true;\r\n\t\t}\r\n\t\treturn hasError ? Upload.LIST_IGNORE : true;\r\n\t};\r\n\r\n\treturn dataType === \"miniAttachment\" ? (\r\n\t\t<>\r\n\t\t\t<Modal\r\n\t\t\t\topen={visible}\r\n\t\t\t\ttitle=\"Attachments\"\r\n\t\t\t\tfooter={[\r\n\t\t\t\t\t<Button key=\"back\" onClick={handleCancel}>\r\n\t\t\t\t\t\tClose\r\n\t\t\t\t\t</Button>,\r\n\t\t\t\t]}\r\n\t\t\t>\r\n\t\t\t\t{fileList.map((f, i) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<Row key={i}>\r\n\t\t\t\t\t\t\t<Col>\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\tkey={f.uid}\r\n\t\t\t\t\t\t\t\t\ttype=\"link\"\r\n\t\t\t\t\t\t\t\t\tonClick={() => onPreview(f)}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{f.name}\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col>\r\n\t\t\t\t\t\t\t\t<Popconfirm\r\n\t\t\t\t\t\t\t\t\ttitle=\"Are you sure you want to delete this file?\"\r\n\t\t\t\t\t\t\t\t\tonConfirm={() => {\r\n\t\t\t\t\t\t\t\t\t\thandleDelete(f);\r\n\t\t\t\t\t\t\t\t\t\thandleCancel();\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\ttype=\"link\"\r\n\t\t\t\t\t\t\t\t\t\tdanger\r\n\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<DeleteOutlined />\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</Popconfirm>\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t</Modal>\r\n\t\t\t<Space>\r\n\t\t\t\t<Upload\r\n\t\t\t\t\t{...uploadProps}\r\n\t\t\t\t\t{...otherProps}\r\n\t\t\t\t\tfileList={fileList}\r\n\t\t\t\t\tshowUploadList={false}\r\n\t\t\t\t\tdisabled={disabled || loading}\r\n\t\t\t\t\tbeforeUpload={beforeUpload}\r\n\t\t\t\t>\r\n\t\t\t\t\t{!disabled && (\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\ttype=\"primary\"\r\n\t\t\t\t\t\t\t{...otherProps}\r\n\t\t\t\t\t\t\ticon={<PlusOutlined />}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Upload>\r\n\t\t\t\t{fileList && fileList.length > 0 ? (\r\n\t\t\t\t\t<Badge count={fileList.length}>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tonClick={handleOpenModal}\r\n\t\t\t\t\t\t\ticon={<PaperClipOutlined />}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</Badge>\r\n\t\t\t\t) : (\r\n\t\t\t\t\t<> </>\r\n\t\t\t\t)}\r\n\t\t\t</Space>\r\n\t\t</>\r\n\t) : (\r\n\t\t<>\r\n\t\t\t<Upload\r\n\t\t\t\t{...uploadProps}\r\n\t\t\t\t{...otherProps}\r\n\t\t\t\tfileList={fileList}\r\n\t\t\t\tdisabled={disabled || loading}\r\n\t\t\t\tbeforeUpload={beforeUpload}\r\n\t\t\t\tonRemove={handleDelete}\r\n\t\t\t>\r\n\t\t\t\t{!disabled && (\r\n\t\t\t\t\t<Button\r\n\t\t\t\t\t\ttype=\"primary\"\r\n\t\t\t\t\t\t{...otherProps}\r\n\t\t\t\t\t\ticon={<PlusOutlined />}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tUpload\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t)}\r\n\t\t\t</Upload>\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default FileUploader;\r\n","import * as React from 'react';\nvar CascaderContext = /*#__PURE__*/React.createContext(null);\nexport default CascaderContext;","export var VALUE_SPLIT = '__RC_CASCADER_SPLIT__';\nexport var SHOW_PARENT = 'SHOW_PARENT';\nexport var SHOW_CHILD = 'SHOW_CHILD';\nexport function toPathKey(value) {\n return value.join(VALUE_SPLIT);\n}\nexport function toPathKeys(value) {\n return value.map(toPathKey);\n}\nexport function toPathValueStr(pathKey) {\n return pathKey.split(VALUE_SPLIT);\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n children = _ref.children;\n var val = value || 'value';\n return {\n label: label || 'label',\n value: val,\n key: val,\n children: children || 'children'\n };\n}\nexport function isLeaf(option, fieldNames) {\n var _option$isLeaf, _option$fieldNames$ch;\n return (_option$isLeaf = option.isLeaf) !== null && _option$isLeaf !== void 0 ? _option$isLeaf : !((_option$fieldNames$ch = option[fieldNames.children]) === null || _option$fieldNames$ch === void 0 ? void 0 : _option$fieldNames$ch.length);\n}\nexport function scrollIntoParentView(element) {\n var parent = element.parentElement;\n if (!parent) {\n return;\n }\n var elementToParent = element.offsetTop - parent.offsetTop; // offsetParent may not be parent.\n if (elementToParent - parent.scrollTop < 0) {\n parent.scrollTo({\n top: elementToParent\n });\n } else if (elementToParent + element.offsetHeight - parent.scrollTop > parent.offsetHeight) {\n parent.scrollTo({\n top: elementToParent + element.offsetHeight - parent.offsetHeight\n });\n }\n}","import { SHOW_CHILD } from './commonUtil';\nexport function formatStrategyValues(pathKeys, getKeyPathEntities, showCheckedStrategy) {\n var valueSet = new Set(pathKeys);\n var keyPathEntities = getKeyPathEntities();\n return pathKeys.filter(function (key) {\n var entity = keyPathEntities[key];\n var parent = entity ? entity.parent : null;\n var children = entity ? entity.children : null;\n return showCheckedStrategy === SHOW_CHILD ? !(children && children.some(function (child) {\n return child.key && valueSet.has(child.key);\n })) : !(parent && !parent.node.disabled && valueSet.has(parent.key));\n });\n}\nexport function toPathOptions(valueCells, options, fieldNames) {\n var stringMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var currentList = options;\n var valueOptions = [];\n var _loop = function _loop() {\n var _currentList, _currentList2, _foundOption$fieldNam;\n var valueCell = valueCells[i];\n var foundIndex = (_currentList = currentList) === null || _currentList === void 0 ? void 0 : _currentList.findIndex(function (option) {\n var val = option[fieldNames.value];\n return stringMode ? String(val) === String(valueCell) : val === valueCell;\n });\n var foundOption = foundIndex !== -1 ? (_currentList2 = currentList) === null || _currentList2 === void 0 ? void 0 : _currentList2[foundIndex] : null;\n valueOptions.push({\n value: (_foundOption$fieldNam = foundOption === null || foundOption === void 0 ? void 0 : foundOption[fieldNames.value]) !== null && _foundOption$fieldNam !== void 0 ? _foundOption$fieldNam : valueCell,\n index: foundIndex,\n option: foundOption\n });\n currentList = foundOption === null || foundOption === void 0 ? void 0 : foundOption[fieldNames.children];\n };\n for (var i = 0; i < valueCells.length; i += 1) {\n _loop();\n }\n return valueOptions;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { toPathOptions } from '../utils/treeUtil';\nimport * as React from 'react';\nimport { toPathKey } from '../utils/commonUtil';\nexport default (function (rawValues, options, fieldNames, multiple, displayRender) {\n return React.useMemo(function () {\n var mergedDisplayRender = displayRender ||\n // Default displayRender\n function (labels) {\n var mergedLabels = multiple ? labels.slice(-1) : labels;\n var SPLIT = ' / ';\n if (mergedLabels.every(function (label) {\n return ['string', 'number'].includes(_typeof(label));\n })) {\n return mergedLabels.join(SPLIT);\n }\n // If exist non-string value, use ReactNode instead\n return mergedLabels.reduce(function (list, label, index) {\n var keyedLabel = /*#__PURE__*/React.isValidElement(label) ? /*#__PURE__*/React.cloneElement(label, {\n key: index\n }) : label;\n if (index === 0) {\n return [keyedLabel];\n }\n return [].concat(_toConsumableArray(list), [SPLIT, keyedLabel]);\n }, []);\n };\n return rawValues.map(function (valueCells) {\n var _valueOptions, _valueOptions$option;\n var valueOptions = toPathOptions(valueCells, options, fieldNames);\n var label = mergedDisplayRender(valueOptions.map(function (_ref) {\n var _option$fieldNames$la;\n var option = _ref.option,\n value = _ref.value;\n return (_option$fieldNames$la = option === null || option === void 0 ? void 0 : option[fieldNames.label]) !== null && _option$fieldNames$la !== void 0 ? _option$fieldNames$la : value;\n }), valueOptions.map(function (_ref2) {\n var option = _ref2.option;\n return option;\n }));\n var value = toPathKey(valueCells);\n return {\n label: label,\n value: value,\n key: value,\n valueCells: valueCells,\n disabled: (_valueOptions = valueOptions[valueOptions.length - 1]) === null || _valueOptions === void 0 ? void 0 : (_valueOptions$option = _valueOptions.option) === null || _valueOptions$option === void 0 ? void 0 : _valueOptions$option.disabled\n };\n });\n }, [rawValues, options, fieldNames, displayRender, multiple]);\n});","import * as React from 'react';\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\nexport default function useRefFunc(callback) {\n var funcRef = React.useRef();\n funcRef.current = callback;\n var cacheFn = React.useCallback(function () {\n return funcRef.current.apply(funcRef, arguments);\n }, []);\n return cacheFn;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nexport var SEARCH_MARK = '__rc_cascader_search_mark__';\nvar defaultFilter = function defaultFilter(search, options, _ref) {\n var label = _ref.label;\n return options.some(function (opt) {\n return String(opt[label]).toLowerCase().includes(search.toLowerCase());\n });\n};\nvar defaultRender = function defaultRender(inputValue, path, prefixCls, fieldNames) {\n return path.map(function (opt) {\n return opt[fieldNames.label];\n }).join(' / ');\n};\nexport default (function (search, options, fieldNames, prefixCls, config, changeOnSelect) {\n var _config$filter = config.filter,\n filter = _config$filter === void 0 ? defaultFilter : _config$filter,\n _config$render = config.render,\n render = _config$render === void 0 ? defaultRender : _config$render,\n _config$limit = config.limit,\n limit = _config$limit === void 0 ? 50 : _config$limit,\n sort = config.sort;\n return React.useMemo(function () {\n var filteredOptions = [];\n if (!search) {\n return [];\n }\n function dig(list, pathOptions) {\n list.forEach(function (option) {\n // Perf saving when `sort` is disabled and `limit` is provided\n if (!sort && limit > 0 && filteredOptions.length >= limit) {\n return;\n }\n var connectedPathOptions = [].concat(_toConsumableArray(pathOptions), [option]);\n var children = option[fieldNames.children];\n // If current option is filterable\n if (\n // If is leaf option\n !children || children.length === 0 ||\n // If is changeOnSelect\n changeOnSelect) {\n if (filter(search, connectedPathOptions, {\n label: fieldNames.label\n })) {\n var _objectSpread2;\n filteredOptions.push(_objectSpread(_objectSpread({}, option), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, fieldNames.label, render(search, connectedPathOptions, prefixCls, fieldNames)), _defineProperty(_objectSpread2, SEARCH_MARK, connectedPathOptions), _defineProperty(_objectSpread2, fieldNames.children, undefined), _objectSpread2)));\n }\n }\n if (children) {\n dig(option[fieldNames.children], connectedPathOptions);\n }\n });\n }\n dig(options, []);\n // Do sort\n if (sort) {\n filteredOptions.sort(function (a, b) {\n return sort(a[SEARCH_MARK], b[SEARCH_MARK], search, fieldNames);\n });\n }\n return limit > 0 ? filteredOptions.slice(0, limit) : filteredOptions;\n }, [search, options, fieldNames, prefixCls, render, changeOnSelect, filter, sort, limit]);\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CascaderContext from '../context';\nexport default function Checkbox(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n checked = _ref.checked,\n halfChecked = _ref.halfChecked,\n disabled = _ref.disabled,\n onClick = _ref.onClick;\n var _React$useContext = React.useContext(CascaderContext),\n checkable = _React$useContext.checkable;\n var customCheckbox = typeof checkable !== 'boolean' ? checkable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-indeterminate\"), !checked && halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames)),\n onClick: onClick\n }, customCheckbox);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { isLeaf, toPathKey } from '../utils/commonUtil';\nimport CascaderContext from '../context';\nimport Checkbox from './Checkbox';\nimport { SEARCH_MARK } from '../hooks/useSearchOptions';\nexport var FIX_LABEL = '__cascader_fix_label__';\nexport default function Column(_ref) {\n var prefixCls = _ref.prefixCls,\n multiple = _ref.multiple,\n options = _ref.options,\n activeValue = _ref.activeValue,\n prevValuePath = _ref.prevValuePath,\n onToggleOpen = _ref.onToggleOpen,\n onSelect = _ref.onSelect,\n onActive = _ref.onActive,\n checkedSet = _ref.checkedSet,\n halfCheckedSet = _ref.halfCheckedSet,\n loadingKeys = _ref.loadingKeys,\n isSelectable = _ref.isSelectable;\n var menuPrefixCls = \"\".concat(prefixCls, \"-menu\");\n var menuItemPrefixCls = \"\".concat(prefixCls, \"-menu-item\");\n var _React$useContext = React.useContext(CascaderContext),\n fieldNames = _React$useContext.fieldNames,\n changeOnSelect = _React$useContext.changeOnSelect,\n expandTrigger = _React$useContext.expandTrigger,\n expandIcon = _React$useContext.expandIcon,\n loadingIcon = _React$useContext.loadingIcon,\n dropdownMenuColumnStyle = _React$useContext.dropdownMenuColumnStyle;\n var hoverOpen = expandTrigger === 'hover';\n // ============================ Option ============================\n var optionInfoList = React.useMemo(function () {\n return options.map(function (option) {\n var _option$FIX_LABEL;\n var disabled = option.disabled;\n var searchOptions = option[SEARCH_MARK];\n var label = (_option$FIX_LABEL = option[FIX_LABEL]) !== null && _option$FIX_LABEL !== void 0 ? _option$FIX_LABEL : option[fieldNames.label];\n var value = option[fieldNames.value];\n var isMergedLeaf = isLeaf(option, fieldNames);\n // Get real value of option. Search option is different way.\n var fullPath = searchOptions ? searchOptions.map(function (opt) {\n return opt[fieldNames.value];\n }) : [].concat(_toConsumableArray(prevValuePath), [value]);\n var fullPathKey = toPathKey(fullPath);\n var isLoading = loadingKeys.includes(fullPathKey);\n // >>>>> checked\n var checked = checkedSet.has(fullPathKey);\n // >>>>> halfChecked\n var halfChecked = halfCheckedSet.has(fullPathKey);\n return {\n disabled: disabled,\n label: label,\n value: value,\n isLeaf: isMergedLeaf,\n isLoading: isLoading,\n checked: checked,\n halfChecked: halfChecked,\n option: option,\n fullPath: fullPath,\n fullPathKey: fullPathKey\n };\n });\n }, [options, checkedSet, fieldNames, halfCheckedSet, loadingKeys, prevValuePath]);\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: menuPrefixCls,\n role: \"menu\"\n }, optionInfoList.map(function (_ref2) {\n var _classNames;\n var disabled = _ref2.disabled,\n label = _ref2.label,\n value = _ref2.value,\n isMergedLeaf = _ref2.isLeaf,\n isLoading = _ref2.isLoading,\n checked = _ref2.checked,\n halfChecked = _ref2.halfChecked,\n option = _ref2.option,\n fullPath = _ref2.fullPath,\n fullPathKey = _ref2.fullPathKey;\n // >>>>> Open\n var triggerOpenPath = function triggerOpenPath() {\n if (!disabled) {\n var nextValueCells = _toConsumableArray(fullPath);\n if (hoverOpen && isMergedLeaf) {\n nextValueCells.pop();\n }\n onActive(nextValueCells);\n }\n };\n // >>>>> Selection\n var triggerSelect = function triggerSelect() {\n if (isSelectable(option)) {\n onSelect(fullPath, isMergedLeaf);\n }\n };\n // >>>>> Title\n var title;\n if (typeof option.title === 'string') {\n title = option.title;\n } else if (typeof label === 'string') {\n title = label;\n }\n // >>>>> Render\n return /*#__PURE__*/React.createElement(\"li\", {\n key: fullPathKey,\n className: classNames(menuItemPrefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-expand\"), !isMergedLeaf), _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-active\"), activeValue === value), _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(menuItemPrefixCls, \"-loading\"), isLoading), _classNames)),\n style: dropdownMenuColumnStyle,\n role: \"menuitemcheckbox\",\n title: title,\n \"aria-checked\": checked,\n \"data-path-key\": fullPathKey,\n onClick: function onClick() {\n triggerOpenPath();\n if (!multiple || isMergedLeaf) {\n triggerSelect();\n }\n },\n onDoubleClick: function onDoubleClick() {\n if (changeOnSelect) {\n onToggleOpen(false);\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (hoverOpen) {\n triggerOpenPath();\n }\n },\n onMouseDown: function onMouseDown(e) {\n // Prevent selector from blurring\n e.preventDefault();\n }\n }, multiple && /*#__PURE__*/React.createElement(Checkbox, {\n prefixCls: \"\".concat(prefixCls, \"-checkbox\"),\n checked: checked,\n halfChecked: halfChecked,\n disabled: disabled,\n onClick: function onClick(e) {\n e.stopPropagation();\n triggerSelect();\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(menuItemPrefixCls, \"-content\")\n }, label), !isLoading && expandIcon && !isMergedLeaf && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(menuItemPrefixCls, \"-expand-icon\")\n }, expandIcon), isLoading && loadingIcon && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(menuItemPrefixCls, \"-loading-icon\")\n }, loadingIcon));\n }));\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CascaderContext from '../context';\nimport { useBaseProps } from 'rc-select';\n/**\n * Control the active open options path.\n */\nexport default (function () {\n var _useBaseProps = useBaseProps(),\n multiple = _useBaseProps.multiple,\n open = _useBaseProps.open;\n var _React$useContext = React.useContext(CascaderContext),\n values = _React$useContext.values;\n // Record current dropdown active options\n // This also control the open status\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeValueCells = _React$useState2[0],\n setActiveValueCells = _React$useState2[1];\n React.useEffect(function () {\n if (open && !multiple) {\n var firstValueCells = values[0];\n setActiveValueCells(firstValueCells || []);\n }\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [open]);\n return [activeValueCells, setActiveValueCells];\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useBaseProps } from 'rc-select';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { SEARCH_MARK } from '../hooks/useSearchOptions';\nexport default (function (ref, options, fieldNames, activeValueCells, setActiveValueCells, onKeyBoardSelect) {\n var _useBaseProps = useBaseProps(),\n direction = _useBaseProps.direction,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n open = _useBaseProps.open;\n var rtl = direction === 'rtl';\n var _React$useMemo = React.useMemo(function () {\n var activeIndex = -1;\n var currentOptions = options;\n var mergedActiveIndexes = [];\n var mergedActiveValueCells = [];\n var len = activeValueCells.length;\n // Fill validate active value cells and index\n var _loop = function _loop(i) {\n // Mark the active index for current options\n var nextActiveIndex = currentOptions.findIndex(function (option) {\n return option[fieldNames.value] === activeValueCells[i];\n });\n if (nextActiveIndex === -1) {\n return \"break\";\n }\n activeIndex = nextActiveIndex;\n mergedActiveIndexes.push(activeIndex);\n mergedActiveValueCells.push(activeValueCells[i]);\n currentOptions = currentOptions[activeIndex][fieldNames.children];\n };\n for (var i = 0; i < len && currentOptions; i += 1) {\n var _ret = _loop(i);\n if (_ret === \"break\") break;\n }\n // Fill last active options\n var activeOptions = options;\n for (var _i = 0; _i < mergedActiveIndexes.length - 1; _i += 1) {\n activeOptions = activeOptions[mergedActiveIndexes[_i]][fieldNames.children];\n }\n return [mergedActiveValueCells, activeIndex, activeOptions];\n }, [activeValueCells, fieldNames, options]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 3),\n validActiveValueCells = _React$useMemo2[0],\n lastActiveIndex = _React$useMemo2[1],\n lastActiveOptions = _React$useMemo2[2];\n // Update active value cells and scroll to target element\n var internalSetActiveValueCells = function internalSetActiveValueCells(next) {\n setActiveValueCells(next);\n };\n // Same options offset\n var offsetActiveOption = function offsetActiveOption(offset) {\n var len = lastActiveOptions.length;\n var currentIndex = lastActiveIndex;\n if (currentIndex === -1 && offset < 0) {\n currentIndex = len;\n }\n for (var i = 0; i < len; i += 1) {\n currentIndex = (currentIndex + offset + len) % len;\n var option = lastActiveOptions[currentIndex];\n if (option && !option.disabled) {\n var value = option[fieldNames.value];\n var nextActiveCells = validActiveValueCells.slice(0, -1).concat(value);\n internalSetActiveValueCells(nextActiveCells);\n return;\n }\n }\n };\n // Different options offset\n var prevColumn = function prevColumn() {\n if (validActiveValueCells.length > 1) {\n var nextActiveCells = validActiveValueCells.slice(0, -1);\n internalSetActiveValueCells(nextActiveCells);\n } else {\n toggleOpen(false);\n }\n };\n var nextColumn = function nextColumn() {\n var _lastActiveOptions$la;\n var nextOptions = ((_lastActiveOptions$la = lastActiveOptions[lastActiveIndex]) === null || _lastActiveOptions$la === void 0 ? void 0 : _lastActiveOptions$la[fieldNames.children]) || [];\n var nextOption = nextOptions.find(function (option) {\n return !option.disabled;\n });\n if (nextOption) {\n var nextActiveCells = [].concat(_toConsumableArray(validActiveValueCells), [nextOption[fieldNames.value]]);\n internalSetActiveValueCells(nextActiveCells);\n }\n };\n React.useImperativeHandle(ref, function () {\n return {\n // scrollTo: treeRef.current?.scrollTo,\n onKeyDown: function onKeyDown(event) {\n var which = event.which;\n switch (which) {\n // >>> Arrow keys\n case KeyCode.UP:\n case KeyCode.DOWN:\n {\n var offset = 0;\n if (which === KeyCode.UP) {\n offset = -1;\n } else if (which === KeyCode.DOWN) {\n offset = 1;\n }\n if (offset !== 0) {\n offsetActiveOption(offset);\n }\n break;\n }\n case KeyCode.LEFT:\n {\n if (searchValue) {\n break;\n }\n if (rtl) {\n nextColumn();\n } else {\n prevColumn();\n }\n break;\n }\n case KeyCode.RIGHT:\n {\n if (searchValue) {\n break;\n }\n if (rtl) {\n prevColumn();\n } else {\n nextColumn();\n }\n break;\n }\n case KeyCode.BACKSPACE:\n {\n if (!searchValue) {\n prevColumn();\n }\n break;\n }\n // >>> Select\n case KeyCode.ENTER:\n {\n if (validActiveValueCells.length) {\n var option = lastActiveOptions[lastActiveIndex];\n // Search option should revert back of origin options\n var originOptions = (option === null || option === void 0 ? void 0 : option[SEARCH_MARK]) || [];\n if (originOptions.length) {\n onKeyBoardSelect(originOptions.map(function (opt) {\n return opt[fieldNames.value];\n }), originOptions[originOptions.length - 1]);\n } else {\n onKeyBoardSelect(validActiveValueCells, lastActiveOptions[lastActiveIndex]);\n }\n }\n break;\n }\n // >>> Close\n case KeyCode.ESC:\n {\n toggleOpen(false);\n if (open) {\n event.stopPropagation();\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {}\n };\n });\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/* eslint-disable default-case */\nimport classNames from 'classnames';\nimport { useBaseProps } from 'rc-select';\nimport * as React from 'react';\nimport CascaderContext from '../context';\nimport { isLeaf, scrollIntoParentView, toPathKey, toPathKeys, toPathValueStr } from '../utils/commonUtil';\nimport { toPathOptions } from '../utils/treeUtil';\nimport Column, { FIX_LABEL } from './Column';\nimport useActive from './useActive';\nimport useKeyboard from './useKeyboard';\nvar RefOptionList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _optionColumns$, _optionColumns$$optio, _ref3, _classNames;\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n multiple = _useBaseProps.multiple,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n notFoundContent = _useBaseProps.notFoundContent,\n direction = _useBaseProps.direction;\n var containerRef = React.useRef();\n var rtl = direction === 'rtl';\n var _React$useContext = React.useContext(CascaderContext),\n options = _React$useContext.options,\n values = _React$useContext.values,\n halfValues = _React$useContext.halfValues,\n fieldNames = _React$useContext.fieldNames,\n changeOnSelect = _React$useContext.changeOnSelect,\n onSelect = _React$useContext.onSelect,\n searchOptions = _React$useContext.searchOptions,\n dropdownPrefixCls = _React$useContext.dropdownPrefixCls,\n loadData = _React$useContext.loadData,\n expandTrigger = _React$useContext.expandTrigger;\n var mergedPrefixCls = dropdownPrefixCls || prefixCls;\n // ========================= loadData =========================\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n loadingKeys = _React$useState2[0],\n setLoadingKeys = _React$useState2[1];\n var internalLoadData = function internalLoadData(valueCells) {\n // Do not load when search\n if (!loadData || searchValue) {\n return;\n }\n var optionList = toPathOptions(valueCells, options, fieldNames);\n var rawOptions = optionList.map(function (_ref) {\n var option = _ref.option;\n return option;\n });\n var lastOption = rawOptions[rawOptions.length - 1];\n if (lastOption && !isLeaf(lastOption, fieldNames)) {\n var pathKey = toPathKey(valueCells);\n setLoadingKeys(function (keys) {\n return [].concat(_toConsumableArray(keys), [pathKey]);\n });\n loadData(rawOptions);\n }\n };\n // zombieJ: This is bad. We should make this same as `rc-tree` to use Promise instead.\n React.useEffect(function () {\n if (loadingKeys.length) {\n loadingKeys.forEach(function (loadingKey) {\n var valueStrCells = toPathValueStr(loadingKey);\n var optionList = toPathOptions(valueStrCells, options, fieldNames, true).map(function (_ref2) {\n var option = _ref2.option;\n return option;\n });\n var lastOption = optionList[optionList.length - 1];\n if (!lastOption || lastOption[fieldNames.children] || isLeaf(lastOption, fieldNames)) {\n setLoadingKeys(function (keys) {\n return keys.filter(function (key) {\n return key !== loadingKey;\n });\n });\n }\n });\n }\n }, [options, loadingKeys, fieldNames]);\n // ========================== Values ==========================\n var checkedSet = React.useMemo(function () {\n return new Set(toPathKeys(values));\n }, [values]);\n var halfCheckedSet = React.useMemo(function () {\n return new Set(toPathKeys(halfValues));\n }, [halfValues]);\n // ====================== Accessibility =======================\n var _useActive = useActive(),\n _useActive2 = _slicedToArray(_useActive, 2),\n activeValueCells = _useActive2[0],\n setActiveValueCells = _useActive2[1];\n // =========================== Path ===========================\n var onPathOpen = function onPathOpen(nextValueCells) {\n setActiveValueCells(nextValueCells);\n // Trigger loadData\n internalLoadData(nextValueCells);\n };\n var isSelectable = function isSelectable(option) {\n var disabled = option.disabled;\n var isMergedLeaf = isLeaf(option, fieldNames);\n return !disabled && (isMergedLeaf || changeOnSelect || multiple);\n };\n var onPathSelect = function onPathSelect(valuePath, leaf) {\n var fromKeyboard = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n onSelect(valuePath);\n if (!multiple && (leaf || changeOnSelect && (expandTrigger === 'hover' || fromKeyboard))) {\n toggleOpen(false);\n }\n };\n // ========================== Option ==========================\n var mergedOptions = React.useMemo(function () {\n if (searchValue) {\n return searchOptions;\n }\n return options;\n }, [searchValue, searchOptions, options]);\n // ========================== Column ==========================\n var optionColumns = React.useMemo(function () {\n var optionList = [{\n options: mergedOptions\n }];\n var currentList = mergedOptions;\n var _loop = function _loop() {\n var activeValueCell = activeValueCells[i];\n var currentOption = currentList.find(function (option) {\n return option[fieldNames.value] === activeValueCell;\n });\n var subOptions = currentOption === null || currentOption === void 0 ? void 0 : currentOption[fieldNames.children];\n if (!(subOptions === null || subOptions === void 0 ? void 0 : subOptions.length)) {\n return \"break\";\n }\n currentList = subOptions;\n optionList.push({\n options: subOptions\n });\n };\n for (var i = 0; i < activeValueCells.length; i += 1) {\n var _ret = _loop();\n if (_ret === \"break\") break;\n }\n return optionList;\n }, [mergedOptions, activeValueCells, fieldNames]);\n // ========================= Keyboard =========================\n var onKeyboardSelect = function onKeyboardSelect(selectValueCells, option) {\n if (isSelectable(option)) {\n onPathSelect(selectValueCells, isLeaf(option, fieldNames), true);\n }\n };\n useKeyboard(ref, mergedOptions, fieldNames, activeValueCells, onPathOpen, onKeyboardSelect);\n // >>>>> Active Scroll\n React.useEffect(function () {\n for (var i = 0; i < activeValueCells.length; i += 1) {\n var _containerRef$current;\n var cellPath = activeValueCells.slice(0, i + 1);\n var cellKeyPath = toPathKey(cellPath);\n var ele = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.querySelector(\"li[data-path-key=\\\"\".concat(cellKeyPath.replace(/\\\\{0,2}\"/g, '\\\\\"'), \"\\\"]\"));\n if (ele) {\n scrollIntoParentView(ele);\n }\n }\n }, [activeValueCells]);\n // ========================== Render ==========================\n // >>>>> Empty\n var isEmpty = !((_optionColumns$ = optionColumns[0]) === null || _optionColumns$ === void 0 ? void 0 : (_optionColumns$$optio = _optionColumns$.options) === null || _optionColumns$$optio === void 0 ? void 0 : _optionColumns$$optio.length);\n var emptyList = [(_ref3 = {}, _defineProperty(_ref3, fieldNames.value, '__EMPTY__'), _defineProperty(_ref3, FIX_LABEL, notFoundContent), _defineProperty(_ref3, \"disabled\", true), _ref3)];\n var columnProps = _objectSpread(_objectSpread({}, props), {}, {\n multiple: !isEmpty && multiple,\n onSelect: onPathSelect,\n onActive: onPathOpen,\n onToggleOpen: toggleOpen,\n checkedSet: checkedSet,\n halfCheckedSet: halfCheckedSet,\n loadingKeys: loadingKeys,\n isSelectable: isSelectable\n });\n // >>>>> Columns\n var mergedOptionColumns = isEmpty ? [{\n options: emptyList\n }] : optionColumns;\n var columnNodes = mergedOptionColumns.map(function (col, index) {\n var prevValuePath = activeValueCells.slice(0, index);\n var activeValue = activeValueCells[index];\n return /*#__PURE__*/React.createElement(Column, _extends({\n key: index\n }, columnProps, {\n prefixCls: mergedPrefixCls,\n options: col.options,\n prevValuePath: prevValuePath,\n activeValue: activeValue\n }));\n });\n // >>>>> Render\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(mergedPrefixCls, \"-menus\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(mergedPrefixCls, \"-menu-empty\"), isEmpty), _defineProperty(_classNames, \"\".concat(mergedPrefixCls, \"-rtl\"), rtl), _classNames)),\n ref: containerRef\n }, columnNodes);\n});\nexport default RefOptionList;","import warning from \"rc-util/es/warning\";\nfunction warningProps(props) {\n var onPopupVisibleChange = props.onPopupVisibleChange,\n popupVisible = props.popupVisible,\n popupClassName = props.popupClassName,\n popupPlacement = props.popupPlacement;\n warning(!onPopupVisibleChange, '`onPopupVisibleChange` is deprecated. Please use `onDropdownVisibleChange` instead.');\n warning(popupVisible === undefined, '`popupVisible` is deprecated. Please use `open` instead.');\n warning(popupClassName === undefined, '`popupClassName` is deprecated. Please use `dropdownClassName` instead.');\n warning(popupPlacement === undefined, '`popupPlacement` is deprecated. Please use `placement` instead.');\n}\n// value in Cascader options should not be null\nexport function warningNullOptions(options, fieldNames) {\n if (options) {\n var recursiveOptions = function recursiveOptions(optionsList) {\n for (var i = 0; i < optionsList.length; i++) {\n var option = optionsList[i];\n if (option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value] === null) {\n warning(false, '`value` in Cascader options should not be `null`.');\n return true;\n }\n if (Array.isArray(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children]) && recursiveOptions(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children])) {\n return true;\n }\n }\n };\n recursiveOptions(options);\n }\n}\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"fieldNames\", \"defaultValue\", \"value\", \"changeOnSelect\", \"onChange\", \"displayRender\", \"checkable\", \"searchValue\", \"onSearch\", \"showSearch\", \"expandTrigger\", \"options\", \"dropdownPrefixCls\", \"loadData\", \"popupVisible\", \"open\", \"popupClassName\", \"dropdownClassName\", \"dropdownMenuColumnStyle\", \"popupPlacement\", \"placement\", \"onDropdownVisibleChange\", \"onPopupVisibleChange\", \"expandIcon\", \"loadingIcon\", \"children\", \"dropdownMatchSelectWidth\", \"showCheckedStrategy\"];\nimport { BaseSelect } from 'rc-select';\nimport useId from \"rc-select/es/hooks/useId\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport CascaderContext from './context';\nimport useDisplayValues from './hooks/useDisplayValues';\nimport useEntities from './hooks/useEntities';\nimport useMissingValues from './hooks/useMissingValues';\nimport useRefFunc from './hooks/useRefFunc';\nimport useSearchConfig from './hooks/useSearchConfig';\nimport useSearchOptions from './hooks/useSearchOptions';\nimport OptionList from './OptionList';\nimport { fillFieldNames, SHOW_CHILD, SHOW_PARENT, toPathKey, toPathKeys } from './utils/commonUtil';\nimport { formatStrategyValues, toPathOptions } from './utils/treeUtil';\nimport warningProps, { warningNullOptions } from './utils/warningPropsUtil';\nfunction isMultipleValue(value) {\n return Array.isArray(value) && Array.isArray(value[0]);\n}\nfunction toRawValues(value) {\n if (!value) {\n return [];\n }\n if (isMultipleValue(value)) {\n return value;\n }\n return (value.length === 0 ? [] : [value]).map(function (val) {\n return Array.isArray(val) ? val : [val];\n });\n}\nvar Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-cascader' : _props$prefixCls,\n fieldNames = props.fieldNames,\n defaultValue = props.defaultValue,\n value = props.value,\n changeOnSelect = props.changeOnSelect,\n onChange = props.onChange,\n displayRender = props.displayRender,\n checkable = props.checkable,\n searchValue = props.searchValue,\n onSearch = props.onSearch,\n showSearch = props.showSearch,\n expandTrigger = props.expandTrigger,\n options = props.options,\n dropdownPrefixCls = props.dropdownPrefixCls,\n loadData = props.loadData,\n popupVisible = props.popupVisible,\n open = props.open,\n popupClassName = props.popupClassName,\n dropdownClassName = props.dropdownClassName,\n dropdownMenuColumnStyle = props.dropdownMenuColumnStyle,\n popupPlacement = props.popupPlacement,\n placement = props.placement,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n onPopupVisibleChange = props.onPopupVisibleChange,\n _props$expandIcon = props.expandIcon,\n expandIcon = _props$expandIcon === void 0 ? '>' : _props$expandIcon,\n loadingIcon = props.loadingIcon,\n children = props.children,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? false : _props$dropdownMatchS,\n _props$showCheckedStr = props.showCheckedStrategy,\n showCheckedStrategy = _props$showCheckedStr === void 0 ? SHOW_PARENT : _props$showCheckedStr,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedId = useId(id);\n var multiple = !!checkable;\n // =========================== Values ===========================\n var _useMergedState = useMergedState(defaultValue, {\n value: value,\n postState: toRawValues\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n rawValues = _useMergedState2[0],\n setRawValues = _useMergedState2[1];\n // ========================= FieldNames =========================\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames);\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [JSON.stringify(fieldNames)]);\n // =========================== Option ===========================\n var mergedOptions = React.useMemo(function () {\n return options || [];\n }, [options]);\n // Only used in multiple mode, this fn will not call in single mode\n var getPathKeyEntities = useEntities(mergedOptions, mergedFieldNames);\n /** Convert path key back to value format */\n var getValueByKeyPath = React.useCallback(function (pathKeys) {\n var keyPathEntities = getPathKeyEntities();\n return pathKeys.map(function (pathKey) {\n var nodes = keyPathEntities[pathKey].nodes;\n return nodes.map(function (node) {\n return node[mergedFieldNames.value];\n });\n });\n }, [getPathKeyEntities, mergedFieldNames]);\n // =========================== Search ===========================\n var _useMergedState3 = useMergedState('', {\n value: searchValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedSearchValue = _useMergedState4[0],\n setSearchValue = _useMergedState4[1];\n var onInternalSearch = function onInternalSearch(searchText, info) {\n setSearchValue(searchText);\n if (info.source !== 'blur' && onSearch) {\n onSearch(searchText);\n }\n };\n var _useSearchConfig = useSearchConfig(showSearch),\n _useSearchConfig2 = _slicedToArray(_useSearchConfig, 2),\n mergedShowSearch = _useSearchConfig2[0],\n searchConfig = _useSearchConfig2[1];\n var searchOptions = useSearchOptions(mergedSearchValue, mergedOptions, mergedFieldNames, dropdownPrefixCls || prefixCls, searchConfig, changeOnSelect);\n // =========================== Values ===========================\n var getMissingValues = useMissingValues(mergedOptions, mergedFieldNames);\n // Fill `rawValues` with checked conduction values\n var _React$useMemo = React.useMemo(function () {\n var _getMissingValues = getMissingValues(rawValues),\n _getMissingValues2 = _slicedToArray(_getMissingValues, 2),\n existValues = _getMissingValues2[0],\n missingValues = _getMissingValues2[1];\n if (!multiple || !rawValues.length) {\n return [existValues, [], missingValues];\n }\n var keyPathValues = toPathKeys(existValues);\n var keyPathEntities = getPathKeyEntities();\n var _conductCheck = conductCheck(keyPathValues, true, keyPathEntities),\n checkedKeys = _conductCheck.checkedKeys,\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n // Convert key back to value cells\n return [getValueByKeyPath(checkedKeys), getValueByKeyPath(halfCheckedKeys), missingValues];\n }, [multiple, rawValues, getPathKeyEntities, getValueByKeyPath, getMissingValues]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 3),\n checkedValues = _React$useMemo2[0],\n halfCheckedValues = _React$useMemo2[1],\n missingCheckedValues = _React$useMemo2[2];\n var deDuplicatedValues = React.useMemo(function () {\n var checkedKeys = toPathKeys(checkedValues);\n var deduplicateKeys = formatStrategyValues(checkedKeys, getPathKeyEntities, showCheckedStrategy);\n return [].concat(_toConsumableArray(missingCheckedValues), _toConsumableArray(getValueByKeyPath(deduplicateKeys)));\n }, [checkedValues, getPathKeyEntities, getValueByKeyPath, missingCheckedValues, showCheckedStrategy]);\n var displayValues = useDisplayValues(deDuplicatedValues, mergedOptions, mergedFieldNames, multiple, displayRender);\n // =========================== Change ===========================\n var triggerChange = useRefFunc(function (nextValues) {\n setRawValues(nextValues);\n // Save perf if no need trigger event\n if (onChange) {\n var nextRawValues = toRawValues(nextValues);\n var valueOptions = nextRawValues.map(function (valueCells) {\n return toPathOptions(valueCells, mergedOptions, mergedFieldNames).map(function (valueOpt) {\n return valueOpt.option;\n });\n });\n var triggerValues = multiple ? nextRawValues : nextRawValues[0];\n var triggerOptions = multiple ? valueOptions : valueOptions[0];\n onChange(triggerValues, triggerOptions);\n }\n });\n // =========================== Select ===========================\n var onInternalSelect = useRefFunc(function (valuePath) {\n setSearchValue('');\n if (!multiple) {\n triggerChange(valuePath);\n } else {\n // Prepare conduct required info\n var pathKey = toPathKey(valuePath);\n var checkedPathKeys = toPathKeys(checkedValues);\n var halfCheckedPathKeys = toPathKeys(halfCheckedValues);\n var existInChecked = checkedPathKeys.includes(pathKey);\n var existInMissing = missingCheckedValues.some(function (valueCells) {\n return toPathKey(valueCells) === pathKey;\n });\n // Do update\n var nextCheckedValues = checkedValues;\n var nextMissingValues = missingCheckedValues;\n if (existInMissing && !existInChecked) {\n // Missing value only do filter\n nextMissingValues = missingCheckedValues.filter(function (valueCells) {\n return toPathKey(valueCells) !== pathKey;\n });\n } else {\n // Update checked key first\n var nextRawCheckedKeys = existInChecked ? checkedPathKeys.filter(function (key) {\n return key !== pathKey;\n }) : [].concat(_toConsumableArray(checkedPathKeys), [pathKey]);\n var pathKeyEntities = getPathKeyEntities();\n // Conduction by selected or not\n var checkedKeys;\n if (existInChecked) {\n var _conductCheck2 = conductCheck(nextRawCheckedKeys, {\n checked: false,\n halfCheckedKeys: halfCheckedPathKeys\n }, pathKeyEntities);\n checkedKeys = _conductCheck2.checkedKeys;\n } else {\n var _conductCheck3 = conductCheck(nextRawCheckedKeys, true, pathKeyEntities);\n checkedKeys = _conductCheck3.checkedKeys;\n }\n // Roll up to parent level keys\n var deDuplicatedKeys = formatStrategyValues(checkedKeys, getPathKeyEntities, showCheckedStrategy);\n nextCheckedValues = getValueByKeyPath(deDuplicatedKeys);\n }\n triggerChange([].concat(_toConsumableArray(nextMissingValues), _toConsumableArray(nextCheckedValues)));\n }\n });\n // Display Value change logic\n var onDisplayValuesChange = function onDisplayValuesChange(_, info) {\n if (info.type === 'clear') {\n triggerChange([]);\n return;\n }\n // Cascader do not support `add` type. Only support `remove`\n var valueCells = info.values[0].valueCells;\n onInternalSelect(valueCells);\n };\n // ============================ Open ============================\n var mergedOpen = open !== undefined ? open : popupVisible;\n var mergedDropdownClassName = dropdownClassName || popupClassName;\n var mergedPlacement = placement || popupPlacement;\n var onInternalDropdownVisibleChange = function onInternalDropdownVisibleChange(nextVisible) {\n onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 ? void 0 : onDropdownVisibleChange(nextVisible);\n onPopupVisibleChange === null || onPopupVisibleChange === void 0 ? void 0 : onPopupVisibleChange(nextVisible);\n };\n // ========================== Warning ===========================\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n warningNullOptions(mergedOptions, mergedFieldNames);\n }\n // ========================== Context ===========================\n var cascaderContext = React.useMemo(function () {\n return {\n options: mergedOptions,\n fieldNames: mergedFieldNames,\n values: checkedValues,\n halfValues: halfCheckedValues,\n changeOnSelect: changeOnSelect,\n onSelect: onInternalSelect,\n checkable: checkable,\n searchOptions: searchOptions,\n dropdownPrefixCls: dropdownPrefixCls,\n loadData: loadData,\n expandTrigger: expandTrigger,\n expandIcon: expandIcon,\n loadingIcon: loadingIcon,\n dropdownMenuColumnStyle: dropdownMenuColumnStyle\n };\n }, [mergedOptions, mergedFieldNames, checkedValues, halfCheckedValues, changeOnSelect, onInternalSelect, checkable, searchOptions, dropdownPrefixCls, loadData, expandTrigger, expandIcon, loadingIcon, dropdownMenuColumnStyle]);\n // ==============================================================\n // == Render ==\n // ==============================================================\n var emptyOptions = !(mergedSearchValue ? searchOptions : mergedOptions).length;\n var dropdownStyle =\n // Search to match width\n mergedSearchValue && searchConfig.matchInputWidth ||\n // Empty keep the width\n emptyOptions ? {} : {\n minWidth: 'auto'\n };\n return /*#__PURE__*/React.createElement(CascaderContext.Provider, {\n value: cascaderContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n // MISC\n ref: ref,\n id: mergedId,\n prefixCls: prefixCls,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n dropdownStyle: dropdownStyle\n // Value\n ,\n displayValues: displayValues,\n onDisplayValuesChange: onDisplayValuesChange,\n mode: multiple ? 'multiple' : undefined\n // Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n showSearch: mergedShowSearch\n // Options\n ,\n OptionList: OptionList,\n emptyOptions: emptyOptions\n // Open\n ,\n open: mergedOpen,\n dropdownClassName: mergedDropdownClassName,\n placement: mergedPlacement,\n onDropdownVisibleChange: onInternalDropdownVisibleChange\n // Children\n ,\n getRawInputElement: function getRawInputElement() {\n return children;\n }\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Cascader.displayName = 'Cascader';\n}\nCascader.SHOW_PARENT = SHOW_PARENT;\nCascader.SHOW_CHILD = SHOW_CHILD;\nexport default Cascader;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport { VALUE_SPLIT } from '../utils/commonUtil';\n/** Lazy parse options data into conduct-able info to avoid perf issue in single mode */\nexport default (function (options, fieldNames) {\n var cacheRef = React.useRef({\n options: null,\n info: null\n });\n var getEntities = React.useCallback(function () {\n if (cacheRef.current.options !== options) {\n cacheRef.current.options = options;\n cacheRef.current.info = convertDataToEntities(options, {\n fieldNames: fieldNames,\n initWrapper: function initWrapper(wrapper) {\n return _objectSpread(_objectSpread({}, wrapper), {}, {\n pathKeyEntities: {}\n });\n },\n processEntity: function processEntity(entity, wrapper) {\n var pathKey = entity.nodes.map(function (node) {\n return node[fieldNames.value];\n }).join(VALUE_SPLIT);\n wrapper.pathKeyEntities[pathKey] = entity;\n // Overwrite origin key.\n // this is very hack but we need let conduct logic work with connect path\n entity.key = pathKey;\n }\n });\n }\n return cacheRef.current.info.pathKeyEntities;\n }, [fieldNames, options]);\n return getEntities;\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\n// Convert `showSearch` to unique config\nexport default function useSearchConfig(showSearch) {\n return React.useMemo(function () {\n if (!showSearch) {\n return [false, {}];\n }\n var searchConfig = {\n matchInputWidth: true,\n limit: 50\n };\n if (showSearch && _typeof(showSearch) === 'object') {\n searchConfig = _objectSpread(_objectSpread({}, searchConfig), showSearch);\n }\n if (searchConfig.limit <= 0) {\n delete searchConfig.limit;\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"'limit' of showSearch should be positive number or false.\");\n }\n }\n return [true, searchConfig];\n }, [showSearch]);\n}","import * as React from 'react';\nimport { toPathOptions } from '../utils/treeUtil';\nexport default (function (options, fieldNames) {\n return React.useCallback(function (rawValues) {\n var missingValues = [];\n var existsValues = [];\n rawValues.forEach(function (valueCell) {\n var pathOptions = toPathOptions(valueCell, options, fieldNames);\n if (pathOptions.every(function (opt) {\n return opt.option;\n })) {\n existsValues.push(valueCell);\n } else {\n missingValues.push(valueCell);\n }\n });\n return [existsValues, missingValues];\n }, [options, fieldNames]);\n});","import Cascader from './Cascader';\nexport default Cascader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcCascader from 'rc-cascader';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport defaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { useCompactItemContext } from '../space/Compact';\nimport { FormItemInputContext } from '../form/context';\nimport getIcons from '../select/utils/iconUtil';\nimport { getTransitionDirection, getTransitionName } from '../_util/motion';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nvar SHOW_CHILD = RcCascader.SHOW_CHILD,\n SHOW_PARENT = RcCascader.SHOW_PARENT;\nfunction highlightKeyword(str, lowerKeyword, prefixCls) {\n var cells = str.toLowerCase().split(lowerKeyword).reduce(function (list, cur, index) {\n return index === 0 ? [cur] : [].concat(_toConsumableArray(list), [lowerKeyword, cur]);\n }, []);\n var fillCells = [];\n var start = 0;\n cells.forEach(function (cell, index) {\n var end = start + cell.length;\n var originWorld = str.slice(start, end);\n start = end;\n if (index % 2 === 1) {\n originWorld =\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-menu-item-keyword\"),\n key: \"seperator-\".concat(index)\n }, originWorld);\n }\n fillCells.push(originWorld);\n });\n return fillCells;\n}\nvar defaultSearchRender = function defaultSearchRender(inputValue, path, prefixCls, fieldNames) {\n var optionList = [];\n // We do lower here to save perf\n var lower = inputValue.toLowerCase();\n path.forEach(function (node, index) {\n if (index !== 0) {\n optionList.push(' / ');\n }\n var label = node[fieldNames.label];\n var type = _typeof(label);\n if (type === 'string' || type === 'number') {\n label = highlightKeyword(String(label), lower, prefixCls);\n }\n optionList.push(label);\n });\n return optionList;\n};\nvar Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n customizeSize = props.size,\n customDisabled = props.disabled,\n className = props.className,\n multiple = props.multiple,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n transitionName = props.transitionName,\n _props$choiceTransiti = props.choiceTransitionName,\n choiceTransitionName = _props$choiceTransiti === void 0 ? '' : _props$choiceTransiti,\n popupClassName = props.popupClassName,\n dropdownClassName = props.dropdownClassName,\n expandIcon = props.expandIcon,\n placement = props.placement,\n showSearch = props.showSearch,\n _props$allowClear = props.allowClear,\n allowClear = _props$allowClear === void 0 ? true : _props$allowClear,\n notFoundContent = props.notFoundContent,\n direction = props.direction,\n getPopupContainer = props.getPopupContainer,\n customStatus = props.status,\n showArrow = props.showArrow,\n rest = __rest(props, [\"prefixCls\", \"size\", \"disabled\", \"className\", \"multiple\", \"bordered\", \"transitionName\", \"choiceTransitionName\", \"popupClassName\", \"dropdownClassName\", \"expandIcon\", \"placement\", \"showSearch\", \"allowClear\", \"notFoundContent\", \"direction\", \"getPopupContainer\", \"status\", \"showArrow\"]);\n var restProps = omit(rest, ['suffixIcon']);\n var _useContext = useContext(ConfigContext),\n getContextPopupContainer = _useContext.getPopupContainer,\n getPrefixCls = _useContext.getPrefixCls,\n renderEmpty = _useContext.renderEmpty,\n rootDirection = _useContext.direction;\n var mergedDirection = direction || rootDirection;\n var isRtl = mergedDirection === 'rtl';\n // =================== Form =====================\n var _useContext2 = useContext(FormItemInputContext),\n contextStatus = _useContext2.status,\n hasFeedback = _useContext2.hasFeedback,\n isFormItemInput = _useContext2.isFormItemInput,\n feedbackIcon = _useContext2.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n // =================== Warning =====================\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'Cascader', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.') : void 0;\n // =================== No Found ====================\n var mergedNotFoundContent = notFoundContent || (renderEmpty || defaultRenderEmpty)('Cascader');\n // ==================== Prefix =====================\n var rootPrefixCls = getPrefixCls();\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n var cascaderPrefixCls = getPrefixCls('cascader', customizePrefixCls);\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n // =================== Dropdown ====================\n var mergedDropdownClassName = classNames(popupClassName || dropdownClassName, \"\".concat(cascaderPrefixCls, \"-dropdown\"), _defineProperty({}, \"\".concat(cascaderPrefixCls, \"-dropdown-rtl\"), mergedDirection === 'rtl'));\n // ==================== Search =====================\n var mergedShowSearch = React.useMemo(function () {\n if (!showSearch) {\n return showSearch;\n }\n var searchConfig = {\n render: defaultSearchRender\n };\n if (_typeof(showSearch) === 'object') {\n searchConfig = _extends(_extends({}, searchConfig), showSearch);\n }\n return searchConfig;\n }, [showSearch]);\n // ===================== Size ======================\n var size = React.useContext(SizeContext);\n var mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Icon ======================\n var mergedExpandIcon = expandIcon;\n if (!expandIcon) {\n mergedExpandIcon = isRtl ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null);\n }\n var loadingIcon = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-menu-item-loading-icon\")\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n spin: true\n }));\n // =================== Multiple ====================\n var checkable = React.useMemo(function () {\n return multiple ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(cascaderPrefixCls, \"-checkbox-inner\")\n }) : false;\n }, [multiple]);\n // ===================== Icons =====================\n var mergedShowArrow = showArrow !== undefined ? showArrow : props.loading || !multiple;\n var _getIcons = getIcons(_extends(_extends({}, props), {\n hasFeedback: hasFeedback,\n feedbackIcon: feedbackIcon,\n showArrow: mergedShowArrow,\n multiple: multiple,\n prefixCls: prefixCls\n })),\n suffixIcon = _getIcons.suffixIcon,\n removeIcon = _getIcons.removeIcon,\n clearIcon = _getIcons.clearIcon;\n // ===================== Placement =====================\n var getPlacement = function getPlacement() {\n if (placement !== undefined) {\n return placement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n // ==================== Render =====================\n return /*#__PURE__*/React.createElement(RcCascader, _extends({\n prefixCls: prefixCls,\n className: classNames(!customizePrefixCls && cascaderPrefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-rtl\"), isRtl), \"\".concat(prefixCls, \"-borderless\"), !bordered), \"\".concat(prefixCls, \"-in-form-item\"), isFormItemInput), getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, className),\n disabled: mergedDisabled\n }, restProps, {\n direction: mergedDirection,\n placement: getPlacement(),\n notFoundContent: mergedNotFoundContent,\n allowClear: allowClear,\n showSearch: mergedShowSearch,\n expandIcon: mergedExpandIcon,\n inputIcon: suffixIcon,\n removeIcon: removeIcon,\n clearIcon: clearIcon,\n loadingIcon: loadingIcon,\n checkable: checkable,\n dropdownClassName: mergedDropdownClassName,\n dropdownPrefixCls: customizePrefixCls || cascaderPrefixCls,\n choiceTransitionName: getTransitionName(rootPrefixCls, '', choiceTransitionName),\n transitionName: getTransitionName(rootPrefixCls, getTransitionDirection(placement), transitionName),\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n ref: ref,\n showArrow: hasFeedback || showArrow\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Cascader.displayName = 'Cascader';\n}\nCascader.SHOW_PARENT = SHOW_PARENT;\nCascader.SHOW_CHILD = SHOW_CHILD;\nexport default Cascader;","import React from \"react\";\r\nimport { Cascader as AntdCascader } from \"antd\";\r\n\r\nconst Cascader = ({\r\n\tdefaultValue,\r\n\tdispatch,\r\n\tname,\r\n\tquestionId,\r\n\ttree,\r\n\tplaceholder,\r\n\tdataType,\r\n\tisNew,\r\n\t...otherProps\r\n}) => {\r\n\tconst [answerAdded, answerEdited] = dispatch;\r\n\t//need to serialise the value before sending to redux, as the data type is array\r\n\tconst onChange = (value) => {\r\n\t\tlet data = {\r\n\t\t\tquestionId: questionId,\r\n\t\t\tvalue: value.join(\"|\"),\r\n\t\t\tid: name,\r\n\t\t\tdataType: dataType,\r\n\t\t};\r\n\t\tif (defaultValue) answerEdited(data);\r\n\t\telse answerAdded(data);\r\n\t};\r\n\r\n\tfunction filter(inputValue, path) {\r\n\t\treturn path.some(\r\n\t\t\t(option) =>\r\n\t\t\t\toption.title.toLowerCase().indexOf(inputValue.toLowerCase()) >\r\n\t\t\t\t-1\r\n\t\t);\r\n\t}\r\n\r\n\t//need to deserialise the value before consuming it on the component\r\n\tconst deserialisedValue = defaultValue ? defaultValue.split(\"|\") : null;\r\n\r\n\treturn (\r\n\t\t<AntdCascader\r\n\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\tfieldNames={{\r\n\t\t\t\tlabel: \"title\",\r\n\t\t\t\tvalue: \"value\",\r\n\t\t\t\tchildren: \"children\",\r\n\t\t\t}}\r\n\t\t\tonChange={onChange}\r\n\t\t\tvalue={deserialisedValue}\r\n\t\t\toptions={tree}\r\n\t\t\tplaceholder={placeholder || \"Search by description\"}\r\n\t\t\tshowSearch={{ filter }}\r\n\t\t\t{...otherProps}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default Cascader;\r\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * TODO: 4.0\n *\n * - Remove `dataSource`\n * - `size` not work with customizeInput\n * - CustomizeInput not feedback `ENTER` key since accessibility enhancement\n */\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigConsumer } from '../config-provider';\nimport Select from '../select';\nimport { isValidElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nvar Option = Select.Option;\nfunction isSelectOptionOrSelectOptGroup(child) {\n return child && child.type && (child.type.isSelectOption || child.type.isSelectOptGroup);\n}\nvar AutoComplete = function AutoComplete(props, ref) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n popupClassName = props.popupClassName,\n dropdownClassName = props.dropdownClassName,\n children = props.children,\n dataSource = props.dataSource;\n var childNodes = toArray(children);\n // ============================= Input =============================\n var customizeInput;\n if (childNodes.length === 1 && isValidElement(childNodes[0]) && !isSelectOptionOrSelectOptGroup(childNodes[0])) {\n var _childNodes = _slicedToArray(childNodes, 1);\n customizeInput = _childNodes[0];\n }\n var getInputElement = customizeInput ? function () {\n return customizeInput;\n } : undefined;\n // ============================ Options ============================\n var optionChildren;\n // [Legacy] convert `children` or `dataSource` into option children\n if (childNodes.length && isSelectOptionOrSelectOptGroup(childNodes[0])) {\n optionChildren = children;\n } else {\n optionChildren = dataSource ? dataSource.map(function (item) {\n if (isValidElement(item)) {\n return item;\n }\n switch (_typeof(item)) {\n case 'string':\n return /*#__PURE__*/React.createElement(Option, {\n key: item,\n value: item\n }, item);\n case 'object':\n {\n var optionValue = item.value;\n return /*#__PURE__*/React.createElement(Option, {\n key: optionValue,\n value: optionValue\n }, item.text);\n }\n default:\n process.env.NODE_ENV !== \"production\" ? warning(false, 'AutoComplete', '`dataSource` is only supports type `string[] | Object[]`.') : void 0;\n return undefined;\n }\n }) : [];\n }\n process.env.NODE_ENV !== \"production\" ? warning(!('dataSource' in props), 'AutoComplete', '`dataSource` is deprecated, please use `options` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'AutoComplete', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!customizeInput || !('size' in props), 'AutoComplete', 'You need to control style self instead of setting `size` when using customize input.') : void 0;\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n return /*#__PURE__*/React.createElement(Select, _extends({\n ref: ref\n }, omit(props, ['dataSource']), {\n prefixCls: prefixCls,\n popupClassName: popupClassName || dropdownClassName,\n className: classNames(\"\".concat(prefixCls, \"-auto-complete\"), className),\n mode: Select.SECRET_COMBOBOX_MODE_DO_NOT_USE\n }, {\n // Internal api\n getInputElement: getInputElement\n }), optionChildren);\n });\n};\nvar RefAutoComplete = /*#__PURE__*/React.forwardRef(AutoComplete);\nRefAutoComplete.Option = Option;\nexport default RefAutoComplete;","import React, { useState } from \"react\";\r\nimport { AutoComplete as AntdAutoComplete } from \"antd\";\r\n\r\nconst Text = (props) => {\r\n\t//when initialised as null, the state doesn't get updated when defaultValue changes\r\n\tconst {\r\n\t\tdefaultValue,\r\n\t\tdispatch,\r\n\t\tname,\r\n\t\tisNew,\r\n\t\tquestionId,\r\n\t\tlookup,\r\n\t\tplaceholder,\r\n\t\trow,\r\n\t\tdataType,\r\n\t\t...otherProps\r\n\t} = props;\r\n\tconst [state, setState] = useState(defaultValue);\r\n\tconst [isTouched, setIsTouched] = useState(false);\r\n\tconst [answerAdded, answerEdited] = dispatch;\r\n\tconst options = lookup.map((l) => {\r\n\t\treturn { value: l.description };\r\n\t});\r\n\tconst handleDispatch = () => {\r\n\t\tif (isTouched) {\r\n\t\t\tlet data = {\r\n\t\t\t\tquestionId: questionId,\r\n\t\t\t\tvalue: state,\r\n\t\t\t\tid: name,\r\n\t\t\t\trow: row,\r\n\t\t\t\tdataType: dataType,\r\n\t\t\t};\r\n\t\t\tif (!isNew) answerEdited(data);\r\n\t\t\telse answerAdded(data);\r\n\t\t\tsetIsTouched(false);\r\n\t\t}\r\n\t};\r\n\tconst handleKeyDown = (e) => {\r\n\t\tif (e.which !== 9) setIsTouched(true); //not dirty on tab\r\n\t\tif (e.which === 13) {\r\n\t\t\thandleDispatch();\r\n\t\t}\r\n\t};\r\n\tconst filterOption = (inputValue, option) => {\r\n\t\treturn (\r\n\t\t\toption?.value.toUpperCase().indexOf(inputValue.toUpperCase()) !== -1\r\n\t\t);\r\n\t};\r\n\tconst onSelect = (data) => {\r\n\t\tsetIsTouched(true);\r\n\t\tsetState(data);\r\n\t\thandleDispatch();\r\n\t};\r\n\r\n\treturn (\r\n\t\t<AntdAutoComplete\r\n\t\t\tdefaultValue={defaultValue}\r\n\t\t\toptions={options}\r\n\t\t\tonChange={(data) => setState(data)}\r\n\t\t\tonKeyDown={handleKeyDown}\r\n\t\t\tonBlur={handleDispatch}\r\n\t\t\tonSelect={onSelect}\r\n\t\t\tvalue={state || defaultValue}\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tfilterOption={filterOption}\r\n\t\t\t{...otherProps}\r\n\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default Text;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n\tmakeSelectSumByFormulaId,\r\n\tselectTotalFundingDifference,\r\n\tselectTotalFundingSource,\r\n\tselectTotalNbv,\r\n} from \"reducers\";\r\nimport NumberDisplay from \"components/NumberDisplay\";\r\n\r\nexport const TotalNbv = () => {\r\n\tconst value = useSelector(selectTotalNbv);\r\n\treturn (\r\n\t\t<NumberDisplay\r\n\t\t\tnumber={value}\r\n\t\t\tstyle={{ fontWeight: 600, marginRight: 12 }}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport const TotalCost = () => {\r\n\tconst selector = makeSelectSumByFormulaId(\"formulaId\");\r\n\tconst value = useSelector(selector);\r\n\treturn <NumberDisplay number={value} style={{ fontWeight: 600 }} />;\r\n};\r\n\r\nexport const TotalOngoing = () => {\r\n\tconst selector = makeSelectSumByFormulaId(\"ongoingTotal\");\r\n\tconst value = useSelector(selector);\r\n\treturn <NumberDisplay number={value} style={{ fontWeight: 600 }} />;\r\n};\r\n\r\nexport const TotalFundingSource = () => {\r\n\tconst value = useSelector(selectTotalFundingSource);\r\n\treturn (\r\n\t\t<NumberDisplay\r\n\t\t\tnumber={value}\r\n\t\t\tstyle={{ fontWeight: 600, width: \"100%\" }}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport const TotalFundingDifference = () => {\r\n\tconst value = useSelector(selectTotalFundingDifference);\r\n\treturn (\r\n\t\t<NumberDisplay\r\n\t\t\tnumber={value}\r\n\t\t\tstyle={{ fontWeight: 600, width: \"100%\" }}\r\n\t\t/>\r\n\t);\r\n};\r\n","import Select from \"components/input-types/Select\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { selectAssetRc } from \"./assetRcSlice\";\r\n\r\nconst AssetRc = (props) => {\r\n\tconst lookup = useSelector(selectAssetRc);\r\n\tconst mappedLookup = lookup.map((l) => {\r\n\t\tconst { id, code } = l;\r\n\t\treturn { id, code, description: code };\r\n\t});\r\n\treturn <Select {...props} lookup={mappedLookup} />;\r\n};\r\n\r\nexport default AssetRc;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n\tselectAssetCriticalityScore,\r\n\tselectOverallRiskConsequences,\r\n\tselectOverallRiskScore,\r\n} from \"reducers\";\r\n\r\nconst SQUARE_WIDTH = 35;\r\n\r\nconst RISK_COLORS = {\r\n\t1: \"forestgreen\",\r\n\t2: \"yellowgreen\",\r\n\t3: \"yellow\",\r\n\t4: \"orange\",\r\n\t5: \"red\",\r\n};\r\n\r\nconst CRITICALITY_DESCRIPTIONS = {\r\n\t1: \"1 - Very Low Criticality\",\r\n\t2: \"2 - Low Criticality\",\r\n\t3: \"3 - Moderate Criticality\",\r\n\t4: \"4 - High Criticality\",\r\n\t5: \"5 - Very High Criticality\",\r\n};\r\n\r\nconst RISK_DESCRIPTIONS = {\r\n\t1: \"Very Low Risk\",\r\n\t2: \"Low Risk\",\r\n\t3: \"Medium Risk\",\r\n\t4: \"High Risk\",\r\n\t5: \"Very High Risk\",\r\n};\r\n\r\nconst ColoredSquare = ({ score }) => {\r\n\tconst color = RISK_COLORS[score];\r\n\treturn (\r\n\t\t<div\r\n\t\t\tstyle={{\r\n\t\t\t\theight: SQUARE_WIDTH,\r\n\t\t\t\twidth: SQUARE_WIDTH,\r\n\t\t\t\tbackgroundColor: color,\r\n\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\talignItems: \"center\",\r\n\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t{score}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nconst Legend = () => {\r\n\treturn (\r\n\t\t<div style={{ display: \"flex\" }}>\r\n\t\t\t<ColoredSquare score={1} />\r\n\t\t\t<ColoredSquare score={2} />\r\n\t\t\t<ColoredSquare score={3} />\r\n\t\t\t<ColoredSquare score={4} />\r\n\t\t\t<ColoredSquare score={5} />\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nconst Risk = ({ type, score, calculatedScore }) => {\r\n\treturn (\r\n\t\t<div\r\n\t\t\tstyle={{\r\n\t\t\t\twidth: SQUARE_WIDTH * 5,\r\n\t\t\t\theight: SQUARE_WIDTH * 2,\r\n\t\t\t\tbackgroundColor: RISK_COLORS[score],\r\n\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\talignItems: \"center\",\r\n\t\t\t\tjustifyContent: \"center\",\r\n\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\tfontWeight: 600,\r\n\t\t\t\tpadding: 10,\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t{type === \"assetCriticality\"\r\n\t\t\t\t? CRITICALITY_DESCRIPTIONS[score]\r\n\t\t\t\t: calculatedScore + \" - \" + RISK_DESCRIPTIONS[score]}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nconst RiskMatrix = ({ type, score, calculatedScore }) => {\r\n\treturn score !== 0 ? (\r\n\t\t<>\r\n\t\t\t<Legend />\r\n\t\t\t<Risk type={type} score={score} calculatedScore={calculatedScore} />\r\n\t\t</>\r\n\t) : (\r\n\t\t<></>\r\n\t);\r\n};\r\n\r\nexport const AssetCriticality = () => {\r\n\tconst score = useSelector(selectAssetCriticalityScore);\r\n\treturn <RiskMatrix type=\"assetCriticality\" score={score} />;\r\n};\r\n\r\nexport const OverallRiskAssetFailure = () => {\r\n\tconst score = useSelector(selectOverallRiskScore);\r\n\tconst convertedScore =\r\n\t\tscore === 0 ? 0 : score <= 3 ? 2 : score <= 6 ? 3 : score <= 12 ? 4 : 5;\r\n\r\n\treturn (\r\n\t\t<RiskMatrix\r\n\t\t\ttype=\"overallRisk\"\r\n\t\t\tscore={convertedScore}\r\n\t\t\tcalculatedScore={score}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport const OverallRiskConsequences = () => {\r\n\tconst score = useSelector(selectOverallRiskConsequences);\r\n\r\n\tconst convertedScore =\r\n\t\tscore === 0 ? 0 : score <= 3 ? 2 : score <= 6 ? 3 : score <= 12 ? 4 : 5;\r\n\r\n\treturn (\r\n\t\t<RiskMatrix\r\n\t\t\ttype=\"overallRisk\"\r\n\t\t\tscore={convertedScore}\r\n\t\t\tcalculatedScore={convertedScore}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { useSelector } from \"react-redux\";\r\nimport Select from \"components/input-types/Select\";\r\nimport { selectMajorAssetCategory } from \"./assetCategorySlice\";\r\n\r\nconst MajorCategory = (props) => {\r\n\tconst majorCategory = useSelector(selectMajorAssetCategory);\r\n\tconst lookup = majorCategory.map((c) => ({\r\n\t\tid: c,\r\n\t\tdomainCode: \"majorAssetCategory\",\r\n\t\tcode: c,\r\n\t\tdescription: c,\r\n\t}));\r\n\r\n\treturn <Select {...props} lookup={lookup} />;\r\n};\r\n\r\nexport default MajorCategory;\r\n","import { useSelector } from \"react-redux\";\r\nimport { selectAnswerById } from \"reducers/answersSlice\";\r\nimport Select from \"components/input-types/Select\";\r\nimport { selectAssetCategory } from \"./assetCategorySlice\";\r\n\r\nconst MinorCategory = (props) => {\r\n\tconst { row } = props;\r\n\tconst majorCategory = useSelector((state) =>\r\n\t\tselectAnswerById(state, row?.q3a || \"\")\r\n\t)?.value;\r\n\tconst assetCategory = useSelector(selectAssetCategory).filter(\r\n\t\t(c) => c.major === majorCategory\r\n\t);\r\n\tconst lookup = [\r\n\t\t...new Set(\r\n\t\t\tassetCategory.map((c) => ({\r\n\t\t\t\tid: c.minor,\r\n\t\t\t\tdomainCode: \"MinorAssetCategory\",\r\n\t\t\t\tcode: c.minor,\r\n\t\t\t\tdescription: c.minor,\r\n\t\t\t}))\r\n\t\t),\r\n\t];\r\n\r\n\treturn <Select {...props} lookup={lookup} />;\r\n};\r\n\r\nexport default MinorCategory;\r\n","import DatePicker from \"components/input-types/DatePicker\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { selectForm } from \"reducers\";\r\nimport dayjs from \"dayjs\";\r\n\r\nconst ProjectEndDate = (props) => {\r\n\tconst form = useSelector(selectForm);\r\n\tconst createOnString = form?.createOn\r\n\t\t? form.createOn\r\n\t\t: dayjs().format(\"YYYY-MM-DD\");\r\n\tconst createOn = dayjs(createOnString);\r\n\r\n\tconst disabledDate = (current) => {\r\n\t\t//3 months from form creation date\r\n\t\treturn current && current < createOn;\r\n\t};\r\n\treturn <DatePicker {...props} disabledDate={disabledDate} />;\r\n};\r\n\r\nexport default ProjectEndDate;\r\n","import React from \"react\";\r\nimport { Row, Col, Input } from \"antd\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n\tagencyUpserted,\r\n\tselectAllAgencies,\r\n\tselectAgencyById,\r\n} from \"./agenciesSlice\";\r\n\r\nconst Agencies = () => {\r\n\tconst data = useSelector(selectAllAgencies);\r\n\r\n\treturn (\r\n\t\t<div style={{ paddingBottom: 10 }}>\r\n\t\t\t<Row\r\n\t\t\t\tclassName=\"agency-row\"\r\n\t\t\t\tstyle={{\r\n\t\t\t\t\tfontWeight: 600,\r\n\t\t\t\t}}\r\n\t\t\t\talign=\"middle\"\r\n\t\t\t>\r\n\t\t\t\t<Col span={8}>Agency</Col>\r\n\t\t\t\t<Col span={6}>Contact Name</Col>\r\n\t\t\t\t<Col span={4}>Contact Number</Col>\r\n\t\t\t\t<Col span={6}>Why/How They Are Involved</Col>\r\n\t\t\t</Row>\r\n\t\t\t{data.map((d) => (\r\n\t\t\t\t<AgencyRow id={d.id} key={d.id} />\r\n\t\t\t))}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nconst AgencyRow = ({ id }) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst data = useSelector((state) => selectAgencyById(state, id));\r\n\tconst { agency, contactName, contactNumber, whyHowInvolved } = data;\r\n\r\n\tconst PrintableText = ({ value, name }) => {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<Input\r\n\t\t\t\t\tclassName=\"print-hide\"\r\n\t\t\t\t\tdefaultValue={value}\r\n\t\t\t\t\tonBlur={(e) =>\r\n\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\tagencyUpserted({\r\n\t\t\t\t\t\t\t\t...data,\r\n\t\t\t\t\t\t\t\t[name]: e.target.value,\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\t\t/>\r\n\t\t\t\t<div\r\n\t\t\t\t\tclassName=\"print-show\"\r\n\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\tpadding: 3,\r\n\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\twhiteSpace: \"pre-line\",\r\n\t\t\t\t\t\twordWrap: \"break-word\",\r\n\t\t\t\t\t\toverflowWrap: \"break-word\",\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{value}\r\n\t\t\t\t</div>\r\n\t\t\t</>\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<Row className=\"agency-row\" align=\"middle\">\r\n\t\t\t<Col span={8}>{agency}</Col>\r\n\t\t\t<Col span={6}>\r\n\t\t\t\t<PrintableText value={contactName} name=\"contactName\" />\r\n\t\t\t</Col>\r\n\t\t\t<Col span={4}>\r\n\t\t\t\t<PrintableText value={contactNumber} name=\"contactNumber\" />\r\n\t\t\t</Col>\r\n\t\t\t<Col span={6}>\r\n\t\t\t\t<PrintableText value={whyHowInvolved} name=\"whyHowInvolved\" />\r\n\t\t\t</Col>\r\n\t\t</Row>\r\n\t);\r\n};\r\n\r\nexport default Agencies;\r\n","import React from \"react\";\r\nimport { Row, Col, Button, Popconfirm } from \"antd\";\r\nimport { QuestionComponent } from \"./QnaComponents\";\r\nimport Text from \"components/input-types/Text\";\r\nimport YesNo from \"components/input-types/YesNo\";\r\nimport TextArea from \"components/input-types/TextArea\";\r\nimport DatePicker from \"components/input-types/DatePicker\";\r\nimport TimePicker from \"components/input-types/TimePicker\";\r\nimport Checkbox from \"components/input-types/Checkbox\";\r\nimport RadioGroup from \"components/input-types/RadioGroup\";\r\nimport TreeSelect from \"components/input-types/TreeSelect\";\r\nimport Select from \"components/input-types/Select\";\r\nimport Label from \"components/input-types/Label\";\r\nimport FileUploader from \"components/input-types/FileUploader\";\r\nimport Cascader from \"components/input-types/Cascader\";\r\nimport AutoComplete from \"components/input-types/AutoComplete\";\r\nimport NumberDisplay from \"components/NumberDisplay\";\r\nimport _ from \"lodash\";\r\nimport {\r\n\tTotalFundingSource,\r\n\tTotalFundingDifference,\r\n} from \"features/capex/DataComponents\";\r\nimport AssetRc from \"features/capex/assetRc/AssetRc\";\r\nimport {\r\n\tAssetCriticality,\r\n\tOverallRiskAssetFailure,\r\n\tOverallRiskConsequences,\r\n} from \"features/capex/npi/RiskMatrix\";\r\nimport MajorCategory from \"features/capex/assetCategory/MajorCategory\";\r\nimport MinorCategory from \"features/capex/assetCategory/MinorCategory\";\r\nimport ProjectEndDate from \"features/capex/ProjectEndDate\";\r\nimport Agencies from \"features/roc/agency\";\r\n/*\r\nDumb renderer components\r\n*/\r\n\r\nconst DATE_FORMAT_STRING = \"DD/MM/YYYY\";\r\nconst DATE_TIME_FORMAT_STRING = \"DD/MM/YYYY HH:mm\";\r\nconst TIME_FORMAT_STRING = \"HH:mm\";\r\n\r\nexport const QuestionTableRowDeleteButton = ({ onDelete }) => {\r\n\treturn (\r\n\t\t<div style={{ position: \"absolute\", right: -10 }}>\r\n\t\t\t<Popconfirm\r\n\t\t\t\ttitle=\"Are you sure you want to delete this row?\"\r\n\t\t\t\tonConfirm={onDelete}\r\n\t\t\t\tokText=\"Yes\"\r\n\t\t\t\tcancelText=\"No\"\r\n\t\t\t>\r\n\t\t\t\t<Button type=\"link\" size=\"small\" danger>\r\n\t\t\t\t\tx\r\n\t\t\t\t</Button>\r\n\t\t\t</Popconfirm>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport const QuestionTable = ({ question, children }) => {\r\n\treturn (\r\n\t\t<Row\r\n\t\t\talign=\"middle\"\r\n\t\t\tclassName=\"qna-question-container qna-question-form-item-group\"\r\n\t\t>\r\n\t\t\t<Col span={24} className=\"qna-question-table\">\r\n\t\t\t\t<span className=\"qna-question-table-label\">\r\n\t\t\t\t\t{question.title}\r\n\t\t\t\t</span>\r\n\t\t\t\t{children}\r\n\t\t\t</Col>\r\n\t\t</Row>\r\n\t);\r\n};\r\n\r\nexport const QuestionTableHeaderRow = ({ questions }) => {\r\n\treturn (\r\n\t\t<Row>\r\n\t\t\t{questions.map((q, index) => (\r\n\t\t\t\t<Col\r\n\t\t\t\t\tkey={index}\r\n\t\t\t\t\tclassName=\"qna-question-table-cell qna-question-table-header-cell\"\r\n\t\t\t\t\tspan={q.col.span}\r\n\t\t\t\t>\r\n\t\t\t\t\t{q.title}\r\n\t\t\t\t</Col>\r\n\t\t\t))}\r\n\t\t</Row>\r\n\t);\r\n};\r\n\r\nexport const QuestionTableBodyRow = ({ children }) => {\r\n\treturn <Row style={{ width: \"calc(100% - 20px)\" }}>{children}</Row>;\r\n};\r\n\r\nexport const QuestionRow = ({ question, isMandatory, children }) => {\r\n\t//depth determines left margin of a quesiton\r\n\tlet depth = question?.depth || 0;\r\n\tlet labelColWidth = question?.labelColWidth || 24;\r\n\tlet inputColWidth = labelColWidth === 24 ? 24 : 24 - labelColWidth;\r\n\tconst rowClassName =\r\n\t\tquestion?.displayMode === \"tabular\"\r\n\t\t\t? \"qna-question-form-item-group-tabular\"\r\n\t\t\t: \"qna-question-form-item-group\";\r\n\treturn (\r\n\t\t<QuestionComponent\r\n\t\t\ttitle={question?.title}\r\n\t\t\tdescription={question?.description}\r\n\t\t\tisMandatory={isMandatory}\r\n\t\t\trowClassName={rowClassName}\r\n\t\t\tinputColWidth={inputColWidth}\r\n\t\t\tlabelColWidth={labelColWidth}\r\n\t\t\tdepth={depth}\r\n\t\t\tquestion={question}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t</QuestionComponent>\r\n\t);\r\n};\r\n\r\nexport const QuestionTableFooterRow = ({ addNewRow }) => {\r\n\treturn (\r\n\t\t<Row justify=\"end\">\r\n\t\t\t<Col className=\"qna-question-table-footer\">\r\n\t\t\t\t<Button type=\"primary\" onClick={addNewRow}>\r\n\t\t\t\t\tAdd New Row\r\n\t\t\t\t</Button>\r\n\t\t\t</Col>\r\n\t\t</Row>\r\n\t);\r\n};\r\n\r\nexport const QuestionTableCell = ({ children, span, className }) => {\r\n\treturn (\r\n\t\t<Col className={\"qna-question-table-cell \" + className} span={span}>\r\n\t\t\t{children}\r\n\t\t</Col>\r\n\t);\r\n};\r\n\r\nconst arePropsEqual = (prevProps, nextProps) => {\r\n\treturn _.isEqual(prevProps, nextProps);\r\n};\r\n\r\nexport const Question = React.memo((props) => {\r\n\tconst {\r\n\t\terrors,\r\n\t\tstatus,\r\n\t\tquestion,\r\n\t\tinstanceId,\r\n\t\tdispatch,\r\n\t\tisNew,\r\n\t\tvalue,\r\n\t\tdefaultValue,\r\n\t\tvisible,\r\n\t\ttree,\r\n\t\tlookup,\r\n\t\trow,\r\n\t\tdisabled,\r\n\t\tattachmentDispatch,\r\n\t\tsaveFormDispatch,\r\n\t\tisFormNew,\r\n\t\tformId,\r\n\t\t...otherProps\r\n\t} = props;\r\n\tconst {\r\n\t\tid,\r\n\t\ttextAreaLines,\r\n\t\tdataType,\r\n\t\tinputType,\r\n\t\tplaceholder,\r\n\t\tprefix,\r\n\t\tsuffix,\r\n\t\toptions,\r\n\t} = question;\r\n\tconst commonProps = {\r\n\t\t...otherProps,\r\n\t\tname: instanceId || id,\r\n\t\tquestionId: id,\r\n\t\tdispatch: dispatch,\r\n\t\tisNew,\r\n\t\tdefaultValue: typeof value === \"undefined\" ? defaultValue : value,\r\n\t\trow: row,\r\n\t\tdisabled: disabled,\r\n\t\tdataType: dataType || \"string\",\r\n\t\tplaceholder,\r\n\t};\r\n\r\n\t//filter out inactive lookup, but keep the ones that reference the current question's value\r\n\tconst filteredLookup = lookup.filter(\r\n\t\t(l) => !l.inactive || l.id === commonProps.defaultValue\r\n\t);\r\n\r\n\tconst InputDecider = () => {\r\n\t\tswitch (inputType) {\r\n\t\t\tcase \"Text\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t<Text\r\n\t\t\t\t\t\t\t{...commonProps}\r\n\t\t\t\t\t\t\tprefix={prefix}\r\n\t\t\t\t\t\t\tsuffix={suffix}\r\n\t\t\t\t\t\t\toptions={options}\r\n\t\t\t\t\t\t\tclassName=\"print-hide\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tclassName=\"print-show\"\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tborder: \"1px solid #d9d9d9\",\r\n\t\t\t\t\t\t\t\tborderRadius: \"2px\",\r\n\t\t\t\t\t\t\t\tpadding: 3,\r\n\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\twhiteSpace: \"pre-line\",\r\n\t\t\t\t\t\t\t\twordWrap: \"break-word\",\r\n\t\t\t\t\t\t\t\toverflowWrap: \"break-word\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{commonProps?.defaultValue}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</>\r\n\t\t\t\t);\r\n\r\n\t\t\tcase \"YesNo\":\r\n\t\t\t\treturn <YesNo {...commonProps} />;\r\n\t\t\tcase \"TextArea\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t<TextArea\r\n\t\t\t\t\t\t\t{...commonProps}\r\n\t\t\t\t\t\t\trows={textAreaLines}\r\n\t\t\t\t\t\t\tclassName=\"print-hide\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tclassName=\"print-show\"\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tborder: \"1px solid #d9d9d9\",\r\n\t\t\t\t\t\t\t\tborderRadius: \"2px\",\r\n\t\t\t\t\t\t\t\tpadding: 3,\r\n\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\twhiteSpace: \"pre-line\",\r\n\t\t\t\t\t\t\t\twordWrap: \"break-word\",\r\n\t\t\t\t\t\t\t\toverflowWrap: \"break-word\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{commonProps?.defaultValue}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</>\r\n\t\t\t\t);\r\n\t\t\tcase \"DatePicker\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<DatePicker\r\n\t\t\t\t\t\t{...commonProps}\r\n\t\t\t\t\t\tformat={\r\n\t\t\t\t\t\t\tdataType === \"date\"\r\n\t\t\t\t\t\t\t\t? DATE_FORMAT_STRING\r\n\t\t\t\t\t\t\t\t: DATE_TIME_FORMAT_STRING\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\t\t\tcase \"TimePicker\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<TimePicker {...commonProps} format={TIME_FORMAT_STRING} />\r\n\t\t\t\t);\r\n\t\t\tcase \"CheckBox\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Checkbox\r\n\t\t\t\t\t\t{...commonProps}\r\n\t\t\t\t\t\tlookup={filteredLookup}\r\n\t\t\t\t\t\tdefaultChecked={defaultValue}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\t\t\tcase \"Select\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Select\r\n\t\t\t\t\t\t{...commonProps}\r\n\t\t\t\t\t\tlookup={filteredLookup}\r\n\t\t\t\t\t\toptions={options}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\t\t\tcase \"RadioGroup\":\r\n\t\t\t\treturn <RadioGroup {...commonProps} lookup={filteredLookup} />;\r\n\t\t\tcase \"Label\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Label\r\n\t\t\t\t\t\tdefaultValue={\r\n\t\t\t\t\t\t\tdefaultValue ||\r\n\t\t\t\t\t\t\tdefaultValue ||\r\n\t\t\t\t\t\t\tcommonProps.defaultValue\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\t\t\tcase \"TreeSelect\":\r\n\t\t\t\treturn <TreeSelect {...commonProps} tree={tree} />;\r\n\t\t\tcase \"Attachment\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<FileUploader\r\n\t\t\t\t\t\t{...commonProps}\r\n\t\t\t\t\t\tattachmentDispatch={attachmentDispatch}\r\n\t\t\t\t\t\tisFormNew={isFormNew}\r\n\t\t\t\t\t\tsaveFormDispatch={saveFormDispatch}\r\n\t\t\t\t\t\tformId={formId}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\t\t\tcase \"Cascader\":\r\n\t\t\t\treturn <Cascader {...commonProps} tree={tree} />;\r\n\t\t\tcase \"AutoComplete\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<AutoComplete {...commonProps} lookup={filteredLookup} />\r\n\t\t\t\t);\r\n\t\t\tcase \"NumberDisplay\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<NumberDisplay\r\n\t\t\t\t\t\tcurrency={dataType === \"currency\"}\r\n\t\t\t\t\t\tnumber={defaultValue}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\t\t\tcase \"TotalFundingSource\":\r\n\t\t\t\treturn <TotalFundingSource />;\r\n\t\t\tcase \"TotalFundingDifference\":\r\n\t\t\t\treturn <TotalFundingDifference />;\r\n\t\t\tcase \"AssetRc\":\r\n\t\t\t\treturn <AssetRc {...commonProps} />;\r\n\t\t\tcase \"AssetCriticality\":\r\n\t\t\t\treturn <AssetCriticality />;\r\n\t\t\tcase \"OverallRiskAssetFailure\":\r\n\t\t\t\treturn <OverallRiskAssetFailure />;\r\n\t\t\tcase \"OverallRiskConsequences\":\r\n\t\t\t\treturn <OverallRiskConsequences />;\r\n\t\t\tcase \"Heading\":\r\n\t\t\t\treturn <></>;\r\n\t\t\tcase \"MajorCategory\":\r\n\t\t\t\treturn <MajorCategory {...commonProps} />;\r\n\t\t\tcase \"MinorCategory\":\r\n\t\t\t\treturn <MinorCategory {...commonProps} />;\r\n\t\t\tcase \"ProjectEndDate\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<ProjectEndDate\r\n\t\t\t\t\t\t{...commonProps}\r\n\t\t\t\t\t\tformat={\r\n\t\t\t\t\t\t\tdataType === \"date\"\r\n\t\t\t\t\t\t\t\t? DATE_FORMAT_STRING\r\n\t\t\t\t\t\t\t\t: DATE_TIME_FORMAT_STRING\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\t\t\tcase \"Agencies\":\r\n\t\t\t\treturn <Agencies />;\r\n\t\t\tdefault:\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<p>{`Error: this type of input is not supported yet! TYPE: ${inputType}`}</p>\r\n\t\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<InputDecider />\r\n\t\t\t{(status === \"validation error\" ||\r\n\t\t\t\tstatus === \"validation error dismissed\") &&\r\n\t\t\t\terrors.length > 0 &&\r\n\t\t\t\terrors.map((e) => (\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tkey={e.message}\r\n\t\t\t\t\t\tclassName=\"qna-question-form-item-validation\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{e.message}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t))}\r\n\t\t</>\r\n\t);\r\n}, arePropsEqual);\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport {\r\n\tQuestion,\r\n\tQuestionRow,\r\n\tQuestionTable,\r\n\tQuestionTableBodyRow,\r\n\tQuestionTableHeaderRow,\r\n\tQuestionTableFooterRow,\r\n\tQuestionTableCell,\r\n\tQuestionTableRowDeleteButton,\r\n} from \"./Question\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport {\r\n\tselectSession,\r\n\tmakeSelectLookupByDomainCode,\r\n\tmakeSelectTreeByDomainCode,\r\n\tmakeSelectChildQuestions,\r\n\tmakeSelectRowsByQuestionId,\r\n\tselectValueByQuestionId,\r\n\tmakeSelectFormulaByRowId,\r\n\tmakeSelectAttachmentsByQuestionId,\r\n\tselectTotalFundingDifference,\r\n} from \"reducers\";\r\nimport { newId } from \"utils/common\";\r\nimport { answerUpserted } from \"reducers/answersSlice\";\r\nimport {\r\n\tfetchAttachmentById,\r\n\tattachmentUpserted,\r\n} from \"reducers/attachmentsSlice\";\r\nimport {\r\n\tdeleteRowAndAnswers,\r\n\trowAdded,\r\n\trowStatusEdited,\r\n\tselectSequence,\r\n} from \"reducers/rowsSlice\";\r\nimport { validator } from \"utils/common\";\r\nimport {\r\n\tselectFormState,\r\n\tpostForm,\r\n\tselectFormId,\r\n\tselectFormStateInitialisedRows,\r\n\trowInitialised,\r\n} from \"reducers/formSlice\";\r\nimport { getPropertyCi } from \"utils/common\";\r\n\r\nimport {\r\n\tTotalCost,\r\n\tTotalOngoing,\r\n\tTotalNbv,\r\n} from \"features/capex/DataComponents\";\r\n\r\n/*\r\nContainer for business logic of how to render questions\r\nand the state selectors/dispatchers\r\n*/\r\n\r\nconst defaultFormState = { isNew: true, isLocked: false };\r\nconst defaultAnswer = { value: undefined };\r\nconst initialState = [];\r\n\r\nconst getFormulaValueIfExists = (\r\n\texpression,\r\n\tformulaId,\r\n\tformulaValue,\r\n\tdefaultValue = null\r\n) => {\r\n\t//if a formula is present\r\n\tif (typeof expression === \"object\" && expression !== null) {\r\n\t\t//return value for formula if exists\r\n\t\tif (formulaId && formulaValue) {\r\n\t\t\treturn formulaValue;\r\n\t\t}\r\n\t\t//otherwise return null - since formula value doesn't exist\r\n\t\telse return null;\r\n\t}\r\n\t//if not formula, return the default value\r\n\telse return expression;\r\n};\r\n\r\nconst QuestionChild = ({ question, instanceId, isTable, row }) => {\r\n\tconst { validation, defaultValue, visible, domain, disabled } = question;\r\n\tconst isMandatory = validation?.some((v) => v.type === \"mandatory\");\r\n\r\n\t//#region redux selectors for state to pass to Question component\r\n\tconst totalFundingDifference = useSelector(selectTotalFundingDifference);\r\n\tconst { value: standardValue } =\r\n\t\tuseSelector(\r\n\t\t\t(state) =>\r\n\t\t\t\tselectValueByQuestionId(state, instanceId || question.id),\r\n\t\t\tshallowEqual\r\n\t\t) || defaultAnswer;\r\n\r\n\tconst value =\r\n\t\tquestion.id === \"totalFundingDifference\"\r\n\t\t\t? totalFundingDifference\r\n\t\t\t: standardValue;\r\n\r\n\tconst selectLookupByDomainCode = makeSelectLookupByDomainCode(domain);\r\n\tconst lookup = useSelector(selectLookupByDomainCode);\r\n\r\n\tconst selectTreeByDomainCode = makeSelectTreeByDomainCode(domain);\r\n\tconst tree = useSelector(selectTreeByDomainCode);\r\n\r\n\tconst selectAttachmentById = makeSelectAttachmentsByQuestionId(\r\n\t\tinstanceId || question.id\r\n\t);\r\n\r\n\tconst formId = useSelector(selectFormId);\r\n\r\n\tconst attachments = useSelector(selectAttachmentById);\r\n\r\n\t//global lock status\r\n\tconst { isLocked, isNew: isFormNew } =\r\n\t\tuseSelector(selectFormState) || defaultFormState;\r\n\r\n\t//#endregion\r\n\r\n\t//#region evaluate formulas for visible and defaultValue\r\n\t/*\r\n\ttry to get calculatedValue from defaultValue \r\n\tsometimes it is a primitive value, and sometimes\r\n\tit is an object containing a formula\r\n\t*/\r\n\tconst formulaId = defaultValue?.formulaId;\r\n\tconst selectFormulaValueById = makeSelectFormulaByRowId(row?.id);\r\n\tconst formulaValue = useSelector(\r\n\t\t(state) => selectFormulaValueById(state, formulaId),\r\n\t\tshallowEqual\r\n\t);\r\n\r\n\tconst calculatedValue = getFormulaValueIfExists(\r\n\t\tdefaultValue,\r\n\t\tformulaId,\r\n\t\tformulaValue,\r\n\t\tquestion?.defaultValue\r\n\t);\r\n\r\n\tconst visibleFormulaId = visible?.formulaId;\r\n\tconst selectVisibleFormulaValueById = makeSelectFormulaByRowId(row?.id);\r\n\tconst visibleFormulaValue = useSelector(\r\n\t\t(state) => selectVisibleFormulaValueById(state, visibleFormulaId),\r\n\t\tshallowEqual\r\n\t);\r\n\r\n\tconst calculatedVisibility = getFormulaValueIfExists(\r\n\t\tvisible || true,\r\n\t\tvisibleFormulaId,\r\n\t\tvisibleFormulaValue\r\n\t);\r\n\t//#endregion\r\n\r\n\t//#region validation logic\r\n\tconst { status } = useSelector(selectSession);\r\n\tconst [errors, setErrors] = useState(initialState);\r\n\tuseEffect(() => {\r\n\t\t//on change of value, re-run validation\r\n\t\tif (validation && validation.length > 0) {\r\n\t\t\tconst errors = validation.reduce((acc, v) => {\r\n\t\t\t\tlet result = validator(v, value);\r\n\t\t\t\tif (result) acc.push(result);\r\n\t\t\t\treturn acc;\r\n\t\t\t}, []);\r\n\t\t\tsetErrors(errors && errors.length > 0 ? errors : initialState);\r\n\t\t}\r\n\t}, [value, validation]);\r\n\t//#endregion\r\n\r\n\t//#region dispatchers\r\n\tconst dispatch = useDispatch();\r\n\tconst answerAddedDispatcher = useCallback(\r\n\t\t(action) => dispatch(answerUpserted(action)),\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\tconst answerEditedDispatcher = useCallback(\r\n\t\t(action) => dispatch(answerUpserted(action)),\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\tconst attachmentDispatcher = useCallback(\r\n\t\t(action) => dispatch(attachmentUpserted(action)),\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\tconst fetchAttachmentByIdDispatcher = useCallback(\r\n\t\t(action) => dispatch(fetchAttachmentById(action)),\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\t//input types that deal with child records must save the form first\r\n\tconst saveFormDispatcher = useCallback(\r\n\t\tasync () => dispatch(postForm()),\r\n\t\t[dispatch]\r\n\t);\r\n\t//#endregion\r\n\r\n\treturn calculatedVisibility ? (\r\n\t\tisTable ? (\r\n\t\t\t<Question\r\n\t\t\t\tquestion={question}\r\n\t\t\t\tstatus={status}\r\n\t\t\t\tdispatch={[answerAddedDispatcher, answerEditedDispatcher]}\r\n\t\t\t\tattachmentDispatch={[\r\n\t\t\t\t\tattachmentDispatcher,\r\n\t\t\t\t\tfetchAttachmentByIdDispatcher,\r\n\t\t\t\t]}\r\n\t\t\t\tlookup={lookup}\r\n\t\t\t\tvalue={value}\r\n\t\t\t\tdefaultValue={calculatedValue}\r\n\t\t\t\tvisible={calculatedVisibility}\r\n\t\t\t\tisNew={!value}\r\n\t\t\t\ttree={tree}\r\n\t\t\t\terrors={errors}\r\n\t\t\t\tdisabled={disabled || isLocked}\r\n\t\t\t\tattachments={attachments}\r\n\t\t\t\tinstanceId={instanceId}\r\n\t\t\t\trow={row}\r\n\t\t\t\tisFormNew={isFormNew}\r\n\t\t\t\tsaveFormDispatch={saveFormDispatcher}\r\n\t\t\t\tformId={formId}\r\n\t\t\t/>\r\n\t\t) : (\r\n\t\t\t<QuestionRow question={question} isMandatory={isMandatory}>\r\n\t\t\t\t<Question\r\n\t\t\t\t\tquestion={question}\r\n\t\t\t\t\tstatus={status}\r\n\t\t\t\t\tdispatch={[answerAddedDispatcher, answerEditedDispatcher]}\r\n\t\t\t\t\tattachmentDispatch={[\r\n\t\t\t\t\t\tattachmentDispatcher,\r\n\t\t\t\t\t\tfetchAttachmentByIdDispatcher,\r\n\t\t\t\t\t]}\r\n\t\t\t\t\tlookup={lookup}\r\n\t\t\t\t\tvalue={value}\r\n\t\t\t\t\tdefaultValue={calculatedValue}\r\n\t\t\t\t\tvisible={calculatedVisibility}\r\n\t\t\t\t\tisNew={!value}\r\n\t\t\t\t\ttree={tree}\r\n\t\t\t\t\terrors={errors}\r\n\t\t\t\t\tdisabled={disabled || isLocked}\r\n\t\t\t\t\tattachments={attachments}\r\n\t\t\t\t\tisFormNew={isFormNew}\r\n\t\t\t\t\tsaveFormDispatch={saveFormDispatcher}\r\n\t\t\t\t\tformId={formId}\r\n\t\t\t\t/>\r\n\t\t\t</QuestionRow>\r\n\t\t)\r\n\t) : null;\r\n};\r\n\r\nconst QuestionParent = ({ question }) => {\r\n\tconst { id } = question;\r\n\tconst { isLocked } = useSelector(selectFormState);\r\n\r\n\t//#region child questions for table-based questions\r\n\tconst selectChildQuestions = makeSelectChildQuestions(id);\r\n\r\n\tconst childQuestions = useSelector(\r\n\t\t(state) => selectChildQuestions(state, id),\r\n\t\tshallowEqual\r\n\t);\r\n\tconst selectRowsByQuestionId = makeSelectRowsByQuestionId(id);\r\n\r\n\tconst rows = useSelector(selectRowsByQuestionId, shallowEqual);\r\n\r\n\tconst initialisedRows = useSelector(selectFormStateInitialisedRows);\r\n\t//#endregion\r\n\r\n\t//#region dispatchers\r\n\tconst dispatch = useDispatch();\r\n\tconst newSequence = useSelector(selectSequence) + 1;\r\n\tconst addNewRow = React.useCallback(() => {\r\n\t\tlet data = {\r\n\t\t\tid: newId(),\r\n\t\t\tquestionId: question.id,\r\n\t\t\tsequence: newSequence,\r\n\t\t};\r\n\r\n\t\t//columns (child questions)\r\n\t\tchildQuestions.forEach((q) => {\r\n\t\t\t//map through each column and assign\r\n\t\t\t//1. the property name to match the question id of the child\r\n\t\t\t//2. the property value to be the ID of the value later to be added\r\n\t\t\tdata[q.id] = newId();\r\n\t\t});\r\n\t\tdispatch(rowAdded(data));\r\n\t}, [childQuestions, question.id, dispatch, newSequence]);\r\n\t//#endregion dispatchers\r\n\r\n\tReact.useEffect(() => {\r\n\t\t//when a form is first started, we initialise the tables with an empty row\r\n\t\t//important to NOT do this later while navigating pages or while other people are approving the form\r\n\t\tif (rows.length === 0 && !initialisedRows.includes(question.id)) {\r\n\t\t\taddNewRow();\r\n\t\t\tdispatch(rowInitialised(question.id));\r\n\t\t\tdispatch(rowStatusEdited(\"idle\"));\r\n\t\t}\r\n\t}, [rows, dispatch, addNewRow, initialisedRows, question.id]);\r\n\r\n\t//#region Calculated visibility\r\n\tconst { visible } = question;\r\n\tconst visibleFormulaId = visible?.formulaId;\r\n\tconst selectVisibleFormulaValueById = makeSelectFormulaByRowId(null);\r\n\tconst visibleFormulaValue = useSelector(\r\n\t\t(state) => selectVisibleFormulaValueById(state, visibleFormulaId),\r\n\t\tshallowEqual\r\n\t);\r\n\r\n\tconst calculatedVisibility = getFormulaValueIfExists(\r\n\t\tvisible || true,\r\n\t\tvisibleFormulaId,\r\n\t\tvisibleFormulaValue\r\n\t);\r\n\t//#endregion\r\n\r\n\treturn (\r\n\t\tcalculatedVisibility && (\r\n\t\t\t<QuestionTable question={question}>\r\n\t\t\t\t<QuestionTableHeaderRow questions={childQuestions} />\r\n\t\t\t\t{rows &&\r\n\t\t\t\t\trows.length > 0 &&\r\n\t\t\t\t\trows.map((row) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<QuestionTableBodyRow key={row.id}>\r\n\t\t\t\t\t\t\t\t{childQuestions.map((q, index) => {\r\n\t\t\t\t\t\t\t\t\tlet instanceId = getPropertyCi(row, q.id);\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t<QuestionTableCell\r\n\t\t\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\t\t\tspan={q.col.span}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<QuestionChild\r\n\t\t\t\t\t\t\t\t\t\t\t\tquestion={q}\r\n\t\t\t\t\t\t\t\t\t\t\t\tinstanceId={instanceId}\r\n\t\t\t\t\t\t\t\t\t\t\t\tisTable={true}\r\n\t\t\t\t\t\t\t\t\t\t\t\trow={row}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</QuestionTableCell>\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t{!isLocked && (\r\n\t\t\t\t\t\t\t\t\t<QuestionTableRowDeleteButton\r\n\t\t\t\t\t\t\t\t\t\tonDelete={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tdispatch(deleteRowAndAnswers(row));\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</QuestionTableBodyRow>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t{(question.id === \"q1\" ||\r\n\t\t\t\t\tquestion.id === \"q8\" ||\r\n\t\t\t\t\tquestion.id === \"q10\") && (\r\n\t\t\t\t\t<QuestionTableBodyRow>\r\n\t\t\t\t\t\t{childQuestions.map((q, index) => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t<QuestionTableCell\r\n\t\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\t\tclassName=\"qna-question-table-total-cell\"\r\n\t\t\t\t\t\t\t\t\tspan={q.col.span}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{q.id === \"q7\" ? (\r\n\t\t\t\t\t\t\t\t\t\t<TotalCost />\r\n\t\t\t\t\t\t\t\t\t) : q.id === \"totalOngoingCost\" ? (\r\n\t\t\t\t\t\t\t\t\t\t<TotalOngoing />\r\n\t\t\t\t\t\t\t\t\t) : q.id === \"NBV\" ? (\r\n\t\t\t\t\t\t\t\t\t\t<TotalNbv />\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<span> </span>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</QuestionTableCell>\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t</QuestionTableBodyRow>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{!isLocked && (\r\n\t\t\t\t\t<QuestionTableFooterRow\r\n\t\t\t\t\t\tquestion={question}\r\n\t\t\t\t\t\tchildQuestions={childQuestions}\r\n\t\t\t\t\t\taddNewRow={addNewRow}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t</QuestionTable>\r\n\t\t)\r\n\t);\r\n};\r\n\r\nconst QuestionContainer = ({ question, instanceId }) => {\r\n\treturn question.inputType === \"Table\" ? (\r\n\t\t<QuestionParent question={question}></QuestionParent>\r\n\t) : (\r\n\t\t<QuestionChild question={question} instanceId={instanceId} />\r\n\t);\r\n};\r\n\r\nexport default QuestionContainer;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport QuestionContainer from \"./QuestionContainer\";\r\nimport { makeSelectQuestionsBySectionId } from \"reducers\";\r\n\r\nconst QuestionList = ({ sectionId, row, col }) => {\r\n\tconst selectQuestionsBySectionId =\r\n\t\tmakeSelectQuestionsBySectionId(sectionId);\r\n\tconst questions = useSelector((state) =>\r\n\t\tselectQuestionsBySectionId(state, sectionId)\r\n\t);\r\n\treturn (\r\n\t\tquestions.length > 0 &&\r\n\t\tquestions\r\n\t\t\t/* filter for questions in the correct section coordinate*/\r\n\t\t\t.filter(\r\n\t\t\t\t(qf) =>\r\n\t\t\t\t\t!qf.coord ||\r\n\t\t\t\t\t(qf.coord && qf.coord.row === row && qf.coord.col === col)\r\n\t\t\t)\r\n\t\t\t/* filter excluding any child questions */\r\n\t\t\t.filter((cq) => !cq.parentQuestionId)\r\n\t\t\t.map((q) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<QuestionContainer\r\n\t\t\t\t\t\tkey={q.id}\r\n\t\t\t\t\t\tquestion={q}\r\n\t\t\t\t\t></QuestionContainer> //todo:checkerror fix\r\n\t\t\t\t);\r\n\t\t\t})\r\n\t);\r\n};\r\n\r\nexport default QuestionList;\r\n","import React from \"react\";\r\nimport { useSelector, shallowEqual } from \"react-redux\";\r\nimport { Row, Col } from \"antd\";\r\nimport {\r\n\tmakeSelectFormulaByRowId,\r\n\tselectAllVisibleSectionsByCurrentPage,\r\n} from \"reducers\";\r\nimport QuestionList from \"./QuestionList\";\r\nimport { arrayFromSize } from \"utils/common\";\r\nimport { Section } from \"./QnaComponents\";\r\n\r\nconst SectionParent = ({ children, section }) => {\r\n\tconst { visible } = section;\r\n\tlet calculatedVisibility = visible || true;\r\n\tlet visibleFormulaId = visible?.formulaId;\r\n\r\n\tconst selectVisibleFormulaValueById = makeSelectFormulaByRowId();\r\n\tconst visibleFormulaValue = useSelector(\r\n\t\t(state) => selectVisibleFormulaValueById(state, visibleFormulaId),\r\n\t\tshallowEqual\r\n\t);\r\n\r\n\tif (typeof visible === \"object\" && visible !== null) {\r\n\t\tif (visibleFormulaId && visibleFormulaValue) {\r\n\t\t\tcalculatedVisibility = visibleFormulaValue;\r\n\t\t} else calculatedVisibility = false;\r\n\t}\r\n\r\n\treturn calculatedVisibility ? (\r\n\t\t<Section {...section}>{children}</Section>\r\n\t) : (\r\n\t\t<></>\r\n\t);\r\n};\r\n\r\nconst SectionQuestionContainer = React.memo(\r\n\t({ sectionId, pageId, row, col, cols }) => {\r\n\t\treturn (\r\n\t\t\t<QuestionList\r\n\t\t\t\tsectionId={sectionId}\r\n\t\t\t\tpageId={pageId}\r\n\t\t\t\trow={row}\r\n\t\t\t\tcol={col}\r\n\t\t\t\tcols={cols}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\n/*\r\nImportant to memoise this container, as it receives the same\r\nprop but selector returns a new object (with same values)\r\n*/\r\nconst SectionContainer = ({ pageId }) => {\r\n\tconst sections = useSelector(selectAllVisibleSectionsByCurrentPage);\r\n\treturn sections.length > 0 ? (\r\n\t\tsections.map((s) => {\r\n\t\t\tlet { rows, cols } = s;\r\n\t\t\treturn (\r\n\t\t\t\t<SectionParent key={s.id} section={s}>\r\n\t\t\t\t\t{rows && cols ? (\r\n\t\t\t\t\t\tarrayFromSize(rows).map((r) => (\r\n\t\t\t\t\t\t\t<Row key={r}>\r\n\t\t\t\t\t\t\t\t{cols.map((c, index) => (\r\n\t\t\t\t\t\t\t\t\t<Col key={index} span={c.span}>\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t<SectionQuestionContainer\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={`r${r}c${index}`}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsectionId={s.id}\r\n\t\t\t\t\t\t\t\t\t\t\t\tpageId={s.pageId}\r\n\t\t\t\t\t\t\t\t\t\t\t\trow={r}\r\n\t\t\t\t\t\t\t\t\t\t\t\tcol={index}\r\n\t\t\t\t\t\t\t\t\t\t\t\tcols={cols}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t\t))\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<SectionQuestionContainer\r\n\t\t\t\t\t\t\tsectionId={s.id}\r\n\t\t\t\t\t\t\tpageId={s.pageId}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</SectionParent>\r\n\t\t\t);\r\n\t\t})\r\n\t) : (\r\n\t\t<p>\r\n\t\t\tThere are no sections to fill out on this page. Please continue by\r\n\t\t\tclicking Next.\r\n\t\t</p>\r\n\t);\r\n};\r\n\r\nexport default SectionContainer;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { selectPageById } from \"../reducers\";\r\nimport SectionContainer from \"./SectionContainer\";\r\n\r\nconst Page = ({ id }) => {\r\n\tconst page = useSelector((state) => selectPageById(state, id));\r\n\r\n\treturn page ? <SectionContainer pageId={id} /> : <></>;\r\n};\r\n\r\nexport default Page;\r\n","// This icon file is generated automatically.\nvar CaretLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z\" } }] }, \"name\": \"caret-left\", \"theme\": \"outlined\" };\nexport default CaretLeftOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CaretLeftOutlined = function CaretLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretLeftOutlinedSvg\n }));\n};\nCaretLeftOutlined.displayName = 'CaretLeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretLeftOutlined);","// This icon file is generated automatically.\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexport default CaretRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CaretRightOutlined = function CaretRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretRightOutlinedSvg\n }));\n};\nCaretRightOutlined.displayName = 'CaretRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretRightOutlined);","import React from \"react\";\r\nimport { Button } from \"antd\";\r\nimport {\r\n\tCaretLeftOutlined,\r\n\tCaretRightOutlined,\r\n\tHomeOutlined,\r\n} from \"@ant-design/icons\";\r\n\r\nexport const PrevButton = ({ decrementPage, visible, disabled }) => {\r\n\treturn visible ? (\r\n\t\t<Button\r\n\t\t\tname=\"Prev\"\r\n\t\t\tonClick={decrementPage}\r\n\t\t\ttype=\"ghost\"\r\n\t\t\tclassName=\"qna-button-nav margin-left-tiny\"\r\n\t\t\tdisabled={disabled}\r\n\t\t>\r\n\t\t\t<CaretLeftOutlined />\r\n\t\t\tPrev\r\n\t\t</Button>\r\n\t) : (\r\n\t\t<div></div>\r\n\t);\r\n};\r\n\r\nexport const NextButton = ({ incrementPage, visible, disabled }) => {\r\n\treturn visible ? (\r\n\t\t<Button\r\n\t\t\tname=\"Next\"\r\n\t\t\tonClick={incrementPage}\r\n\t\t\ttype=\"primary\"\r\n\t\t\tclassName=\"qna-button-nav margin-right-tiny\"\r\n\t\t\tdisabled={disabled}\r\n\t\t>\r\n\t\t\t<CaretRightOutlined />\r\n\t\t\tNext\r\n\t\t</Button>\r\n\t) : (\r\n\t\t<div></div>\r\n\t);\r\n};\r\n\r\nexport const HomeButton = ({ visible, disabled, onClick }) => {\r\n\treturn visible ? (\r\n\t\t<Button\r\n\t\t\tname=\"Home\"\r\n\t\t\tonClick={onClick}\r\n\t\t\ttype=\"primary\"\r\n\t\t\tclassName=\"qna-button-home margin-right-tiny\"\r\n\t\t\tdisabled={disabled}\r\n\t\t>\r\n\t\t\t<HomeOutlined />\r\n\t\t</Button>\r\n\t) : (\r\n\t\t<div></div>\r\n\t);\r\n};\r\n\r\nexport const CustomButton = ({ visible, disabled, onClick, children }) => {\r\n\treturn visible ? (\r\n\t\t<Button\r\n\t\t\tname=\"Home\"\r\n\t\t\tonClick={onClick}\r\n\t\t\ttype=\"primary\"\r\n\t\t\tclassName=\"qna-button-nav margin-right-tiny\"\r\n\t\t\tdisabled={disabled}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t</Button>\r\n\t) : (\r\n\t\t<div></div>\r\n\t);\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { Select } from \"antd\";\r\nimport { searchByName } from \"api\";\r\n\r\nconst { Option } = Select;\r\n\r\nlet timeout;\r\nlet currentValue;\r\n\r\nconst PersonSearch = ({\r\n\tappHierarchyId,\r\n\tvalue,\r\n\tonChange,\r\n\tdefaultOptions = [],\r\n\toptions = {},\r\n\tstyle,\r\n\tplaceholder = \"Search for a person by their name (lastname, firstname)\",\r\n}) => {\r\n\tconst [data, setData] = useState(defaultOptions);\r\n\r\n\tconst { valueKey, includeLabel, disabled } = options;\r\n\r\n\tfunction fetch(value, callback) {\r\n\t\tif (timeout) {\r\n\t\t\tclearTimeout(timeout);\r\n\t\t\ttimeout = null;\r\n\t\t}\r\n\t\tcurrentValue = value;\r\n\r\n\t\tconst query = async () => {\r\n\t\t\tconst response = await searchByName({\r\n\t\t\t\tname: value,\r\n\t\t\t\tappHierarchyId,\r\n\t\t\t});\r\n\t\t\tif (currentValue === value) {\r\n\t\t\t\tconst data = [];\r\n\t\t\t\tresponse.forEach((r) => {\r\n\t\t\t\t\tdata.push({\r\n\t\t\t\t\t\tvalue: valueKey ? r[valueKey] : r[\"id\"],\r\n\t\t\t\t\t\ttext: r[\"lastName\"] + \", \" + r[\"firstName\"],\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\tcallback(data);\r\n\t\t\t}\r\n\t\t};\r\n\t\ttimeout = setTimeout(query, 300);\r\n\t}\r\n\r\n\tconst onSearch = (value) => {\r\n\t\tif (value) {\r\n\t\t\tfetch(value, (data) => setData(data));\r\n\t\t} else {\r\n\t\t\tsetData([]);\r\n\t\t}\r\n\t};\r\n\r\n\tconst triggerChange = (value) => {\r\n\t\tif (includeLabel)\r\n\t\t\tonChange?.({\r\n\t\t\t\tvalue,\r\n\t\t\t\ttext: data.find((d) => d.value === value).text,\r\n\t\t\t});\r\n\t\telse onChange?.(value);\r\n\t};\r\n\r\n\tconst selectOptions = data\r\n\t\t.sort((a, b) => (a.text === b.text ? 0 : a.text > b.text ? 1 : -1))\r\n\t\t.map((d, key) => {\r\n\t\t\treturn (\r\n\t\t\t\t<Option key={key} value={d.value}>\r\n\t\t\t\t\t{d.text}\r\n\t\t\t\t</Option>\r\n\t\t\t);\r\n\t\t});\r\n\r\n\treturn (\r\n\t\t<Select\r\n\t\t\tshowSearch\r\n\t\t\tdefaultValue={value}\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tstyle={style}\r\n\t\t\tdefaultActiveFirstOption={false}\r\n\t\t\tshowArrow={false}\r\n\t\t\tfilterOption={false}\r\n\t\t\tonSearch={onSearch}\r\n\t\t\tonChange={triggerChange}\r\n\t\t\tnotFoundContent={null}\r\n\t\t\tdisabled={disabled}\r\n\t\t>\r\n\t\t\t{selectOptions}\r\n\t\t</Select>\r\n\t);\r\n};\r\n\r\nexport default PersonSearch;\r\n","import React, { useState } from \"react\";\r\nimport { Select, Spin } from \"antd\";\r\nimport { getOrAddCapexUserByEmail, searchByNameAd } from \"api\";\r\n\r\nconst { Option } = Select;\r\n\r\nlet timeout;\r\nlet currentValue;\r\n\r\nconst PersonSearchAd = ({\r\n\tvalue,\r\n\tonChange,\r\n\tdefaultOptions,\r\n\toptions = {},\r\n\tstyle,\r\n\tplaceholder = \"Search for a person by their name (lastname, firstname)\",\r\n}) => {\r\n\tconst [data, setData] = useState(defaultOptions);\r\n\tconst [email, setEmail] = useState(value);\r\n\tconst [loading, setLoading] = useState(false);\r\n\r\n\tconst { valueKey, outProp, includeLabel, disabled } = options;\r\n\r\n\tfunction fetch(value, callback) {\r\n\t\tif (timeout) {\r\n\t\t\tclearTimeout(timeout);\r\n\t\t\ttimeout = null;\r\n\t\t}\r\n\t\tcurrentValue = value;\r\n\r\n\t\tconst query = async () => {\r\n\t\t\tsetLoading(true);\r\n\t\t\tconst response = await searchByNameAd({\r\n\t\t\t\tname: value,\r\n\t\t\t});\r\n\t\t\tif (currentValue === value) {\r\n\t\t\t\tconst data = [];\r\n\t\t\t\tresponse.forEach((r) => {\r\n\t\t\t\t\tdata.push({\r\n\t\t\t\t\t\tvalue: valueKey ? r[valueKey] : r[\"EmailAddress\"],\r\n\t\t\t\t\t\ttext: r[\"Surname\"] + \", \" + r[\"GivenName\"],\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\tcallback(data);\r\n\t\t\t}\r\n\t\t\tsetLoading(false);\r\n\t\t};\r\n\t\ttimeout = setTimeout(query, 300);\r\n\t}\r\n\r\n\tconst onSearch = (name) => {\r\n\t\tif (name) {\r\n\t\t\tfetch(name, (data) => setData(data));\r\n\t\t} else {\r\n\t\t\tsetData([]);\r\n\t\t}\r\n\t};\r\n\r\n\tconst triggerChange = async (email) => {\r\n\t\tsetEmail(email);\r\n\t\tconst returnUser = await getOrAddCapexUserByEmail({ email });\r\n\t\tconst id = returnUser.Id;\r\n\t\tif (includeLabel)\r\n\t\t\tonChange?.({\r\n\t\t\t\tid,\r\n\t\t\t\ttext: data.find((d) => d.value === email)?.text,\r\n\t\t\t\temail,\r\n\t\t\t\t[outProp]: returnUser[outProp],\r\n\t\t\t});\r\n\t\telse onChange?.(returnUser[outProp] ?? id);\r\n\t};\r\n\r\n\tconst selectOptions =\r\n\t\tdata && data.length > 0\r\n\t\t\t? data\r\n\t\t\t\t\t.sort((a, b) =>\r\n\t\t\t\t\t\ta.text === b.text ? 0 : a.text > b.text ? 1 : -1\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.map((d, key) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<Option key={key} value={d.value}>\r\n\t\t\t\t\t\t\t\t{d.text}\r\n\t\t\t\t\t\t\t</Option>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})\r\n\t\t\t: null;\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Select\r\n\t\t\t\tshowSearch\r\n\t\t\t\tdefaultValue={email || undefined}\r\n\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\tstyle={style}\r\n\t\t\t\tdefaultActiveFirstOption={false}\r\n\t\t\t\tshowArrow={false}\r\n\t\t\t\tfilterOption={false}\r\n\t\t\t\tonSearch={onSearch}\r\n\t\t\t\tonChange={triggerChange}\r\n\t\t\t\tnotFoundContent={null}\r\n\t\t\t\tdisabled={disabled}\r\n\t\t\t\tsuffixIcon={loading ? <Spin /> : null}\r\n\t\t\t>\r\n\t\t\t\t{selectOptions}\r\n\t\t\t</Select>\r\n\t\t\t{loading && (\r\n\t\t\t\t<div style={{ marginTop: 10 }}>\r\n\t\t\t\t\t<Spin />\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default PersonSearchAd;\r\n","import React from \"react\";\r\nimport { createMarkup } from \"utils/common\";\r\nimport { Row, Col } from \"antd\";\r\n\r\nconst SMALL = { maxWidth: 576 };\r\nconst MEDIUM = { maxWidth: 768 };\r\nconst LARGE = { maxWidth: 992 };\r\nconst XLARGE = { maxWidth: 1600, minWidth: 950 };\r\nconst getSize = (size) => {\r\n\tswitch (size) {\r\n\t\tcase \"small\":\r\n\t\t\treturn SMALL;\r\n\t\tcase \"medium\":\r\n\t\t\treturn MEDIUM;\r\n\t\tcase \"large\":\r\n\t\t\treturn LARGE;\r\n\t\tcase \"xlarge\":\r\n\t\t\treturn XLARGE;\r\n\t\tdefault:\r\n\t\t\treturn MEDIUM;\r\n\t}\r\n};\r\n\r\nexport const Section = ({\r\n\tid,\r\n\ttitle,\r\n\tdescription,\r\n\tfooterDescription,\r\n\tchildren,\r\n\tsize = \"medium\",\r\n\tstyle = {},\r\n}) => {\r\n\tconst sizeStyle = getSize(size);\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName=\"qna-section-container\"\r\n\t\t\tkey={id}\r\n\t\t\tstyle={{ ...sizeStyle, ...style }}\r\n\t\t>\r\n\t\t\t<div className=\"qna-section-questions-container\">\r\n\t\t\t\t{title && <h3 className=\"qna-section-title\">{title}</h3>}\r\n\t\t\t\t{description && (\r\n\t\t\t\t\t<p\r\n\t\t\t\t\t\tclassName=\"qna-section-description\"\r\n\t\t\t\t\t\tdangerouslySetInnerHTML={createMarkup(description)}\r\n\t\t\t\t\t></p>\r\n\t\t\t\t)}\r\n\t\t\t\t{children}\r\n\t\t\t\t{footerDescription && (\r\n\t\t\t\t\t<p\r\n\t\t\t\t\t\tclassName=\"qna-section-footer-description\"\r\n\t\t\t\t\t\tdangerouslySetInnerHTML={createMarkup(\r\n\t\t\t\t\t\t\tfooterDescription\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t></p>\r\n\t\t\t\t)}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport const QuestionRow = ({\r\n\trowClassName = \"qna-question-form-item-group\",\r\n\tchildren,\r\n\t...otherProps\r\n}) => {\r\n\treturn (\r\n\t\t<Row\r\n\t\t\talign=\"middle\"\r\n\t\t\tclassName={\"qna-question-container \" + rowClassName}\r\n\t\t\t{...otherProps}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t</Row>\r\n\t);\r\n};\r\n\r\nexport const QuestionComponent = ({\r\n\ttitle,\r\n\tdescription,\r\n\tisMandatory = false,\r\n\trowClassName,\r\n\tinputColWidth = 24,\r\n\tlabelColWidth = 24,\r\n\tdepth = 0,\r\n\tchildren,\r\n\tquestion,\r\n}) => {\r\n\treturn (\r\n\t\t<QuestionRow rowClassName={rowClassName}>\r\n\t\t\t<QuestionLabelCol\r\n\t\t\t\tdepth={depth}\r\n\t\t\t\ttitle={title}\r\n\t\t\t\tisMandatory={isMandatory}\r\n\t\t\t\tdescription={description}\r\n\t\t\t\tlabelColWidth={labelColWidth}\r\n\t\t\t\tisHeading={question?.inputType === \"Heading\"}\r\n\t\t\t/>\r\n\t\t\t<QuestionInputCol inputColWidth={inputColWidth}>\r\n\t\t\t\t{children}\r\n\t\t\t</QuestionInputCol>\r\n\t\t</QuestionRow>\r\n\t);\r\n};\r\n\r\nexport const QuestionLabelCol = ({\r\n\tdepth,\r\n\ttitle,\r\n\tisMandatory,\r\n\tdescription,\r\n\tlabelColWidth,\r\n\tclassName = \"\",\r\n\tchildren,\r\n\tisHeading,\r\n\t...otherProps\r\n}) => {\r\n\tconst titleMarkup = createMarkup(title);\r\n\tconst Heading = ({ children }) => {\r\n\t\treturn (\r\n\t\t\t<h3\r\n\t\t\t\tdangerouslySetInnerHTML={titleMarkup}\r\n\t\t\t\tstyle={{ marginBottom: 0 }}\r\n\t\t\t></h3>\r\n\t\t);\r\n\t};\r\n\tconst Label = ({ children }) => {\r\n\t\treturn (\r\n\t\t\t<span className={className} dangerouslySetInnerHTML={titleMarkup}>\r\n\t\t\t\t{children}\r\n\t\t\t</span>\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<Col\r\n\t\t\tspan={labelColWidth}\r\n\t\t\tclassName={\"qna-question-form-item-label \" + className}\r\n\t\t\t{...otherProps}\r\n\t\t>\r\n\t\t\t<div className={\"margin-left-\" + depth}>\r\n\t\t\t\t{title ? (\r\n\t\t\t\t\tisHeading ? (\r\n\t\t\t\t\t\t<Heading />\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<Label />\r\n\t\t\t\t\t)\r\n\t\t\t\t) : (\r\n\t\t\t\t\t<span className={className}>{children}</span>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{isMandatory && <span className=\"text-mandatory\">*</span>}\r\n\t\t\t</div>\r\n\r\n\t\t\t{description && (\r\n\t\t\t\t<div className={\"margin-left-\" + depth}>\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tclassName=\"qna-question-form-item-description-label\"\r\n\t\t\t\t\t\tdangerouslySetInnerHTML={createMarkup(description)}\r\n\t\t\t\t\t></span>\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\t\t</Col>\r\n\t);\r\n};\r\n\r\nexport const QuestionInputCol = ({\r\n\tinputColWidth,\r\n\tsuffix,\r\n\tchildren,\r\n\tstyle,\r\n\t...otherProps\r\n}) => {\r\n\treturn (\r\n\t\t<Col span={inputColWidth} style={{ ...style }} {...otherProps}>\r\n\t\t\t<div className=\"qna-question-form-item-control\">{children}</div>\r\n\t\t\t{suffix}\r\n\t\t</Col>\r\n\t);\r\n};\r\n","// This icon file is generated automatically.\nvar SaveOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z\" } }] }, \"name\": \"save\", \"theme\": \"outlined\" };\nexport default SaveOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SaveOutlinedSvg from \"@ant-design/icons-svg/es/asn/SaveOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar SaveOutlined = function SaveOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: SaveOutlinedSvg\n }));\n};\nSaveOutlined.displayName = 'SaveOutlined';\nexport default /*#__PURE__*/React.forwardRef(SaveOutlined);","// This icon file is generated automatically.\nvar ArrowLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"arrow-left\", \"theme\": \"outlined\" };\nexport default ArrowLeftOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ArrowLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/ArrowLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ArrowLeftOutlined = function ArrowLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ArrowLeftOutlinedSvg\n }));\n};\nArrowLeftOutlined.displayName = 'ArrowLeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(ArrowLeftOutlined);","// This icon file is generated automatically.\nvar ArrowRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 000-48.4z\" } }] }, \"name\": \"arrow-right\", \"theme\": \"outlined\" };\nexport default ArrowRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ArrowRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/ArrowRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ArrowRightOutlined = function ArrowRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ArrowRightOutlinedSvg\n }));\n};\nArrowRightOutlined.displayName = 'ArrowRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(ArrowRightOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport Dropdown from '../dropdown/dropdown';\nvar BreadcrumbItem = function BreadcrumbItem(props) {\n var customizePrefixCls = props.prefixCls,\n _props$separator = props.separator,\n separator = _props$separator === void 0 ? '/' : _props$separator,\n children = props.children,\n menu = props.menu,\n overlay = props.overlay,\n dropdownProps = props.dropdownProps,\n restProps = __rest(props, [\"prefixCls\", \"separator\", \"children\", \"menu\", \"overlay\", \"dropdownProps\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('breadcrumb', customizePrefixCls);\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('overlay' in props), 'Breadcrumb.Item', '`overlay` is deprecated. Please use `menu` instead.') : void 0;\n }\n /** If overlay is have Wrap a Dropdown */\n var renderBreadcrumbNode = function renderBreadcrumbNode(breadcrumbItem) {\n if (menu || overlay) {\n var mergeDropDownProps = _extends({}, dropdownProps);\n if ('overlay' in props) {\n mergeDropDownProps.overlay = overlay;\n }\n return /*#__PURE__*/React.createElement(Dropdown, _extends({\n menu: menu,\n placement: \"bottom\"\n }, mergeDropDownProps), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-overlay-link\")\n }, breadcrumbItem, /*#__PURE__*/React.createElement(DownOutlined, null)));\n }\n return breadcrumbItem;\n };\n var link;\n if ('href' in restProps) {\n link = /*#__PURE__*/React.createElement(\"a\", _extends({\n className: \"\".concat(prefixCls, \"-link\")\n }, restProps), children);\n } else {\n link = /*#__PURE__*/React.createElement(\"span\", _extends({\n className: \"\".concat(prefixCls, \"-link\")\n }, restProps), children);\n }\n // wrap to dropDown\n link = renderBreadcrumbNode(link);\n if (children !== undefined && children !== null) {\n return /*#__PURE__*/React.createElement(\"li\", null, link, separator && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-separator\")\n }, separator));\n }\n return null;\n};\nBreadcrumbItem.__ANT_BREADCRUMB_ITEM = true;\nexport default BreadcrumbItem;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar BreadcrumbSeparator = function BreadcrumbSeparator(_ref) {\n var children = _ref.children;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('breadcrumb');\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-separator\")\n }, children || '/');\n};\nBreadcrumbSeparator.__ANT_BREADCRUMB_SEPARATOR = true;\nexport default BreadcrumbSeparator;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Menu from '../menu';\nimport { cloneElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport BreadcrumbItem from './BreadcrumbItem';\nimport BreadcrumbSeparator from './BreadcrumbSeparator';\nfunction getBreadcrumbName(route, params) {\n if (!route.breadcrumbName) {\n return null;\n }\n var paramsKeys = Object.keys(params).join('|');\n var name = route.breadcrumbName.replace(new RegExp(\":(\".concat(paramsKeys, \")\"), 'g'), function (replacement, key) {\n return params[key] || replacement;\n });\n return name;\n}\nfunction defaultItemRender(route, params, routes, paths) {\n var isLastItem = routes.indexOf(route) === routes.length - 1;\n var name = getBreadcrumbName(route, params);\n return isLastItem ? /*#__PURE__*/React.createElement(\"span\", null, name) : /*#__PURE__*/React.createElement(\"a\", {\n href: \"#/\".concat(paths.join('/'))\n }, name);\n}\nvar getPath = function getPath(path, params) {\n path = (path || '').replace(/^\\//, '');\n Object.keys(params).forEach(function (key) {\n path = path.replace(\":\".concat(key), params[key]);\n });\n return path;\n};\nvar addChildPath = function addChildPath(paths, childPath, params) {\n var originalPaths = _toConsumableArray(paths);\n var path = getPath(childPath || '', params);\n if (path) {\n originalPaths.push(path);\n }\n return originalPaths;\n};\nvar Breadcrumb = function Breadcrumb(_a) {\n var customizePrefixCls = _a.prefixCls,\n _a$separator = _a.separator,\n separator = _a$separator === void 0 ? '/' : _a$separator,\n style = _a.style,\n className = _a.className,\n routes = _a.routes,\n children = _a.children,\n _a$itemRender = _a.itemRender,\n itemRender = _a$itemRender === void 0 ? defaultItemRender : _a$itemRender,\n _a$params = _a.params,\n params = _a$params === void 0 ? {} : _a$params,\n restProps = __rest(_a, [\"prefixCls\", \"separator\", \"style\", \"className\", \"routes\", \"children\", \"itemRender\", \"params\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var crumbs;\n var prefixCls = getPrefixCls('breadcrumb', customizePrefixCls);\n if (routes && routes.length > 0) {\n // generated by route\n var paths = [];\n crumbs = routes.map(function (route) {\n var path = getPath(route.path, params);\n if (path) {\n paths.push(path);\n }\n // generated overlay by route.children\n var overlay;\n if (route.children && route.children.length) {\n overlay = /*#__PURE__*/React.createElement(Menu, {\n items: route.children.map(function (child) {\n return {\n key: child.path || child.breadcrumbName,\n label: itemRender(child, params, routes, addChildPath(paths, child.path, params))\n };\n })\n });\n }\n var itemProps = {\n separator: separator\n };\n if (overlay) {\n itemProps.overlay = overlay;\n }\n return /*#__PURE__*/React.createElement(BreadcrumbItem, _extends({}, itemProps, {\n key: path || route.breadcrumbName\n }), itemRender(route, params, routes, paths));\n });\n } else if (children) {\n crumbs = toArray(children).map(function (element, index) {\n if (!element) {\n return element;\n }\n process.env.NODE_ENV !== \"production\" ? warning(element.type && (element.type.__ANT_BREADCRUMB_ITEM === true || element.type.__ANT_BREADCRUMB_SEPARATOR === true), 'Breadcrumb', \"Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children\") : void 0;\n return cloneElement(element, {\n separator: separator,\n key: index\n });\n });\n }\n var breadcrumbClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"nav\", _extends({\n className: breadcrumbClassName,\n style: style\n }, restProps), /*#__PURE__*/React.createElement(\"ol\", null, crumbs));\n};\nBreadcrumb.Item = BreadcrumbItem;\nBreadcrumb.Separator = BreadcrumbSeparator;\nexport default Breadcrumb;","import Breadcrumb from './Breadcrumb';\nexport default Breadcrumb;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n/**\n * Wrap of sub component which need use as Button capacity (like Icon component).\n *\n * This helps accessibility reader to tread as a interactive button to operation.\n */\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nvar inlineStyle = {\n border: 0,\n background: 'transparent',\n padding: 0,\n lineHeight: 'inherit',\n display: 'inline-block'\n};\nvar TransButton = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var onKeyDown = function onKeyDown(event) {\n var keyCode = event.keyCode;\n if (keyCode === KeyCode.ENTER) {\n event.preventDefault();\n }\n };\n var onKeyUp = function onKeyUp(event) {\n var keyCode = event.keyCode;\n var onClick = props.onClick;\n if (keyCode === KeyCode.ENTER && onClick) {\n onClick();\n }\n };\n var style = props.style,\n noStyle = props.noStyle,\n disabled = props.disabled,\n restProps = __rest(props, [\"style\", \"noStyle\", \"disabled\"]);\n var mergedStyle = {};\n if (!noStyle) {\n mergedStyle = _extends({}, inlineStyle);\n }\n if (disabled) {\n mergedStyle.pointerEvents = 'none';\n }\n mergedStyle = _extends(_extends({}, mergedStyle), style);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"button\",\n tabIndex: 0,\n ref: ref\n }, restProps, {\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n style: mergedStyle\n }));\n});\nexport default TransButton;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport ArrowLeftOutlined from \"@ant-design/icons/es/icons/ArrowLeftOutlined\";\nimport ArrowRightOutlined from \"@ant-design/icons/es/icons/ArrowRightOutlined\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport Avatar from '../avatar';\nimport Breadcrumb from '../breadcrumb';\nimport { ConfigConsumer } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport Space from '../space';\nimport TransButton from '../_util/transButton';\nvar renderBack = function renderBack(prefixCls, backIcon, onBack) {\n if (!backIcon || !onBack) {\n return null;\n }\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"PageHeader\"\n }, function (contextLocale) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-back\")\n }, /*#__PURE__*/React.createElement(TransButton, {\n onClick: function onClick(e) {\n onBack === null || onBack === void 0 ? void 0 : onBack(e);\n },\n className: \"\".concat(prefixCls, \"-back-button\"),\n \"aria-label\": contextLocale.back\n }, backIcon));\n });\n};\nvar renderBreadcrumb = function renderBreadcrumb(breadcrumb) {\n return /*#__PURE__*/React.createElement(Breadcrumb, _extends({}, breadcrumb));\n};\nvar getBackIcon = function getBackIcon(props) {\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'ltr';\n if (props.backIcon !== undefined) {\n return props.backIcon;\n }\n return direction === 'rtl' ? /*#__PURE__*/React.createElement(ArrowRightOutlined, null) : /*#__PURE__*/React.createElement(ArrowLeftOutlined, null);\n};\nvar renderTitle = function renderTitle(prefixCls, props) {\n var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'ltr';\n var title = props.title,\n avatar = props.avatar,\n subTitle = props.subTitle,\n tags = props.tags,\n extra = props.extra,\n onBack = props.onBack;\n var headingPrefixCls = \"\".concat(prefixCls, \"-heading\");\n var hasHeading = title || subTitle || tags || extra;\n // If there is nothing, return a null\n if (!hasHeading) {\n return null;\n }\n var backIcon = getBackIcon(props, direction);\n var backIconDom = renderBack(prefixCls, backIcon, onBack);\n var hasTitle = backIconDom || avatar || hasHeading;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: headingPrefixCls\n }, hasTitle && ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(headingPrefixCls, \"-left\")\n }, backIconDom, avatar && /*#__PURE__*/React.createElement(Avatar, _extends({}, avatar)), title && ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(headingPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title)), subTitle && ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(headingPrefixCls, \"-sub-title\"),\n title: typeof subTitle === 'string' ? subTitle : undefined\n }, subTitle)), tags && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(headingPrefixCls, \"-tags\")\n }, tags))), extra && ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(headingPrefixCls, \"-extra\")\n }, /*#__PURE__*/React.createElement(Space, null, extra))));\n};\nvar renderFooter = function renderFooter(prefixCls, footer) {\n if (footer) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer);\n }\n return null;\n};\nvar renderChildren = function renderChildren(prefixCls, children) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n};\nvar PageHeader = function PageHeader(props) {\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n compact = _useState2[0],\n updateCompact = _useState2[1];\n var onResize = function onResize(_ref) {\n var width = _ref.width;\n updateCompact(width < 768, true);\n };\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref2) {\n var getPrefixCls = _ref2.getPrefixCls,\n pageHeader = _ref2.pageHeader,\n direction = _ref2.direction;\n var _a;\n var customizePrefixCls = props.prefixCls,\n style = props.style,\n footer = props.footer,\n children = props.children,\n breadcrumb = props.breadcrumb,\n breadcrumbRender = props.breadcrumbRender,\n customizeClassName = props.className;\n var ghost = true;\n // Use `ghost` from `props` or from `ConfigProvider` instead.\n if ('ghost' in props) {\n ghost = props.ghost;\n } else if (pageHeader && 'ghost' in pageHeader) {\n ghost = pageHeader.ghost;\n }\n var prefixCls = getPrefixCls('page-header', customizePrefixCls);\n var getDefaultBreadcrumbDom = function getDefaultBreadcrumbDom() {\n if (breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.routes) {\n return renderBreadcrumb(breadcrumb);\n }\n return null;\n };\n var defaultBreadcrumbDom = getDefaultBreadcrumbDom();\n var isBreadcrumbComponent = breadcrumb && 'props' in breadcrumb;\n // support breadcrumbRender function\n var breadcrumbRenderDomFromProps = (_a = breadcrumbRender === null || breadcrumbRender === void 0 ? void 0 : breadcrumbRender(props, defaultBreadcrumbDom)) !== null && _a !== void 0 ? _a : defaultBreadcrumbDom;\n var breadcrumbDom = isBreadcrumbComponent ? breadcrumb : breadcrumbRenderDomFromProps;\n var className = classNames(prefixCls, customizeClassName, _defineProperty(_defineProperty(_defineProperty({\n 'has-breadcrumb': !!breadcrumbDom,\n 'has-footer': !!footer\n }, \"\".concat(prefixCls, \"-ghost\"), ghost), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-compact\"), compact));\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, breadcrumbDom, renderTitle(prefixCls, props, direction), children && renderChildren(prefixCls, children), renderFooter(prefixCls, footer)));\n });\n};\nexport default PageHeader;","// This icon file is generated automatically.\nvar ExpandAltOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 000 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0013.5-4.7L863.9 169a7.9 7.9 0 00-8.9-8.9zM416.6 562.3a8.03 8.03 0 00-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 00-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z\" } }] }, \"name\": \"expand-alt\", \"theme\": \"outlined\" };\nexport default ExpandAltOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExpandAltOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExpandAltOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ExpandAltOutlined = function ExpandAltOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExpandAltOutlinedSvg\n }));\n};\nExpandAltOutlined.displayName = 'ExpandAltOutlined';\nexport default /*#__PURE__*/React.forwardRef(ExpandAltOutlined);","// This icon file is generated automatically.\nvar ShrinkOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M881.7 187.4l-45.1-45.1a8.03 8.03 0 00-11.3 0L667.8 299.9l-54.7-54.7a7.94 7.94 0 00-13.5 4.7L576.1 439c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 157.6-157.6c3-3 3-8.1-.1-11.2zM439 576.1l-189.2 23.5c-6.6.8-9.3 8.9-4.7 13.5l54.7 54.7-157.5 157.5a8.03 8.03 0 000 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l157.6-157.6 54.7 54.7a7.94 7.94 0 0013.5-4.7L447.9 585a7.9 7.9 0 00-8.9-8.9z\" } }] }, \"name\": \"shrink\", \"theme\": \"outlined\" };\nexport default ShrinkOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ShrinkOutlinedSvg from \"@ant-design/icons-svg/es/asn/ShrinkOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ShrinkOutlined = function ShrinkOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ShrinkOutlinedSvg\n }));\n};\nShrinkOutlined.displayName = 'ShrinkOutlined';\nexport default /*#__PURE__*/React.forwardRef(ShrinkOutlined);","import React, { useState } from \"react\";\r\nimport { PageHeader, Button, Space } from \"antd\";\r\nimport {\r\n\tLockOutlined,\r\n\tSaveOutlined,\r\n\tUnlockOutlined,\r\n\tExpandAltOutlined,\r\n\tShrinkOutlined,\r\n} from \"@ant-design/icons\";\r\nimport StatusTag from \"components/StatusTag\";\r\nimport { selectForm } from \"reducers\";\r\nimport dayjs from \"dayjs\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { lockToggled, selectQnaIsLocked } from \"reducers/formSlice\";\r\nimport Comment from \"../approval/Comment\";\r\nimport { selectIsAppAdmin, selectUser } from \"reducers/securitySlice\";\r\nimport { postWorkflowHistoryThunk } from \"reducers/workflowHistorySlice\";\r\n\r\nconst FormHeader = ({\r\n\tsave,\r\n\tsetOverrideApprovalMode,\r\n\tisApprovalMode,\r\n\tisDraft,\r\n}) => {\r\n\tconst [showComment, setShowComment] = useState(false);\r\n\tconst dispatch = useDispatch();\r\n\tconst form = useSelector(selectForm);\r\n\tconst isLocked = useSelector(selectQnaIsLocked);\r\n\tconst { createByUser, status, createOn } = form;\r\n\tconst { id, userId, fullName } = useSelector(selectUser);\r\n\tconst isAppAdmin = useSelector(selectIsAppAdmin);\r\n\tconst canLock = isAppAdmin || userId === createByUser?.userId;\r\n\r\n\treturn (\r\n\t\t<PageHeader\r\n\t\t\ttitle={\r\n\t\t\t\t<span style={{ color: \"white\" }}>{`${\r\n\t\t\t\t\tcreateOn ? \"\" : \"New \"\r\n\t\t\t\t}Capital Expenditure Request Form`}</span>\r\n\t\t\t}\r\n\t\t\tsubTitle={\r\n\t\t\t\t<span style={{ color: \"white\" }}>\r\n\t\t\t\t\t{createOn &&\r\n\t\t\t\t\t\t`Raised by ${\r\n\t\t\t\t\t\t\tcreateByUser?.firstName +\r\n\t\t\t\t\t\t\t\" \" +\r\n\t\t\t\t\t\t\tcreateByUser?.lastName\r\n\t\t\t\t\t\t} on ${dayjs(createOn).format(\"DD/MM/YYYY h:mm a\")}`}\r\n\t\t\t\t</span>\r\n\t\t\t}\r\n\t\t\tclassName=\"site-page-header\"\r\n\t\t\textra={[\r\n\t\t\t\t<Button\r\n\t\t\t\t\thidden={!isApprovalMode}\r\n\t\t\t\t\tonClick={() => setOverrideApprovalMode(true)}\r\n\t\t\t\t\tkey=\"1\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<ExpandAltOutlined />\r\n\t\t\t\t\tShow Full Form Detail\r\n\t\t\t\t</Button>,\r\n\t\t\t\t<Button\r\n\t\t\t\t\thidden={isApprovalMode || isDraft}\r\n\t\t\t\t\tonClick={() => setOverrideApprovalMode(false)}\r\n\t\t\t\t\tkey=\"1.5\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<ShrinkOutlined />\r\n\t\t\t\t\tHide Full Form Detail\r\n\t\t\t\t</Button>,\r\n\t\t\t\t<Button\r\n\t\t\t\t\thidden={isLocked || status === \"Draft\" || !canLock}\r\n\t\t\t\t\tkey=\"2\"\r\n\t\t\t\t\tonClick={() => dispatch(lockToggled())}\r\n\t\t\t\t>\r\n\t\t\t\t\t<LockOutlined />\r\n\t\t\t\t\tLock from Editing\r\n\t\t\t\t</Button>,\r\n\t\t\t\t<Button\r\n\t\t\t\t\tkey=\"4\"\r\n\t\t\t\t\thidden={!isLocked || status === \"Draft\" || !canLock}\r\n\t\t\t\t\tonClick={() => setShowComment(true)}\r\n\t\t\t\t>\r\n\t\t\t\t\t<UnlockOutlined /> Unlock For Editing\r\n\t\t\t\t</Button>,\r\n\t\t\t\t<Button\r\n\t\t\t\t\tdisabled={isLocked}\r\n\t\t\t\t\ttype=\"primary\"\r\n\t\t\t\t\tkey=\"3\"\r\n\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\tif (!isLocked && status !== \"Draft\") {\r\n\t\t\t\t\t\t\tdispatch(lockToggled());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsave({ isSilentSave: false });\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<SaveOutlined />{\" \"}\r\n\t\t\t\t\t{!isLocked && status !== \"Draft\" ? \"Save and Lock\" : \"Save\"}\r\n\t\t\t\t</Button>,\r\n\t\t\t]}\r\n\t\t>\r\n\t\t\t<Comment\r\n\t\t\t\topen={showComment}\r\n\t\t\t\ttype={\"Unlock\"}\r\n\t\t\t\tonOk={({ comments }) => {\r\n\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\tpostWorkflowHistoryThunk({\r\n\t\t\t\t\t\t\taction: \"Unlock\",\r\n\t\t\t\t\t\t\tdescription:\r\n\t\t\t\t\t\t\t\t\"Form unlocked for editing by \" + fullName,\r\n\t\t\t\t\t\t\tcategory: \"\",\r\n\t\t\t\t\t\t\tcomment: comments,\r\n\t\t\t\t\t\t\tuserId: id,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t);\r\n\t\t\t\t\tdispatch(lockToggled());\r\n\t\t\t\t\t//switch automatically to editable form\r\n\t\t\t\t\tsetOverrideApprovalMode(true);\r\n\t\t\t\t\tsetShowComment(false);\r\n\t\t\t\t}}\r\n\t\t\t\tinitialValues={{\r\n\t\t\t\t\tuserId: userId,\r\n\t\t\t\t}}\r\n\t\t\t\tonCancel={() => setShowComment(false)}\r\n\t\t\t/>\r\n\t\t\t<Space>\r\n\t\t\t\tForm Status\r\n\t\t\t\t<StatusTag status={status || \"Draft\"} />\r\n\t\t\t\t{isLocked && <StatusTag status=\"Locked\" />}\r\n\t\t\t</Space>\r\n\t\t</PageHeader>\r\n\t);\r\n};\r\n\r\nexport default FormHeader;\r\n","// This icon file is generated automatically.\nvar CopyOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\" } }] }, \"name\": \"copy\", \"theme\": \"outlined\" };\nexport default CopyOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CopyOutlinedSvg from \"@ant-design/icons-svg/es/asn/CopyOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CopyOutlined = function CopyOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CopyOutlinedSvg\n }));\n};\nCopyOutlined.displayName = 'CopyOutlined';\nexport default /*#__PURE__*/React.forwardRef(CopyOutlined);","// This icon file is generated automatically.\nvar EnterOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"enter\", \"theme\": \"outlined\" };\nexport default EnterOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EnterOutlinedSvg from \"@ant-design/icons-svg/es/asn/EnterOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EnterOutlined = function EnterOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EnterOutlinedSvg\n }));\n};\nEnterOutlined.displayName = 'EnterOutlined';\nexport default /*#__PURE__*/React.forwardRef(EnterOutlined);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport EnterOutlined from \"@ant-design/icons/es/icons/EnterOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport TextArea from '../input/TextArea';\nimport { cloneElement } from '../_util/reactNode';\nvar Editable = function Editable(_ref) {\n var prefixCls = _ref.prefixCls,\n ariaLabel = _ref['aria-label'],\n className = _ref.className,\n style = _ref.style,\n direction = _ref.direction,\n maxLength = _ref.maxLength,\n _ref$autoSize = _ref.autoSize,\n autoSize = _ref$autoSize === void 0 ? true : _ref$autoSize,\n value = _ref.value,\n onSave = _ref.onSave,\n onCancel = _ref.onCancel,\n onEnd = _ref.onEnd,\n component = _ref.component,\n _ref$enterIcon = _ref.enterIcon,\n enterIcon = _ref$enterIcon === void 0 ? /*#__PURE__*/React.createElement(EnterOutlined, null) : _ref$enterIcon;\n var ref = React.useRef(null);\n var inComposition = React.useRef(false);\n var lastKeyCode = React.useRef();\n var _React$useState = React.useState(value),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n current = _React$useState2[0],\n setCurrent = _React$useState2[1];\n React.useEffect(function () {\n setCurrent(value);\n }, [value]);\n React.useEffect(function () {\n if (ref.current && ref.current.resizableTextArea) {\n var textArea = ref.current.resizableTextArea.textArea;\n textArea.focus();\n var length = textArea.value.length;\n textArea.setSelectionRange(length, length);\n }\n }, []);\n var onChange = function onChange(_ref2) {\n var target = _ref2.target;\n setCurrent(target.value.replace(/[\\n\\r]/g, ''));\n };\n var onCompositionStart = function onCompositionStart() {\n inComposition.current = true;\n };\n var onCompositionEnd = function onCompositionEnd() {\n inComposition.current = false;\n };\n var onKeyDown = function onKeyDown(_ref3) {\n var keyCode = _ref3.keyCode;\n // We don't record keyCode when IME is using\n if (inComposition.current) return;\n lastKeyCode.current = keyCode;\n };\n var confirmChange = function confirmChange() {\n onSave(current.trim());\n };\n var onKeyUp = function onKeyUp(_ref4) {\n var keyCode = _ref4.keyCode,\n ctrlKey = _ref4.ctrlKey,\n altKey = _ref4.altKey,\n metaKey = _ref4.metaKey,\n shiftKey = _ref4.shiftKey;\n // Check if it's a real key\n if (lastKeyCode.current === keyCode && !inComposition.current && !ctrlKey && !altKey && !metaKey && !shiftKey) {\n if (keyCode === KeyCode.ENTER) {\n confirmChange();\n onEnd === null || onEnd === void 0 ? void 0 : onEnd();\n } else if (keyCode === KeyCode.ESC) {\n onCancel();\n }\n }\n };\n var onBlur = function onBlur() {\n confirmChange();\n };\n var textClassName = component ? \"\".concat(prefixCls, \"-\").concat(component) : '';\n var textAreaClassName = classNames(prefixCls, \"\".concat(prefixCls, \"-edit-content\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className, textClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: textAreaClassName,\n style: style\n }, /*#__PURE__*/React.createElement(TextArea, {\n ref: ref,\n maxLength: maxLength,\n value: current,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onCompositionStart: onCompositionStart,\n onCompositionEnd: onCompositionEnd,\n onBlur: onBlur,\n \"aria-label\": ariaLabel,\n rows: 1,\n autoSize: autoSize\n }), enterIcon !== null ? cloneElement(enterIcon, {\n className: \"\".concat(prefixCls, \"-edit-content-confirm\")\n }) : null);\n};\nexport default Editable;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nexport default function useMergedConfig(propConfig, templateConfig) {\n return React.useMemo(function () {\n var support = !!propConfig;\n return [support, _extends(_extends({}, templateConfig), support && _typeof(propConfig) === 'object' ? propConfig : null)];\n }, [propConfig]);\n}","import * as React from 'react';\n/** Similar with `useEffect` but only trigger after mounted */\nvar useUpdatedEffect = function useUpdatedEffect(callback, conditions) {\n var mountRef = React.useRef(false);\n React.useEffect(function () {\n if (mountRef.current) {\n callback();\n } else {\n mountRef.current = true;\n }\n }, conditions);\n};\nexport default useUpdatedEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nvar Typography = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n _a$component = _a.component,\n Component = _a$component === void 0 ? 'article' : _a$component,\n className = _a.className,\n setContentRef = _a.setContentRef,\n children = _a.children,\n typographyDirection = _a.direction,\n restProps = __rest(_a, [\"prefixCls\", \"component\", \"className\", \"setContentRef\", \"children\", \"direction\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n contextDirection = _React$useContext.direction;\n var direction = typographyDirection !== null && typographyDirection !== void 0 ? typographyDirection : contextDirection;\n var mergedRef = ref;\n if (setContentRef) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Typography', '`setContentRef` is deprecated. Please use `ref` instead.') : void 0;\n mergedRef = composeRef(ref, setContentRef);\n }\n var prefixCls = getPrefixCls('typography', customizePrefixCls);\n var componentClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return (\n /*#__PURE__*/\n // @ts-expect-error: Expression produces a union type that is too complex to represent.\n React.createElement(Component, _extends({\n className: componentClassName,\n ref: mergedRef\n }, restProps), children)\n );\n});\nif (process.env.NODE_ENV !== 'production') {\n Typography.displayName = 'Typography';\n}\n// es default export should use const instead of let\nexport default Typography;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useIsomorphicLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nfunction cuttable(node) {\n var type = _typeof(node);\n return type === 'string' || type === 'number';\n}\nfunction getNodesLen(nodeList) {\n var totalLen = 0;\n nodeList.forEach(function (node) {\n if (cuttable(node)) {\n totalLen += String(node).length;\n } else {\n totalLen += 1;\n }\n });\n return totalLen;\n}\nfunction sliceNodes(nodeList, len) {\n var currLen = 0;\n var currentNodeList = [];\n for (var i = 0; i < nodeList.length; i += 1) {\n // Match to return\n if (currLen === len) {\n return currentNodeList;\n }\n var node = nodeList[i];\n var canCut = cuttable(node);\n var nodeLen = canCut ? String(node).length : 1;\n var nextLen = currLen + nodeLen;\n // Exceed but current not which means we need cut this\n // This will not happen on validate ReactElement\n if (nextLen > len) {\n var restLen = len - currLen;\n currentNodeList.push(String(node).slice(0, restLen));\n return currentNodeList;\n }\n currentNodeList.push(node);\n currLen = nextLen;\n }\n return nodeList;\n}\nvar NONE = 0;\nvar PREPARE = 1;\nvar WALKING = 2;\nvar DONE_WITH_ELLIPSIS = 3;\nvar DONE_WITHOUT_ELLIPSIS = 4;\nvar Ellipsis = function Ellipsis(_ref) {\n var enabledMeasure = _ref.enabledMeasure,\n children = _ref.children,\n text = _ref.text,\n width = _ref.width,\n fontSize = _ref.fontSize,\n rows = _ref.rows,\n onEllipsis = _ref.onEllipsis;\n var _React$useState = React.useState([0, 0, 0]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n _React$useState2$ = _slicedToArray(_React$useState2[0], 3),\n startLen = _React$useState2$[0],\n midLen = _React$useState2$[1],\n endLen = _React$useState2$[2],\n setCutLength = _React$useState2[1];\n var _React$useState3 = React.useState(NONE),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n walkingState = _React$useState4[0],\n setWalkingState = _React$useState4[1];\n var _React$useState5 = React.useState(0),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n singleRowHeight = _React$useState6[0],\n setSingleRowHeight = _React$useState6[1];\n var singleRowRef = React.useRef(null);\n var midRowRef = React.useRef(null);\n var nodeList = React.useMemo(function () {\n return toArray(text);\n }, [text]);\n var totalLen = React.useMemo(function () {\n return getNodesLen(nodeList);\n }, [nodeList]);\n var mergedChildren = React.useMemo(function () {\n if (!enabledMeasure || walkingState !== DONE_WITH_ELLIPSIS) {\n return children(nodeList, false);\n }\n return children(sliceNodes(nodeList, midLen), midLen < totalLen);\n }, [enabledMeasure, walkingState, children, nodeList, midLen, totalLen]);\n // ======================== Walk ========================\n useIsomorphicLayoutEffect(function () {\n if (enabledMeasure && width && fontSize && totalLen) {\n setWalkingState(PREPARE);\n setCutLength([0, Math.ceil(totalLen / 2), totalLen]);\n }\n }, [enabledMeasure, width, fontSize, text, totalLen, rows]);\n useIsomorphicLayoutEffect(function () {\n var _a;\n if (walkingState === PREPARE) {\n setSingleRowHeight(((_a = singleRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0);\n }\n }, [walkingState]);\n useIsomorphicLayoutEffect(function () {\n var _a, _b;\n if (singleRowHeight) {\n if (walkingState === PREPARE) {\n // Ignore if position is enough\n var midHeight = ((_a = midRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0;\n var maxHeight = rows * singleRowHeight;\n if (midHeight <= maxHeight) {\n setWalkingState(DONE_WITHOUT_ELLIPSIS);\n onEllipsis(false);\n } else {\n setWalkingState(WALKING);\n }\n } else if (walkingState === WALKING) {\n if (startLen !== endLen) {\n var _midHeight = ((_b = midRowRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 0;\n var _maxHeight = rows * singleRowHeight;\n var nextStartLen = startLen;\n var nextEndLen = endLen;\n // We reach the last round\n if (startLen === endLen - 1) {\n nextEndLen = startLen;\n } else if (_midHeight <= _maxHeight) {\n nextStartLen = midLen;\n } else {\n nextEndLen = midLen;\n }\n var nextMidLen = Math.ceil((nextStartLen + nextEndLen) / 2);\n setCutLength([nextStartLen, nextMidLen, nextEndLen]);\n } else {\n setWalkingState(DONE_WITH_ELLIPSIS);\n onEllipsis(true);\n }\n }\n }\n }, [walkingState, startLen, endLen, rows, singleRowHeight]);\n // ======================= Render =======================\n var measureStyle = {\n width: width,\n whiteSpace: 'normal',\n margin: 0,\n padding: 0\n };\n var renderMeasure = function renderMeasure(content, ref, style) {\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n ref: ref,\n style: _extends({\n position: 'fixed',\n display: 'block',\n left: 0,\n top: 0,\n zIndex: -9999,\n visibility: 'hidden',\n pointerEvents: 'none',\n fontSize: Math.floor(fontSize / 2) * 2\n }, style)\n }, content);\n };\n var renderMeasureSlice = function renderMeasureSlice(len, ref) {\n var sliceNodeList = sliceNodes(nodeList, len);\n return renderMeasure(children(sliceNodeList, true), ref, measureStyle);\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, mergedChildren, enabledMeasure && walkingState !== DONE_WITH_ELLIPSIS && walkingState !== DONE_WITHOUT_ELLIPSIS && ( /*#__PURE__*/React.createElement(React.Fragment, null, renderMeasure('lg', singleRowRef, {\n wordBreak: 'keep-all',\n whiteSpace: 'nowrap'\n }), walkingState === PREPARE ? renderMeasure(children(nodeList, false), midRowRef, measureStyle) : renderMeasureSlice(midLen, midRowRef))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Ellipsis.displayName = 'Ellipsis';\n}\nexport default Ellipsis;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Tooltip from '../../tooltip';\nvar EllipsisTooltip = function EllipsisTooltip(_ref) {\n var enabledEllipsis = _ref.enabledEllipsis,\n isEllipsis = _ref.isEllipsis,\n children = _ref.children,\n tooltipProps = _ref.tooltipProps;\n if (!(tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.title) || !enabledEllipsis) {\n return children;\n }\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n open: isEllipsis ? undefined : false\n }, tooltipProps), children);\n};\nif (process.env.NODE_ENV !== 'production') {\n EllipsisTooltip.displayName = 'EllipsisTooltip';\n}\nexport default EllipsisTooltip;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CopyOutlined from \"@ant-design/icons/es/icons/CopyOutlined\";\nimport EditOutlined from \"@ant-design/icons/es/icons/EditOutlined\";\nimport classNames from 'classnames';\nimport copy from 'copy-to-clipboard';\nimport ResizeObserver from 'rc-resize-observer';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useIsomorphicLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport { useLocaleReceiver } from '../../locale-provider/LocaleReceiver';\nimport TransButton from '../../_util/transButton';\nimport { isStyleSupport } from '../../_util/styleChecker';\nimport Tooltip from '../../tooltip';\nimport Editable from '../Editable';\nimport useMergedConfig from '../hooks/useMergedConfig';\nimport useUpdatedEffect from '../hooks/useUpdatedEffect';\nimport Typography from '../Typography';\nimport Ellipsis from './Ellipsis';\nimport EllipsisTooltip from './EllipsisTooltip';\nfunction wrapperDecorations(_ref, content) {\n var mark = _ref.mark,\n code = _ref.code,\n underline = _ref.underline,\n del = _ref[\"delete\"],\n strong = _ref.strong,\n keyboard = _ref.keyboard,\n italic = _ref.italic;\n var currentContent = content;\n function wrap(needed, tag) {\n if (!needed) return;\n currentContent = /*#__PURE__*/React.createElement(tag, {}, currentContent);\n }\n wrap(strong, 'strong');\n wrap(underline, 'u');\n wrap(del, 'del');\n wrap(code, 'code');\n wrap(mark, 'mark');\n wrap(keyboard, 'kbd');\n wrap(italic, 'i');\n return currentContent;\n}\nfunction getNode(dom, defaultNode, needDom) {\n if (dom === true || dom === undefined) {\n return defaultNode;\n }\n return dom || needDom && defaultNode;\n}\nfunction toList(val) {\n if (val === false) {\n return [false, false];\n }\n return Array.isArray(val) ? val : [val];\n}\nvar ELLIPSIS_STR = '...';\nvar Base = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _a, _b, _c;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n type = props.type,\n disabled = props.disabled,\n children = props.children,\n ellipsis = props.ellipsis,\n editable = props.editable,\n copyable = props.copyable,\n component = props.component,\n title = props.title,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"type\", \"disabled\", \"children\", \"ellipsis\", \"editable\", \"copyable\", \"component\", \"title\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var textLocale = useLocaleReceiver('Text')[0]; // Force TS get this\n var typographyRef = React.useRef(null);\n var editIconRef = React.useRef(null);\n // ============================ MISC ============================\n var prefixCls = getPrefixCls('typography', customizePrefixCls);\n var textProps = omit(restProps, ['mark', 'code', 'delete', 'underline', 'strong', 'keyboard', 'italic']);\n // ========================== Editable ==========================\n var _useMergedConfig = useMergedConfig(editable),\n _useMergedConfig2 = _slicedToArray(_useMergedConfig, 2),\n enableEdit = _useMergedConfig2[0],\n editConfig = _useMergedConfig2[1];\n var _useMergedState = useMergedState(false, {\n value: editConfig.editing\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n editing = _useMergedState2[0],\n setEditing = _useMergedState2[1];\n var _editConfig$triggerTy = editConfig.triggerType,\n triggerType = _editConfig$triggerTy === void 0 ? ['icon'] : _editConfig$triggerTy;\n var triggerEdit = function triggerEdit(edit) {\n var _a;\n if (edit) {\n (_a = editConfig.onStart) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n }\n setEditing(edit);\n };\n // Focus edit icon when back\n useUpdatedEffect(function () {\n var _a;\n if (!editing) {\n (_a = editIconRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }, [editing]);\n var onEditClick = function onEditClick(e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n triggerEdit(true);\n };\n var onEditChange = function onEditChange(value) {\n var _a;\n (_a = editConfig.onChange) === null || _a === void 0 ? void 0 : _a.call(editConfig, value);\n triggerEdit(false);\n };\n var onEditCancel = function onEditCancel() {\n var _a;\n (_a = editConfig.onCancel) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n triggerEdit(false);\n };\n // ========================== Copyable ==========================\n var _useMergedConfig3 = useMergedConfig(copyable),\n _useMergedConfig4 = _slicedToArray(_useMergedConfig3, 2),\n enableCopy = _useMergedConfig4[0],\n copyConfig = _useMergedConfig4[1];\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n copied = _React$useState2[0],\n setCopied = _React$useState2[1];\n var copyIdRef = React.useRef();\n var copyOptions = {};\n if (copyConfig.format) {\n copyOptions.format = copyConfig.format;\n }\n var cleanCopyId = function cleanCopyId() {\n window.clearTimeout(copyIdRef.current);\n };\n var onCopyClick = function onCopyClick(e) {\n var _a;\n e === null || e === void 0 ? void 0 : e.preventDefault();\n e === null || e === void 0 ? void 0 : e.stopPropagation();\n copy(copyConfig.text || String(children) || '', copyOptions);\n setCopied(true);\n // Trigger tips update\n cleanCopyId();\n copyIdRef.current = window.setTimeout(function () {\n setCopied(false);\n }, 3000);\n (_a = copyConfig.onCopy) === null || _a === void 0 ? void 0 : _a.call(copyConfig, e);\n };\n React.useEffect(function () {\n return cleanCopyId;\n }, []);\n // ========================== Ellipsis ==========================\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n isLineClampSupport = _React$useState4[0],\n setIsLineClampSupport = _React$useState4[1];\n var _React$useState5 = React.useState(false),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n isTextOverflowSupport = _React$useState6[0],\n setIsTextOverflowSupport = _React$useState6[1];\n var _React$useState7 = React.useState(false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n expanded = _React$useState8[0],\n setExpanded = _React$useState8[1];\n var _React$useState9 = React.useState(false),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n isJsEllipsis = _React$useState10[0],\n setIsJsEllipsis = _React$useState10[1];\n var _React$useState11 = React.useState(false),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n isNativeEllipsis = _React$useState12[0],\n setIsNativeEllipsis = _React$useState12[1];\n var _React$useState13 = React.useState(true),\n _React$useState14 = _slicedToArray(_React$useState13, 2),\n isNativeVisible = _React$useState14[0],\n setIsNativeVisible = _React$useState14[1];\n var _useMergedConfig5 = useMergedConfig(ellipsis, {\n expandable: false\n }),\n _useMergedConfig6 = _slicedToArray(_useMergedConfig5, 2),\n enableEllipsis = _useMergedConfig6[0],\n ellipsisConfig = _useMergedConfig6[1];\n var mergedEnableEllipsis = enableEllipsis && !expanded;\n // Shared prop to reduce bundle size\n var _ellipsisConfig$rows = ellipsisConfig.rows,\n rows = _ellipsisConfig$rows === void 0 ? 1 : _ellipsisConfig$rows;\n var needMeasureEllipsis = React.useMemo(function () {\n return (\n // Disable ellipsis\n !mergedEnableEllipsis ||\n // Provide suffix\n ellipsisConfig.suffix !== undefined || ellipsisConfig.onEllipsis ||\n // Can't use css ellipsis since we need to provide the place for button\n ellipsisConfig.expandable || enableEdit || enableCopy\n );\n }, [mergedEnableEllipsis, ellipsisConfig, enableEdit, enableCopy]);\n useIsomorphicLayoutEffect(function () {\n if (enableEllipsis && !needMeasureEllipsis) {\n setIsLineClampSupport(isStyleSupport('webkitLineClamp'));\n setIsTextOverflowSupport(isStyleSupport('textOverflow'));\n }\n }, [needMeasureEllipsis, enableEllipsis]);\n var cssEllipsis = React.useMemo(function () {\n if (needMeasureEllipsis) {\n return false;\n }\n if (rows === 1) {\n return isTextOverflowSupport;\n }\n return isLineClampSupport;\n }, [needMeasureEllipsis, isTextOverflowSupport, isLineClampSupport]);\n var isMergedEllipsis = mergedEnableEllipsis && (cssEllipsis ? isNativeEllipsis : isJsEllipsis);\n var cssTextOverflow = mergedEnableEllipsis && rows === 1 && cssEllipsis;\n var cssLineClamp = mergedEnableEllipsis && rows > 1 && cssEllipsis;\n // >>>>> Expand\n var onExpandClick = function onExpandClick(e) {\n var _a;\n setExpanded(true);\n (_a = ellipsisConfig.onExpand) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, e);\n };\n var _React$useState15 = React.useState(0),\n _React$useState16 = _slicedToArray(_React$useState15, 2),\n ellipsisWidth = _React$useState16[0],\n setEllipsisWidth = _React$useState16[1];\n var _React$useState17 = React.useState(0),\n _React$useState18 = _slicedToArray(_React$useState17, 2),\n ellipsisFontSize = _React$useState18[0],\n setEllipsisFontSize = _React$useState18[1];\n var onResize = function onResize(_ref2, element) {\n var offsetWidth = _ref2.offsetWidth;\n var _a;\n setEllipsisWidth(offsetWidth);\n setEllipsisFontSize(parseInt((_a = window.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(window, element).fontSize, 10) || 0);\n };\n // >>>>> JS Ellipsis\n var onJsEllipsis = function onJsEllipsis(jsEllipsis) {\n var _a;\n setIsJsEllipsis(jsEllipsis);\n // Trigger if changed\n if (isJsEllipsis !== jsEllipsis) {\n (_a = ellipsisConfig.onEllipsis) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, jsEllipsis);\n }\n };\n // >>>>> Native ellipsis\n React.useEffect(function () {\n var textEle = typographyRef.current;\n if (enableEllipsis && cssEllipsis && textEle) {\n var currentEllipsis = cssLineClamp ? textEle.offsetHeight < textEle.scrollHeight : textEle.offsetWidth < textEle.scrollWidth;\n if (isNativeEllipsis !== currentEllipsis) {\n setIsNativeEllipsis(currentEllipsis);\n }\n }\n }, [enableEllipsis, cssEllipsis, children, cssLineClamp, isNativeVisible]);\n // https://github.com/ant-design/ant-design/issues/36786\n // Use IntersectionObserver to check if element is invisible\n React.useEffect(function () {\n var textEle = typographyRef.current;\n if (typeof IntersectionObserver === 'undefined' || !textEle || !cssEllipsis || !mergedEnableEllipsis) {\n return;\n }\n /* eslint-disable-next-line compat/compat */\n var observer = new IntersectionObserver(function () {\n setIsNativeVisible(!!textEle.offsetParent);\n });\n observer.observe(textEle);\n return function () {\n observer.disconnect();\n };\n }, [cssEllipsis, mergedEnableEllipsis]);\n // ========================== Tooltip ===========================\n var tooltipProps = {};\n if (ellipsisConfig.tooltip === true) {\n tooltipProps = {\n title: (_a = editConfig.text) !== null && _a !== void 0 ? _a : children\n };\n } else if ( /*#__PURE__*/React.isValidElement(ellipsisConfig.tooltip)) {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n } else if (_typeof(ellipsisConfig.tooltip) === 'object') {\n tooltipProps = _extends({\n title: (_b = editConfig.text) !== null && _b !== void 0 ? _b : children\n }, ellipsisConfig.tooltip);\n } else {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n }\n var topAriaLabel = React.useMemo(function () {\n var isValid = function isValid(val) {\n return ['string', 'number'].includes(_typeof(val));\n };\n if (!enableEllipsis || cssEllipsis) {\n return undefined;\n }\n if (isValid(editConfig.text)) {\n return editConfig.text;\n }\n if (isValid(children)) {\n return children;\n }\n if (isValid(title)) {\n return title;\n }\n if (isValid(tooltipProps.title)) {\n return tooltipProps.title;\n }\n return undefined;\n }, [enableEllipsis, cssEllipsis, title, tooltipProps.title, isMergedEllipsis]);\n // =========================== Render ===========================\n // >>>>>>>>>>> Editing input\n if (editing) {\n return /*#__PURE__*/React.createElement(Editable, {\n value: (_c = editConfig.text) !== null && _c !== void 0 ? _c : typeof children === 'string' ? children : '',\n onSave: onEditChange,\n onCancel: onEditCancel,\n onEnd: editConfig.onEnd,\n prefixCls: prefixCls,\n className: className,\n style: style,\n direction: direction,\n component: component,\n maxLength: editConfig.maxLength,\n autoSize: editConfig.autoSize,\n enterIcon: editConfig.enterIcon\n });\n }\n // >>>>>>>>>>> Typography\n // Expand\n var renderExpand = function renderExpand() {\n var expandable = ellipsisConfig.expandable,\n symbol = ellipsisConfig.symbol;\n if (!expandable) return null;\n var expandContent;\n if (symbol) {\n expandContent = symbol;\n } else {\n expandContent = textLocale.expand;\n }\n return /*#__PURE__*/React.createElement(\"a\", {\n key: \"expand\",\n className: \"\".concat(prefixCls, \"-expand\"),\n onClick: onExpandClick,\n \"aria-label\": textLocale.expand\n }, expandContent);\n };\n // Edit\n var renderEdit = function renderEdit() {\n if (!enableEdit) return;\n var icon = editConfig.icon,\n tooltip = editConfig.tooltip;\n var editTitle = toArray(tooltip)[0] || textLocale.edit;\n var ariaLabel = typeof editTitle === 'string' ? editTitle : '';\n return triggerType.includes('icon') ? ( /*#__PURE__*/React.createElement(Tooltip, {\n key: \"edit\",\n title: tooltip === false ? '' : editTitle\n }, /*#__PURE__*/React.createElement(TransButton, {\n ref: editIconRef,\n className: \"\".concat(prefixCls, \"-edit\"),\n onClick: onEditClick,\n \"aria-label\": ariaLabel\n }, icon || /*#__PURE__*/React.createElement(EditOutlined, {\n role: \"button\"\n })))) : null;\n };\n // Copy\n var renderCopy = function renderCopy() {\n if (!enableCopy) return;\n var tooltips = copyConfig.tooltips,\n icon = copyConfig.icon;\n var tooltipNodes = toList(tooltips);\n var iconNodes = toList(icon);\n var copyTitle = copied ? getNode(tooltipNodes[1], textLocale.copied) : getNode(tooltipNodes[0], textLocale.copy);\n var systemStr = copied ? textLocale.copied : textLocale.copy;\n var ariaLabel = typeof copyTitle === 'string' ? copyTitle : systemStr;\n return /*#__PURE__*/React.createElement(Tooltip, {\n key: \"copy\",\n title: copyTitle\n }, /*#__PURE__*/React.createElement(TransButton, {\n className: classNames(\"\".concat(prefixCls, \"-copy\"), copied && \"\".concat(prefixCls, \"-copy-success\")),\n onClick: onCopyClick,\n \"aria-label\": ariaLabel\n }, copied ? getNode(iconNodes[1], /*#__PURE__*/React.createElement(CheckOutlined, null), true) : getNode(iconNodes[0], /*#__PURE__*/React.createElement(CopyOutlined, null), true)));\n };\n var renderOperations = function renderOperations(renderExpanded) {\n return [renderExpanded && renderExpand(), renderEdit(), renderCopy()];\n };\n var renderEllipsis = function renderEllipsis(needEllipsis) {\n return [needEllipsis && ( /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n key: \"ellipsis\"\n }, ELLIPSIS_STR)), ellipsisConfig.suffix, renderOperations(needEllipsis)];\n };\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onResize,\n disabled: !mergedEnableEllipsis || cssEllipsis\n }, function (resizeRef) {\n return /*#__PURE__*/React.createElement(EllipsisTooltip, {\n tooltipProps: tooltipProps,\n enabledEllipsis: mergedEnableEllipsis,\n isEllipsis: isMergedEllipsis\n }, /*#__PURE__*/React.createElement(Typography, _extends({\n className: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(type), type), \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-ellipsis\"), enableEllipsis), \"\".concat(prefixCls, \"-single-line\"), mergedEnableEllipsis && rows === 1), \"\".concat(prefixCls, \"-ellipsis-single-line\"), cssTextOverflow), \"\".concat(prefixCls, \"-ellipsis-multiple-line\"), cssLineClamp), className),\n prefixCls: customizePrefixCls,\n style: _extends(_extends({}, style), {\n WebkitLineClamp: cssLineClamp ? rows : undefined\n }),\n component: component,\n ref: composeRef(resizeRef, typographyRef, ref),\n direction: direction,\n onClick: triggerType.includes('text') ? onEditClick : undefined,\n \"aria-label\": topAriaLabel === null || topAriaLabel === void 0 ? void 0 : topAriaLabel.toString(),\n title: title\n }, textProps), /*#__PURE__*/React.createElement(Ellipsis, {\n enabledMeasure: mergedEnableEllipsis && !cssEllipsis,\n text: children,\n rows: rows,\n width: ellipsisWidth,\n fontSize: ellipsisFontSize,\n onEllipsis: onJsEllipsis\n }, function (node, needEllipsis) {\n var renderNode = node;\n if (node.length && needEllipsis && topAriaLabel) {\n renderNode = /*#__PURE__*/React.createElement(\"span\", {\n key: \"show-content\",\n \"aria-hidden\": true\n }, renderNode);\n }\n var wrappedContext = wrapperDecorations(props, /*#__PURE__*/React.createElement(React.Fragment, null, renderNode, renderEllipsis(needEllipsis)));\n return wrappedContext;\n })));\n });\n});\nexport default Base;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport Base from './Base';\nvar Link = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var ellipsis = _a.ellipsis,\n rel = _a.rel,\n restProps = __rest(_a, [\"ellipsis\", \"rel\"]);\n process.env.NODE_ENV !== \"production\" ? warning(_typeof(ellipsis) !== 'object', 'Typography.Link', '`ellipsis` only supports boolean value.') : void 0;\n var mergedProps = _extends(_extends({}, restProps), {\n rel: rel === undefined && restProps.target === '_blank' ? 'noopener noreferrer' : rel\n });\n // @ts-expect-error: https://github.com/ant-design/ant-design/issues/26622\n delete mergedProps.navigate;\n return /*#__PURE__*/React.createElement(Base, _extends({}, mergedProps, {\n ref: ref,\n ellipsis: !!ellipsis,\n component: \"a\"\n }));\n});\nexport default Link;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Base from './Base';\nvar Paragraph = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Base, _extends({\n ref: ref\n }, props, {\n component: \"div\"\n }));\n});\nexport default Paragraph;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport Base from './Base';\nvar Text = function Text(_a, ref) {\n var ellipsis = _a.ellipsis,\n restProps = __rest(_a, [\"ellipsis\"]);\n var mergedEllipsis = React.useMemo(function () {\n if (ellipsis && _typeof(ellipsis) === 'object') {\n return omit(ellipsis, ['expandable', 'rows']);\n }\n return ellipsis;\n }, [ellipsis]);\n process.env.NODE_ENV !== \"production\" ? warning(_typeof(ellipsis) !== 'object' || !ellipsis || !('expandable' in ellipsis) && !('rows' in ellipsis), 'Typography.Text', '`ellipsis` do not support `expandable` or `rows` props.') : void 0;\n return /*#__PURE__*/React.createElement(Base, _extends({\n ref: ref\n }, restProps, {\n ellipsis: mergedEllipsis,\n component: \"span\"\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(Text);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { tupleNum } from '../_util/type';\nimport warning from '../_util/warning';\nimport Base from './Base';\nvar TITLE_ELE_LIST = tupleNum(1, 2, 3, 4, 5);\nvar Title = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$level = props.level,\n level = _props$level === void 0 ? 1 : _props$level,\n restProps = __rest(props, [\"level\"]);\n var component;\n if (TITLE_ELE_LIST.includes(level)) {\n component = \"h\".concat(level);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Typography.Title', 'Title only accept `1 | 2 | 3 | 4 | 5` as `level` value. And `5` need 4.6.0+ version.') : void 0;\n component = 'h1';\n }\n return /*#__PURE__*/React.createElement(Base, _extends({\n ref: ref\n }, restProps, {\n component: component\n }));\n});\nexport default Title;","import Link from './Link';\nimport Paragraph from './Paragraph';\nimport Text from './Text';\nimport Title from './Title';\nimport OriginTypography from './Typography';\nvar Typography = OriginTypography;\nTypography.Text = Text;\nTypography.Link = Link;\nTypography.Title = Title;\nTypography.Paragraph = Paragraph;\nexport default Typography;","import React from \"react\";\r\nimport logoSrc from \"assets/orangatamariki.png\";\r\nimport { Typography } from \"antd\";\r\n\r\nconst Logo = () => (\r\n\t<div\r\n\t\tstyle={{\r\n\t\t\tdisplay: \"flex\",\r\n\t\t\tpadding: 5,\r\n\t\t\tjustifyContent: \"space-between\",\r\n\t\t}}\r\n\t>\r\n\t\t<div className=\"qna-page-header-logo-only\">\r\n\t\t\t<img src={logoSrc} alt=\"Company logo\"></img>\r\n\t\t\t<br />\r\n\t\t\t<Typography.Text type=\"secondary\" style={{ fontSize: \"small\" }}>\r\n\t\t\t\tv1.2.2\r\n\t\t\t</Typography.Text>\r\n\t\t</div>\r\n\t\t<div style={{ width: 400 }}>\r\n\t\t\t<Typography.Text type=\"secondary\" style={{ fontSize: \"smaller\" }}>\r\n\t\t\t\tIf you believe a child is in immediate danger or in a\r\n\t\t\t\tlife-threatening situation contact Police immediately by dialing\r\n\t\t\t\t111.\r\n\t\t\t</Typography.Text>\r\n\t\t</div>\r\n\t</div>\r\n);\r\n\r\nconst FormHeader = () => {\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName=\"qna-header-container\"\r\n\t\t\tstyle={{\r\n\t\t\t\tposition: \"sticky\",\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tzIndex: 1,\r\n\t\t\t\twidth: \"100%\",\r\n\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t<Logo />\r\n\t\t\t<div className=\"site-page-header\" style={{ padding: 5 }}>\r\n\t\t\t\t<Typography.Title\r\n\t\t\t\t\tlevel={4}\r\n\t\t\t\t\tstyle={{ display: \"block\", color: \"white\" }}\r\n\t\t\t\t>\r\n\t\t\t\t\tReport of Concern to Oranga Tamariki, Ministry for Children\r\n\t\t\t\t</Typography.Title>\r\n\r\n\t\t\t\t<div\r\n\t\t\t\t\tstyle={{ display: \"flex\", justifyContent: \"space-between\" }}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Typography.Title\r\n\t\t\t\t\t\tlevel={5}\r\n\t\t\t\t\t\tstyle={{ display: \"block\", color: \"white\" }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tCall us on: 0508326459\r\n\t\t\t\t\t</Typography.Title>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default FormHeader;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { selectFormulaById } from \"reducers/formulasSlice\";\r\nimport {\r\n\tmakeSelectSumByFormulaId,\r\n\tselectAllAnswers,\r\n\tselectAllWorkflows,\r\n} from \"reducers\";\r\nimport Approval from \"../approval\";\r\nimport {\r\n\tselectFacilityRcs,\r\n\tselectMentalHealthRcs,\r\n} from \"./assetRc/assetRcSlice\";\r\nimport {\r\n\tAPPROVAL_ITIS_MAJOR_CATEGORY,\r\n\tAPPROVAL_ITIS_FPIM_SETUP_TYPE,\r\n\tAPPROVAL_RC_QUESTION_ID,\r\n\tFPIM_SETUP_TYPE_QUESTION_ID,\r\n\tCOST_THRESHOLD_FOR_APPROVAL_ESCALATION,\r\n\tMAJOR_CATEGORY_QUESTION_ID,\r\n\tCAPITAL_ACCOUNTANT_ROLE_ID,\r\n\tFINANCE_LEAD_ROLE_ID,\r\n\tSOURCE_PROJECT_QUESTION_ID,\r\n\tMANAGEMENT_RESERVE_SOURCE_PROJECT,\r\n} from \"./constants\";\r\n\r\nfunction checkAnswerExistsForQuestion(answers, questionId, searchValue) {\r\n\treturn answers.some((a) => {\r\n\t\tconst value = a.value || \"\";\r\n\t\treturn a.questionId === questionId && value.includes(searchValue);\r\n\t});\r\n}\r\n\r\nconst CapexApproval = () => {\r\n\t//for validity of capex approvals\r\n\tconst workflows = useSelector(selectAllWorkflows);\r\n\tconst capitalAccoutant = workflows.find(\r\n\t\t(w) => w.roleId?.toUpperCase() === CAPITAL_ACCOUNTANT_ROLE_ID && w.user\r\n\t);\r\n\tconst financeLead = workflows.find(\r\n\t\t(w) => w.roleId?.toUpperCase() === FINANCE_LEAD_ROLE_ID && w.user\r\n\t);\r\n\r\n\t//only valid if both these roles have been appointed users\r\n\tlet isValid = true;\r\n\tlet validationMessage = null;\r\n\r\n\tif (capitalAccoutant === undefined || financeLead === undefined) {\r\n\t\tisValid = false;\r\n\t\tvalidationMessage = `Please ensure that the \"Capital Accountant\" and \"Finance Lead\" roles are approvers for this form`;\r\n\t}\r\n\r\n\tconst answers = useSelector(selectAllAnswers);\r\n\tconst organisationHierarchyId = answers\r\n\t\t.find((a) => a.questionId === APPROVAL_RC_QUESTION_ID)\r\n\t\t?.value.toLowerCase();\r\n\tlet conditions = [];\r\n\tconst mentalHealthRcs = useSelector(selectMentalHealthRcs);\r\n\tconst facilityRcs = useSelector(selectFacilityRcs);\r\n\tconst selector = makeSelectSumByFormulaId(\"formulaId\");\r\n\tconst totalCost = useSelector(selector);\r\n\r\n\tconst isProject = useSelector(\r\n\t\t(state) => selectFormulaById(state, \"isProject\")?.value\r\n\t);\r\n\r\n\tconst isItDevice = useSelector(\r\n\t\t(state) => selectFormulaById(state, \"isItDevice\")?.value\r\n\t);\r\n\r\n\tif (!isProject) conditions.push(\"NotProject\");\r\n\r\n\tif (!isItDevice) conditions.push(\"NotItDevice\");\r\n\r\n\tif (mentalHealthRcs.some((rc) => rc.id.toLowerCase() === 1))\r\n\t\tconditions.push(\"MentalHealth\");\r\n\telse if (\r\n\t\tfacilityRcs.some(\r\n\t\t\t(rc) => rc.id.toLowerCase() === organisationHierarchyId\r\n\t\t)\r\n\t)\r\n\t\tconditions.push(\"Facilities\");\r\n\telse conditions.push(\"NotMentalHealthOrFacilities\");\r\n\r\n\tif (\r\n\t\t//major category includes IT IS\r\n\t\tcheckAnswerExistsForQuestion(\r\n\t\t\tanswers,\r\n\t\t\tMAJOR_CATEGORY_QUESTION_ID,\r\n\t\t\tAPPROVAL_ITIS_MAJOR_CATEGORY\r\n\t\t) ||\r\n\t\t//or FPIM setup type is IT IS\r\n\t\tanswers.find(\r\n\t\t\t(a) =>\r\n\t\t\t\ta.value === APPROVAL_ITIS_FPIM_SETUP_TYPE &&\r\n\t\t\t\ta.questionId === FPIM_SETUP_TYPE_QUESTION_ID\r\n\t\t)\r\n\t)\r\n\t\tconditions.push(\"ITIS\");\r\n\r\n\tif (\r\n\t\tcheckAnswerExistsForQuestion(\r\n\t\t\tanswers,\r\n\t\t\tSOURCE_PROJECT_QUESTION_ID,\r\n\t\t\tMANAGEMENT_RESERVE_SOURCE_PROJECT\r\n\t\t)\r\n\t) {\r\n\t\tconditions.push(\"ManagementResourceSourceProject\");\r\n\t}\r\n\r\n\t//cost-based conditions\r\n\tif (totalCost > COST_THRESHOLD_FOR_APPROVAL_ESCALATION)\r\n\t\tconditions.push(\"OverThreshold\");\r\n\telse conditions.push(\"UnderThreshold\");\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Approval\r\n\t\t\t\ttemplateCode={\"CapexPurchase\"}\r\n\t\t\t\tdomain=\"Test\"\r\n\t\t\t\torganisationHierarchyId={organisationHierarchyId}\r\n\t\t\t\toptions={{\r\n\t\t\t\t\tdisplay: \"role\",\r\n\t\t\t\t\tenableReset: true,\r\n\t\t\t\t\tsize: \"large\",\r\n\t\t\t\t\tenableAdd: true,\r\n\t\t\t\t}}\r\n\t\t\t\tconditions={conditions}\r\n\t\t\t\tisValid={isValid}\r\n\t\t\t\tvalidationMessage={validationMessage}\r\n\t\t\t/>\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default CapexApproval;\r\n","export const APPROVAL_RC_QUESTION_ID = \"s6q1\";\r\nexport const MAJOR_CATEGORY_QUESTION_ID = \"q3a\";\r\nexport const FPIM_SETUP_TYPE_QUESTION_ID = \"FPIMSetupType\";\r\nexport const APPROVAL_ITIS_MAJOR_CATEGORY = \"ITC Equipment\";\r\nexport const APPROVAL_ITIS_FPIM_SETUP_TYPE = \"T-IT Devices-WT\";\r\nexport const PROJECT_TYPE_ASSET_PURCHASE_CODE = \"purchaseListedItem\";\r\nexport const COST_THRESHOLD_FOR_APPROVAL_ESCALATION = 250000;\r\n\r\nexport const CAPITAL_ACCOUNTANT_ROLE_ID =\r\n\t\"994AC6F0-E1AC-4508-AD11-5F2682013983\";\r\nexport const FINANCE_LEAD_ROLE_ID = \"C0A2D521-B06B-4083-9E5A-D1671A8E6CD7\";\r\n\r\n//for conditional workflow of management reserve\r\nexport const SOURCE_PROJECT_QUESTION_ID = \"sourceProjectCode\";\r\nexport const MANAGEMENT_RESERVE_SOURCE_PROJECT = \"Management Reserve\";\r\n","import React from \"react\";\r\nimport { Section } from \"components/QnaComponents\";\r\nimport { Row, Col, InputNumber, Input, Select, Button } from \"antd\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n\tkeyMemberRemoved,\r\n\tkeyMembersReceived,\r\n\tkeyMemberUpserted,\r\n\tselectAllKeyMembers,\r\n\tselectKeyMemberById,\r\n} from \"./keyMembersSlice\";\r\nimport { getFormattedNumber, newId } from \"utils/common\";\r\nimport { selectFormStatus, selectQnaIsLocked } from \"reducers/formSlice\";\r\nimport { fetchApprovers } from \"reducers/workflowsSlice\";\r\nimport PersonSearchAd from \"components/PersonSearchAd\";\r\nimport PersonSearch from \"components/PersonSearch\";\r\nimport _ from \"lodash\";\r\nimport { selectGlobal } from \"reducers/global\";\r\n\r\nconst style = {\r\n\tpadding: 10,\r\n\tborderBottom: \"1px solid #ddd\",\r\n};\r\n\r\nconst DEFAULT_KEYMEMBERS = [\r\n\t{\r\n\t\tid: newId(),\r\n\t\tuserId: \"53AC6DF4-DE29-4DF5-AEE4-C53AD24F96EC\",\r\n\t\temail: \"\", //adding email here as a unique identifier since we search for people in the AD by email without other Ids available\r\n\t\tfullName: \"Cheng, Leslie\",\r\n\t\trole: \"Project Accountant\",\r\n\t\tlimit: null,\r\n\t\tlimitTo: null,\r\n\t\tmandatory: true,\r\n\t\tdisabled: true,\r\n\t\tnoLimit: true,\r\n\t},\r\n\t{\r\n\t\tid: newId(),\r\n\t\tuserId: null,\r\n\t\temail: \"\",\r\n\t\tfullName: null,\r\n\t\trole: \"Project Manager (Admin)\",\r\n\t\tlimit: null,\r\n\t\tlimitTo: null,\r\n\t\tmandatory: true,\r\n\t\tisBp: true,\r\n\t\tnoLimit: true,\r\n\t},\r\n\t{\r\n\t\tid: newId(),\r\n\t\tuserId: null,\r\n\t\temail: \"\",\r\n\t\tfullName: null,\r\n\t\trole: \"Budget Holder\",\r\n\t\tlimit: null,\r\n\t\tlimitTo: null,\r\n\t\tmandatory: true,\r\n\t},\r\n];\r\n\r\nconst BUSINESS_PARTNER_ROLE_ID = \"4E9353D7-0078-4535-8EDB-99333E8E438F\";\r\n\r\nconst KeyMembers = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst data = useSelector(selectAllKeyMembers);\r\n\tconst formStatus = useSelector(selectFormStatus);\r\n\tconst isLocked = useSelector(selectQnaIsLocked);\r\n\tconst [bps, setBps] = React.useState([]);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tlet isMounted = true; //mutable flag\r\n\t\tconst fetchData = async () => {\r\n\t\t\tconst response = await dispatch(\r\n\t\t\t\tfetchApprovers({\r\n\t\t\t\t\troleId: BUSINESS_PARTNER_ROLE_ID,\r\n\t\t\t\t\torganisationId: null,\r\n\t\t\t\t\tdomain: \"Test\",\r\n\t\t\t\t})\r\n\t\t\t).unwrap();\r\n\t\t\tif (response && response.length && isMounted) {\r\n\t\t\t\tconst trimmed = response.map((d) => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tfullName: d.lastName + \", \" + d.firstName,\r\n\t\t\t\t\t\tuserId: d.userId,\r\n\t\t\t\t\t\tjobTitle: d.jobTitle,\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\t\t\t\tconst data = _.uniqWith(trimmed, _.isEqual);\r\n\t\t\t\tconst sortedData = _.sortBy(data, (a) => a.fullName);\r\n\t\t\t\tsetBps(sortedData); //check mounted flag\r\n\t\t\t}\r\n\t\t};\r\n\t\tfetchData();\r\n\t\treturn () => {\r\n\t\t\tisMounted = false;\r\n\t\t}; //clean up, mounted untrue\r\n\t}, [dispatch]);\r\n\r\n\t//load default key members, if none exist\r\n\tReact.useEffect(() => {\r\n\t\tif (!data || data.length === 0) {\r\n\t\t\tdispatch(keyMembersReceived(DEFAULT_KEYMEMBERS));\r\n\t\t}\r\n\t}, [dispatch, data]);\r\n\r\n\treturn (\r\n\t\t<Section size=\"large\">\r\n\t\t\t<Row justify=\"space-between\">\r\n\t\t\t\t<Col>\r\n\t\t\t\t\t<h3>Key Members and Project Expenditure Approval Limit</h3>\r\n\t\t\t\t\t<p>\r\n\t\t\t\t\t\tIf no Project Expenditure Approval Limits are assigned,\r\n\t\t\t\t\t\tapproval will default to Budget Holder for all Purchase\r\n\t\t\t\t\t\tOrders.\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</Col>\r\n\t\t\t</Row>\r\n\t\t\t<Row\r\n\t\t\t\tstyle={{\r\n\t\t\t\t\t...style,\r\n\t\t\t\t\tfontWeight: 600,\r\n\t\t\t\t}}\r\n\t\t\t\talign=\"middle\"\r\n\t\t\t>\r\n\t\t\t\t<Col span={7}>Name</Col>\r\n\t\t\t\t<Col span={6}>Role</Col>\r\n\t\t\t\t<Col span={3}>Project Exp. Approval Limit</Col>\r\n\t\t\t\t<Col span={7}>Limit to Project or Task</Col>\r\n\t\t\t\t<Col span={1}></Col>\r\n\t\t\t</Row>\r\n\t\t\t{data.map((d) => (\r\n\t\t\t\t<KeyMemberRow\r\n\t\t\t\t\tid={d.id}\r\n\t\t\t\t\tkey={d.id}\r\n\t\t\t\t\tbps={bps}\r\n\t\t\t\t\tisLocked={isLocked}\r\n\t\t\t\t/>\r\n\t\t\t))}\r\n\t\t\t{formStatus === \"validation error\" && (\r\n\t\t\t\t<Row>\r\n\t\t\t\t\t<span className=\"qna-question-form-item-validation\">\r\n\t\t\t\t\t\tThe Project Accoutant, Project Mananger (Admin) and\r\n\t\t\t\t\t\tBudget Holder roles are mandatory\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</Row>\r\n\t\t\t)}\r\n\t\t\t{!isLocked && (\r\n\t\t\t\t<Row justify=\"end\" style={{ marginTop: 10 }}>\r\n\t\t\t\t\t<Button\r\n\t\t\t\t\t\ttype=\"primary\"\r\n\t\t\t\t\t\tonClick={() =>\r\n\t\t\t\t\t\t\tdispatch(keyMemberUpserted({ id: newId() }))\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tAdd Member\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t</Row>\r\n\t\t\t)}\r\n\t\t</Section>\r\n\t);\r\n};\r\n\r\nconst numericParser = (value) => value.replace(/\\$\\s?|(,*)/g, \"\");\r\n\r\nconst currencyFormatter = (value) =>\r\n\tgetFormattedNumber(value);\r\n\r\nconst { Option } = Select;\r\n\r\nconst KeyMemberRow = ({ id, isLocked, bps }) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst { appId } = useSelector(selectGlobal);\r\n\tconst data = useSelector((state) => selectKeyMemberById(state, id));\r\n\tconst {\r\n\t\tuserId,\r\n\t\temail,\r\n\t\tfullName,\r\n\t\trole,\r\n\t\tlimit,\r\n\t\tmandatory,\r\n\t\tlimitTo,\r\n\t\tdisabled,\r\n\t\tisBp,\r\n\t\tnoLimit,\r\n\t} = data;\r\n\r\n\treturn (\r\n\t\t<Row\r\n\t\t\tstyle={{\r\n\t\t\t\t...style,\r\n\t\t\t}}\r\n\t\t\talign=\"middle\"\r\n\t\t>\r\n\t\t\t<Col span={7}>\r\n\t\t\t\t{role === \"Project Accountant\" ? (\r\n\t\t\t\t\t<Input\r\n\t\t\t\t\t\tdefaultValue={fullName}\r\n\t\t\t\t\t\tdisabled={disabled || isLocked}\r\n\t\t\t\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t) : isBp ? (\r\n\t\t\t\t\t<Select\r\n\t\t\t\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\t\t\t\tplaceholder=\"Select a Business Partner\"\r\n\t\t\t\t\t\tlabelInValue\r\n\t\t\t\t\t\tvalue={{ value: userId, label: fullName }}\r\n\t\t\t\t\t\tdisabled={isLocked}\r\n\t\t\t\t\t\tonChange={(value) =>\r\n\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\tkeyMemberUpserted({\r\n\t\t\t\t\t\t\t\t\t...data,\r\n\t\t\t\t\t\t\t\t\tuserId: value.value,\r\n\t\t\t\t\t\t\t\t\tfullName: value.label,\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{bps.map((bp) => (\r\n\t\t\t\t\t\t\t<Select.Option key={bp.userId} value={bp.userId}>\r\n\t\t\t\t\t\t\t\t{bp.fullName}\r\n\t\t\t\t\t\t\t</Select.Option>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Select>\r\n\t\t\t\t) : process.env.REACT_APP_CAPEX_AUTOREGISTER === \"true\" ? (\r\n\t\t\t\t\t<PersonSearchAd\r\n\t\t\t\t\t\tvalue={email}\r\n\t\t\t\t\t\tonChange={(values) => {\r\n\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\tkeyMemberUpserted({\r\n\t\t\t\t\t\t\t\t\t...data,\r\n\t\t\t\t\t\t\t\t\tuserId: values.id,\r\n\t\t\t\t\t\t\t\t\tfullName: values.text,\r\n\t\t\t\t\t\t\t\t\temail: values.email,\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tdefaultOptions={\r\n\t\t\t\t\t\t\tuserId ? [{ value: email, text: fullName }] : []\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\toptions={{\r\n\t\t\t\t\t\t\tdisabled: disabled || isLocked,\r\n\t\t\t\t\t\t\tincludeLabel: true,\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t) : (\r\n\t\t\t\t\t<PersonSearch\r\n\t\t\t\t\t\tappHierarchyId={appId}\r\n\t\t\t\t\t\tvalue={email}\r\n\t\t\t\t\t\tonChange={(values) => {\r\n\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\tkeyMemberUpserted({\r\n\t\t\t\t\t\t\t\t\t...data,\r\n\t\t\t\t\t\t\t\t\tuserId: values.id,\r\n\t\t\t\t\t\t\t\t\tfullName: values.text,\r\n\t\t\t\t\t\t\t\t\temail: values.email,\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tdefaultOptions={\r\n\t\t\t\t\t\t\tuserId ? [{ value: email, text: fullName }] : []\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\toptions={{\r\n\t\t\t\t\t\t\tdisabled: disabled || isLocked,\r\n\t\t\t\t\t\t\tincludeLabel: true,\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t</Col>\r\n\t\t\t<Col span={6}>\r\n\t\t\t\t<Select\r\n\t\t\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\t\t\tdefaultValue={role}\r\n\t\t\t\t\tdisabled={mandatory || isLocked}\r\n\t\t\t\t\tonChange={(value) =>\r\n\t\t\t\t\t\tdispatch(keyMemberUpserted({ ...data, role: value }))\r\n\t\t\t\t\t}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Option value=\"Project Manager (Approver)\">\r\n\t\t\t\t\t\tProject Manager (Approver)\r\n\t\t\t\t\t</Option>\r\n\t\t\t\t\t<Option value=\"Project Accountant\">\r\n\t\t\t\t\t\tProject Accountant\r\n\t\t\t\t\t</Option>\r\n\t\t\t\t\t<Option value=\"Project Manager (Admin)\">\r\n\t\t\t\t\t\tProject Manager (Admin)\r\n\t\t\t\t\t</Option>\r\n\t\t\t\t\t<Option value=\"Senior Project Manager\">\r\n\t\t\t\t\t\tSenior Project Manager\r\n\t\t\t\t\t</Option>\r\n\t\t\t\t\t<Option value=\"Budget Holder\">Budget Holder</Option>\r\n\t\t\t\t</Select>\r\n\t\t\t</Col>\r\n\t\t\t<Col span={3}>\r\n\t\t\t\t<InputNumber\r\n\t\t\t\t\tdefaultValue={limit}\r\n\t\t\t\t\tonBlur={(e) =>\r\n\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\tkeyMemberUpserted({\r\n\t\t\t\t\t\t\t\t...data,\r\n\t\t\t\t\t\t\t\tlimit: e.target.value,\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tformatter={currencyFormatter}\r\n\t\t\t\t\tparser={numericParser}\r\n\t\t\t\t\tcontrols={false} //turns off useless +/- buttons\r\n\t\t\t\t\tclassName=\"text-align-right\"\r\n\t\t\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\t\t\taddonBefore={\"$\"}\r\n\t\t\t\t\tdisabled={noLimit || isLocked}\r\n\t\t\t\t/>\r\n\t\t\t</Col>\r\n\t\t\t<Col span={7}>\r\n\t\t\t\t<Input\r\n\t\t\t\t\tdefaultValue={limitTo}\r\n\t\t\t\t\tonBlur={(e) =>\r\n\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\tkeyMemberUpserted({\r\n\t\t\t\t\t\t\t\t...data,\r\n\t\t\t\t\t\t\t\tlimitTo: e.target.value,\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\t\t\tdisabled={noLimit || isLocked}\r\n\t\t\t\t/>\r\n\t\t\t</Col>\r\n\t\t\t<Col span={1}>\r\n\t\t\t\t<Button\r\n\t\t\t\t\ttype=\"link\"\r\n\t\t\t\t\tdanger\r\n\t\t\t\t\thidden={mandatory}\r\n\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\tdispatch(keyMemberRemoved(id));\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\tx\r\n\t\t\t\t</Button>\r\n\t\t\t</Col>\r\n\t\t</Row>\r\n\t);\r\n};\r\n\r\nexport default KeyMembers;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Descriptions, Row, Col, Button, Space } from \"antd\";\r\nimport { PaperClipOutlined } from \"@ant-design/icons\";\r\nimport NumberDisplay from \"components/NumberDisplay\";\r\nimport { Section } from \"components/QnaComponents\";\r\nimport { downloadFile } from \"utils/common\";\r\nimport { getAttachmentById } from \"api\";\r\nimport { selectApprovalSummary } from \"reducers\";\r\n\r\nexport const fetchAttachmentById = async (attachmentId) => {\r\n\ttry {\r\n\t\tdownloadFile(await getAttachmentById({ attachmentId }));\r\n\t} catch (error) {\r\n\t\tconsole.log(error.message);\r\n\t}\r\n};\r\n\r\nconst rowStyle = {\r\n\tpadding: \"5px 5px\",\r\n\tborderBottom: \"1px solid #eee\",\r\n};\r\nconst colStyle = { paddingRight: \"3px\" };\r\n\r\nconst ApprovalSummary = () => {\r\n\tconst {\r\n\t\tprojectCode,\r\n\t\tprojectShortName,\r\n\t\tprojectLongName,\r\n\t\tdivision,\r\n\t\trc,\r\n\t\tstartDate,\r\n\t\tendDate,\r\n\t\tFPIMSetupType,\r\n\t\tprojectBudget,\r\n\t\tfundedFrom,\r\n\t\tfileList,\r\n\t\tkeyMembers,\r\n\t\tprojectOutline,\r\n\t\triskAddressed,\r\n\t\talternatives,\r\n\t\tcontactPerson,\r\n\t\tdeliveryAddress,\r\n\t\topex,\r\n\t} = useSelector(selectApprovalSummary);\r\n\r\n\tconst onPreview = async (file) => {\r\n\t\ttry {\r\n\t\t\tawait fetchAttachmentById(file.uid);\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(e);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<Section title=\"Summary View\" size=\"large\">\r\n\t\t\t<Descriptions\r\n\t\t\t\tcolumn={1}\r\n\t\t\t\tsize=\"medium\"\r\n\t\t\t\tlabelStyle={{\r\n\t\t\t\t\tfontWeight: 600,\r\n\t\t\t\t\twidth: \"200px\",\r\n\t\t\t\t}}\r\n\t\t\t\tcontentStyle={{\r\n\t\t\t\t\tbackgroundColor: \"white\",\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<Descriptions.Item label=\"Project Code\">\r\n\t\t\t\t\t{projectCode}\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"Project Name\">\r\n\t\t\t\t\t{\"WT-23-\" + projectShortName}\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"Project Long Name\">\r\n\t\t\t\t\t{\"WT-23-\" + projectLongName}\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"Project Summary\">\r\n\t\t\t\t\t<Space direction=\"vertical\">\r\n\t\t\t\t\t\t<i>Outline</i>\r\n\t\t\t\t\t\t{projectOutline}\r\n\t\t\t\t\t\t<i>What is the risk being addressed?</i>\r\n\t\t\t\t\t\t{riskAddressed}\r\n\t\t\t\t\t\t<i>\r\n\t\t\t\t\t\t\tWhat are the alternatives, including consequences of\r\n\t\t\t\t\t\t\tnot doing the project?\r\n\t\t\t\t\t\t</i>\r\n\t\t\t\t\t\t{alternatives}\r\n\t\t\t\t\t</Space>\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"Service\">\r\n\t\t\t\t\t{division}\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"Responsibility Centre\">\r\n\t\t\t\t\t{rc}\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"Start Date\">\r\n\t\t\t\t\t{startDate}\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"End Date\">\r\n\t\t\t\t\t{endDate}\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"FPIM Setup Type\">\r\n\t\t\t\t\t{FPIMSetupType}\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t{contactPerson && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t<Descriptions.Item label=\"Contact Person\">\r\n\t\t\t\t\t\t\t{contactPerson}\r\n\t\t\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t\t\t<Descriptions.Item label=\"Delivery Address\">\r\n\t\t\t\t\t\t\t{deliveryAddress}\r\n\t\t\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t\t</>\r\n\t\t\t\t)}\r\n\t\t\t\t<Descriptions.Item label=\"Project Budget\">\r\n\t\t\t\t\t<div style={{ width: 750 }}>\r\n\t\t\t\t\t\t<Row\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tfontStyle: \"italic\",\r\n\t\t\t\t\t\t\t\t...rowStyle,\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Col span={6} style={colStyle}>\r\n\t\t\t\t\t\t\t\tItem Description\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col span={6} style={colStyle}>\r\n\t\t\t\t\t\t\t\tMinor Cat.\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={2}\r\n\t\t\t\t\t\t\t\tstyle={{ textAlign: \"right\", ...colStyle }}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tQuantity\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={3}\r\n\t\t\t\t\t\t\t\tstyle={{ textAlign: \"right\", ...colStyle }}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tUnit price\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={3}\r\n\t\t\t\t\t\t\t\tstyle={{ textAlign: \"right\", ...colStyle }}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tTotal\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={2}\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\r\n\t\t\t\t\t\t\t\t\t...colStyle,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tWIP Account\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={2}\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\r\n\t\t\t\t\t\t\t\t\t...colStyle,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tLife (Yrs)\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t\t{projectBudget.map(\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\tid,\r\n\t\t\t\t\t\t\t\titemDescription,\r\n\t\t\t\t\t\t\t\tminor,\r\n\t\t\t\t\t\t\t\tquantity,\r\n\t\t\t\t\t\t\t\tunitPrice,\r\n\t\t\t\t\t\t\t\ttotal,\r\n\t\t\t\t\t\t\t\twipAccount,\r\n\t\t\t\t\t\t\t\tlifeYears,\r\n\t\t\t\t\t\t\t}) => {\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t<Row key={id} style={rowStyle}>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={6} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t\t{itemDescription}\r\n\t\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={6} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t\t{minor}\r\n\t\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={2} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t\t<NumberDisplay\r\n\t\t\t\t\t\t\t\t\t\t\t\tnumber={quantity}\r\n\t\t\t\t\t\t\t\t\t\t\t\tcurrency={false}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={3} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t\t<NumberDisplay\r\n\t\t\t\t\t\t\t\t\t\t\t\tnumber={unitPrice}\r\n\t\t\t\t\t\t\t\t\t\t\t\tmaxDigits={0}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={3} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t\t<NumberDisplay\r\n\t\t\t\t\t\t\t\t\t\t\t\tnumber={total}\r\n\t\t\t\t\t\t\t\t\t\t\t\tmaxDigits={0}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\t\t\t\tspan={2}\r\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t...colStyle,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{wipAccount}\r\n\t\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\t\t\t\tspan={2}\r\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t...colStyle,\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{lifeYears}\r\n\t\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t<Row style={{ fontWeight: 600, ...rowStyle }}>\r\n\t\t\t\t\t\t\t<Col span={6} style={colStyle}>\r\n\t\t\t\t\t\t\t\tTotal\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col span={6} style={colStyle}></Col>\r\n\t\t\t\t\t\t\t<Col span={2} style={colStyle}></Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={3}\r\n\t\t\t\t\t\t\t\tstyle={{ textAlign: \"right\", ...colStyle }}\r\n\t\t\t\t\t\t\t></Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={3}\r\n\t\t\t\t\t\t\t\tstyle={{ textAlign: \"right\", ...colStyle }}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<NumberDisplay\r\n\t\t\t\t\t\t\t\t\tnumber={Math.ceil(\r\n\t\t\t\t\t\t\t\t\t\tprojectBudget.reduce(\r\n\t\t\t\t\t\t\t\t\t\t\t(accum, current) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn accum + current?.total;\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tmaxDigits={0}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={2}\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\r\n\t\t\t\t\t\t\t\t\t...colStyle,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t></Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={2}\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\r\n\t\t\t\t\t\t\t\t\t...colStyle,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t></Col>\r\n\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"Associated Additional Operating Costs\">\r\n\t\t\t\t\t<div style={{ width: 750 }}>\r\n\t\t\t\t\t\t<Row\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tfontStyle: \"italic\",\r\n\t\t\t\t\t\t\t\t...rowStyle,\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Col span={12} style={colStyle}>\r\n\t\t\t\t\t\t\t\tItem Description\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={4}\r\n\t\t\t\t\t\t\t\tstyle={{ textAlign: \"right\", ...colStyle }}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tNo. of Years\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={4}\r\n\t\t\t\t\t\t\t\tstyle={{ textAlign: \"right\", ...colStyle }}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tAmount Per Year\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={4}\r\n\t\t\t\t\t\t\t\tstyle={{ textAlign: \"right\", ...colStyle }}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tTotal\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t\t{opex.map(\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\tid,\r\n\t\t\t\t\t\t\t\tcostType,\r\n\t\t\t\t\t\t\t\tyears,\r\n\t\t\t\t\t\t\t\tamountPerYear,\r\n\t\t\t\t\t\t\t\ttotalOngoingCost,\r\n\t\t\t\t\t\t\t}) => {\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t<Row key={id} style={rowStyle}>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={12} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t\t{costType}\r\n\t\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={4} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t\t<NumberDisplay\r\n\t\t\t\t\t\t\t\t\t\t\t\tnumber={years}\r\n\t\t\t\t\t\t\t\t\t\t\t\tcurrency={false}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={4} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t\t<NumberDisplay\r\n\t\t\t\t\t\t\t\t\t\t\t\tnumber={amountPerYear}\r\n\t\t\t\t\t\t\t\t\t\t\t\tmaxDigits={0}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={4} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t\t<NumberDisplay\r\n\t\t\t\t\t\t\t\t\t\t\t\tnumber={totalOngoingCost}\r\n\t\t\t\t\t\t\t\t\t\t\t\tmaxDigits={0}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t<Row style={{ fontWeight: 600, ...rowStyle }}>\r\n\t\t\t\t\t\t\t<Col span={12} style={colStyle}>\r\n\t\t\t\t\t\t\t\tTotal\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col span={4} style={colStyle}></Col>\r\n\t\t\t\t\t\t\t<Col span={4} style={colStyle}></Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={4}\r\n\t\t\t\t\t\t\t\tstyle={{ textAlign: \"right\", ...colStyle }}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<NumberDisplay\r\n\t\t\t\t\t\t\t\t\tnumber={Math.ceil(\r\n\t\t\t\t\t\t\t\t\t\topex.reduce((accum, current) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\taccum +\r\n\t\t\t\t\t\t\t\t\t\t\t\tcurrent?.totalOngoingCost\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}, 0)\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tmaxDigits={0}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"Funded From\">\r\n\t\t\t\t\t<div style={{ width: 750 }}>\r\n\t\t\t\t\t\t<Row style={{ fontStyle: \"italic\", ...rowStyle }}>\r\n\t\t\t\t\t\t\t<Col span={9} colstyle={colStyle}>\r\n\t\t\t\t\t\t\t\tSource Project\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col span={6} colstyle={colStyle}>\r\n\t\t\t\t\t\t\t\tCode\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col span={6} colstyle={colStyle}>\r\n\t\t\t\t\t\t\t\tWT Project Code\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={3}\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\r\n\t\t\t\t\t\t\t\t\t...colStyle,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tAmount\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t\t{fundedFrom.map((f) => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t<Row key={f.id} style={rowStyle}>\r\n\t\t\t\t\t\t\t\t\t<Col span={9} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t{f?.source}\r\n\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t<Col span={6} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t{f?.code}\r\n\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t<Col span={6} style={colStyle}>\r\n\t\t\t\t\t\t\t\t\t\t{f?.wtProjectCode}\r\n\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\t\t\tspan={3}\r\n\t\t\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\r\n\t\t\t\t\t\t\t\t\t\t\t...colStyle,\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<NumberDisplay\r\n\t\t\t\t\t\t\t\t\t\t\tnumber={f?.amount}\r\n\t\t\t\t\t\t\t\t\t\t\tmaxDigits={0}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t<Row style={{ fontWeight: 600, ...rowStyle }}>\r\n\t\t\t\t\t\t\t<Col span={21} style={colStyle}>\r\n\t\t\t\t\t\t\t\tTotal\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t<Col\r\n\t\t\t\t\t\t\t\tspan={3}\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\r\n\t\t\t\t\t\t\t\t\t...colStyle,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<NumberDisplay\r\n\t\t\t\t\t\t\t\t\tcurrency\r\n\t\t\t\t\t\t\t\t\tnumber={Math.ceil(\r\n\t\t\t\t\t\t\t\t\t\tfundedFrom.reduce((accum, current) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn accum + current?.amount;\r\n\t\t\t\t\t\t\t\t\t\t}, 0)\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\tmaxDigits={0}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"Attachments\">\r\n\t\t\t\t\t<Space direction=\"vertical\">\r\n\t\t\t\t\t\t{fileList &&\r\n\t\t\t\t\t\t\tfileList.length > 0 &&\r\n\t\t\t\t\t\t\tfileList.map((a) => {\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tkey={a.uid}\r\n\t\t\t\t\t\t\t\t\t\ticon={<PaperClipOutlined />}\r\n\t\t\t\t\t\t\t\t\t\ttype=\"link\"\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => onPreview(a)}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{a.name}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t</Space>\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t\t<Descriptions.Item label=\"Key Members\">\r\n\t\t\t\t\t<div style={{ width: 750 }}>\r\n\t\t\t\t\t\t<Row\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tfontStyle: \"italic\",\r\n\t\t\t\t\t\t\t\t...rowStyle,\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Col span={7}>Name</Col>\r\n\t\t\t\t\t\t\t<Col span={7}>Role</Col>\r\n\t\t\t\t\t\t\t<Col span={3}>Approval Limit ($)</Col>\r\n\t\t\t\t\t\t\t<Col span={7}>Limit to Project or Task</Col>\r\n\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t\t{keyMembers &&\r\n\t\t\t\t\t\t\tkeyMembers.length > 0 &&\r\n\t\t\t\t\t\t\tkeyMembers.map((k) => {\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t<Row key={k.id} style={rowStyle}>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={7}>{k.fullName}</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={7}>{k.role}</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={3}>{k.limit}</Col>\r\n\t\t\t\t\t\t\t\t\t\t<Col span={7}>{k.limitTo}</Col>\r\n\t\t\t\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</Descriptions.Item>\r\n\t\t\t</Descriptions>\r\n\t\t</Section>\r\n\t);\r\n};\r\n\r\nexport default ApprovalSummary;\r\n","import React from \"react\";\r\nimport ApprovalSummary from \"./approvalSummary\";\r\nimport CapexApproval from \"./CapexApproval\";\r\n\r\nconst SummaryRenderer = () => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<ApprovalSummary />\r\n\t\t\t<CapexApproval />\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default SummaryRenderer;\r\n","import React, { useEffect, useState, useRef } from \"react\";\r\nimport { SaveOutlined } from \"@ant-design/icons\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { selectIsLoading } from \"../reducers\";\r\nimport {\r\n\tpostForm,\r\n\tselectForm,\r\n\tselectFormStatus,\r\n\tselectQnaIsLocked,\r\n\tvalidate,\r\n} from \"../reducers/formSlice\";\r\nimport Page from \"./Page\";\r\nimport { PrevButton, NextButton, HomeButton } from \"./Paginator.jsx\";\r\nimport { Row, Col, Spin, Button, Space } from \"antd\";\r\nimport CapexFormHeader from \"../features/capex/FormHeader\";\r\nimport RocFormHeader from \"../features/roc/FormHeader\";\r\nimport Steps from \"./Steps\";\r\nimport ResultModal from \"./ResultModal\";\r\nimport { Content, Footer, Header, Layout } from \"./Layout\";\r\nimport CapexApproval from \"../features/capex/CapexApproval\";\r\nimport { Link } from \"react-router-dom\";\r\nimport KeyMembers from \"../features/capex/keyMembers\";\r\nimport { useNavigation, useNotification } from \"../hooks/qnaHooks\";\r\nimport SummaryRenderer from \"features/capex/CapexSummaryRenderer\";\r\nimport { selectGlobal } from \"reducers/global\";\r\nimport ConfidentialityStatement from \"features/roc/ConfidentialityStatement\";\r\n\r\n/*\r\nin approval mode, you can't navigate pages\r\n-disables next button\r\n-disables header, because there is only 1 page\r\n*/\r\n\r\nconst Renderer = React.forwardRef(\r\n\t({ handlePrint, handlePrintPreview }, containerRef) => {\r\n\t\tconst status = useSelector(selectFormStatus);\r\n\t\tconst isLoading = useSelector(selectIsLoading);\r\n\t\tconst formStatus = useSelector(selectForm)?.status;\r\n\t\tconst [overrideApprovalMode, setOverrideApprovalMode] = useState(false);\r\n\t\tconst {\r\n\t\t\tappType,\r\n\t\t\thomePath,\r\n\t\t\tshowFormHeader,\r\n\t\t\tshowFooter,\r\n\t\t\tdetailedValidation,\r\n\t\t} = useSelector(selectGlobal);\r\n\r\n\t\tuseNotification(detailedValidation);\r\n\r\n\t\tconst save = async ({ isSilentSave }) => {\r\n\t\t\tif (!isLocked) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tdispatch(postForm({ isSilentSave }));\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t} catch {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\tconst [\r\n\t\t\tdecrementPage,\r\n\t\t\tincrementPage,\r\n\t\t\t,\r\n\t\t\tcurrentPageId,\r\n\t\t\tpageType,\r\n\t\t\tprevButtonVisible,\r\n\t\t\tnextButtonVisible,\r\n\t\t\tisPageValid,\r\n\t\t] = useNavigation({ save });\r\n\r\n\t\tconst isLocked = useSelector(selectQnaIsLocked);\r\n\t\tconst dispatch = useDispatch();\r\n\r\n\t\t//container ref for scrolling\r\n\t\tconst ref = useRef();\r\n\r\n\t\tuseEffect(() => {\r\n\t\t\tif (ref?.current) ref.current.scrollTop = 0; //IE does not support scrollTo(x,y)\r\n\t\t}, [ref, currentPageId]);\r\n\r\n\t\tconst isDraft = formStatus === \"Draft\" || formStatus === \"Declined\";\r\n\t\tconst isApprovalMode = !isDraft && !overrideApprovalMode;\r\n\t\tconst showSteps =\r\n\t\t\tappType === \"capex\" ? overrideApprovalMode || isDraft : false;\r\n\r\n\t\tconst PageRender = ({ pageType }) => {\r\n\t\t\tif (isApprovalMode) return <SummaryRenderer />;\r\n\t\t\tif (!pageType) return <Page id={currentPageId} />;\r\n\t\t\telse\r\n\t\t\t\tswitch (pageType) {\r\n\t\t\t\t\tcase \"capexApproval\":\r\n\t\t\t\t\t\treturn <CapexApproval />;\r\n\t\t\t\t\tcase \"keyMembers\":\r\n\t\t\t\t\t\treturn <KeyMembers />;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<p>{`Page type of ${pageType} is not yet supported!`}</p>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tref={containerRef}\r\n\t\t\t\tid=\"qna-container-print-id\"\r\n\t\t\t\tstyle={{ height: \"100%\" }}\r\n\t\t\t\t// className=\"printing\"\r\n\t\t\t>\r\n\t\t\t\t<Layout>\r\n\t\t\t\t\t<Header showCmeFormHeader={false} />\r\n\t\t\t\t\t{showFormHeader &&\r\n\t\t\t\t\t\t(appType === \"capex\" ? (\r\n\t\t\t\t\t\t\t<CapexFormHeader\r\n\t\t\t\t\t\t\t\tsave={save}\r\n\t\t\t\t\t\t\t\tsetOverrideApprovalMode={\r\n\t\t\t\t\t\t\t\t\tsetOverrideApprovalMode\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tisApprovalMode={isApprovalMode}\r\n\t\t\t\t\t\t\t\tisDraft={isDraft}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<RocFormHeader />\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t<Content\r\n\t\t\t\t\t\tstyle={appType === \"roc\" ? { paddingBottom: 70 } : null}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Spin tip=\"Please wait...\" spinning={isLoading}>\r\n\t\t\t\t\t\t\t<ResultModal />\r\n\t\t\t\t\t\t\t<Row>\r\n\t\t\t\t\t\t\t\t{showSteps && (\r\n\t\t\t\t\t\t\t\t\t<Col span={24}>\r\n\t\t\t\t\t\t\t\t\t\t<Steps currentPageId={currentPageId} />\r\n\t\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t<Col span={24} ref={ref}>\r\n\t\t\t\t\t\t\t\t\t<PageRender pageType={pageType} />\r\n\t\t\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t\t\t</Row>\r\n\t\t\t\t\t\t</Spin>\r\n\t\t\t\t\t</Content>\r\n\t\t\t\t\t{!isLoading && showFooter && (\r\n\t\t\t\t\t\t<Footer>\r\n\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t<Link to={homePath}>\r\n\t\t\t\t\t\t\t\t\t<HomeButton\r\n\t\t\t\t\t\t\t\t\t\tvisible\r\n\t\t\t\t\t\t\t\t\t\tdisabled={status === \"loading\"}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</Link>\r\n\t\t\t\t\t\t\t\t{!isApprovalMode && (\r\n\t\t\t\t\t\t\t\t\t<PrevButton\r\n\t\t\t\t\t\t\t\t\t\tdecrementPage={decrementPage}\r\n\t\t\t\t\t\t\t\t\t\tvisible={prevButtonVisible}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={status === \"loading\"}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t{!isApprovalMode && (\r\n\t\t\t\t\t\t\t\t<NextButton\r\n\t\t\t\t\t\t\t\t\tincrementPage={incrementPage}\r\n\t\t\t\t\t\t\t\t\tvisible={nextButtonVisible}\r\n\t\t\t\t\t\t\t\t\tdisabled={status === \"loading\"}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</Footer>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{appType === \"roc\" && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t<Footer\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\tposition: \"fixed\",\r\n\t\t\t\t\t\t\t\t\tbottom: 0,\r\n\t\t\t\t\t\t\t\t\tleft: 0,\r\n\t\t\t\t\t\t\t\t\tzIndex: 1,\r\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\theight: 75,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\r\n\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\t\t\t\tjustifyContent: \"flex-end\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<ConfidentialityStatement />\r\n\r\n\t\t\t\t\t\t\t\t\t<Space>\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\r\n\t\t\t\t\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\thandlePrintPreview();\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tDownload a Copy\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\r\n\t\t\t\t\t\t\t\t\t\t\ticon={<SaveOutlined />}\r\n\t\t\t\t\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (!isPageValid) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdispatch(validate());\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandlePrint();\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tSubmit Form\r\n\t\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t\t</Space>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</Footer>\r\n\t\t\t\t\t\t</>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Layout>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nexport default Renderer;\r\n","import { useEffect } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport {\r\n\tselectAllPages,\r\n\tselectCurrentPageId,\r\n\tselectIsPageValid,\r\n} from \"../reducers\";\r\nimport {\r\n\tsessionEdited,\r\n\tselectFormStatus,\r\n\tselectFormError,\r\n\terrorEdited,\r\n\tselectSession,\r\n} from \"../reducers/formSlice\";\r\nimport { message, notification } from \"antd\";\r\n\r\nconst messageKey = \"page-updatable\";\r\n\r\nexport const useNotification = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst status = useSelector(selectFormStatus);\r\n\tconst error = useSelector(selectFormError);\r\n\tconst validationMessage = useSelector(selectSession)?.validationMessage;\r\n\r\n\tuseEffect(() => {\r\n\t\t//destroy any active messages that displayed from a previous status\r\n\t\tmessage.destroy(messageKey);\r\n\r\n\t\tif (status === \"validation error\") {\r\n\t\t\tconst onClose = () => {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tsessionEdited({ status: \"validation error dismissed\" })\r\n\t\t\t\t);\r\n\t\t\t};\r\n\t\t\tnotification.warning({\r\n\t\t\t\tmessage: \"Validation error\",\r\n\t\t\t\tdescription: validationMessage,\r\n\t\t\t\tduration: 0,\r\n\t\t\t\tonClose,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (error) {\r\n\t\t\tnotification.error({\r\n\t\t\t\tmessage: error?.title,\r\n\t\t\t\tdescription: error?.message,\r\n\t\t\t\tduration: 0,\r\n\t\t\t\tkey: error?.title, //ensure only one error message per type can be shown\r\n\t\t\t\tonClose: () => dispatch(errorEdited(null)),\r\n\t\t\t}); //todo: unset errors\r\n\t\t}\r\n\t}, [dispatch, status, error, validationMessage]);\r\n};\r\n\r\nexport const useNavigation = ({ save }) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst pages = useSelector(selectAllPages);\r\n\tconst currentPageId = useSelector(selectCurrentPageId);\r\n\tconst currentPageIndex = pages.findIndex((p) => p.id === currentPageId);\r\n\tconst currentPage = pages[currentPageIndex];\r\n\tconst prevPageId =\r\n\t\tcurrentPageIndex > 0 ? pages[currentPageIndex - 1]?.id : null;\r\n\tconst nextPageId =\r\n\t\tcurrentPageIndex < pages.length\r\n\t\t\t? pages[currentPageIndex + 1]?.id\r\n\t\t\t: null;\r\n\r\n\tconst pageType = currentPage?.type || null;\r\n\tconst isPageValid = useSelector(selectIsPageValid);\r\n\r\n\tconst decrementPage = () => {\r\n\t\tif (prevPageId) {\r\n\t\t\tdispatch(sessionEdited({ currentPage: prevPageId }));\r\n\t\t\tdispatch(sessionEdited({ status: \"idle\" }));\r\n\t\t}\r\n\t};\r\n\r\n\tconst incrementPage = async () => {\r\n\t\tif (nextPageId) {\r\n\t\t\tif (!isPageValid) {\r\n\t\t\t\tdispatch(sessionEdited({ status: \"validation error\" }));\r\n\t\t\t\treturn;\r\n\t\t\t} else {\r\n\t\t\t\t//save between navigation\r\n\t\t\t\tconst success = await save({ isSilentSave: true });\r\n\t\t\t\tif (success)\r\n\t\t\t\t\tdispatch(sessionEdited({ currentPage: nextPageId }));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst prevButtonVisible = prevPageId ? true : false;\r\n\tconst nextButtonVisible = nextPageId ? true : false;\r\n\r\n\treturn [\r\n\t\tdecrementPage,\r\n\t\tincrementPage,\r\n\t\tcurrentPage,\r\n\t\tcurrentPageId,\r\n\t\tpageType,\r\n\t\tprevButtonVisible,\r\n\t\tnextButtonVisible,\r\n\t\tisPageValid,\r\n\t];\r\n};\r\n","import React from \"react\";\r\nimport { HomeOutlined } from \"@ant-design/icons\";\r\nimport { Result, Modal, Button } from \"antd\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { sessionEdited, selectFormStatus } from \"reducers/formSlice\";\r\nimport {\r\n\tselectWorkflowStatus,\r\n\tworkflowStatusEdited,\r\n} from \"reducers/workflowsSlice\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { selectGlobal } from \"reducers/global\";\r\n\r\nconst ResultModal = ({\r\n\tvisible,\r\n\tstatus,\r\n\ttitle,\r\n\tsubTitle,\r\n\tonClose,\r\n\tfooter,\r\n\tchildren,\r\n}) => {\r\n\tconst history = useHistory();\r\n\tconst { homePath } = useSelector(selectGlobal);\r\n\tconst handleHome = () => {\r\n\t\thistory.push(homePath);\r\n\t};\r\n\treturn (\r\n\t\t<Modal\r\n\t\t\topen={visible}\r\n\t\t\tclosable={false}\r\n\t\t\tfooter={\r\n\t\t\t\tfooter\r\n\t\t\t\t\t? footer\r\n\t\t\t\t\t: [\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\ticon={<HomeOutlined />}\r\n\t\t\t\t\t\t\t\tkey=\"home\"\r\n\t\t\t\t\t\t\t\tonClick={handleHome}\r\n\t\t\t\t\t\t\t\ttype=\"primary\"\r\n\t\t\t\t\t\t\t\tstyle={{ width: 50 }}\r\n\t\t\t\t\t\t\t/>,\r\n\t\t\t\t\t\t\t<Button key=\"close\" onClick={onClose}>\r\n\t\t\t\t\t\t\t\tClose\r\n\t\t\t\t\t\t\t</Button>,\r\n\t\t\t\t\t ]\r\n\t\t\t}\r\n\t\t>\r\n\t\t\t<Result status={status} title={title} subTitle={subTitle}>\r\n\t\t\t\t{children}\r\n\t\t\t</Result>\r\n\t\t</Modal>\r\n\t);\r\n};\r\n\r\nconst RendererResultModal = () => {\r\n\tconst status = useSelector(selectFormStatus);\r\n\tconst workflowStatus = useSelector(selectWorkflowStatus);\r\n\tconst dispatch = useDispatch();\r\n\r\n\t//#region notification logic\r\n\tconst IsResultModalVisible =\r\n\t\tstatus === \"saved\" ||\r\n\t\t(workflowStatus !== \"idle\" &&\r\n\t\t\tworkflowStatus !== \"loading\" &&\r\n\t\t\tworkflowStatus !== \"starting\" &&\r\n\t\t\tworkflowStatus !== \"failed\" &&\r\n\t\t\tworkflowStatus !== \"succeeded\" &&\r\n\t\t\tworkflowStatus !== \"edited\" &&\r\n\t\t\tworkflowStatus !== \"deleted\");\r\n\r\n\tlet resultModalProps = {\r\n\t\tvisible: IsResultModalVisible,\r\n\t};\r\n\r\n\tswitch (true) {\r\n\t\tcase status === \"saved\":\r\n\t\t\tresultModalProps = {\r\n\t\t\t\t...resultModalProps,\r\n\t\t\t\tstatus: \"success\",\r\n\t\t\t\ttitle: \"Form saved successfully\",\r\n\t\t\t\tsubTitle:\r\n\t\t\t\t\t\"You can now close this window and return to this form later, or continue working on this form.\",\r\n\t\t\t\tonClose: () => {\r\n\t\t\t\t\tdispatch(sessionEdited({ status: \"idle\" }));\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t\tbreak;\r\n\t\tcase workflowStatus === \"submitted\":\r\n\t\t\tresultModalProps = {\r\n\t\t\t\t...resultModalProps,\r\n\t\t\t\tstatus: \"success\",\r\n\t\t\t\ttitle: \"Form submitted for approval successfully\",\r\n\t\t\t\tsubTitle:\r\n\t\t\t\t\t\"You will be notified when your form is fully approved or is declined by approvers. You can now close this window.\",\r\n\t\t\t\tonClose: () => {\r\n\t\t\t\t\tdispatch(workflowStatusEdited(\"idle\"));\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tresultModalProps = {\r\n\t\t\t\t...resultModalProps,\r\n\t\t\t\tstatus: \"success\",\r\n\t\t\t\ttitle: `Workflow ${workflowStatus} successfully`,\r\n\t\t\t\tsubTitle: \"You can now close this window.\",\r\n\t\t\t\tonClose: () => {\r\n\t\t\t\t\tdispatch(workflowStatusEdited(\"idle\"));\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t\tbreak;\r\n\t}\r\n\t//#endregion notification logic\r\n\r\n\treturn <ResultModal {...resultModalProps} />;\r\n};\r\n\r\nexport default RendererResultModal;\r\n","// This icon file is generated automatically.\nvar ExclamationOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M448 804a64 64 0 10128 0 64 64 0 10-128 0zm32-168h64c4.4 0 8-3.6 8-8V164c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"exclamation\", \"theme\": \"outlined\" };\nexport default ExclamationOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExclamationOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ExclamationOutlined = function ExclamationOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationOutlinedSvg\n }));\n};\nExclamationOutlined.displayName = 'ExclamationOutlined';\nexport default /*#__PURE__*/React.forwardRef(ExclamationOutlined);","// This icon file is generated automatically.\nvar LockFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1156 0zm152-237H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224z\" } }] }, \"name\": \"lock\", \"theme\": \"filled\" };\nexport default LockFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LockFilledSvg from \"@ant-design/icons-svg/es/asn/LockFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar LockFilled = function LockFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LockFilledSvg\n }));\n};\nLockFilled.displayName = 'LockFilled';\nexport default /*#__PURE__*/React.forwardRef(LockFilled);","import { Tag, Tooltip } from \"antd\";\r\nimport {\r\n\tEditOutlined,\r\n\tCheckOutlined,\r\n\tClockCircleOutlined,\r\n\tExclamationOutlined,\r\n\tLockFilled,\r\n\tCloseOutlined,\r\n\tCalendarOutlined,\r\n} from \"@ant-design/icons\";\r\n\r\nconst StatusTag = ({ status }) => {\r\n\tconst CustomTag = ({ tooltip, color, icon, text }) => {\r\n\t\treturn (\r\n\t\t\t<Tooltip title={tooltip}>\r\n\t\t\t\t<Tag color={color} className=\"tag-status\">\r\n\t\t\t\t\t{icon} {text}\r\n\t\t\t\t</Tag>\r\n\t\t\t</Tooltip>\r\n\t\t);\r\n\t};\r\n\r\n\tswitch (status) {\r\n\t\tcase \"Draft\":\r\n\t\t\treturn (\r\n\t\t\t\t<CustomTag\r\n\t\t\t\t\ttooltip=\"Complete and submit this form for approval\"\r\n\t\t\t\t\tcolor=\"default\"\r\n\t\t\t\t\ticon={<EditOutlined />}\r\n\t\t\t\t\ttext=\"Draft\"\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\tcase \"Pending\":\r\n\t\t\treturn (\r\n\t\t\t\t<CustomTag\r\n\t\t\t\t\ttooltip=\"Waiting for workflow approval to complete\"\r\n\t\t\t\t\tcolor=\"blue\"\r\n\t\t\t\t\ticon={<ClockCircleOutlined />}\r\n\t\t\t\t\ttext=\"Pending Approval\"\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\tcase \"Roster\":\r\n\t\t\treturn (\r\n\t\t\t\t<CustomTag\r\n\t\t\t\t\ttooltip=\"Waiting for leave to be rostered\"\r\n\t\t\t\t\tcolor=\"purple\"\r\n\t\t\t\t\ticon={<CalendarOutlined />}\r\n\t\t\t\t\ttext=\"Pending Roster\"\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\tcase \"Declined\":\r\n\t\t\treturn (\r\n\t\t\t\t<CustomTag\r\n\t\t\t\t\ttooltip=\"A workflow approver has declined - the form must be reviewed / edited and resubmitted for approval\"\r\n\t\t\t\t\tcolor=\"red\"\r\n\t\t\t\t\ticon={<ExclamationOutlined />}\r\n\t\t\t\t\ttext=\"Declined\"\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\tcase \"Approved\":\r\n\t\t\treturn (\r\n\t\t\t\t<CustomTag\r\n\t\t\t\t\ttooltip=\"Fully approved form\"\r\n\t\t\t\t\tcolor=\"green\"\r\n\t\t\t\t\ticon={<CheckOutlined />}\r\n\t\t\t\t\ttext=\"Approved\"\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\tcase \"Locked\":\r\n\t\t\treturn (\r\n\t\t\t\t<CustomTag\r\n\t\t\t\t\ttooltip=\"This form is locked from editing and cannot be changed - contact the admin to unlock this form if changes are required\"\r\n\t\t\t\t\tcolor=\"gold\"\r\n\t\t\t\t\ticon={<LockFilled />}\r\n\t\t\t\t\ttext=\"Locked\"\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\tcase \"Cancelled\":\r\n\t\t\treturn (\r\n\t\t\t\t<CustomTag\r\n\t\t\t\t\ttooltip=\"This form was cancelled after it was submitted. It is no longer pending approval and needs to be submitted again.\"\r\n\t\t\t\t\tcolor=\"default\"\r\n\t\t\t\t\ticon={<CloseOutlined />}\r\n\t\t\t\t\ttext=\"Cancelled\"\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\tcase \"Closed\":\r\n\t\t\treturn (\r\n\t\t\t\t<CustomTag\r\n\t\t\t\t\ttooltip=\"This form is finalised and can only be viewed\"\r\n\t\t\t\t\tcolor=\"gold\"\r\n\t\t\t\t\ticon={<LockFilled />}\r\n\t\t\t\t\ttext=\"Finalised\"\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\tdefault:\r\n\t\t\treturn <>Error: Status of {status} is not recognised</>;\r\n\t}\r\n};\r\n\r\nexport default StatusTag;\r\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"className\", \"prefixCls\", \"style\", \"active\", \"status\", \"iconPrefix\", \"icon\", \"wrapperStyle\", \"stepNumber\", \"disabled\", \"description\", \"title\", \"subTitle\", \"progressDot\", \"stepIcon\", \"tailContent\", \"icons\", \"stepIndex\", \"onStepClick\", \"onClick\"];\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nfunction isString(str) {\n return typeof str === 'string';\n}\n\nvar Step = /*#__PURE__*/function (_React$Component) {\n _inherits(Step, _React$Component);\n\n var _super = _createSuper(Step);\n\n function Step() {\n var _this;\n\n _classCallCheck(this, Step);\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 = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function () {\n var _this$props = _this.props,\n onClick = _this$props.onClick,\n onStepClick = _this$props.onStepClick,\n stepIndex = _this$props.stepIndex;\n\n if (onClick) {\n onClick.apply(void 0, arguments);\n }\n\n onStepClick(stepIndex);\n });\n\n return _this;\n }\n\n _createClass(Step, [{\n key: \"renderIconNode\",\n value: function renderIconNode() {\n var _classNames;\n\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n progressDot = _this$props2.progressDot,\n stepIcon = _this$props2.stepIcon,\n stepNumber = _this$props2.stepNumber,\n status = _this$props2.status,\n title = _this$props2.title,\n description = _this$props2.description,\n icon = _this$props2.icon,\n iconPrefix = _this$props2.iconPrefix,\n icons = _this$props2.icons;\n var iconNode;\n var iconClassName = classNames(\"\".concat(prefixCls, \"-icon\"), \"\".concat(iconPrefix, \"icon\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-\").concat(icon), icon && isString(icon)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-check\"), !icon && status === 'finish' && (icons && !icons.finish || !icons)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-cross\"), !icon && status === 'error' && (icons && !icons.error || !icons)), _classNames));\n var iconDot = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon-dot\")\n }); // `progressDot` enjoy the highest priority\n\n if (progressDot) {\n if (typeof progressDot === 'function') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, progressDot(iconDot, {\n index: stepNumber - 1,\n status: status,\n title: title,\n description: description\n }));\n } else {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, iconDot);\n }\n } else if (icon && !isString(icon)) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icon);\n } else if (icons && icons.finish && status === 'finish') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icons.finish);\n } else if (icons && icons.error && status === 'error') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icons.error);\n } else if (icon || status === 'finish' || status === 'error') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n } else {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, stepNumber);\n }\n\n if (stepIcon) {\n iconNode = stepIcon({\n index: stepNumber - 1,\n status: status,\n title: title,\n description: description,\n node: iconNode\n });\n }\n\n return iconNode;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames2;\n\n var _this$props3 = this.props,\n className = _this$props3.className,\n prefixCls = _this$props3.prefixCls,\n style = _this$props3.style,\n active = _this$props3.active,\n _this$props3$status = _this$props3.status,\n status = _this$props3$status === void 0 ? 'wait' : _this$props3$status,\n iconPrefix = _this$props3.iconPrefix,\n icon = _this$props3.icon,\n wrapperStyle = _this$props3.wrapperStyle,\n stepNumber = _this$props3.stepNumber,\n disabled = _this$props3.disabled,\n description = _this$props3.description,\n title = _this$props3.title,\n subTitle = _this$props3.subTitle,\n progressDot = _this$props3.progressDot,\n stepIcon = _this$props3.stepIcon,\n tailContent = _this$props3.tailContent,\n icons = _this$props3.icons,\n stepIndex = _this$props3.stepIndex,\n onStepClick = _this$props3.onStepClick,\n onClick = _this$props3.onClick,\n restProps = _objectWithoutProperties(_this$props3, _excluded);\n\n var classString = classNames(\"\".concat(prefixCls, \"-item\"), \"\".concat(prefixCls, \"-item-\").concat(status), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-custom\"), icon), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-active\"), active), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-disabled\"), disabled === true), _classNames2));\n\n var stepItemStyle = _objectSpread({}, style);\n\n var accessibilityProps = {};\n\n if (onStepClick && !disabled) {\n accessibilityProps.role = 'button';\n accessibilityProps.tabIndex = 0;\n accessibilityProps.onClick = this.onClick;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, restProps, {\n className: classString,\n style: stepItemStyle\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n onClick: onClick\n }, accessibilityProps, {\n className: \"\".concat(prefixCls, \"-item-container\")\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-tail\")\n }, tailContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-icon\")\n }, this.renderIconNode()), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-content\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-title\")\n }, title, subTitle && /*#__PURE__*/React.createElement(\"div\", {\n title: typeof subTitle === 'string' ? subTitle : undefined,\n className: \"\".concat(prefixCls, \"-item-subtitle\")\n }, subTitle)), description && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-description\")\n }, description))));\n }\n }]);\n\n return Step;\n}(React.Component);\n\nexport { Step as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"prefixCls\", \"style\", \"className\", \"children\", \"direction\", \"type\", \"labelPlacement\", \"iconPrefix\", \"status\", \"size\", \"current\", \"progressDot\", \"stepIcon\", \"initial\", \"icons\", \"onChange\", \"items\"];\n\n/* eslint react/no-did-mount-set-state: 0, react/prop-types: 0 */\nimport classNames from 'classnames';\nimport React from 'react';\nimport Step from \"./Step\";\n\nvar Steps = /*#__PURE__*/function (_React$Component) {\n _inherits(Steps, _React$Component);\n\n var _super = _createSuper(Steps);\n\n function Steps() {\n var _this;\n\n _classCallCheck(this, Steps);\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 = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onStepClick\", function (next) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n current = _this$props.current;\n\n if (onChange && current !== next) {\n onChange(next);\n }\n });\n\n return _this;\n }\n\n _createClass(Steps, [{\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n _this$props2$style = _this$props2.style,\n style = _this$props2$style === void 0 ? {} : _this$props2$style,\n className = _this$props2.className,\n children = _this$props2.children,\n direction = _this$props2.direction,\n type = _this$props2.type,\n labelPlacement = _this$props2.labelPlacement,\n iconPrefix = _this$props2.iconPrefix,\n status = _this$props2.status,\n size = _this$props2.size,\n current = _this$props2.current,\n progressDot = _this$props2.progressDot,\n stepIcon = _this$props2.stepIcon,\n initial = _this$props2.initial,\n icons = _this$props2.icons,\n onChange = _this$props2.onChange,\n _this$props2$items = _this$props2.items,\n items = _this$props2$items === void 0 ? [] : _this$props2$items,\n restProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var isNav = type === 'navigation';\n var adjustedLabelPlacement = progressDot ? 'vertical' : labelPlacement;\n var classString = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(direction), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), size), _defineProperty(_classNames, \"\".concat(prefixCls, \"-label-\").concat(adjustedLabelPlacement), direction === 'horizontal'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot\"), !!progressDot), _defineProperty(_classNames, \"\".concat(prefixCls, \"-navigation\"), isNav), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString,\n style: style\n }, restProps), items.filter(function (item) {\n return item;\n }).map(function (item, index) {\n var mergedItem = _objectSpread({}, item);\n\n var stepNumber = initial + index; // fix tail color\n\n if (status === 'error' && index === current - 1) {\n mergedItem.className = \"\".concat(prefixCls, \"-next-error\");\n }\n\n if (!mergedItem.status) {\n if (stepNumber === current) {\n mergedItem.status = status;\n } else if (stepNumber < current) {\n mergedItem.status = 'finish';\n } else {\n mergedItem.status = 'wait';\n }\n }\n\n return /*#__PURE__*/React.createElement(Step, _extends({}, mergedItem, {\n active: stepNumber === current,\n stepNumber: stepNumber + 1,\n stepIndex: stepNumber,\n key: stepNumber,\n prefixCls: prefixCls,\n iconPrefix: iconPrefix,\n wrapperStyle: style,\n progressDot: progressDot,\n stepIcon: stepIcon,\n icons: icons,\n onStepClick: onChange && _this2.onStepClick\n }));\n }));\n }\n }]);\n\n return Steps;\n}(React.Component);\n\n_defineProperty(Steps, \"Step\", Step);\n\n_defineProperty(Steps, \"defaultProps\", {\n type: 'default',\n prefixCls: 'rc-steps',\n iconPrefix: 'rc',\n direction: 'horizontal',\n labelPlacement: 'horizontal',\n initial: 0,\n current: 0,\n status: 'process',\n size: '',\n progressDot: false\n});\n\nexport { Steps as default };","import Steps from \"./Steps\";\nimport Step from \"./Step\";\nexport { Step };\nexport default Steps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport RcSteps from 'rc-steps';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport Progress from '../progress';\nimport useLegacyItems from './useLegacyItems';\nvar Steps = function Steps(props) {\n var percent = props.percent,\n size = props.size,\n className = props.className,\n direction = props.direction,\n items = props.items,\n _props$responsive = props.responsive,\n responsive = _props$responsive === void 0 ? true : _props$responsive,\n _props$current = props.current,\n current = _props$current === void 0 ? 0 : _props$current,\n children = props.children,\n restProps = __rest(props, [\"percent\", \"size\", \"className\", \"direction\", \"items\", \"responsive\", \"current\", \"children\"]);\n var _useBreakpoint = useBreakpoint(responsive),\n xs = _useBreakpoint.xs;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n rtlDirection = _React$useContext.direction;\n var getDirection = React.useCallback(function () {\n return responsive && xs ? 'vertical' : direction;\n }, [xs, direction]);\n var prefixCls = getPrefixCls('steps', props.prefixCls);\n var iconPrefix = getPrefixCls('', props.iconPrefix);\n var mergedItems = useLegacyItems(items, children);\n var stepsClassName = classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtlDirection === 'rtl'), \"\".concat(prefixCls, \"-with-progress\"), percent !== undefined), className);\n var icons = {\n finish: /*#__PURE__*/React.createElement(CheckOutlined, {\n className: \"\".concat(prefixCls, \"-finish-icon\")\n }),\n error: /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-error-icon\")\n })\n };\n var stepIconRender = function stepIconRender(_ref) {\n var node = _ref.node,\n status = _ref.status;\n if (status === 'process' && percent !== undefined) {\n // currently it's hard-coded, since we can't easily read the actually width of icon\n var progressWidth = size === 'small' ? 32 : 40;\n // iconWithProgress\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-progress-icon\")\n }, /*#__PURE__*/React.createElement(Progress, {\n type: \"circle\",\n percent: percent,\n width: progressWidth,\n strokeWidth: 4,\n format: function format() {\n return null;\n }\n }), node);\n }\n return node;\n };\n return /*#__PURE__*/React.createElement(RcSteps, _extends({\n icons: icons\n }, restProps, {\n current: current,\n size: size,\n items: mergedItems,\n direction: getDirection(),\n stepIcon: stepIconRender,\n prefixCls: prefixCls,\n iconPrefix: iconPrefix,\n className: stepsClassName\n }));\n};\nSteps.Step = RcSteps.Step;\nexport default Steps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from '../_util/warning';\nfunction filter(items) {\n return items.filter(function (item) {\n return item;\n });\n}\nexport default function useLegacyItems(items, children) {\n if (items) {\n return items;\n }\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Steps', 'Step is deprecated. Please use `items` directly.') : void 0;\n var childrenItems = toArray(children).map(function (node) {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n var props = node.props;\n var item = _extends({}, props);\n return item;\n }\n return null;\n });\n return filter(childrenItems);\n}","import React from \"react\";\r\nimport { Steps as AntdSteps, Grid } from \"antd\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { selectCurrentPageId, selectAllPages } from \"reducers\";\r\nimport { selectQnaIsLocked, sessionEdited } from \"reducers/formSlice\";\r\n\r\nconst { useBreakpoint } = Grid;\r\nconst verticalStyle = {\r\n\tminWidth: 200,\r\n\tmaxWidth: 200,\r\n\tmargin: \"0 0 15px 0\",\r\n};\r\nconst horizontalStyle = {\r\n\tmargin: \"0 0 15px 0\",\r\n};\r\n\r\nconst Steps = ({ responsive = false }) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst isLocked = useSelector(selectQnaIsLocked);\r\n\tconst currentPageId = useSelector(selectCurrentPageId);\r\n\tconst pages = useSelector(selectAllPages);\r\n\tconst screens = useBreakpoint();\r\n\r\n\t//antd steps work by index not Ids, so need to find the index\r\n\t//of the current page\r\n\tconst current = pages.findIndex((p) => p.id === currentPageId);\r\n\tconst onChange = (current) => {\r\n\t\tconst pageId = pages[current].id;\r\n\t\tdispatch(sessionEdited({ currentPage: pageId }));\r\n\t};\r\n\tconst style = screens.md ? verticalStyle : horizontalStyle;\r\n\tconst otherProps = responsive\r\n\t\t? {\r\n\t\t\t\tdirection: screens.md ? \"vertical\" : \"horizontal\",\r\n\t\t\t\tlabelPlacement: screens.md ? \"horizontal\" : \"vertical\",\r\n\t\t\t\tsize: screens.md ? \"default\" : \"small\",\r\n\t\t }\r\n\t\t: {\r\n\t\t\t\tdirection: \"horizontal\",\r\n\t\t\t\tlabelPlacement: \"vertical\",\r\n\t\t\t\tsize: screens.md ? \"default\" : \"small\",\r\n\t\t };\r\n\r\n\tconst items = pages.map((p) => ({ title: p.title }));\r\n\r\n\treturn (\r\n\t\t<div className=\"steps-container\">\r\n\t\t\t<AntdSteps\r\n\t\t\t\tcurrent={current}\r\n\t\t\t\t{...otherProps}\r\n\t\t\t\tstyle={style}\r\n\t\t\t\tonChange={isLocked ? onChange : null}\r\n\t\t\t\titems={items}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Steps;\r\n","import React from \"react\";\r\nimport { DatePicker as AntdDatePicker } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nconst DatePicker = ({\r\n\tdefaultValue,\r\n\tdispatch,\r\n\tname,\r\n\tformat,\r\n\tisNew,\r\n\tdataType,\r\n\tquestionId,\r\n\toutputFormat = \"YYYY-MM-DD\",\r\n\tdisabledDate,\r\n\t...otherProps\r\n}) => {\r\n\t//data is stored in ISO format, rendered in local format\r\n\tconst dateValue = defaultValue\r\n\t\t? moment(defaultValue, \"YYYY-MM-DD HH:mm\")\r\n\t\t: null;\r\n\tconst renderDateValue = dateValue ? moment(dateValue, format) : null;\r\n\tconst [answerAdded, answerEdited] = dispatch;\r\n\tconst handleDispatch = (e, date) => {\r\n\t\tlet data = {\r\n\t\t\tquestionId: questionId,\r\n\t\t\tvalue: date ? moment(date, format).format(outputFormat) : null,\r\n\t\t\tid: name,\r\n\t\t};\r\n\t\tif (!isNew) answerEdited(data);\r\n\t\telse answerAdded(data);\r\n\t};\r\n\treturn (\r\n\t\t<AntdDatePicker\r\n\t\t\tallowClear={true}\r\n\t\t\tshowTime={dataType === \"datetime\"}\r\n\t\t\tformat={format}\r\n\t\t\tdefaultValue={renderDateValue}\r\n\t\t\tonChange={handleDispatch}\r\n\t\t\tname={name}\r\n\t\t\t{...otherProps}\r\n\t\t\tsuffixIcon={null}\r\n\t\t\tdisabledDate={disabledDate}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default DatePicker;\r\n","import React from \"react\";\r\nimport { Radio } from \"antd\";\r\n\r\nconst RadioGroup = ({\r\n\tdefaultValue,\r\n\tdispatch,\r\n\tname,\r\n\tlookup,\r\n\tisNew,\r\n\tquestionId,\r\n\tdataType,\r\n\t...otherProps\r\n}) => {\r\n\tconst [answerAdded, answerEdited] = dispatch;\r\n\tconst onChange = (e) => {\r\n\t\tlet data = {\r\n\t\t\tquestionId: questionId,\r\n\t\t\tvalue: e.target.value,\r\n\t\t\tid: name,\r\n\t\t\tdataType: dataType,\r\n\t\t};\r\n\t\tif (!isNew) answerEdited(data);\r\n\t\telse answerAdded(data);\r\n\t};\r\n\treturn lookup ? (\r\n\t\t<Radio.Group value={defaultValue} onChange={onChange} {...otherProps}>\r\n\t\t\t{lookup.map((p) => (\r\n\t\t\t\t<Radio key={p.code} value={p.code}>\r\n\t\t\t\t\t{p.description}\r\n\t\t\t\t</Radio>\r\n\t\t\t))}\r\n\t\t</Radio.Group>\r\n\t) : (\r\n\t\t<p>Error: a radio group was rendered but no lookup list was passed</p>\r\n\t);\r\n};\r\n\r\nexport default RadioGroup;\r\n","import React from \"react\";\r\nimport { Select as AntdSelect } from \"antd\";\r\n\r\nconst { Option } = AntdSelect;\r\n\r\nconst Select = ({\r\n\tdefaultValue,\r\n\tdispatch,\r\n\tname,\r\n\tquestionId,\r\n\trow,\r\n\tlookup,\r\n\tplaceholder,\r\n\tisNew,\r\n\tdataType,\r\n\toptions,\r\n\t...otherProps\r\n}) => {\r\n\tconst { valueField, showCode, multiple, mode } = options || {\r\n\t\tvalueField: null,\r\n\t\tshowCode: false,\r\n\t\tmultiple: false,\r\n\t};\r\n\r\n\tconst [answerAdded, answerEdited] = dispatch;\r\n\r\n\tconst onChange = (value, options) => {\r\n\t\tlet conditionalValue;\r\n\t\t//if multiple options came, and the mode is not multiple - this happens for tag-based Select that is forcibly multi select by Antd\r\n\t\tif (options?.length > 0 && !multiple) {\r\n\t\t\tconditionalValue = options.length === 1 ? value[0] : value.join(\"\");\r\n\t\t} else {\r\n\t\t\tconditionalValue = value;\r\n\t\t}\r\n\t\tlet data = {\r\n\t\t\tquestionId: questionId,\r\n\t\t\tvalue: conditionalValue,\r\n\t\t\tid: name,\r\n\t\t\trow: row,\r\n\t\t};\r\n\r\n\t\tif (!isNew) answerEdited(data);\r\n\t\telse answerAdded(data);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<AntdSelect\r\n\t\t\tallowClear\r\n\t\t\tshowSearch\r\n\t\t\tmode={mode}\r\n\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\tonChange={onChange}\r\n\t\t\tvalue={defaultValue ? defaultValue : undefined}\r\n\t\t\tplaceholder={placeholder || \"Search by description\"}\r\n\t\t\tfilterOption={(input, option) =>\r\n\t\t\t\toption?.children\r\n\t\t\t\t\t?.toString()\r\n\t\t\t\t\t.toLowerCase()\r\n\t\t\t\t\t.indexOf(input.toLowerCase()) >= 0\r\n\t\t\t}\r\n\t\t\t{...otherProps}\r\n\t\t\ttagRender={({ value, label }) => {\r\n\t\t\t\treturn label !== value ? label[0] : value;\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t{lookup.map((p) => (\r\n\t\t\t\t<Option\r\n\t\t\t\t\tkey={p.code}\r\n\t\t\t\t\tvalue={valueField ? p[valueField] : p.code}\r\n\t\t\t\t\tclassName=\"antd-select-option\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{p.description}\r\n\t\t\t\t\t{showCode && p.code && ` (${p.code})`}\r\n\t\t\t\t</Option>\r\n\t\t\t))}\r\n\t\t</AntdSelect>\r\n\t);\r\n};\r\n\r\nexport default Select;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Input, InputNumber } from \"antd\";\r\nimport { getFormattedNumber } from \"utils/common\";\r\n\r\nconst Text = (props) => {\r\n\t//when initialised as null, the state doesn't get updated when defaultValue changes\r\n\tconst {\r\n\t\tdefaultValue,\r\n\t\tdispatch,\r\n\t\tname,\r\n\t\tisNew,\r\n\t\tquestionId,\r\n\t\trow,\r\n\t\tdataType,\r\n\t\tprefix,\r\n\t\tsuffix,\r\n\t\toptions,\r\n\t\t...otherProps\r\n\t} = props;\r\n\tconst [state, setState] = useState(defaultValue);\r\n\tconst [isTouched, setIsTouched] = useState(false);\r\n\tconst [answerAdded, answerEdited] = dispatch;\r\n\r\n\tconst { wordCount } = options || {};\r\n\r\n\t//reset the state when new default value is received\r\n\t//this is necessary when an async thunk changes values\r\n\t//but the state inside the component does not get reset\r\n\tuseEffect(() => {\r\n\t\tsetState(defaultValue);\r\n\t}, [defaultValue]);\r\n\r\n\tconst handleDispatch = () => {\r\n\t\tif (isTouched) {\r\n\t\t\tlet data = {\r\n\t\t\t\tquestionId: questionId,\r\n\t\t\t\tvalue: state,\r\n\t\t\t\tid: name,\r\n\t\t\t\trow: row,\r\n\t\t\t\tdataType: dataType,\r\n\t\t\t};\r\n\t\t\tif (!isNew) answerEdited(data);\r\n\t\t\telse answerAdded(data);\r\n\t\t\tsetIsTouched(false);\r\n\t\t}\r\n\t};\r\n\tconst handleKeyDown = (e) => {\r\n\t\tif (e.which !== 9) setIsTouched(true); //not dirty on tab\r\n\t\tif (e.which === 13) {\r\n\t\t\thandleDispatch();\r\n\t\t}\r\n\t};\r\n\tconst currencyFormatter = (value) =>\r\n\t\tgetFormattedNumber(value);\r\n\tconst numericFormatter = (value) =>\r\n\t\tgetFormattedNumber(value);\r\n\tconst numericParser = (value) => value.replace(/\\$\\s?|(,*)/g, \"\");\r\n\r\n\treturn dataType === \"numeric\" || dataType === \"currency\" ? (\r\n\t\t<InputNumber\r\n\t\t\tdefaultValue={defaultValue}\r\n\t\t\tonChange={(value) => setState(value)}\r\n\t\t\tonKeyDown={handleKeyDown}\r\n\t\t\tonBlur={handleDispatch}\r\n\t\t\tvalue={!isTouched ? defaultValue : state}\r\n\t\t\t{...otherProps}\r\n\t\t\tformatter={\r\n\t\t\t\tdataType === \"currency\" ? currencyFormatter : numericFormatter\r\n\t\t\t}\r\n\t\t\tparser={numericParser}\r\n\t\t\tcontrols={false} //turns off useless +/- buttons\r\n\t\t\tclassName=\"text-align-right\"\r\n\t\t\tstyle={{ width: \"100%\" }}\r\n\t\t\taddonBefore={dataType === \"currency\" ? \"$\" : null}\r\n\t\t/>\r\n\t) : (\r\n\t\t<>\r\n\t\t\t<Input\r\n\t\t\t\tdefaultValue={defaultValue}\r\n\t\t\t\tonChange={(e) => setState(e.target.value)}\r\n\t\t\t\tonKeyDown={handleKeyDown}\r\n\t\t\t\tonBlur={handleDispatch}\r\n\t\t\t\tvalue={!isTouched ? defaultValue : state}\r\n\t\t\t\tsize=\"medium\"\r\n\t\t\t\tprefix={prefix}\r\n\t\t\t\tsuffix={suffix}\r\n\t\t\t\t{...otherProps}\r\n\t\t\t/>\r\n\t\t\t{wordCount && (\r\n\t\t\t\t<span style={{ fontSize: \"small\", color: \"#aaa\" }}>\r\n\t\t\t\t\t(\r\n\t\t\t\t\t{`${state ? state.length : 0} of ${\r\n\t\t\t\t\t\twordCount?.max\r\n\t\t\t\t\t} characters`}\r\n\t\t\t\t\t)\r\n\t\t\t\t</span>\r\n\t\t\t)}\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default Text;\r\n","import React, { useState } from \"react\";\r\nimport { Input } from \"antd\";\r\n\r\nconst { TextArea: AntdTextArea } = Input;\r\n\r\nconst TextArea = ({\r\n\tdefaultValue,\r\n\tdispatch,\r\n\tname,\r\n\tquestionId,\r\n\tisNew,\r\n\trows,\r\n\tdataType,\r\n\trow,\r\n\t...otherProps\r\n}) => {\r\n\tconst [state, setState] = useState(defaultValue);\r\n\tconst [isTouched, setIsTouched] = useState(false);\r\n\r\n\tconst [answerAdded, answerEdited] = dispatch;\r\n\tconst handleDispatch = () => {\r\n\t\tif (isTouched) {\r\n\t\t\tlet data = {\r\n\t\t\t\tquestionId: questionId,\r\n\t\t\t\tid: name,\r\n\t\t\t\tvalue: state,\r\n\t\t\t\trow: row,\r\n\t\t\t\tdataType: dataType,\r\n\t\t\t};\r\n\t\t\tif (!isNew) answerEdited(data);\r\n\t\t\telse answerAdded(data);\r\n\t\t\tsetIsTouched(false);\r\n\t\t}\r\n\t};\r\n\tconst handleKeyDown = (e) => {\r\n\t\tif (e.which !== 9) setIsTouched(true); //not dirty on tab\r\n\t};\r\n\treturn (\r\n\t\t<AntdTextArea\r\n\t\t\tautoSize={{ minRows: rows }}\r\n\t\t\tonBlur={handleDispatch}\r\n\t\t\tonKeyDown={handleKeyDown}\r\n\t\t\tonChange={(e) => setState(e.target.value)}\r\n\t\t\tname={name}\r\n\t\t\tdefaultValue={!isTouched ? defaultValue : state}\r\n\t\t\tvalue={state}\r\n\t\t\t{...otherProps}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default TextArea;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { fetchApprovers } from \"../reducers/workflowsSlice\";\r\nimport { Select } from \"antd\";\r\nimport Checkbox from \"antd/lib/checkbox/Checkbox\";\r\nimport _ from \"lodash\";\r\n\r\nconst { Option } = Select;\r\n\r\nconst ApproverSearch = ({\r\n\troleId,\r\n\torganisationId,\r\n\tdomain,\r\n\tvalue,\r\n\tonChange,\r\n}) => {\r\n\tconst [data, setData] = useState([]);\r\n\tconst [ignoreOrg, setIgnoreOrg] = useState(false);\r\n\tconst dispatch = useDispatch();\r\n\r\n\tuseEffect(() => {\r\n\t\tlet isMounted = true; //mutable flag\r\n\t\tconst fetchData = async () => {\r\n\t\t\tconst response = await dispatch(\r\n\t\t\t\tfetchApprovers({\r\n\t\t\t\t\troleId: ignoreOrg ? null : roleId,\r\n\t\t\t\t\torganisationId: ignoreOrg ? null : organisationId,\r\n\t\t\t\t\tdomain,\r\n\t\t\t\t})\r\n\t\t\t).unwrap();\r\n\t\t\tif (response && response.length && isMounted) {\r\n\t\t\t\tconst trimmed = response.map((d) => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tfullName: d.fullName,\r\n\t\t\t\t\t\tuserId: d.userId,\r\n\t\t\t\t\t\tjobTitle: d.jobTitle,\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\t\t\t\tconst data = _.uniqWith(trimmed, _.isEqual);\r\n\t\t\t\tsetData(data); //check mounted flag\r\n\t\t\t}\r\n\t\t};\r\n\t\tfetchData();\r\n\t\treturn () => {\r\n\t\t\tisMounted = false;\r\n\t\t}; //clean up, mounted untrue\r\n\t}, [dispatch, roleId, ignoreOrg, organisationId, domain]);\r\n\r\n\tconst triggerChange = (value) => {\r\n\t\tonChange?.(value);\r\n\t};\r\n\r\n\tconst options = data\r\n\t\t.sort((a, b) =>\r\n\t\t\ta.fullName === b.fullName ? 0 : a.fullName > b.fullName ? 1 : -1\r\n\t\t)\r\n\t\t.map((d) => {\r\n\t\t\treturn (\r\n\t\t\t\t<Option key={d.userId} value={d.userId}>\r\n\t\t\t\t\t{`${d.fullName} ${d.jobTitle ? `(${d.jobTitle})` : \"\"}`}\r\n\t\t\t\t</Option>\r\n\t\t\t);\r\n\t\t});\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Select\r\n\t\t\t\tshowSearch\r\n\t\t\t\tvalue={value}\r\n\t\t\t\tonChange={triggerChange}\r\n\t\t\t\tdefaultActiveFirstOption={false}\r\n\t\t\t\tplaceholder=\"Pick a person from this list\"\r\n\t\t\t\tfilterOption={(input, option) =>\r\n\t\t\t\t\toption.children.toLowerCase().includes(input.toLowerCase())\r\n\t\t\t\t}\r\n\t\t\t>\r\n\t\t\t\t{options}\r\n\t\t\t</Select>\r\n\t\t\t<Checkbox\r\n\t\t\t\tonChange={(e) => setIgnoreOrg(e.target.checked)}\r\n\t\t\t\tstyle={{ marginTop: 10, marginBottom: 20 }}\r\n\t\t\t>\r\n\t\t\t\tSearch for Any Approver\r\n\t\t\t</Checkbox>\r\n\t\t\t<p style={{ color: \"#555\" }}>\r\n\t\t\t\tYou can only change to another person who has the same level of\r\n\t\t\t\taccess / same role as the original person.\r\n\t\t\t</p>\r\n\t\t\t<p style={{ color: \"#555\" }}>\r\n\t\t\t\tIf you don't see the person you want here, you will need to\r\n\t\t\t\tcheck that they have the appropriate access levels with support.\r\n\t\t\t\tOtherwise, delegate this workflow instead.\r\n\t\t\t</p>\r\n\t\t\t<p style={{ color: \"#555\" }}>\r\n\t\t\t\tIf you'd like to instead search for anyone regardless of their\r\n\t\t\t\trole & team, tick the \"Search for Any Approver\" option.\r\n\t\t\t</p>\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default ApproverSearch;\r\n","import React from \"react\";\r\nimport { fetchRoles, selectAllRoles } from \"./roleSlice\";\r\nimport { Select } from \"antd\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nconst { Option } = Select;\r\n\r\nconst RoleSelector = ({ value, onChange }) => {\r\n\tconst dispatch = useDispatch();\r\n\tReact.useEffect(() => {\r\n\t\tdispatch(fetchRoles());\r\n\t}, [dispatch]);\r\n\r\n\tconst roles = useSelector(selectAllRoles);\r\n\r\n\treturn (\r\n\t\t<Select value={value} onChange={onChange}>\r\n\t\t\t{roles.map((t) => (\r\n\t\t\t\t<Option key={t.id} value={t.roleId}>\r\n\t\t\t\t\t{t.roleName}\r\n\t\t\t\t</Option>\r\n\t\t\t))}\r\n\t\t</Select>\r\n\t);\r\n};\r\n\r\nexport default RoleSelector;\r\n","import React from \"react\";\r\nimport { Select } from \"antd\";\r\n\r\nconst { Option } = Select;\r\n\r\nconst TypeSelector = ({ types, value, onChange }) => {\r\n\treturn (\r\n\t\t<Select value={value} onChange={onChange}>\r\n\t\t\t{types.map((t) => (\r\n\t\t\t\t<Option key={t} value={t}>\r\n\t\t\t\t\t{t}\r\n\t\t\t\t</Option>\r\n\t\t\t))}\r\n\t\t</Select>\r\n\t);\r\n};\r\n\r\nexport default TypeSelector;\r\n","import React from \"react\";\r\nimport { Select } from \"antd\";\r\n\r\nconst { Option } = Select;\r\n\r\nconst SequenceSelector = ({ sequences, value, onChange }) => {\r\n\tconst last = sequences[sequences.length - 1];\r\n\r\n\treturn (\r\n\t\t<Select value={value} onChange={onChange}>\r\n\t\t\t{sequences.map((t) => (\r\n\t\t\t\t<Option key={t.id} value={t.sequence}>\r\n\t\t\t\t\t{`Before ${t.user?.fullName ?? \"Unknown\"} (${\r\n\t\t\t\t\t\tt.role?.title\r\n\t\t\t\t\t})`}\r\n\t\t\t\t</Option>\r\n\t\t\t))}\r\n\t\t\t<Option value={last?.sequence + 1}>\r\n\t\t\t\t{`After ${last?.user?.fullName ?? \"Unknown\"} (${\r\n\t\t\t\t\tlast?.role?.title\r\n\t\t\t\t})`}\r\n\t\t\t</Option>\r\n\t\t</Select>\r\n\t);\r\n};\r\n\r\nexport default SequenceSelector;\r\n","import React, { useState } from \"react\";\r\nimport { Modal, Form, Input, Checkbox } from \"antd\";\r\nimport PersonSearch from \"components/PersonSearch\";\r\nimport ApproverSearch from \"components/ApproverSearch\";\r\nimport { useSelector } from \"react-redux\";\r\nimport RoleSelector from \"features/capex/role/RoleSelector\";\r\nimport {\r\n\tselectAllWorkflows,\r\n\tselectWorkflowTypes,\r\n} from \"reducers/workflowsSlice\";\r\nimport TypeSelector from \"features/approval/TypeSelector\";\r\nimport SequenceSelector from \"features/approval/SequenceSelector\";\r\nimport PersonSearchAd from \"components/PersonSearchAd\";\r\nimport { selectGlobal } from \"reducers/global\";\r\nimport { selectUserOrganisation } from \"reducers/securitySlice\";\r\n\r\nconst { TextArea } = Input;\r\n\r\nconst Comment = (props) => {\r\n\t/*\r\n comments are tied to events in a form\r\n to be independent from event logic, this component needs\r\n 1. a dispatcher to call onSuccess - handle database and redux\r\n this will handle the other data that Comment doesn't know about\r\n 2. know a list of valid events and what fields/labels it needs\r\n 3. a dispatcher dedicated to comment and event logging\r\n */\r\n\tconst [form] = Form.useForm();\r\n\tconst [state, setState] = useState();\r\n\tconst [userId, setUserId] = useState(null);\r\n\tconst [changeUserId, setChangeUserId] = useState(null);\r\n\tconst [roleId, setRoleId] = useState(null);\r\n\tconst [sequence, setSequence] = useState(null);\r\n\tconst [workflowType, setWorkflowType] = useState(null);\r\n\tconst {\r\n\t\ttype,\r\n\t\tonOk,\r\n\t\tonCancel,\r\n\t\tinitialValues,\r\n\t\tdefaultOptions,\r\n\t\t...otherProps\r\n\t} = props;\r\n\r\n\tconst { label, title, required, footer } = COMMENT_LABELS.find(\r\n\t\t(f) => f.type === type\r\n\t) || { label: \"\", title: \"\", required: false, footer: null };\r\n\r\n\tconst { appId } = useSelector(selectGlobal);\r\n\tconst types = useSelector(selectWorkflowTypes);\r\n\tconst workflows = useSelector(selectAllWorkflows);\r\n\tconst org = useSelector(selectUserOrganisation);\r\n\r\n\tconst setWorkflowTypeAndClearSequence = (value) => {\r\n\t\tsetSequence(null);\r\n\t\tsetWorkflowType(value);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<Modal\r\n\t\t\t{...otherProps}\r\n\t\t\tonOk={() => {\r\n\t\t\t\tform.validateFields()\r\n\t\t\t\t\t.then((values) => {\r\n\t\t\t\t\t\tform.resetFields();\r\n\t\t\t\t\t\tonOk(values);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((info) => {\r\n\t\t\t\t\t\tconsole.log(\"Validate Failed:\", info);\r\n\t\t\t\t\t});\r\n\t\t\t}}\r\n\t\t\tonCancel={() => {\r\n\t\t\t\tform.resetFields();\r\n\t\t\t\tsetUserId(null);\r\n\t\t\t\tsetChangeUserId(null);\r\n\t\t\t\tonCancel();\r\n\t\t\t}}\r\n\t\t\tmaskClosable={false}\r\n\t\t\tdestroyOnClose={true}\r\n\t\t>\r\n\t\t\t<h1>{title}</h1>\r\n\t\t\t<Form\r\n\t\t\t\tform={form}\r\n\t\t\t\tname=\"commentForm\"\r\n\t\t\t\tlayout=\"vertical\"\r\n\t\t\t\tvalidateTrigger=\"onChange\"\r\n\t\t\t\tinitialValues={initialValues}\r\n\t\t\t\tpreserve={false}\r\n\t\t\t>\r\n\t\t\t\t{type === \"Change\" && (\r\n\t\t\t\t\t<Form.Item\r\n\t\t\t\t\t\tlabel=\"Change To\"\r\n\t\t\t\t\t\tname=\"changeUserId\"\r\n\t\t\t\t\t\trules={[\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\trequired: true,\r\n\t\t\t\t\t\t\t\tmessage: \"Change to is mandatory\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t]}\r\n\t\t\t\t\t\tvaluePropName=\"value\"\r\n\t\t\t\t\t\ttrigger=\"onChange\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{process.env.REACT_APP_CAPEX_AUTOREGISTER === \"true\" ? (\r\n\t\t\t\t\t\t\t<PersonSearchAd\r\n\t\t\t\t\t\t\t\tvalue={changeUserId}\r\n\t\t\t\t\t\t\t\tonChange={setChangeUserId}\r\n\t\t\t\t\t\t\t\toptions={{ valueKey: \"EmailAddress\" }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<ApproverSearch\r\n\t\t\t\t\t\t\t\troleId={defaultOptions[0].roleId}\r\n\t\t\t\t\t\t\t\torganisationId={\r\n\t\t\t\t\t\t\t\t\tdefaultOptions[0].organisationId\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tdomain={org}\r\n\t\t\t\t\t\t\t\tvalue={changeUserId}\r\n\t\t\t\t\t\t\t\tonChange={setChangeUserId}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Form.Item>\r\n\t\t\t\t)}\r\n\t\t\t\t{(type === \"Query\" ||\r\n\t\t\t\t\ttype === \"Delegate\" ||\r\n\t\t\t\t\ttype === \"Add\") && (\r\n\t\t\t\t\t<Form.Item\r\n\t\t\t\t\t\tlabel=\"Person To\"\r\n\t\t\t\t\t\tname=\"userId\"\r\n\t\t\t\t\t\trules={[\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\trequired: true,\r\n\t\t\t\t\t\t\t\tmessage: \"Person to is mandatory\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t]}\r\n\t\t\t\t\t\tvaluePropName=\"value\"\r\n\t\t\t\t\t\ttrigger=\"onChange\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{process.env.REACT_APP_CAPEX_AUTOREGISTER === \"true\" ? (\r\n\t\t\t\t\t\t\t<PersonSearchAd\r\n\t\t\t\t\t\t\t\tvalue={changeUserId}\r\n\t\t\t\t\t\t\t\tonChange={setChangeUserId}\r\n\t\t\t\t\t\t\t\toptions={{ valueKey: \"EmailAddress\" }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<PersonSearch\r\n\t\t\t\t\t\t\t\tappHierarchyId={appId}\r\n\t\t\t\t\t\t\t\tdefaultOptions={defaultOptions}\r\n\t\t\t\t\t\t\t\tvalue={userId}\r\n\t\t\t\t\t\t\t\tonChange={setUserId}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Form.Item>\r\n\t\t\t\t)}\r\n\t\t\t\t{type === \"Add\" && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t<Form.Item label=\"Workflow Role\" name=\"roleId\">\r\n\t\t\t\t\t\t\t<RoleSelector value={roleId} onChange={setRoleId} />\r\n\t\t\t\t\t\t</Form.Item>\r\n\t\t\t\t\t\t{types && types.length > 0 && (\r\n\t\t\t\t\t\t\t<Form.Item\r\n\t\t\t\t\t\t\t\tlabel=\"Type of Workflow\"\r\n\t\t\t\t\t\t\t\tname=\"type\"\r\n\t\t\t\t\t\t\t\trules={[\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\trequired: true,\r\n\t\t\t\t\t\t\t\t\t\tmessage: \"Type is mandatory\",\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<TypeSelector\r\n\t\t\t\t\t\t\t\t\tvalue={workflowType}\r\n\t\t\t\t\t\t\t\t\tonChange={setWorkflowTypeAndClearSequence}\r\n\t\t\t\t\t\t\t\t\ttypes={types}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Form.Item>\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{(!types || !types.length > 0 || workflowType) && (\r\n\t\t\t\t\t\t\t<Form.Item\r\n\t\t\t\t\t\t\t\tlabel=\"Sequence\"\r\n\t\t\t\t\t\t\t\tname=\"sequence\"\r\n\t\t\t\t\t\t\t\trules={[\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\trequired: true,\r\n\t\t\t\t\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\t\t\t\t\t\"Please choose where this workflow should go\",\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\tdependencies={[\"type\"]}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<SequenceSelector\r\n\t\t\t\t\t\t\t\t\tvalue={sequence}\r\n\t\t\t\t\t\t\t\t\tonChange={setSequence}\r\n\t\t\t\t\t\t\t\t\tsequences={workflows.filter(\r\n\t\t\t\t\t\t\t\t\t\t(w) =>\r\n\t\t\t\t\t\t\t\t\t\t\tw.type === workflowType ||\r\n\t\t\t\t\t\t\t\t\t\t\t!types ||\r\n\t\t\t\t\t\t\t\t\t\t\t!types.length > 0\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</Form.Item>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</>\r\n\t\t\t\t)}\r\n\t\t\t\t<Form.Item\r\n\t\t\t\t\tlabel={label}\r\n\t\t\t\t\tname=\"comments\"\r\n\t\t\t\t\trules={[\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\trequired: required,\r\n\t\t\t\t\t\t\tmessage: \"Comments are mandatory\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmax: 1000,\r\n\t\t\t\t\t\t\tmessage: \"Comments can't exceed 1,000 characters\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t]}\r\n\t\t\t\t>\r\n\t\t\t\t\t<TextArea\r\n\t\t\t\t\t\trows={5}\r\n\t\t\t\t\t\tvalue={state}\r\n\t\t\t\t\t\tonChange={(e) => setState(e.target.value)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</Form.Item>\r\n\t\t\t\t{footer}\r\n\t\t\t</Form>\r\n\t\t</Modal>\r\n\t);\r\n};\r\n\r\nexport const COMMENT_LABELS = [\r\n\t{\r\n\t\ttype: \"Approve\",\r\n\t\tlabel: \"Comments (optional)\",\r\n\t\ttitle: \"Approve\",\r\n\t\trequired: false,\r\n\t},\r\n\t{\r\n\t\ttype: \"ApproveCme\",\r\n\t\tlabel: \"Comments (optional)\",\r\n\t\ttitle: \"Approve\",\r\n\t\trequired: false,\r\n\t\tfooter: (\r\n\t\t\t<div style={{ color: \"#777\", marginTop: 10 }}>\r\n\t\t\t\tI confirm this expense meets the standards outlined in the CME\r\n\t\t\t\tpolicy and is relevant to my education.\r\n\t\t\t</div>\r\n\t\t),\r\n\t},\r\n\t{\r\n\t\ttype: \"Decline\",\r\n\t\tlabel: \"Please provide comments for your decision\",\r\n\t\ttitle: \"Decline\",\r\n\t\trequired: true,\r\n\t},\r\n\t{\r\n\t\ttype: \"Submit\",\r\n\t\tlabel: \"Please provide comments for the approvers\",\r\n\t\ttitle: \"Submit\",\r\n\t\trequired: false,\r\n\t},\r\n\t{\r\n\t\ttype: \"SubmitCme\",\r\n\t\tlabel: \"Comments (optional)\",\r\n\t\ttitle: \"Submit\",\r\n\t\trequired: false,\r\n\t\tfooter: (\r\n\t\t\t<Form.Item\r\n\t\t\t\tname=\"confirmation\"\r\n\t\t\t\tlabel=\"Declaration\"\r\n\t\t\t\trules={[\r\n\t\t\t\t\t(_) => ({\r\n\t\t\t\t\t\tmessage: \"Confirmation is required\",\r\n\t\t\t\t\t\tvalidator(_, value) {\r\n\t\t\t\t\t\t\tif (value === true) {\r\n\t\t\t\t\t\t\t\treturn Promise.resolve();\r\n\t\t\t\t\t\t\t} else return Promise.reject(new Error());\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}),\r\n\t\t\t\t]}\r\n\t\t\t\tvalidateTrigger=\"onSubmit\"\r\n\t\t\t\tvaluePropName=\"checked\"\r\n\t\t\t>\r\n\t\t\t\t<Checkbox>\r\n\t\t\t\t\tI confirm this expense meets the standards outlined in the\r\n\t\t\t\t\tDistrict's CME / CPD policy and is relevant to education.\r\n\t\t\t\t</Checkbox>\r\n\t\t\t</Form.Item>\r\n\t\t),\r\n\t},\r\n\t{\r\n\t\ttype: \"Resume\",\r\n\t\tlabel: \"Please provide comments for the approvers\",\r\n\t\ttitle: \"Resubmit\",\r\n\t\trequired: false,\r\n\t},\r\n\t{\r\n\t\ttype: \"Delegate\",\r\n\t\tlabel: \"Please provide comments for your delegation reason\",\r\n\t\ttitle: \"Delegate\",\r\n\t\trequired: false,\r\n\t},\r\n\t{\r\n\t\ttype: \"Add\",\r\n\t\tlabel: \"(Optional) Please provide comments on why this person is being added\",\r\n\t\ttitle: \"Add\",\r\n\t\trequired: false,\r\n\t},\r\n\t{\r\n\t\ttype: \"Query\",\r\n\t\tlabel: \"Please provide details of your query here\",\r\n\t\ttitle: \"Query\",\r\n\t\trequired: false,\r\n\t},\r\n\t{\r\n\t\ttype: \"Change\",\r\n\t\tlabel: \"Comments\",\r\n\t\ttitle: \"Change approver\",\r\n\t\trequired: false,\r\n\t},\r\n\t{\r\n\t\ttype: \"Lock\",\r\n\t\tlabel: \"Comments (optional)\",\r\n\t\ttitle: \"Lock Form from Editing\",\r\n\t\trequired: false,\r\n\t},\r\n\t{\r\n\t\ttype: \"Unlock\",\r\n\t\tlabel: \"Please provide comments on why you are unlocking the form\",\r\n\t\ttitle: \"Unlock Form for Editing\",\r\n\t\trequired: true,\r\n\t},\r\n\t{\r\n\t\ttype: \"Delete\",\r\n\t\tlabel: \"Comments\",\r\n\t\ttitle: \"Delete approver\",\r\n\t\trequired: false,\r\n\t},\r\n\t{\r\n\t\ttype: \"Respond\",\r\n\t\tlabel: \"Please provide comments in response to the query you received\",\r\n\t\ttitle: \"Respond to Query\",\r\n\t\trequired: true,\r\n\t},\r\n];\r\n\r\nexport default Comment;\r\n","import { Col, Row } from \"antd\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n\tselectAllWorkflowHistoryIds,\r\n\tselectWorkflowHistoryById,\r\n} from \"reducers/workflowHistorySlice\";\r\nimport dayjs from \"dayjs\";\r\nimport { CommentOutlined } from \"@ant-design/icons\";\r\nimport utc from \"dayjs/plugin/utc\";\r\nimport { getTimezone } from \"utils/common\";\r\n\r\ndayjs.extend(utc);\r\n\r\nconst WorkflowHistory = () => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<h3>Approval History Log</h3>\r\n\t\t\t<Headers />\r\n\t\t\t<WhContainer />\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nconst Headers = () => {\r\n\treturn <></>;\r\n};\r\n\r\nconst WhContainer = () => {\r\n\tconst data = useSelector(selectAllWorkflowHistoryIds);\r\n\treturn data.map((id) => <WhRow key={id} id={id} />);\r\n};\r\n\r\nconst WhRow = ({ id }) => {\r\n\tconst { createOn, description, comment } = useSelector((state) =>\r\n\t\tselectWorkflowHistoryById(state, id)\r\n\t);\r\n\r\n\treturn (\r\n\t\t<Row\r\n\t\t\tstyle={{\r\n\t\t\t\tpadding: 4,\r\n\t\t\t\tborderBottom: \"1px solid #ddd\",\r\n\t\t\t\tmaxWidth: 600,\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t<Col span={8}>\r\n\t\t\t\t{getTimezone() === \"UTC\"\r\n\t\t\t\t\t? dayjs.utc(createOn).local().format(\"DD/MM/YYYY hh:mma\")\r\n\t\t\t\t\t: dayjs(createOn).format(\"DD/MM/YYYY hh:mma\")}\r\n\t\t\t</Col>\r\n\t\t\t<Col span={16}>{description}</Col>\r\n\t\t\t{comment && (\r\n\t\t\t\t<Col span={16} offset={8} style={{ color: \"#555\" }}>\r\n\t\t\t\t\t<CommentOutlined />\r\n\t\t\t\t\t \r\n\t\t\t\t\t{comment}\r\n\t\t\t\t</Col>\r\n\t\t\t)}\r\n\t\t</Row>\r\n\t);\r\n};\r\n\r\nexport default WorkflowHistory;\r\n","// This icon file is generated automatically.\nvar HistoryOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 003 14.1zm167.7 301.1l-56.7-19.5a8 8 0 00-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 01-112.5 75.9 352.18 352.18 0 01-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 01-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 01171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 01112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 01775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z\" } }] }, \"name\": \"history\", \"theme\": \"outlined\" };\nexport default HistoryOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport HistoryOutlinedSvg from \"@ant-design/icons-svg/es/asn/HistoryOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar HistoryOutlined = function HistoryOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: HistoryOutlinedSvg\n }));\n};\nHistoryOutlined.displayName = 'HistoryOutlined';\nexport default /*#__PURE__*/React.forwardRef(HistoryOutlined);","// This icon file is generated automatically.\nvar ReloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z\" } }] }, \"name\": \"reload\", \"theme\": \"outlined\" };\nexport default ReloadOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ReloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/ReloadOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ReloadOutlined = function ReloadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ReloadOutlinedSvg\n }));\n};\nReloadOutlined.displayName = 'ReloadOutlined';\nexport default /*#__PURE__*/React.forwardRef(ReloadOutlined);","// This icon file is generated automatically.\nvar SendOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.99 15.99 0 00-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-.9 3.7-.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 .7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-.8 4.2-2.6 5-5 1.4-4.2-.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z\" } }] }, \"name\": \"send\", \"theme\": \"outlined\" };\nexport default SendOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SendOutlinedSvg from \"@ant-design/icons-svg/es/asn/SendOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar SendOutlined = function SendOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: SendOutlinedSvg\n }));\n};\nSendOutlined.displayName = 'SendOutlined';\nexport default /*#__PURE__*/React.forwardRef(SendOutlined);","import React from \"react\";\r\nimport { Row, Col, Button, Tag, Space, Popover, Badge } from \"antd\";\r\nimport {\r\n\tCheckCircleOutlined,\r\n\tCloseCircleOutlined,\r\n\tQuestionCircleOutlined,\r\n\tRightCircleOutlined,\r\n\tClockCircleOutlined,\r\n\tCommentOutlined,\r\n\tSendOutlined,\r\n\tReloadOutlined,\r\n} from \"@ant-design/icons\";\r\nimport EllipsisDropdownMenu from \"components/EllipsisDropdownMenu\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { selectCommentByWorkflowId } from \"reducers/workflowHistorySlice\";\r\nimport { useSecurity } from \"../cme/Components/security\";\r\nimport { selectGlobal } from \"reducers/global\";\r\nimport { getTimezone } from \"utils/common\";\r\nimport dayjs from \"dayjs\";\r\n\r\nexport const ApprovalButton = ({ onClick }) => {\r\n\treturn (\r\n\t\t<Button type=\"primary\" size=\"large\" onClick={onClick}>\r\n\t\t\t<CheckCircleOutlined />\r\n\t\t\tApprove\r\n\t\t</Button>\r\n\t);\r\n};\r\n\r\nexport const DeclineButton = ({ onClick }) => {\r\n\treturn (\r\n\t\t<Button type=\"danger\" size=\"large\" onClick={onClick}>\r\n\t\t\t<CloseCircleOutlined />\r\n\t\t\tDecline\r\n\t\t</Button>\r\n\t);\r\n};\r\n\r\nexport const QueryButton = ({ onClick }) => {\r\n\treturn (\r\n\t\t<Button type=\"default\" size=\"large\" onClick={onClick}>\r\n\t\t\t<ReloadOutlined />\r\n\t\t\tQuery\r\n\t\t</Button>\r\n\t);\r\n};\r\n\r\nexport const DelegateButton = ({ onClick }) => {\r\n\treturn (\r\n\t\t<Button type=\"default\" size=\"large\" onClick={onClick}>\r\n\t\t\t<SendOutlined />\r\n\t\t\tDelegate\r\n\t\t</Button>\r\n\t);\r\n};\r\n\r\nexport const RespondButton = ({ onClick }) => {\r\n\treturn (\r\n\t\t<Button type=\"primary\" size=\"large\" onClick={onClick}>\r\n\t\t\t<CommentOutlined />\r\n\t\t\tRespond\r\n\t\t</Button>\r\n\t);\r\n};\r\n\r\nexport const StatusTag = ({ status }) => {\r\n\tswitch (status) {\r\n\t\tcase \"Approved\":\r\n\t\t\treturn (\r\n\t\t\t\t<Tag icon={<CheckCircleOutlined />} color=\"success\">\r\n\t\t\t\t\tApproved\r\n\t\t\t\t</Tag>\r\n\t\t\t);\r\n\t\tcase \"Responded\":\r\n\t\t\treturn (\r\n\t\t\t\t<Tag icon={<CheckCircleOutlined />} color=\"success\">\r\n\t\t\t\t\tResponded\r\n\t\t\t\t</Tag>\r\n\t\t\t);\r\n\t\tcase \"Declined\":\r\n\t\t\treturn (\r\n\t\t\t\t<Tag icon={<CloseCircleOutlined />} color=\"error\">\r\n\t\t\t\t\tDeclined\r\n\t\t\t\t</Tag>\r\n\t\t\t);\r\n\t\tcase \"Queried\":\r\n\t\t\treturn (\r\n\t\t\t\t<Tag icon={<QuestionCircleOutlined />} color=\"blue\">\r\n\t\t\t\t\tQueried\r\n\t\t\t\t</Tag>\r\n\t\t\t);\r\n\t\tcase \"Delegated\":\r\n\t\t\treturn (\r\n\t\t\t\t<Tag icon={<RightCircleOutlined />} color=\"blue\">\r\n\t\t\t\t\tDelegated\r\n\t\t\t\t</Tag>\r\n\t\t\t);\r\n\t\tcase \"Waiting\":\r\n\t\t\treturn (\r\n\t\t\t\t<Tag icon={<ClockCircleOutlined />} color=\"default\">\r\n\t\t\t\t\tWaiting\r\n\t\t\t\t</Tag>\r\n\t\t\t);\r\n\t\t/* we need to return a space instead of null/empty as this causes issues on Edge 84, where a row-gap on empty causes this to increase the container's height to infinity */\r\n\t\tdefault:\r\n\t\t\treturn <> </>;\r\n\t}\r\n};\r\n\r\nexport const ActionButtons = ({\r\n\tworkflow,\r\n\troleId,\r\n\torganisationId,\r\n\tonEdit,\r\n\tonDelete,\r\n}) => {\r\n\t//available actions takes state and current user's permissions\r\n\t//and returns available buttons\r\n\r\n\t/*\r\n SKIP: authorisation if\r\n -this workflow is active (next in line)\r\n -user is on this workflow\r\n -user has higher position in hierarchy than this workflow\r\n (prevents self skip)\r\n */\r\n\tconst { isCmeAdmin } = useSecurity();\r\n\tconst isCme = useSelector(selectGlobal).appType === \"cme\";\r\n\tlet listMenu = [\r\n\t\t{\r\n\t\t\tlabel: \"Change this approver\",\r\n\t\t\tonClick: () => onEdit({ workflow, roleId, organisationId }),\r\n\t\t},\r\n\t];\r\n\r\n\tif (isCmeAdmin || !isCme)\r\n\t\tlistMenu.push({\r\n\t\t\tlabel: \"Delete this approver\",\r\n\t\t\tonClick: () => onDelete({ workflow }),\r\n\t\t});\r\n\r\n\treturn <EllipsisDropdownMenu listMenu={listMenu} />;\r\n};\r\n\r\nexport const approvalRowStyle = {\r\n\tpadding: 10,\r\n\tborderBottom: \"1px solid #ddd\",\r\n};\r\n\r\nexport const Workflow = ({\r\n\tid,\r\n\tdata,\r\n\tonEdit,\r\n\tonDelete,\r\n\tsequence,\r\n\torganisationHierarchyId,\r\n\tdisplay,\r\n}) => {\r\n\tconst {\r\n\t\tuser,\r\n\t\trole,\r\n\t\tstatus,\r\n\t\tisActive: wfIsActive,\r\n\t\tisComplete,\r\n\t\tdelegateUsers,\r\n\t\tcompletingUser,\r\n\t\tdescription,\r\n\t\tmodifyOn,\r\n\t} = data;\r\n\tconst comments = useSelector((state) =>\r\n\t\tselectCommentByWorkflowId(state, { id })\r\n\t);\r\n\tconst isActive = wfIsActive;\r\n\tconst activeStyle = {\r\n\t\tborderTop: \"1px solid lightseagreen\",\r\n\t\tborderBottom: \"1px solid lightseagreen\",\r\n\t\tborderLeft: \"1px solid lightseagreen\",\r\n\t\tborderRight: \"1px solid lightseagreen\",\r\n\t\tfontWeight: 600,\r\n\t\tbackground: \"rgba(32, 178, 170,0.1)\",\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Row\r\n\t\t\t\tstyle={{\r\n\t\t\t\t\t...approvalRowStyle,\r\n\t\t\t\t\tfontWeight: 300,\r\n\t\t\t\t\t...(isActive ? activeStyle : {}),\r\n\t\t\t\t}}\r\n\t\t\t\talign=\"middle\"\r\n\t\t\t>\r\n\t\t\t\t<Col span={1}>{sequence}</Col>\r\n\t\t\t\t<Col\r\n\t\t\t\t\tspan={15}\r\n\t\t\t\t\tmd={8}\r\n\t\t\t\t\tstyle={{ wordBreak: \"break-all\", paddingRight: 5 }}\r\n\t\t\t\t>\r\n\t\t\t\t\t<WorkflowPerson\r\n\t\t\t\t\t\tisComplete={isComplete}\r\n\t\t\t\t\t\tuser={user}\r\n\t\t\t\t\t\tdelegateUsers={delegateUsers}\r\n\t\t\t\t\t\tcompletingUser={completingUser}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t{display === \"role\" || !user ? role?.title : user?.jobTitle}\r\n\t\t\t\t</Col>\r\n\t\t\t\t<Col span={7} md={6}>\r\n\t\t\t\t\t<StatusTag status={isActive ? \"Waiting\" : status} />\r\n\t\t\t\t\t{isComplete && status !== \"Skipped\" && (\r\n\t\t\t\t\t\t<div style={{ fontSize: \"small\", paddingTop: 5 }}>\r\n\t\t\t\t\t\t\t{getTimezone() === \"UTC\"\r\n\t\t\t\t\t\t\t\t? dayjs\r\n\t\t\t\t\t\t\t\t\t\t.utc(modifyOn)\r\n\t\t\t\t\t\t\t\t\t\t.local()\r\n\t\t\t\t\t\t\t\t\t\t.format(\"DD/MM/YYYY hh:mma\")\r\n\t\t\t\t\t\t\t\t: dayjs(modifyOn).format(\"DD/MM/YYYY hh:mma\")}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Col>\r\n\t\t\t\t{comments && (\r\n\t\t\t\t\t<Col span={23} md={0}>\r\n\t\t\t\t\t\t<Space direction=\"horizontal\">\r\n\t\t\t\t\t\t\t<CommentOutlined style={{ color: \"#AAA\" }} />\r\n\t\t\t\t\t\t\t{comments}\r\n\t\t\t\t\t\t</Space>\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t)}\r\n\t\t\t\t<Col span={0} md={8}>\r\n\t\t\t\t\t{comments && (\r\n\t\t\t\t\t\t<Space direction=\"horizontal\">\r\n\t\t\t\t\t\t\t<CommentOutlined style={{ color: \"#AAA\" }} />\r\n\t\t\t\t\t\t\t{comments}\r\n\t\t\t\t\t\t</Space>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Col>\r\n\t\t\t\t<Col span={1}>\r\n\t\t\t\t\t{!isComplete && (\r\n\t\t\t\t\t\t<ActionButtons\r\n\t\t\t\t\t\t\tid={id}\r\n\t\t\t\t\t\t\troleId={role?.id}\r\n\t\t\t\t\t\t\torganisationId={organisationHierarchyId}\r\n\t\t\t\t\t\t\tonEdit={onEdit}\r\n\t\t\t\t\t\t\tonDelete={onDelete}\r\n\t\t\t\t\t\t\tworkflow={data}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Col>\r\n\t\t\t\t{description && (\r\n\t\t\t\t\t<Col\r\n\t\t\t\t\t\tspan={23}\r\n\t\t\t\t\t\toffset={1}\r\n\t\t\t\t\t\tstyle={{ fontSize: \"smaller\", marginTop: 10 }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{description}\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t)}\r\n\t\t\t</Row>\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport const WorkflowPerson = ({\r\n\tuser,\r\n\tdelegateUsers,\r\n\tcompletingUser,\r\n\tisComplete,\r\n}) => {\r\n\t//first user with replacement type of delegate is the replacing user\r\n\tconst replacingUser =\r\n\t\tdelegateUsers && delegateUsers.length > 0\r\n\t\t\t? delegateUsers.filter((du) => du.type === \"REPLACEMENT\")[0]?.user\r\n\t\t\t: null;\r\n\r\n\t//all other delegate users, including other replacement users\r\n\tconst otherDelegateUsers =\r\n\t\tdelegateUsers && delegateUsers.length > 0\r\n\t\t\t? delegateUsers.filter((du) => du.userId !== replacingUser?.id)\r\n\t\t\t: null;\r\n\r\n\t//the name of the approver to display - replacing user, or the original user\r\n\tconst workflowUser = !isComplete\r\n\t\t? replacingUser ?? user //for active workflows, we prioritise showing replacing user\r\n\t\t: completingUser ?? user; //for completed workflows, we prioritise showing completing user\r\n\tconst fullName = `${workflowUser?.firstName} ${workflowUser?.lastName}`;\r\n\tconst replacedFullName = `${user?.firstName} ${user?.lastName}`;\r\n\r\n\tconst content = (\r\n\t\t<div style={{ width: 400 }}>\r\n\t\t\t<Row style={{ padding: \"5px 5px\" }}>\r\n\t\t\t\t<Col span={8} style={{ fontWeight: 600 }}>\r\n\t\t\t\t\tMain Approver\r\n\t\t\t\t</Col>\r\n\t\t\t\t<Col span={16}>{workflowUser?.fullName}</Col>\r\n\t\t\t</Row>\r\n\t\t\t<Row style={{ padding: \"5px 5px\" }}>\r\n\t\t\t\t<Col span={8} style={{ fontWeight: 600 }}>\r\n\t\t\t\t\tEmail\r\n\t\t\t\t</Col>\r\n\t\t\t\t<Col span={16}>\r\n\t\t\t\t\t<a href={`mailto:${workflowUser?.email}`}>\r\n\t\t\t\t\t\t{workflowUser?.email}\r\n\t\t\t\t\t</a>\r\n\t\t\t\t</Col>\r\n\t\t\t</Row>\r\n\t\t\t<Row style={{ padding: \"5px 5px\" }}>\r\n\t\t\t\t<Col span={8} style={{ fontWeight: 600 }}>\r\n\t\t\t\t\tJob Title\r\n\t\t\t\t</Col>\r\n\t\t\t\t<Col span={16}>{workflowUser?.jobTitle}</Col>\r\n\t\t\t</Row>\r\n\t\t\t{delegateUsers && delegateUsers.length > 0 && !isComplete ? (\r\n\t\t\t\t<Row style={{ padding: \"5px 5px\" }}>\r\n\t\t\t\t\t<Col span={8} style={{ fontWeight: 600 }}>\r\n\t\t\t\t\t\tDelegate Approver(s)\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t\t<Col span={16}>\r\n\t\t\t\t\t\t{delegateUsers.map((u) => (\r\n\t\t\t\t\t\t\t<React.Fragment key={u?.id}>\r\n\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t{u?.user?.fullName} ({u?.user?.jobTitle})\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<br />\r\n\t\t\t\t\t\t\t</React.Fragment>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t</Row>\r\n\t\t\t) : null}\r\n\t\t</div>\r\n\t);\r\n\r\n\tconst ApproverDetailPopover = ({ children }) => {\r\n\t\treturn (\r\n\t\t\t<Popover content={content} title=\"Approver Details\">\r\n\t\t\t\t{children}\r\n\t\t\t</Popover>\r\n\t\t);\r\n\t};\r\n\r\n\t//if there is more 1 or more delegate users that can approve,\r\n\t//we show a badge with a count of those users\r\n\tconst UserDisplayWithBadge = () => {\r\n\t\treturn otherDelegateUsers &&\r\n\t\t\totherDelegateUsers.length > 0 &&\r\n\t\t\t!isComplete ? (\r\n\t\t\t<div>\r\n\t\t\t\t<Badge\r\n\t\t\t\t\tcount={otherDelegateUsers.length}\r\n\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\toffset={[7, 0]}\r\n\t\t\t\t>\r\n\t\t\t\t\t<div className=\"link default-font-size\">{fullName}</div>\r\n\t\t\t\t</Badge>\r\n\t\t\t</div>\r\n\t\t) : (\r\n\t\t\t<div className=\"link\">{fullName}</div>\r\n\t\t);\r\n\t};\r\n\r\n\tconst ReplacingUserText = () => {\r\n\t\treturn (\r\n\t\t\t<div style={{ fontWeight: 100, fontSize: \"small\" }}>\r\n\t\t\t\treplacing {replacedFullName}\r\n\t\t\t</div>\r\n\t\t);\r\n\t};\r\n\r\n\tconst OnBehalfUserText = () => {\r\n\t\treturn (\r\n\t\t\t<div style={{ fontWeight: 100, fontSize: \"small\" }}>\r\n\t\t\t\ton behalf of {user.fullName}\r\n\t\t\t</div>\r\n\t\t);\r\n\t};\r\n\r\n\treturn !user ? (\r\n\t\t<div style={{ textDecoration: \"italic\", color: \"#bbb\" }}>\r\n\t\t\tNo approver\r\n\t\t</div>\r\n\t) : replacingUser && !isComplete ? (\r\n\t\t<ApproverDetailPopover>\r\n\t\t\t<UserDisplayWithBadge />\r\n\t\t\t<ReplacingUserText />\r\n\t\t</ApproverDetailPopover>\r\n\t) : isComplete && user?.id !== completingUser?.id && completingUser ? (\r\n\t\t<ApproverDetailPopover>\r\n\t\t\t<UserDisplayWithBadge />\r\n\t\t\t<OnBehalfUserText />\r\n\t\t</ApproverDetailPopover>\r\n\t) : (\r\n\t\t<ApproverDetailPopover>\r\n\t\t\t<UserDisplayWithBadge />\r\n\t\t</ApproverDetailPopover>\r\n\t);\r\n};\r\n\r\nexport const WorkflowTypeContainer = ({\r\n\ttype,\r\n\tworkflows,\r\n\torganisationHierarchyId,\r\n\tonEdit,\r\n\tonDelete,\r\n\toptions,\r\n}) => {\r\n\tlet sequence = 1; //global value for display sequence\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{type ? (\r\n\t\t\t\t<h3 style={{ marginTop: 15, fontWeight: 300 }}>{type}</h3>\r\n\t\t\t) : null}\r\n\t\t\t<Row\r\n\t\t\t\tstyle={{\r\n\t\t\t\t\t...approvalRowStyle,\r\n\t\t\t\t\tfontWeight: 600,\r\n\t\t\t\t}}\r\n\t\t\t\talign=\"middle\"\r\n\t\t\t>\r\n\t\t\t\t<Col span={1}></Col>\r\n\t\t\t\t<Col span={15} md={8}>\r\n\t\t\t\t\tApprover\r\n\t\t\t\t</Col>\r\n\t\t\t\t<Col span={7} md={6}>\r\n\t\t\t\t\tStatus\r\n\t\t\t\t</Col>\r\n\t\t\t\t<Col span={0} md={8}>\r\n\t\t\t\t\tComments\r\n\t\t\t\t</Col>\r\n\t\t\t\t<Col span={1}></Col>\r\n\t\t\t</Row>\r\n\t\t\t{workflows?.map((item, index) => {\r\n\t\t\t\tconst { id } = item;\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Workflow\r\n\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\tdata={item}\r\n\t\t\t\t\t\torganisationHierarchyId={organisationHierarchyId}\r\n\t\t\t\t\t\tsequence={sequence++}\r\n\t\t\t\t\t\tid={id || sequence}\r\n\t\t\t\t\t\tonEdit={onEdit}\r\n\t\t\t\t\t\tonDelete={onDelete}\r\n\t\t\t\t\t\tdisplay={options?.display}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t</>\r\n\t);\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n\tRow,\r\n\tCol,\r\n\tButton,\r\n\tSpace,\r\n\tInput,\r\n\tDrawer,\r\n\tnotification,\r\n\tPopconfirm,\r\n} from \"antd\";\r\nimport { HistoryOutlined, PlusOutlined } from \"@ant-design/icons\";\r\nimport {\r\n\tApprovalButton,\r\n\tDeclineButton,\r\n\tDelegateButton,\r\n\tRespondButton,\r\n\tQueryButton,\r\n\tWorkflowTypeContainer,\r\n} from \"./Components\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n\tfetchFromTemplate,\r\n\tsubmit,\r\n\tapprove,\r\n\tdecline,\r\n\tresume,\r\n\tdelegate,\r\n\tquery,\r\n\tdeleteAction,\r\n\tselectAllWorkflows,\r\n\tselectWorkflowStatus,\r\n\tedit,\r\n\tselectWorkflowsError,\r\n\tworkflowErrorEdited,\r\n\tselectActiveWorkflowQuery,\r\n\trespond,\r\n\tdeleteWorkflowsByFormId,\r\n\tselectWorkflowTypes,\r\n\tadd,\r\n} from \"reducers/workflowsSlice\";\r\nimport { selectForm } from \"reducers\";\r\nimport {\r\n\tselectDelegateUsers,\r\n\tselectIsSysAdmin,\r\n\tselectUser,\r\n\tselectUserOrganisation,\r\n} from \"reducers/securitySlice\";\r\nimport { selectFormDefinition, selectFormOwner } from \"reducers/formSlice\";\r\nimport Comment from \"./Comment\";\r\nimport { selectLastSubmit } from \"reducers/workflowHistorySlice\";\r\nimport { Section } from \"components/QnaComponents\";\r\nimport WorkflowHistory from \"./WorkflowHistory\";\r\nimport { selectGlobal } from \"reducers/global\";\r\nimport { getTimezone } from \"utils/common\";\r\nimport dayjs from \"dayjs\";\r\n\r\nconst initialApprovalState = {\r\n\tisApproval: false,\r\n\tapprovalType: \"\",\r\n\tinitialValues: { userId: null, comments: null },\r\n\tdefaultOptions: [], //to prepopulate userId\r\n\tapprovalDispatch: () => {},\r\n};\r\n\r\nconst { TextArea } = Input;\r\n\r\nconst Approval = ({\r\n\ttemplateCode,\r\n\torganisationHierarchyId,\r\n\terror,\r\n\tconditions,\r\n\toptions,\r\n\tdomain,\r\n\tisValid = true,\r\n\tvalidationMessage,\r\n}) => {\r\n\tconst [drawerVisible, setDrawerVisible] = useState(false);\r\n\r\n\t//const populateFromTemplate = false; //to test populate from template or get from exisitng workflow\r\n\tconst dispatch = useDispatch();\r\n\r\n\t//form and def data for logic\r\n\tconst form = useSelector(selectForm);\r\n\tconst formOwner = useSelector(selectFormOwner);\r\n\tconst delegateUsers = useSelector(selectDelegateUsers);\r\n\tconst user = useSelector(selectUser);\r\n\tconst organisation = useSelector(selectUserOrganisation);\r\n\tconst { status, id: formId } = form;\r\n\tconst definition = useSelector(selectFormDefinition);\r\n\tconst formDefinitionId = definition.id;\r\n\tconst isSysAdmin = useSelector(selectIsSysAdmin);\r\n\tconst { appType } = useSelector(selectGlobal);\r\n\r\n\t//logic for go/don't go for posting form and workflows\r\n\tconst workflowStatus = useSelector(selectWorkflowStatus);\r\n\r\n\t//logic for when to show approval comments\r\n\r\n\tconst [approvalState, setApprovalState] = useState(initialApprovalState);\r\n\r\n\tconst approvalCancel = () => {\r\n\t\tsetApprovalState(initialApprovalState);\r\n\t};\r\n\r\n\t//data for displaying workflows and workflow actions\r\n\tconst workflows = useSelector(selectAllWorkflows);\r\n\tconst activeWorkflow = workflows?.find((p) => p.isActive);\r\n\r\n\tconst activeWorkflowQuery = useSelector(selectActiveWorkflowQuery);\r\n\tconst isRespondEnabled =\r\n\t\tactiveWorkflowQuery &&\r\n\t\t(activeWorkflowQuery?.user?.id === user?.id || isSysAdmin);\r\n\r\n\t//for submit to show up, form must be in Draft and there must be workflows present\r\n\t//and logged in user must be the form owner\r\n\t//OR be sys admin\r\n\tconst isSubmitEnabled =\r\n\t\t(user?.id === formOwner?.id || formOwner === null || isSysAdmin) &&\r\n\t\t(status === \"Draft\" ||\r\n\t\t\tstatus === \"Cancelled\" ||\r\n\t\t\tstatus === \"Declined\") &&\r\n\t\tworkflows?.length > 0;\r\n\r\n\t//for approval buttons to show up, active workflow and current user must match\r\n\t//OR they must have delegated access for that user\r\n\t//OR be sys admin\r\n\tconst isApprovalEnabled =\r\n\t\t(user?.id === activeWorkflow?.userId ||\r\n\t\t\tdelegateUsers.some((u) => u.id === activeWorkflow?.userId) ||\r\n\t\t\tisSysAdmin) &&\r\n\t\tactiveWorkflow &&\r\n\t\tuser &&\r\n\t\t!isRespondEnabled && //if query, response is the only available option\r\n\t\t!isSubmitEnabled; //migration bug where workflows are marked as active, even in draft forms\r\n\r\n\t//for resume to show up, form must be in Declined and there must be workflows present\r\n\t//and logged in user must be the form ownser\r\n\tconst isResumeEnabled = false;\r\n\r\n\t//check if no workflows exist, so we can load new ones\r\n\tconst isWorkflowEmpty = !workflows || workflows.length === 0;\r\n\r\n\t//the submitter's comments are found on the last submit workflow history\r\n\tconst lastSubmitWorkflowHistory = useSelector(selectLastSubmit);\r\n\r\n\t//for showing workflow related errors\r\n\tconst workflowError = useSelector(selectWorkflowsError);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (workflowError) {\r\n\t\t\tnotification.error({\r\n\t\t\t\tmessage: workflowError?.title,\r\n\t\t\t\tdescription: workflowError?.message,\r\n\t\t\t\tduration: 0,\r\n\t\t\t\tkey: workflowError?.title, //ensure only one error message per type can be shown\r\n\t\t\t\tonClose: () => dispatch(workflowErrorEdited(null)),\r\n\t\t\t});\r\n\t\t}\r\n\t}, [workflowError, dispatch]);\r\n\r\n\tuseEffect(() => {\r\n\t\t//if workflows do not exists, fetch by template\r\n\t\tif (\r\n\t\t\tisWorkflowEmpty &&\r\n\t\t\tworkflowStatus !== \"loading\" &&\r\n\t\t\tworkflowStatus !== \"failed\"\r\n\t\t) {\r\n\t\t\tdispatch(\r\n\t\t\t\tfetchFromTemplate({\r\n\t\t\t\t\tformGuid: formId,\r\n\t\t\t\t\torganisationHierarchyId,\r\n\t\t\t\t\tformDefinitionId,\r\n\t\t\t\t\tconditions,\r\n\t\t\t\t\tcode: templateCode,\r\n\t\t\t\t\tdomain,\r\n\t\t\t\t\torganisation,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t}\r\n\t}, [\r\n\t\tisWorkflowEmpty,\r\n\t\tworkflowStatus,\r\n\t\ttemplateCode,\r\n\t\tformId,\r\n\t\torganisationHierarchyId,\r\n\t\tformDefinitionId,\r\n\t\tconditions,\r\n\t\tdomain,\r\n\t\torganisation,\r\n\t\tdispatch,\r\n\t]);\r\n\r\n\tconst onRestart = async () => {\r\n\t\tawait dispatch(deleteWorkflowsByFormId({ responseFormId: formId }));\r\n\t};\r\n\r\n\tconst onEdit = ({ workflow, roleId, organisationId }) => {\r\n\t\tsetApprovalState({\r\n\t\t\tisApproval: true,\r\n\t\t\tapprovalType: \"Change\",\r\n\t\t\tinitialValues: {\r\n\t\t\t\tuserId: user.id,\r\n\t\t\t},\r\n\t\t\tdefaultOptions: [\r\n\t\t\t\t{\r\n\t\t\t\t\troleId,\r\n\t\t\t\t\torganisationId,\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tapprovalDispatch: ({ comments, changeUserId }) => {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tedit({\r\n\t\t\t\t\t\tworkflow: { ...workflow, userId: changeUserId },\r\n\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst onDelete = ({ workflow }) => {\r\n\t\tsetApprovalState({\r\n\t\t\tisApproval: true,\r\n\t\t\tapprovalType: \"Delete\",\r\n\t\t\tapprovalDispatch: ({ comments }) => {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tdeleteAction({\r\n\t\t\t\t\t\tworkflow: { ...workflow, isDeleted: true },\r\n\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst types = useSelector(selectWorkflowTypes);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Drawer\r\n\t\t\t\topen={drawerVisible}\r\n\t\t\t\tclosable\r\n\t\t\t\tonClose={() => {\r\n\t\t\t\t\tsetDrawerVisible(false);\r\n\t\t\t\t}}\r\n\t\t\t\twidth=\"100%\"\r\n\t\t\t\tdrawerStyle={{\r\n\t\t\t\t\tbackgroundColor: \"rgba(245, 245, 245, 0.6)\",\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<WorkflowHistory />\r\n\t\t\t\t<Row justify=\"end\" style={{ marginTop: 20, maxWidth: 600 }}>\r\n\t\t\t\t\t<Col>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\ttype=\"default\"\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\tsetDrawerVisible(false);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tClose\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t</Row>\r\n\t\t\t</Drawer>\r\n\t\t\t<Section size={options?.size}>\r\n\t\t\t\t{![\"Draft\", \"Cancelled\", \"Declined\"].includes(status) && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t<h3>Comments from Submitter</h3>\r\n\t\t\t\t\t\t<TextArea\r\n\t\t\t\t\t\t\tvalue={\r\n\t\t\t\t\t\t\t\tlastSubmitWorkflowHistory?.comment ||\r\n\t\t\t\t\t\t\t\t\"No comments\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tstyle={{ marginBottom: 20 }}\r\n\t\t\t\t\t\t\tdisabled\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</>\r\n\t\t\t\t)}\r\n\t\t\t\t<Comment\r\n\t\t\t\t\topen={approvalState.isApproval}\r\n\t\t\t\t\ttype={approvalState.approvalType}\r\n\t\t\t\t\tonOk={approvalState.approvalDispatch}\r\n\t\t\t\t\tinitialValues={approvalState.initialValues}\r\n\t\t\t\t\tdefaultOptions={approvalState.defaultOptions}\r\n\t\t\t\t\tonCancel={approvalCancel}\r\n\t\t\t\t/>\r\n\t\t\t\t<Row justify=\"space-between\">\r\n\t\t\t\t\t<Col>\r\n\t\t\t\t\t\t<h3>Approval Workflow</h3>\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t\t<Col>\r\n\t\t\t\t\t\t<Space>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\ttype=\"link\"\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tsetDrawerVisible(true);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<HistoryOutlined />\r\n\t\t\t\t\t\t\t\tView Approval Log\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t{options?.enableReset && isSubmitEnabled && (\r\n\t\t\t\t\t\t\t\t<Popconfirm\r\n\t\t\t\t\t\t\t\t\ttitle=\"Are you sure you want to reset this form's workflows? This will delete all existing workflows and their approvals and recreate them.\"\r\n\t\t\t\t\t\t\t\t\tonConfirm={onRestart}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<Button danger>Reset</Button>\r\n\t\t\t\t\t\t\t\t</Popconfirm>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</Space>\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t</Row>\r\n\t\t\t\t{lastSubmitWorkflowHistory?.createOn && (\r\n\t\t\t\t\t<Row>\r\n\t\t\t\t\t\t<Col style={{ fontWeight: 300 }}>\r\n\t\t\t\t\t\t\tSubmitted on{\" \"}\r\n\t\t\t\t\t\t\t{getTimezone() === \"UTC\"\r\n\t\t\t\t\t\t\t\t? dayjs\r\n\t\t\t\t\t\t\t\t\t\t.utc(\r\n\t\t\t\t\t\t\t\t\t\t\tlastSubmitWorkflowHistory?.createOn\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t.local()\r\n\t\t\t\t\t\t\t\t\t\t.format(\"DD/MM/YYYY hh:mma\")\r\n\t\t\t\t\t\t\t\t: dayjs(\r\n\t\t\t\t\t\t\t\t\t\tlastSubmitWorkflowHistory?.createOn\r\n\t\t\t\t\t\t\t\t ).format(\"DD/MM/YYYY hh:mma\")}\r\n\t\t\t\t\t\t</Col>\r\n\t\t\t\t\t</Row>\r\n\t\t\t\t)}\r\n\t\t\t\t{types.length > 0 ? (\r\n\t\t\t\t\ttypes.map((type) => (\r\n\t\t\t\t\t\t<WorkflowTypeContainer\r\n\t\t\t\t\t\t\tworkflows={workflows.filter((w) => w.type === type)}\r\n\t\t\t\t\t\t\torganisationHierarchyId={organisationHierarchyId}\r\n\t\t\t\t\t\t\tonEdit={onEdit}\r\n\t\t\t\t\t\t\tonDelete={onDelete}\r\n\t\t\t\t\t\t\toptions={options}\r\n\t\t\t\t\t\t\ttype={type}\r\n\t\t\t\t\t\t\tkey={type}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t))\r\n\t\t\t\t) : (\r\n\t\t\t\t\t<WorkflowTypeContainer\r\n\t\t\t\t\t\tworkflows={workflows}\r\n\t\t\t\t\t\torganisationHierarchyId={organisationHierarchyId}\r\n\t\t\t\t\t\tonEdit={onEdit}\r\n\t\t\t\t\t\tonDelete={onDelete}\r\n\t\t\t\t\t\toptions={options}\r\n\t\t\t\t\t\ttype={null}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t\t{error ? (\r\n\t\t\t\t\t<div style={{ marginTop: 20, color: \"#555\" }}>{error}</div>\r\n\t\t\t\t) : (\r\n\t\t\t\t\t<div className=\"workflow-buttons-container\">\r\n\t\t\t\t\t\t<Space wrap>\r\n\t\t\t\t\t\t\t{!isValid && isSubmitEnabled && (\r\n\t\t\t\t\t\t\t\t<div className=\"qna-question-form-item-validation\">\r\n\t\t\t\t\t\t\t\t\t{validationMessage}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{(isSubmitEnabled || isApprovalEnabled) &&\r\n\t\t\t\t\t\t\t\toptions?.enableAdd && (\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\t\t\t\ticon={<PlusOutlined />}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() =>\r\n\t\t\t\t\t\t\t\t\t\t\tsetApprovalState({\r\n\t\t\t\t\t\t\t\t\t\t\t\tisApproval: true,\r\n\t\t\t\t\t\t\t\t\t\t\t\tapprovalType: \"Add\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tapprovalDispatch: ({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuserId,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\troleId,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsequence,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tadd({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresponseFormId:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformId,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tuserId,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\troleId,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsequence,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\tAdd Workflow\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{isSubmitEnabled && (\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\ttype=\"primary\"\r\n\t\t\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\t\t\tdisabled={!isValid}\r\n\t\t\t\t\t\t\t\t\tonClick={() =>\r\n\t\t\t\t\t\t\t\t\t\tsetApprovalState({\r\n\t\t\t\t\t\t\t\t\t\t\tisApproval: true,\r\n\t\t\t\t\t\t\t\t\t\t\tapprovalType:\r\n\t\t\t\t\t\t\t\t\t\t\t\tappType === \"cme\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"SubmitCme\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"Submit\",\r\n\t\t\t\t\t\t\t\t\t\t\tapprovalDispatch: ({\r\n\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t}) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsubmit({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tworkflows,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\tSubmit\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{isResumeEnabled && (\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\ttype=\"primary\"\r\n\t\t\t\t\t\t\t\t\tsize=\"large\"\r\n\t\t\t\t\t\t\t\t\tonClick={() =>\r\n\t\t\t\t\t\t\t\t\t\tsetApprovalState({\r\n\t\t\t\t\t\t\t\t\t\t\tisApproval: true,\r\n\t\t\t\t\t\t\t\t\t\t\tapprovalType: \"Resume\",\r\n\t\t\t\t\t\t\t\t\t\t\tapprovalDispatch: ({\r\n\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t}) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresume({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tworkflows,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\tResubmit\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{isRespondEnabled ? (\r\n\t\t\t\t\t\t\t\t<RespondButton\r\n\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\tsetApprovalState({\r\n\t\t\t\t\t\t\t\t\t\t\tisApproval: true,\r\n\t\t\t\t\t\t\t\t\t\t\tapprovalType: \"Respond\",\r\n\t\t\t\t\t\t\t\t\t\t\tapprovalDispatch: ({\r\n\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t}) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\trespond({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tworkflow:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveWorkflow,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t) : isApprovalEnabled ? (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t<ApprovalButton\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tsetApprovalState({\r\n\t\t\t\t\t\t\t\t\t\t\t\tisApproval: true,\r\n\t\t\t\t\t\t\t\t\t\t\t\tapprovalType:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tappType === \"cme\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"ApproveCme\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"Approve\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tapprovalDispatch: ({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tapprove({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tworkflow:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveWorkflow,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t<DeclineButton\r\n\t\t\t\t\t\t\t\t\t\tonClick={() =>\r\n\t\t\t\t\t\t\t\t\t\t\tsetApprovalState({\r\n\t\t\t\t\t\t\t\t\t\t\t\tisApproval: true,\r\n\t\t\t\t\t\t\t\t\t\t\t\tapprovalType: \"Decline\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tapprovalDispatch: ({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdecline({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tworkflow:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveWorkflow,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t<DelegateButton\r\n\t\t\t\t\t\t\t\t\t\tonClick={() =>\r\n\t\t\t\t\t\t\t\t\t\t\tsetApprovalState({\r\n\t\t\t\t\t\t\t\t\t\t\t\tisApproval: true,\r\n\t\t\t\t\t\t\t\t\t\t\t\tapprovalType: \"Delegate\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tapprovalDispatch: ({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuserId,\r\n\t\t\t\t\t\t\t\t\t\t\t\t}) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelegate({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tworkflow:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveWorkflow,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelegateUserId:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tuserId,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t{appType === \"cme\" && (\r\n\t\t\t\t\t\t\t\t\t\t<QueryButton\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={() =>\r\n\t\t\t\t\t\t\t\t\t\t\t\tsetApprovalState({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tisApproval: true,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tapprovalType: \"Query\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tinitialValues: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuserId: formOwner.id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultOptions: [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: formOwner.id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttext: formOwner.fullName,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tapprovalDispatch: ({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuserId,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tquery({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tworkflow:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveWorkflow,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelegateUserId:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tuserId,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t<></>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</Space>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</Section>\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default Approval;\r\n","import { createSlice, createAsyncThunk } from \"@reduxjs/toolkit\";\r\nimport {\r\n\tsearchByPersonId,\r\n\tpostUser,\r\n\tgetUserRolesByUserIdAndAppId,\r\n\tgetUsersByOrgHierarchy,\r\n\tgetTreeByDomain,\r\n\tgetAppRolesByAppId,\r\n\tpostUserApp,\r\n\tpostUserRole,\r\n\tgetDelegateUserByUserId,\r\n\tgetDelegateUserByForUserId,\r\n\tpostDelegateUser,\r\n} from \"api\";\r\nimport _ from \"lodash\";\r\nimport { selectGlobal } from \"reducers/global\";\r\n\r\nexport const validatePerson = createAsyncThunk(\r\n\t\"admin/validatePerson\",\r\n\tasync (person, { dispatch }) => {\r\n\t\tconst { userId, firstName, lastName, employeeId, jobTitle, email } =\r\n\t\t\tperson;\r\n\t\tlet errors = [];\r\n\t\tif (\r\n\t\t\t!userId ||\r\n\t\t\t!firstName ||\r\n\t\t\t!lastName ||\r\n\t\t\t!employeeId ||\r\n\t\t\t!jobTitle ||\r\n\t\t\t!email\r\n\t\t)\r\n\t\t\terrors.push(\r\n\t\t\t\t\"Please fill out all mandatory fields marked with a red asterisk\"\r\n\t\t\t);\r\n\t\tdispatch(validationErrorsEdited(errors));\r\n\t\treturn errors.length;\r\n\t}\r\n);\r\n\r\nexport const fetchPersonById = createAsyncThunk(\r\n\t\"admin/fetchPersonById\",\r\n\tasync (personId, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await searchByPersonId({ personId });\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchTeamUserRoles = createAsyncThunk(\r\n\t\"admin/fetchTeamUserRoles\",\r\n\tasync ({ organisationHierarchyId }, { getState, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst { appId } = selectGlobal(getState());\r\n\t\t\tconst response = await getUsersByOrgHierarchy({\r\n\t\t\t\torganisationHierarchyId,\r\n\t\t\t\tdomain: \"Test\",\r\n\t\t\t\tdeepSearch: false,\r\n\t\t\t\tincludeNewUser: false,\r\n\t\t\t\tappId,\r\n\t\t\t});\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchUserRoles = createAsyncThunk(\r\n\t\"admin/fetchUserRoles\",\r\n\tasync ({ userId }, { getState, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst { appId } = selectGlobal(getState());\r\n\t\t\tconst data = await getUserRolesByUserIdAndAppId({\r\n\t\t\t\tuserId,\r\n\t\t\t\tappId,\r\n\t\t\t});\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postPerson = createAsyncThunk(\r\n\t\"admin/postPerson\",\r\n\tasync (data, { getState, rejectWithValue }) => {\r\n\t\tconst { appId } = selectGlobal(getState());\r\n\t\ttry {\r\n\t\t\tconst response = await postUser(data);\r\n\t\t\tawait postUserApp({ userId: data.id, appId });\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchTree = createAsyncThunk(\r\n\t\"admin/fetchTree\",\r\n\tasync (_, { getState, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst { domain } = selectGlobal(getState());\r\n\t\t\tconst data = await getTreeByDomain({\r\n\t\t\t\tdomain,\r\n\t\t\t\tallowAllSelect: true,\r\n\t\t\t});\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchRoles = createAsyncThunk(\r\n\t\"admin/fetchRoles\",\r\n\tasync (_, { getState, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst { appId } = selectGlobal(getState());\r\n\t\t\tconst data = await getAppRolesByAppId({ appId });\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postTeamMembership = createAsyncThunk(\r\n\t\"admin/postTeamMembership\",\r\n\tasync (\r\n\t\t{\r\n\t\t\tid,\r\n\t\t\torganisationHierarchyId,\r\n\t\t\tuserId,\r\n\t\t\troleId,\r\n\t\t\tpriority,\r\n\t\t\tisDefault,\r\n\t\t\tstartDate,\r\n\t\t\tendDate,\r\n\t\t\tisDeleted,\r\n\t\t},\r\n\t\t{ getState, rejectWithValue, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tconst { appId } = selectGlobal(getState());\r\n\t\t\tawait postUserApp({ userId, appId });\r\n\t\t\tawait postUserRole({\r\n\t\t\t\tid,\r\n\t\t\t\torganisationHierarchyId,\r\n\t\t\t\tuserId,\r\n\t\t\t\troleId,\r\n\t\t\t\tpriority,\r\n\t\t\t\tisDefault,\r\n\t\t\t\tstartDate,\r\n\t\t\t\tendDate,\r\n\t\t\t\tisDeleted,\r\n\t\t\t});\r\n\t\t\tawait dispatch(fetchUserRoles({ userId }));\r\n\t\t\tawait dispatch(fetchTeamUserRoles({ organisationHierarchyId }));\r\n\t\t\treturn;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchUserDelegates = createAsyncThunk(\r\n\t\"admin/fetchUserDelegates\",\r\n\tasync ({ userId }, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst myDelegateUsers = await getDelegateUserByUserId({\r\n\t\t\t\tuserId,\r\n\t\t\t});\r\n\t\t\tconst usersDelegatedForMe = await getDelegateUserByForUserId({\r\n\t\t\t\tforUserId: userId,\r\n\t\t\t});\r\n\t\t\treturn [...myDelegateUsers, ...usersDelegatedForMe];\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postUserDelegate = createAsyncThunk(\r\n\t\"admin/postUserDelegate\",\r\n\tasync (\r\n\t\t{\r\n\t\t\tthisPersonId,\r\n\t\t\tid,\r\n\t\t\tuserId,\r\n\t\t\tdelegatedForUser,\r\n\t\t\ttype,\r\n\t\t\tstartDate,\r\n\t\t\tendDate,\r\n\t\t\tccEmail,\r\n\t\t\tisInactive = false,\r\n\t\t},\r\n\t\t{ rejectWithValue, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tawait postDelegateUser([\r\n\t\t\t\t{\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tuserId,\r\n\t\t\t\t\tdelegatedForUser,\r\n\t\t\t\t\ttype,\r\n\t\t\t\t\tstartDate,\r\n\t\t\t\t\tendDate,\r\n\t\t\t\t\tccEmail,\r\n\t\t\t\t\tisInactive,\r\n\t\t\t\t},\r\n\t\t\t]);\r\n\t\t\tawait dispatch(fetchUserDelegates({ userId: thisPersonId }));\r\n\t\t\treturn;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst initialState = {\r\n\tperson: {},\r\n\tuserRoles: [],\r\n\tuserDelegates: [],\r\n\tteamUserRoles: [],\r\n\troles: [],\r\n\tteams: [],\r\n\tleaveApplications: [],\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n\tvalidationErrors: [],\r\n};\r\n\r\nconst adminSlice = createSlice({\r\n\tname: \"admin\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tvalidationErrorsEdited(state, action) {\r\n\t\t\tstate.validationErrors = action.payload;\r\n\t\t},\r\n\t\terrorEdited(state, action) {\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\tpersonEdited(state, action) {\r\n\t\t\tstate.person = action.payload;\r\n\t\t},\r\n\t\tuserRolesReceived(state, action) {\r\n\t\t\tstate.userRoles = action.payload;\r\n\t\t},\r\n\t\tteamEdited(state, action) {\r\n\t\t\tstate.team = action.payload;\r\n\t\t},\r\n\t\tteamUserRolesReceived(state, action) {\r\n\t\t\tstate.teamUserRoles = action.payload;\r\n\t\t},\r\n\t\tstatusEdited(state, action) {\r\n\t\t\tstate.status = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_ADMIN: (state, action) => {\r\n\t\t\tstate.person = {};\r\n\t\t\tstate.userRoles = [];\r\n\t\t\tstate.teamUserRoles = [];\r\n\t\t\tstate.leaveApplications = [];\r\n\t\t\tstate.error = null;\r\n\t\t\tstate.validationErrors = [];\r\n\t\t},\r\n\t\t[postPerson.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postPerson.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"success\";\r\n\t\t},\r\n\t\t[postPerson.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postTeamMembership.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postTeamMembership.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"success\";\r\n\t\t},\r\n\t\t[postTeamMembership.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchPersonById.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchPersonById.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.person = action.payload; //set person data\r\n\t\t},\r\n\t\t[fetchPersonById.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.person = {};\r\n\t\t},\r\n\t\t[fetchTree.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchTree.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tconst sortedTeams = _.orderBy(action.payload, [\"name\"], [\"asc\"]);\r\n\t\t\tstate.teams = sortedTeams;\r\n\t\t},\r\n\t\t[fetchTree.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.teams = [];\r\n\t\t},\r\n\t\t[fetchRoles.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchRoles.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tconst sortedRoles = _.orderBy(\r\n\t\t\t\taction.payload,\r\n\t\t\t\t[\"roleName\"],\r\n\t\t\t\t[\"asc\"]\r\n\t\t\t);\r\n\t\t\tstate.roles = sortedRoles;\r\n\t\t},\r\n\t\t[fetchRoles.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.roles = [];\r\n\t\t},\r\n\t\t[fetchUserRoles.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchUserRoles.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tconst sortedUserRoles = _.orderBy(\r\n\t\t\t\taction.payload,\r\n\t\t\t\t[\"organisationHierarchyName\", \"roleName\"],\r\n\t\t\t\t[\"asc\", \"asc\"]\r\n\t\t\t);\r\n\t\t\tstate.userRoles = sortedUserRoles;\r\n\t\t},\r\n\t\t[fetchUserRoles.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.userRoles = {};\r\n\t\t},\r\n\t\t[fetchTeamUserRoles.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchTeamUserRoles.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tconst sorted = _.orderBy(\r\n\t\t\t\taction.payload,\r\n\t\t\t\t[\"fullName\", \"roleName\"],\r\n\t\t\t\t[\"asc\", \"asc\"]\r\n\t\t\t);\r\n\t\t\tstate.teamUserRoles = sorted;\r\n\t\t},\r\n\t\t[fetchTeamUserRoles.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.teamUserRoles = {};\r\n\t\t},\r\n\t\t[fetchUserDelegates.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchUserDelegates.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.userDelegates = action.payload;\r\n\t\t},\r\n\t\t[fetchUserDelegates.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.userDelegates = [];\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const {\r\n\tpersonEdited,\r\n\tuserRolesReceived,\r\n\tteamUserRolesReceived,\r\n\tvalidationErrorsEdited,\r\n\terrorEdited,\r\n\tstatusEdited,\r\n} = adminSlice.actions;\r\n\r\nexport const selectAdminPerson = (state) => state.capex.admin.person;\r\nexport const selectAdminUserRoles = (state) => state.capex.admin.userRoles;\r\nexport const selectAdminUserDelegates = (state) =>\r\n\tstate.capex.admin.userDelegates;\r\nexport const selectAdminTeamUserRoles = (state) =>\r\n\tstate.capex.admin.teamUserRoles;\r\nexport const selectAdminTree = (state) => state.capex.admin.teams;\r\nexport const selectAdminRoles = (state) => state.capex.admin.roles;\r\nexport const selectAdminLeaveApplications = (state) =>\r\n\tstate.capex.admin.leaveApplications;\r\n\r\nexport const selectAdminStatus = (state) => state.capex.admin.status;\r\nexport const selectAdminValidationErrors = (state) =>\r\n\tstate.capex.admin.validationErrors;\r\nexport const selectAdminError = (state) => state.capex.admin.error;\r\n\r\nexport default adminSlice.reducer;\r\n","import { createSelector, createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst data = [\r\n\t{\r\n\t\tid: \"Clinical Equipment - Anesthesia Equipment\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Anesthesia Equipment\",\r\n\t\tcategory: \"CLINEQ-ANAESTH\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Cultural Assets - Art - Non Depreciating\",\r\n\t\tmajor: \"Cultural Assets\",\r\n\t\tminor: \"Art - Non Depreciating\",\r\n\t\tcategory: \"CULTURAL-ART\",\r\n\t\tassetAccount: 9167,\r\n\t\twipAccount: null,\r\n\t\texpenseAccount: 5967,\r\n\t\tdepreciation: \"SL\",\r\n\t\tlifeYears: 0,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Biomed Equipment\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Biomed Equipment\",\r\n\t\tcategory: \"CLINEQ-BIOMEDEQ\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Buildings - Building Fitout\",\r\n\t\tmajor: \"Buildings\",\r\n\t\tminor: \"Building Fitout\",\r\n\t\tcategory: \"BLDG-BLDGFITOUT\",\r\n\t\tassetAccount: 9132,\r\n\t\twipAccount: 9332,\r\n\t\texpenseAccount: 5932,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 20,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Buildings - Building Services\",\r\n\t\tmajor: \"Buildings\",\r\n\t\tminor: \"Building Services\",\r\n\t\tcategory: \"BLDG-SERVICES\",\r\n\t\tassetAccount: 9132,\r\n\t\twipAccount: 9332,\r\n\t\texpenseAccount: 5932,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 35,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Buildings - Building Structure\",\r\n\t\tmajor: \"Buildings\",\r\n\t\tminor: \"Building Structure\",\r\n\t\tcategory: \"BLDG-STRUCTURE\",\r\n\t\tassetAccount: 9132,\r\n\t\twipAccount: 9332,\r\n\t\texpenseAccount: 5932,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 50,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Motor Vehicles - Cars\",\r\n\t\tmajor: \"Motor Vehicles\",\r\n\t\tminor: \"Cars\",\r\n\t\tcategory: \"MOTOR-CARS\",\r\n\t\tassetAccount: 9139,\r\n\t\twipAccount: 9339,\r\n\t\texpenseAccount: 5939,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 5,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Defibrillators\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Defibrillators\",\r\n\t\tcategory: \"CLINEQ-DEFIBS\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 7,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Dental Equipment\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Dental Equipment\",\r\n\t\tcategory: \"CLINEQ-DENTALEQ\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Dialysis Equipment\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Dialysis Equipment\",\r\n\t\tcategory: \"CLINEQ-DIALYSEQ\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 8,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - ENT Equipment\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"ENT Equipment\",\r\n\t\tcategory: \"CLINEQ-ENTEQ\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 8,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Examination Lights\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Examination Lights\",\r\n\t\tcategory: \"CLINEQ-LIGHTS\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 8,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"General Equipment - General Furniture\",\r\n\t\tmajor: \"General Equipment\",\r\n\t\tminor: \"General Furniture\",\r\n\t\tcategory: \"GENEQ-FURNISH\",\r\n\t\tassetAccount: 9167,\r\n\t\twipAccount: 9367,\r\n\t\texpenseAccount: 5967,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Cultural Assets - Heritage Assets\",\r\n\t\tmajor: \"Cultural Assets\",\r\n\t\tminor: \"Heritage Assets\",\r\n\t\tcategory: \"CULTURAL-HERITAGE\",\r\n\t\tassetAccount: 9167,\r\n\t\twipAccount: null,\r\n\t\texpenseAccount: 5967,\r\n\t\tdepreciation: \"SL\",\r\n\t\tlifeYears: 0,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Incubator\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Incubator\",\r\n\t\tcategory: \"CLINEQ-INCUBAT\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"General Equipment - Kitchen Equipment\",\r\n\t\tmajor: \"General Equipment\",\r\n\t\tminor: \"Kitchen Equipment\",\r\n\t\tcategory: \"GENEQ-KITCHENEQ\",\r\n\t\tassetAccount: 9167,\r\n\t\twipAccount: 9367,\r\n\t\texpenseAccount: 5967,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 7,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Laboratory Equipment\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Laboratory Equipment\",\r\n\t\tcategory: \"CLINEQ-LABEQUIP\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 8,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Land - Land\",\r\n\t\tmajor: \"Land\",\r\n\t\tminor: \"Land\",\r\n\t\tcategory: \"LAND-LAND\",\r\n\t\tassetAccount: 9122,\r\n\t\twipAccount: 9332,\r\n\t\texpenseAccount: 5903,\r\n\t\tdepreciation: \"SL\",\r\n\t\tlifeYears: 0,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Lease Land and Buildings - Leased Buildings\",\r\n\t\tmajor: \"Lease Land and Buildings\",\r\n\t\tminor: \"Leased Buildings\",\r\n\t\tcategory: \"LEASE-LBUILD\",\r\n\t\tassetAccount: 9138,\r\n\t\twipAccount: 9338,\r\n\t\texpenseAccount: 5938,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: null,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Lease Land and Buildings - Leased Land\",\r\n\t\tmajor: \"Lease Land and Buildings\",\r\n\t\tminor: \"Leased Land\",\r\n\t\tcategory: \"LEASE-LLAND\",\r\n\t\tassetAccount: 9138,\r\n\t\twipAccount: 9338,\r\n\t\texpenseAccount: 5938,\r\n\t\tdepreciation: \"SL\",\r\n\t\tlifeYears: 0,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Lease Land and Buildings - Leasehold Improvements\",\r\n\t\tmajor: \"Lease Land and Buildings\",\r\n\t\tminor: \"Leasehold Improvements\",\r\n\t\tcategory: \"LEASE-LHIMPROV\",\r\n\t\tassetAccount: 9138,\r\n\t\twipAccount: 9338,\r\n\t\texpenseAccount: 5938,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 5,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Linear Accelerators\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Linear Accelerators\",\r\n\t\tcategory: \"CLINEQ-LINACS\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 12,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Manual and Electric Beds\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Manual and Electric Beds\",\r\n\t\tcategory: \"CLINEQ-BEDS\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 15,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Medical Cart\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Medical Cart\",\r\n\t\tcategory: \"CLINEQ-CARTS\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 15,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Medical Fridge/Freezer\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Medical Fridge/Freezer\",\r\n\t\tcategory: \"CLINEQ-FREEZERS\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 12,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Medical Pumps\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Medical Pumps\",\r\n\t\tcategory: \"CLINEQ-PUMPS\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 5,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Microscope\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Microscope\",\r\n\t\tcategory: \"CLINEQ-MICROSCOPE\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 12,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Motor Vehicles - Mobile Unit Incl Dental\",\r\n\t\tmajor: \"Motor Vehicles\",\r\n\t\tminor: \"Mobile Unit Incl Dental\",\r\n\t\tcategory: \"MOTOR-MOBILE\",\r\n\t\tassetAccount: 9139,\r\n\t\twipAccount: 9339,\r\n\t\texpenseAccount: 5939,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"ITC Equipment - Multifunctional Devices\",\r\n\t\tmajor: \"ITC Equipment\",\r\n\t\tminor: \"Multifunctional Devices\",\r\n\t\tcategory: \"ITCEQ-MFDS\",\r\n\t\tassetAccount: 9179,\r\n\t\twipAccount: 9379,\r\n\t\texpenseAccount: 5979,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 5,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"ITC Equipment - Network Equipment and Servers\",\r\n\t\tmajor: \"ITC Equipment\",\r\n\t\tminor: \"Network Equipment and Servers\",\r\n\t\tcategory: \"ITCEQ-NETWORK\",\r\n\t\tassetAccount: 9179,\r\n\t\twipAccount: 9379,\r\n\t\texpenseAccount: 5979,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 5,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"General Equipment - Office Equipment\",\r\n\t\tmajor: \"General Equipment\",\r\n\t\tminor: \"Office Equipment\",\r\n\t\tcategory: \"GENEQ-OFFICEEQ\",\r\n\t\tassetAccount: 9167,\r\n\t\twipAccount: 9367,\r\n\t\texpenseAccount: 5967,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Ophthalmic Equipment\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Ophthalmic Equipment\",\r\n\t\tcategory: \"CLINEQ-OPHTHALEQ\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Cultural Assets - Other Cultural Assets\",\r\n\t\tmajor: \"Cultural Assets\",\r\n\t\tminor: \"Other Cultural Assets\",\r\n\t\tcategory: \"CULTURAL-OTHRCULT\",\r\n\t\tassetAccount: 9167,\r\n\t\twipAccount: null,\r\n\t\texpenseAccount: 5967,\r\n\t\tdepreciation: \"SL\",\r\n\t\tlifeYears: 0,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"General Equipment - Other Equipment\",\r\n\t\tmajor: \"General Equipment\",\r\n\t\tminor: \"Other Equipment\",\r\n\t\tcategory: \"GENEQ-OTHGENEQ\",\r\n\t\tassetAccount: 9167,\r\n\t\twipAccount: 9367,\r\n\t\texpenseAccount: 5967,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"ITC Equipment - Other ITC Equipment\",\r\n\t\tmajor: \"ITC Equipment\",\r\n\t\tminor: \"Other ITC Equipment\",\r\n\t\tcategory: \"ITCEQ-ITCOTHEQ\",\r\n\t\tassetAccount: 9179,\r\n\t\twipAccount: 9379,\r\n\t\texpenseAccount: 5979,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 5,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Other Medical Equipment\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Other Medical Equipment\",\r\n\t\tcategory: \"CLINEQ-MEDEQUIP\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 8,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Motor Vehicles - Other Vehicles Incl Trailers\",\r\n\t\tmajor: \"Motor Vehicles\",\r\n\t\tminor: \"Other Vehicles Incl Trailers\",\r\n\t\tcategory: \"MOTOR-MVOTHS\",\r\n\t\tassetAccount: 9139,\r\n\t\twipAccount: 9339,\r\n\t\texpenseAccount: 5939,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Patient Hoist\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Patient Hoist\",\r\n\t\tcategory: \"CLINEQ-HOISTS\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Patient Monitoring Equipment Incl ECG and EKG\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Patient Monitoring Equipment Incl ECG and EKG\",\r\n\t\tcategory: \"CLINEQ-MONITORS\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 7,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"ITC Equipment - PCs and Laptops\",\r\n\t\tmajor: \"ITC Equipment\",\r\n\t\tminor: \"PCs and Laptops\",\r\n\t\tcategory: \"ITCEQ-PCS\",\r\n\t\tassetAccount: 9179,\r\n\t\twipAccount: 9379,\r\n\t\texpenseAccount: 5979,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 5,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"General Equipment - Plant - not subject to Revaluation\",\r\n\t\tmajor: \"General Equipment\",\r\n\t\tminor: \"Plant - not subject to Revaluation\",\r\n\t\tcategory: \"GENEQ-GENPLANT\",\r\n\t\tassetAccount: 9167,\r\n\t\twipAccount: 9367,\r\n\t\texpenseAccount: 5967,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 25,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Buildings - Residential Buildings\",\r\n\t\tmajor: \"Buildings\",\r\n\t\tminor: \"Residential Buildings\",\r\n\t\tcategory: \"BLDG-RESIDENT\",\r\n\t\tassetAccount: 9132,\r\n\t\twipAccount: 9332,\r\n\t\texpenseAccount: 5932,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 50,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Scopes\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Scopes\",\r\n\t\tcategory: \"CLINEQ-SCOPES\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 5,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Buildings - Site Infrastructure\",\r\n\t\tmajor: \"Buildings\",\r\n\t\tminor: \"Site Infrastructure\",\r\n\t\tcategory: \"BLDG-INFRASTRUC\",\r\n\t\tassetAccount: 9132,\r\n\t\twipAccount: 9332,\r\n\t\texpenseAccount: 5932,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 25,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Intangible Assets - Software Inhouse Developed\",\r\n\t\tmajor: \"Intangible Assets\",\r\n\t\tminor: \"Software Inhouse Developed\",\r\n\t\tcategory: \"INTANG-SOFTWDEV\",\r\n\t\tassetAccount: 9182,\r\n\t\twipAccount: 9382,\r\n\t\texpenseAccount: 5982,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 5,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Intangible Assets - Software Purchased\",\r\n\t\tmajor: \"Intangible Assets\",\r\n\t\tminor: \"Software Purchased\",\r\n\t\tcategory: \"INTANG-SOFTWPURCH\",\r\n\t\tassetAccount: 9182,\r\n\t\twipAccount: 9382,\r\n\t\texpenseAccount: 5982,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 5,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Sterilisers and Sanitisers\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Sterilisers and Sanitisers\",\r\n\t\tcategory: \"CLINEQ-STERILE\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 12,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Surgical Instruments & Equipment\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Surgical Instruments & Equipment\",\r\n\t\tcategory: \"CLINEQ-SURGEQUIP\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 7,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"ITC Equipment - Telecommunication Equipment\",\r\n\t\tmajor: \"ITC Equipment\",\r\n\t\tminor: \"Telecommunication Equipment\",\r\n\t\tcategory: \"ITCEQ-TELECOMEQ\",\r\n\t\tassetAccount: 9179,\r\n\t\twipAccount: 9379,\r\n\t\texpenseAccount: 5979,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 5,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Treatment and Operating Tables\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Treatment and Operating Tables\",\r\n\t\tcategory: \"CLINEQ-TABLES\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 15,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Motor Vehicles - Truck and Vans\",\r\n\t\tmajor: \"Motor Vehicles\",\r\n\t\tminor: \"Truck and Vans\",\r\n\t\tcategory: \"MOTOR-TRUCKS\",\r\n\t\tassetAccount: 9139,\r\n\t\twipAccount: 9339,\r\n\t\texpenseAccount: 5939,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Ventillator\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Ventillator\",\r\n\t\tcategory: \"CLINEQ-VENTILATOR\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Warmer or warming Equipment\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Warmer or warming Equipment\",\r\n\t\tcategory: \"CLINEQ-WARMERS\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 10,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Xray and Imaging Equipment incl MRI and CT\",\r\n\t\tmajor: \"Clinical Equipment\",\r\n\t\tminor: \"Xray and Imaging Equipment incl MRI and CT\",\r\n\t\tcategory: \"CLINEQ-IMAGING\",\r\n\t\tassetAccount: 9162,\r\n\t\twipAccount: 9362,\r\n\t\texpenseAccount: 5962,\r\n\t\tdepreciation: \"STL\",\r\n\t\tlifeYears: 8,\r\n\t\tprorate: \"FSTMONTH\",\r\n\t},\r\n];\r\n\r\nconst initialState = {\r\n\tdata,\r\n};\r\n\r\nconst assetCategorySlice = createSlice({\r\n\tname: \"assetCategory\",\r\n\tinitialState,\r\n});\r\n\r\nexport const { rcsReceived } = assetCategorySlice.actions;\r\nexport const selectMajorAssetCategory = createSelector(\r\n\t[(state) => state.capex.assetCategory.data],\r\n\t(data) => [\r\n\t\t...new Set(\r\n\t\t\tdata\r\n\t\t\t\t.map((c) => c.major)\r\n\t\t\t\t.sort((a, b) => (a > b ? 1 : a === b ? 0 : -1))\r\n\t\t),\r\n\t]\r\n);\r\n\r\nexport const selectMinorAssetCategory = createSelector(\r\n\t[(state) => state.capex.assetCategory.data],\r\n\t(data) => [\r\n\t\t...new Set(\r\n\t\t\tdata\r\n\t\t\t\t.map((c) => c.minor)\r\n\t\t\t\t.sort((a, b) => (a > b ? 1 : a === b ? 0 : -1))\r\n\t\t),\r\n\t]\r\n);\r\n\r\nexport const selectAssetCategory = (state) => state.capex.assetCategory.data;\r\n\r\nexport default assetCategorySlice.reducer;\r\n","import { createSlice, createAsyncThunk } from \"@reduxjs/toolkit\";\r\nimport { getHierarchies } from \"api\";\r\nimport _ from \"lodash\";\r\n\r\nexport const fetchRcs = createAsyncThunk(\r\n\t\"assetRc/fetchRcs\",\r\n\tasync ({ code, stateKey }, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\t//code = parent division containing RCs we want\r\n\r\n\t\t\tconst data = await getHierarchies({\r\n\t\t\t\tcode,\r\n\t\t\t\tdomain: \"Test\", //org hierarchy\r\n\t\t\t\tviewOption: \"Children\", //show RCs only\r\n\t\t\t});\r\n\t\t\treturn { data, stateKey };\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst initialState = {\r\n\trcs: [],\r\n\tmentalHealthRcs: [], //used to determine workflows\r\n\tfacilityRcs: [], //same as above\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n};\r\n\r\nconst assetRcSlice = createSlice({\r\n\tname: \"assetRc\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\trcsReceived(state, action) {\r\n\t\t\tstate.rcs = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\t[fetchRcs.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchRcs.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tconst { data, stateKey } = action.payload;\r\n\t\t\tconst sortedRcs = _.orderBy(data, [\"code\"], [\"asc\"]);\r\n\t\t\tstate[stateKey] = sortedRcs;\r\n\t\t},\r\n\t\t[fetchRcs.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.rcs = [];\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { rcsReceived } = assetRcSlice.actions;\r\n\r\nexport const selectAssetRc = (state) => state.capex.assetRc.rcs;\r\nexport const selectMentalHealthRcs = (state) =>\r\n\tstate.capex.assetRc.mentalHealthRcs;\r\nexport const selectFacilityRcs = (state) => state.capex.assetRc.facilityRcs;\r\n\r\nexport default assetRcSlice.reducer;\r\n","import { createSlice, createAsyncThunk } from \"@reduxjs/toolkit\";\r\nimport { getHierarchies } from \"api\";\r\nimport { lookupsUpserted } from \"reducers/lookupsSlice\";\r\n\r\nexport const fetchDivisions = createAsyncThunk(\r\n\t\"division/fetchDivisions\",\r\n\tasync (_, { dispatch, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\t//code = parent division containing RCs we want\r\n\r\n\t\t\tconst data = await getHierarchies({\r\n\t\t\t\tcode: \"WTPRVDR\", //hard coded to be the providedr arm\r\n\t\t\t\tdomain: \"Test\", //org hierarchy\r\n\t\t\t\tviewOption: \"Immediate\", //show immediate children of the node\r\n\t\t\t});\r\n\r\n\t\t\tconst lookups = data\r\n\t\t\t\t.sort((a, b) => (a < b ? 1 : a > b ? -1 : 0))\r\n\t\t\t\t.map((d) => ({\r\n\t\t\t\t\tdomainCode: \"divisions\",\r\n\t\t\t\t\tid: d.code,\r\n\t\t\t\t\tcode: d.code,\r\n\t\t\t\t\tdescription: d.name,\r\n\t\t\t\t}));\r\n\r\n\t\t\tdispatch(lookupsUpserted(lookups));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst initialState = {\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n};\r\n\r\nconst divisionSlice = createSlice({\r\n\tname: \"division\",\r\n\tinitialState,\r\n\textraReducers: {\r\n\t\t[fetchDivisions.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchDivisions.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t},\r\n\t\t[fetchDivisions.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default divisionSlice.reducer;\r\n","import store from \"reducers/store\";\r\nimport { LOOKUPS } from \"./lookups\";\r\nimport { questionsReceived } from \"reducers/questionsSlice\";\r\nimport { pagesReceived } from \"reducers/pagesSlice\";\r\nimport { lookupsReceived } from \"reducers/lookupsSlice\";\r\nimport { sectionsReceived } from \"reducers/sectionsSlice\";\r\nimport { formulasReceived } from \"reducers/formulasSlice\";\r\nimport { dependencyReceived } from \"reducers/dependenciesSlice\";\r\nimport { formDefinitionEdited } from \"reducers/formSlice\";\r\nimport { globalEdited } from \"reducers/global\";\r\n\r\nconst QUESTIONS = [\r\n\t{\r\n\t\tid: \"newOrSupQ\",\r\n\t\ttitle: \"Is this a new request, or a request for supplementary funding on an existing project?\",\r\n\t\tinputType: \"RadioGroup\",\r\n\t\tsectionId: \"S2\",\r\n\t\tpageId: \"P1\",\r\n\t\tdomain: \"requestDetails\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"s2q2\",\r\n\t\tsectionId: \"S2\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"What is the project number?\",\r\n\t\tinputType: \"Text\",\r\n\t\tvisible: { formulaId: \"supformula\" },\r\n\t},\r\n\t{\r\n\t\tid: \"FPIMSetupType\",\r\n\t\tsectionId: \"S3\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"FPIM Setup Type\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"FPIMSetupType\",\r\n\t\tdataType: \"string\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"contactPerson\",\r\n\t\tsectionId: \"S3\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Contact Person\",\r\n\t\tinputType: \"Text\",\r\n\t\tvisible: { formulaId: \"isItDevice\" },\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"deliveryAddress\",\r\n\t\tsectionId: \"S3\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Delivery Address\",\r\n\t\tinputType: \"Text\",\r\n\t\tvisible: { formulaId: \"isItDevice\" },\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"capabilityType\",\r\n\t\tsectionId: \"S4\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Will this project provide Te Whatu Ora - Waitematā with a new capability and/or replace an existing item?\",\r\n\t\tinputType: \"CheckBox\",\r\n\t\tdomain: \"capabilityType\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t// {\r\n\t// \tid: \"reasonforInvestment\",\r\n\t// \tsectionId: \"sectionNpi\",\r\n\t// \tpageId: \"P1\",\r\n\t// \ttitle: \"Reason for Investment\",\r\n\t// \tinputType: \"TextArea\",\r\n\t// \ttextAreaLines: 3,\r\n\t// \tvalidation: [{ type: \"mandatory\" }],\r\n\t// },\r\n\t{\r\n\t\tid: \"riskExistingAssetHeading\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Risk associated with existing asset failing\",\r\n\t\tinputType: \"Heading\",\r\n\t\tvisible: { formulaId: \"isNotReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"serviceImpact\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Service impact of asset failing\",\r\n\t\tdescription:\r\n\t\t\t\"What is the impact to service delivery should the asset fail (and is not available for a period of 24 hours)?\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"serviceImpact\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t\tvisible: { formulaId: \"isNotReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"patientStaffImpact\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Patient / Staff impact of asset failing\",\r\n\t\tdescription:\r\n\t\t\t\"What is the impact on staff or the patient should the asset fail whilst in use?\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"patientStaffImpact\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t\tvisible: { formulaId: \"isNotReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"likelihoodOfAssetFailing\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Likelihood of asset failing\",\r\n\t\tdescription:\r\n\t\t\t\"What is the likelihood of the asset failing? This can be based on a number of factors including the asset condition, type of construction or material, the location and operating conditions of the asset.\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"likelihoodOfAssetFailing\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t\tvisible: { formulaId: \"isNotReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"assetCriticality\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tdescription:\r\n\t\t\t\"No data entry required. This is based on the 3 datafields entered above.\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Asset Criticality\",\r\n\t\tinputType: \"AssetCriticality\",\r\n\t\tvisible: { formulaId: \"isNotReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"overallRiskAssetFailure\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tdescription:\r\n\t\t\t\"No data entry required. This is based on the 3 datafields entered above.\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Overall Risk Associated with Asset Failing\",\r\n\t\tinputType: \"OverallRiskAssetFailure\",\r\n\t\tvisible: { formulaId: \"isNotReplacement\" },\r\n\t},\r\n\r\n\t{\r\n\t\tid: \"riskNewAsset\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Risk associated with investment not occuring\",\r\n\t\tdescripton: \"asdfasdf\",\r\n\t\tinputType: \"Heading\",\r\n\t\tvisible: { formulaId: \"isReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"consequence1\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Consequences (1 of 3)\",\r\n\t\tdescription:\r\n\t\t\t\"What will be the impact of not undertaking the investment?\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"consequences\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t\tvisible: { formulaId: \"isReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"weighting1\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Consequence weighting (1 of 3)\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"weighting\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t\tvisible: { formulaId: \"isReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"consequence2\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Consequences (2 of 3)\",\r\n\t\tdescription:\r\n\t\t\t\"What will be the impact of not undertaking the investment?\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"consequences\",\r\n\t\tvisible: { formulaId: \"isReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"weighting2\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Consequence weighting (2 of 3)\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"weighting\",\r\n\t\tvisible: { formulaId: \"isReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"consequence3\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Consequences (3 of 3)\",\r\n\t\tdescription:\r\n\t\t\t\"What will be the impact of not undertaking the investment?\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"consequences\",\r\n\t\tvisible: { formulaId: \"isReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"weighting3\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Consequence weighting (3 of 3)\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"weighting\",\r\n\t\tvisible: { formulaId: \"isReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"likelihoodOfConsequence\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Likelihood of event occurring\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"likelihoodOfConsequence\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t\tvisible: { formulaId: \"isNotReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"overallRiskConsequence\",\r\n\t\tsectionId: \"sectionNpi\",\r\n\t\tdescription:\r\n\t\t\t\"No data entry required. This is based on the consequences entered above.\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Overall Risk Associated with Investment Not Occurring\",\r\n\t\tinputType: \"OverallRiskConsequences\",\r\n\t\tvisible: { formulaId: \"isNotReplacement\" },\r\n\t},\r\n\t{\r\n\t\tid: \"s6q1-2\",\r\n\t\tsectionId: \"S6\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Service Name\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"services\",\r\n\t},\r\n\t{\r\n\t\tid: \"s6q1\",\r\n\t\tsectionId: \"S6\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Responsibility centre\",\r\n\t\tinputType: \"TreeSelect\",\r\n\t\tdomain: \"Test\",\r\n\t\tstaticType: \"approvalRc\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"endUserCode\",\r\n\t\tsectionId: \"S6\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"End User Code (where item will be delivered to)\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"endUserCode\",\r\n\t},\r\n\t{\r\n\t\tid: \"s6q2\",\r\n\t\tsectionId: \"S6\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Project end date\",\r\n\t\tdescription: \"Not less than 3 months away\",\r\n\t\tinputType: \"ProjectEndDate\",\r\n\t\tdataType: \"date\",\r\n\t},\r\n\t{\r\n\t\tid: \"s6q3\",\r\n\t\tsectionId: \"S6\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Supporting documentation\",\r\n\t\tdescription:\r\n\t\t\t\"To include any business cases, meeting minutes and any other relevant supporting documentation.</br>NB Quotes should be attached on the following page</br>NB Email (msg) files cannot be uploaded for security reasons\",\r\n\t\tinputType: \"Attachment\",\r\n\t},\r\n\t{\r\n\t\tid: \"projectCode\",\r\n\t\tsectionId: \"S7\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Project Code\",\r\n\t\tdescription: \"Admin use only\",\r\n\t\tinputType: \"Text\",\r\n\t},\r\n\t{\r\n\t\tid: \"projectShortName\",\r\n\t\tsectionId: \"S7\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Project Name as it should appear in FPIM\",\r\n\t\tdescription: \"Maximum 30 characters, including prefix\",\r\n\t\tprefix: \"WT-23-\",\r\n\t\tinputType: \"Text\",\r\n\t\tvalidation: [{ type: \"mandatory\" }, { type: \"maxLength\", value: 24 }],\r\n\t\toptions: {\r\n\t\t\twordCount: { max: 24 },\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tid: \"projectDescription\",\r\n\t\tsectionId: \"S7\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Project Long Name / Description\",\r\n\t\tdescription: \"Maximum 80 characters, including prefix\",\r\n\t\tprefix: \"WT-23-\",\r\n\t\tinputType: \"Text\",\r\n\t\tvalidation: [{ type: \"mandatory\" }, { type: \"maxLength\", value: 74 }],\r\n\t\toptions: {\r\n\t\t\twordCount: { max: 74 },\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tid: \"s7q2\",\r\n\t\tsectionId: \"S7\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Project outline/summary\",\r\n\t\tinputType: \"TextArea\",\r\n\t\ttextAreaLines: 3,\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"s7q3\",\r\n\t\tsectionId: \"S7\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"What is the risk being addressed?\",\r\n\t\tinputType: \"TextArea\",\r\n\t\ttextAreaLines: 3,\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"s7q4\",\r\n\t\tsectionId: \"S7\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"What are the alternatives, including consequences of not doing the project?\",\r\n\t\tinputType: \"TextArea\",\r\n\t\ttextAreaLines: 3,\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"q1\",\r\n\t\tname: \"expenditureRequest\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\ttitle: \"Details of capital expenditure request\",\r\n\t\tinputType: \"Table\",\r\n\t\tdataType: \"string\",\r\n\t\tdepth: 0,\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tid: \"q2\",\r\n\t\tname: \"item\",\r\n\t\ttitle: \"Item description\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"string\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q1\",\r\n\t\tcol: { span: 6 },\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tid: \"q3a\",\r\n\t\tname: \"majorCategory\",\r\n\t\ttitle: \"Major Category\",\r\n\t\tinputType: \"MajorCategory\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q1\",\r\n\t\tcol: { span: 4 },\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tid: \"q3b\",\r\n\t\tname: \"minorCategory\",\r\n\t\ttitle: \"Minor Category\",\r\n\t\tinputType: \"MinorCategory\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q1\",\r\n\t\tcol: { span: 5 },\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tid: \"q4\",\r\n\t\tname: \"currency\",\r\n\t\ttitle: \"Currency\",\r\n\t\tinputType: \"Select\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q1\",\r\n\t\tcol: { span: 2 },\r\n\t\tdomain: \"currency\",\r\n\t\tdefaultValue: \"NZD\",\r\n\t},\r\n\r\n\t{\r\n\t\tid: \"quantity\",\r\n\t\tname: \"quantity\",\r\n\t\ttitle: \"Qty.\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"numeric\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q1\",\r\n\t\tcol: { span: 1 },\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\r\n\t{\r\n\t\tid: \"unitPrice\",\r\n\t\tname: \"unitPrice\",\r\n\t\ttitle: \"Unit Price\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"numeric\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q1\",\r\n\t\tcol: { span: 2 },\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tid: \"q7\",\r\n\t\tname: \"totalCost\",\r\n\t\ttitle: \"Total Cost\",\r\n\t\tinputType: \"NumberDisplay\",\r\n\t\tdataType: \"currency\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q1\",\r\n\t\tcol: { span: 2 },\r\n\t\tdisabled: true,\r\n\t\tdefaultValue: {\r\n\t\t\tformulaId: \"formulaId\",\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tid: \"s8q1\",\r\n\t\tname: \"expenditureAttachments\",\r\n\t\ttitle: \"Quote\",\r\n\t\tinputType: \"Attachment\",\r\n\t\tdataType: \"miniAttachment\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q1\",\r\n\t\tcol: { span: 2 },\r\n\t},\r\n\t{\r\n\t\tid: \"q8\",\r\n\t\tname: \"ongoingCosts\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\ttitle: \"Associated additional operating costs, if applicable\",\r\n\t\tinputType: \"Table\",\r\n\t\tdepth: 0,\r\n\t},\r\n\t{\r\n\t\tid: \"costType\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\ttitle: \"Cost Type\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"costType\",\r\n\t\tparentQuestionId: \"q8\",\r\n\t\tcol: { span: 12 },\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t\toptions: {\r\n\t\t\tmode: \"tags\",\r\n\t\t\tmultiple: false,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tid: \"years\",\r\n\t\tname: \"years\",\r\n\t\ttitle: \"No. of Years\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"numeric\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q8\",\r\n\t\tcol: { span: 3 },\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tid: \"amountPerYear\",\r\n\t\tname: \"amountPerYear\",\r\n\t\ttitle: \"Amount Per Year\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"numeric\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q8\",\r\n\t\tcol: { span: 3 },\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\r\n\t{\r\n\t\tid: \"totalOngoingCost\",\r\n\t\tname: \"totalOngoingCost\",\r\n\t\ttitle: \"Total\",\r\n\t\tinputType: \"NumberDisplay\",\r\n\t\tdataType: \"currency\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q8\",\r\n\t\tcol: { span: 4 },\r\n\t\tdisabled: true,\r\n\t\tdefaultValue: {\r\n\t\t\tformulaId: \"ongoingTotal\",\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tid: \"ongoingCostsQuote\",\r\n\t\tname: \"ongoingCostsQuote\",\r\n\t\ttitle: \"Quote\",\r\n\t\tinputType: \"Attachment\",\r\n\t\tdataType: \"miniAttachment\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q8\",\r\n\t\tcol: { span: 2 },\r\n\t},\r\n\t{\r\n\t\tid: \"replacementProject\",\r\n\t\tname: \"replacementProject\",\r\n\t\ttitle: \"Is this project a replacement of an existing asset?\",\r\n\t\tinputType: \"RadioGroup\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tdomain: \"YN\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"anyItemReplacement\",\r\n\t\tname: \"anyItemReplacement\",\r\n\t\ttitle: \"Will the replaced asset be decommissioned?\",\r\n\t\tinputType: \"RadioGroup\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tdomain: \"YN\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t\tvisible: { formulaId: \"replacementProjectFormula\" },\r\n\t},\r\n\t{\r\n\t\tid: \"q10\",\r\n\t\tname: \"replacedItems\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\ttitle: \"Provide the details of the items being replaced.\",\r\n\t\tinputType: \"Table\",\r\n\t\tdepth: 0,\r\n\t\tvisible: { formulaId: \"anyItemReplacementFormula\" },\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tid: \"assetDescription\",\r\n\t\tname: \"assetDescription\",\r\n\t\ttitle: \"Asset Description\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"string\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q10\",\r\n\t\tcol: { span: 4 },\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"datePurchased\",\r\n\t\tname: \"datePurchased\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\ttitle: \"Date Purchased (if known)\",\r\n\t\tinputType: \"DatePicker\",\r\n\t\tdataType: \"date\",\r\n\t\tparentQuestionId: \"q10\",\r\n\t\tcol: { span: 3 },\r\n\t},\r\n\t{\r\n\t\tid: \"assetNumber\",\r\n\t\ttitle: \"Waitematā (Tag) Asset #\",\r\n\t\tinputType: \"AutoComplete\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tdomain: \"asset\",\r\n\t\tparentQuestionId: \"q10\",\r\n\t\tcol: { span: 2 },\r\n\t},\r\n\t{\r\n\t\tid: \"serialNumber\",\r\n\t\ttitle: \"Serial #\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"string\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q10\",\r\n\t\tcol: { span: 2 },\r\n\t},\r\n\t{\r\n\t\tid: \"farNumber\",\r\n\t\ttitle: \"Fixed Asset Reg. #\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"string\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q10\",\r\n\t\tcol: { span: 2 },\r\n\t},\r\n\t{\r\n\t\tid: \"whatHappenToThisAsset\",\r\n\t\tname: \"whatHappenToThisAsset\",\r\n\t\ttitle: \"What will happen to this asset?\",\r\n\t\tinputType: \"AutoComplete\",\r\n\t\tdomain: \"assetFate\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q10\",\r\n\t\tcol: { span: 5 },\r\n\t},\r\n\r\n\t{\r\n\t\tid: \"originalCost\",\r\n\t\tname: \"originalCost\",\r\n\t\ttitle: \"Original Cost\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"numeric\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q10\",\r\n\t\tcol: { span: 3 },\r\n\t},\r\n\t{\r\n\t\tid: \"nbv\",\r\n\t\tname: \"NBV\",\r\n\t\ttitle: \"NBV\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"numeric\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\tparentQuestionId: \"q10\",\r\n\t\tcol: { span: 3 },\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"assetDisposalForm\",\r\n\t\tsectionId: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\ttitle: \"Please attach Asset Disposal Form here<br /><a href='Asset Disposal and Transfer Form (16 Apr-13).doc'>Download Disposal Form Template</a><br /><a href='Multi Asset Disposal Attachment (16 Apr-13).doc'>Download Multi Disposal Form Template</a>\",\r\n\t\tinputType: \"Attachment\",\r\n\t\tvisible: { formulaId: \"anyItemReplacementFormula\" },\r\n\t},\r\n\t{\r\n\t\tid: \"s9q1\",\r\n\t\tsectionId: \"S9\",\r\n\t\tpageId: \"P3\",\r\n\t\ttitle: \"Please attach the Project Task Structure template here. <a href='Task Breakdown Structure - Template.xlsx'>Download Template</a>\",\r\n\t\tinputType: \"Attachment\",\r\n\t},\r\n\t{\r\n\t\tid: \"receivedPriorApprovalAsset\",\r\n\t\tname: \"receivedPriorApprovalAsset\",\r\n\t\ttitle: \"Have any of the items requested received prior approval as critical clinical items identified for replacement in the annual budget process?\",\r\n\t\tdescription:\r\n\t\t\t\"Note that not all critical items get approved as part of the budget\",\r\n\t\tinputType: \"RadioGroup\",\r\n\t\tsectionId: \"S11\",\r\n\t\tpageId: \"P4\",\r\n\t\tdomain: \"YN\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"q11\",\r\n\t\tname: \"priorApprovalAsset\",\r\n\t\tsectionId: \"S11\",\r\n\t\tpageId: \"P4\",\r\n\t\ttitle: \"Provide the details\",\r\n\t\tinputType: \"Table\",\r\n\t\tdepth: 0,\r\n\t\tvisible: { formulaId: \"receivedPriorApprovalAssetFormula\" },\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t\tValue: 0,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tid: \"assetTagNumberDescription\",\r\n\t\ttitle: \"Asset tag, serial number & description\",\r\n\t\tinputType: \"AutoComplete\",\r\n\t\tsectionId: \"S11\",\r\n\t\tpageId: \"P4\",\r\n\t\tdomain: \"asset\",\r\n\t\tparentQuestionId: \"q11\",\r\n\t\tcol: { span: 12 },\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"location\",\r\n\t\tname: \"location\",\r\n\t\ttitle: \"Location\",\r\n\t\tinputType: \"Select\",\r\n\t\tsectionId: \"S11\",\r\n\t\tpageId: \"P4\",\r\n\t\tparentQuestionId: \"q11\",\r\n\t\tcol: { span: 6 },\r\n\t\tdomain: \"location\",\r\n\t},\r\n\t{\r\n\t\tid: \"priorApprovalAssetAmount\",\r\n\t\tname: \"priorApprovalAssetAmount\",\r\n\t\ttitle: \"Amount\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"currency\",\r\n\t\tsectionId: \"S11\",\r\n\t\tpageId: \"P4\",\r\n\t\tparentQuestionId: \"q11\",\r\n\t\tcol: { span: 6 },\r\n\t},\r\n\t{\r\n\t\tid: \"willReceiveExternalFunding\",\r\n\t\tname: \"willReceiveExternalFunding\",\r\n\t\ttitle: \"Will the project receive external funding?\",\r\n\t\tinputType: \"RadioGroup\",\r\n\t\tsectionId: \"S11\",\r\n\t\tpageId: \"P4\",\r\n\t\tdomain: \"YN\",\r\n\t\tvalidation: [{ type: \"mandatory\" }],\r\n\t},\r\n\t{\r\n\t\tid: \"externalFundingDetails\",\r\n\t\tname: \"externalFundingDetails\",\r\n\t\ttitle: \"Please provide details of external funding\",\r\n\t\tinputType: \"TextArea\",\r\n\t\tdataType: \"string\",\r\n\t\tsectionId: \"S11\",\r\n\t\tpageId: \"P4\",\r\n\t\ttextAreaLines: 3,\r\n\t\tvisible: { formulaId: \"willReceiveExternalFundingFormula\" },\r\n\t},\r\n\t{\r\n\t\tid: \"externalFundingAttachment\",\r\n\t\tname: \"externalFundingAttachment\",\r\n\t\tsectionId: \"S11\",\r\n\t\tpageId: \"P4\",\r\n\t\ttitle: \"Please attach evidence of external funding (email, Board Minutes etc)\",\r\n\t\tinputType: \"Attachment\",\r\n\t\tvisible: { formulaId: \"willReceiveExternalFundingFormula\" },\r\n\t},\r\n\t{\r\n\t\tid: \"fundingSourceTable\",\r\n\t\tname: \"fundingSource\",\r\n\t\tsectionId: \"S12\",\r\n\t\tpageId: \"P4\",\r\n\t\tinputType: \"Table\",\r\n\t\tdataType: \"string\",\r\n\t\tdepth: 0,\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tid: \"sourceProjectCode\",\r\n\t\tname: \"sourceProjectCode\",\r\n\t\ttitle: \"Source Project\",\r\n\t\tinputType: \"Select\",\r\n\t\tdomain: \"budgetCategories\",\r\n\t\tsectionId: \"S12\",\r\n\t\tpageId: \"P4\",\r\n\t\tparentQuestionId: \"fundingSourceTable\",\r\n\t\tcol: { span: 12 },\r\n\t},\r\n\t{\r\n\t\tid: \"sourceCommitment\",\r\n\t\tname: \"sourceCommitment\",\r\n\t\ttitle: \"Commitment to This Project\",\r\n\t\tinputType: \"Text\",\r\n\t\tdataType: \"numeric\",\r\n\t\tsectionId: \"S12\",\r\n\t\tpageId: \"P4\",\r\n\t\tparentQuestionId: \"fundingSourceTable\",\r\n\t\tcol: { span: 4 },\r\n\t\tvalidation: [\r\n\t\t\t{\r\n\t\t\t\ttype: \"mandatory\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tid: \"sourceWtProjectCode\",\r\n\t\tname: \"sourceWtProjectCode\",\r\n\t\ttitle: \"WT Project Code\",\r\n\t\tinputType: \"Text\",\r\n\t\tsectionId: \"S12\",\r\n\t\tpageId: \"P4\",\r\n\t\tparentQuestionId: \"fundingSourceTable\",\r\n\t\tcol: { span: 8 },\r\n\t\tvisible: { formulaId: \"isWtProject\" },\r\n\t},\r\n\t{\r\n\t\tid: \"fundingHeading\",\r\n\t\tsectionId: \"S12\",\r\n\t\tpageId: \"P4\",\r\n\t\ttitle: \"Funding Summary\",\r\n\t\tinputType: \"Heading\",\r\n\t},\r\n\t{\r\n\t\tid: \"totalFundingSource\",\r\n\t\tsectionId: \"S12\",\r\n\t\tpageId: \"P4\",\r\n\t\ttitle: \"Total Funding\",\r\n\t\tinputType: \"TotalFundingSource\",\r\n\t\tdataType: \"currency\",\r\n\t\tlabelColWidth: 16,\r\n\t\tdisplayMode: \"tabular\",\r\n\t},\r\n\t{\r\n\t\tid: \"totalFundingDifference\",\r\n\t\tdescription: \"Must equal zero\",\r\n\t\tsectionId: \"S12\",\r\n\t\tpageId: \"P4\",\r\n\t\ttitle: \"Total Shortfall/Surplus\",\r\n\t\tinputType: \"TotalFundingDifference\",\r\n\t\tdataType: \"currency\",\r\n\t\tlabelColWidth: 16,\r\n\t\tdisplayMode: \"tabular\",\r\n\t\tvalidation: [{ type: \"numericValue2dp\", value: 0.0 }],\r\n\t},\r\n];\r\nconst SECTIONS = [\r\n\t{\r\n\t\tid: \"S2\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Request details\",\r\n\t},\r\n\t{\r\n\t\tid: \"S3\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Project type\",\r\n\t\tvisible: { formulaId: \"newrequestformula\" },\r\n\t},\r\n\t{\r\n\t\tid: \"S4\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Capability type\",\r\n\t},\r\n\t{\r\n\t\tid: \"sectionNpi\",\r\n\t\tpageId: \"P1.5\",\r\n\t\ttitle: \"Non-Project Investment\",\r\n\t\tvisible: { formulaId: \"isNotProject\" },\r\n\t},\r\n\t{\r\n\t\tid: \"S7\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Project brief\",\r\n\t},\r\n\r\n\t{\r\n\t\tid: \"S6\",\r\n\t\tpageId: \"P1\",\r\n\t\ttitle: \"Service Details\",\r\n\t},\r\n\t{\r\n\t\tid: \"S8\",\r\n\t\tpageId: \"P2\",\r\n\t\ttitle: \"Capital Investment - acquisitions and disposals\",\r\n\t\tsize: \"xlarge\",\r\n\t},\r\n\t{\r\n\t\tid: \"S9\",\r\n\t\tpageId: \"P3\",\r\n\t\ttitle: \"Project Task Structure in FPIM\",\r\n\t\tvisible: { formulaId: \"isProject\" },\r\n\t},\r\n\t{\r\n\t\tid: \"S11\",\r\n\t\tpageId: \"P4\",\r\n\t\ttitle: \"Funding Source - Capex only\",\r\n\t},\r\n\t{\r\n\t\tid: \"S12\",\r\n\t\tpageId: \"P4\",\r\n\t\ttitle: \"Funding Source Details - Capex only\",\r\n\t},\r\n];\r\nconst PAGES = [\r\n\t{\r\n\t\tid: \"P1\",\r\n\t\ttitle: \"Overview\",\r\n\t},\r\n\r\n\t{\r\n\t\tid: \"P2\",\r\n\t\ttitle: \"Acquisitions & Disposals\",\r\n\t},\r\n\t{\r\n\t\tid: \"P1.5\",\r\n\t\ttitle: \"NPI\",\r\n\t},\r\n\t{\r\n\t\tid: \"P3\",\r\n\t\ttitle: \"FPIM Details\",\r\n\t},\r\n\t{\r\n\t\tid: \"P4\",\r\n\t\ttitle: \"Funding\",\r\n\t},\r\n\t{\r\n\t\tid: \"keyMembers\",\r\n\t\ttitle: \"Key Members\",\r\n\t\ttype: \"keyMembers\",\r\n\t},\r\n\t{\r\n\t\tid: \"approval\",\r\n\t\ttitle: \"Approval\",\r\n\t\ttype: \"capexApproval\",\r\n\t},\r\n];\r\nconst FORMULAS = [\r\n\t{\r\n\t\tid: \"formulaId\",\r\n\t\ttext: \"unitPrice * quantity\",\r\n\t\tdependencies: [\"unitPrice\", \"quantity\"],\r\n\t},\r\n\t{\r\n\t\tid: \"ongoingTotal\",\r\n\t\ttext: \"years * amountPerYear\",\r\n\t\tdependencies: [\"years\", \"amountPerYear\"],\r\n\t},\r\n\t{\r\n\t\tid: \"newrequestformula\",\r\n\t\ttext: \"newOrSupQ = 'newRequest'\",\r\n\t\tdependencies: [\"newOrSupQ\"],\r\n\t},\r\n\t{\r\n\t\tid: \"supformula\",\r\n\t\ttext: \"newOrSupQ = 'supplementaryFundingRequest'\",\r\n\t\tdependencies: [\"newOrSupQ\"],\r\n\t},\r\n\t{\r\n\t\tid: \"anyItemReplacementFormula\",\r\n\t\ttext: \"anyItemReplacement = 'Y'\",\r\n\t\tdependencies: [\"anyItemReplacement\"],\r\n\t},\r\n\t{\r\n\t\tid: \"replacementProjectFormula\",\r\n\t\ttext: \"replacementProject = 'Y'\",\r\n\t\tdependencies: [\"replacementProject\"],\r\n\t},\r\n\t{\r\n\t\tid: \"receivedPriorApprovalAssetFormula\",\r\n\t\ttext: \"receivedPriorApprovalAsset = 'Y'\",\r\n\t\tdependencies: [\"receivedPriorApprovalAsset\"],\r\n\t},\r\n\t{\r\n\t\tid: \"willReceiveExternalFundingFormula\",\r\n\t\ttext: \"willReceiveExternalFunding = 'Y'\",\r\n\t\tdependencies: [\"willReceiveExternalFunding\"],\r\n\t},\r\n\t{\r\n\t\tid: \"isProject\",\r\n\t\ttext: \"OR(FPIMSetupType = 'T-Build Activity-WT';FPIMSetupType = 'T-Seed-WT')\",\r\n\t\tdependencies: [\"FPIMSetupType\"],\r\n\t},\r\n\t{\r\n\t\tid: \"isNotProject\",\r\n\t\ttext: \"NOT(OR(FPIMSetupType = 'T-Build Activity-WT';FPIMSetupType = 'T-Seed-WT'))\",\r\n\t\tdependencies: [\"FPIMSetupType\"],\r\n\t},\r\n\t{\r\n\t\tid: \"isReplacement\",\r\n\t\ttext: \"OR(capabilityType = 'yes'; capabilityType = 'yes,no'; capabilityType = 'no,yes')\",\r\n\t\tdependencies: [\"capabilityType\"],\r\n\t},\r\n\t{\r\n\t\tid: \"isNotReplacement\",\r\n\t\ttext: \"OR(capabilityType = 'no'; capabilityType = 'yes,no'; capabilityType = 'no,yes')\",\r\n\t\tdependencies: [\"capabilityType\"],\r\n\t},\r\n\t{\r\n\t\tid: \"isItDevice\",\r\n\t\ttext: \"FPIMSetupType = 'T-IT Devices-WT'\",\r\n\t\tdependencies: [\"FPIMSetupType\"],\r\n\t},\r\n\t{\r\n\t\tid: \"isWtProject\",\r\n\t\ttext: \"sourceProjectCode = 'WT Project'\",\r\n\t\tdependencies: [\"sourceProjectCode\"],\r\n\t},\r\n];\r\nconst DEPENDENCIES = [\r\n\t{ id: \"sourceProjectCode\", formulas: [\"isWtProject\"] },\r\n\t{ id: \"unitPrice\", formulas: [\"formulaId\"] },\r\n\t{ id: \"quantity\", formulas: [\"formulaId\"] },\r\n\t{ id: \"years\", formulas: [\"ongoingTotal\"] },\r\n\t{ id: \"amountPerYear\", formulas: [\"ongoingTotal\"] },\r\n\t{ id: \"newOrSupQ\", formulas: [\"newrequestformula\", \"supformula\"] },\r\n\t{ id: \"anyItemReplacement\", formulas: [\"anyItemReplacementFormula\"] },\r\n\t{ id: \"replacementProject\", formulas: [\"replacementProjectFormula\"] },\r\n\t{\r\n\t\tid: \"receivedPriorApprovalAsset\",\r\n\t\tformulas: [\"receivedPriorApprovalAssetFormula\"],\r\n\t},\r\n\t{\r\n\t\tid: \"willReceiveExternalFunding\",\r\n\t\tformulas: [\"willReceiveExternalFundingFormula\"],\r\n\t},\r\n\t{\r\n\t\tid: \"FPIMSetupType\",\r\n\t\tformulas: [\"isProject\", \"isNotProject\", \"isItDevice\"],\r\n\t},\r\n\t{\r\n\t\tid: \"capabilityType\",\r\n\t\tformulas: [\"isReplacement\", \"isNotReplacement\"],\r\n\t},\r\n];\r\n\r\nexport const dispatchCapexForm = () => {\r\n\tstore.dispatch(\r\n\t\tformDefinitionEdited({\r\n\t\t\tid: \"e3508ecc-7901-4552-b7df-9734cb97403f\",\r\n\t\t\tappHierarchyId: \"4f5f8dc5-f80b-4a0e-ba68-ebf5c748c46f\",\r\n\t\t\torganisationHierarchyId: \"A286A211-3873-4F74-AFCA-8F3927986E5F\",\r\n\t\t\toriginId: \"e3508ecc-7901-4552-b7df-9734cb97403f\",\r\n\t\t\tversion: 1,\r\n\t\t\tname: \"CAPEX\",\r\n\t\t\townerId: \"cb5dbd05-3858-49ee-accf-398ed5d192be\",\r\n\t\t\tisLive: true,\r\n\t\t\tcreateBy: \"string\",\r\n\t\t\tmodifyBy: \"string\",\r\n\t\t\tauthoriseData: null,\r\n\t\t})\r\n\t);\r\n\tstore.dispatch(questionsReceived(QUESTIONS));\r\n\tstore.dispatch(pagesReceived(PAGES));\r\n\tstore.dispatch(lookupsReceived(LOOKUPS));\r\n\tstore.dispatch(sectionsReceived(SECTIONS));\r\n\tstore.dispatch(formulasReceived(FORMULAS));\r\n\tstore.dispatch(dependencyReceived(DEPENDENCIES));\r\n\tstore.dispatch(globalEdited(app));\r\n};\r\nexport const app = {\r\n\tscreenTitle: \"CAPEX Online\",\r\n\tappType: \"capex\",\r\n\tshowFormHeader: true,\r\n\thomePath: \"/Capex/Dashboard\",\r\n\tappId: \"4F5F8DC5-F80B-4A0E-BA68-EBF5C748C46F\",\r\n\tformDefinitionId: \"E3508ECC-7901-4552-B7DF-9734CB97403F\",\r\n\torgRootId: \"4E6C1709-FD6A-4C69-A37F-42D6C3E08A36\",\r\n\tdomain: \"Test\",\r\n\tshowFooter: true,\r\n\tshowHeader: true,\r\n};\r\n","import { RCS } from \"./rcs\";\r\n\r\nconst CONSEQUENCES = [\r\n\t{\r\n\t\tid: \"conseq1\",\r\n\t\tdomainCode: \"consequences\",\r\n\t\tcode: \"1\",\r\n\t\tdescription:\r\n\t\t\t\"Impact on the safety of patients, staff or public (physical and/or psychological harm)\",\r\n\t},\r\n\t{\r\n\t\tid: \"conseq2\",\r\n\t\tdomainCode: \"consequences\",\r\n\t\tcode: \"2\",\r\n\t\tdescription: \"Quality/Complaints/Audit\",\r\n\t},\r\n\t{\r\n\t\tid: \"conseq3\",\r\n\t\tdomainCode: \"consequences\",\r\n\t\tcode: \"3\",\r\n\t\tdescription:\r\n\t\t\t\"Human resources / organisational development / staffing / competence\",\r\n\t},\r\n\t{\r\n\t\tid: \"conseq4\",\r\n\t\tdomainCode: \"consequences\",\r\n\t\tcode: \"4\",\r\n\t\tdescription: \"Statutory duty / Inspections\",\r\n\t},\r\n\t{\r\n\t\tid: \"conseq5\",\r\n\t\tdomainCode: \"consequences\",\r\n\t\tcode: \"5\",\r\n\t\tdescription: \"Adverse publicity / Reputation\",\r\n\t},\r\n\t{\r\n\t\tid: \"conseq6\",\r\n\t\tdomainCode: \"consequences\",\r\n\t\tcode: \"6\",\r\n\t\tdescription: \"Business objectives / Projects\",\r\n\t},\r\n\t{\r\n\t\tid: \"conseq7\",\r\n\t\tdomainCode: \"consequences\",\r\n\t\tcode: \"7\",\r\n\t\tdescription: \"Finance including claims\",\r\n\t},\r\n\t{\r\n\t\tid: \"conseq8\",\r\n\t\tdomainCode: \"consequences\",\r\n\t\tcode: \"8\",\r\n\t\tdescription: \"Service / business interruption / Environmental impact\",\r\n\t},\r\n\t{\r\n\t\tid: \"conseq9\",\r\n\t\tdomainCode: \"consequences\",\r\n\t\tcode: \"9\",\r\n\t\tdescription: \"Information Systems\",\r\n\t},\r\n];\r\n\r\nconst WEIGHTING = [\r\n\t{\r\n\t\tid: \"1\",\r\n\t\tdomainCode: \"weighting\",\r\n\t\tcode: \"1\",\r\n\t\tdescription: \"1 - Insignificant\",\r\n\t},\r\n\t{\r\n\t\tid: \"2\",\r\n\t\tdomainCode: \"weighting\",\r\n\t\tcode: \"2\",\r\n\t\tdescription: \"2 - Minor\",\r\n\t},\r\n\t{\r\n\t\tid: \"3\",\r\n\t\tdomainCode: \"weighting\",\r\n\t\tcode: \"3\",\r\n\t\tdescription: \"3 - Moderate\",\r\n\t},\r\n\t{\r\n\t\tid: \"4\",\r\n\t\tdomainCode: \"weighting\",\r\n\t\tcode: \"4\",\r\n\t\tdescription: \"4 - Major\",\r\n\t},\r\n\t{\r\n\t\tid: \"5\",\r\n\t\tdomainCode: \"weighting\",\r\n\t\tcode: \"5\",\r\n\t\tdescription: \"5 - Catastrophic\",\r\n\t},\r\n];\r\n\r\nconst LIKELIHOOD_CONSEQUENCE = [\r\n\t{\r\n\t\tid: \"lc1\",\r\n\t\tdomainCode: \"likelihoodOfConsequence\",\r\n\t\tcode: \"1\",\r\n\t\tdescription:\r\n\t\t\t\"1-Rare (The event may occur only in exceptional circumstances)\",\r\n\t},\r\n\t{\r\n\t\tid: \"lc2\",\r\n\t\tdomainCode: \"likelihoodOfConsequence\",\r\n\t\tcode: \"2\",\r\n\t\tdescription: \"2-Unlikely (The event could occur at some time)\",\r\n\t},\r\n\t{\r\n\t\tid: \"lc3\",\r\n\t\tdomainCode: \"likelihoodOfConsequence\",\r\n\t\tcode: \"3\",\r\n\t\tdescription: \"3-Possible (The event will occur at some time)\",\r\n\t},\r\n\t{\r\n\t\tid: \"lc4\",\r\n\t\tdomainCode: \"likelihoodOfConsequence\",\r\n\t\tcode: \"4\",\r\n\t\tdescription:\r\n\t\t\t\"4-Likely (The event will probably occur in most circumstances)\",\r\n\t},\r\n\t{\r\n\t\tid: \"lc5\",\r\n\t\tdomainCode: \"likelihoodOfConsequence\",\r\n\t\tcode: \"5\",\r\n\t\tdescription:\r\n\t\t\t\"5-Almost Certain (The event is expected to occur in most circumstances)\",\r\n\t},\r\n];\r\n\r\nconst LIKELIHOOD_FAILURE = [\r\n\t{\r\n\t\tid: \"lf1\",\r\n\t\tdomainCode: \"likelihoodOfAssetFailing\",\r\n\t\tcode: \"1\",\r\n\t\tdescription:\r\n\t\t\t\"(1)Rare - Failure is not expected to occur for years. New or some wear or discoloration but no evidence of damage\",\r\n\t},\r\n\t{\r\n\t\tid: \"lf2\",\r\n\t\tdomainCode: \"likelihoodOfAssetFailing\",\r\n\t\tcode: \"2\",\r\n\t\tdescription:\r\n\t\t\t\"(2)Unlikely - Failure could occur in the next year. Acceptable physical condition, with minor deterioration or damage that may affect performance (includes most repaired assets)\",\r\n\t},\r\n\t{\r\n\t\tid: \"lf3\",\r\n\t\tdomainCode: \"likelihoodOfAssetFailing\",\r\n\t\tcode: \"3\",\r\n\t\tdescription:\r\n\t\t\t\"(3)Possible - Failure is expected to occur in the next six months. Some deterioration is evident but asset is still serviceable\",\r\n\t},\r\n\t{\r\n\t\tid: \"lf4\",\r\n\t\tdomainCode: \"likelihoodOfAssetFailing\",\r\n\t\tcode: \"4\",\r\n\t\tdescription:\r\n\t\t\t\"(4)Likely - Failure will probably occur in the next month. Significant deterioration or damage is evident and may be impacting performance or suggests that the asset may be likely to fail in the short term\",\r\n\t},\r\n\t{\r\n\t\tid: \"lf5\",\r\n\t\tdomainCode: \"likelihoodOfAssetFailing\",\r\n\t\tcode: \"5\",\r\n\t\tdescription:\r\n\t\t\t\"(5)Almost certain - Immediate repair or renewal is required. Asset is unserviceable (i.e. has failed) or failure is considered imminent (in the next week)\",\r\n\t},\r\n];\r\n\r\nconst SERVICE_IMPACT = [\r\n\t{\r\n\t\tid: \"si1\",\r\n\t\tdomainCode: \"serviceImpact\",\r\n\t\tcode: \"1\",\r\n\t\tdescription:\r\n\t\t\t\"(1)None - No impact on the delivery of the service, due to a redundancy in assets (via an asset fleet/pool) or a local workaround\",\r\n\t},\r\n\t{\r\n\t\tid: \"si2\",\r\n\t\tdomainCode: \"serviceImpact\",\r\n\t\tcode: \"2\",\r\n\t\tdescription:\r\n\t\t\t\"(2)Minor - Minor impact on the ability to deliver the service, and/or waiting times increased to between 12 to 24 hours\",\r\n\t},\r\n\t{\r\n\t\tid: \"si3\",\r\n\t\tdomainCode: \"serviceImpact\",\r\n\t\tcode: \"3\",\r\n\t\tdescription:\r\n\t\t\t\"(3)Moderate - Considerable impact on the ability to deliver the service, and/or waiting times increased beyond 24 hours\",\r\n\t},\r\n\t{\r\n\t\tid: \"si4\",\r\n\t\tdomainCode: \"serviceImpact\",\r\n\t\tcode: \"4\",\r\n\t\tdescription:\r\n\t\t\t\"(4)Significant - Significant impact on the ability to deliver the service, and/or major disruption resulting in multiple cancelations\",\r\n\t},\r\n\t{\r\n\t\tid: \"si5\",\r\n\t\tdomainCode: \"serviceImpact\",\r\n\t\tcode: \"5\",\r\n\t\tdescription:\r\n\t\t\t\"(5)Major - Major impact on the ability to deliver the service for an indefinite period resulting in the service having to be outsourced, and/or no alternative to deliver the service\",\r\n\t},\r\n];\r\n\r\nconst PATIENT_STAFF_IMPACT = [\r\n\t{\r\n\t\tid: \"psi1\",\r\n\t\tdomainCode: \"patientStaffImpact\",\r\n\t\tcode: \"1\",\r\n\t\tdescription:\r\n\t\t\t\"(1)None - Minimal injury requiring no or minimal additional intervention or treatment, and/or no impact on patient experience.\",\r\n\t},\r\n\t{\r\n\t\tid: \"psi2\",\r\n\t\tdomainCode: \"patientStaffImpact\",\r\n\t\tcode: \"2\",\r\n\t\tdescription:\r\n\t\t\t\"(2)Minor - Minor injury or illness, requiring minor intervention, and/or increase in length of hospital stay by 1-3 days, and/or minor impact on patient experience.\",\r\n\t},\r\n\t{\r\n\t\tid: \"psi3\",\r\n\t\tdomainCode: \"patientStaffImpact\",\r\n\t\tcode: \"3\",\r\n\t\tdescription:\r\n\t\t\t\"(3)Moderate - Moderate injury requiring professional intervention, and/or increase in length of hospital stay by 4-15 days, and/or moderate impact on patient experience.\",\r\n\t},\r\n\r\n\t{\r\n\t\tid: \"psi4\",\r\n\t\tdomainCode: \"patientStaffImpact\",\r\n\t\tcode: \"4\",\r\n\t\tdescription:\r\n\t\t\t\"(4)Significant - Significant injury leading to long-term incapacity/disability, and/or increase in length of hospital stay by >15 days, and/or mismanagement of patient care with long-term effects, and/or significant impact on patient experience.\",\r\n\t},\r\n\t{\r\n\t\tid: \"psi5\",\r\n\t\tdomainCode: \"patientStaffImpact\",\r\n\t\tcode: \"5\",\r\n\t\tdescription:\r\n\t\t\t\"(5)Major - Incident leading to unexpected death; multiple permanent injuries or irreversible health effects, and/or impacts on large number of patients / staff, and/or major impact on patient experience.\",\r\n\t},\r\n];\r\n\r\nconst PROJECT_TYPE = [\r\n\t{\r\n\t\tid: \"l1\",\r\n\t\tdomainCode: \"projectType\",\r\n\t\tcode: \"purchaseListedItem\",\r\n\t\tdescription: \"Request to purchase listed items only (individual asset)\",\r\n\t},\r\n\t{\r\n\t\tid: \"l2\",\r\n\t\tdomainCode: \"projectType\",\r\n\t\tcode: \"project\",\r\n\t\tdescription:\r\n\t\t\t\"Request to create a Project in which something is built or created (major project)\",\r\n\t},\r\n];\r\n\r\nconst REQUEST_DETAILS = [\r\n\t{\r\n\t\tid: \"l3\",\r\n\t\tdomainCode: \"requestDetails\",\r\n\t\tcode: \"newRequest\",\r\n\t\tdescription: \"New request\",\r\n\t},\r\n\t{\r\n\t\tid: \"l4\",\r\n\t\tdomainCode: \"requestDetails\",\r\n\t\tcode: \"supplementaryFundingRequest\",\r\n\t\tdescription: \"Supplementary funding request\",\r\n\t},\r\n];\r\n\r\nconst CAPABILITY_TYPE = [\r\n\t{\r\n\t\tid: \"l5\",\r\n\t\tdomainCode: \"capabilityType\",\r\n\t\tcode: \"yes\",\r\n\t\tdescription: \"Creates new capability or increased capacity\",\r\n\t},\r\n\t{\r\n\t\tid: \"l6\",\r\n\t\tdomainCode: \"capabilityType\",\r\n\t\tcode: \"no\",\r\n\t\tdescription: \"Replaces an existing item(s) like for like\",\r\n\t},\r\n];\r\n\r\nconst CURRENCY = [\r\n\t{\r\n\t\tid: \"l7\",\r\n\t\tdomainCode: \"currency\",\r\n\t\tcode: \"NZD\",\r\n\t\tdescription: \"NZD\",\r\n\t},\r\n\t{\r\n\t\tid: \"l8\",\r\n\t\tdomainCode: \"currency\",\r\n\t\tcode: \"AUD\",\r\n\t\tdescription: \"AUD\",\r\n\t},\r\n\t{\r\n\t\tid: \"l9\",\r\n\t\tdomainCode: \"currency\",\r\n\t\tcode: \"USD\",\r\n\t\tdescription: \"USD\",\r\n\t},\r\n];\r\n\r\nconst COST_TYPE = [\r\n\t{\r\n\t\tid: \"l10\",\r\n\t\tdomainCode: \"costType\",\r\n\t\tcode: \"maint\",\r\n\t\tdescription: \"Maintenance Costs\",\r\n\t},\r\n\t{\r\n\t\tid: \"l11\",\r\n\t\tdomainCode: \"costType\",\r\n\t\tcode: \"cons\",\r\n\t\tdescription: \"Consumable Costs\",\r\n\t},\r\n\t{\r\n\t\tid: \"l12\",\r\n\t\tdomainCode: \"costType\",\r\n\t\tcode: \"staff\",\r\n\t\tdescription: \"Staff Costs\",\r\n\t},\r\n\t{\r\n\t\tid: \"l13\",\r\n\t\tdomainCode: \"costType\",\r\n\t\tcode: \"other\",\r\n\t\tdescription: \"Other Costs\",\r\n\t},\r\n];\r\n\r\nconst ORACLE_SETUP_TYPE = [\r\n\t{\r\n\t\tid: \"T-Build Activity-WT\",\r\n\t\tdomainCode: \"FPIMSetupType\",\r\n\t\tcode: \"T-Build Activity-WT\",\r\n\t\tdescription: \"T-Build Activity-WT\",\r\n\t},\r\n\t{\r\n\t\tid: \"T-Clinical Equipment-WT\",\r\n\t\tdomainCode: \"FPIMSetupType\",\r\n\t\tcode: \"T-Clinical Equipment-WT\",\r\n\t\tdescription: \"T-Clinical Equipment-WT\",\r\n\t},\r\n\t{\r\n\t\tid: \"T-General Equipment-WT\",\r\n\t\tdomainCode: \"FPIMSetupType\",\r\n\t\tcode: \"T-General Equipment-WT\",\r\n\t\tdescription: \"T-General Equipment-WT\",\r\n\t},\r\n\t{\r\n\t\tid: \"T-Intangible Assets-WT\",\r\n\t\tdomainCode: \"FPIMSetupType\",\r\n\t\tcode: \"T-Intangible Assets-WT\",\r\n\t\tdescription: \"T-Intangible Assets-WT\",\r\n\t},\r\n\t{\r\n\t\tid: \"T-IT Devices-WT\",\r\n\t\tdomainCode: \"FPIMSetupType\",\r\n\t\tcode: \"T-IT Devices-WT\",\r\n\t\tdescription: \"T-IT Devices-WT\",\r\n\t},\r\n\t{\r\n\t\tid: \"T-IT Project-WT\",\r\n\t\tdomainCode: \"FPIMSetupType\",\r\n\t\tcode: \"T-IT Project-WT\",\r\n\t\tdescription: \"T-IT Project-WT\",\r\n\t},\r\n\t{\r\n\t\tid: \"T-Land-WT\",\r\n\t\tdomainCode: \"FPIMSetupType\",\r\n\t\tcode: \"T-Land-WT\",\r\n\t\tdescription: \"T-Land-WT\",\r\n\t},\r\n\t{\r\n\t\tid: \"T-Leased Land Buildgs-WT\",\r\n\t\tdomainCode: \"FPIMSetupType\",\r\n\t\tcode: \"T-Leased Land Buildgs-WT\",\r\n\t\tdescription: \"T-Leased Land Buildgs-WT\",\r\n\t},\r\n\t{\r\n\t\tid: \"T-Motor Vehicles-WT\",\r\n\t\tdomainCode: \"FPIMSetupType\",\r\n\t\tcode: \"T-Motor Vehicles-WT\",\r\n\t\tdescription: \"T-Motor Vehicles-WT\",\r\n\t},\r\n\t{\r\n\t\tid: \"T-Opex Project-WT\",\r\n\t\tdomainCode: \"FPIMSetupType\",\r\n\t\tcode: \"T-Opex Project-WT\",\r\n\t\tdescription: \"T-Opex Project-WT\",\r\n\t},\r\n\t{\r\n\t\tid: \"T-Seed-WT\",\r\n\t\tdomainCode: \"FPIMSetupType\",\r\n\t\tcode: \"T-Seed-WT\",\r\n\t\tdescription: \"T-Seed-WT\",\r\n\t},\r\n];\r\n\r\nconst BUDGET_CATEGORIES = [\r\n\t{\r\n\t\tid: \"WT-23-C-01001\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01001\",\r\n\t\tdescription: \"FY22 Carry-forward\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01002\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01002\",\r\n\t\tdescription: \"FY22 Carry-forward (Mental Health)\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01003\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01003\",\r\n\t\tdescription: \"Covid projects (DHB-funded)\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01004\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01004\",\r\n\t\tdescription: \"Inflight replacement projects\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01005\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01005\",\r\n\t\tdescription: \"Replacement pipeline projects\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01006\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01006\",\r\n\t\tdescription: \"Critical Clinical Equipment\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01007\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01007\",\r\n\t\tdescription: \"Reactive Replacement\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01008\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01008\",\r\n\t\tdescription: \"Clinical Fleet assets\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01009\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01009\",\r\n\t\tdescription: \"Facilities\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01010\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01010\",\r\n\t\tdescription: \"IT IS\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01011\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01011\",\r\n\t\tdescription: \"Hospital Services Minor\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01012\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01012\",\r\n\t\tdescription: \"Mental Health Minor\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01013\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01013\",\r\n\t\tdescription: \"Facilities Maintenance Minor\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01014\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01014\",\r\n\t\tdescription: \"Corporate Minor\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01015\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01015\",\r\n\t\tdescription: \"Inflight Strategic projects\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01016\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01016\",\r\n\t\tdescription: \"Strategic pipeline projects\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01017\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01017\",\r\n\t\tdescription: \"Strategic Minor\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01018\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01018\",\r\n\t\tdescription: \"PC Fund\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01019\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01019\",\r\n\t\tdescription: \"Facilities (non-replacement/new)\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01020\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01020\",\r\n\t\tdescription: \"IT IS (non-replacement/new)\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01021\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01021\",\r\n\t\tdescription: \"Mental Health (non-replacement/new)\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01022\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01022\",\r\n\t\tdescription: \"Clinical Equipment (non-replacement/new)\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01023\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01023\",\r\n\t\tdescription: \"Escalation\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23-C-01024\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT-23-C-01024\",\r\n\t\tdescription: \"Well Foundation\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"Cash Reserves\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Cash Reserves\",\r\n\t\tdescription: \"Cash Reserves\",\r\n\t\tinactive: true,\r\n\t},\r\n\t{\r\n\t\tid: \"Three Harbours Trust\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Three Harbours Trust\",\r\n\t\tdescription: \"Three Harbours Trust\",\r\n\t\tinactive: true,\r\n\t},\r\n\r\n\t{\r\n\t\tid: \"Carry-forward from FY23\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Carry-forward from FY23\",\r\n\t\tdescription: \"Carry-forward from FY23\",\r\n\t},\r\n\t{\r\n\t\tid: \"Change Requests\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Change Requests\",\r\n\t\tdescription: \"Change Requests\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - ARDS\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Clinical Equipment - ARDS\",\r\n\t\tdescription: \"Clinical Equipment - ARDS\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Fleet Replacement\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Clinical Equipment - Fleet Replacement\",\r\n\t\tdescription: \"Clinical Equipment - Fleet Replacement\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Growth / Expansion\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Clinical Equipment - Growth / Expansion\",\r\n\t\tdescription: \"Clinical Equipment - Growth / Expansion\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Planned Replacement\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Clinical Equipment - Planned Replacement\",\r\n\t\tdescription: \"Clinical Equipment - Planned Replacement\",\r\n\t},\r\n\t{\r\n\t\tid: \"Clinical Equipment - Reactive Replacement\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Clinical Equipment - Reactive Replacement\",\r\n\t\tdescription: \"Clinical Equipment - Reactive Replacement\",\r\n\t},\r\n\t{\r\n\t\tid: \"Corporate Minor\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Corporate Minor\",\r\n\t\tdescription: \"Corporate Minor\",\r\n\t},\r\n\t{\r\n\t\tid: \"Crown\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Crown\",\r\n\t\tdescription: \"Crown\",\r\n\t},\r\n\t{\r\n\t\tid: \"Facilities Minor\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Facilities Minor\",\r\n\t\tdescription: \"Facilities Minor\",\r\n\t},\r\n\t{\r\n\t\tid: \"FY25 Top-slice\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"FY25 Top-slice\",\r\n\t\tdescription: \"FY25 Top-slice\",\r\n\t},\r\n\t{\r\n\t\tid: \"IT Hardware\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"IT Hardware\",\r\n\t\tdescription: \"IT Hardware\",\r\n\t},\r\n\t{\r\n\t\tid: \"Major Capex\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Major Capex\",\r\n\t\tdescription: \"Major Capex\",\r\n\t},\r\n\t{\r\n\t\tid: \"Management Reserve\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Management Reserve\",\r\n\t\tdescription: \"Management Reserve\",\r\n\t},\r\n\t{\r\n\t\tid: \"Mental Health Minor\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Mental Health Minor\",\r\n\t\tdescription: \"Mental Health Minor\",\r\n\t},\r\n\t{\r\n\t\tid: \"Minor Capex\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Minor Capex\",\r\n\t\tdescription: \"Minor Capex\",\r\n\t},\r\n\t{\r\n\t\tid: \"Other\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Other\",\r\n\t\tdescription: \"Other\",\r\n\t},\r\n\t{\r\n\t\tid: \"Well Foundation\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"Well Foundation\",\r\n\t\tdescription: \"Well Foundation\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT Project\",\r\n\t\tdomainCode: \"budgetCategories\",\r\n\t\tcode: \"WT Project\",\r\n\t\tdescription: \"WT Project\",\r\n\t},\r\n];\r\n\r\nconst END_USER_CODE = [\r\n\t{\r\n\t\tid: \"NS-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-01\",\r\n\t\tdescription: \"NS-01 North Shore Hospital : Tahoroto Mental Health Unit\",\r\n\t},\r\n\t{\r\n\t\tid: \"01 NSSFQ4 \",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"01 NSSFQ4 \",\r\n\t\tdescription: \"01 NSSFQ4 : North Shore Smales Farm\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-02\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-02\",\r\n\t\tdescription: \"NS-02 North Shore Hospital : Groundsmen Quarters\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-03\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-03\",\r\n\t\tdescription: \"NS-03 North Shore Hospital : Trades Workshops\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-04\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-04\",\r\n\t\tdescription: \"NS-04 North Shore Hospital : Boiler House\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-05-GR\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-05-GR\",\r\n\t\tdescription:\r\n\t\t\t\"NS-05-GR North Shore Hospital : Outpatients, Ground Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-05-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-05-01\",\r\n\t\tdescription:\r\n\t\t\t\"NS-05-01 North Shore Hospital : Community Health, 01 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-06-11\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-06-11\",\r\n\t\tdescription:\r\n\t\t\t\"NS-06-11 North Shore Hospital : Geriatric Block - Ward 11\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-06-12\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-06-12\",\r\n\t\tdescription:\r\n\t\t\t\"NS-06-12 North Shore Hospital : Geriatric Block - Ward 12\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-06-14\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-06-14\",\r\n\t\tdescription:\r\n\t\t\t\"NS-06-14 North Shore Hospital : Geriatric Block - Ward 14\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-06-15\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-06-15\",\r\n\t\tdescription:\r\n\t\t\t\"NS-06-15 North Shore Hospital : Geriatric Block - Ward 15\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-07\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-07\",\r\n\t\tdescription: \"NS-07 North Shore Hospital : Lakeside Pump House\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-08\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-08\",\r\n\t\tdescription: \"NS-08 North Shore Hospital : Pupuke Centre\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-09\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-09\",\r\n\t\tdescription: \"NS-09 North Shore Hospital : Blood Service\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-10\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-10\",\r\n\t\tdescription: \"NS-10 North Shore Hospital : Marinoto\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-11\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-11\",\r\n\t\tdescription:\r\n\t\t\t\"NS-11 North Shore Hospital : Stepping Stones; Living Skills\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-12\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-12\",\r\n\t\tdescription:\r\n\t\t\t\"NS-12 North Shore Hospital : Marinoto North - 124A Shakespeare Rd\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-13\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-13\",\r\n\t\tdescription:\r\n\t\t\t\"NS-13 North Shore Hospital : Diabetes Unit - 124B Shakespeare Rd\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-14\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-14\",\r\n\t\tdescription: \"NS-14 North Shore Hospital : Raeburn House\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-LG\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-LG\",\r\n\t\tdescription:\r\n\t\t\t\"NS-15-LG North Shore Hospital : Main Building, Lower Ground Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-GR\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-GR\",\r\n\t\tdescription:\r\n\t\t\t\"NS-15-GR North Shore Hospital : Main Building, Ground Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-01\",\r\n\t\tdescription: \"NS-15-01 North Shore Hospital : Main Building, 01 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-02\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-02\",\r\n\t\tdescription: \"NS-15-02 North Shore Hospital : Main Building, 02 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-03\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-03\",\r\n\t\tdescription: \"NS-15-03 North Shore Hospital : Main Building, 03 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-04\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-04\",\r\n\t\tdescription: \"NS-15-04 North Shore Hospital : Main Building, 04 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-05\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-05\",\r\n\t\tdescription: \"NS-15-05 North Shore Hospital : Main Building, 05 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-06\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-06\",\r\n\t\tdescription: \"NS-15-06 North Shore Hospital : Main Building, 06 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-07\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-07\",\r\n\t\tdescription: \"NS-15-07 North Shore Hospital : Main Building, 07 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-08\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-08\",\r\n\t\tdescription: \"NS-15-08 North Shore Hospital : Main Building, 08 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-09\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-09\",\r\n\t\tdescription: \"NS-15-09 North Shore Hospital : Main Building, 09 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-15-10\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-15-10\",\r\n\t\tdescription: \"NS-15-10 North Shore Hospital : Main Building, 10 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-16\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-16\",\r\n\t\tdescription: \"NS-16 North Shore Hospital : Kitchen/Dining\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-17\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-17\",\r\n\t\tdescription:\r\n\t\t\t\"NS-17 North Shore Hospital : Site Services Building/ Generator House\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-18\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-18\",\r\n\t\tdescription: \"NS-18 North Shore Hospital : Substation 2/ ESC Generator\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-19\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-19\",\r\n\t\tdescription: \"NS-19 North Shore Hospital : Crèche\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-20\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-20\",\r\n\t\tdescription: \"NS-20 North Shore Hospital : Gas Mains House\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-22\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-22\",\r\n\t\tdescription: \"NS-22 North Shore Hospital : Ginger Bread House\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-23\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-23\",\r\n\t\tdescription:\r\n\t\t\t\"NS-23 North Shore Hospital : Office accommodation for clinical support\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-24\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-24\",\r\n\t\tdescription:\r\n\t\t\t\"NS-24 North Shore Hospital : Renal Service - 122 Shakespeare Rd\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-25-LG\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-25-LG\",\r\n\t\tdescription:\r\n\t\t\t\"NS-25-LG North Shore Hospital : Lakeview, Lower Ground Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-25-GR\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-25-GR\",\r\n\t\tdescription: \"NS-25-GR North Shore Hospital : Lakeview, Ground Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-25-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-25-01\",\r\n\t\tdescription: \"NS-25-01 North Shore Hospital : Lakeview, 01 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-26\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-26\",\r\n\t\tdescription: \"NS-26 North Shore Hospital : Car Park Building\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-27\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-27\",\r\n\t\tdescription:\r\n\t\t\t\"NS-27 North Shore Hospital : Dialysis Centre - 132 Shakespeare Rd\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-28-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-28-01\",\r\n\t\tdescription:\r\n\t\t\t\"NS-28-01 North Shore Hospital : Elective Surgery Centre, 01 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-28-GR\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-28-GR\",\r\n\t\tdescription:\r\n\t\t\t\"NS-28-GR North Shore Hospital : Elective Surgery Centre, Ground Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-29\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-29\",\r\n\t\tdescription: \"NS-29 North Shore Hospital : North Shore Gym\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-30\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-30\",\r\n\t\tdescription:\r\n\t\t\t\"NS-30 North Shore Hospital : He Puna Waiora - 132 Shakespeare Rd\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-31\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-31\",\r\n\t\tdescription: \"NS-31 North Shore Hospital : 44 Taharoto Road\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-32\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-32\",\r\n\t\tdescription: \"NS-32 North Shore Hospital : Whare Karaka\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-33\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-33\",\r\n\t\tdescription:\r\n\t\t\t\"NS-33 North Shore Hospital : 9 Karaka Street Units 1 - 8 \",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-34\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-34\",\r\n\t\tdescription: \"NS-34 North Shore Hospital : North Shore Sky Bridge\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-35\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-35\",\r\n\t\tdescription:\r\n\t\t\t\"NS-35 North Shore Hospital : Waitemata Clinical Skills Centre\",\r\n\t},\r\n\t{\r\n\t\tid: \"NS-37 \",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"NS-37 \",\r\n\t\tdescription: \"NS-37 North Shore Hospital : 37 Taharoto Road\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-01\",\r\n\t\tdescription: \"WT-01 Waitakere Hospital : Woodford House\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-02\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-02\",\r\n\t\tdescription: \"WT-02 Waitakere Hospital : Building 2\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-03\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-03\",\r\n\t\tdescription: \"WT-03 Waitakere Hospital : Snelgar Building\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-04\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-04\",\r\n\t\tdescription:\r\n\t\t\t\"WT-04 Waitakere Hospital : Clinical / Surgical Skills training\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-05\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-05\",\r\n\t\tdescription: \"WT-05 Waitakere Hospital : Health West Building\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-06\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-06\",\r\n\t\tdescription: \"WT-06 Waitakere Hospital : Trade Workshop\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-07\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-07\",\r\n\t\tdescription: \"WT-07 Waitakere Hospital : Nikau Room\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-08\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-08\",\r\n\t\tdescription: \"WT-08 Waitakere Hospital : New Boiler House\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-09\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-09\",\r\n\t\tdescription: \"WT-09 Waitakere Hospital : Standby Generator House\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-10\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-10\",\r\n\t\tdescription: \"WT-10 Waitakere Hospital : Woodford Cottage\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-11\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-11\",\r\n\t\tdescription: \"WT-11 Waitakere Hospital : Te Atarau Mental Health Unit\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-12\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-12\",\r\n\t\tdescription: \"WT-12 Waitakere Hospital : Union Health Building \",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-14\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-14\",\r\n\t\tdescription: \"WT-14 Waitakere Hospital : Woodford Gardens\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-15\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-15\",\r\n\t\tdescription: \"WT-15 Waitakere Hospital : Greenhouse\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-16\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-16\",\r\n\t\tdescription: \"WT-16 Waitakere Hospital : Te Whare Oranga Building 1\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-18\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-18\",\r\n\t\tdescription: \"WT-18 Waitakere Hospital : Maternity\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-19\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-19\",\r\n\t\tdescription: \"WT-19 Waitakere Hospital : Te Whare Oranga building 2\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-20\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-20\",\r\n\t\tdescription: \"WT-20 Waitakere Hospital : Aratika\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-21-GR\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-21-GR\",\r\n\t\tdescription:\r\n\t\t\t\"WT-21-GR Waitakere Hospital : Main Building, Ground Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-21-LG\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-21-LG\",\r\n\t\tdescription:\r\n\t\t\t\"WT-21-LG Waitakere Hospital : Main Building, Lower Ground Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-22\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-22\",\r\n\t\tdescription: \"WT-22 Waitakere Hospital : WTH Haemodialysis\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-23\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-23\",\r\n\t\tdescription: \"WT-23 Waitakere Hospital : Waiatarau\",\r\n\t},\r\n\t{\r\n\t\tid: \"WT-24\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WT-24\",\r\n\t\tdescription: \"WT-24 Waitakere Hospital : New Emergency Department\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-01\",\r\n\t\tdescription: \"MC-01 Mason Clinic : Kauri, Totara\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-02\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-02\",\r\n\t\tdescription: \"MC-02 Mason Clinic : Kahikatea\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-04\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-04\",\r\n\t\tdescription: \"MC-04 Mason Clinic : Garage/Workshop/Equipment\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-05\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-05\",\r\n\t\tdescription: \"MC-05 Mason Clinic : Kowhai Centre\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-06\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-06\",\r\n\t\tdescription: \"MC-06 Mason Clinic : Swimming Pool Changing Room\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-07\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-07\",\r\n\t\tdescription: \"MC-07 Mason Clinic : Puriri\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-08\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-08\",\r\n\t\tdescription: \"MC-08 Mason Clinic : Rata\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-09\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-09\",\r\n\t\tdescription: \"MC-09 Mason Clinic : Tanekaha\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-10\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-10\",\r\n\t\tdescription: \"MC-10 Mason Clinic : Te Miro Community Building\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-11\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-11\",\r\n\t\tdescription: \"MC-11 Mason Clinic : Generator House\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-12\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-12\",\r\n\t\tdescription: \"MC-12 Mason Clinic : Tane Whakapiripiri\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-13\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-13\",\r\n\t\tdescription: \"MC-13 Mason Clinic : Pohutukawa\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-14\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-14\",\r\n\t\tdescription: \"MC-14 Mason Clinic : Rimu\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-15\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-15\",\r\n\t\tdescription: \"MC-15 Mason Clinic : Kurawaka\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-16\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-16\",\r\n\t\tdescription: \"MC-16 Mason Clinic : Puriri Pod\",\r\n\t},\r\n\t{\r\n\t\tid: \"MC-17\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"MC-17\",\r\n\t\tdescription: \"MC-17 Mason Clinic : New 15 Bed Unit\",\r\n\t},\r\n\t{\r\n\t\tid: \"WC-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WC-01\",\r\n\t\tdescription: \"WC-01 Wilson Centre : Main Block\",\r\n\t},\r\n\t{\r\n\t\tid: \"WC-02\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WC-02\",\r\n\t\tdescription: \"WC-02 Wilson Home : School Block\",\r\n\t},\r\n\t{\r\n\t\tid: \"WC-03\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WC-03\",\r\n\t\tdescription: \"WC-03 Wilson Home : Assessment & treatment unit\",\r\n\t},\r\n\t{\r\n\t\tid: \"WC-04\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WC-04\",\r\n\t\tdescription: \"WC-04 Wilson Centre : Villas\",\r\n\t},\r\n\t{\r\n\t\tid: \"WC-06\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WC-06\",\r\n\t\tdescription: \"WC-06 Wilson Home : Chapel\",\r\n\t},\r\n\t{\r\n\t\tid: \"WC-07\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WC-07\",\r\n\t\tdescription: \"WC-07 Wilson Home : Gardener Shed\",\r\n\t},\r\n\t{\r\n\t\tid: \"WC-08\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WC-08\",\r\n\t\tdescription: \"WC-08 Wilson Home : The Bach (Parents Accommodation)\",\r\n\t},\r\n\t{\r\n\t\tid: \"WC-09\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WC-09\",\r\n\t\tdescription: \"WC-09 Wilson Home : Staff Flat\",\r\n\t},\r\n\t{\r\n\t\tid: \"WC-10\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WC-10\",\r\n\t\tdescription: \"WC-10 Wilson Home : Summer House\",\r\n\t},\r\n\t{\r\n\t\tid: \"WC-11\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WC-11\",\r\n\t\tdescription: \"WC-11 Wilson Home : Wilson Home Trust Office\",\r\n\t},\r\n\t{\r\n\t\tid: \"DC-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"DC-01\",\r\n\t\tdescription: \"DC-01 Detox Centre : Pitman House (Regional Admin)\",\r\n\t},\r\n\t{\r\n\t\tid: \"DC-01-GR\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"DC-01-GR\",\r\n\t\tdescription: \"DC-01-GR Detox Centre : Pitman House, Ground Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"DC-01-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"DC-01-01\",\r\n\t\tdescription: \"DC-01-01 Detox Centre : Pitman House, 01 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"DC-02\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"DC-02\",\r\n\t\tdescription: \"DC-02 Detox Centre : CADS Central/TUPU/Altered High,\",\r\n\t},\r\n\t{\r\n\t\tid: \"DC-03\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"DC-03\",\r\n\t\tdescription:\r\n\t\t\t\"DC-03 Detox Centre : CADS South, 17 Lambie Drive Building 4\",\r\n\t},\r\n\t{\r\n\t\tid: \"DC-04\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"DC-04\",\r\n\t\tdescription:\r\n\t\t\t\"DC-04 Detox Centre : CADS South - Matariki (492 Great South Road)\",\r\n\t},\r\n\t{\r\n\t\tid: \"WW\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WW\",\r\n\t\tdescription: \"WW Warkworth Community Health\",\r\n\t},\r\n\t{\r\n\t\tid: \"WEL\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WEL\",\r\n\t\tdescription: \"WEL Wellsford Coast to Coast \",\r\n\t},\r\n\t{\r\n\t\tid: \"HV\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"HV\",\r\n\t\tdescription: \"HV Helensville Community Health\",\r\n\t},\r\n\t{\r\n\t\tid: \"RB\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"RB\",\r\n\t\tdescription: \"RB Red Beach Community Health\",\r\n\t},\r\n\t{\r\n\t\tid: \"WLP\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WLP\",\r\n\t\tdescription: \"WLP 3 William Laurie Place, Albany\",\r\n\t},\r\n\t{\r\n\t\tid: \"WA\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WA\",\r\n\t\tdescription: \"WA Waimarino Building, 33 Paramount Drive, Henderson\",\r\n\t},\r\n\t{\r\n\t\tid: \"WO\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"WO\",\r\n\t\tdescription: \"WO Whanau Ora House, Henderson\",\r\n\t},\r\n\t{\r\n\t\tid: \"TO\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TO\",\r\n\t\tdescription: \"TO Totara Health Building, 1 McCrae Way, New Lynn\",\r\n\t},\r\n\t{\r\n\t\tid: \"HBU\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"HBU\",\r\n\t\tdescription: \"HBU Hyperbaric Unit, 91Calliope Rd, Devonport\",\r\n\t},\r\n\t{\r\n\t\tid: \"RU\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"RU\",\r\n\t\tdescription: \"RU Renal Unit : 88-98 Apollo Drive\",\r\n\t},\r\n\t{\r\n\t\tid: \"ST-01-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"ST-01-01\",\r\n\t\tdescription: \"ST-01-01 1 Shea Terrace : Corporate Building, \",\r\n\t},\r\n\t{\r\n\t\tid: \"ST-02-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"ST-02-01\",\r\n\t\tdescription: \"ST-02-01 3 Shea Terrace : Corporate Building, \",\r\n\t},\r\n\t{\r\n\t\tid: \"ST-03-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"ST-03-01\",\r\n\t\tdescription: \"ST-03-01 15 Shea Terrace : Corporate Building, 01 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"ST-03-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"ST-03-01\",\r\n\t\tdescription: \"ST-03-01 15 Shea Terrace : Corporate Building, 02 Floor\",\r\n\t},\r\n\t{\r\n\t\tid: \"ST-04-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"ST-04-01\",\r\n\t\tdescription: \"ST-04-01 17 Shea Terrace : Corporate Building, \",\r\n\t},\r\n\t{\r\n\t\tid: \"ST-04-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"ST-04-01\",\r\n\t\tdescription: \"ST-04-01 17 Shea Terrace : Occupational Health Clinic\",\r\n\t},\r\n\t{\r\n\t\tid: \"CCDC-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"CCDC-01\",\r\n\t\tdescription:\r\n\t\t\t\"CCDC-01 Community Children Dental Clinic : Edmonton Primary School\",\r\n\t},\r\n\t{\r\n\t\tid: \"CCDC-02\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"CCDC-02\",\r\n\t\tdescription:\r\n\t\t\t\"CCDC-02 Community Children Dental Clinic : Glenfield Primary School\",\r\n\t},\r\n\t{\r\n\t\tid: \"CCDC-03\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"CCDC-03\",\r\n\t\tdescription:\r\n\t\t\t\"CCDC-03 Community Children Dental Clinic : Henderson Intermediate School\",\r\n\t},\r\n\t{\r\n\t\tid: \"CCDC-04\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"CCDC-04\",\r\n\t\tdescription:\r\n\t\t\t\"CCDC-04 Community Children Dental Clinic : Belmont Primary School\",\r\n\t},\r\n\t{\r\n\t\tid: \"CCDC-05\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"CCDC-05\",\r\n\t\tdescription:\r\n\t\t\t\"CCDC-05 Community Children Dental Clinic : Northcross Intermediate School\",\r\n\t},\r\n\t{\r\n\t\tid: \"CCDC-06\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"CCDC-06\",\r\n\t\tdescription:\r\n\t\t\t\"CCDC-06 Community Children Dental Clinic : Forrest Hill Primary School\",\r\n\t},\r\n\t{\r\n\t\tid: \"CCDC-07\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"CCDC-07\",\r\n\t\tdescription:\r\n\t\t\t\"CCDC-07 Community Children Dental Clinic : Silverdale Primary School\",\r\n\t},\r\n\t{\r\n\t\tid: \"CCDC-08\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"CCDC-08\",\r\n\t\tdescription:\r\n\t\t\t\"CCDC-08 Community Children Dental Clinic : Albany Junior High School\",\r\n\t},\r\n\t{\r\n\t\tid: \"CCDC-09\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"CCDC-09\",\r\n\t\tdescription:\r\n\t\t\t\"CCDC-09 Community Children Dental Clinic : Glen Eden Intermediate School\",\r\n\t},\r\n\t{\r\n\t\tid: \"CCDC-10\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"CCDC-10\",\r\n\t\tdescription:\r\n\t\t\t\"CCDC-10 Community Children Dental Clinic : Westgate Community Clinic\",\r\n\t},\r\n\t{\r\n\t\tid: \"CCDC-11\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"CCDC-11\",\r\n\t\tdescription:\r\n\t\t\t\"CCDC-11 Community Children Dental Clinic : Birkenhead Primary School\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-01\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-01\",\r\n\t\tdescription: \"TDU-01 Temporary Dental Unit : Teuila\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-02\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-02\",\r\n\t\tdescription: \"TDU-02 Temporary Dental Unit : Karamea\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-03\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-03\",\r\n\t\tdescription: \"TDU-03 Temporary Dental Unit : Aroha\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-04\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-04\",\r\n\t\tdescription: \"TDU-04 Temporary Dental Unit : Kaipatiki\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-05\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-05\",\r\n\t\tdescription: \"TDU-05 Temporary Dental Unit : Pohutukawa\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-06\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-06\",\r\n\t\tdescription: \"TDU-06 Temporary Dental Unit : Tiri Tiri Matangi\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-07\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-07\",\r\n\t\tdescription: \"TDU-07 Temporary Dental Unit : Tiare\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-08\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-08\",\r\n\t\tdescription: \"TDU-08 Temporary Dental Unit : Pupuke\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-09\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-09\",\r\n\t\tdescription: \"TDU-09 Temporary Dental Unit : Motutapu\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-10\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-10\",\r\n\t\tdescription: \"TDU-10 Temporary Dental Unit : Fantail\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-11\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-11\",\r\n\t\tdescription: \"TDU-11 Temporary Dental Unit : Rosella\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-12\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-12\",\r\n\t\tdescription: \"TDU-12 Temporary Dental Unit : Pakiri Niho\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-13\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-13\",\r\n\t\tdescription: \"TDU-13 Temporary Dental Unit : Kokako\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-14\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-14\",\r\n\t\tdescription: \"TDU-14 Temporary Dental Unit : Kauri\",\r\n\t},\r\n\t{\r\n\t\tid: \"TDU-15\",\r\n\t\tdomainCode: \"endUserCode\",\r\n\t\tcode: \"TDU-15\",\r\n\t\tdescription: \"TDU-15 Temporary Dental Unit : Totara\",\r\n\t},\r\n];\r\n\r\nexport const SERVICES = [\r\n\t{\r\n\t\tid: \"01 - Corporate\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"01 - Corporate\",\r\n\t\tdescription: \"01 - Corporate\",\r\n\t},\r\n\t{\r\n\t\tid: \"02 - Elective Surgery Centre\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"02 - Elective Surgery Centre\",\r\n\t\tdescription: \"02 - Elective Surgery Centre\",\r\n\t},\r\n\t{\r\n\t\tid: \"03 - HIG/IT/i3\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"03 - HIG/IT/i3\",\r\n\t\tdescription: \"03 - HIG/IT/i3\",\r\n\t},\r\n\t{\r\n\t\tid: \"04 - Facilities & Development\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"04 - Facilities & Development\",\r\n\t\tdescription: \"04 - Facilities & Development\",\r\n\t},\r\n\t{\r\n\t\tid: \"05 - Hospital Operations\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"05 - Hospital Operations\",\r\n\t\tdescription: \"05 - Hospital Operations\",\r\n\t},\r\n\t{\r\n\t\tid: \"06 - Mental Health\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"06 - Mental Health\",\r\n\t\tdescription: \"06 - Mental Health\",\r\n\t},\r\n\t{\r\n\t\tid: \"07- Funding and Planning\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"07- Funding and Planning\",\r\n\t\tdescription: \"07- Funding and Planning\",\r\n\t},\r\n\t{\r\n\t\tid: \"08 - Surgical & Ambulatory\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"08 - Surgical & Ambulatory\",\r\n\t\tdescription: \"08 - Surgical & Ambulatory\",\r\n\t},\r\n\t{\r\n\t\tid: \"09 - Child, Women & Family\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"09 - Child, Women & Family\",\r\n\t\tdescription: \"09 - Child, Women & Family\",\r\n\t},\r\n\t{\r\n\t\tid: \"10 - Acute & Emergency\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"10 - Acute & Emergency\",\r\n\t\tdescription: \"10 - Acute & Emergency\",\r\n\t},\r\n\t{\r\n\t\tid: \"11 - Sub Specialty\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"11 - Sub Specialty\",\r\n\t\tdescription: \"11 - Sub Specialty\",\r\n\t},\r\n\t{\r\n\t\tid: \"12 - Facilities Management\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"12 - Facilities Management\",\r\n\t\tdescription: \"12 - Facilities Management\",\r\n\t},\r\n\t{\r\n\t\tid: \"13 - SCPG\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"13 - SCPG\",\r\n\t\tdescription: \"13 - SCPG\",\r\n\t},\r\n\t{\r\n\t\tid: \"14 - Director of Hospital Services\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"14 - Director of Hospital Services\",\r\n\t\tdescription: \"14 - Director of Hospital Services\",\r\n\t},\r\n\t{\r\n\t\tid: \"15 - Diagnostic and Clinical Support\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"15 - Diagnostic and Clinical Support\",\r\n\t\tdescription: \"15 - Diagnostic and Clinical Support\",\r\n\t},\r\n\t{\r\n\t\tid: \"16 - Elective Outpatients\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"16 - Elective Outpatients\",\r\n\t\tdescription: \"16 - Elective Outpatients\",\r\n\t},\r\n\t{\r\n\t\tid: \"17 - Regional Dental Services\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"17 - Regional Dental Services\",\r\n\t\tdescription: \"17 - Regional Dental Services\",\r\n\t},\r\n\t{\r\n\t\tid: \"18 - Population Health Services\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"18 - Population Health Services\",\r\n\t\tdescription: \"18 - Population Health Services\",\r\n\t},\r\n\t{\r\n\t\tid: \"19 - PHSSS – Uri Ririki/EBSHS/Regn Bowel Support\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"19 - PHSSS – Uri Ririki/EBSHS/Regn Bowel Support\",\r\n\t\tdescription: \"19 - PHSSS – Uri Ririki/EBSHS/Regn Bowel Support\",\r\n\t},\r\n\t{\r\n\t\tid: \"20 - Asian Health\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"20 - Asian Health\",\r\n\t\tdescription: \"20 - Asian Health\",\r\n\t},\r\n\t{\r\n\t\tid: \"21 - Pacific Health\",\r\n\t\tdomainCode: \"services\",\r\n\t\tcode: \"21 - Pacific Health\",\r\n\t\tdescription: \"21 - Pacific Health\",\r\n\t},\r\n];\r\n\r\nexport const LOOKUPS = [\r\n\t...RCS,\r\n\t...PROJECT_TYPE,\r\n\t...REQUEST_DETAILS,\r\n\t...CAPABILITY_TYPE,\r\n\t...CURRENCY,\r\n\t...COST_TYPE,\r\n\t...PATIENT_STAFF_IMPACT,\r\n\t...LIKELIHOOD_FAILURE,\r\n\t...SERVICE_IMPACT,\r\n\t...WEIGHTING,\r\n\t...CONSEQUENCES,\r\n\t...LIKELIHOOD_CONSEQUENCE,\r\n\t...ORACLE_SETUP_TYPE,\r\n\t...END_USER_CODE,\r\n\t...BUDGET_CATEGORIES,\r\n\t...SERVICES,\r\n\t{\r\n\t\tid: \"l14\",\r\n\t\tdomainCode: \"YN\",\r\n\t\tcode: \"Y\",\r\n\t\tdescription: \"Yes\",\r\n\t},\r\n\t{\r\n\t\tid: \"l15\",\r\n\t\tdomainCode: \"YN\",\r\n\t\tcode: \"N\",\r\n\t\tdescription: \"No\",\r\n\t},\r\n\t{\r\n\t\tid: \"l16\",\r\n\t\tdomainCode: \"asset\",\r\n\t\tcode: \"123456\",\r\n\t\tdescription: \"123456\",\r\n\t},\r\n\t{\r\n\t\tid: \"l17\",\r\n\t\tdomainCode: \"asset\",\r\n\t\tcode: \"654321\",\r\n\t\tdescription: \"654321\",\r\n\t},\r\n\t{\r\n\t\tid: \"l18\",\r\n\t\tdomainCode: \"location\",\r\n\t\tcode: \"NSH\",\r\n\t\tdescription: \"NSH\",\r\n\t},\r\n\t{\r\n\t\tid: \"l19\",\r\n\t\tdomainCode: \"location\",\r\n\t\tcode: \"WTH\",\r\n\t\tdescription: \"WTH\",\r\n\t},\r\n\t{\r\n\t\tid: \"l20\",\r\n\t\tdomainCode: \"assetFate\",\r\n\t\tcode: \"dispose\",\r\n\t\tdescription: \"Dispose\",\r\n\t},\r\n\t{\r\n\t\tid: \"l21\",\r\n\t\tdomainCode: \"assetFate\",\r\n\t\tcode: \"decommision\",\r\n\t\tdescription: \"Decommission\",\r\n\t},\r\n\t{\r\n\t\tid: \"l22\",\r\n\t\tdomainCode: \"assetFate\",\r\n\t\tcode: \"continue\",\r\n\t\tdescription: \"Continue until failure\",\r\n\t},\r\n];\r\n","export const RCS = [\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1536\",\r\n\t\tcode: \"154-1536\",\r\n\t\tdescription: \"154-1536: Marinoto North Rodney\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5409\",\r\n\t\tcode: \"145-5409\",\r\n\t\tdescription: \"145-5409: Dental S2\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1664\",\r\n\t\tcode: \"160-1664\",\r\n\t\tdescription: \"160-1664: Bowel Screening\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1396\",\r\n\t\tcode: \"115-1396\",\r\n\t\tdescription: \"115-1396: # Human Resources\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1390\",\r\n\t\tcode: \"115-1390\",\r\n\t\tdescription: \"115-1390: # Hospitals Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1935\",\r\n\t\tcode: \"192-1935\",\r\n\t\tdescription: \"192-1935: Fund Hospitals\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"187-1878\",\r\n\t\tcode: \"187-1878\",\r\n\t\tdescription: \"187-1878: Quality Improvement\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"140-1400\",\r\n\t\tcode: \"140-1400\",\r\n\t\tdescription: \"140-1400: # Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1532\",\r\n\t\tcode: \"150-1532\",\r\n\t\tdescription: \"150-1532: West Acute\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1395\",\r\n\t\tcode: \"125-1395\",\r\n\t\tdescription: \"125-1395: WTH Site Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1770\",\r\n\t\tcode: \"170-1770\",\r\n\t\tdescription: \"170-1770: Contact Centre\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1612\",\r\n\t\tcode: \"160-1612\",\r\n\t\tdescription: \"160-1612: Allied Health Clinical Centre\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1479\",\r\n\t\tcode: \"141-1479\",\r\n\t\tdescription: \"141-1479: Reg Rehab and Res Revenue\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1267\",\r\n\t\tcode: \"125-1267\",\r\n\t\tdescription: \"125-1267: WTH Emergency Care\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1714\",\r\n\t\tcode: \"170-1714\",\r\n\t\tdescription: \"170-1714: Biochemistry NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1603\",\r\n\t\tcode: \"160-1603\",\r\n\t\tdescription: \"160-1603: METU\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1890\",\r\n\t\tcode: \"188-1890\",\r\n\t\tdescription: \"188-1890: DHB Funds IDF Pers Hlth Provid\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1434\",\r\n\t\tcode: \"141-1434\",\r\n\t\tdescription: \"141-1434: CDS Innovation and Enhancement\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1390\",\r\n\t\tcode: \"125-1390\",\r\n\t\tdescription: \"125-1390: # Hospital Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5411\",\r\n\t\tcode: \"145-5411\",\r\n\t\tdescription: \"145-5411: Dental S4\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5404\",\r\n\t\tcode: \"145-5404\",\r\n\t\tdescription: \"145-5404: Dental N4\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"152-1552\",\r\n\t\tcode: \"152-1552\",\r\n\t\tdescription: \"152-1552: West portfolio Mgmt & Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1640\",\r\n\t\tcode: \"160-1640\",\r\n\t\tdescription: \"160-1640: Non Residents\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"179-1794\",\r\n\t\tcode: \"179-1794\",\r\n\t\tdescription: \"179-1794: Kia Ora Hauora\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1128\",\r\n\t\tcode: \"125-1128\",\r\n\t\tdescription: \"125-1128: # NSH Allied Health Rev Exp\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1660\",\r\n\t\tcode: \"160-1660\",\r\n\t\tdescription: \"160-1660: Uri Ririki - CHCC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1718\",\r\n\t\tcode: \"170-1718\",\r\n\t\tdescription: \"170-1718: Blood Bank NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-1863\",\r\n\t\tcode: \"186-1863\",\r\n\t\tdescription: \"186-1863: Covid Vaccination Programme\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1130\",\r\n\t\tcode: \"125-1130\",\r\n\t\tdescription: \"125-1130: Huia\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"159-1591\",\r\n\t\tcode: \"159-1591\",\r\n\t\tdescription: \"159-1591: GM Office\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1543\",\r\n\t\tcode: \"154-1543\",\r\n\t\tdescription: \"154-1543: Maternal MH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1159\",\r\n\t\tcode: \"115-1159\",\r\n\t\tdescription: \"115-1159: Acute Medical Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-5386\",\r\n\t\tcode: \"186-5386\",\r\n\t\tdescription: \"186-5386: LVC Pacific Westgate\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1210\",\r\n\t\tcode: \"115-1210\",\r\n\t\tdescription: \"115-1210: Ophthalmology\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1889\",\r\n\t\tcode: \"188-1889\",\r\n\t\tdescription: \"188-1889: DHB Funding Gov and Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1265\",\r\n\t\tcode: \"115-1265\",\r\n\t\tdescription: \"115-1265: Outpatients\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"144-1424\",\r\n\t\tcode: \"144-1424\",\r\n\t\tdescription: \"144-1424: # Child and Family North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1382\",\r\n\t\tcode: \"139-1382\",\r\n\t\tdescription: \"139-1382: Newborn Hearing Screening\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1106\",\r\n\t\tcode: \"115-1106\",\r\n\t\tdescription: \"115-1106: Ward 9\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1751\",\r\n\t\tcode: \"170-1751\",\r\n\t\tdescription: \"170-1751: IP Pharmacy WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1206\",\r\n\t\tcode: \"139-1206\",\r\n\t\tdescription: \"139-1206: Obs and Gynae Docs\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1242\",\r\n\t\tcode: \"115-1242\",\r\n\t\tdescription: \"115-1242: General Surgery\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-5380\",\r\n\t\tcode: \"186-5380\",\r\n\t\tdescription: \"186-5380: Community Vaccination ARC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1363\",\r\n\t\tcode: \"139-1363\",\r\n\t\tdescription: \"139-1363: TBC by Paul T\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1113\",\r\n\t\tcode: \"115-1113\",\r\n\t\tdescription: \"115-1113: Endo Diabetes Rev & Exp\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-3544\",\r\n\t\tcode: \"130-3544\",\r\n\t\tdescription: \"130-3544: ESC Outpatients\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1730\",\r\n\t\tcode: \"170-1730\",\r\n\t\tdescription: \"170-1730: Surgical Pathology\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-3300\",\r\n\t\tcode: \"130-3300\",\r\n\t\tdescription: \"130-3300: ESC Theatres\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1505\",\r\n\t\tcode: \"156-1505\",\r\n\t\tdescription: \"156-1505: Rata\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1121\",\r\n\t\tcode: \"125-1121\",\r\n\t\tdescription: \"125-1121: Anawhata\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"187-1876\",\r\n\t\tcode: \"187-1876\",\r\n\t\tdescription: \"187-1876: Quality Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1619\",\r\n\t\tcode: \"160-1619\",\r\n\t\tdescription: \"160-1619: Covid19 DHS\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1915\",\r\n\t\tcode: \"190-1915\",\r\n\t\tdescription: \"190-1915: PI Health Gain\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5405\",\r\n\t\tcode: \"145-5405\",\r\n\t\tdescription: \"145-5405: Dental C1\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1795\",\r\n\t\tcode: \"170-1795\",\r\n\t\tdescription: \"170-1795: Pacific Health SA\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1883\",\r\n\t\tcode: \"188-1883\",\r\n\t\tdescription: \"188-1883: DHB Funds Disability Support\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"155-1569\",\r\n\t\tcode: \"155-1569\",\r\n\t\tdescription: \"155-1569: Regional Maori Team\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1906\",\r\n\t\tcode: \"190-1906\",\r\n\t\tdescription: \"190-1906: Planning\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1528\",\r\n\t\tcode: \"150-1528\",\r\n\t\tdescription: \"150-1528: MHSOA North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1605\",\r\n\t\tcode: \"160-1605\",\r\n\t\tdescription: \"160-1605: Simulation Centre\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1381\",\r\n\t\tcode: \"139-1381\",\r\n\t\tdescription: \"139-1381: Paediatric Outpatients\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1422\",\r\n\t\tcode: \"142-1422\",\r\n\t\tdescription: \"142-1422: Community & Outpatients North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1191\",\r\n\t\tcode: \"115-1191\",\r\n\t\tdescription: \"115-1191: Renal Ambulatory Non Dialysis\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1755\",\r\n\t\tcode: \"170-1755\",\r\n\t\tdescription: \"170-1755: Outpatient Pharmacy WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1839\",\r\n\t\tcode: \"183-1839\",\r\n\t\tdescription: \"183-1839: Sustainability\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"181-1812\",\r\n\t\tcode: \"181-1812\",\r\n\t\tdescription: \"181-1812: Occupational Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1534\",\r\n\t\tcode: \"150-1534\",\r\n\t\tdescription: \"150-1534: Rodney Intervention\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1168\",\r\n\t\tcode: \"115-1168\",\r\n\t\tdescription: \"115-1168: Hepatitis Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1169\",\r\n\t\tcode: \"115-1169\",\r\n\t\tdescription: \"115-1169: Smoking Cessation\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1604\",\r\n\t\tcode: \"160-1604\",\r\n\t\tdescription: \"160-1604: Learning & Development\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1259\",\r\n\t\tcode: \"115-1259\",\r\n\t\tdescription: \"115-1259: Emergency Admin Staff\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1680\",\r\n\t\tcode: \"183-1680\",\r\n\t\tdescription: \"183-1680: Facilities ARDS\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"182-1829\",\r\n\t\tcode: \"182-1829\",\r\n\t\tdescription: \"182-1829: NRA Suspense RC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1613\",\r\n\t\tcode: \"160-1613\",\r\n\t\tdescription: \"160-1613: Moving and Handling\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1465\",\r\n\t\tcode: \"142-1465\",\r\n\t\tdescription: \"142-1465: Team 4 Community and Outpts\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1384\",\r\n\t\tcode: \"115-1384\",\r\n\t\tdescription: \"115-1384: Clinical Engineering\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1545\",\r\n\t\tcode: \"154-1545\",\r\n\t\tdescription: \"154-1545: Incredible Years Specialist Se\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1586\",\r\n\t\tcode: \"156-1586\",\r\n\t\tdescription: \"156-1586: Work Rehab\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1539\",\r\n\t\tcode: \"150-1539\",\r\n\t\tdescription: \"150-1539: Inpatient Bureau He Puna Waior\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1397\",\r\n\t\tcode: \"115-1397\",\r\n\t\tdescription: \"115-1397: # RMO Unit\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1628\",\r\n\t\tcode: \"160-1628\",\r\n\t\tdescription: \"160-1628: Waitemata Central\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1260\",\r\n\t\tcode: \"115-1260\",\r\n\t\tdescription: \"115-1260: NSH Emergency Docs\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"184-1843\",\r\n\t\tcode: \"184-1843\",\r\n\t\tdescription: \"184-1843: Provisional Initiatives\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1204\",\r\n\t\tcode: \"115-1204\",\r\n\t\tdescription: \"115-1204: Urology\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"180-1809\",\r\n\t\tcode: \"180-1809\",\r\n\t\tdescription: \"180-1809: Risk Pool\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-1867\",\r\n\t\tcode: \"186-1867\",\r\n\t\tdescription: \"186-1867: Covid19 Preparedness\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1563\",\r\n\t\tcode: \"158-1563\",\r\n\t\tdescription: \"158-1563: CADS North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"152-1503\",\r\n\t\tcode: \"152-1503\",\r\n\t\tdescription: \"152-1503: Waiatarau\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-5388\",\r\n\t\tcode: \"186-5388\",\r\n\t\tdescription: \"186-5388: Community Vaccination Pharmacy\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-1493\",\r\n\t\tcode: \"145-1493\",\r\n\t\tdescription: \"145-1493: Dental Childsmile\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1190\",\r\n\t\tcode: \"115-1190\",\r\n\t\tdescription: \"115-1190: Dependent In-centre Haemodials\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1588\",\r\n\t\tcode: \"158-1588\",\r\n\t\tdescription: \"158-1588: CADS - CPS Focus\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1614\",\r\n\t\tcode: \"160-1614\",\r\n\t\tdescription: \"160-1614: Clin Resus Education\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1713\",\r\n\t\tcode: \"170-1713\",\r\n\t\tdescription: \"170-1713: Point of Care Testing\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1137\",\r\n\t\tcode: \"115-1137\",\r\n\t\tdescription: \"115-1137: Waitemata Breast Service\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-3027\",\r\n\t\tcode: \"130-3027\",\r\n\t\tdescription: \"130-3027: Gynaecology\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-1486\",\r\n\t\tcode: \"145-1486\",\r\n\t\tdescription: \"145-1486: Dental North/West\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1667\",\r\n\t\tcode: \"160-1667\",\r\n\t\tdescription: \"160-1667: Covid19 PHSCC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-1495\",\r\n\t\tcode: \"145-1495\",\r\n\t\tdescription: \"145-1495: ARDS Admin & Support\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1550\",\r\n\t\tcode: \"158-1550\",\r\n\t\tdescription: \"158-1550: PPS Contract\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"179-1793\",\r\n\t\tcode: \"179-1793\",\r\n\t\tdescription: \"179-1793: Maori Health CTA\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1470\",\r\n\t\tcode: \"142-1470\",\r\n\t\tdescription: \"142-1470: NASC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1506\",\r\n\t\tcode: \"156-1506\",\r\n\t\tdescription: \"156-1506: Tane Whakapiripiri\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1166\",\r\n\t\tcode: \"115-1166\",\r\n\t\tdescription: \"115-1166: Haematology Research\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1105\",\r\n\t\tcode: \"115-1105\",\r\n\t\tdescription: \"115-1105: Lakeview Cardiology\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"179-1791\",\r\n\t\tcode: \"179-1791\",\r\n\t\tdescription: \"179-1791: He Kamaka Waiora Operational\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1527\",\r\n\t\tcode: \"150-1527\",\r\n\t\tdescription: \"150-1527: Raeburn House\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1460\",\r\n\t\tcode: \"142-1460\",\r\n\t\tdescription: \"142-1460: Home Health Contract\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"180-1806\",\r\n\t\tcode: \"180-1806\",\r\n\t\tdescription: \"180-1806: Allied Health Prof Leadership\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1559\",\r\n\t\tcode: \"156-1559\",\r\n\t\tdescription: \"156-1559: Cultural\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1881\",\r\n\t\tcode: \"188-1881\",\r\n\t\tdescription: \"188-1881: DHB funding Mental Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1387\",\r\n\t\tcode: \"139-1387\",\r\n\t\tdescription: \"139-1387: MQSP\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"182-1820\",\r\n\t\tcode: \"182-1820\",\r\n\t\tdescription: \"182-1820: Finance\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1188\",\r\n\t\tcode: \"115-1188\",\r\n\t\tdescription: \"115-1188: Renal Docs\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1650\",\r\n\t\tcode: \"160-1650\",\r\n\t\tdescription: \"160-1650: Deputy CEO\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1911\",\r\n\t\tcode: \"190-1911\",\r\n\t\tdescription: \"190-1911: Funded Initiatives\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1593\",\r\n\t\tcode: \"156-1593\",\r\n\t\tdescription: \"156-1593: Mason Clinic Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1429\",\r\n\t\tcode: \"142-1429\",\r\n\t\tdescription: \"142-1429: EDARS\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1666\",\r\n\t\tcode: \"160-1666\",\r\n\t\tdescription: \"160-1666: Breast Screen Akl C Estab\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-1450\",\r\n\t\tcode: \"145-1450\",\r\n\t\tdescription: \"145-1450: Covid19 Regional Dental\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1402\",\r\n\t\tcode: \"142-1402\",\r\n\t\tdescription: \"142-1402: # Site Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1222\",\r\n\t\tcode: \"125-1222\",\r\n\t\tdescription: \"125-1222: WTH Ophthalmology and Dental\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"159-1577\",\r\n\t\tcode: \"159-1577\",\r\n\t\tdescription: \"159-1577: MH Pool Cars\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-3525\",\r\n\t\tcode: \"115-3525\",\r\n\t\tdescription: \"115-3525: Chronic Pain Service\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1940\",\r\n\t\tcode: \"192-1940\",\r\n\t\tdescription: \"192-1940: Fund Maori Health Gain\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1404\",\r\n\t\tcode: \"141-1404\",\r\n\t\tdescription: \"141-1404: ASD Service Coordination\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"182-1821\",\r\n\t\tcode: \"182-1821\",\r\n\t\tdescription: \"182-1821: Vehicle Fleet Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1704\",\r\n\t\tcode: \"170-1704\",\r\n\t\tdescription: \"170-1704: Health Intelligence\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1512\",\r\n\t\tcode: \"156-1512\",\r\n\t\tdescription: \"156-1512: Te Aka\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1544\",\r\n\t\tcode: \"154-1544\",\r\n\t\tdescription: \"154-1544: Covid19 Mental Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1590\",\r\n\t\tcode: \"154-1590\",\r\n\t\tdescription: \"154-1590: Administration\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5401\",\r\n\t\tcode: \"145-5401\",\r\n\t\tdescription: \"145-5401: Dental N1\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1768\",\r\n\t\tcode: \"170-1768\",\r\n\t\tdescription: \"170-1768: Project Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1212\",\r\n\t\tcode: \"115-1212\",\r\n\t\tdescription: \"115-1212: NSH Ward 4\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1631\",\r\n\t\tcode: \"160-1631\",\r\n\t\tdescription: \"160-1631: Leapfrog\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1602\",\r\n\t\tcode: \"160-1602\",\r\n\t\tdescription: \"160-1602: Health Campus Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1481\",\r\n\t\tcode: \"141-1481\",\r\n\t\tdescription: \"141-1481: Radical Respite\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1607\",\r\n\t\tcode: \"160-1607\",\r\n\t\tdescription: \"160-1607: Clinical Library\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1213\",\r\n\t\tcode: \"115-1213\",\r\n\t\tdescription: \"115-1213: NSH Ward 7\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1261\",\r\n\t\tcode: \"115-1261\",\r\n\t\tdescription: \"115-1261: Covid19 EOS\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1414\",\r\n\t\tcode: \"142-1414\",\r\n\t\tdescription: \"142-1414: District Nursing Rodney\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1776\",\r\n\t\tcode: \"170-1776\",\r\n\t\tdescription: \"170-1776: Orderly Service WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"155-1595\",\r\n\t\tcode: \"155-1595\",\r\n\t\tdescription: \"155-1595: Maori MH Administration\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1410\",\r\n\t\tcode: \"141-1410\",\r\n\t\tdescription: \"141-1410: Child Development North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1104\",\r\n\t\tcode: \"115-1104\",\r\n\t\tdescription: \"115-1104: NSH Ward 5\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1606\",\r\n\t\tcode: \"160-1606\",\r\n\t\tdescription: \"160-1606: Primary Health Care Nursing\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1455\",\r\n\t\tcode: \"142-1455\",\r\n\t\tdescription: \"142-1455: Centralised Equipment\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1752\",\r\n\t\tcode: \"170-1752\",\r\n\t\tdescription: \"170-1752: PCT\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1583\",\r\n\t\tcode: \"154-1583\",\r\n\t\tdescription: \"154-1583: Funder Individual Contracts\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"143-1466\",\r\n\t\tcode: \"143-1466\",\r\n\t\tdescription: \"143-1466: Team 1 Inpatient West\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1263\",\r\n\t\tcode: \"115-1263\",\r\n\t\tdescription: \"115-1263: Intensive Care Unit\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1885\",\r\n\t\tcode: \"188-1885\",\r\n\t\tdescription: \"188-1885: DHB Funds Other\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1330\",\r\n\t\tcode: \"139-1330\",\r\n\t\tdescription: \"139-1330: WDHB Cmty Maternity SLA\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-3500\",\r\n\t\tcode: \"130-3500\",\r\n\t\tdescription: \"130-3500: ESC Outpatients PNC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1509\",\r\n\t\tcode: \"156-1509\",\r\n\t\tdescription: \"156-1509: Kahikatea\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"184-1840\",\r\n\t\tcode: \"184-1840\",\r\n\t\tdescription: \"184-1840: Northern Region Shared Service\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1870\",\r\n\t\tcode: \"188-1870\",\r\n\t\tdescription: \"188-1870: DHB Funds IDF PersH Funder\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1220\",\r\n\t\tcode: \"115-1220\",\r\n\t\tdescription: \"115-1220: Anaesthetics Service\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1789\",\r\n\t\tcode: \"170-1789\",\r\n\t\tdescription: \"170-1789: Asian Health WATIS\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1624\",\r\n\t\tcode: \"160-1624\",\r\n\t\tdescription: \"160-1624: Unallocated Budget\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1223\",\r\n\t\tcode: \"115-1223\",\r\n\t\tdescription: \"115-1223: Anaesthesia Research\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1521\",\r\n\t\tcode: \"156-1521\",\r\n\t\tdescription: \"156-1521: Forensic Community Team\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1548\",\r\n\t\tcode: \"156-1548\",\r\n\t\tdescription: \"156-1548: E Tu Tanekaha\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"157-1554\",\r\n\t\tcode: \"157-1554\",\r\n\t\tdescription: \"157-1554: Malaga Le Pacifica\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1932\",\r\n\t\tcode: \"192-1932\",\r\n\t\tdescription: \"192-1932: Fund Group Managers\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"182-1826\",\r\n\t\tcode: \"182-1826\",\r\n\t\tdescription: \"182-1826: Procurement\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1185\",\r\n\t\tcode: \"115-1185\",\r\n\t\tdescription: \"115-1185: Endo Diabetes Docs\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1123\",\r\n\t\tcode: \"125-1123\",\r\n\t\tdescription: \"125-1123: Titirangi\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1254\",\r\n\t\tcode: \"115-1254\",\r\n\t\tdescription: \"115-1254: Urology Consumables\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5402\",\r\n\t\tcode: \"145-5402\",\r\n\t\tdescription: \"145-5402: Dental N2\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1115\",\r\n\t\tcode: \"115-1115\",\r\n\t\tdescription: \"115-1115: Nursing Educator\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"179-1797\",\r\n\t\tcode: \"179-1797\",\r\n\t\tdescription: \"179-1797: Kotui Hauora Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1161\",\r\n\t\tcode: \"115-1161\",\r\n\t\tdescription: \"115-1161: Slark Hyperbaric\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1774\",\r\n\t\tcode: \"170-1774\",\r\n\t\tdescription: \"170-1774: # Clinical Library\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1102\",\r\n\t\tcode: \"115-1102\",\r\n\t\tdescription: \"115-1102: NSH Ward 10\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"157-1572\",\r\n\t\tcode: \"157-1572\",\r\n\t\tdescription: \"157-1572: TUPU\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1109\",\r\n\t\tcode: \"115-1109\",\r\n\t\tdescription: \"115-1109: NSH Short Stay Ward\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"159-1525\",\r\n\t\tcode: \"159-1525\",\r\n\t\tdescription: \"159-1525: Psychologist CPD Fund\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1560\",\r\n\t\tcode: \"158-1560\",\r\n\t\tdescription: \"158-1560: Community and Home Detox\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1468\",\r\n\t\tcode: \"142-1468\",\r\n\t\tdescription: \"142-1468: # Respite Care\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1702\",\r\n\t\tcode: \"170-1702\",\r\n\t\tdescription: \"170-1702: Finance Provider\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-2042\",\r\n\t\tcode: \"130-2042\",\r\n\t\tdescription: \"130-2042: ESC Cullen Ward\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1735\",\r\n\t\tcode: \"170-1735\",\r\n\t\tdescription: \"170-1735: Special Assay WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"143-1422\",\r\n\t\tcode: \"143-1422\",\r\n\t\tdescription: \"143-1422: # North ATR Allied Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"159-1598\",\r\n\t\tcode: \"159-1598\",\r\n\t\tdescription: \"159-1598: Needs Assessment Coordination\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1533\",\r\n\t\tcode: \"154-1533\",\r\n\t\tdescription: \"154-1533: Infant Mental Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"180-1807\",\r\n\t\tcode: \"180-1807\",\r\n\t\tdescription: \"180-1807: Emergency Planning Unit\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1622\",\r\n\t\tcode: \"160-1622\",\r\n\t\tdescription: \"160-1622: Centralised Rostering\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1207\",\r\n\t\tcode: \"139-1207\",\r\n\t\tdescription: \"139-1207: Hine Ora Ward\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1386\",\r\n\t\tcode: \"115-1386\",\r\n\t\tdescription: \"115-1386: Clinical Equipment Pool (old)\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1708\",\r\n\t\tcode: \"170-1708\",\r\n\t\tdescription: \"170-1708: # Breast Screening Implementat\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"152-1581\",\r\n\t\tcode: \"152-1581\",\r\n\t\tdescription: \"152-1581: # Marinoto Youth West\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1728\",\r\n\t\tcode: \"170-1728\",\r\n\t\tdescription: \"170-1728: Infection Control & Prevention\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1365\",\r\n\t\tcode: \"139-1365\",\r\n\t\tdescription: \"139-1365: SCBU Revenue\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1510\",\r\n\t\tcode: \"156-1510\",\r\n\t\tdescription: \"156-1510: Rimu\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1665\",\r\n\t\tcode: \"160-1665\",\r\n\t\tdescription: \"160-1665: PHSCC Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-1865\",\r\n\t\tcode: \"186-1865\",\r\n\t\tdescription: \"186-1865: Covid19 Purchases WDHB Provide\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1165\",\r\n\t\tcode: \"115-1165\",\r\n\t\tdescription: \"115-1165: Cardiology Research\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1385\",\r\n\t\tcode: \"139-1385\",\r\n\t\tdescription: \"139-1385: Womens Health Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"191-1924\",\r\n\t\tcode: \"191-1924\",\r\n\t\tdescription: \"191-1924: PFO WDHB Only\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-5385\",\r\n\t\tcode: \"186-5385\",\r\n\t\tdescription: \"186-5385: LVC Albany\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1568\",\r\n\t\tcode: \"158-1568\",\r\n\t\tdescription: \"158-1568: Dual Diagnosis\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1484\",\r\n\t\tcode: \"142-1484\",\r\n\t\tdescription: \"142-1484: Regional Volunteer Stroke Sche\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1215\",\r\n\t\tcode: \"115-1215\",\r\n\t\tdescription: \"115-1215: SAS Nursing Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1116\",\r\n\t\tcode: \"115-1116\",\r\n\t\tdescription: \"115-1116: Nursing Cover & Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"143-1418\",\r\n\t\tcode: \"143-1418\",\r\n\t\tdescription: \"143-1418: NSH Ward 15\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1759\",\r\n\t\tcode: \"170-1759\",\r\n\t\tdescription: \"170-1759: Radiology WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"143-1436\",\r\n\t\tcode: \"143-1436\",\r\n\t\tdescription: \"143-1436: Muriwai WTH Ward 1\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-5507\",\r\n\t\tcode: \"130-5507\",\r\n\t\tdescription: \"130-5507: ESC CSSD\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1787\",\r\n\t\tcode: \"170-1787\",\r\n\t\tdescription: \"170-1787: Asian Health PHIP\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1326\",\r\n\t\tcode: \"139-1326\",\r\n\t\tdescription: \"139-1326: Maternity Facility West\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-5374\",\r\n\t\tcode: \"186-5374\",\r\n\t\tdescription: \"186-5374: Cmty drive-thru and bus\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"181-1810\",\r\n\t\tcode: \"181-1810\",\r\n\t\tdescription: \"181-1810: Human Resources\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1412\",\r\n\t\tcode: \"142-1412\",\r\n\t\tdescription: \"142-1412: District Nursing North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1719\",\r\n\t\tcode: \"170-1719\",\r\n\t\tdescription: \"170-1719: Blood Bank WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"159-1589\",\r\n\t\tcode: \"159-1589\",\r\n\t\tdescription: \"159-1589: Clinical Nurse Advisors\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"144-1426\",\r\n\t\tcode: \"144-1426\",\r\n\t\tdescription: \"144-1426: # Child and Family North Rod\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-1860\",\r\n\t\tcode: \"186-1860\",\r\n\t\tdescription: \"186-1860: Emergency Operations Centre\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1707\",\r\n\t\tcode: \"170-1707\",\r\n\t\tdescription: \"170-1707: Covid19 Population Health Serv\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1838\",\r\n\t\tcode: \"183-1838\",\r\n\t\tdescription: \"183-1838: Facilities FM Projects\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1269\",\r\n\t\tcode: \"115-1269\",\r\n\t\tdescription: \"115-1269: NSH ADU\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1483\",\r\n\t\tcode: \"141-1483\",\r\n\t\tdescription: \"141-1483: Regional Rehabilitation Nursin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"181-1816\",\r\n\t\tcode: \"181-1816\",\r\n\t\tdescription: \"181-1816: Workforce Development\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1635\",\r\n\t\tcode: \"160-1635\",\r\n\t\tdescription: \"160-1635: Innovation Hub\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1769\",\r\n\t\tcode: \"170-1769\",\r\n\t\tdescription: \"170-1769: Contact Centre Collaboration\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1256\",\r\n\t\tcode: \"115-1256\",\r\n\t\tdescription: \"115-1256: Gynaecology Consumables\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1880\",\r\n\t\tcode: \"188-1880\",\r\n\t\tdescription: \"188-1880: DHB Funding Personal Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1623\",\r\n\t\tcode: \"160-1623\",\r\n\t\tdescription: \"160-1623: Sustainability Programme\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1834\",\r\n\t\tcode: \"183-1834\",\r\n\t\tdescription: \"183-1834: Traffic Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1773\",\r\n\t\tcode: \"170-1773\",\r\n\t\tdescription: \"170-1773: Cleaning Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"184-1845\",\r\n\t\tcode: \"184-1845\",\r\n\t\tdescription: \"184-1845: Financial Sustainability\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1762\",\r\n\t\tcode: \"170-1762\",\r\n\t\tdescription: \"170-1762: Clinical Records\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1221\",\r\n\t\tcode: \"115-1221\",\r\n\t\tdescription: \"115-1221: Anaesthetic Technicians\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1788\",\r\n\t\tcode: \"170-1788\",\r\n\t\tdescription: \"170-1788: Pacific Support \",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1648\",\r\n\t\tcode: \"160-1648\",\r\n\t\tdescription: \"160-1648: Strategic Capital Programme\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1723\",\r\n\t\tcode: \"170-1723\",\r\n\t\tdescription: \"170-1723: Haematology WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"155-1542\",\r\n\t\tcode: \"155-1542\",\r\n\t\tdescription: \"155-1542: Maori Cultural Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"999-9999\",\r\n\t\tcode: \"999-9999\",\r\n\t\tdescription: \"999-9999: Consolidation and Elimination\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"185-1850\",\r\n\t\tcode: \"185-1850\",\r\n\t\tdescription: \"185-1850: Financing\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1111\",\r\n\t\tcode: \"115-1111\",\r\n\t\tdescription: \"115-1111: Gastro Surgery\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"181-1811\",\r\n\t\tcode: \"181-1811\",\r\n\t\tdescription: \"181-1811: Learning & Development\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-1861\",\r\n\t\tcode: \"186-1861\",\r\n\t\tdescription: \"186-1861: NRHCC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1179\",\r\n\t\tcode: \"115-1179\",\r\n\t\tdescription: \"115-1179: Stroke Service\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1511\",\r\n\t\tcode: \"156-1511\",\r\n\t\tdescription: \"156-1511: Pohutukawa\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1150\",\r\n\t\tcode: \"115-1150\",\r\n\t\tdescription: \"115-1150: Sub Specialty Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1375\",\r\n\t\tcode: \"139-1375\",\r\n\t\tdescription: \"139-1375: Rangitira Ward\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1709\",\r\n\t\tcode: \"170-1709\",\r\n\t\tdescription: \"170-1709: Bowel Screening Service\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"152-1537\",\r\n\t\tcode: \"152-1537\",\r\n\t\tdescription: \"152-1537: MHSOA West\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1934\",\r\n\t\tcode: \"192-1934\",\r\n\t\tdescription: \"192-1934: Fund Primary Care\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1196\",\r\n\t\tcode: \"115-1196\",\r\n\t\tdescription: \"115-1196: Home Haemodialysis\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1661\",\r\n\t\tcode: \"160-1661\",\r\n\t\tdescription: \"160-1661: ESBHS - ADHB only\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1871\",\r\n\t\tcode: \"188-1871\",\r\n\t\tdescription: \"188-1871: DHB Funds IDF MentH Funder\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1290\",\r\n\t\tcode: \"115-1290\",\r\n\t\tdescription: \"115-1290: Threatres Prof Development\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1253\",\r\n\t\tcode: \"115-1253\",\r\n\t\tdescription: \"115-1253: General Surgery Consumables\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-5367\",\r\n\t\tcode: \"186-5367\",\r\n\t\tdescription: \"186-5367: LVC3 WDHB (Waipareira)\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1574\",\r\n\t\tcode: \"154-1574\",\r\n\t\tdescription: \"154-1574: Respite\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5410\",\r\n\t\tcode: \"145-5410\",\r\n\t\tdescription: \"145-5410: Dental S3\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1775\",\r\n\t\tcode: \"170-1775\",\r\n\t\tdescription: \"170-1775: Orderly Service NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1585\",\r\n\t\tcode: \"156-1585\",\r\n\t\tdescription: \"156-1585: Forensic Bureau Nurses\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1433\",\r\n\t\tcode: \"141-1433\",\r\n\t\tdescription: \"141-1433: Enhanced School Based Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1306\",\r\n\t\tcode: \"139-1306\",\r\n\t\tdescription: \"139-1306: Maternity Facility North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1463\",\r\n\t\tcode: \"142-1463\",\r\n\t\tdescription: \"142-1463: # Ostomy/Contin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-5207\",\r\n\t\tcode: \"115-5207\",\r\n\t\tdescription: \"115-5207: Transit Care Nurses\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1217\",\r\n\t\tcode: \"125-1217\",\r\n\t\tdescription: \"125-1217: WTH Theatres\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1176\",\r\n\t\tcode: \"115-1176\",\r\n\t\tdescription: \"115-1176: # Other Medical Revenue\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1464\",\r\n\t\tcode: \"142-1464\",\r\n\t\tdescription: \"142-1464: Ostomy and Continence\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"143-1465\",\r\n\t\tcode: \"143-1465\",\r\n\t\tdescription: \"143-1465: # West ATR Allied Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"184-1841\",\r\n\t\tcode: \"184-1841\",\r\n\t\tdescription: \"184-1841: National Initiatives\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1501\",\r\n\t\tcode: \"150-1501\",\r\n\t\tdescription: \"150-1501: Inpatient Bureau Taharoto\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1140\",\r\n\t\tcode: \"115-1140\",\r\n\t\tdescription: \"115-1140: Virtual Medical Ward (Resource\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-5372\",\r\n\t\tcode: \"186-5372\",\r\n\t\tdescription: \"186-5372: Vaccination Events\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1480\",\r\n\t\tcode: \"141-1480\",\r\n\t\tdescription: \"141-1480: Regional Rehabilitation Therap\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"144-1475\",\r\n\t\tcode: \"144-1475\",\r\n\t\tdescription: \"144-1475: Child and Family West\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1400\",\r\n\t\tcode: \"142-1400\",\r\n\t\tdescription: \"142-1400: # HOAS Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1609\",\r\n\t\tcode: \"160-1609\",\r\n\t\tdescription: \"160-1609: Professional Develop Fund\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1122\",\r\n\t\tcode: \"125-1122\",\r\n\t\tdescription: \"125-1122: Wainamu\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1361\",\r\n\t\tcode: \"139-1361\",\r\n\t\tdescription: \"139-1361: Newborn Hearing Screening SLA\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"143-1472\",\r\n\t\tcode: \"143-1472\",\r\n\t\tdescription: \"143-1472: NAR ACC Contract\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1783\",\r\n\t\tcode: \"170-1783\",\r\n\t\tdescription: \"170-1783: Hospital Operations Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1251\",\r\n\t\tcode: \"115-1251\",\r\n\t\tdescription: \"115-1251: Anaesthesia Consumables\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1779\",\r\n\t\tcode: \"170-1779\",\r\n\t\tdescription: \"170-1779: WTH CSSD\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1201\",\r\n\t\tcode: \"115-1201\",\r\n\t\tdescription: \"115-1201: General Surgery Research\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"179-1796\",\r\n\t\tcode: \"179-1796\",\r\n\t\tdescription: \"179-1796: Kotui Hauora\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1362\",\r\n\t\tcode: \"139-1362\",\r\n\t\tdescription: \"139-1362: Maternity Revenue\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1117\",\r\n\t\tcode: \"115-1117\",\r\n\t\tdescription: \"115-1117: Patient Attendances (Watches)\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-1862\",\r\n\t\tcode: \"186-1862\",\r\n\t\tdescription: \"186-1862: Cmty Based Assessment (SF)\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1627\",\r\n\t\tcode: \"160-1627\",\r\n\t\tdescription: \"160-1627: Outsourced Endoscopy\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"143-1471\",\r\n\t\tcode: \"143-1471\",\r\n\t\tdescription: \"143-1471: Allied Health Clinical Centre\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-1490\",\r\n\t\tcode: \"145-1490\",\r\n\t\tdescription: \"145-1490: Dental South\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"152-1502\",\r\n\t\tcode: \"152-1502\",\r\n\t\tdescription: \"152-1502: # Te Atarau\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1937\",\r\n\t\tcode: \"192-1937\",\r\n\t\tdescription: \"192-1937: Fund Hlth Older People\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1584\",\r\n\t\tcode: \"158-1584\",\r\n\t\tdescription: \"158-1584: AOTDC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1118\",\r\n\t\tcode: \"115-1118\",\r\n\t\tdescription: \"115-1118: Gastro Rev & Exp\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1177\",\r\n\t\tcode: \"115-1177\",\r\n\t\tdescription: \"115-1177: Cardiology Technicians\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1647\",\r\n\t\tcode: \"160-1647\",\r\n\t\tdescription: \"160-1647: EA Corporate Support\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"144-1444\",\r\n\t\tcode: \"144-1444\",\r\n\t\tdescription: \"144-1444: # Child and Family West\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1391\",\r\n\t\tcode: \"115-1391\",\r\n\t\tdescription: \"115-1391: # Information Mgmt \",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1517\",\r\n\t\tcode: \"150-1517\",\r\n\t\tdescription: \"150-1517: Rodney Acute\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1599\",\r\n\t\tcode: \"154-1599\",\r\n\t\tdescription: \"154-1599: Quality and Improvement\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1578\",\r\n\t\tcode: \"154-1578\",\r\n\t\tdescription: \"154-1578: ECT\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1407\",\r\n\t\tcode: \"142-1407\",\r\n\t\tdescription: \"142-1407: AH Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1195\",\r\n\t\tcode: \"115-1195\",\r\n\t\tdescription: \"115-1195: Renal Research\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1722\",\r\n\t\tcode: \"170-1722\",\r\n\t\tdescription: \"170-1722: Haematology NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"152-1514\",\r\n\t\tcode: \"152-1514\",\r\n\t\tdescription: \"152-1514: Inpatient Bureau Waiatarau\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1271\",\r\n\t\tcode: \"115-1271\",\r\n\t\tdescription: \"115-1271: Duty Nurse Mgmt NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1636\",\r\n\t\tcode: \"160-1636\",\r\n\t\tdescription: \"160-1636: Values Programme\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-1488\",\r\n\t\tcode: \"145-1488\",\r\n\t\tdescription: \"145-1488: Dental Central\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-3030\",\r\n\t\tcode: \"130-3030\",\r\n\t\tdescription: \"130-3030: Orthopaedics\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1632\",\r\n\t\tcode: \"160-1632\",\r\n\t\tdescription: \"160-1632: Waitemata Fellowship Programme\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"152-1541\",\r\n\t\tcode: \"152-1541\",\r\n\t\tdescription: \"152-1541: Marinoto Child West\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1387\",\r\n\t\tcode: \"115-1387\",\r\n\t\tdescription: \"115-1387: # Quality\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-1864\",\r\n\t\tcode: \"186-1864\",\r\n\t\tdescription: \"186-1864: Covid19 Corporate\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1184\",\r\n\t\tcode: \"115-1184\",\r\n\t\tdescription: \"115-1184: Gastro Docs\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1884\",\r\n\t\tcode: \"188-1884\",\r\n\t\tdescription: \"188-1884: DHB Funding Maori Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"180-1805\",\r\n\t\tcode: \"180-1805\",\r\n\t\tdescription: \"180-1805: CMO\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1408\",\r\n\t\tcode: \"141-1408\",\r\n\t\tdescription: \"141-1408: Child Development Revenue\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1610\",\r\n\t\tcode: \"160-1610\",\r\n\t\tdescription: \"160-1610: OIA Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1364\",\r\n\t\tcode: \"139-1364\",\r\n\t\tdescription: \"139-1364: Paediatric Med Revenue\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1677\",\r\n\t\tcode: \"160-1677\",\r\n\t\tdescription: \"160-1677: GM Population Health Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"144-1476\",\r\n\t\tcode: \"144-1476\",\r\n\t\tdescription: \"144-1476: Health Promotion\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1712\",\r\n\t\tcode: \"170-1712\",\r\n\t\tdescription: \"170-1712: Patient Services WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-3546\",\r\n\t\tcode: \"125-3546\",\r\n\t\tdescription: \"125-3546: WTH PACU\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1601\",\r\n\t\tcode: \"160-1601\",\r\n\t\tdescription: \"160-1601: CFO\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5407\",\r\n\t\tcode: \"145-5407\",\r\n\t\tdescription: \"145-5407: Dental C3\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1561\",\r\n\t\tcode: \"158-1561\",\r\n\t\tdescription: \"158-1561: Mother and Family\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"184-1846\",\r\n\t\tcode: \"184-1846\",\r\n\t\tdescription: \"184-1846: Unpaid Days\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1576\",\r\n\t\tcode: \"154-1576\",\r\n\t\tdescription: \"154-1576: Psychiatric Liaison\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"181-1813\",\r\n\t\tcode: \"181-1813\",\r\n\t\tdescription: \"181-1813: Recruitment Office\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1831\",\r\n\t\tcode: \"183-1831\",\r\n\t\tdescription: \"183-1831: Facilities Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1567\",\r\n\t\tcode: \"158-1567\",\r\n\t\tdescription: \"158-1567: Methadone\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"155-1547\",\r\n\t\tcode: \"155-1547\",\r\n\t\tdescription: \"155-1547: Maori MHS Moko\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1270\",\r\n\t\tcode: \"125-1270\",\r\n\t\tdescription: \"125-1270: Waitakere ED Doctors\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1700\",\r\n\t\tcode: \"170-1700\",\r\n\t\tdescription: \"170-1700: # Clinical Support GM\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1110\",\r\n\t\tcode: \"115-1110\",\r\n\t\tdescription: \"115-1110: NSH Ward 3\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"185-1852\",\r\n\t\tcode: \"185-1852\",\r\n\t\tdescription: \"185-1852: Major Asset Sales\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1394\",\r\n\t\tcode: \"115-1394\",\r\n\t\tdescription: \"115-1394: # Nursing Support\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1405\",\r\n\t\tcode: \"142-1405\",\r\n\t\tdescription: \"142-1405: Older Adult Service\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1216\",\r\n\t\tcode: \"115-1216\",\r\n\t\tdescription: \"115-1216: Interim Care\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"144-1498\",\r\n\t\tcode: \"144-1498\",\r\n\t\tdescription: \"144-1498: HPV\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1183\",\r\n\t\tcode: \"115-1183\",\r\n\t\tdescription: \"115-1183: Respiratory Docs\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1276\",\r\n\t\tcode: \"115-1276\",\r\n\t\tdescription: \"115-1276: ICU Outreach\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1126\",\r\n\t\tcode: \"125-1126\",\r\n\t\tdescription: \"125-1126: WTH ADU\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1370\",\r\n\t\tcode: \"139-1370\",\r\n\t\tdescription: \"139-1370: Home Care for Kids\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"159-1594\",\r\n\t\tcode: \"159-1594\",\r\n\t\tdescription: \"159-1594: New Graduate Nursing\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1882\",\r\n\t\tcode: \"188-1882\",\r\n\t\tdescription: \"188-1882: DHB Funding Public Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1446\",\r\n\t\tcode: \"142-1446\",\r\n\t\tdescription: \"142-1446: # West CSOA Speciality\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1670\",\r\n\t\tcode: \"160-1670\",\r\n\t\tdescription: \"160-1670: Investment Mgmt Office\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1630\",\r\n\t\tcode: \"160-1630\",\r\n\t\tdescription: \"160-1630: Inst for Innovation & Improve \",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1456\",\r\n\t\tcode: \"142-1456\",\r\n\t\tdescription: \"142-1456: Community Care Administration\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-1400\",\r\n\t\tcode: \"145-1400\",\r\n\t\tdescription: \"145-1400: ARDS Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1912\",\r\n\t\tcode: \"190-1912\",\r\n\t\tdescription: \"190-1912: Funded Initiatives ADHB\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1891\",\r\n\t\tcode: \"188-1891\",\r\n\t\tdescription: \"188-1891: DHB Funds IDF MentH Prov Arm\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1540\",\r\n\t\tcode: \"150-1540\",\r\n\t\tdescription: \"150-1540: Marinoto Child North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1409\",\r\n\t\tcode: \"141-1409\",\r\n\t\tdescription: \"141-1409: CH Refugee New Migrant\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-5381\",\r\n\t\tcode: \"186-5381\",\r\n\t\tdescription: \"186-5381: Community Vaccination GP\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1192\",\r\n\t\tcode: \"115-1192\",\r\n\t\tdescription: \"115-1192: CDC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1523\",\r\n\t\tcode: \"150-1523\",\r\n\t\tdescription: \"150-1523: Rodney\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1500\",\r\n\t\tcode: \"150-1500\",\r\n\t\tdescription: \"150-1500: Taharoto\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"187-1877\",\r\n\t\tcode: \"187-1877\",\r\n\t\tdescription: \"187-1877: Quality Assurance\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1141\",\r\n\t\tcode: \"115-1141\",\r\n\t\tdescription: \"115-1141: Central Patient Appliances\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1430\",\r\n\t\tcode: \"141-1430\",\r\n\t\tdescription: \"141-1430: Child Development West\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1771\",\r\n\t\tcode: \"170-1771\",\r\n\t\tdescription: \"170-1771: Cleaning NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1781\",\r\n\t\tcode: \"170-1781\",\r\n\t\tdescription: \"170-1781: Food Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1936\",\r\n\t\tcode: \"192-1936\",\r\n\t\tdescription: \"192-1936: Fund Women Child Youth\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1715\",\r\n\t\tcode: \"170-1715\",\r\n\t\tdescription: \"170-1715: Biochemistry WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-3308\",\r\n\t\tcode: \"130-3308\",\r\n\t\tdescription: \"130-3308: General Surgery\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1734\",\r\n\t\tcode: \"170-1734\",\r\n\t\tdescription: \"170-1734: Special Assay NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1241\",\r\n\t\tcode: \"115-1241\",\r\n\t\tdescription: \"115-1241: # Other Surg Rev & Exp\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1706\",\r\n\t\tcode: \"170-1706\",\r\n\t\tdescription: \"170-1706: # Breast Screening WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1172\",\r\n\t\tcode: \"115-1172\",\r\n\t\tdescription: \"115-1172: Haem Rev & Exps\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"191-1922\",\r\n\t\tcode: \"191-1922\",\r\n\t\tdescription: \"191-1922: Hlth Otcm Group Managers\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1101\",\r\n\t\tcode: \"115-1101\",\r\n\t\tdescription: \"115-1101: Cardiology Procedures\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-3034\",\r\n\t\tcode: \"130-3034\",\r\n\t\tdescription: \"130-3034: Urology\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1570\",\r\n\t\tcode: \"158-1570\",\r\n\t\tdescription: \"158-1570: Youth Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-1494\",\r\n\t\tcode: \"145-1494\",\r\n\t\tdescription: \"145-1494: Community Outreach\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1581\",\r\n\t\tcode: \"156-1581\",\r\n\t\tdescription: \"156-1581: Mason Admin Other\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"143-1423\",\r\n\t\tcode: \"143-1423\",\r\n\t\tdescription: \"143-1423: Team 2 Inpatients Acute Servic\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1389\",\r\n\t\tcode: \"115-1389\",\r\n\t\tdescription: \"115-1389: # ACC Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"181-1815\",\r\n\t\tcode: \"181-1815\",\r\n\t\tdescription: \"181-1815: Simulation Centre / Skills Lab\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-1492\",\r\n\t\tcode: \"145-1492\",\r\n\t\tdescription: \"145-1492: Maternal Oral Health Project\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1203\",\r\n\t\tcode: \"115-1203\",\r\n\t\tdescription: \"115-1203: ORL\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1402\",\r\n\t\tcode: \"141-1402\",\r\n\t\tdescription: \"141-1402: Wilson Centre Site Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1107\",\r\n\t\tcode: \"115-1107\",\r\n\t\tdescription: \"115-1107: NSH Ward 11\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1611\",\r\n\t\tcode: \"160-1611\",\r\n\t\tdescription: \"160-1611: Comm Trans & Advisory Grp\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1716\",\r\n\t\tcode: \"170-1716\",\r\n\t\tdescription: \"170-1716: Rural Point of Care\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1114\",\r\n\t\tcode: \"115-1114\",\r\n\t\tdescription: \"115-1114: NSH Ward 2\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1392\",\r\n\t\tcode: \"115-1392\",\r\n\t\tdescription: \"115-1392: # Business Support\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1264\",\r\n\t\tcode: \"115-1264\",\r\n\t\tdescription: \"115-1264: Booking Centre\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-5514\",\r\n\t\tcode: \"130-5514\",\r\n\t\tdescription: \"130-5514: ESC Waiting List Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1406\",\r\n\t\tcode: \"142-1406\",\r\n\t\tdescription: \"142-1406: General Admin Rodney \",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1764\",\r\n\t\tcode: \"170-1764\",\r\n\t\tdescription: \"170-1764: Health Information Group\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1214\",\r\n\t\tcode: \"115-1214\",\r\n\t\tdescription: \"115-1214: NSH Theatres\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5412\",\r\n\t\tcode: \"145-5412\",\r\n\t\tdescription: \"145-5412: Dental S5\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1784\",\r\n\t\tcode: \"170-1784\",\r\n\t\tdescription: \"170-1784: Asian Health AMHS\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"180-1801\",\r\n\t\tcode: \"180-1801\",\r\n\t\tdescription: \"180-1801: Expired Contract Provisions\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1582\",\r\n\t\tcode: \"154-1582\",\r\n\t\tdescription: \"154-1582: ICSS Wrap Around Flexifund\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1388\",\r\n\t\tcode: \"115-1388\",\r\n\t\tdescription: \"115-1388: # Healthcare Improvement Team\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1457\",\r\n\t\tcode: \"142-1457\",\r\n\t\tdescription: \"142-1457: Interim Care - Allied Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1507\",\r\n\t\tcode: \"156-1507\",\r\n\t\tdescription: \"156-1507: Kauri\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1629\",\r\n\t\tcode: \"160-1629\",\r\n\t\tdescription: \"160-1629: Unallocated Savings\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1393\",\r\n\t\tcode: \"125-1393\",\r\n\t\tdescription: \"125-1393: Mgmt WTH Site\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1152\",\r\n\t\tcode: \"115-1152\",\r\n\t\tdescription: \"115-1152: Covid19 Spec Med & HOPS\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"159-1592\",\r\n\t\tcode: \"159-1592\",\r\n\t\tdescription: \"159-1592: Consumer Advisor Team\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1938\",\r\n\t\tcode: \"192-1938\",\r\n\t\tdescription: \"192-1938: Fund Mental Hlth & Addiction\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"191-1923\",\r\n\t\tcode: \"191-1923\",\r\n\t\tdescription: \"191-1923: Hlth Otcm Health Gain\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1662\",\r\n\t\tcode: \"160-1662\",\r\n\t\tdescription: \"160-1662: Breast Screen Akl Central\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1760\",\r\n\t\tcode: \"170-1760\",\r\n\t\tdescription: \"170-1760: Covid19 Clin & Diag Sppt Serv\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1538\",\r\n\t\tcode: \"150-1538\",\r\n\t\tdescription: \"150-1538: He Puna Waiora\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1909\",\r\n\t\tcode: \"190-1909\",\r\n\t\tdescription: \"190-1909: Business Transformation\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1301\",\r\n\t\tcode: \"139-1301\",\r\n\t\tdescription: \"139-1301: IFHC Clinics\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1597\",\r\n\t\tcode: \"154-1597\",\r\n\t\tdescription: \"154-1597: MHSOA Respite\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1933\",\r\n\t\tcode: \"192-1933\",\r\n\t\tdescription: \"192-1933: Fund Finance & Support Serv\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-5513\",\r\n\t\tcode: \"130-5513\",\r\n\t\tdescription: \"130-5513: ESC Perioperative Serv Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1580\",\r\n\t\tcode: \"150-1580\",\r\n\t\tdescription: \"150-1580: # Marinoto Youth North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"180-1808\",\r\n\t\tcode: \"180-1808\",\r\n\t\tdescription: \"180-1808: ACC Unit\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1319\",\r\n\t\tcode: \"139-1319\",\r\n\t\tdescription: \"139-1319: Maternity Community North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1620\",\r\n\t\tcode: \"160-1620\",\r\n\t\tdescription: \"160-1620: Well Foundation\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"187-1875\",\r\n\t\tcode: \"187-1875\",\r\n\t\tdescription: \"187-1875: Quality\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1329\",\r\n\t\tcode: \"139-1329\",\r\n\t\tdescription: \"139-1329: Community Maternity\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"179-1792\",\r\n\t\tcode: \"179-1792\",\r\n\t\tdescription: \"179-1792: Mo Wai Te Ora Public Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1178\",\r\n\t\tcode: \"115-1178\",\r\n\t\tdescription: \"115-1178: Dermatology\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1160\",\r\n\t\tcode: \"115-1160\",\r\n\t\tdescription: \"115-1160: Covid19 Acute & Emerg Med\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1942\",\r\n\t\tcode: \"192-1942\",\r\n\t\tdescription: \"192-1942: Funding Asian Migrant & Refugee Health Gain\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1758\",\r\n\t\tcode: \"170-1758\",\r\n\t\tdescription: \"170-1758: Radiology NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1197\",\r\n\t\tcode: \"115-1197\",\r\n\t\tdescription: \"115-1197: Peritoneal Dialysis\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1682\",\r\n\t\tcode: \"183-1682\",\r\n\t\tdescription: \"183-1682: Facilities GM\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1705\",\r\n\t\tcode: \"170-1705\",\r\n\t\tdescription: \"170-1705: Breast Screen Waitemata Northl\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1143\",\r\n\t\tcode: \"115-1143\",\r\n\t\tdescription: \"115-1143: # NSH Allied Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1564\",\r\n\t\tcode: \"158-1564\",\r\n\t\tdescription: \"158-1564: CADS West\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1194\",\r\n\t\tcode: \"115-1194\",\r\n\t\tdescription: \"115-1194: Haematology Day Stay\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1833\",\r\n\t\tcode: \"183-1833\",\r\n\t\tdescription: \"183-1833: Facilites Development Projects\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"180-1802\",\r\n\t\tcode: \"180-1802\",\r\n\t\tdescription: \"180-1802: Nursing\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1522\",\r\n\t\tcode: \"156-1522\",\r\n\t\tdescription: \"156-1522: FCT Sub Contracted\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1125\",\r\n\t\tcode: \"125-1125\",\r\n\t\tdescription: \"125-1125: Outpatients Medical Daystay\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1519\",\r\n\t\tcode: \"150-1519\",\r\n\t\tdescription: \"150-1519: North Acute\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"143-1474\",\r\n\t\tcode: \"143-1474\",\r\n\t\tdescription: \"143-1474: Service Management ATR\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"180-1803\",\r\n\t\tcode: \"180-1803\",\r\n\t\tdescription: \"180-1803: Board Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"181-1814\",\r\n\t\tcode: \"181-1814\",\r\n\t\tdescription: \"181-1814: Group HR\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1625\",\r\n\t\tcode: \"160-1625\",\r\n\t\tdescription: \"160-1625: Director of Hospital Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1180\",\r\n\t\tcode: \"115-1180\",\r\n\t\tdescription: \"115-1180: Cardiology Docs\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1401\",\r\n\t\tcode: \"141-1401\",\r\n\t\tdescription: \"141-1401: Child Health Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1205\",\r\n\t\tcode: \"115-1205\",\r\n\t\tdescription: \"115-1205: Discharge Lounge\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1274\",\r\n\t\tcode: \"115-1274\",\r\n\t\tdescription: \"115-1274: ICU Medical\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1187\",\r\n\t\tcode: \"115-1187\",\r\n\t\tdescription: \"115-1187: Palliative Care \",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1557\",\r\n\t\tcode: \"156-1557\",\r\n\t\tdescription: \"156-1557: ID Community\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1535\",\r\n\t\tcode: \"150-1535\",\r\n\t\tdescription: \"150-1535: West Cmty MH Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1626\",\r\n\t\tcode: \"160-1626\",\r\n\t\tdescription: \"160-1626: Waitemata 2025\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1645\",\r\n\t\tcode: \"160-1645\",\r\n\t\tdescription: \"160-1645: CEO Projects\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1571\",\r\n\t\tcode: \"158-1571\",\r\n\t\tdescription: \"158-1571: CADS CAP Programme\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"143-1417\",\r\n\t\tcode: \"143-1417\",\r\n\t\tdescription: \"143-1417: Team 3 Inpatient Rehab North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1596\",\r\n\t\tcode: \"158-1596\",\r\n\t\tdescription: \"158-1596: ADS Administration\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1542\",\r\n\t\tcode: \"158-1542\",\r\n\t\tdescription: \"158-1542: # Regional Coordination\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1778\",\r\n\t\tcode: \"170-1778\",\r\n\t\tdescription: \"170-1778: NSH CSSD\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1524\",\r\n\t\tcode: \"150-1524\",\r\n\t\tdescription: \"150-1524: # Rodney Portfolio Mgmt and Ad\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1785\",\r\n\t\tcode: \"170-1785\",\r\n\t\tdescription: \"170-1785: eCALD\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-6020\",\r\n\t\tcode: \"130-6020\",\r\n\t\tdescription: \"130-6020: Booking Office\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1710\",\r\n\t\tcode: \"170-1710\",\r\n\t\tdescription: \"170-1710: Patient Services NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1314\",\r\n\t\tcode: \"139-1314\",\r\n\t\tdescription: \"139-1314: NSH SCBU\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1910\",\r\n\t\tcode: \"190-1910\",\r\n\t\tdescription: \"190-1910: Bowel Screening Planning\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1727\",\r\n\t\tcode: \"170-1727\",\r\n\t\tdescription: \"170-1727: Microbiology WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1683\",\r\n\t\tcode: \"183-1683\",\r\n\t\tdescription: \"183-1683: Covid19 Facilities\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"184-1848\",\r\n\t\tcode: \"184-1848\",\r\n\t\tdescription: \"184-1848: Prov Grat & Matny Costs\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1273\",\r\n\t\tcode: \"115-1273\",\r\n\t\tdescription: \"115-1273: Daily Operations Resource\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1663\",\r\n\t\tcode: \"160-1663\",\r\n\t\tdescription: \"160-1663: Maori Health Pipeline\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1272\",\r\n\t\tcode: \"115-1272\",\r\n\t\tdescription: \"115-1272: Bureau Nursing\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1901\",\r\n\t\tcode: \"190-1901\",\r\n\t\tdescription: \"190-1901: Plan & Fund Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1398\",\r\n\t\tcode: \"125-1398\",\r\n\t\tdescription: \"125-1398: Duty Nurse Mgmt WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1757\",\r\n\t\tcode: \"170-1757\",\r\n\t\tdescription: \"170-1757: Interventional Radiology\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-3020\",\r\n\t\tcode: \"130-3020\",\r\n\t\tdescription: \"130-3020: Anaesthesia Consumables\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1646\",\r\n\t\tcode: \"160-1646\",\r\n\t\tdescription: \"160-1646: System Level Improvements\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1618\",\r\n\t\tcode: \"160-1618\",\r\n\t\tdescription: \"160-1618: Akld Metro Holidays Act\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1186\",\r\n\t\tcode: \"115-1186\",\r\n\t\tdescription: \"115-1186: Infectious Diseases\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1893\",\r\n\t\tcode: \"188-1893\",\r\n\t\tdescription: \"188-1893: DHB Funds DSS Provider\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5408\",\r\n\t\tcode: \"145-5408\",\r\n\t\tdescription: \"145-5408: Dental S1\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1211\",\r\n\t\tcode: \"115-1211\",\r\n\t\tdescription: \"115-1211: NSH Ward 8\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1193\",\r\n\t\tcode: \"125-1193\",\r\n\t\tdescription: \"125-1193: WTH Renal Service\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1516\",\r\n\t\tcode: \"150-1516\",\r\n\t\tdescription: \"150-1516: North Portfolio Mgmt & Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"182-1824\",\r\n\t\tcode: \"182-1824\",\r\n\t\tdescription: \"182-1824: Portfolio Support Office\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1252\",\r\n\t\tcode: \"115-1252\",\r\n\t\tdescription: \"115-1252: Orthopaedics Consumables\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1902\",\r\n\t\tcode: \"190-1902\",\r\n\t\tdescription: \"190-1902: Finance\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1900\",\r\n\t\tcode: \"190-1900\",\r\n\t\tdescription: \"190-1900: DHB Governance\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1711\",\r\n\t\tcode: \"170-1711\",\r\n\t\tdescription: \"170-1711: Lab Administration \",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1726\",\r\n\t\tcode: \"170-1726\",\r\n\t\tdescription: \"170-1726: Microbiology NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1103\",\r\n\t\tcode: \"115-1103\",\r\n\t\tdescription: \"115-1103: NSH Ward 6\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"143-1416\",\r\n\t\tcode: \"143-1416\",\r\n\t\tdescription: \"143-1416: NSH Ward 14\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1513\",\r\n\t\tcode: \"158-1513\",\r\n\t\tdescription: \"158-1513: Detox\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1135\",\r\n\t\tcode: \"125-1135\",\r\n\t\tdescription: \"125-1135: WTH Short Stay Ward\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1275\",\r\n\t\tcode: \"115-1275\",\r\n\t\tdescription: \"115-1275: Med Booking & Scheduling\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1579\",\r\n\t\tcode: \"158-1579\",\r\n\t\tdescription: \"158-1579: Clinical Research & Resource C\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1837\",\r\n\t\tcode: \"183-1837\",\r\n\t\tdescription: \"183-1837: MH Leased Property Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1182\",\r\n\t\tcode: \"115-1182\",\r\n\t\tdescription: \"115-1182: Haematology Docs\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"184-1847\",\r\n\t\tcode: \"184-1847\",\r\n\t\tdescription: \"184-1847: Provider Risk Pool\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1189\",\r\n\t\tcode: \"115-1189\",\r\n\t\tdescription: \"115-1189: Rheumatology\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1913\",\r\n\t\tcode: \"190-1913\",\r\n\t\tdescription: \"190-1913: ADHB Only\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1780\",\r\n\t\tcode: \"170-1780\",\r\n\t\tdescription: \"170-1780: Pacific Health SA\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1766\",\r\n\t\tcode: \"170-1766\",\r\n\t\tdescription: \"170-1766: Clinical Typing\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1508\",\r\n\t\tcode: \"156-1508\",\r\n\t\tdescription: \"156-1508: Totara\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1255\",\r\n\t\tcode: \"115-1255\",\r\n\t\tdescription: \"115-1255: ORL Consumables\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1941\",\r\n\t\tcode: \"192-1941\",\r\n\t\tdescription: \"192-1941: Fund Pacific Island Health Gai\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"188-1873\",\r\n\t\tcode: \"188-1873\",\r\n\t\tdescription: \"188-1873: DHB DSS Funder\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1380\",\r\n\t\tcode: \"139-1380\",\r\n\t\tdescription: \"139-1380: Paediatric Doctors\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1551\",\r\n\t\tcode: \"154-1551\",\r\n\t\tdescription: \"154-1551: Child Youth and Family Portfol\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5406\",\r\n\t\tcode: \"145-5406\",\r\n\t\tdescription: \"145-5406: Dental C2\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1634\",\r\n\t\tcode: \"160-1634\",\r\n\t\tdescription: \"160-1634: E3\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1907\",\r\n\t\tcode: \"190-1907\",\r\n\t\tdescription: \"190-1907: Maori\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1671\",\r\n\t\tcode: \"160-1671\",\r\n\t\tdescription: \"160-1671: Portfolio Finance Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1350\",\r\n\t\tcode: \"139-1350\",\r\n\t\tdescription: \"139-1350: WTH SCBU\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"159-1556\",\r\n\t\tcode: \"159-1556\",\r\n\t\tdescription: \"159-1556: Regional Registrar Training\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1553\",\r\n\t\tcode: \"154-1553\",\r\n\t\tdescription: \"154-1553: Waitakere Liaison ECC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1558\",\r\n\t\tcode: \"156-1558\",\r\n\t\tdescription: \"156-1558: Prison Service\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"179-1790\",\r\n\t\tcode: \"179-1790\",\r\n\t\tdescription: \"179-1790: He Kamaka Waiora Corporate\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"156-1555\",\r\n\t\tcode: \"156-1555\",\r\n\t\tdescription: \"156-1555: Justice Liaison\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1782\",\r\n\t\tcode: \"170-1782\",\r\n\t\tdescription: \"170-1782: Nutrition and Dietetic Service\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1151\",\r\n\t\tcode: \"115-1151\",\r\n\t\tdescription: \"115-1151: Gen Med Rev & Exp\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1592\",\r\n\t\tcode: \"158-1592\",\r\n\t\tdescription: \"158-1592: # Clinical Research\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"145-5403\",\r\n\t\tcode: \"145-5403\",\r\n\t\tdescription: \"145-5403: Dental N3\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-5389\",\r\n\t\tcode: \"186-5389\",\r\n\t\tdescription: \"186-5389: Whangaparoa LVC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1835\",\r\n\t\tcode: \"183-1835\",\r\n\t\tdescription: \"183-1835: Facilities Projects OpEx\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1173\",\r\n\t\tcode: \"115-1173\",\r\n\t\tdescription: \"115-1173: Respiratory Rev & Exps\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1830\",\r\n\t\tcode: \"183-1830\",\r\n\t\tdescription: \"183-1830: Facilities and Development\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1908\",\r\n\t\tcode: \"190-1908\",\r\n\t\tdescription: \"190-1908: Plan & Fund GM\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1262\",\r\n\t\tcode: \"115-1262\",\r\n\t\tdescription: \"115-1262: Emergency Rev & Exps\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1400\",\r\n\t\tcode: \"141-1400\",\r\n\t\tdescription: \"141-1400: # Child Disability Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"140-1415\",\r\n\t\tcode: \"140-1415\",\r\n\t\tdescription: \"140-1415: Violence Intervention Programm\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1411\",\r\n\t\tcode: \"142-1411\",\r\n\t\tdescription: \"142-1411: District Nursing West\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1651\",\r\n\t\tcode: \"160-1651\",\r\n\t\tdescription: \"160-1651: Commis'ing & Cmty Health\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1836\",\r\n\t\tcode: \"183-1836\",\r\n\t\tdescription: \"183-1836: Leased Property Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"185-1851\",\r\n\t\tcode: \"185-1851\",\r\n\t\tdescription: \"185-1851: Associates\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1219\",\r\n\t\tcode: \"115-1219\",\r\n\t\tdescription: \"115-1219: Covid19 SAS\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1950\",\r\n\t\tcode: \"192-1950\",\r\n\t\tdescription: \"192-1950: P&F Transition\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"144-1477\",\r\n\t\tcode: \"144-1477\",\r\n\t\tdescription: \"144-1477: Child and Family North\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1300\",\r\n\t\tcode: \"139-1300\",\r\n\t\tdescription: \"139-1300: Cld Wmn Fam GM\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1587\",\r\n\t\tcode: \"154-1587\",\r\n\t\tdescription: \"154-1587: Adult Service Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-3542\",\r\n\t\tcode: \"115-3542\",\r\n\t\tdescription: \"115-3542: NSH PACU\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1914\",\r\n\t\tcode: \"190-1914\",\r\n\t\tdescription: \"190-1914: Covid-19\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1504\",\r\n\t\tcode: \"154-1504\",\r\n\t\tdescription: \"154-1504: Kingsley Mortimer Ward 12\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"157-1549\",\r\n\t\tcode: \"157-1549\",\r\n\t\tdescription: \"157-1549: Isa Lei\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1200\",\r\n\t\tcode: \"115-1200\",\r\n\t\tdescription: \"115-1200: Surgery Service Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1383\",\r\n\t\tcode: \"115-1383\",\r\n\t\tdescription: \"115-1383: Clinical Equipment Pool\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"192-1931\",\r\n\t\tcode: \"192-1931\",\r\n\t\tdescription: \"192-1931: Fund Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1608\",\r\n\t\tcode: \"160-1608\",\r\n\t\tdescription: \"160-1608: Research Innovation & Knowledg\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1399\",\r\n\t\tcode: \"115-1399\",\r\n\t\tdescription: \"115-1399: # AHS Global RC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-8076\",\r\n\t\tcode: \"130-8076\",\r\n\t\tdescription: \"130-8076: ESC Management\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-3026\",\r\n\t\tcode: \"130-3026\",\r\n\t\tdescription: \"130-3026: ORL / ENT\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1763\",\r\n\t\tcode: \"170-1763\",\r\n\t\tdescription: \"170-1763: Clinical Coding\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1127\",\r\n\t\tcode: \"125-1127\",\r\n\t\tdescription: \"125-1127: # WTH Allied Health Rev Exp\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1566\",\r\n\t\tcode: \"158-1566\",\r\n\t\tdescription: \"158-1566: CADS Central\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"154-1546\",\r\n\t\tcode: \"154-1546\",\r\n\t\tdescription: \"154-1546: Early intervention\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"157-1573\",\r\n\t\tcode: \"157-1573\",\r\n\t\tdescription: \"157-1573: Pacific MHS Mgmt & Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1562\",\r\n\t\tcode: \"158-1562\",\r\n\t\tdescription: \"158-1562: Detox Research\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1754\",\r\n\t\tcode: \"170-1754\",\r\n\t\tdescription: \"170-1754: Outpatient Pharmacy NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"191-1921\",\r\n\t\tcode: \"191-1921\",\r\n\t\tdescription: \"191-1921: PFO Joint ADHB & WDHB\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-5382\",\r\n\t\tcode: \"186-5382\",\r\n\t\tdescription: \"186-5382: SVC5 Birkenhead\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"130-3547\",\r\n\t\tcode: \"130-3547\",\r\n\t\tdescription: \"130-3547: ESC PACU\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1767\",\r\n\t\tcode: \"170-1767\",\r\n\t\tdescription: \"170-1767: Clinical Typing WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1832\",\r\n\t\tcode: \"183-1832\",\r\n\t\tdescription: \"183-1832: Security Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1772\",\r\n\t\tcode: \"170-1772\",\r\n\t\tdescription: \"170-1772: Cleaning WTH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1295\",\r\n\t\tcode: \"115-1295\",\r\n\t\tdescription: \"115-1295: Savings Initiatives\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"158-1565\",\r\n\t\tcode: \"158-1565\",\r\n\t\tdescription: \"158-1565: CADS South\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1181\",\r\n\t\tcode: \"115-1181\",\r\n\t\tdescription: \"115-1181: OA Docs\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"141-1482\",\r\n\t\tcode: \"141-1482\",\r\n\t\tdescription: \"141-1482: Residential Unit\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"140-1403\",\r\n\t\tcode: \"140-1403\",\r\n\t\tdescription: \"140-1403: Family Violence Prevention\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"180-1800\",\r\n\t\tcode: \"180-1800\",\r\n\t\tdescription: \"180-1800: CEO\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1786\",\r\n\t\tcode: \"170-1786\",\r\n\t\tdescription: \"170-1786: Asian Health Patient Support S\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1633\",\r\n\t\tcode: \"160-1633\",\r\n\t\tdescription: \"160-1633: Patient Experience\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"180-1804\",\r\n\t\tcode: \"180-1804\",\r\n\t\tdescription: \"180-1804: Communications\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1428\",\r\n\t\tcode: \"142-1428\",\r\n\t\tdescription: \"142-1428: Community Rodney\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"184-1842\",\r\n\t\tcode: \"184-1842\",\r\n\t\tdescription: \"184-1842: Covid19 Provider Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1916\",\r\n\t\tcode: \"190-1916\",\r\n\t\tdescription: \"190-1916: Integrated Transition of Care\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"150-1530\",\r\n\t\tcode: \"150-1530\",\r\n\t\tdescription: \"150-1530: North Cmty MH Services\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1280\",\r\n\t\tcode: \"115-1280\",\r\n\t\tdescription: \"115-1280: Cancer Coordination\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1360\",\r\n\t\tcode: \"139-1360\",\r\n\t\tdescription: \"139-1360: Gynae Revenue\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1202\",\r\n\t\tcode: \"115-1202\",\r\n\t\tdescription: \"115-1202: Orthopaedic Surgery\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1447\",\r\n\t\tcode: \"142-1447\",\r\n\t\tdescription: \"142-1447: Home Health & NASC Mgmt\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"183-1681\",\r\n\t\tcode: \"183-1681\",\r\n\t\tdescription: \"183-1681: Facilities MH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1703\",\r\n\t\tcode: \"170-1703\",\r\n\t\tdescription: \"170-1703: Information Systems\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1119\",\r\n\t\tcode: \"115-1119\",\r\n\t\tdescription: \"115-1119: Diabetes Research\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1132\",\r\n\t\tcode: \"125-1132\",\r\n\t\tdescription: \"125-1132: WTH Gastro\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1170\",\r\n\t\tcode: \"115-1170\",\r\n\t\tdescription: \"115-1170: Cardiovascular Unit\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1905\",\r\n\t\tcode: \"190-1905\",\r\n\t\tdescription: \"190-1905: Funding\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1903\",\r\n\t\tcode: \"190-1903\",\r\n\t\tdescription: \"190-1903: Primary Care\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"142-1449\",\r\n\t\tcode: \"142-1449\",\r\n\t\tdescription: \"142-1449: CSOA Contract\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"190-1904\",\r\n\t\tcode: \"190-1904\",\r\n\t\tdescription: \"190-1904: Hospitals and IDF Admin\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"170-1750\",\r\n\t\tcode: \"170-1750\",\r\n\t\tdescription: \"170-1750: IP Pharmacy NSH\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-1868\",\r\n\t\tcode: \"186-1868\",\r\n\t\tdescription: \"186-1868: Occ Health Covid19 Response\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"125-1129\",\r\n\t\tcode: \"125-1129\",\r\n\t\tdescription: \"125-1129: # WTH Operations General\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1303\",\r\n\t\tcode: \"139-1303\",\r\n\t\tdescription: \"139-1303: Covid19 CWF\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"160-1615\",\r\n\t\tcode: \"160-1615\",\r\n\t\tdescription: \"160-1615: Provider Mgmt Holding RC\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"186-1866\",\r\n\t\tcode: \"186-1866\",\r\n\t\tdescription: \"186-1866: Covid19 Staff Vaccinations\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"139-1302\",\r\n\t\tcode: \"139-1302\",\r\n\t\tdescription: \"139-1302: CWF Research\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1112\",\r\n\t\tcode: \"115-1112\",\r\n\t\tdescription: \"115-1112: Gastro Research\",\r\n\t},\r\n\t{\r\n\t\tdomainCode: \"rcs\",\r\n\t\tid: \"115-1207\",\r\n\t\tcode: \"115-1207\",\r\n\t\tdescription: \"115-1207: MESH Service\",\r\n\t},\r\n];\r\n","import { createSlice, createEntityAdapter } from \"@reduxjs/toolkit\";\r\n\r\nconst keyMembersAdapter = createEntityAdapter();\r\n\r\nconst initialState = keyMembersAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nconst keyMembersSlice = createSlice({\r\n\tname: \"keyMembers\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tkeyMemberUpserted(state, action) {\r\n\t\t\tkeyMembersAdapter.upsertOne(state, action.payload);\r\n\t\t},\r\n\t\tkeyMemberRemoved(state, action) {\r\n\t\t\tkeyMembersAdapter.removeOne(state, action.payload);\r\n\t\t},\r\n\t\tkeyMembersReceived(state, action) {\r\n\t\t\tkeyMembersAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { keyMembersReceived, keyMemberUpserted, keyMemberRemoved } =\r\n\tkeyMembersSlice.actions;\r\n\r\nexport const {\r\n\tselectAll: selectAllKeyMembers,\r\n\tselectById: selectKeyMemberById,\r\n} = keyMembersAdapter.getSelectors((state) => state.capex.keyMembers);\r\n\r\nexport default keyMembersSlice.reducer;\r\n","import { createSlice, createAsyncThunk } from \"@reduxjs/toolkit\";\r\nimport { getAppRolesByAppId } from \"api/index.js\";\r\nimport _ from \"lodash\";\r\nimport { selectGlobal } from \"reducers/global\";\r\n\r\nexport const fetchRoles = createAsyncThunk(\r\n\t\"role/fetchRoles\",\r\n\tasync (_, { getState, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst { appId } = selectGlobal(getState());\r\n\t\t\tconst data = await getAppRolesByAppId({ appId });\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst initialState = {\r\n\troles: [],\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n};\r\n\r\nconst roleSlice = createSlice({\r\n\tname: \"assetRc\",\r\n\tinitialState,\r\n\textraReducers: {\r\n\t\t[fetchRoles.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchRoles.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tconst sortedRoles = _.orderBy(\r\n\t\t\t\taction.payload,\r\n\t\t\t\t[\"roleName\"],\r\n\t\t\t\t[\"asc\"]\r\n\t\t\t);\r\n\t\t\tstate.roles = sortedRoles;\r\n\t\t},\r\n\t\t[fetchRoles.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.roles = [];\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const selectAllRoles = (state) => state.capex.role.roles;\r\n\r\nexport default roleSlice.reducer;\r\n","import React from \"react\";\r\nimport { Popover } from \"antd\";\r\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\r\n\r\nconst HelpTooltip = ({ title, children }) => {\r\n\treturn (\r\n\t\t<Popover\r\n\t\t\ttitle={title}\r\n\t\t\tcontent={children}\r\n\t\t\ttrigger=\"click\"\r\n\t\t\tstyle={{ maxWidth: 400 }}\r\n\t\t>\r\n\t\t\t<QuestionCircleOutlined style={{ color: \"#1890ff\" }} />\r\n\t\t</Popover>\r\n\t);\r\n};\r\n\r\nexport default HelpTooltip;\r\n","import { useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n\tselectIsAppAdmin,\r\n\tselectIsApprover,\r\n\tselectIsSysAdmin,\r\n\tselectIsCmeUser,\r\n} from \"reducers/securitySlice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { appContextEdited } from \"reducers/formSlice\";\r\nimport { homePathEdited, selectGlobal } from \"reducers/global\";\r\n\r\nexport const USER = \"user\";\r\nexport const APPROVER = \"approver\";\r\nexport const ADMIN = \"admin\";\r\nexport const SYSADMIN = \"sysadmin\";\r\n\r\n//usage useSecurity([type])\r\n//this will auto redirect if user does not have appropriate access\r\nexport const useSecurity = (type, redirect = true) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst history = useHistory();\r\n\tconst homePath = useSelector(selectGlobal).homePath;\r\n\tconst isCmeUser = useSelector(selectIsCmeUser);\r\n\tconst isCmeApprover = useSelector(selectIsApprover);\r\n\tconst isCmeAdmin = useSelector(selectIsAppAdmin);\r\n\tconst isCmeSysAdmin = useSelector(selectIsSysAdmin);\r\n\r\n\tuseEffect(() => {\r\n\t\t//if user is signing in for the first time, and homepath is not set\r\n\t\t//we set it from here.\r\n\t\t//later, the homePath can be overridden by other screens\r\n\r\n\t\tconst defaultHomePath =\r\n\t\t\ttype === USER\r\n\t\t\t\t? \"/CME/Dashboard\"\r\n\t\t\t\t: type === APPROVER\r\n\t\t\t\t? \"/CME/ApproverDashboard\"\r\n\t\t\t\t: type === ADMIN\r\n\t\t\t\t? \"/CME/Admin\"\r\n\t\t\t\t: type === SYSADMIN\r\n\t\t\t\t? \"/CME/Admin\"\r\n\t\t\t\t: null;\r\n\t\tif (!homePath && type) {\r\n\t\t\tdispatch(homePathEdited(defaultHomePath));\r\n\t\t}\r\n\t}, [homePath, dispatch, type]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (redirect) {\r\n\t\t\t// first dispatch appContext\r\n\t\t\tif (type) dispatch(appContextEdited(type));\r\n\t\t\t// admins -> return\r\n\t\t\tif (isCmeSysAdmin) return;\r\n\t\t\tif (type === USER && !isCmeUser && !isCmeAdmin)\r\n\t\t\t\thistory.push(\"/CME/Unauthenticated/NotCmeUser\");\r\n\t\t\tif (type === APPROVER && !isCmeApprover && !isCmeAdmin)\r\n\t\t\t\thistory.push(\"/CME/Unauthenticated/NotCmeApprover\");\r\n\t\t\tif (type === ADMIN && !isCmeAdmin)\r\n\t\t\t\thistory.push(\"/CME/Unauthenticated/NotCmeAdmin\");\r\n\t\t\tif (type === SYSADMIN && !isCmeSysAdmin)\r\n\t\t\t\thistory.push(\"/CME/Unauthenticated/NotCmeSysAdmin\");\r\n\t\t}\r\n\t}, [\r\n\t\tdispatch,\r\n\t\thistory,\r\n\t\ttype,\r\n\t\tisCmeUser,\r\n\t\tisCmeApprover,\r\n\t\tisCmeAdmin,\r\n\t\tisCmeSysAdmin,\r\n\t\tredirect,\r\n\t]);\r\n\r\n\treturn {\r\n\t\tisCmeUser,\r\n\t\tisCmeApprover,\r\n\t\tisCmeAdmin,\r\n\t\tisCmeSysAdmin,\r\n\t};\r\n};\r\n","import {\r\n\tcreateSlice,\r\n\tcreateAsyncThunk,\r\n\tcreateSelector,\r\n} from \"@reduxjs/toolkit\";\r\nimport {\r\n\tgetCPEEnrolmentByPersonId,\r\n\tsearchByPersonId,\r\n\tpostUser,\r\n\tprocessCPEEnrolmentUpdate,\r\n\tgetUserRolesByUserIdAndAppId,\r\n\tgetUsersByOrgHierarchy,\r\n\tgetChildrenByDomain,\r\n\tgetAppRolesByAppId,\r\n\tpostUserApp,\r\n\tpostUserRole,\r\n\tpostHierarchy,\r\n\tgetActiveLeaveApplication,\r\n\tprocessLeaveRequest,\r\n\tgetDelegateUserByUserId,\r\n\tgetDelegateUserByForUserId,\r\n\tpostDelegateUser,\r\n\tmigrate,\r\n\tdeleteCPEEnrolmentById,\r\n\tgetTreeByDomain,\r\n\tgetTreeById,\r\n\tgetPayrollForms,\r\n\tgetMigrationPendingWorkflows,\r\n} from \"api\";\r\nimport _ from \"lodash\";\r\nimport dayjs from \"dayjs\";\r\nimport { CME_APP_ID } from \"../constants\";\r\nimport { fetchBalanceByPersonId } from \"../balance/balanceSlice\";\r\nimport { CME_CONFIG } from \"../constants\";\r\n\r\nexport const fetchMigrationPendingWorkflows = createAsyncThunk(\r\n\t\"admin/fetchMigrationPendingWorkflows\",\r\n\tasync ({ userId, organisationHierarchyId }, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getMigrationPendingWorkflows({\r\n\t\t\t\tuserId,\r\n\t\t\t\torganisationHierarchyId,\r\n\t\t\t});\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchPayrollForms = createAsyncThunk(\r\n\t\"admin/fetchPayrollForms\",\r\n\tasync (personId, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getPayrollForms(personId);\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const validateCpeEnrolment = createAsyncThunk(\r\n\t\"admin/validateCpeEnrolment\",\r\n\tasync (cpe, { getState, dispatch }) => {\r\n\t\t//note entitlement amount is not validated as they have default values\r\n\t\tconst { fte, specialPlanYears, startDate, endDate } = cpe;\r\n\r\n\t\tlet errors = [];\r\n\r\n\t\tif (!fte || !specialPlanYears || !startDate)\r\n\t\t\terrors.push(\r\n\t\t\t\t\"Please fill out all mandatory fields marked with a red asterisk\"\r\n\t\t\t);\r\n\t\tconst state = getState();\r\n\t\tconst pcpe = selectAdminCpeEnrolment(state);\r\n\r\n\t\tconst maxStartDate = _.orderBy(\r\n\t\t\tpcpe,\r\n\t\t\t[\"startDate\"],\r\n\t\t\t[\"desc\"]\r\n\t\t)?.startDate;\r\n\r\n\t\tif (startDate <= maxStartDate)\r\n\t\t\terrors.push(\r\n\t\t\t\t\"You can't make a change that is dated prior to an existing CPE enrolment date. Please use a date greater than the current active record\"\r\n\t\t\t);\r\n\r\n\t\tif (endDate <= startDate)\r\n\t\t\terrors.push(\r\n\t\t\t\t\"End date cannot be on or before the start date. Please use a date greater than the start date\"\r\n\t\t\t);\r\n\r\n\t\tif (startDate <= dayjs(\"2020-11-30\").toISOString())\r\n\t\t\terrors.push(\r\n\t\t\t\t\"Waitemata's CME balances prior to Dec-20 have been imported in. Please choose a start date of Dec-20 or greater\"\r\n\t\t\t);\r\n\r\n\t\tdispatch(validationErrorsCpeEdited(errors));\r\n\t\treturn errors.length;\r\n\t}\r\n);\r\n\r\nexport const validatePerson = createAsyncThunk(\r\n\t\"admin/validatePerson\",\r\n\tasync ({ person, organisation }, { dispatch }) => {\r\n\t\tconst config = CME_CONFIG[organisation];\r\n\t\tconst {\r\n\t\t\tuserId,\r\n\t\t\tfirstName,\r\n\t\t\tlastName,\r\n\t\t\temployeeId,\r\n\t\t\tjobTitle,\r\n\t\t\temail,\r\n\t\t\tpayrollGroup,\r\n\t\t} = person;\r\n\t\tlet errors = [];\r\n\t\tif (\r\n\t\t\t(!userId && config.Admin.RequireUserId) ||\r\n\t\t\t!firstName ||\r\n\t\t\t!lastName ||\r\n\t\t\t!employeeId ||\r\n\t\t\t!jobTitle ||\r\n\t\t\t!email ||\r\n\t\t\t(!payrollGroup && config.Admin.EnablePayrollGroup)\r\n\t\t)\r\n\t\t\terrors.push(\r\n\t\t\t\t\"Please fill out all mandatory fields marked with a red asterisk\"\r\n\t\t\t);\r\n\t\tdispatch(validationErrorsEdited(errors));\r\n\t\treturn errors.length;\r\n\t}\r\n);\r\n\r\nexport const postTeam = createAsyncThunk(\r\n\t\"admin/postTeam\",\r\n\tasync (data, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tawait postHierarchy(data);\r\n\t\t\treturn true;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchMigrate = createAsyncThunk(\r\n\t\"admin/migrate\",\r\n\tasync (\r\n\t\t{ userId, migrateUserId, organisationHierarchyId },\r\n\t\t{ rejectWithValue }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tawait migrate({ userId, migrateUserId, organisationHierarchyId });\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchCpeEnrolment = createAsyncThunk(\r\n\t\"admin/fetchCpeEnrolment\",\r\n\tasync (personId, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getCPEEnrolmentByPersonId({ personId });\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchPersonById = createAsyncThunk(\r\n\t\"admin/fetchPersonById\",\r\n\tasync (personId, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await searchByPersonId({ personId });\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchUserRoles = createAsyncThunk(\r\n\t\"admin/fetchUserRoles\",\r\n\tasync ({ userId }, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getUserRolesByUserIdAndAppId({\r\n\t\t\t\tuserId,\r\n\t\t\t\tappId: CME_APP_ID,\r\n\t\t\t});\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchTeamUserRoles = createAsyncThunk(\r\n\t\"admin/fetchTeamUserRoles\",\r\n\tasync ({ organisationHierarchyId, domain }, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst response = await getUsersByOrgHierarchy({\r\n\t\t\t\torganisationHierarchyId,\r\n\t\t\t\tdomain,\r\n\t\t\t\tdeepSearch: false,\r\n\t\t\t\tincludeNewUser: false,\r\n\t\t\t\tappId: CME_APP_ID,\r\n\t\t\t});\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postPerson = createAsyncThunk(\r\n\t\"admin/postPerson\",\r\n\tasync (data, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst response = await postUser(data);\r\n\t\t\tawait postUserApp({ userId: data.id, appId: CME_APP_ID });\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postCpe = createAsyncThunk(\r\n\t\"admin/postCpe\",\r\n\tasync ({ nzd, leave }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tawait processCPEEnrolmentUpdate(nzd);\r\n\t\t\tconst response = await processCPEEnrolmentUpdate(leave);\r\n\t\t\tdispatch(fetchBalanceByPersonId(nzd.personId));\r\n\t\t\tdispatch(fetchCpeEnrolment(nzd.personId));\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postDeleteCpeById = createAsyncThunk(\r\n\t\"admin/postDeleteCpeById\",\r\n\tasync ({ dollarsId, leaveId, personId }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tif (dollarsId) await deleteCPEEnrolmentById(dollarsId);\r\n\t\t\tif (leaveId) await deleteCPEEnrolmentById(leaveId);\r\n\t\t\tdispatch(fetchBalanceByPersonId(personId));\r\n\t\t\tdispatch(fetchCpeEnrolment(personId));\r\n\t\t\treturn \"success\";\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchTeams = createAsyncThunk(\r\n\t\"admin/fetchTeams\",\r\n\tasync (domain, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getChildrenByDomain({ domain });\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchTreeById = createAsyncThunk(\r\n\t\"admin/fetchTreeById\",\r\n\tasync (id, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getTreeById({\r\n\t\t\t\tid,\r\n\t\t\t});\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchTree = createAsyncThunk(\r\n\t\"admin/fetchTree\",\r\n\tasync (\r\n\t\t{ domain, allowAllSelect = true, hideChildren = false },\r\n\t\t{ rejectWithValue }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getTreeByDomain({\r\n\t\t\t\tdomain,\r\n\t\t\t\tallowAllSelect,\r\n\t\t\t\thideChildren,\r\n\t\t\t});\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchTreeParentsOnly = createAsyncThunk(\r\n\t\"admin/fetchTreeParentsOnly\",\r\n\tasync ({ domain }, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getTreeByDomain({\r\n\t\t\t\tdomain,\r\n\t\t\t\tallowAllSelect: true,\r\n\t\t\t\thideChildren: true,\r\n\t\t\t});\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchRoles = createAsyncThunk(\r\n\t\"admin/fetchRoles\",\r\n\tasync (_, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getAppRolesByAppId({ appId: CME_APP_ID });\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postTeamMembership = createAsyncThunk(\r\n\t\"admin/postTeamMembership\",\r\n\tasync (\r\n\t\t{\r\n\t\t\tid,\r\n\t\t\torganisationHierarchyId,\r\n\t\t\tuserId,\r\n\t\t\troleId,\r\n\t\t\tpriority,\r\n\t\t\tisDefault,\r\n\t\t\tstartDate,\r\n\t\t\tendDate,\r\n\t\t\tisDeleted,\r\n\t\t\tdomain,\r\n\t\t},\r\n\t\t{ rejectWithValue, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tawait postUserApp({ userId, appId: CME_APP_ID });\r\n\t\t\tawait postUserRole({\r\n\t\t\t\tid,\r\n\t\t\t\torganisationHierarchyId,\r\n\t\t\t\tuserId,\r\n\t\t\t\troleId,\r\n\t\t\t\tpriority,\r\n\t\t\t\tisDefault,\r\n\t\t\t\tstartDate,\r\n\t\t\t\tendDate,\r\n\t\t\t\tisDeleted,\r\n\t\t\t});\r\n\t\t\tawait dispatch(fetchUserRoles({ userId }));\r\n\t\t\tawait dispatch(\r\n\t\t\t\tfetchTeamUserRoles({ organisationHierarchyId, domain })\r\n\t\t\t);\r\n\t\t\treturn;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchLeaveApplications = createAsyncThunk(\r\n\t\"admin/fetchLeaveApplications\",\r\n\tasync ({ teamId, periodEnding }, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getActiveLeaveApplication({\r\n\t\t\t\tminLeaveDate: periodEnding,\r\n\t\t\t\tteamId,\r\n\t\t\t});\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postProcessLeaveRequest = createAsyncThunk(\r\n\t\"admin/postProcessLeaveRequest\",\r\n\tasync ({ formId, statusId }, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\treturn await processLeaveRequest({ formId, statusId });\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchUserDelegates = createAsyncThunk(\r\n\t\"admin/fetchUserDelegates\",\r\n\tasync ({ userId }, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst myDelegateUsers = await getDelegateUserByUserId({\r\n\t\t\t\tuserId,\r\n\t\t\t});\r\n\t\t\tconst usersDelegatedForMe = await getDelegateUserByForUserId({\r\n\t\t\t\tforUserId: userId,\r\n\t\t\t});\r\n\t\t\treturn [...myDelegateUsers, ...usersDelegatedForMe];\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postUserDelegate = createAsyncThunk(\r\n\t\"admin/postUserDelegate\",\r\n\tasync (\r\n\t\t{\r\n\t\t\tthisPersonId,\r\n\t\t\tid,\r\n\t\t\tuserId,\r\n\t\t\tdelegatedForUser,\r\n\t\t\ttype,\r\n\t\t\tstartDate,\r\n\t\t\tendDate,\r\n\t\t\tccEmail,\r\n\t\t\tisInactive = false,\r\n\t\t},\r\n\t\t{ rejectWithValue, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tawait postDelegateUser([\r\n\t\t\t\t{\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tuserId,\r\n\t\t\t\t\tdelegatedForUser,\r\n\t\t\t\t\ttype,\r\n\t\t\t\t\tstartDate,\r\n\t\t\t\t\tendDate,\r\n\t\t\t\t\tccEmail,\r\n\t\t\t\t\tisInactive,\r\n\t\t\t\t},\r\n\t\t\t]);\r\n\t\t\tawait dispatch(fetchUserDelegates({ userId: thisPersonId }));\r\n\t\t\treturn;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst initialState = {\r\n\tperson: {},\r\n\tcpeEnrolment: [],\r\n\tuserRoles: [],\r\n\tuserDelegates: [],\r\n\tteamUserRoles: [],\r\n\troles: [],\r\n\tteams: [],\r\n\tleaveApplications: [],\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n\tvalidationErrors: [],\r\n\tvalidationErrorsCpe: [],\r\n\ttree: null,\r\n\ttreeParentsOnly: null,\r\n\teditTree: {},\r\n\tpayrollForms: [],\r\n\tmigrationPendingWorkflows: [],\r\n};\r\n\r\nconst adminSlice = createSlice({\r\n\tname: \"admin\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tvalidationErrorsEdited(state, action) {\r\n\t\t\tstate.validationErrors = action.payload;\r\n\t\t},\r\n\t\terrorEdited(state, action) {\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\tvalidationErrorsCpeEdited(state, action) {\r\n\t\t\tstate.validationErrorsCpe = action.payload;\r\n\t\t},\r\n\t\tpersonEdited(state, action) {\r\n\t\t\tstate.person = action.payload;\r\n\t\t},\r\n\t\tcpeEnrolmentReceived(state, action) {\r\n\t\t\tstate.cpeEnrolment = action.payload;\r\n\t\t},\r\n\t\tuserRolesReceived(state, action) {\r\n\t\t\tstate.userRoles = action.payload;\r\n\t\t},\r\n\t\tteamEdited(state, action) {\r\n\t\t\tstate.team = action.payload;\r\n\t\t},\r\n\t\tteamUserRolesReceived(state, action) {\r\n\t\t\tstate.teamUserRoles = action.payload;\r\n\t\t},\r\n\t\tstatusEdited(state, action) {\r\n\t\t\tstate.status = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_ADMIN: (state, _) => {\r\n\t\t\tstate.person = {};\r\n\t\t\tstate.cpeEnrolment = [];\r\n\t\t\tstate.userRoles = [];\r\n\t\t\tstate.teamUserRoles = [];\r\n\t\t\tstate.leaveApplications = [];\r\n\t\t\tstate.error = null;\r\n\t\t\tstate.validationErrors = [];\r\n\t\t\tstate.validationErrorsCpe = [];\r\n\t\t\tstate.editTree = {};\r\n\t\t\tstate.payrollForms = [];\r\n\t\t\tstate.migrationPendingWorkflows = [];\r\n\t\t},\r\n\t\t[postPerson.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postPerson.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"success\";\r\n\t\t\tstate.person = action.payload;\r\n\t\t},\r\n\t\t[postPerson.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postCpe.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postCpe.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"success\";\r\n\t\t},\r\n\t\t[postCpe.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postDeleteCpeById.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postDeleteCpeById.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"success\";\r\n\t\t},\r\n\t\t[postDeleteCpeById.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postTeam.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postTeam.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"success\";\r\n\t\t},\r\n\t\t[postTeam.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postTeamMembership.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postTeamMembership.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"success\";\r\n\t\t},\r\n\t\t[postTeamMembership.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchPersonById.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchPersonById.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.person = action.payload; //set person data\r\n\t\t},\r\n\t\t[fetchPersonById.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.person = {};\r\n\t\t},\r\n\t\t[fetchTeams.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchTeams.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tconst sortedTeams = _.orderBy(action.payload, [\"name\"], [\"asc\"]);\r\n\t\t\tstate.teams = sortedTeams;\r\n\t\t},\r\n\t\t[fetchTeams.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.teams = [];\r\n\t\t},\r\n\t\t[fetchRoles.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchRoles.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tconst sortedRoles = _.orderBy(\r\n\t\t\t\taction.payload,\r\n\t\t\t\t[\"roleName\"],\r\n\t\t\t\t[\"asc\"]\r\n\t\t\t);\r\n\t\t\tstate.roles = sortedRoles;\r\n\t\t},\r\n\t\t[fetchRoles.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.roles = [];\r\n\t\t},\r\n\t\t[fetchUserRoles.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchUserRoles.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tconst sortedUserRoles = _.orderBy(\r\n\t\t\t\taction.payload,\r\n\t\t\t\t[\"organisationHierarchyName\", \"roleName\"],\r\n\t\t\t\t[\"asc\", \"asc\"]\r\n\t\t\t);\r\n\t\t\tstate.userRoles = sortedUserRoles;\r\n\t\t},\r\n\t\t[fetchUserRoles.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.userRoles = {};\r\n\t\t},\r\n\t\t[fetchTeamUserRoles.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchTeamUserRoles.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tconst sorted = _.orderBy(\r\n\t\t\t\taction.payload,\r\n\t\t\t\t[\"fullName\", \"roleName\"],\r\n\t\t\t\t[\"asc\", \"asc\"]\r\n\t\t\t);\r\n\t\t\tstate.teamUserRoles = sorted;\r\n\t\t},\r\n\t\t[fetchTeamUserRoles.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.teamUserRoles = {};\r\n\t\t},\r\n\t\t[fetchCpeEnrolment.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchCpeEnrolment.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.cpeEnrolment = action.payload; //set cpe enrolment data\r\n\t\t},\r\n\t\t[fetchCpeEnrolment.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.cpeEnrolment = [];\r\n\t\t},\r\n\t\t[fetchLeaveApplications.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchLeaveApplications.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.leaveApplications = action.payload;\r\n\t\t},\r\n\t\t[fetchLeaveApplications.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.leaveApplications = [];\r\n\t\t},\r\n\t\t[postProcessLeaveRequest.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postProcessLeaveRequest.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"success\";\r\n\t\t},\r\n\t\t[postProcessLeaveRequest.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchUserDelegates.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchUserDelegates.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.userDelegates = action.payload;\r\n\t\t},\r\n\t\t[fetchUserDelegates.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.userDelegates = [];\r\n\t\t},\r\n\t\t[fetchMigrate.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchMigrate.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"success\";\r\n\t\t},\r\n\t\t[fetchMigrate.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchTree.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchTree.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.tree = action.payload;\r\n\t\t},\r\n\t\t[fetchTree.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.tree = null;\r\n\t\t},\r\n\t\t[fetchTreeById.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchTreeById.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.editTree = action.payload;\r\n\t\t},\r\n\t\t[fetchTreeById.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.editTree = {};\r\n\t\t},\r\n\t\t[fetchTreeParentsOnly.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchTreeParentsOnly.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.treeParentsOnly = action.payload;\r\n\t\t},\r\n\t\t[fetchTreeParentsOnly.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.treeParentsOnly = null;\r\n\t\t},\r\n\t\t[fetchPayrollForms.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchPayrollForms.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.payrollForms = action.payload;\r\n\t\t},\r\n\t\t[fetchPayrollForms.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.payrollForms = null;\r\n\t\t},\r\n\t\t[fetchMigrationPendingWorkflows.fulfilled]: (state, action) => {\r\n\t\t\tstate.migrationPendingWorkflows = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const {\r\n\tpersonEdited,\r\n\tcpeEnrolmentReceived,\r\n\tuserRolesReceived,\r\n\tteamUserRolesReceived,\r\n\tvalidationErrorsEdited,\r\n\terrorEdited,\r\n\tvalidationErrorsCpeEdited,\r\n\tstatusEdited,\r\n} = adminSlice.actions;\r\n\r\nexport const selectAdminPerson = (state) => state.cme.admin.person;\r\nexport const selectAdminCpeEnrolment = (state) => state.cme.admin.cpeEnrolment;\r\nexport const selectAdminUserRoles = (state) => state.cme.admin.userRoles;\r\nexport const selectAdminUserDelegates = (state) =>\r\n\tstate.cme.admin.userDelegates;\r\nexport const selectAdminTeamUserRoles = (state) =>\r\n\tstate.cme.admin.teamUserRoles;\r\nexport const selectAdminTeams = (state) => state.cme.admin.teams;\r\nexport const selectAdminRoles = (state) => state.cme.admin.roles;\r\nexport const selectAdminLeaveApplications = (state) =>\r\n\tstate.cme.admin.leaveApplications;\r\n\r\nexport const selectAdminStatus = (state) => state.cme.admin.status;\r\nexport const selectAdminValidationErrors = (state) =>\r\n\tstate.cme.admin.validationErrors;\r\nexport const selectAdminValidationErrorsCpe = (state) =>\r\n\tstate.cme.admin.validationErrorsCpe;\r\nexport const selectAdminError = (state) => state.cme.admin.error;\r\n\r\nexport const selectAdminCpeData = createSelector(\r\n\t[selectAdminCpeEnrolment],\r\n\t(data) => {\r\n\t\tconst today = dayjs();\r\n\t\t//distinct rows of start dates so we can render a table of CPE history\r\n\t\tconst startDates =\r\n\t\t\tdata && data.length > 0\r\n\t\t\t\t? [\r\n\t\t\t\t\t\t...new Set(\r\n\t\t\t\t\t\t\tdata\r\n\t\t\t\t\t\t\t\t.map((d) => d.startDate)\r\n\t\t\t\t\t\t\t\t.sort((a, b) => (a < b ? 1 : a > b ? -1 : 0))\r\n\t\t\t\t\t\t),\r\n\t\t\t\t ]\r\n\t\t\t\t: [];\r\n\r\n\t\tconst rows =\r\n\t\t\tstartDates && startDates.length > 0\r\n\t\t\t\t? startDates.map((startDate) => {\r\n\t\t\t\t\t\tconst dollars = data.find(\r\n\t\t\t\t\t\t\t(d) => d.startDate === startDate && d.unit === \"NZD\"\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tconst leave = data.find(\r\n\t\t\t\t\t\t\t(d) =>\r\n\t\t\t\t\t\t\t\td.startDate === startDate &&\r\n\t\t\t\t\t\t\t\t[\"Days\", \"DAYS\", \"Hours\"].includes(d.unit)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tleaveUnit: leave?.unit,\r\n\t\t\t\t\t\t\tpersonId: dollars?.personId ?? leave?.personId,\r\n\t\t\t\t\t\t\ttype: dollars?.type ?? leave?.type,\r\n\t\t\t\t\t\t\tisManualEnrolment:\r\n\t\t\t\t\t\t\t\tdollars?.isManualEnrolment ??\r\n\t\t\t\t\t\t\t\tleave?.isManualEnrolment,\r\n\t\t\t\t\t\t\tisAlternateEmploy:\r\n\t\t\t\t\t\t\t\tdollars?.isAlternateEmploy ??\r\n\t\t\t\t\t\t\t\tleave?.isAlternateEmploy,\r\n\t\t\t\t\t\t\tspecialPlanYears:\r\n\t\t\t\t\t\t\t\tdollars?.specialPlanYears ??\r\n\t\t\t\t\t\t\t\tleave?.specialPlanYears,\r\n\t\t\t\t\t\t\tfte: dollars?.qualifyingFTE ?? leave?.qualifyingFTE,\r\n\t\t\t\t\t\t\tstartDate: dollars?.startDate ?? leave?.startDate,\r\n\t\t\t\t\t\t\tendDate: dollars?.endDate ?? leave?.endDate,\r\n\t\t\t\t\t\t\tentitlementAmount: dollars?.entitlementAmount,\r\n\t\t\t\t\t\t\tentitlementAmountLeave: leave?.entitlementAmount,\r\n\t\t\t\t\t\t\tcalculatedAmount:\r\n\t\t\t\t\t\t\t\tdollars?.calculatedEntitlementAmount,\r\n\t\t\t\t\t\t\tcalculatedAmountLeave:\r\n\t\t\t\t\t\t\t\tleave?.calculatedEntitlementAmount,\r\n\t\t\t\t\t\t\tdollarsId: dollars?.personCPEEnrolmentId,\r\n\t\t\t\t\t\t\tleaveId: leave?.personCPEEnrolmentId,\r\n\t\t\t\t\t\t\tisTermination:\r\n\t\t\t\t\t\t\t\tdollars?.isTermination ?? leave?.isTermination,\r\n\t\t\t\t\t\t\tisActive:\r\n\t\t\t\t\t\t\t\ttoday >=\r\n\t\t\t\t\t\t\t\t\tdayjs(\r\n\t\t\t\t\t\t\t\t\t\tdollars?.startDate ?? leave?.startDate,\r\n\t\t\t\t\t\t\t\t\t\t\"YYYY-MM-DD\"\r\n\t\t\t\t\t\t\t\t\t) &&\r\n\t\t\t\t\t\t\t\ttoday <=\r\n\t\t\t\t\t\t\t\t\tdayjs(\r\n\t\t\t\t\t\t\t\t\t\tdollars?.endDate ?? leave?.endDate,\r\n\t\t\t\t\t\t\t\t\t\t\"YYYY-MM-DD\"\r\n\t\t\t\t\t\t\t\t\t) &&\r\n\t\t\t\t\t\t\t\t!(\r\n\t\t\t\t\t\t\t\t\tdollars?.isTermination ??\r\n\t\t\t\t\t\t\t\t\tleave?.isTermination\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\tproratedFte:\r\n\t\t\t\t\t\t\t\t//CPD is always 1, no matter what\r\n\t\t\t\t\t\t\t\t(dollars?.type ?? leave?.type) === \"CPD\"\r\n\t\t\t\t\t\t\t\t\t? 1\r\n\t\t\t\t\t\t\t\t\t: dollars?.isAlternateEmploy ??\r\n\t\t\t\t\t\t\t\t\t leave?.isAlternateEmploy\r\n\t\t\t\t\t\t\t\t\t? (dollars?.qualifyingFTE ??\r\n\t\t\t\t\t\t\t\t\t\t\tleave?.qualifyingFTE) > 1\r\n\t\t\t\t\t\t\t\t\t\t? 1\r\n\t\t\t\t\t\t\t\t\t\t: dollars?.qualifyingFTE ??\r\n\t\t\t\t\t\t\t\t\t\t leave?.qualifyingFTE\r\n\t\t\t\t\t\t\t\t\t: 1,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t })\r\n\t\t\t\t: [];\r\n\r\n\t\treturn rows;\r\n\t}\r\n);\r\n\r\nexport const selectAdminActiveCpeData = createSelector(\r\n\t[selectAdminCpeData],\r\n\t(data) => {\r\n\t\treturn data && data.length > 0\r\n\t\t\t? data.find((r) => r.isActive) ?? data[0]\r\n\t\t\t: null;\r\n\t}\r\n);\r\n\r\nexport const selectAdminTree = (state) => state.cme.admin.tree;\r\nexport const selectAdminTreeParentsOnly = (state) =>\r\n\tstate.cme.admin.treeParentsOnly;\r\nexport const selectAdminEditTree = (state) => state.cme.admin.editTree;\r\n\r\nexport const selectPayrollForms = (state) => state.cme.admin.payrollForms;\r\n\r\nexport const selectMigrationPendingWorkflows = (state) =>\r\n\tstate.cme.admin.migrationPendingWorkflows;\r\n\r\nexport default adminSlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateEntityAdapter,\r\n\tcreateAsyncThunk,\r\n\tcreateSelector,\r\n} from \"@reduxjs/toolkit\";\r\nimport {\r\n\tgetAttachmentsByFormId,\r\n\tgetCMEAttachmentById,\r\n\tpostAttachment as post,\r\n} from \"api\";\r\nimport { downloadFile } from \"utils/common\";\r\n\r\nexport const fetchAttachmentById = createAsyncThunk(\r\n\t\"cmeAttachments/fetchAttachmentById\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (attachmentId, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tdownloadFile(await getCMEAttachmentById({ attachmentId }));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchAttachmentByFormId = createAsyncThunk(\r\n\t\"cmeAttachments/fetchAttachmentByFormId\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (formId, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getAttachmentsByFormId({ formId });\r\n\t\t\tdispatch(attachmentReceived(data));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postAttachment = createAsyncThunk(\r\n\t\"cmeAttachments/postAttachment\",\r\n\tasync (data, { dispatch, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst response = await post(data);\r\n\t\t\tdispatch(attachmentReceived(response));\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst attachmentAdapter = createEntityAdapter({\r\n\tselectId: (attachment) => attachment.attachmentId,\r\n});\r\n\r\nexport const ATTACHMENT_LINE_TEMPLATE = {\r\n\tattachmentId: 0,\r\n\tformId: 0,\r\n\tlineId: 0,\r\n\tfileName: null,\r\n\tfileContent: null,\r\n\tfileType: null,\r\n\tfileId: null,\r\n\tfileLink: null,\r\n\tisDeleted: false,\r\n};\r\n\r\nconst initialState = attachmentAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nconst attachmentSlice = createSlice({\r\n\tname: \"cmeAttachments\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tattachmentReceived(state, action) {\r\n\t\t\tattachmentAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t\tattachmentUpserted(state, action) {\r\n\t\t\tif (action.payload.isDeleted) {\r\n\t\t\t\tattachmentAdapter.removeOne(state, action.payload.attachmentId);\r\n\t\t\t} else {\r\n\t\t\t\tattachmentAdapter.upsertOne(state, action);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_CME: (state, action) => {\r\n\t\t\treturn initialState;\r\n\t\t},\r\n\t\t[postAttachment.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postAttachment.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t},\r\n\t\t[postAttachment.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchAttachmentById.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchAttachmentById.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t},\r\n\t\t[fetchAttachmentById.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { attachmentReceived, attachmentUpserted } =\r\n\tattachmentSlice.actions;\r\n\r\nexport const {\r\n\tselectAll: selectAllAttachment,\r\n\tselectIds: selectAttachmentIds,\r\n\tselectById: selectAttachmentById,\r\n} = attachmentAdapter.getSelectors((state) => state?.cme?.attachments);\r\n\r\nexport const createSelectAttachmentByRequestId = (requestId) => {\r\n\treturn createSelector([selectAllAttachment], (attachments) => {\r\n\t\treturn attachments.filter((a) => a.lineId === requestId);\r\n\t});\r\n};\r\n\r\nexport default attachmentSlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateAsyncThunk,\r\n\tcreateSelector,\r\n} from \"@reduxjs/toolkit\";\r\nimport {\r\n\tgetBalanceByPersonId,\r\n\tgetOpenCommitmentByPersonId,\r\n\tgetTransByPersonIdAndPeriodDate,\r\n\tpostTrans as post,\r\n} from \"api\";\r\nimport dayjs from \"dayjs\";\r\nimport { selectUserOrganisation } from \"reducers/securitySlice\";\r\nimport { WAITEMATA } from \"../constants\";\r\n\r\nexport const fetchBalanceByPersonId = createAsyncThunk(\r\n\t\"balance/fetchBalanceByPersonId\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (personId, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getBalanceByPersonId({ personId });\r\n\t\t\tdispatch(balanceReceived(data));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchOpenCommitmentByPersonId = createAsyncThunk(\r\n\t\"balance/fetchOpenCommitmentByPersonId\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (personId, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getOpenCommitmentByPersonId({ personId });\r\n\t\t\tdispatch(openCommitmentReceived(data));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst getFinancialEndDate = (org) => {\r\n\tconst today = dayjs();\r\n\r\n\t//for waitemata, it's always end of calendar year\r\n\tif (org === WAITEMATA) return today.month(12).date(1).format(\"YYYY-MM-DD\");\r\n\r\n\tlet year;\r\n\tlet month = \"06\";\r\n\tlet day = \"01\";\r\n\r\n\t//for counties, must calculate financial year\r\n\t//months are zero indexed\r\n\tif (today.month() + 1 >= 7) year = today.year() + 1;\r\n\telse year = today.year();\r\n\r\n\treturn `${year}-${month}-${day}`;\r\n};\r\n\r\nexport const fetchTrans = createAsyncThunk(\r\n\t\"balance/fetchTrans\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (\r\n\t\t{ personId, periodDate },\r\n\t\t{ getState, rejectWithValue, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tconst org = selectUserOrganisation(getState());\r\n\t\t\tconst periodDate = getFinancialEndDate(org);\r\n\t\t\tconst data = await getTransByPersonIdAndPeriodDate({\r\n\t\t\t\tpersonId,\r\n\t\t\t\tperiodDate,\r\n\t\t\t});\r\n\t\t\tdispatch(transReceived(data));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postTrans = createAsyncThunk(\r\n\t\"balance/postTrans\",\r\n\tasync (data, { dispatch, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst { personId } = data;\r\n\t\t\tawait post(data);\r\n\t\t\tawait dispatch(fetchBalanceByPersonId(personId));\r\n\t\t\tawait dispatch(fetchTrans({ personId }));\r\n\t\t\treturn true;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst initialState = {\r\n\tstatus: \"starting\",\r\n\terror: null,\r\n\tbalance: [],\r\n\ttrans: [],\r\n\topenCommitment: [],\r\n};\r\n\r\nconst balanceSlice = createSlice({\r\n\tname: \"balance\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tbalanceReceived(state, action) {\r\n\t\t\tstate.balance = [...action.payload];\r\n\t\t},\r\n\t\ttransReceived(state, action) {\r\n\t\t\tstate.trans = [...action.payload];\r\n\t\t},\r\n\t\topenCommitmentReceived(state, action) {\r\n\t\t\tstate.openCommitment = [...action.payload];\r\n\t\t},\r\n\t\ttranAdded(state, action) {\r\n\t\t\tstate.trans.push(action.payload);\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_CME: (state, action) => {\r\n\t\t\treturn initialState;\r\n\t\t},\r\n\t\t[fetchBalanceByPersonId.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchBalanceByPersonId.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t},\r\n\t\t[fetchBalanceByPersonId.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postTrans.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postTrans.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t},\r\n\t\t[postTrans.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchOpenCommitmentByPersonId.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchOpenCommitmentByPersonId.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t},\r\n\t\t[fetchOpenCommitmentByPersonId.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchTrans.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchTrans.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t},\r\n\t\t[fetchTrans.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const {\r\n\tbalanceReceived,\r\n\ttransReceived,\r\n\topenCommitmentReceived,\r\n\ttranAdded,\r\n} = balanceSlice.actions;\r\n\r\nexport const selectBalanceStatus = (state) => state.cme.balance.status;\r\nexport const selectBalances = (state) => state.cme.balance.balance;\r\n\r\nexport const selectBalanceType = createSelector([selectBalances], (b) => {\r\n\treturn b[0]?.type;\r\n});\r\n\r\nexport const selectBalanceDollar = createSelector([selectBalances], (b) => {\r\n\treturn b.find((i) => i.unit === \"NZD\")?.closeBalance || 0;\r\n});\r\nexport const selectBalanceHours = createSelector([selectBalances], (b) => {\r\n\treturn b.find((i) => [\"Hours\"].includes(i.unit))?.closeBalance || 0;\r\n});\r\nexport const selectBalanceDays = createSelector([selectBalances], (b) => {\r\n\treturn b.find((i) => [\"Days\", \"DAYS\"].includes(i.unit))?.closeBalance || 0;\r\n});\r\nexport const selectTrans = (state) => state.cme.balance.trans;\r\nexport const selectTransDollar = createSelector([selectTrans], (t) =>\r\n\tt.filter((f) => f.unit === \"NZD\")\r\n);\r\nexport const selectTransLeave = createSelector([selectTrans], (t) =>\r\n\tt.filter((f) => [\"Days\", \"DAYS\", \"Hours\"].includes(f.unit))\r\n);\r\n\r\nexport const selectOpenCommitment = (state) => state.cme.balance.openCommitment;\r\nexport const selectOpenDollar = createSelector([selectOpenCommitment], (o) =>\r\n\to.reduce((acc, val) => {\r\n\t\treturn val.unit === \"NZD\" ? acc + val.openCommitment : acc;\r\n\t}, 0)\r\n);\r\nexport const selectOpenLeave = createSelector([selectOpenCommitment], (o) =>\r\n\to.reduce((acc, val) => {\r\n\t\treturn [\"Days\", \"DAYS\", \"Hours\"].includes(val.unit)\r\n\t\t\t? acc + val.openCommitment\r\n\t\t\t: acc;\r\n\t}, 0)\r\n);\r\n\r\nexport default balanceSlice.reducer;\r\n","export const COUNTIES_MANUKAU = \"Counties Manukau\";\r\nexport const WAITEMATA = \"Waitemata\";\r\nexport const CME_APP_ID = \"0ED4A6FB-DE60-4020-8E02-E82EBEF1E3AA\";\r\nexport const REQUEST_FORM_DEFINITION_ID =\r\n\t\"0C36599D-2330-41E9-9CDB-809EA5248F32\";\r\nexport const CPE_FORM_DEFINITION_ID = \"05F234C8-11F7-44D1-9E18-C1770D489D40\";\r\nexport const CPD_COURSE_CLAIM_FORM_DEFINITION_ID =\r\n\t\"1986AEB4-1BB4-4CA8-9B4D-A932DC65F15C\";\r\n\r\nexport const CME_CONFIG = {\r\n\tWDHB: {\r\n\t\t//IT\r\n\t\tItClaimLimitWithoutPreapproval: 1000,\r\n\t\tItClaimLineLimit: 999999,\r\n\t\tClinicalEquipmentEnabled: true,\r\n\t\tApprovalBeforeCmoLimit: 10000,\r\n\t\t//WRE\r\n\t\tWreEnabled: false,\r\n\t\t//Workflows\r\n\t\tWorkflowEnableAdd: false,\r\n\t\t//CPD\r\n\t\tCpdEnabled: true,\r\n\t\t//General\r\n\t\tCmeSupportEmail: \"CMEQueries@waitematadhb.govt.nz\",\r\n\t\tDisableCmeXMonthsBeforeEndDate: 0,\r\n\t\tAllowCancellingRequests: true,\r\n\t\tFinanceApproverIfOverLimit: true,\r\n\t\tAdmin: {\r\n\t\t\tEnablePayrollGroup: false,\r\n\t\t\tRequireUserId: true,\r\n\t\t},\r\n\t},\r\n\t\"Counties Manukau\": {\r\n\t\t//IT\r\n\t\tItClaimLimitWithoutPreapproval: 450,\r\n\t\tItClaimLineLimit: 5000,\r\n\t\tClinicalEquipmentEnabled: false,\r\n\t\tApprovalBeforeCmoLimit: 999999,\r\n\t\t//WRE\r\n\t\tWreEnabled: true,\r\n\t\t//Workflows\r\n\t\tWorkflowEnableAdd: true,\r\n\t\t//CPD\r\n\t\tCpdEnabled: true,\r\n\t\t//General\r\n\t\tCmeSupportEmail: \"CME.WRE.Claims@middlemore.co.nz\",\r\n\t\tDisableCmeXMonthsBeforeEndDate: 3,\r\n\t\tAllowCancellingRequests: false,\r\n\t\tFinanceApproverIfOverLimit: false,\r\n\t\tAdmin: {\r\n\t\t\tEnablePayrollGroup: false,\r\n\t\t\tRequireUserId: true,\r\n\t\t},\r\n\t},\r\n\tNorthland: {\r\n\t\t//IT\r\n\t\tItClaimLimitWithoutPreapproval: 1000,\r\n\t\tItClaimLineLimit: 999999,\r\n\t\tClinicalEquipmentEnabled: true,\r\n\t\tApprovalBeforeCmoLimit: 10000,\r\n\t\t//WRE\r\n\t\tWreEnabled: false,\r\n\t\t//Workflows\r\n\t\tWorkflowEnableAdd: false,\r\n\t\t//CPD\r\n\t\tCpdEnabled: true,\r\n\t\t//General\r\n\t\tCmeSupportEmail: \"SMOCMENorthland@northlanddhb.org.nz\",\r\n\t\tDisableCmeXMonthsBeforeEndDate: 0,\r\n\t\tAllowCancellingRequests: true,\r\n\t\tFinanceApproverIfOverLimit: false,\r\n\t\tAdmin: {\r\n\t\t\tEnablePayrollGroup: true,\r\n\t\t\tRequireUserId: false,\r\n\t\t},\r\n\t},\r\n};\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport dayjs from \"dayjs\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nconst defaultDateString = dayjs().format(\"DD/MM/YYYY\");\r\nconst defaultDate = dayjs().format(\"YYYY-MM-DD\");\r\n\r\nexport const getCpdCourseForm = () => {\r\n\treturn {\r\n\t\tid: uuidv4(),\r\n\t\tformId: 0,\r\n\t\tformTypeId: 9,\r\n\t\ttitle: \"New Course Claim - \" + defaultDateString,\r\n\t\tstartDate: defaultDate,\r\n\t\tendDate: \"9999-12-31\",\r\n\t\tstatusId: 1,\r\n\t\tpersonId: null, //auto set by backend\r\n\t\tbusinessUnitId: 0,\r\n\t\tcompanyId: 0,\r\n\t\tcourseName: null,\r\n\t\tcourseDetails: null,\r\n\t\tcourseLocation: null,\r\n\t\tleaveComments: null,\r\n\t\tcourseIsOverseas: null,\r\n\t\tcourseCountryLookupId: null,\r\n\t\tsubmitIsSupportingDocumentsAttached: null,\r\n\t\tsubmitIsNZDGST: null,\r\n\t\tisPersonConsentGiven: null,\r\n\t\tisDeleted: false,\r\n\t};\r\n};\r\nexport const getCpeForm = () => {\r\n\treturn {\r\n\t\tid: uuidv4(),\r\n\t\tformId: 0,\r\n\t\tformTypeId: 1,\r\n\t\ttitle: \"New Course Request - \" + defaultDateString,\r\n\t\tstartDate: defaultDate,\r\n\t\tendDate: \"9999-12-31\",\r\n\t\tstatusId: 1,\r\n\t\tpersonId: null, //auto set by backend\r\n\t\tbusinessUnitId: 0,\r\n\t\tcompanyId: 0,\r\n\t\tcourseName: null,\r\n\t\tcourseDetails: null,\r\n\t\tcourseLocation: null,\r\n\t\tleaveComments: null,\r\n\t\tcourseIsOverseas: null,\r\n\t\tcourseCountryLookupId: null,\r\n\t\tsubmitIsSupportingDocumentsAttached: null,\r\n\t\tsubmitIsNZDGST: null,\r\n\t\tisPersonConsentGiven: null,\r\n\t\tisDeleted: false,\r\n\t};\r\n};\r\n\r\nexport const validateCpeForm = createAsyncThunk(\r\n\t\"cpeForm/validateCpeForm\",\r\n\tasync (_, { dispatch, getState }) => {\r\n\t\tconst state = getState();\r\n\t\tconst {\r\n\t\t\tcourseName,\r\n\t\t\tcourseIsOverseas,\r\n\t\t\tcourseCountryLookupId,\r\n\t\t\tisAnnualLeave,\r\n\t\t\tannualLeaveDates,\r\n\t\t} = selectCpeFormData(state);\r\n\t\tlet errors = [];\r\n\t\tif (!courseName) errors.push(\"Course name is required\");\r\n\t\tif (courseIsOverseas && !courseCountryLookupId)\r\n\t\t\terrors.push(\"Country is required if course is overseas\");\r\n\t\tif (isAnnualLeave === null || isAnnualLeave === undefined) {\r\n\t\t\terrors.push(\"Annual leave plan is required\");\r\n\t\t}\r\n\t\tif (isAnnualLeave && !annualLeaveDates) {\r\n\t\t\terrors.push(\"Annual leave dates are required\");\r\n\t\t}\r\n\t\tdispatch(validationErrorsEdited(errors.length));\r\n\t\tdispatch(validationErrorListEdited(errors));\r\n\t\treturn errors.length;\r\n\t}\r\n);\r\n\r\nconst initialState = {\r\n\terror: null,\r\n\tdata: {\r\n\t\t...getCpeForm(),\r\n\t},\r\n\tvalidationErrors: 0,\r\n\tvalidationErrorList: [],\r\n};\r\n\r\nconst cpeFormSlice = createSlice({\r\n\tname: \"cpeForm\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tcpeFormReceived(state, action) {\r\n\t\t\tstate.data = action.payload;\r\n\t\t},\r\n\t\tcpeFormEdited(state, action) {\r\n\t\t\tconst { id, value } = action.payload;\r\n\t\t\tstate.data[id] = value;\r\n\t\t\tif (id === \"courseName\") {\r\n\t\t\t\tstate.data.title = `${value} - ${dayjs(state.startDate).format(\r\n\t\t\t\t\t\"DD/MM/YYYY\"\r\n\t\t\t\t)}`;\r\n\t\t\t}\r\n\t\t},\r\n\t\tvalidationErrorsEdited(state, action) {\r\n\t\t\tstate.validationErrors = action.payload;\r\n\t\t},\r\n\t\tvalidationErrorListEdited(state, action) {\r\n\t\t\tstate.validationErrorList = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_CME: (state, action) => {\r\n\t\t\treturn initialState;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const {\r\n\tcpeFormEdited,\r\n\tcpeFormReceived,\r\n\tvalidationErrorsEdited,\r\n\tvalidationErrorListEdited,\r\n} = cpeFormSlice.actions;\r\n\r\nexport const selectCpeFormData = (state) => state.cme.cpeForm.data;\r\nexport const selectCpeFormId = (state) => state.cme.cpeForm.data.formId;\r\nexport const selectCpeFormLeaveComments = (state) =>\r\n\tstate.cme.cpeForm.data.leaveComments;\r\nexport const selectCpeFormValidationErrorList = (state) =>\r\n\tstate.cme.cpeForm.validationErrorList;\r\n\r\nexport default cpeFormSlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateAsyncThunk,\r\n\tcreateSelector,\r\n} from \"@reduxjs/toolkit\";\r\nimport { getFormApproval, getLeaveReport, updateFormIsRostered } from \"api\";\r\n\r\nexport const fetchLeaveReport = createAsyncThunk(\r\n\t\"formApproval/fetchLeaveReport\",\r\n\tasync ({ leaveFrom, leaveTo }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst response = await getLeaveReport({\r\n\t\t\t\tleaveFrom,\r\n\t\t\t\tleaveTo,\r\n\t\t\t});\r\n\t\t\tdispatch(leaveReportReceived(response));\r\n\t\t\treturn true;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchFormApproval = createAsyncThunk(\r\n\t\"formApproval/fetchFormApproval\",\r\n\tasync (\r\n\t\t{\r\n\t\t\tapproverId,\r\n\t\t\tpersonId,\r\n\t\t\tworkflowWaitingOnId,\r\n\t\t\tformTypeId,\r\n\t\t\tincludeHistory,\r\n\t\t},\r\n\t\t{ rejectWithValue, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tconst response = await getFormApproval({\r\n\t\t\t\tapproverId,\r\n\t\t\t\tpersonId,\r\n\t\t\t\tworkflowWaitingOnId,\r\n\t\t\t\tformTypeId,\r\n\t\t\t\tincludeHistory,\r\n\t\t\t});\r\n\t\t\tdispatch(formApprovalReceived(response));\r\n\t\t\treturn true;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postIsRostered = createAsyncThunk(\r\n\t\"formApproval/postIsRostered\",\r\n\tasync ({ id, isRostered }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tawait updateFormIsRostered({\r\n\t\t\t\tformGuid: id,\r\n\t\t\t\tisRostered,\r\n\t\t\t});\r\n\t\t\treturn { id, isRostered };\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst initialState = {\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n\tdata: [],\r\n\tleaveReportData: [],\r\n};\r\n\r\nconst formApprovalSlice = createSlice({\r\n\tname: \"formApproval\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tformApprovalReceived(state, action) {\r\n\t\t\tstate.data = action.payload;\r\n\t\t},\r\n\t\tleaveReportReceived(state, action) {\r\n\t\t\tstate.leaveReportData = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\t[fetchFormApproval.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchFormApproval.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchFormApproval.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchLeaveReport.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchLeaveReport.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchLeaveReport.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postIsRostered.pending]: (state, action) => {\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postIsRostered.fulfilled]: (state, action) => {\r\n\t\t\tconst { id, isRostered } = action.payload;\r\n\t\t\tconst form = state.data.find((form) => form.id === id);\r\n\t\t\tform.isRostered = isRostered;\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postIsRostered.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { formApprovalReceived, leaveReportReceived } =\r\n\tformApprovalSlice.actions;\r\n\r\nexport const selectFormApproval = (state) => state.cme.formApproval.data;\r\n\r\nexport const selectLeaveReport = (state) =>\r\n\tstate.cme.formApproval.leaveReportData;\r\n\r\nexport const selectFormApprovalWaitingOn = createSelector(\r\n\t[selectFormApproval],\r\n\t(data) => {\r\n\t\tlet response = [];\r\n\t\tdata.forEach((d) => {\r\n\t\t\tif (!response.some((r) => r === d.workflowWaitingOnId))\r\n\t\t\t\tresponse.push(d.workflowWaitingOnId);\r\n\t\t});\r\n\t\treturn response\r\n\t\t\t.map((r) => {\r\n\t\t\t\tlet record = data.find((d) => d.workflowWaitingOnId === r);\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: record.workflowWaitingOnId,\r\n\t\t\t\t\tfullName: record.workflowWaitingOn,\r\n\t\t\t\t};\r\n\t\t\t})\r\n\t\t\t.sort((a, b) =>\r\n\t\t\t\ta.fullName < b.fullName ? -1 : a.fullName > b.fullName ? 1 : 0\r\n\t\t\t);\r\n\t}\r\n);\r\n\r\nexport const selectFormApprovalFrom = createSelector(\r\n\t[selectFormApproval],\r\n\t(data) => {\r\n\t\tlet response = [];\r\n\t\tdata.forEach((d) => {\r\n\t\t\tif (!response.some((r) => r === d.personId))\r\n\t\t\t\tresponse.push(d.personId);\r\n\t\t});\r\n\t\treturn response\r\n\t\t\t.map((r) => {\r\n\t\t\t\tlet record = data.find((d) => d.personId === r);\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: record.personId,\r\n\t\t\t\t\tfullName: record.personName,\r\n\t\t\t\t};\r\n\t\t\t})\r\n\t\t\t.sort((a, b) =>\r\n\t\t\t\ta.fullName < b.fullName ? -1 : a.fullName > b.fullName ? 1 : 0\r\n\t\t\t);\r\n\t}\r\n);\r\n\r\nexport const selectFormApprovalStatus = (state) =>\r\n\tstate.cme.formApproval.status;\r\nexport const selectFormApprovalError = (state) => state.cme.formApproval.error;\r\n\r\nexport default formApprovalSlice.reducer;\r\n","import { createSlice, createSelector } from \"@reduxjs/toolkit\";\r\nimport {\r\n\tselectCmeForUserTeam,\r\n\tselectCmeUserTeam,\r\n} from \"reducers/securitySlice\";\r\nimport { selectAdminPerson } from \"../admin/adminSlice\";\r\nimport { CME_APP_ID } from \"../constants\";\r\n\r\nconst initialState = {\r\n\torganisationId: null,\r\n\tappHierarchyId: CME_APP_ID,\r\n};\r\n\r\nconst formTeamSlice = createSlice({\r\n\tname: \"formTeam\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tformTeamEdited(state, action) {\r\n\t\t\t//handle null form team return\r\n\t\t\tconst formTeam = { ...initialState, ...action.payload };\r\n\t\t\tObject.entries(formTeam).forEach(([key, value]) => {\r\n\t\t\t\tstate[key] = value;\r\n\t\t\t});\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_CME: () => {\r\n\t\t\treturn initialState;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { formTeamEdited } = formTeamSlice.actions;\r\n\r\nexport const selectFormTeamId = (state) => state.cme.formTeam.organisationId;\r\n\r\nexport const selectDefaultFormTeam = createSelector(\r\n\t[selectCmeUserTeam],\r\n\t(teams) => {\r\n\t\tconst defaultTeam = teams.find((t) => t.isDefault);\r\n\t\treturn defaultTeam\r\n\t\t\t? {\r\n\t\t\t\t\torganisationId: defaultTeam.organisationHierarchyId,\r\n\t\t\t\t\tappHierarchyId: CME_APP_ID,\r\n\t\t\t }\r\n\t\t\t: {\r\n\t\t\t\t\torganisationId: teams[0]?.organisationHierarchyId,\r\n\t\t\t\t\tappHierarchyId: CME_APP_ID,\r\n\t\t\t };\r\n\t}\r\n);\r\n\r\nexport const selectForUserDefaultFormTeam = createSelector(\r\n\t[selectCmeForUserTeam],\r\n\t(teams) => {\r\n\t\tconst defaultTeam = teams.find((t) => t.isDefault);\r\n\t\treturn defaultTeam\r\n\t\t\t? {\r\n\t\t\t\t\torganisationId: defaultTeam.organisationHierarchyId,\r\n\t\t\t\t\tappHierarchyId: CME_APP_ID,\r\n\t\t\t }\r\n\t\t\t: {\r\n\t\t\t\t\torganisationId: teams[0]?.organisationHierarchyId,\r\n\t\t\t\t\tappHierarchyId: CME_APP_ID,\r\n\t\t\t };\r\n\t}\r\n);\r\n\r\nexport const selectFormTeam = createSelector(\r\n\t[\r\n\t\t(state) => state.cme.formTeam,\r\n\t\tselectDefaultFormTeam,\r\n\t\tselectForUserDefaultFormTeam,\r\n\t\tselectAdminPerson,\r\n\t],\r\n\t(formTeam, defaultFormTeam, forUserDefaultFormTeam, adminPerson) => {\r\n\t\t//if form has been saved previously, form team will be present\r\n\t\t//default form team is based on user's permissions\r\n\t\treturn formTeam?.organisationId\r\n\t\t\t? formTeam\r\n\t\t\t: adminPerson?.personId\r\n\t\t\t? forUserDefaultFormTeam //if admin person is there, it means it's an admin acting on behalf - forUser defautls\r\n\t\t\t: defaultFormTeam; //otherwise we use current user's defaults\r\n\t}\r\n);\r\n\r\nexport default formTeamSlice.reducer;\r\n","import React, { useState } from \"react\";\r\nimport {\r\n\tDatePicker,\r\n\tButton,\r\n\tRow,\r\n\tCol,\r\n\tSpace,\r\n\tSpin,\r\n\tDescriptions,\r\n\tResult,\r\n\tModal,\r\n\tGrid,\r\n} from \"antd\";\r\nimport { DeleteOutlined } from \"@ant-design/icons\";\r\nimport Text from \"components/input-types/Text\";\r\nimport TextArea from \"components/input-types/TextArea\";\r\nimport Select from \"components/input-types/Select\";\r\nimport {\r\n\tdeleteLeaveLines,\r\n\tgetNewLeaveLines,\r\n\tleaveLineAdded,\r\n\tleaveLineDeleted,\r\n\tleaveLineEdited,\r\n\tselectAllLeaveLines,\r\n\tselectLeaveError,\r\n\tselectLeaveLinesStatus,\r\n} from \"./leaveLineSlice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n\tcpeFormEdited,\r\n\tselectCpeFormLeaveComments,\r\n} from \"../cpeForm/cpeFormSlice\";\r\nimport dayjs from \"dayjs\";\r\nimport moment from \"moment\";\r\nimport { makeSelectLookupByDomainCode } from \"reducers\";\r\nimport {\r\n\tQuestionInputCol,\r\n\tQuestionLabelCol,\r\n\tSection,\r\n} from \"components/QnaComponents\";\r\nimport { postLeaveLines } from \"./leaveLineSlice\";\r\nimport InputModal from \"components/InputModal\";\r\nimport {\r\n\tselectCmeFormId,\r\n\tselectFormStatus,\r\n\tselectIsCmeLocked,\r\n} from \"reducers/formSlice\";\r\nimport HelpTooltip from \"../Components/HelpTooltip\";\r\nimport {\r\n\trequestFormEdited,\r\n\tselectRequestFormLeaveComments,\r\n} from \"../requestForm/requestFormSlice\";\r\n\r\nconst dateFormat = \"DD/MM/YYYY\";\r\n\r\nconst Leave = ({ type }) => {\r\n\tconst [dateRange, setDateRange] = useState({});\r\n\tconst [isModalVisible, setIsModalVisible] = React.useState(false);\r\n\tconst status = useSelector(selectLeaveLinesStatus);\r\n\tconst formId = useSelector(selectCmeFormId);\r\n\tconst leaveLines = useSelector(selectAllLeaveLines);\r\n\tconst dispatch = useDispatch();\r\n\tconst isDateRangeFilledOut = dateRange.from && dateRange.to;\r\n\tconst onDateRangeChange = async (dates) => {\r\n\t\tif (isDateRangeFilledOut) {\r\n\t\t\tconst data = getNewLeaveLines({\r\n\t\t\t\tformId,\r\n\t\t\t\tfrom: dateRange.from.toDate(),\r\n\t\t\t\tto: dateRange.to.subtract(1, \"days\").toDate(),\r\n\t\t\t\ttype: type,\r\n\t\t\t});\r\n\t\t\tdispatch(postLeaveLines(data));\r\n\t\t}\r\n\t};\r\n\tconst formStatus = useSelector(selectFormStatus);\r\n\tconst isLocked = useSelector(selectIsCmeLocked);\r\n\tconst disabled = isLocked;\r\n\tconst errors = useSelector(selectLeaveError);\r\n\r\n\t//#region insert date modal\r\n\tconst maxDate =\r\n\t\tleaveLines.length >= 1\r\n\t\t\t? moment(\r\n\t\t\t\t\tleaveLines.length > 1\r\n\t\t\t\t\t\t? leaveLines.reduce(function (a, b) {\r\n\t\t\t\t\t\t\t\treturn a.leaveDate > b.leaveDate\r\n\t\t\t\t\t\t\t\t\t? a.leaveDate\r\n\t\t\t\t\t\t\t\t\t: b.leaveDate;\r\n\t\t\t\t\t\t })\r\n\t\t\t\t\t\t: leaveLines[0].leaveDate,\r\n\t\t\t\t\t\"YYYY-MM-DD\"\r\n\t\t\t ).add(1, \"day\")\r\n\t\t\t: null;\r\n\r\n\tconst [newLeaveDate, setNewLeaveDate] = React.useState(maxDate);\r\n\tconst onDateInsert = () => {\r\n\t\tsetNewLeaveDate(maxDate);\r\n\t\tsetIsModalVisible(true);\r\n\t};\r\n\tconst onReset = () => {\r\n\t\tdispatch(deleteLeaveLines({ formId }));\r\n\t};\r\n\tconst onDatePicked = (date) => {\r\n\t\tsetNewLeaveDate(date);\r\n\t};\r\n\tconst onOk = () => {\r\n\t\tconst data = getNewLeaveLines({\r\n\t\t\tformId,\r\n\t\t\tfrom: newLeaveDate.toDate(),\r\n\t\t\tto: newLeaveDate.toDate(),\r\n\t\t\ttype: type,\r\n\t\t});\r\n\t\tdispatch(postLeaveLines(data));\r\n\t\tsetIsModalVisible(false);\r\n\t};\r\n\tconst modalFooter = [\r\n\t\t<Button key=\"cancel\" onClick={() => setIsModalVisible(false)}>\r\n\t\t\tCancel\r\n\t\t</Button>,\r\n\t\t<Button key=\"ok\" type=\"primary\" onClick={onOk}>\r\n\t\t\tOK\r\n\t\t</Button>,\r\n\t];\r\n\tconst modalContent = (\r\n\t\t<>\r\n\t\t\t<Space direction=\"vertical\">\r\n\t\t\t\t<Row>\r\n\t\t\t\t\t<QuestionLabelCol labelColWidth={24} title=\"Leave Date\" />\r\n\t\t\t\t\t<QuestionInputCol inputColWidth={24}>\r\n\t\t\t\t\t\t<DatePicker\r\n\t\t\t\t\t\t\tallowClear={false}\r\n\t\t\t\t\t\t\tformat={dateFormat}\r\n\t\t\t\t\t\t\tonChange={onDatePicked}\r\n\t\t\t\t\t\t\tvalue={newLeaveDate}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</QuestionInputCol>\r\n\t\t\t\t</Row>\r\n\t\t\t\t<p>\r\n\t\t\t\t\tSpecify the date of leave and click OK. You can fill out the\r\n\t\t\t\t\tremaining details on the main form.\r\n\t\t\t\t</p>\r\n\t\t\t\t<p></p>\r\n\t\t\t</Space>\r\n\t\t</>\r\n\t);\r\n\t//#endregion\r\n\r\n\t//for editing leave comments\r\n\tconst leaveCommentsCpe = useSelector(selectCpeFormLeaveComments);\r\n\tconst leaveCommentsReq = useSelector(selectRequestFormLeaveComments);\r\n\tconst onLeaveCommentEdited = (action) => {\r\n\t\tif (type === \"cpeLeaveRequest\") dispatch(cpeFormEdited(action));\r\n\t\telse dispatch(requestFormEdited(action));\r\n\t};\r\n\r\n\tconst { useBreakpoint } = Grid;\r\n\r\n\tconst screens = useBreakpoint();\r\n\r\n\treturn status === \"failed\" || formStatus === \"failed\" ? (\r\n\t\t<Result\r\n\t\t\tstatus=\"error\"\r\n\t\t\ttitle=\"An error has occurred\"\r\n\t\t\tsubTitle=\"Please close this form and try a new form, and if issues persist, contact support.\"\r\n\t\t/>\r\n\t) : leaveLines.length === 0 && status !== \"loading\" ? (\r\n\t\t<Section title=\"Select Leave Period\">\r\n\t\t\t<QuestionInputCol inputColWidth={24}>\r\n\t\t\t\t<Row gutter={[10, 10]} align=\"middle\">\r\n\t\t\t\t\t<Col span={4} md={2}>\r\n\t\t\t\t\t\tFrom\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t\t<Col span={20} md={8}>\r\n\t\t\t\t\t\t<DatePicker\r\n\t\t\t\t\t\t\tplaceholder=\"First day of leave\"\r\n\t\t\t\t\t\t\tformat={dateFormat}\r\n\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\tonChange={(value) =>\r\n\t\t\t\t\t\t\t\tsetDateRange({ ...dateRange, from: value })\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tstyle={{ width: 150 }}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t\t<Col span={4} md={2}>\r\n\t\t\t\t\t\tTo\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t\t<Col span={20} md={8}>\r\n\t\t\t\t\t\t<DatePicker\r\n\t\t\t\t\t\t\tplaceholder=\"Return to work date\"\r\n\t\t\t\t\t\t\tformat={dateFormat}\r\n\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\tonChange={(value) =>\r\n\t\t\t\t\t\t\t\tsetDateRange({ ...dateRange, to: value })\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tstyle={{ width: 150 }}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t\t<Col span={24}>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\ttype=\"primary\"\r\n\t\t\t\t\t\t\tdisabled={!isDateRangeFilledOut}\r\n\t\t\t\t\t\t\tonClick={() => onDateRangeChange()}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tOK\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t</Row>\r\n\t\t\t</QuestionInputCol>\r\n\t\t\t{errors &&\r\n\t\t\t\terrors.map((e, key) => (\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tkey={key}\r\n\t\t\t\t\t\tclassName=\"qna-question-form-item-validation\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{e}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t))}\r\n\t\t</Section>\r\n\t) : status === \"loading\" ? (\r\n\t\t<Spin tip=\"Loading...\" />\r\n\t) : leaveLines.length > 0 ? (\r\n\t\t<>\r\n\t\t\t<InputModal\r\n\t\t\t\ttitle=\"Add Additional Leave Request\"\r\n\t\t\t\tvisible={isModalVisible}\r\n\t\t\t\tfooter={modalFooter}\r\n\t\t\t>\r\n\t\t\t\t{modalContent}\r\n\t\t\t</InputModal>\r\n\t\t\t<Section\r\n\t\t\t\ttitle={\r\n\t\t\t\t\ttype === \"cpeLeaveRequest\"\r\n\t\t\t\t\t\t? \"CME Leave Details\"\r\n\t\t\t\t\t\t: \"Leave Details\"\r\n\t\t\t\t}\r\n\t\t\t>\r\n\t\t\t\t<QuestionLabelCol labelColWidth={24}>\r\n\t\t\t\t\t{type === \"cpeLeaveRequest\" ? (\r\n\t\t\t\t\t\t\"Please complete this section to provide daily details of planned leave then click Next\"\r\n\t\t\t\t\t) : type === \"smoLeaveRequest\" ? (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\tPlease complete this section to provide daily\r\n\t\t\t\t\t\t\tdetails of planned leave then click Next. You can\r\n\t\t\t\t\t\t\tcheck your current balances in Kiosk. \r\n\t\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\t\thref=\"http://staffnet/KioskApplication\"\r\n\t\t\t\t\t\t\t\trel=\"noreferrer\"\r\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tClick here to open a new window to Kiosk (onsite\r\n\t\t\t\t\t\t\t\taccess only)\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</>\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<></>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</QuestionLabelCol>\r\n\t\t\t\t<LeaveContainer\r\n\t\t\t\t\ttype={type}\r\n\t\t\t\t\tleaveLines={leaveLines}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\tscreens={screens}\r\n\t\t\t\t/>\r\n\t\t\t\t{errors &&\r\n\t\t\t\t\terrors.map((e, key) => (\r\n\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tkey={key}\r\n\t\t\t\t\t\t\tclassName=\"qna-question-form-item-validation\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{e}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t))}\r\n\t\t\t\t<QuestionInputCol inputColWidth={24}>\r\n\t\t\t\t\t<Space>\r\n\t\t\t\t\t\t{!disabled ? (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t<Button onClick={onDateInsert} type=\"primary\">\r\n\t\t\t\t\t\t\t\t\t+ Insert Another Day\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t<Button onClick={onReset} type=\"primary\">\r\n\t\t\t\t\t\t\t\t\tReset Form\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<></>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Space>\r\n\t\t\t\t</QuestionInputCol>\r\n\t\t\t</Section>\r\n\t\t\t<Section title=\"Leave Summary\">\r\n\t\t\t\t<Row>\r\n\t\t\t\t\t<Col span={24} md={16} style={{ paddingRight: 20 }}>\r\n\t\t\t\t\t\t<LeaveSummaryContainer\r\n\t\t\t\t\t\t\ttype={type}\r\n\t\t\t\t\t\t\tleaveLines={leaveLines}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t\t<Col span={24} md={8}>\r\n\t\t\t\t\t\t<QuestionLabelCol labelColWidth={24} title=\"Comments\" />\r\n\t\t\t\t\t\t<QuestionInputCol inputColWidth={24}>\r\n\t\t\t\t\t\t\t<TextArea\r\n\t\t\t\t\t\t\t\tdispatch={[\r\n\t\t\t\t\t\t\t\t\tonLeaveCommentEdited,\r\n\t\t\t\t\t\t\t\t\tonLeaveCommentEdited,\r\n\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\tname=\"leaveComments\"\r\n\t\t\t\t\t\t\t\tdefaultValue={\r\n\t\t\t\t\t\t\t\t\ttype === \"cpeLeaveRequest\"\r\n\t\t\t\t\t\t\t\t\t\t? leaveCommentsCpe\r\n\t\t\t\t\t\t\t\t\t\t: leaveCommentsReq\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\trows={5}\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</QuestionInputCol>\r\n\t\t\t\t\t</Col>\r\n\t\t\t\t</Row>\r\n\t\t\t</Section>\r\n\t\t</>\r\n\t) : (\r\n\t\t<>An error has occurred!</>\r\n\t);\r\n};\r\n\r\nconst LeaveContainer = ({ leaveLines, type, disabled, screens }) => {\r\n\tconst selectCategoryLookup = makeSelectLookupByDomainCode(\"leave\");\r\n\tconst categoryLookup = useSelector(selectCategoryLookup);\r\n\r\n\t//type of leave form determines which lookup lists to use\r\n\tconst filteredCategoryLookup =\r\n\t\ttype === \"cpeLeaveRequest\"\r\n\t\t\t? categoryLookup.filter(\r\n\t\t\t\t\t(l) =>\r\n\t\t\t\t\t\tl.description === \"CME\" ||\r\n\t\t\t\t\t\tl.description === \"CME Travel\" ||\r\n\t\t\t\t\t\tl.description === \"Rostered Day Off\"\r\n\t\t\t )\r\n\t\t\t: type === \"leaveClaim\"\r\n\t\t\t? categoryLookup\r\n\t\t\t: categoryLookup.filter(\r\n\t\t\t\t\t(l) =>\r\n\t\t\t\t\t\tl.description !== \"CME\" &&\r\n\t\t\t\t\t\tl.description !== \"CME Travel\"\r\n\t\t\t );\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst dispatchProp = [\r\n\t\t(action) => dispatch(leaveLineAdded(action)),\r\n\t\t(action) => dispatch(leaveLineEdited(action)),\r\n\t];\r\n\r\n\tconst unit = leaveLines.length > 0 ? leaveLines[0].unitType : \"\";\r\n\r\n\treturn (\r\n\t\t<div style={{ paddingBottom: 20 }}>\r\n\t\t\t{screens?.md ? <LeaveDateRowHeading unit={unit} /> : null}\r\n\t\t\t{leaveLines.map((leave, key) => (\r\n\t\t\t\t<LeaveDateRow\r\n\t\t\t\t\tkey={key}\r\n\t\t\t\t\tdata={leave}\r\n\t\t\t\t\tdispatch={dispatchProp}\r\n\t\t\t\t\tcategoryLookup={[\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tid: \"\",\r\n\t\t\t\t\t\t\tcode: null,\r\n\t\t\t\t\t\t\tdescription: \"\",\r\n\t\t\t\t\t\t\tdomainCode: \"leave\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t...filteredCategoryLookup,\r\n\t\t\t\t\t]}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\tscreens={screens}\r\n\t\t\t\t\tunit={unit}\r\n\t\t\t\t/>\r\n\t\t\t))}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nconst LeaveDateRowHeading = ({ unit }) => {\r\n\treturn (\r\n\t\t<Row>\r\n\t\t\t<QuestionLabelCol span={0} md={4}>\r\n\t\t\t\tDate\r\n\t\t\t</QuestionLabelCol>\r\n\t\t\t<QuestionLabelCol span={8} md={0}>\r\n\t\t\t\tDate\r\n\t\t\t</QuestionLabelCol>\r\n\t\t\t<QuestionLabelCol span={4} md={2} title={unit} isMandatory />\r\n\t\t\t<QuestionLabelCol span={12} md={9}>\r\n\t\t\t\tLeave Type{\" \"}\r\n\t\t\t\t<HelpTooltip>\r\n\t\t\t\t\tFor help on leave submissions refer to the CME Guidelines\r\n\t\t\t\t</HelpTooltip>\r\n\t\t\t</QuestionLabelCol>\r\n\t\t\t<QuestionLabelCol span={0} md={7}>\r\n\t\t\t\tDetails{\" \"}\r\n\t\t\t\t<HelpTooltip>\r\n\t\t\t\t\tPlease provide any details to assist the CME coordinator,\r\n\t\t\t\t\tfor example any cover arrangements\r\n\t\t\t\t</HelpTooltip>\r\n\t\t\t</QuestionLabelCol>\r\n\t\t</Row>\r\n\t);\r\n};\r\n\r\nconst LeaveDateRow = ({\r\n\tdata,\r\n\tdispatch,\r\n\tcategoryLookup,\r\n\tdisabled,\r\n\tscreens,\r\n\tunit,\r\n}) => {\r\n\tconst { leaveId, leaveDate, categoryLookupId, description, numberOfUnits } =\r\n\t\tdata;\r\n\tconst isNew = !leaveId;\r\n\tconst commonProps = { isNew, dispatch, name: leaveId };\r\n\tconst date = dayjs(leaveDate, \"YYYY-MM-DD\");\r\n\t//for deleting a single line\r\n\tconst [visible, setVisible] = useState(false);\r\n\tconst disp = useDispatch();\r\n\tconst deleteLeave = async () => {\r\n\t\tawait disp(postLeaveLines([{ ...data, isDeleted: true }])).unwrap();\r\n\t\tdisp(leaveLineDeleted(data.leaveId));\r\n\t};\r\n\r\n\t//add modal for confirmation here\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<LeaveLineDeleteModal\r\n\t\t\t\tvisible={visible}\r\n\t\t\t\tonOk={() => {\r\n\t\t\t\t\tdeleteLeave();\r\n\t\t\t\t\tsetVisible(false);\r\n\t\t\t\t}}\r\n\t\t\t\tonCancel={() => setVisible(false)}\r\n\t\t\t/>\r\n\t\t\t{!screens?.md ? <LeaveDateRowHeading unit={unit} /> : null}\r\n\t\t\t<Row align=\"middle\">\r\n\t\t\t\t<QuestionInputCol span={8} md={4}>\r\n\t\t\t\t\t<LeaveDateDisplay date={date} />\r\n\t\t\t\t</QuestionInputCol>\r\n\t\t\t\t<QuestionInputCol span={4} md={2}>\r\n\t\t\t\t\t<Text\r\n\t\t\t\t\t\tquestionId=\"numberOfUnits\"\r\n\t\t\t\t\t\t{...commonProps}\r\n\t\t\t\t\t\tdefaultValue={numberOfUnits}\r\n\t\t\t\t\t\tdataType=\"numeric\"\r\n\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</QuestionInputCol>\r\n\t\t\t\t<QuestionInputCol span={12} md={9}>\r\n\t\t\t\t\t<Select\r\n\t\t\t\t\t\tquestionId=\"categoryLookupId\"\r\n\t\t\t\t\t\t{...commonProps}\r\n\t\t\t\t\t\tdefaultValue={categoryLookupId}\r\n\t\t\t\t\t\tlookup={categoryLookup}\r\n\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\tplaceholder=\"Pick leave type\"\r\n\t\t\t\t\t\toptions={{ valueField: \"id\", showCode: true }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</QuestionInputCol>\r\n\t\t\t\t{screens?.md ? (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t<QuestionInputCol span={22} md={7}>\r\n\t\t\t\t\t\t\t<Text\r\n\t\t\t\t\t\t\t\tquestionId=\"description\"\r\n\t\t\t\t\t\t\t\t{...commonProps}\r\n\t\t\t\t\t\t\t\tdefaultValue={description}\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t\tplaceholder=\"Leave details\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</QuestionInputCol>\r\n\t\t\t\t\t\t<QuestionInputCol inputColWidth={2}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\ttype=\"link\"\r\n\t\t\t\t\t\t\t\tdanger\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t\tonClick={() => setVisible(true)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<DeleteOutlined />\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</QuestionInputCol>\r\n\t\t\t\t\t</>\r\n\t\t\t\t) : null}\r\n\t\t\t</Row>\r\n\t\t\t{!screens?.md ? (\r\n\t\t\t\t<>\r\n\t\t\t\t\t<Row>\r\n\t\t\t\t\t\t<QuestionLabelCol span={24}>\r\n\t\t\t\t\t\t\tDetails{\" \"}\r\n\t\t\t\t\t\t\t<HelpTooltip>\r\n\t\t\t\t\t\t\t\tPlease provide any details to assist the CME\r\n\t\t\t\t\t\t\t\tcoordinator, for example any cover arrangements\r\n\t\t\t\t\t\t\t</HelpTooltip>\r\n\t\t\t\t\t\t</QuestionLabelCol>\r\n\t\t\t\t\t</Row>\r\n\t\t\t\t\t<Row\r\n\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\tpaddingBottom: 10,\r\n\t\t\t\t\t\t\tborderBottom: \"1px solid #ddd\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<QuestionInputCol span={22}>\r\n\t\t\t\t\t\t\t<Text\r\n\t\t\t\t\t\t\t\tquestionId=\"description\"\r\n\t\t\t\t\t\t\t\t{...commonProps}\r\n\t\t\t\t\t\t\t\tdefaultValue={description}\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</QuestionInputCol>\r\n\t\t\t\t\t\t<QuestionInputCol inputColWidth={2}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\ttype=\"link\"\r\n\t\t\t\t\t\t\t\tdanger\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t\tonClick={() => setVisible(true)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<DeleteOutlined />\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</QuestionInputCol>\r\n\t\t\t\t\t</Row>\r\n\t\t\t\t</>\r\n\t\t\t) : null}\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nconst LeaveDateDisplay = ({ date }) => {\r\n\treturn (\r\n\t\t<Col span={24}>\r\n\t\t\t{date.format(\"ddd\")} {date.format(\"DD/MM/YY\")}\r\n\t\t</Col>\r\n\t);\r\n};\r\n\r\nconst LeaveSummaryContainer = ({ type, leaveLines }) => {\r\n\t//constants that are the pks from the database lookup table\r\n\tconst CME = 246;\r\n\tconst CME_TRAVEL = 247;\r\n\tconst ANNUAL_LEAVE = 8;\r\n\r\n\t//reducer on array of obj need an initial value\r\n\t//reduce leave array to a sum of days\r\n\tconst initialValue = 0;\r\n\tconst cme = leaveLines.reduce((acc, val) => {\r\n\t\treturn val.categoryLookupId === CME ? val.numberOfUnits + acc : acc;\r\n\t}, initialValue);\r\n\tconst cmeTravel = leaveLines.reduce((acc, val) => {\r\n\t\treturn val.categoryLookupId === CME_TRAVEL\r\n\t\t\t? val.numberOfUnits + acc\r\n\t\t\t: acc;\r\n\t}, initialValue);\r\n\tconst other = leaveLines.reduce((acc, val) => {\r\n\t\treturn val.categoryLookupId !== CME_TRAVEL &&\r\n\t\t\tval.categoryLookupId !== CME\r\n\t\t\t? val.numberOfUnits + acc\r\n\t\t\t: acc;\r\n\t}, initialValue);\r\n\r\n\tconst al = leaveLines.reduce((acc, val) => {\r\n\t\treturn val.categoryLookupId === ANNUAL_LEAVE\r\n\t\t\t? val.numberOfUnits + acc\r\n\t\t\t: acc;\r\n\t}, initialValue);\r\n\tconst nonAl = leaveLines.reduce((acc, val) => {\r\n\t\treturn val.categoryLookupId !== ANNUAL_LEAVE\r\n\t\t\t? val.numberOfUnits + acc\r\n\t\t\t: acc;\r\n\t}, initialValue);\r\n\r\n\treturn type === \"cpeLeaveRequest\" ? (\r\n\t\t<Descriptions title=\"\" bordered size=\"small\" column={3}>\r\n\t\t\t<Descriptions.Item\r\n\t\t\t\tspan={3}\r\n\t\t\t\tlabel=\"CME Leave\"\r\n\t\t\t\tlabelStyle={{ textAlign: \"left\" }}\r\n\t\t\t\tcontentStyle={{ textAlign: \"right\" }}\r\n\t\t\t>\r\n\t\t\t\t{cme}\r\n\t\t\t</Descriptions.Item>\r\n\t\t\t<Descriptions.Item\r\n\t\t\t\tspan={3}\r\n\t\t\t\tlabel=\"CME Travel Leave\"\r\n\t\t\t\tlabelStyle={{ textAlign: \"left\" }}\r\n\t\t\t\tcontentStyle={{ textAlign: \"right\" }}\r\n\t\t\t>\r\n\t\t\t\t{cmeTravel}\r\n\t\t\t</Descriptions.Item>\r\n\t\t\t<Descriptions.Item\r\n\t\t\t\tspan={3}\r\n\t\t\t\tlabel=\"Other Leave\"\r\n\t\t\t\tlabelStyle={{ textAlign: \"left\" }}\r\n\t\t\t\tcontentStyle={{ textAlign: \"right\" }}\r\n\t\t\t>\r\n\t\t\t\t{other}\r\n\t\t\t</Descriptions.Item>\r\n\t\t\t<Descriptions.Item\r\n\t\t\t\tspan={3}\r\n\t\t\t\tlabel=\"Total Leave\"\r\n\t\t\t\tlabelStyle={{ textAlign: \"left\" }}\r\n\t\t\t\tcontentStyle={{ textAlign: \"right\" }}\r\n\t\t\t>\r\n\t\t\t\t{cme + cmeTravel + other}\r\n\t\t\t</Descriptions.Item>\r\n\t\t</Descriptions>\r\n\t) : (\r\n\t\t<Descriptions title=\"\" bordered size=\"small\" column={3}>\r\n\t\t\t<Descriptions.Item\r\n\t\t\t\tspan={3}\r\n\t\t\t\tlabel=\"Annual Leave\"\r\n\t\t\t\tlabelStyle={{ textAlign: \"left\" }}\r\n\t\t\t\tcontentStyle={{ textAlign: \"right\" }}\r\n\t\t\t>\r\n\t\t\t\t{al}\r\n\t\t\t</Descriptions.Item>\r\n\t\t\t<Descriptions.Item\r\n\t\t\t\tspan={3}\r\n\t\t\t\tlabel=\"Other Leave\"\r\n\t\t\t\tlabelStyle={{ textAlign: \"left\" }}\r\n\t\t\t\tcontentStyle={{ textAlign: \"right\" }}\r\n\t\t\t>\r\n\t\t\t\t{nonAl}\r\n\t\t\t</Descriptions.Item>\r\n\t\t\t<Descriptions.Item\r\n\t\t\t\tspan={3}\r\n\t\t\t\tlabel=\"Total Leave\"\r\n\t\t\t\tlabelStyle={{ textAlign: \"left\" }}\r\n\t\t\t\tcontentStyle={{ textAlign: \"right\" }}\r\n\t\t\t>\r\n\t\t\t\t{al + nonAl}\r\n\t\t\t</Descriptions.Item>\r\n\t\t</Descriptions>\r\n\t);\r\n};\r\n\r\nconst LeaveLineDeleteModal = ({ visible, onOk, onCancel }) => {\r\n\treturn (\r\n\t\t<Modal\r\n\t\t\ttitle=\"Delete Confirmation\"\r\n\t\t\topen={visible}\r\n\t\t\tonOk={onOk}\r\n\t\t\tonCancel={onCancel}\r\n\t\t\tokText=\"Delete\"\r\n\t\t>\r\n\t\t\t<p>Are you sure you want to delete this line?</p>\r\n\t\t</Modal>\r\n\t);\r\n};\r\n\r\nexport default Leave;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateEntityAdapter,\r\n\tcreateAsyncThunk,\r\n\tcreateSelector,\r\n} from \"@reduxjs/toolkit\";\r\nimport {\r\n\tgetLeaveLinesByFormId,\r\n\tpostLeaveLines as post,\r\n\tdeleteLeaveLineByFormId,\r\n} from \"api\";\r\nimport dayjs from \"dayjs\";\r\n\r\nexport const validateAllLeaveLines = createAsyncThunk(\r\n\t\"leaveLines/validateAllLeaveLines\",\r\n\tasync (_, { dispatch, getState }) => {\r\n\t\tconst state = getState();\r\n\t\tconst leaveLines = selectAllLeaveLines(state);\r\n\t\tconst errors = validateLeaveLines(leaveLines);\r\n\t\tdispatch(leaveErrorEdited(errors));\r\n\t\tdispatch(validationErrorsEdited(errors.length));\r\n\t\treturn errors.length;\r\n\t}\r\n);\r\n\r\nconst getMaxLeaveUnitsByType = (type) => {\r\n\tconst ucaseType = type.toUpperCase();\r\n\tswitch (ucaseType) {\r\n\t\tcase \"DAYS\":\r\n\t\t\treturn 1;\r\n\t\tcase \"HOURS\":\r\n\t\t\treturn 8;\r\n\t\tdefault:\r\n\t\t\treturn 0;\r\n\t}\r\n};\r\n\r\nconst validateLeaveLines = (data) => {\r\n\tlet errors = [];\r\n\tif (!data || data.length === 0) {\r\n\t\terrors.push(\r\n\t\t\t\"Please fill out at least one day of leave details to continue.\"\r\n\t\t);\r\n\t} else {\r\n\t\tdata.forEach((l) => {\r\n\t\t\tconst maxUnit = getMaxLeaveUnitsByType(l.unitType);\r\n\t\t\tif (l.numberOfUnits > maxUnit)\r\n\t\t\t\terrors.push(\r\n\t\t\t\t\t`You cannot have more than ${maxUnit} unit(s) in a single day.`\r\n\t\t\t\t);\r\n\t\t});\r\n\r\n\t\tconst total = data.reduce((acc, l) => acc + l.numberOfUnits, 0);\r\n\t\tif (total === 0)\r\n\t\t\terrors.push(\r\n\t\t\t\t\"Please fill out at least a partial day of leave to continue.\"\r\n\t\t\t);\r\n\t}\r\n\r\n\treturn errors;\r\n};\r\n\r\nexport const fetchLeaveLinesByFormId = createAsyncThunk(\r\n\t\"leaveLines/fetchLeaveLinesByFormId\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (formId, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getLeaveLinesByFormId({ formId });\r\n\t\t\tdispatch(leaveLinesReceived(data));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postLeaveLines = createAsyncThunk(\r\n\t\"leaveLines/postLeaveLines\",\r\n\tasync (data, { dispatch, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst response = await post(data);\r\n\t\t\tdispatch(leaveLinesReceived(response));\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const deleteLeaveLines = createAsyncThunk(\r\n\t\"leaveLines/deleteLeaveLines\",\r\n\tasync (data, { getState, dispatch, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tawait deleteLeaveLineByFormId(data);\r\n\t\t\tconst state = getState();\r\n\t\t\tdispatch(leaveLinesRemoved(state));\r\n\t\t\treturn true;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const getNewLeaveLines = ({ formId, from, to, type }) => {\r\n\tconst a = dayjs(from);\r\n\tconst b = dayjs(to);\r\n\tconst dateDiff = b.diff(a, \"days\");\r\n\r\n\tlet dates = [];\r\n\r\n\tfor (let counter = 0; counter <= dateDiff; counter++) {\r\n\t\tdates.push({\r\n\t\t\t...LEAVE_LINE_TEMPLATE,\r\n\t\t\tleaveDate: a.add(counter, \"days\").format(\"YYYY-MM-DD\"),\r\n\t\t\tformId: formId,\r\n\t\t\tunitType: type === \"smoLeaveRequest\" ? \"Hours\" : \"Days\",\r\n\t\t});\r\n\t}\r\n\r\n\treturn dates;\r\n};\r\n\r\nconst leaveLinesAdapter = createEntityAdapter({\r\n\tselectId: (leaveLine) => leaveLine.leaveId,\r\n});\r\n\r\nexport const LEAVE_LINE_TEMPLATE = {\r\n\tleaveId: 0,\r\n\tleaveDate: null,\r\n\tparentId: 0,\r\n\tformId: 0,\r\n\tstatusId: 0,\r\n\tcategoryLookupId: null,\r\n\tshiftLookupId: 0,\r\n\tdescription: null,\r\n\tcomments: null,\r\n\tnumberOfUnits: null,\r\n\tunitType: \"\", //populated elsewhere\r\n\tisDeleted: false,\r\n\terrors: [],\r\n};\r\n\r\nconst initialState = leaveLinesAdapter.getInitialState({\r\n\tstatus: \"starting\",\r\n\terror: null,\r\n\tvalidationErrors: 0,\r\n});\r\n\r\nconst leaveLineSlice = createSlice({\r\n\tname: \"leaveLines\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tleaveLinesRemoved(state, action) {\r\n\t\t\tleaveLinesAdapter.removeAll(state);\r\n\t\t},\r\n\t\tleaveLinesReceived(state, action) {\r\n\t\t\tleaveLinesAdapter.addMany(state, action.payload);\r\n\t\t},\r\n\t\tleaveLineEdited(state, action) {\r\n\t\t\tconst { questionId, id, value } = action.payload;\r\n\t\t\tconst req = { leaveId: id, [questionId]: value };\r\n\t\t\tleaveLinesAdapter.upsertOne(state, req);\r\n\t\t},\r\n\t\tleaveLineAdded(state, action) {\r\n\t\t\tconst { questionId, value } = action.payload;\r\n\t\t\tconst req = { leaveId: 0, [questionId]: value }; //zero signifies new record\r\n\t\t\tleaveLinesAdapter.addOne(state, { ...req, ...LEAVE_LINE_TEMPLATE });\r\n\t\t},\r\n\t\tleaveLineDeleted(state, action) {\r\n\t\t\tleaveLinesAdapter.removeOne(state, action.payload);\r\n\t\t},\r\n\t\tvalidationErrorsEdited(state, action) {\r\n\t\t\tstate.validationErrors = action.payload;\r\n\t\t},\r\n\t\tleaveErrorEdited(state, action) {\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_CME: (state, action) => {\r\n\t\t\treturn initialState;\r\n\t\t},\r\n\t\t[postLeaveLines.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postLeaveLines.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"succeeded\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postLeaveLines.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchLeaveLinesByFormId.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchLeaveLinesByFormId.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"succeeded\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchLeaveLinesByFormId.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[deleteLeaveLines.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[deleteLeaveLines.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"succeeded\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[deleteLeaveLines.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const {\r\n\tleaveLineEdited,\r\n\tleaveLinesReceived,\r\n\tleaveLineAdded,\r\n\tleaveLinesRemoved,\r\n\tvalidationErrorsEdited,\r\n\tleaveLineDeleted,\r\n\tleaveErrorEdited,\r\n} = leaveLineSlice.actions;\r\n\r\nexport const {\r\n\tselectAll: selectAllLeaveLines,\r\n\tselectIds: selectLeaveLineIds,\r\n\tselectById: selectLeaveLineById,\r\n} = leaveLinesAdapter.getSelectors((state) => state?.cme?.leaveLines);\r\n\r\nexport const selectLeaveLinesStatus = (state) => state.cme.leaveLines.status;\r\n\r\nexport const selectLeaveError = (state) => state.cme.leaveLines.error;\r\n\r\nexport const selectLeaveAmount = createSelector([selectAllLeaveLines], (l) => {\r\n\treturn l.reduce((acc, i) => {\r\n\t\treturn i.categoryLookupId === CME ? acc + i.numberOfUnits : acc;\r\n\t}, 0);\r\n});\r\n\r\nexport const selectLeaveUnitType = createSelector(\r\n\t[selectAllLeaveLines],\r\n\t(l) => {\r\n\t\tif (l.length > 0) {\r\n\t\t\treturn l[0].unitType;\r\n\t\t} else return \"Days\";\r\n\t}\r\n);\r\n\r\nexport const CME = 246;\r\nexport const CME_TRAVEL = 247;\r\n\r\nexport default leaveLineSlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateSelector,\r\n\tcreateAsyncThunk,\r\n} from \"@reduxjs/toolkit\";\r\nimport {\r\n\tdeleteForm,\r\n\tgetFormsByPersonId,\r\n\tgetSMOLeaveFormsByPersonId,\r\n\tupdateFormStatus,\r\n} from \"api\";\r\nimport dayjs from \"dayjs\";\r\n\r\nexport const fetchMyLeaveHistory = createAsyncThunk(\r\n\t\"myHistory/fetchMyLeaveHistory\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (personId, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getSMOLeaveFormsByPersonId({ personId });\r\n\t\t\tdispatch(myLeaveHistoryReceived(data));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchMyHistory = createAsyncThunk(\r\n\t\"myHistory/fetchMyHistory\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (personId, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getFormsByPersonId({ personId });\r\n\t\t\tdispatch(myHistoryReceived(data));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postFormStatus = createAsyncThunk(\r\n\t\"myHistory/postFormStatus\",\r\n\tasync (data, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst { formGuid, status, type, personId } = data;\r\n\t\t\tconst response = await updateFormStatus({ formGuid, status });\r\n\t\t\tif (type === \"Leave\") dispatch(fetchMyLeaveHistory());\r\n\t\t\telse dispatch(fetchMyHistory(personId));\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postDeleteForm = createAsyncThunk(\r\n\t\"myHistory/postDeleteForm\",\r\n\tasync (data, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst { formGuid, type, personId } = data;\r\n\t\t\tconst response = await deleteForm({ formGuid });\r\n\t\t\tif (type === \"Leave\") dispatch(fetchMyLeaveHistory());\r\n\t\t\telse dispatch(fetchMyHistory(personId));\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst initialState = {\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n\tdata: [],\r\n\tleaveData: [],\r\n};\r\n\r\nconst myHistorySlice = createSlice({\r\n\tname: \"myHistory\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tmyHistoryReceived(state, action) {\r\n\t\t\tstate.data = [...action.payload];\r\n\t\t},\r\n\t\tmyLeaveHistoryReceived(state, action) {\r\n\t\t\tstate.leaveData = [...action.payload];\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\t[fetchMyHistory.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchMyHistory.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchMyHistory.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchMyLeaveHistory.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchMyLeaveHistory.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchMyLeaveHistory.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postFormStatus.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postFormStatus.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postFormStatus.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postDeleteForm.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postDeleteForm.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postDeleteForm.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { myHistoryReceived, myLeaveHistoryReceived } =\r\n\tmyHistorySlice.actions;\r\n\r\nexport const selectMyHistory = (state) => state.cme.myHistory.data;\r\nexport const selectMyLeaveHistory = (state) => state.cme.myHistory.leaveData;\r\n\r\nexport const selectMyHistoryStatus = (state) => state.cme.myHistory.status;\r\nexport const selectMyHistoryError = (state) => state.cme.myHistory.error;\r\n\r\nexport const selectOpenFormsCount = createSelector(\r\n\t[selectMyHistory],\r\n\t(mh) =>\r\n\t\tmh.filter(\r\n\t\t\t(f) =>\r\n\t\t\t\tdayjs(f.endDate) >= dayjs() && ![5, 6, 7].includes(f.formTypeId)\r\n\t\t).length\r\n);\r\n\r\nexport default myHistorySlice.reducer;\r\n","import {\r\n\tcreateAsyncThunk,\r\n\tcreateSlice,\r\n\tcreateSelector,\r\n} from \"@reduxjs/toolkit\";\r\nimport {\r\n\tgetCPEFormById,\r\n\tgetRequestFormById,\r\n\tgetRequestLinesByParentFormId,\r\n} from \"api\";\r\n\r\nconst initialState = {\r\n\terror: null,\r\n\tstatus: \"starting\",\r\n\tdata: {\r\n\t\tformTypeId: null,\r\n\t\trequestLines: [],\r\n\t\tleaveLines: [],\r\n\t},\r\n\tchildrenRequestLines: [],\r\n};\r\n\r\nexport const fetchParentFormById = createAsyncThunk(\r\n\t\"parentForm/fetchParentFormById\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (formId, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tlet data = await getRequestFormById({ formId });\r\n\t\t\tif (!data) {\r\n\t\t\t\tdata = await getCPEFormById({ formId });\r\n\t\t\t}\r\n\t\t\tdispatch(parentFormReceived(data));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchChildrenRequestLinesByParentFormId = createAsyncThunk(\r\n\t\"parentForm/fetchChildrenRequestLinesByParentFormId\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (id, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getRequestLinesByParentFormId({\r\n\t\t\t\tparentFormId: id,\r\n\t\t\t});\r\n\t\t\tdispatch(childrenRequestLinesReceived(data));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst parentFormSlice = createSlice({\r\n\tname: \"parentForm\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tparentFormReceived(state, action) {\r\n\t\t\tstate.data = { ...initialState.data, ...action.payload }; //retain the initial state, in case blank parent form is returned\r\n\t\t},\r\n\t\tchildrenRequestLinesReceived(state, action) {\r\n\t\t\tstate.childrenRequestLines = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_CME: (state, action) => {\r\n\t\t\treturn initialState;\r\n\t\t},\r\n\t\t[fetchParentFormById.pending](state, action) {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchParentFormById.fulfilled](state, action) {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t},\r\n\t\t[fetchParentFormById.rejected](state, action) {\r\n\t\t\tstate.status = \"error\";\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { parentFormReceived, childrenRequestLinesReceived } =\r\n\tparentFormSlice.actions;\r\n\r\nexport const selectParentFormStatus = (state) => state.cme.parentForm.status;\r\n\r\nexport const selectParentFormId = (state) => state.cme.parentForm.data.formId;\r\n\r\nexport const selectParentFormData = (state) => state.cme.parentForm.data;\r\n\r\nexport const selectParentFormTypeId = (state) =>\r\n\tstate.cme.parentForm.data.formTypeId;\r\n\r\nexport const selectParentRequestLines = (state) =>\r\n\tstate.cme.parentForm.data.requestLines;\r\n\r\nexport const selectAllChildrenRequestLines = (state) =>\r\n\tstate.cme.parentForm.childrenRequestLines || [];\r\n\r\nexport const selectParentRequestAmount = createSelector(\r\n\t[selectParentRequestLines],\r\n\t(r) => {\r\n\t\treturn r.reduce((acc, val) => {\r\n\t\t\treturn val.emolumentAmount !== 0\r\n\t\t\t\t? acc + val.grossAmount + val.emolumentAmount\r\n\t\t\t\t: acc + (val.netAmount > 0 ? val.netAmount : val.amount); //cpe request forms store their value in the amount field\r\n\t\t}, 0);\r\n\t}\r\n);\r\n\r\nexport const selectParentOtherClaimAmount = createSelector(\r\n\t[selectAllChildrenRequestLines, (_, formId) => formId],\r\n\t(r, formId) => {\r\n\t\treturn r\r\n\t\t\t.filter((l) => l.formId !== formId)\r\n\t\t\t.reduce((acc, val) => {\r\n\t\t\t\treturn val.emolumentAmount !== 0\r\n\t\t\t\t\t? acc + val.grossAmount + val.emolumentAmount\r\n\t\t\t\t\t: acc + val.netAmount;\r\n\t\t\t}, 0);\r\n\t}\r\n);\r\n\r\nexport default parentFormSlice.reducer;\r\n","import { createSlice, createAsyncThunk } from \"@reduxjs/toolkit\";\r\nimport { searchByPersonId } from \"api\";\r\n\r\nexport const fetchPersonById = createAsyncThunk(\r\n\t\"person/fetchPersonById\",\r\n\tasync (personId, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await searchByPersonId({ personId });\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const PERSON_TEMPLATE = {\r\n\tid: null,\r\n\tuserId: null,\r\n\tpersonId: null,\r\n\tfirstName: null,\r\n\tlastName: null,\r\n\tfullName: null,\r\n\tpreferredName: null,\r\n\tjobTitle: null,\r\n\temail: null,\r\n\tmanagerId: null,\r\n\thomeRc: null,\r\n\temployeeId: null,\r\n\torganisation: \"WDHB\",\r\n\tbusinessUnitId: null,\r\n\tisSystemAdmin: true,\r\n\tupn: null,\r\n\tcompanyId: 7,\r\n};\r\n\r\nconst initialState = {\r\n\tstatus: \"starting\",\r\n\terror: null,\r\n\tdata: {}, //target person of whatever form/data we're looking at\r\n\tcpeEnrolment: [],\r\n\tpermission: [],\r\n};\r\n\r\nconst personSlice = createSlice({\r\n\tname: \"person\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tpersonEdited(state, action) {\r\n\t\t\tstate.data = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\t[fetchPersonById.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchPersonById.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.data = action.payload; //set person data\r\n\t\t},\r\n\t\t[fetchPersonById.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.data = {};\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { personEdited } = personSlice.actions;\r\n\r\nexport const selectPerson = (state) => state.cme.person.data;\r\nexport const selectPersonCpeEnrolment = (state) =>\r\n\tstate.cme.person.cpeEnrolment;\r\nexport const selectPersonStatus = (state) => state.cme.person.status;\r\nexport const selectPersonError = (state) => state.cme.person.error;\r\n\r\nexport default personSlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateSelector,\r\n\tcreateAsyncThunk,\r\n} from \"@reduxjs/toolkit\";\r\nimport dayjs from \"dayjs\";\r\nimport { newId } from \"utils/common\";\r\n\r\nconst defaultDate = dayjs().format(\"YYYY-MM-DD\");\r\n\r\nexport const getRequestForm = () => {\r\n\treturn {\r\n\t\tid: newId(),\r\n\t\trequestFormId: 0,\r\n\t\tformId: 0,\r\n\t\tparentFormId: 0,\r\n\t\tformTypeId: 0, //must be defined by RequestForm component\r\n\t\ttitle: \"New Draft Form\",\r\n\t\tstartDate: defaultDate,\r\n\t\tendDate: \"9999-12-31\",\r\n\t\tstatusId: 1, //defaults to draft\r\n\t\tpersonId: null,\r\n\t\tbusinessUnitId: 0,\r\n\t\tcompanyId: 0,\r\n\t\tisDeleted: false,\r\n\t\tconfirmationStep1: null,\r\n\t\tisPersonConsentGiven: null,\r\n\t\tleaveComments: null,\r\n\t\tsupplementaryData: null,\r\n\t};\r\n};\r\n\r\nexport const validateRequestForm = createAsyncThunk(\r\n\t\"requestForm/validateRequestForm\",\r\n\tasync (_, { dispatch, getState }) => {\r\n\t\tconst state = getState();\r\n\t\tconst {\r\n\t\t\ttitle,\r\n\t\t\thasCourseRequest,\r\n\t\t\tleaveFormId,\r\n\t\t\tdetails,\r\n\t\t\tlocation,\r\n\t\t\tformTypeId,\r\n\t\t\tparentFormId,\r\n\t\t\tstartDate,\r\n\t\t} = selectRequestFormData(state);\r\n\r\n\t\t//general errors\r\n\t\tlet errors = [];\r\n\t\tif (!title || title === \"\") errors.push(\"Form name is required\");\r\n\r\n\t\t//leave section errors\r\n\t\tconst isLeaveSectionMandatory =\r\n\t\t\tdayjs(startDate).format(\"YYYY-MM-DD\") >= \"2024-07-15\";\r\n\t\tconst isCourseClaim = formTypeId === 2 && !parentFormId;\r\n\t\tif (isLeaveSectionMandatory) {\r\n\t\t\tif ([null, undefined].includes(hasCourseRequest) && isCourseClaim)\r\n\t\t\t\terrors.push(\r\n\t\t\t\t\t\"Please indicate if CME leave has been approved for this form\"\r\n\t\t\t\t);\r\n\t\t\tif (hasCourseRequest && !leaveFormId && isCourseClaim)\r\n\t\t\t\terrors.push(\r\n\t\t\t\t\t\"Please select an approved or finalised CME leave request\"\r\n\t\t\t\t);\r\n\r\n\t\t\tif (!hasCourseRequest && isCourseClaim && (!location || !details))\r\n\t\t\t\terrors.push(\"Please fill out conference details and location\");\r\n\t\t}\r\n\r\n\t\tdispatch(validationErrorsEdited(errors.length));\r\n\t\tdispatch(validationErrorListEdited(errors));\r\n\t\treturn errors.length;\r\n\t}\r\n);\r\n\r\nconst initialState = {\r\n\tstatus: \"Draft\",\r\n\tstate: {\r\n\t\tisNew: null,\r\n\t\tisLocked: false,\r\n\t},\r\n\tsession: {\r\n\t\tisSilentSave: false,\r\n\t\tcurrentPage: undefined,\r\n\t\tstatus: \"starting\",\r\n\t},\r\n\tvalidationErrors: 0,\r\n\tvalidationErrorList: [],\r\n\terror: null,\r\n\tdata: {\r\n\t\t...getRequestForm(),\r\n\t},\r\n};\r\n\r\nconst requestFormSlice = createSlice({\r\n\tname: \"requestForm\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tvalidationErrorsEdited(state, action) {\r\n\t\t\tstate.validationErrors = action.payload;\r\n\t\t},\r\n\t\tvalidationErrorListEdited(state, action) {\r\n\t\t\tstate.validationErrorList = action.payload;\r\n\t\t},\r\n\t\trequestFormReceived(state, action) {\r\n\t\t\tstate.data = action.payload;\r\n\t\t},\r\n\t\trequestFormEdited(state, action) {\r\n\t\t\tconst { id, value } = action.payload;\r\n\t\t\tstate.data[id] = value;\r\n\t\t},\r\n\t\thasCourseRequestEdited(state, action) {\r\n\t\t\t//if we previously had a value here, we should clear related data\r\n\t\t\tif (![undefined, null].includes(state.data.hasCourseRequest)) {\r\n\t\t\t\tstate.data.leaveFormId = null;\r\n\t\t\t\tstate.data.location = null;\r\n\t\t\t\tstate.data.details = null;\r\n\t\t\t}\r\n\t\t\tstate.data.hasCourseRequest = action.payload;\r\n\t\t},\r\n\t\tleaveFormSelected(state, action) {\r\n\t\t\tconst { formId, courseDetails, courseLocation } = action.payload;\r\n\t\t\tstate.data.leaveFormId = formId;\r\n\t\t\tstate.data.location = courseLocation;\r\n\t\t\tstate.data.details = courseDetails;\r\n\t\t},\r\n\t\tsessionEdited(state, action) {\r\n\t\t\tstate.session = action.payload;\r\n\t\t},\r\n\t\tstateEdited(state, action) {\r\n\t\t\tstate.state = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_CME: (state, action) => {\r\n\t\t\treturn initialState;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const {\r\n\trequestFormEdited,\r\n\tsessionEdited,\r\n\tstateEdited,\r\n\trequestFormReceived,\r\n\tvalidationErrorListEdited,\r\n\tvalidationErrorsEdited,\r\n\thasCourseRequestEdited,\r\n\tleaveFormSelected,\r\n} = requestFormSlice.actions;\r\n\r\nexport const selectData = (state) => state.cme.requestForm.data;\r\nexport const selectRequestFormData = createSelector(\r\n\t(state) => state.cme.requestForm.data,\r\n\t(data) => data\r\n);\r\nexport const selectIsPersonConsentGiven = (state) =>\r\n\tstate.cme.requestForm.data.isPersonConsentGiven;\r\n\r\nexport const selectRequestFormId = createSelector(\r\n\t[\r\n\t\t(state) => state.form?.definition?.name === \"CPD Course Claim\",\r\n\t\t(state) => state.cme,\r\n\t],\r\n\t(isCpdCourseClaim, cme) => {\r\n\t\treturn isCpdCourseClaim\r\n\t\t\t? cme.cpeForm.data.formId\r\n\t\t\t: cme.requestForm.data.formId;\r\n\t}\r\n);\r\n\r\nexport const selectRequestFormStatus = (state) =>\r\n\tstate.cme.requestForm.session.status;\r\nexport const selectRequestFormLeaveComments = (state) =>\r\n\tstate.cme.requestForm.data.leaveComments;\r\nexport const selectRequestFormSupplementaryDataActiveCpe = (state) => {\r\n\treturn getActiveCpeFromSupplementaryData(\r\n\t\tstate.cme.requestForm.data.supplementaryData\r\n\t);\r\n};\r\nexport const selectRequestFormTypeId = (state) =>\r\n\tstate.cme.requestForm.data.formTypeId;\r\nexport const selectRequestFormValidationErrorList = (state) =>\r\n\tstate.cme.requestForm.validationErrorList;\r\n\r\nexport const getActiveCpeFromSupplementaryData = (supplementaryData) => {\r\n\tvar obj = JSON.parse(supplementaryData ?? null);\r\n\treturn obj?.activeCpe;\r\n};\r\n\r\nexport default requestFormSlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateEntityAdapter,\r\n\tcreateAsyncThunk,\r\n\tcreateSelector,\r\n} from \"@reduxjs/toolkit\";\r\nimport {\r\n\tgetPreviousItClaim,\r\n\tgetRequestLinesByFormId,\r\n\tpostRequestLines as post,\r\n} from \"api\";\r\nimport { selectAllAttachment } from \"../attachment/attachmentsSlice\";\r\nimport {\r\n\tselectRequestFormData,\r\n\tselectRequestFormId,\r\n\tselectRequestFormSupplementaryDataActiveCpe,\r\n\tselectRequestFormTypeId,\r\n} from \"../requestForm/requestFormSlice\";\r\nimport { selectUserOrganisation } from \"reducers/securitySlice\";\r\nimport { CME_CONFIG } from \"../constants\";\r\nimport { selectCpeFormData } from \"../cpeForm/cpeFormSlice\";\r\n\r\nexport const fetchRequestLinesByFormId = createAsyncThunk(\r\n\t\"requestLines/fetchRequestLinesById\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (formId, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getRequestLinesByFormId({ formId });\r\n\t\t\tdispatch(requestLinesReceived(data));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const validateAllRequestLines = createAsyncThunk(\r\n\t\"requestLines/validateAllRequestLines\",\r\n\tasync (_, { dispatch, getState }) => {\r\n\t\tconst state = getState();\r\n\t\tconst organisation = selectUserOrganisation(state);\r\n\t\tconst requestData = selectRequestFormData(state);\r\n\t\tconst cpeData = selectCpeFormData(state);\r\n\t\tconst formTypeId = requestData.formTypeId === 0 ? cpeData.formTypeId : requestData.formTypeId\r\n\t\tconst requestLines = selectAllRequestLines(state);\r\n\t\tconst attachments = selectAllAttachment(state);\r\n\t\tconst attachmentCount = attachments.length;\r\n\t\tconst isClaim = [2, 3, 8, 9, 10].includes(formTypeId);\r\n\t\tconst errors =\r\n\t\t\trequestData.formTypeId === 5\r\n\t\t\t\t? 0 //we don't have req lines in SMO leave form\r\n\t\t\t\t: requestLines.reduce((acc, d) => {\r\n\t\t\t\t\t\tconst errors = validateRequestLine(\r\n\t\t\t\t\t\t\td,\r\n\t\t\t\t\t\t\tattachmentCount,\r\n\t\t\t\t\t\t\tisClaim,\r\n\t\t\t\t\t\t\torganisation\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tdispatch(requestLineUpserted({ ...d, errors }));\r\n\t\t\t\t\t\treturn acc + errors.length;\r\n\t\t\t\t }, 0);\r\n\t\tdispatch(validationErrorsEdited(errors));\r\n\t\treturn errors;\r\n\t}\r\n);\r\n\r\nexport const postRequestLines = createAsyncThunk(\r\n\t\"requestLines/postRequestLines\",\r\n\tasync (data, { dispatch, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst response = await post(data);\r\n\t\t\tdispatch(requestLinesReceived(response));\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst requestLinesAdapter = createEntityAdapter({\r\n\tselectId: (requestLine) => requestLine.requestId,\r\n});\r\n\r\nexport const CATEGORY_LOOKUP = [\r\n\t{\r\n\t\tid: 17,\r\n\t\tcode: 17,\r\n\t\tdomain: \"Course Expense Category\",\r\n\t\tdescription: \"Course/Conference/Study fees only\",\r\n\t},\r\n\t{\r\n\t\tid: 19,\r\n\t\tcode: 19,\r\n\t\tdomain: \"Course Expense Category\",\r\n\t\tdescription: \"Accommodation\",\r\n\t},\r\n\t{\r\n\t\tid: 20,\r\n\t\tcode: 20,\r\n\t\tdomain: \"Course Expense Category\",\r\n\t\tdescription: \"Flights (visas, taxes)\",\r\n\t},\r\n\t{\r\n\t\tid: 21,\r\n\t\tcode: 21,\r\n\t\tdomain: \"Course Expense Category\",\r\n\t\tdescription: \"Meals\",\r\n\t},\r\n\t{\r\n\t\tid: 22,\r\n\t\tcode: 22,\r\n\t\tdomain: \"Course Expense Category\",\r\n\t\tdescription: \"Other\",\r\n\t\texcludeOrgs: [\"Northland\", \"WDHB\"],\r\n\t},\r\n\t{\r\n\t\tid: 13,\r\n\t\tcode: 13,\r\n\t\tdomain: \"General Expense Category\",\r\n\t\tdescription: \"Fees\",\r\n\t\texcludeOrgs: [\"Northland\", \"WDHB\"],\r\n\t},\r\n\t{\r\n\t\tid: 12,\r\n\t\tcode: 12,\r\n\t\tdomain: \"General Expense Category\",\r\n\t\tdescription: \"Books / Journals / Periodicals\",\r\n\t},\r\n\t{\r\n\t\tid: 32,\r\n\t\tcode: 32,\r\n\t\tdomain: \"General Expense Category\",\r\n\t\tdescription: \"Subscriptions\",\r\n\t},\r\n\t{\r\n\t\tid: 33,\r\n\t\tcode: 33,\r\n\t\tdomain: \"General Expense Category\",\r\n\t\tdescription: \"Other (please provide details)\",\r\n\t\texcludeOrgs: [\"Northland\"],\r\n\t},\r\n\t{\r\n\t\tid: 36,\r\n\t\tcode: 36,\r\n\t\tdomain: \"IT Expense Category\",\r\n\t\tdescription: \"Phone\",\r\n\t},\r\n\t{\r\n\t\tid: 259,\r\n\t\tcode: 259,\r\n\t\tdomain: \"IT Expense Category\",\r\n\t\tdescription: \"Tablet / iPad\",\r\n\t},\r\n\t{\r\n\t\tid: 14,\r\n\t\tcode: 14,\r\n\t\tdomain: \"IT Expense Category\",\r\n\t\tdescription: \"Computer/Laptop\",\r\n\t},\r\n\t{\r\n\t\tid: 37,\r\n\t\tcode: 37,\r\n\t\tdomain: \"IT Expense Category\",\r\n\t\tdescription: \"Printer\",\r\n\t\texcludeOrgs: [\"Northland\"],\r\n\t},\r\n\t{\r\n\t\tid: 15,\r\n\t\tcode: 15,\r\n\t\tdomain: \"IT Expense Category\",\r\n\t\tdescription: \"Software\",\r\n\t},\r\n\t{\r\n\t\tid: 35,\r\n\t\tcode: 35,\r\n\t\tdomain: \"IT Expense Category\",\r\n\t\tdescription: \"Other (please provide details)\",\r\n\t\texcludeOrgs: [\"Northland\", \"WDHB\"],\r\n\t},\r\n\t{\r\n\t\tid: 277,\r\n\t\tcode: 277,\r\n\t\tdomain: \"IT Expense Category\",\r\n\t\tdescription: \"IT Accessories\",\r\n\t},\r\n\t{\r\n\t\tid: 278,\r\n\t\tcode: 278,\r\n\t\tdomain: \"General Expense Category\",\r\n\t\tdescription: \"IT accessories (<$1,000)\",\r\n\t},\r\n\t{\r\n\t\tid: 279,\r\n\t\tcode: 279,\r\n\t\tdomain: \"Course Expense Category\",\r\n\t\tdescription: \"Mileage\",\r\n\t},\r\n\t{\r\n\t\tid: 280,\r\n\t\tcode: 280,\r\n\t\tdomain: \"Course Expense Category\",\r\n\t\tdescription: \"Koha\",\r\n\t\texcludeOrgs: [\"Counties Manukau\", \"Northland\"],\r\n\t},\r\n\t{\r\n\t\tid: 281,\r\n\t\tcode: 281,\r\n\t\tdomain: \"General Expense Category\",\r\n\t\tdescription: `Clinical equipment (<$1,000)`,\r\n\t\texcludeOrgs: [\"Counties Manukau\"],\r\n\t},\r\n\t{\r\n\t\tid: 282,\r\n\t\tcode: 282,\r\n\t\tdomain: \"IT Expense Category\",\r\n\t\tdescription: \"Clinical equipment\",\r\n\t\texcludeOrgs: [\"Counties Manukau\"],\r\n\t},\r\n\t{\r\n\t\tid: 283,\r\n\t\tcode: 283,\r\n\t\tdomain: \"WRE Category\",\r\n\t\tdescription: \"APC / Professional Membership\",\r\n\t},\r\n\t{\r\n\t\tid: 284,\r\n\t\tcode: 284,\r\n\t\tdomain: \"WRE Category\",\r\n\t\tdescription: \"Insurance\",\r\n\t},\r\n\t{\r\n\t\tid: 285,\r\n\t\tcode: 285,\r\n\t\tdomain: \"General Expense Category\",\r\n\t\tdescription: \"Supervision\",\r\n\t},\r\n\t{\r\n\t\tid: 286,\r\n\t\tcode: 286,\r\n\t\tdomain: \"Course Expense Category\",\r\n\t\tdescription: \"Transport (taxi, tolls, parking, rental car)\",\r\n\t},\r\n\t{\r\n\t\tid: 287,\r\n\t\tcode: 287,\r\n\t\tdomain: \"Course Expense Category\",\r\n\t\tdescription: \"Parking\",\r\n\t\texcludeOrgs: [\"Northland\", \"WDHB\"],\r\n\t},\r\n];\r\n\r\nexport const DOLLAR_PER_KM = 1.04;\r\n\r\nexport const isItCategory = (categoryLookupId) => {\r\n\treturn !categoryLookupId\r\n\t\t? false\r\n\t\t: categoryLookupId === 278 || //IT accessory\r\n\t\t\t\tCATEGORY_LOOKUP.find((l) => l.code === categoryLookupId)\r\n\t\t\t\t\t?.domain === \"IT Expense Category\";\r\n};\r\n\r\nconst validateRequestLine = (data, attachmentCount, isClaim, organisation) => {\r\n\tlet errors = [];\r\n\tconst {\r\n\t\tcategoryLookupId,\r\n\t\tinvoiceNumber,\r\n\t\tgrossAmount,\r\n\t\tgstAmount,\r\n\t\tnetAmount,\r\n\t\tinvoiceDate,\r\n\t\tdescription,\r\n\t} = data;\r\n\tconst config = CME_CONFIG[organisation];\r\n\tif (!categoryLookupId || categoryLookupId === 0)\r\n\t\terrors.push(\"Category is required\");\r\n\tif (!invoiceNumber && isClaim & (categoryLookupId !== 279))\r\n\t\terrors.push(\"Invoice Number is required\");\r\n\tif (categoryLookupId === 279 && !description)\r\n\t\terrors.push(\"Please provide details of your mileage claim (from/to)\");\r\n\t//IT accessories on other cme claim form\r\n\t//OR any line in IT request form require a description\r\n\tif (isItCategory(categoryLookupId) && !description)\r\n\t\terrors.push(\"IT equipments and accessories require a description\");\r\n\tif (!invoiceDate && isClaim) errors.push(\"Date incurred is required\");\r\n\tif (!grossAmount || grossAmount <= 0)\r\n\t\terrors.push(\"Gross Amount cannot be zero or less\");\r\n\tif (gstAmount > grossAmount)\r\n\t\terrors.push(\"GST amount cannot be greater than Gross amount\");\r\n\tif ((!attachmentCount || attachmentCount === 0) && isClaim)\r\n\t\terrors.push(\"At least one attachment is required\");\r\n\tif (\r\n\t\tcategoryLookupId === 278 &&\r\n\t\tgrossAmount > config.ItClaimLimitWithoutPreapproval\r\n\t)\r\n\t\terrors.push(\r\n\t\t\t`IT accessories above ${config.ItClaimLimitWithoutPreapproval} in gross amount require pre-approval`\r\n\t\t);\r\n\tif (isItCategory(categoryLookupId) && netAmount > config.ItClaimLineLimit) {\r\n\t\tconsole.log(\"here\");\r\n\t\tlet nzd = new Intl.NumberFormat(\"en-NZ\", {\r\n\t\t\tstyle: \"currency\",\r\n\t\t\tcurrency: \"NZD\",\r\n\t\t\tmaximumFractionDigits: 0,\r\n\t\t});\r\n\t\terrors.push(\r\n\t\t\t`IT request/claim items cannot exceed ${nzd.format(\r\n\t\t\t\tconfig.ItClaimLineLimit\r\n\t\t\t)} excluding GST`\r\n\t\t);\r\n\t}\r\n\tif (\r\n\t\tcategoryLookupId === 281 &&\r\n\t\tgrossAmount > config.ItClaimLimitWithoutPreapproval\r\n\t)\r\n\t\terrors.push(\r\n\t\t\t`Clinical equipment cannot exceed ${config.ItClaimLimitWithoutPreapproval} in gross amount for this type of claim`\r\n\t\t);\r\n\treturn errors;\r\n};\r\n\r\nexport const REQUEST_LINE_TEMPLATE = {\r\n\trequestId: 0,\r\n\trequestDate: null,\r\n\tparentId: 0,\r\n\tformId: 0,\r\n\tstatusId: 0,\r\n\tcategoryLookupId: null,\r\n\tdescription: null,\r\n\tnumberOfUnits: null,\r\n\tunitType: null,\r\n\tamount: null,\r\n\tnetAmount: null,\r\n\tgstAmount: null,\r\n\temolumentAmount: null,\r\n\tgrossAmount: null,\r\n\tsmartAmount: null,\r\n\tcmeDeductionAmount: null,\r\n\tinvoiceDate: null,\r\n\tinvoiceNumber: null,\r\n\tisDeleted: false,\r\n\tisGst: true,\r\n\tprorateFactor: null,\r\n\tfbtRate: null,\r\n\tadjustmentAmount: null,\r\n\tcurrency: \"NZD\",\r\n};\r\n\r\nexport const getNewCpeRequestLines = (formId) => [\r\n\t{\r\n\t\t...REQUEST_LINE_TEMPLATE,\r\n\t\tformId,\r\n\t\tcategoryLookupId: 19,\r\n\t\tunitType: \"NIGHTS\",\r\n\t},\r\n\t{ ...REQUEST_LINE_TEMPLATE, formId, categoryLookupId: 17 },\r\n\t{ ...REQUEST_LINE_TEMPLATE, formId, categoryLookupId: 20 },\r\n\t{ ...REQUEST_LINE_TEMPLATE, formId, categoryLookupId: 21 },\r\n\t{ ...REQUEST_LINE_TEMPLATE, formId, categoryLookupId: 22 },\r\n];\r\n\r\nconst isPrevClaimSearchable = (formTypeId, categoryLookupId) => {\r\n\treturn formTypeId === 4 && [36, 259, 14].includes(categoryLookupId);\r\n};\r\n\r\nconst checkAndFetchPrevClaim = async (oldState, action, form) => {\r\n\tconst request = {\r\n\t\t...oldState,\r\n\t\t[action.questionId]: action.value,\r\n\t};\r\n\r\n\tif (!isPrevClaimSearchable(form.formTypeId, request.categoryLookupId)) {\r\n\t\t//remove prevline\r\n\t\tconst { prevLine, ...rest } = request;\r\n\t\tconst newRequest = { prevLine: null, ...rest };\r\n\t\treturn newRequest;\r\n\t}\r\n\r\n\t//only fetch previous IT claim on change of category lookup id\r\n\tconst prevLine =\r\n\t\taction.questionId === \"categoryLookupId\"\r\n\t\t\t? await getPreviousItClaim({\r\n\t\t\t\t\tcategoryLookupId: request.categoryLookupId,\r\n\t\t\t\t\tpersonId: form.personId,\r\n\t\t\t\t\texcludeFormId: form.formId,\r\n\t\t\t\t\tinvoiceDate: form.startDate,\r\n\t\t\t })\r\n\t\t\t: request.prevLine;\r\n\r\n\treturn { ...request, isPrevClaimSearched: true, prevLine };\r\n};\r\n\r\nfunction calculateGstAmount(isFx, questionId, request, value) {\r\n\tif (isFx) return 0;\r\n\tif (questionId === \"gstAmount\") return Number(value); //manual GST update, just receive the value\r\n\tif (request.isGst) {\r\n\t\t//if this line has GST\r\n\t\tif (questionId === \"grossAmount\" || questionId === \"isGst\")\r\n\t\t\t//and gross amount updated\r\n\t\t\treturn Number(\r\n\t\t\t\t((Number(request.grossAmount) / 115) * 15).toFixed(2)\r\n\t\t\t);\r\n\t\telse return request.gstAmount; //otherwise just return existing gst\r\n\t}\r\n\treturn 0; //non gst\r\n}\r\n\r\nfunction calculateGrossAmount(isFx, questionId, request, value) {\r\n\tif (isFx) {\r\n\t\treturn Number(request.grossAmount);\r\n\t}\r\n\r\n\treturn questionId === \"numberOfUnits\" && request.categoryLookupId === 279\r\n\t\t? Number(value) * DOLLAR_PER_KM //mileage update\r\n\t\t: questionId === \"grossAmount\" //manual gross amount update\r\n\t\t? Number(value)\r\n\t\t: request.grossAmount; //all other cases\r\n}\r\n\r\nexport const requestLineEdited = createAsyncThunk(\r\n\t\"requestLines/requestLineEdited\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (action, { getState, dispatch }) => {\r\n\t\tconst { questionId, id, value } = action;\r\n\r\n\t\t//get the other values on the request line\r\n\t\tconst { cme } = getState();\r\n\t\tconst { requestLines, requestForm, parentForm } = cme;\r\n\r\n\t\tconst request = await checkAndFetchPrevClaim(\r\n\t\t\trequestLines.entities[id],\r\n\t\t\taction,\r\n\t\t\trequestForm.data\r\n\t\t);\r\n\r\n\t\t//if form is IT request, or the parent form is IT request,\r\n\t\t//or if it is IT Accessories type, it attracts emolument\r\n\t\tconst isIt =\r\n\t\t\t(requestForm.data.formTypeId === 4 ||\r\n\t\t\t\tparentForm.data.formTypeId === 4 ||\r\n\t\t\t\trequest.categoryLookupId === 278) &&\r\n\t\t\trequest.categoryLookupId !== 282; //exclude clinical equipment from emolument\r\n\r\n\t\t//Foreign currency flag - if this is true, we need to unset GST and related fields later\r\n\t\tconst isFx = request.currency && request.currency !== \"NZD\";\r\n\r\n\t\tconst gstAmount = calculateGstAmount(isFx, questionId, request, value);\r\n\r\n\t\t//for mileage, we need to recalc gross amount\r\n\t\tconst grossAmount = calculateGrossAmount(\r\n\t\t\tisFx,\r\n\t\t\tquestionId,\r\n\t\t\trequest,\r\n\t\t\tvalue\r\n\t\t);\r\n\r\n\t\tconst fxRate =\r\n\t\t\tisFx && grossAmount\r\n\t\t\t\t? (request.foreignAmount / grossAmount).toFixed(4)\r\n\t\t\t\t: null;\r\n\r\n\t\tconst foreignAmount = isFx ? request.foreignAmount : null;\r\n\r\n\t\t//recalc net amount. gross/gst is always manually updated\r\n\t\tconst netAmount = Number(grossAmount) - Number(gstAmount);\r\n\r\n\t\t//recalc emolument, based on gross amount\r\n\t\tconst emolumentAmount = isIt\r\n\t\t\t? calculateEmolument(Number(grossAmount))\r\n\t\t\t: 0;\r\n\r\n\t\t//create new request data to upsert\r\n\t\tconst newReq = {\r\n\t\t\t...request,\r\n\t\t\tgstAmount,\r\n\t\t\tnetAmount,\r\n\t\t\temolumentAmount,\r\n\t\t\tgrossAmount,\r\n\t\t\tfxRate,\r\n\t\t\tforeignAmount,\r\n\t\t};\r\n\t\tdispatch(requestLineUpserted(newReq));\r\n\t}\r\n);\r\n\r\nconst initialState = requestLinesAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n\tvalidationErrors: 0,\r\n});\r\n\r\nconst calculateEmolument = (amount = 0) => {\r\n\treturn Number(((amount / (1 - 0.39)) * 0.39).toFixed(4));\r\n};\r\n\r\nconst requestLineSlice = createSlice({\r\n\tname: \"requestLines\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\trequestLinesReceived(state, action) {\r\n\t\t\t//calculated field isGst\r\n\t\t\t//if gst is null (new line) or has value, isGst is true so that it auto calcs gst\r\n\t\t\tconst data = action.payload.map((r) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t...r,\r\n\t\t\t\t\tisGst:\r\n\t\t\t\t\t\tr.gstAmount === null || r.gstAmount > 0 ? true : false,\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\trequestLinesAdapter.addMany(state, data);\r\n\t\t},\r\n\t\trequestLineDeleted(state, action) {\r\n\t\t\trequestLinesAdapter.removeOne(state, action.payload);\r\n\t\t},\r\n\t\trequestLineUpserted(state, action) {\r\n\t\t\trequestLinesAdapter.upsertOne(state, action.payload);\r\n\t\t},\r\n\t\trequestLineAdded(state, action) {\r\n\t\t\tconst { questionId, value } = action.payload;\r\n\t\t\tconst req = { requestId: 0, [questionId]: value }; //zero signifies new record\r\n\t\t\trequestLinesAdapter.addOne(state, req);\r\n\t\t},\r\n\t\tvalidationErrorsEdited(state, action) {\r\n\t\t\tstate.validationErrors = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_CME: (state, action) => {\r\n\t\t\treturn initialState;\r\n\t\t},\r\n\t\t[postRequestLines.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postRequestLines.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t},\r\n\t\t[postRequestLines.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchRequestLinesByFormId.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchRequestLinesByFormId.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t},\r\n\t\t[fetchRequestLinesByFormId.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const {\r\n\trequestLineUpserted,\r\n\trequestLinesReceived,\r\n\trequestLineAdded,\r\n\trequestLineDeleted,\r\n\tvalidationErrorsEdited,\r\n} = requestLineSlice.actions;\r\n\r\nexport const {\r\n\tselectAll: selectAllRequestLines,\r\n\tselectIds: selectRequestLineIds,\r\n\tselectById: selectRequestLineById,\r\n} = requestLinesAdapter.getSelectors((state) => state?.cme?.requestLines);\r\n\r\nexport const selectRequestLineStatus = (state) => state.cme.requestLines.status;\r\n\r\nexport const selectRequestClaimAmount = createSelector(\r\n\t[selectAllRequestLines],\r\n\t(r) => {\r\n\t\treturn r.reduce((acc, val) => {\r\n\t\t\treturn val.emolumentAmount !== 0\r\n\t\t\t\t? acc + val.grossAmount + val.emolumentAmount\r\n\t\t\t\t: acc + val.netAmount;\r\n\t\t}, 0);\r\n\t}\r\n);\r\n\r\nexport const selectMaxRequestClaimGrossAmount = createSelector(\r\n\t[selectAllRequestLines],\r\n\t(r) => {\r\n\t\treturn r\r\n\t\t\t.map((i) => i.grossAmount)\r\n\t\t\t.sort((a, b) => (a < b ? -1 : a > b ? 1 : 0))[0];\r\n\t}\r\n);\r\n\r\nexport const selectRequestClaimGrossAmount = createSelector(\r\n\t[selectAllRequestLines],\r\n\t(r) => {\r\n\t\treturn r.reduce((acc, val) => {\r\n\t\t\treturn val.emolumentAmount !== 0\r\n\t\t\t\t? acc + val.grossAmount\r\n\t\t\t\t: acc + val.netAmount;\r\n\t\t}, 0);\r\n\t}\r\n);\r\n\r\nexport const selectRequestClaimEmolumentAmount = createSelector(\r\n\t[selectAllRequestLines],\r\n\t(r) => {\r\n\t\treturn r.reduce((acc, val) => {\r\n\t\t\treturn acc + val.emolumentAmount;\r\n\t\t}, 0);\r\n\t}\r\n);\r\n\r\nexport const selectDefaultRequestLines = createSelector(\r\n\t[\r\n\t\tselectRequestFormSupplementaryDataActiveCpe,\r\n\t\tselectRequestFormId,\r\n\t\tselectRequestFormTypeId,\r\n\t],\r\n\t(activeCpe, formId, formTypeId) => {\r\n\t\treturn getDefaultRequestLines(formId, formTypeId, activeCpe);\r\n\t}\r\n);\r\n\r\nexport const getDefaultRequestLines = (formId, formTypeId, activeCpe) => {\r\n\treturn [\r\n\t\t{\r\n\t\t\t...REQUEST_LINE_TEMPLATE,\r\n\t\t\tformId,\r\n\t\t\tprorateFactor: formTypeId === 8 ? activeCpe?.proratedFte : null,\r\n\t\t},\r\n\t];\r\n};\r\n\r\nexport default requestLineSlice.reducer;\r\n","import { Tooltip } from \"antd\";\r\n\r\nexport const ROC_CONFIDENTIALITY_STATEMENT =\r\n\t\"STATEMENT OF CONFIDENTIALITY: The information contained in this and any attached pages is intended to be for the use of the addressee named in this transmittal sheet. If you are not the addressee, note that any disclosure, photocopying distribution or use of the contents of this faxed information is prohibited. If you have received this facsimile in error, please notify us by telephone (collect) immediately so that we can arrange for the retrieval of the original documents at no cost to you.\";\r\n\r\nconst ConfidentialityStatement = () => {\r\n\treturn (\r\n\t\t<div style={{ fontSize: \"10px\", width: \"100%\" }}>\r\n\t\t\t<Tooltip title={ROC_CONFIDENTIALITY_STATEMENT}>{ROC_CONFIDENTIALITY_STATEMENT}</Tooltip>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default ConfidentialityStatement;\r\n","import { createSlice, createEntityAdapter } from \"@reduxjs/toolkit\";\r\n\r\nconst agenciesAdapter = createEntityAdapter();\r\n\r\nconst initialState = agenciesAdapter.addMany(\r\n\tagenciesAdapter.getInitialState({\r\n\t\tstatus: \"idle\",\r\n\t\terror: null,\r\n\t}),\r\n\t[\r\n\t\t{ id: 1, agency: \"General Practitioner\" },\r\n\t\t{ id: 2, agency: \"Alcohol/Drug and other addiction services\" },\r\n\t\t{ id: 3, agency: \"Child and Adolescent\" },\r\n\t\t{ id: 4, agency: \"Mental Health Service\" },\r\n\t\t{\r\n\t\t\tid: 5,\r\n\t\t\tagency: \"Community Mental Health or Addition Service (adult services)\",\r\n\t\t},\r\n\t\t{ id: 6, agency: \"Cultural Support\" },\r\n\t\t{ id: 7, agency: \"DHB Social Worker\" },\r\n\t\t{ id: 8, agency: \"Disability Services\" },\r\n\t\t{ id: 9, agency: \"Family Start\" },\r\n\t\t{ id: 10, agency: \"Maternity Service/Lead\" },\r\n\t\t{\r\n\t\t\tid: 11,\r\n\t\t\tagency: \"Maternity Carer (If antenatal referral, what is the expected date of delivery?)\",\r\n\t\t},\r\n\t\t{ id: 12, agency: \"Plunket / Well Child /\" },\r\n\t\t{ id: 13, agency: \"Tamariki Ora\" },\r\n\t\t{ id: 14, agency: \"Police\" },\r\n\t\t{ id: 15, agency: \"Public Health Nurse\" },\r\n\t\t{\r\n\t\t\tid: 16,\r\n\t\t\tagency: \"Special Education / School Counsellor / SWISS / MASSIS\",\r\n\t\t},\r\n\t\t{ id: 17, agency: \"Children’s Team\" },\r\n\t\t{\r\n\t\t\tid: 18,\r\n\t\t\tagency: \"Other (e.g. Paediatrician, NGO social service (please specify))\",\r\n\t\t},\r\n\t]\r\n);\r\n\r\nconst agenciesSlice = createSlice({\r\n\tname: \"agencies\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tagencyUpserted(state, action) {\r\n\t\t\tagenciesAdapter.upsertOne(state, action.payload);\r\n\t\t},\r\n\t\tagencyRemoved(state, action) {\r\n\t\t\tagenciesAdapter.removeOne(state, action.payload);\r\n\t\t},\r\n\t\tagenciesReceived(state, action) {\r\n\t\t\tagenciesAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { agenciesReceived, agencyUpserted, agencyRemoved } =\r\n\tagenciesSlice.actions;\r\n\r\nexport const { selectAll: selectAllAgencies, selectById: selectAgencyById } =\r\n\tagenciesAdapter.getSelectors((state) => state.roc.agencies);\r\n\r\nexport default agenciesSlice.reducer;\r\n","import React, { useEffect } from \"react\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport { loginRequest } from \"../authConfig\";\r\nimport { Result } from \"antd\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\n/**\r\n * Renders a drop down button with child buttons for logging in with a popup or redirect\r\n */\r\nconst SignIn = () => {\r\n\tconst { instance } = useMsal();\r\n\tconst { pathname } = useLocation();\r\n\r\n\tuseEffect(() => {\r\n\t\twindow.localStorage.setItem(\"redirectUrl\", pathname);\r\n\t\tif (instance)\r\n\t\t\tinstance.loginRedirect(loginRequest).catch((e) => {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t});\r\n\t}, [pathname, instance]);\r\n\treturn (\r\n\t\t<Result title=\"Sign In\">Redirecting you to the sign-in page...</Result>\r\n\t);\r\n};\r\n\r\nexport default SignIn;\r\n","import { Result } from \"antd\";\r\nimport React from \"react\";\r\nimport { SeverityLevel } from \"@microsoft/applicationinsights-web\";\r\nimport { appInsights, getBrowserAndOsInfo } from \"../appInsights\";\r\nimport store from \"../reducers/store\";\r\nclass ErrorBoundary extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = { hasError: false };\r\n\t}\r\n\r\n\tstatic getDerivedStateFromError(error) {\r\n\t\t// Update state so the next render will show the fallback UI.\r\n\t\treturn { hasError: true };\r\n\t}\r\n\r\n\tcomponentDidCatch(error, errorInfo) {\r\n\t\t// You can also log the error to an error reporting service\r\n\t\tif (\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== undefined &&\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY &&\r\n\t\t\tprocess.env.REACT_APP_INSTRUMENTATION_KEY !== \"\"\r\n\t\t) {\r\n\t\t\tappInsights.trackException({\r\n\t\t\t\terror: error,\r\n\t\t\t\texception: error,\r\n\t\t\t\tseverityLevel: SeverityLevel.Error,\r\n\t\t\t\tproperties: { errorInfo },\r\n\t\t\t});\r\n\t\t\tappInsights.trackTrace({\r\n\t\t\t\tmessage: errorInfo.componentStack,\r\n\t\t\t\tproperties: {\r\n\t\t\t\t\treduxState: store.getState(),\r\n\t\t\t\t\tbrowserOs: getBrowserAndOsInfo(),\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t\tconsole.log(error, errorInfo);\r\n\t}\r\n\r\n\trender() {\r\n\t\tif (this.state.hasError) {\r\n\t\t\t// You can render any custom fallback UI\r\n\t\t\treturn (\r\n\t\t\t\t<Result\r\n\t\t\t\t\tstatus=\"error\"\r\n\t\t\t\t\ttitle=\"Application Error\"\r\n\t\t\t\t\tsubTitle=\"An error has occurred, and we couldn't recover from it. Apologies for the inconvenience. Please contact the administrator and describe what action caused this bug to happen.\"\r\n\t\t\t\t></Result>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn this.props.children;\r\n\t}\r\n}\r\n\r\nexport default ErrorBoundary;\r\n","import { Result } from \"antd\";\r\n\r\nconst Unauthenticated = () => {\r\n\tconst subTitle = \"You don't have permission to access this form\";\r\n\treturn (\r\n\t\t<Result title=\"Can't Access Online Forms\" subTitle={subTitle}>\r\n\t\t\t<div className=\"desc\">\r\n\t\t\t\t<p>\r\n\t\t\t\t\tIf you need access to this online form application, please\r\n\t\t\t\t\tcontact your support / administrator\r\n\t\t\t\t</p>\r\n\t\t\t</div>\r\n\t\t</Result>\r\n\t);\r\n};\r\n\r\nexport default Unauthenticated;\r\n","/**\n * Determine if we are in a browser\n * or a server environment\n * @type {Boolean}\n * @private\n */\nexport const IS_BROWSER =\n (typeof window === 'undefined' ? 'undefined' : typeof window) === 'object'\n\n/**\n * Default element to listen for events on\n * @type {Object}\n * @private\n */\nexport const DEFAULT_ELEMENT = IS_BROWSER ? document : {}\n\n/**\n * The default events to determine activity\n * @type {Array}\n * @private\n */\nexport const DEFAULT_EVENTS = [\n 'mousemove',\n 'keydown',\n 'wheel',\n 'DOMMouseScroll',\n 'mousewheel',\n 'mousedown',\n 'touchstart',\n 'touchmove',\n 'MSPointerDown',\n 'MSPointerMove',\n 'visibilitychange'\n]\n\n/**\n * Creates a debounced function that delays invoking func until\n * after delay milliseconds has elapsed since the last time the\n * debounced function was invoked.\n * @name debounced\n * @param {Function} fn Function to debounce\n * @param {Number} delay How long to wait\n * @return {Function} Executed Function\n * @private\n **/\nexport function debounced (fn, delay) {\n let timerId\n function result (...args) {\n if (timerId) {\n clearTimeout(timerId)\n }\n timerId = setTimeout(() => {\n fn(...args)\n timerId = null\n }, delay)\n }\n\n result.cancel = function () {\n clearTimeout(timerId)\n }\n\n return result\n}\n\n/**\n * Creates a throttled function that only invokes func at most\n * once per every wait milliseconds.\n * @name throttled\n * @param {Function} fn Function to debounce\n * @param {Number} delay How long to wait\n * @return {Function} Executed Function\n * @private\n **/\nexport function throttled (fn, delay) {\n let lastCall = 0\n return function (...args) {\n const now = new Date().getTime()\n if (now - lastCall < delay) {\n return\n }\n lastCall = now\n return fn(...args)\n }\n}\n\nlet lastMs = 0\nlet additional = 0\n\n/**\n * Returns current time in microseconds.\n *\n * @returns {Number} current time in microseconds\n * @private\n */\nexport function microSeconds () {\n const ms = new Date().getTime()\n if (ms === lastMs) {\n additional++\n return ms * 1000 + additional\n } else {\n lastMs = ms\n additional = 0\n return ms * 1000\n }\n}\n\n/**\n * Generate and return a random token.\n *\n * @returns {String} Random token.\n * @private\n */\nexport function randomToken () {\n return Math.random().toString(36).substring(2)\n}\n\n/**\n * Checks if a js object is a promise.\n *\n * @param {*} obj Any javascript object.\n * @returns {Boolean} Wether or not this object is a promise.\n */\nexport function isPromise (obj) {\n if (obj && typeof obj.then === 'function') {\n /* istanbul ignore next */\n return true\n } else {\n return false\n }\n}\n\n/**\n * Sleeps for x amount of milliseconds.\n *\n * @param {Number} time Amount of time in milliseconds.\n * @returns {Promise}\n * @private\n */\nexport function sleep (time = 0) {\n return new Promise(resolve => setTimeout(resolve, time))\n}\n\n/**\n * Get the current timestamp.\n *\n * @returns {Number}\n * @private\n */\nexport function now () {\n return new Date().getTime()\n}\n\n/**\n * Waits until the given function returns true\n * @param {function} fn\n * @return {Promise}\n */\nexport function waitUntil (fn, timeout = 0, interval = 20) {\n let timedOut = false\n let ok = false\n\n /* istanbul ignore next */\n if (timeout !== 0) {\n sleep(timeout).then(() => {\n timedOut = true\n })\n }\n\n return new Promise((resolve, reject) => {\n const runLoop = () => {\n if (ok) {\n resolve()\n return\n }\n /* istanbul ignore next */\n if (timedOut) {\n reject(new Error(`❌ waitUntil reached timeout of ${timeout}ms`))\n return\n }\n sleep(interval).then(() => {\n ok = fn()\n runLoop()\n })\n }\n runLoop()\n })\n}\n","/* eslint-env browser */\nimport { microSeconds } from '../../utils'\n\nexport const type = 'broadcastChannel'\n\nexport function create (channelName) {\n const state = {\n messagesCallback: null,\n bc: new BroadcastChannel(channelName)\n }\n\n state.bc.onmessage = msg => {\n if (state.messagesCallback) {\n state.messagesCallback(msg.data)\n }\n }\n\n return state\n}\n\nexport function close (channelState) {\n channelState.bc.close()\n}\n\nexport function postMessage (channelState, messageJson) {\n try {\n channelState.bc.postMessage(messageJson, false)\n return Promise.resolve()\n } catch (err) {\n /* istanbul ignore next */\n return Promise.reject(err)\n }\n}\n\nexport function onMessage (channelState, fn) {\n channelState.messagesCallback = fn\n}\n\nexport function canBeUsed () {\n if (typeof BroadcastChannel === 'function') {\n return true\n } else {\n /* istanbul ignore next */\n return false\n }\n}\n\nexport function averageResponseTime () {\n return 150\n}\n\nexport default {\n create,\n close,\n onMessage,\n postMessage,\n canBeUsed,\n type,\n averageResponseTime,\n microSeconds\n}\n","import { now } from '../utils'\n\nexport default class ObliviousSet {\n constructor (ttl = 1000 * 60) {\n this.ttl = ttl\n this.set = new Set()\n this.timeMap = new Map()\n }\n\n has (value) {\n return this.set.has(value)\n }\n\n add (value) {\n this.timeMap.set(value, now())\n this.set.add(value)\n this._removeTooOldValues()\n }\n\n clear () {\n this.set.clear()\n this.timeMap.clear()\n }\n\n _removeTooOldValues () {\n const olderThen = now() - this.ttl\n const iterator = this.set[Symbol.iterator]()\n\n while (true) {\n const value = iterator.next().value\n if (!value) return // no more elements\n const time = this.timeMap.get(value)\n if (time < olderThen) {\n this.timeMap.delete(value)\n this.set.delete(value)\n } else {\n // We reached a value that is not old enough\n return\n }\n }\n }\n}\n","import ObliviousSet from '../ObliviousSet'\n\nimport {\n randomToken,\n microSeconds\n} from '../../utils'\n\nexport const type = 'localStorage'\n\n/**\n * Returns local storage instance\n */\nexport function getLocalStorage () {\n let localStorage\n if (typeof window === 'undefined') return null\n try {\n localStorage = window.localStorage\n localStorage = window['ie8-eventlistener/storage'] || window.localStorage\n } catch (e) {\n // New versions of Firefox throw a Security exception\n // if cookies are disabled. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1028153\n }\n return localStorage\n}\n\nexport function storageKey (channelName) {\n return channelName\n}\n\n/**\n* writes the new message to the storage\n* and fires the storage-event so other readers can find it\n*/\nexport function postMessage (channelState, messageJson) {\n return new Promise(resolve => {\n const key = storageKey(channelState.channelName)\n const writeObj = {\n token: randomToken(),\n time: new Date().getTime(),\n data: messageJson,\n uuid: channelState.uuid\n }\n const value = JSON.stringify(writeObj)\n getLocalStorage().setItem(key, value)\n\n /**\n * StorageEvent does not fire the 'storage' event\n * in the window that changes the state of the local storage.\n * So we fire it manually\n */\n const ev = document.createEvent('Event')\n ev.initEvent('storage', true, true)\n ev.key = key\n ev.newValue = value\n window.dispatchEvent(ev)\n\n resolve()\n })\n}\n\nexport function addStorageEventListener (channelName, fn) {\n const key = storageKey(channelName)\n const listener = ev => {\n if (ev.key === key) {\n fn(JSON.parse(ev.newValue))\n }\n }\n window.addEventListener('storage', listener)\n return listener\n}\nexport function removeStorageEventListener (listener) {\n window.removeEventListener('storage', listener)\n}\n\nexport function create (channelName, options = {}) {\n if (!canBeUsed()) {\n /* istanbul ignore next */\n throw new Error('❌ localStorage cannot be used.')\n }\n\n const uuid = randomToken()\n\n /**\n * eMIs\n * contains all messages that have been emitted before\n * @type {ObliviousSet}\n */\n const eMIs = new ObliviousSet(options.removeTimeout)\n\n const state = {\n channelName,\n uuid,\n eMIs // emittedMessagesIds\n }\n\n state.listener = addStorageEventListener(\n channelName,\n (msgObj) => {\n if (!state.messagesCallback) return // no listener\n if (msgObj.uuid === uuid) return // own message\n if (!msgObj.token || eMIs.has(msgObj.token)) return // already emitted\n if (msgObj.data.time && msgObj.data.time < state.messagesCallbackTime) return // too old\n\n eMIs.add(msgObj.token)\n state.messagesCallback(msgObj.data)\n }\n )\n\n return state\n}\n\nexport function close (channelState) {\n removeStorageEventListener(channelState.listener)\n}\n\nexport function onMessage (channelState, fn, time) {\n channelState.messagesCallbackTime = time\n channelState.messagesCallback = fn\n}\n\nexport function canBeUsed () {\n const ls = getLocalStorage()\n\n if (!ls) return false\n\n try {\n const key = '__check'\n ls.setItem(key, 'works')\n ls.removeItem(key)\n } catch (e) {\n // Safari 10 in private mode will not allow write access to local\n // storage and fail with a QuotaExceededError. See\n // https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API#Private_Browsing_Incognito_modes\n\n /* istanbul ignore next */\n return false\n }\n\n return true\n}\n\n/* istanbul ignore next */\nexport function averageResponseTime () {\n const defaultTime = 120\n const userAgent = navigator.userAgent.toLowerCase()\n if (userAgent.includes('safari') && !userAgent.includes('chrome')) {\n // safari is much slower so this time is higher\n return defaultTime * 2\n }\n return defaultTime\n}\n\nexport default {\n create,\n close,\n onMessage,\n postMessage,\n canBeUsed,\n type,\n averageResponseTime,\n microSeconds\n}\n","import { microSeconds } from '../../utils'\n\nexport const type = 'simulate'\n\nconst SIMULATE_CHANNELS = new Set()\n\nexport function create (channelName) {\n const state = {\n name: channelName,\n messagesCallback: null\n }\n SIMULATE_CHANNELS.add(state)\n\n return state\n}\n\nexport function close (channelState) {\n SIMULATE_CHANNELS.delete(channelState)\n}\n\nexport function postMessage (channelState, messageJson) {\n return new Promise(resolve => setTimeout(() => {\n const channelArray = Array.from(SIMULATE_CHANNELS)\n channelArray\n .filter(channel => channel.name === channelState.name)\n .filter(channel => channel !== channelState)\n .filter(channel => !!channel.messagesCallback)\n .forEach(channel => channel.messagesCallback(messageJson))\n resolve()\n }, 5))\n}\n\nexport function onMessage (channelState, fn) {\n channelState.messagesCallback = fn\n}\n\n/* istanbul ignore next */\nexport function canBeUsed () {\n return true\n}\n\n/* istanbul ignore next */\nexport function averageResponseTime () {\n return 5\n}\n\nexport default {\n create,\n close,\n onMessage,\n postMessage,\n canBeUsed,\n type,\n averageResponseTime,\n microSeconds\n}\n","import BroadcastChannelMethod from './methods/broadcastChannel'\nimport LocalStorageMethod from './methods/localStorage'\nimport SimulateMethod from './methods/simulate'\n\n// Order is important\nconst METHODS = [\n BroadcastChannelMethod,\n LocalStorageMethod\n]\n\nexport function chooseMethod (options = {}) {\n if (options.type) {\n // For testing\n if (options.type === 'simulate') {\n return SimulateMethod\n }\n\n // Chosen type\n const method = METHODS.find(m => m.type === options.type)\n if (!method) throw new Error(`❌ Method ${options.type} is not supported.`)\n else return method\n }\n\n const useMethod = METHODS.find(method => method.canBeUsed())\n\n /* istanbul ignore next */\n if (!useMethod) {\n throw new Error(`❌ No method found ${JSON.stringify(METHODS.map(m => m.type))}`)\n }\n return useMethod\n}\n","import { chooseMethod } from './methodChooser'\nimport { isPromise } from '../utils'\n\nexport class MessageChannel {\n constructor (name, options = {}) {\n this.name = name\n this.options = options\n this.method = chooseMethod(this.options)\n this.closed = false\n\n // isListening\n this._isListening = false\n\n /**\n * _onMessageListener\n * setting onmessage twice,\n * will overwrite the first listener\n */\n this._onMessageListener = null\n\n /**\n * _addEventListeners\n */\n this._addEventListeners = {\n message: [],\n internal: []\n }\n\n /**\n * Un send message promises\n * where the sending is still in progress\n * @type {Set<Promise>}\n */\n this._unSendMessagePromises = new Set()\n\n /**\n * _beforeClose\n * array of promises that will be awaited\n * before the channel is closed\n */\n this._beforeClose = []\n\n /**\n * _preparePromise\n */\n this._preparePromises = null\n _prepareChannel(this)\n }\n\n postMessage (msg) {\n if (this.closed) {\n throw new Error(\n '❌ Cannot post message after channel has closed'\n )\n }\n return _post(this, 'message', msg)\n }\n\n postInternal (msg) {\n return _post(this, 'internal', msg)\n }\n\n set onmessage (fn) {\n const time = this.method.microSeconds()\n const listenObj = {\n time,\n fn\n }\n _removeListenerObject(this, 'message', this._onMessageListener)\n if (fn && typeof fn === 'function') {\n this._onMessageListener = listenObj\n _addListenerObject(this, 'message', listenObj)\n } else {\n /* istanbul ignore next */\n this._onMessageListener = null\n }\n }\n\n /* istanbul ignore next */\n get onmessage () {\n return this._onMessageListener\n }\n\n addEventListener (type, fn) {\n const time = this.method.microSeconds()\n const listenObj = {\n time,\n fn\n }\n _addListenerObject(this, type, listenObj)\n }\n\n removeEventListener (type, fn) {\n const obj = this._addEventListeners[type].find(obj => obj.fn === fn)\n _removeListenerObject(this, type, obj)\n }\n\n close () {\n if (this.closed) {\n return\n }\n this.closed = true\n const awaitPrepare = this._preparePromises ? this._preparePromises : Promise.resolve()\n\n this._onMessageListener = null\n this._addEventListeners.message = []\n\n return awaitPrepare\n // Wait until all current sending are processed\n .then(() => Promise.all(Array.from(this._unSendMessagePromises)))\n // Run before-close hooks\n .then(() => Promise.all(this._beforeClose.map(fn => fn())))\n // Close the channel\n .then(() => this.method.close(this._state))\n }\n\n get type () {\n return this.method.type\n }\n\n isClosed () {\n return this.closed\n }\n}\n\nfunction _post (messageChannel, type, msg) {\n const time = messageChannel.method.microSeconds()\n const msgObj = {\n time,\n type,\n data: msg\n }\n\n const awaitPrepare = messageChannel._preparePromises ? messageChannel._preparePromises : Promise.resolve()\n return awaitPrepare.then(() => {\n const sendPromise = messageChannel.method.postMessage(\n messageChannel._state,\n msgObj\n )\n\n // add/remove to un-send messages list\n messageChannel._unSendMessagePromises.add(sendPromise)\n sendPromise\n .catch()\n .then(() => messageChannel._unSendMessagePromises.delete(sendPromise))\n\n return sendPromise\n })\n}\n\nfunction _prepareChannel (channel) {\n const maybePromise = channel.method.create(channel.name, channel.options)\n /* istanbul ignore next */\n if (isPromise(maybePromise)) {\n channel._preparePromises = maybePromise\n maybePromise.then(s => {\n channel._state = s\n })\n } else {\n channel._state = maybePromise\n }\n}\n\nfunction _hasMessageListeners (channel) {\n if (channel._addEventListeners.message.length > 0) return true\n if (channel._addEventListeners.internal.length > 0) return true\n return false\n}\n\nfunction _addListenerObject (channel, type, obj) {\n channel._addEventListeners[type].push(obj)\n _startListening(channel)\n}\n\nfunction _removeListenerObject (channel, type, obj) {\n channel._addEventListeners[type] = channel._addEventListeners[type].filter(o => o !== obj)\n _stopListening(channel)\n}\n\nfunction _startListening (channel) {\n if (!channel._isListening && _hasMessageListeners(channel)) {\n // someone is listening, start subscribing\n\n const listenerFn = msgObj => {\n channel._addEventListeners[msgObj.type].forEach(obj => {\n if (msgObj.time >= obj.time) {\n obj.fn(msgObj.data)\n }\n })\n }\n\n const time = channel.method.microSeconds()\n if (channel._preparePromises) {\n /* istanbul ignore next */\n channel._preparePromises.then(() => {\n channel._isListening = true\n channel.method.onMessage(\n channel._state,\n listenerFn,\n time\n )\n })\n } else {\n channel._isListening = true\n channel.method.onMessage(\n channel._state,\n listenerFn,\n time\n )\n }\n }\n}\n\nfunction _stopListening (channel) {\n if (channel._isListening && !_hasMessageListeners(channel)) {\n // no one is listening, stop subscribing\n channel._isListening = false\n const time = channel.method.microSeconds()\n channel.method.onMessage(\n channel._state,\n null,\n time\n )\n }\n}\n","import { IS_BROWSER, sleep, randomToken } from '../utils'\n\nclass LeaderElection {\n constructor (channel, options) {\n this._channel = channel\n this._options = options\n\n this.isLeader = false\n this.isDead = false\n this.token = randomToken()\n\n this._isApplying = false\n this._reApply = false\n\n // things to clean up\n this._unloadFns = []\n this._listeners = []\n this._intervals = []\n this._duplicateListeners = () => { }\n this._duplicateCalled = false\n this._onBeforeDie = async () => {}\n\n const unloadFn = async () => this.die()\n\n if (IS_BROWSER) {\n window.addEventListener('beforeUnload', unloadFn)\n window.addEventListener('unload', unloadFn)\n\n this._unloadFns.push(['beforeUnload', unloadFn])\n this._unloadFns.push(['unload', unloadFn])\n }\n }\n\n applyOnce () {\n if (this.isLeader) return Promise.resolve(false)\n if (this.isDead) return Promise.resolve(false)\n\n // do nothing if already running\n if (this._isApplying) {\n this._reApply = true\n return Promise.resolve(false)\n }\n this._isApplying = true\n\n let stopCriteria = false\n const received = []\n\n const handleMessage = (msg) => {\n if (msg.context === 'leader' && msg.token !== this.token) {\n received.push(msg)\n\n if (msg.action === 'apply') {\n // Other is applying\n if (msg.token > this.token) {\n // Other has higher token, stop applying\n stopCriteria = true\n }\n }\n\n if (msg.action === 'tell') {\n // Other is already leader\n stopCriteria = true\n }\n }\n }\n this._channel.addEventListener('internal', handleMessage)\n\n return _sendMessage(this, 'apply') // send out that this one is applying\n .then(() => sleep(this._options.responseTime)) // let others time to respond\n .then(() => {\n if (stopCriteria) return Promise.reject(new Error())\n else return _sendMessage(this, 'apply')\n })\n .then(() => sleep(this._options.responseTime)) // let others time to respond\n .then(() => {\n if (stopCriteria) return Promise.reject(new Error())\n else return _sendMessage(this)\n })\n .then(() => beLeader(this)) // no one disagreed -> this one is now leader\n .then(() => true)\n .catch(() => false) // apply not successful\n .then(success => {\n this._channel.removeEventListener('internal', handleMessage)\n this._isApplying = false\n if (!success && this._reApply) {\n this._reApply = false\n return this.applyOnce()\n } else return success\n })\n }\n\n awaitLeadership () {\n if (\n !this._awaitLeadershipPromise\n ) {\n this._awaitLeadershipPromise = _awaitLeadershipOnce(this)\n }\n return this._awaitLeadershipPromise\n }\n\n set onDuplicate (fn) {\n this._duplicateListeners = fn\n }\n\n /* istanbul ignore next */\n get onDuplicate () {\n return this._duplicateListeners\n }\n\n set onBeforeDie (fn) {\n this._onBeforeDie = fn\n }\n\n /* istanbul ignore next */\n get onBeforeDie () {\n return this._onBeforeDie\n }\n\n async die () {\n if (this.isDead) return\n this.isDead = true\n\n await this.onBeforeDie()\n this._listeners.forEach(listener => this._channel.removeEventListener('internal', listener))\n this._intervals.forEach(interval => clearInterval(interval))\n this._unloadFns.forEach(uFn => {\n if (IS_BROWSER) {\n window.removeEventListener(uFn[0], uFn[1])\n }\n })\n return _sendMessage(this, 'death')\n }\n}\n\nfunction _awaitLeadershipOnce (leaderElector) {\n if (leaderElector.isLeader) return Promise.resolve()\n\n return new Promise(resolve => {\n let resolved = false\n\n function finish () {\n /* istanbul ignore next */\n if (resolved) {\n return\n }\n resolved = true\n clearInterval(interval)\n leaderElector._channel.removeEventListener('internal', whenDeathListener)\n resolve(true)\n }\n\n // try once now\n leaderElector.applyOnce().then(() => {\n if (leaderElector.isLeader) {\n finish()\n }\n })\n\n // try on fallbackInterval\n const interval = setInterval(() => {\n /* istanbul ignore next */\n leaderElector.applyOnce().then(() => {\n if (leaderElector.isLeader) {\n finish()\n }\n })\n }, leaderElector._options.fallbackInterval)\n leaderElector._intervals.push(interval)\n\n // try when other leader dies\n const whenDeathListener = msg => {\n if (msg.context === 'leader' && msg.action === 'death') {\n leaderElector.applyOnce().then(() => {\n if (leaderElector.isLeader) finish()\n })\n }\n }\n leaderElector._channel.addEventListener('internal', whenDeathListener)\n leaderElector._listeners.push(whenDeathListener)\n })\n}\n\n/**\n * Sends and internal message over the broadcast-channel\n */\nfunction _sendMessage (leaderElector, action) {\n const msgJson = {\n context: 'leader',\n action,\n token: leaderElector.token\n }\n return leaderElector._channel.postInternal(msgJson)\n}\n\nexport function beLeader (leaderElector) {\n leaderElector.isLeader = true\n\n const isLeaderListener = msg => {\n if (msg.context === 'leader' && msg.action === 'apply') {\n _sendMessage(leaderElector, 'tell')\n }\n\n if (msg.context === 'leader' && msg.action === 'tell' && !leaderElector._duplicateCalled) {\n /**\n * Another instance is also leader!\n * This can happen on rare events\n * like when the CPU is at 100% for long time\n * or the tabs are open very long and the browser throttles them.\n */\n leaderElector._duplicateCalled = true\n leaderElector._duplicateListeners() // message the lib user so the app can handle the problem\n _sendMessage(leaderElector, 'tell') // ensure other leader also knows the problem\n }\n }\n leaderElector._channel.addEventListener('internal', isLeaderListener)\n leaderElector._listeners.push(isLeaderListener)\n return _sendMessage(leaderElector, 'tell')\n}\n\nexport function createLeaderElection (channel, options) {\n if (channel._leaderElector) {\n throw new Error('❌ MessageChannel already has a leader-elector')\n }\n\n const elector = new LeaderElection(channel, options)\n channel._beforeClose.push(async () => elector.die())\n\n channel._leaderElector = elector\n return elector\n}\n","import { MessageChannel, createLeaderElection } from './MessageChannel'\nexport const TabManager = ({\n type,\n channelName,\n fallbackInterval,\n responseTime,\n emitOnAllTabs,\n callbacks,\n start,\n reset,\n pause,\n resume\n}) => {\n const channel = new MessageChannel(channelName, { type })\n const elector = createLeaderElection(channel, { fallbackInterval, responseTime })\n const registry = {}\n\n // Register self\n registry[elector.token] = false\n\n let leader = false\n let allIdle = true\n\n const isLeader = () => leader\n\n elector.awaitLeadership().then(() => {\n leader = true\n })\n\n channel.addEventListener('message', ([type, id]) => {\n switch (type) {\n case 'register':\n registry[id] = false\n break\n case 'deregister':\n delete registry[id]\n break\n case 'idle':\n idle(id)\n break\n case 'active':\n active(id)\n break\n case 'emitIdle':\n callbacks.onIdle()\n break\n case 'emitActive':\n callbacks.onActive()\n break\n case 'start':\n start(true)\n break\n case 'reset':\n reset(true)\n break\n case 'pause':\n pause(true)\n break\n case 'resume':\n resume(true)\n break\n default:\n // no op\n }\n })\n\n const setAllIdle = bool => {\n allIdle = bool\n }\n\n const isAllIdle = () => allIdle\n\n const idle = (id = elector.token) => {\n registry[id] = true\n const isIdle = Object.values(registry).every(v => v)\n if (!allIdle && isIdle) {\n allIdle = true\n if (isLeader()) {\n callbacks.onIdle()\n if (emitOnAllTabs) send('emitIdle')\n } else {\n send('idle')\n }\n }\n }\n\n const active = (id = elector.token) => {\n registry[id] = false\n const isActive = Object.values(registry).some(v => !v)\n if (allIdle && isActive) {\n allIdle = false\n if (isLeader()) {\n callbacks.onActive()\n if (emitOnAllTabs) send('emitActive')\n } else {\n send('active')\n }\n }\n }\n\n /* istanbul ignore next */\n elector.onDuplicate = async () => await elector.die()\n elector.onBeforeDie = async () => await send('deregister')\n\n const send = async message => channel.postMessage([message, elector.token])\n\n const close = async () => {\n await elector.die()\n await channel.close()\n }\n\n // Register self with remote tabs\n send('register')\n\n return { close, send, isLeader, idle, active, isAllIdle, setAllIdle }\n}\n","/**\n * ___ _ _ _____ _\n * |_ _|__| | | __|_ _(_)_ __ ___ ___ _ __\n * | |/ _` | |/ _ \\| | | | '_ ` _ \\ / _ \\ '__|\n * | | (_| | | __/| | | | | | | | | __/ |\n * |___\\__,_|_|\\___||_| |_|_| |_| |_|\\___|_|\n *\n * @name IdleTimer\n * @author Randy Lebeau\n * @private\n */\n\nimport { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { TabManager } from './TabManager'\nimport { IS_BROWSER, DEFAULT_ELEMENT, DEFAULT_EVENTS, debounced, throttled } from './utils'\n\n/**\n * Detects when your user is idle\n * @class IdleTimer\n * @private\n */\nclass IdleTimer extends Component {\n /**\n * Creates an instance of IdleTimer\n * bind all of our internal events here\n * for best performance\n * @param {Object} props\n * @return {IdleTimer}\n * @private\n */\n constructor (props) {\n super(props)\n\n /**\n * Sets initial component state\n * @type {Object}\n * @private\n */\n this.state = {\n idle: false,\n oldDate: +new Date(),\n lastActive: +new Date(),\n lastIdle: null,\n idleTime: 0,\n remaining: null,\n pageX: null,\n pageY: null\n }\n\n /**\n * The timer instance\n * @type {Timeout}\n * @private\n */\n this.tId = null\n\n /**\n * Wether or not events are bound\n * @type {boolean}\n * @private\n */\n this.eventsBound = false\n\n this.callbackRefs = {}\n\n // Debounce and throttle can't both be set\n if (props.debounce > 0 && props.throttle > 0) {\n throw new Error('onAction can either be throttled or debounced (not both)')\n }\n\n // Create debounced action if applicable\n if (props.debounce > 0) {\n this._onAction = debounced(props.onAction, props.debounce)\n\n // Create throttled action if applicable\n } else if (props.throttle > 0) {\n this._onAction = throttled(props.onAction, props.throttle)\n\n // Set custom onAction\n } else {\n this._onAction = props.onAction\n }\n\n // Create a throttle event handler if applicable\n if (props.eventsThrottle > 0) {\n this.handleEvent = throttled(this._handleEvent.bind(this), props.eventsThrottle)\n } else {\n this.handleEvent = this._handleEvent.bind(this)\n }\n\n // If startOnMount is set, idle state defaults to true\n if (!props.startOnMount || props.startManually) {\n this.state.idle = true\n }\n\n // Bind all events to component scope, built for speed 🚀\n this._toggleIdleState = this._toggleIdleState.bind(this)\n this.start = this.start.bind(this)\n this.reset = this.reset.bind(this)\n this.pause = this.pause.bind(this)\n this.resume = this.resume.bind(this)\n this.isIdle = this.isIdle.bind(this)\n this.getRemainingTime = this.getRemainingTime.bind(this)\n this.getElapsedTime = this.getElapsedTime.bind(this)\n this.getLastActiveTime = this.getLastActiveTime.bind(this)\n this.getLastIdleTime = this.getLastIdleTime.bind(this)\n this.getTotalIdleTime = this.getTotalIdleTime.bind(this)\n this.getTotalActiveTime = this.getTotalActiveTime.bind(this)\n }\n\n /**\n * Runs once the component has mounted\n * here we handle automatically starting\n * the idletimer\n * @private\n */\n componentDidMount () {\n const { startOnMount, startManually } = this.props\n\n // Set up cross tab\n this._setupTabManager()\n\n if (startManually) return\n if (startOnMount) {\n this.start()\n } else {\n this._bindEvents()\n }\n }\n\n componentDidUpdate (prevProps) {\n // Update debounce function\n if ((prevProps.debounce !== this.props.debounce) && this.props.debounce > 0) {\n if (this._onAction.cancel) this._onAction.cancel()\n this._onAction = debounced(this.props.onAction, this.props.debounce)\n } else\n // Update throttle function\n if ((prevProps.throttle !== this.props.throttle) && this.props.throttle > 0) {\n if (this._onAction.cancel) this._onAction.cancel()\n this._onAction = throttled(this.props.onAction, this.props.throttle)\n } else\n // Remove throttle or debounce\n if (\n (prevProps.throttle && this.props.throttle === 0) ||\n (prevProps.debounce && this.props.debounce === 0)\n ) {\n if (this._onAction.cancel) this._onAction.cancel()\n this._onAction = this.props.onAction\n }\n\n // Update event throttle function\n if (prevProps.eventsThrottle !== this.props.eventsThrottle) {\n this._unbindEvents()\n this.handleEvent = throttled(this._handleEvent.bind(this), this.props.eventsThrottle)\n this._bindEvents()\n }\n // Update timeout value\n if (prevProps.timeout !== this.props.timeout) {\n if (this.state.idle) this.reset()\n }\n\n // Update callback refs\n if (prevProps.onActive !== this.props.onActive) this.callbackRefs.onActive = this.props.onActive\n if (prevProps.onIdle !== this.props.onIdle) this.callbackRefs.onIdle = this.props.onIdle\n }\n\n /**\n * Called before the component un-mounts\n * here we clear the timer and remove\n * all the event listeners\n * @private\n */\n componentWillUnmount () {\n // Clear timeout to prevent delayed state changes\n clearTimeout(this.tId)\n this._unbindEvents(true)\n // Cancel any debounced onAction handlers\n if (this._onAction.cancel) this._onAction.cancel()\n /* istanbul ignore next */\n if (this.manager) {\n this.manager.close().catch(console.error)\n }\n }\n\n /**\n * Render children if IdleTimer is used as a wrapper\n * @return {Component} children\n * @private\n */\n render () {\n const { children } = this.props\n return children || null\n }\n\n /**\n * Setup the Tab Manager.\n * @private\n */\n _setupTabManager () {\n const { crossTab, onIdle, onActive } = this.props\n this.callbackRefs = { onIdle, onActive }\n\n /* istanbul ignore next */\n if (crossTab) {\n const {\n type,\n channelName,\n fallbackInterval,\n responseTime,\n emitOnAllTabs\n } = Object.assign({\n channelName: 'idle-timer',\n fallbackInterval: 2000,\n responseTime: 100,\n removeTimeout: 1000 * 60,\n emitOnAllTabs: false\n }, crossTab === true ? {} : crossTab)\n\n this.manager = TabManager({\n type,\n channelName,\n fallbackInterval,\n responseTime,\n emitOnAllTabs,\n callbacks: this.callbackRefs,\n start: this.start,\n reset: this.reset,\n pause: this.pause,\n resume: this.resume\n })\n }\n }\n\n /**\n * Binds the specified events\n * @private\n */\n _bindEvents () {\n // Don't bind events if\n // we are not in a browser\n if (!IS_BROWSER) return\n // Otherwise we bind all the events\n // to the supplied element\n const { element, events, passive, capture } = this.props\n if (!this.eventsBound) {\n events.forEach(e => {\n element.addEventListener(e, this.handleEvent, {\n capture,\n passive\n })\n })\n this.eventsBound = true\n }\n }\n\n /**\n * Unbinds all the bound events\n * @private\n */\n _unbindEvents (force = false) {\n // If we are not in a browser\n // we don't need to unbind events\n if (!IS_BROWSER) return\n // Unbind all events\n const { element, events, passive, capture } = this.props\n if (this.eventsBound || force) {\n events.forEach(e => {\n element.removeEventListener(e, this.handleEvent, {\n capture,\n passive\n })\n })\n this.eventsBound = false\n }\n }\n\n /**\n * Toggles the idle state and calls\n * the correct action function\n * @private\n */\n _toggleIdleState (e) {\n // Fire the appropriate action\n // and pass the event through\n // Toggle the idle state\n this.setState((prevState) => ({\n idle: !prevState.idle,\n lastIdle: !prevState.idle ? (+new Date()) - this.props.timeout : prevState.lastIdle,\n idleTime: prevState.idle ? prevState.idleTime + (+new Date()) - prevState.lastIdle : prevState.idleTime\n }), () => {\n const { onActive, onIdle, stopOnIdle } = this.props\n const { idle } = this.state\n if (idle) {\n if (stopOnIdle) {\n // Clear any existing timeout\n clearTimeout(this.tId)\n this.tId = null\n // Unbind events\n this._unbindEvents()\n }\n\n if (this.manager) {\n /* istanbul ignore next */\n this.manager.idle()\n } else {\n onIdle(e)\n }\n } else {\n this._bindEvents()\n if (this.manager) {\n /* istanbul ignore next */\n this.manager.active()\n } else {\n onActive(e)\n }\n }\n })\n }\n\n /**\n * Event handler for supported event types\n * @param {Object} e event object\n * @private\n */\n _handleEvent (e) {\n const { remaining, pageX, pageY, idle } = this.state\n const { timeout, stopOnIdle } = this.props\n\n // Fire onAction event\n this._onAction(e)\n\n // Already active, ignore events\n if (remaining) return\n\n // Mousemove event\n if (e.type === 'mousemove') {\n // If coords are same, it didn't move\n /* istanbul ignore next */\n if (e.pageX === pageX && e.pageY === pageY) {\n return\n }\n // If coords don't exist how could it move\n if (typeof e.pageX === 'undefined' && typeof e.pageY === 'undefined') {\n return\n }\n // Under 200 ms is hard to do\n // continuous activity will bypass this\n /* istanbul ignore next */\n const elapsed = this.getElapsedTime()\n /* istanbul ignore next */\n if (elapsed < 200) {\n return\n }\n }\n\n // Clear any existing timeout\n clearTimeout(this.tId)\n this.tId = null\n\n // Determine last time User was active, as can't rely on setTimeout ticking at the correct interval\n const elapsedTimeSinceLastActive = +new Date() - this.getLastActiveTime()\n\n // If the user is idle or last active time is more than timeout, flip the idle state\n if ((idle && !stopOnIdle) || (!idle && elapsedTimeSinceLastActive > timeout)) {\n this._toggleIdleState(e)\n }\n\n // Store when the user was last active\n // and update the mouse coordinates\n this.setState({\n lastActive: +new Date(),\n pageX: e.pageX,\n pageY: e.pageY\n })\n\n // If the user is idle and stopOnIdle flag is not set\n // set a new timeout\n if (idle) {\n if (!stopOnIdle) {\n this.tId = setTimeout(this._toggleIdleState, timeout)\n }\n } else {\n this.tId = setTimeout(this._toggleIdleState, timeout)\n }\n }\n\n /**\n * Set initial state and start timer\n * @name start\n */\n start (remote = true) {\n // Clear timeout\n clearTimeout(this.tId)\n this.tId = null\n\n // Bind the events\n this._bindEvents()\n\n // Reset state\n this.setState({\n idle: false,\n oldDate: +new Date(),\n lastActive: +new Date(),\n remaining: null\n })\n\n if (this.manager) {\n /* istanbul ignore next */\n this.manager.setAllIdle(false)\n /* istanbul ignore next */\n if (!remote && this.props.crossTab.emitOnAllTabs) {\n this.manager.send('start')\n }\n }\n\n // Set new timeout\n const { timeout } = this.props\n this.tId = setTimeout(this._toggleIdleState, timeout)\n }\n\n /**\n * Restore initial state and restart timer, calling onActive\n * @name reset\n */\n reset (remote = false) {\n // Clear timeout\n clearTimeout(this.tId)\n this.tId = null\n\n // Bind the events\n this._bindEvents()\n\n if (this.state.idle) {\n if (this.manager) {\n /* istanbul ignore next */\n this.manager.active()\n } else {\n this.props.onActive()\n }\n }\n\n if (this.manager) {\n /* istanbul ignore next */\n this.manager.setAllIdle(false)\n /* istanbul ignore next */\n if (!remote && this.props.crossTab.emitOnAllTabs) {\n this.manager.send('reset')\n }\n }\n\n // Reset state\n this.setState({\n idle: false,\n oldDate: +new Date(),\n lastActive: +new Date(),\n remaining: null\n })\n\n // Set new timeout\n const { timeout } = this.props\n this.tId = setTimeout(this._toggleIdleState, timeout)\n }\n\n /**\n * Store remaining time and stop timer\n * @name pause\n */\n pause (remote = false) {\n // Timer is already paused\n const { remaining } = this.state\n if (remaining !== null) return\n\n // Unbind events\n this._unbindEvents()\n\n // Clear existing timeout\n clearTimeout(this.tId)\n this.tId = null\n\n // Send event to other tabs\n if (this.manager) {\n /* istanbul ignore next */\n if (!remote && this.props.crossTab.emitOnAllTabs) {\n this.manager.send('pause')\n }\n }\n\n // Define how much is left on the timer\n this.setState({\n remaining: this.getRemainingTime()\n })\n }\n\n /**\n * Resumes a paused timer\n * @name resume\n */\n resume (remote = false) {\n // Timer is not paused\n const { remaining, idle } = this.state\n if (remaining === null) return\n\n // Bind events\n this._bindEvents()\n\n // Send event to other tabs\n if (this.manager) {\n /* istanbul ignore next */\n if (!remote && this.props.crossTab.emitOnAllTabs) {\n this.manager.send('resume')\n }\n }\n\n // Start timer and clear remaining\n // if we are in the active state\n if (!idle) {\n // Set a new timeout\n this.tId = setTimeout(this._toggleIdleState, remaining)\n // Set new state\n this.setState({ remaining: null, lastActive: +new Date() })\n }\n }\n\n /**\n * Time remaining before idle\n * @name getRemainingTime\n * @return {number} Milliseconds remaining\n */\n getRemainingTime () {\n const { remaining, lastActive } = this.state\n const { timeout } = this.props\n\n // If idle there is no time remaining\n if (remaining !== null) {\n return remaining < 0 ? 0 : remaining\n }\n\n // Determine remaining, if negative idle didn't finish flipping, just return 0\n const timeLeft = timeout - ((+new Date()) - lastActive)\n return timeLeft < 0 ? 0 : timeLeft\n }\n\n /**\n * How much time has elapsed\n * @name getElapsedTime\n * @return {Timestamp}\n */\n getElapsedTime () {\n const { oldDate } = this.state\n return (+new Date()) - oldDate\n }\n\n /**\n * Last time the user was idle\n * @name getLastIdleTime\n * @return {Timestamp}\n */\n getLastIdleTime () {\n const { lastIdle } = this.state\n return lastIdle\n }\n\n /**\n * Total time the user was idle\n * @name getTotalIdleTime\n * @return {number}\n */\n getTotalIdleTime () {\n const { idle, lastIdle, idleTime } = this.state\n if (idle) {\n return ((+new Date()) - lastIdle) + idleTime\n } else {\n return idleTime\n }\n }\n\n /**\n * Last time the user was active\n * @name getLastActiveTime\n * @return {Timestamp}\n */\n getLastActiveTime () {\n const { lastActive } = this.state\n return lastActive\n }\n\n /**\n * Total time the user was active\n * @name getTotalActiveTime\n * @return {number}\n */\n getTotalActiveTime () {\n return this.getElapsedTime() - this.getTotalIdleTime()\n }\n\n /**\n * Returns wether or not the user is idle\n * @name isIdle\n * @return {boolean}\n */\n isIdle () {\n const { idle } = this.state\n return idle\n }\n\n /**\n * Returns wether or not this is the leader tab\n * @name isLeader\n * @return {boolean}\n */\n isLeader () {\n return this.manager ? this.manager.isLeader() : true\n }\n}\n\n/**\n * Type checks for every property\n * @type {Object}\n * @private\n */\nIdleTimer.propTypes = {\n /**\n * Activity Timeout in milliseconds\n * default: 1200000\n * @type {Number}\n */\n timeout: PropTypes.number,\n /**\n * DOM events to listen to\n * default: see [default events](https://github.com/SupremeTechnopriest/react-idle-timer#default-events)\n * @type {Array}\n */\n events: PropTypes.arrayOf(PropTypes.string),\n /**\n * Function to call when user is idle\n * default: () => {}\n * @type {Function}\n */\n onIdle: PropTypes.func,\n /**\n * Function to call when user becomes active\n * default: () => {}\n * @type {Function}\n */\n onActive: PropTypes.func,\n /**\n * Function to call on user actions\n * default: () => {}\n * @type {Function}\n */\n onAction: PropTypes.func,\n /**\n * Debounce the onAction function by setting delay in milliseconds\n * default: 0\n * @type {Number}\n */\n debounce: PropTypes.number,\n /**\n * Throttle the onAction function by setting delay in milliseconds\n * default: 0\n * @type {Number}\n */\n throttle: PropTypes.number,\n /**\n * Throttle the event handler function by setting delay in milliseconds\n * default: 200\n * @type {Number}\n */\n eventsThrottle: PropTypes.number,\n /**\n * Element reference to bind activity listeners to\n * default: document\n * @type {Object}\n */\n element: PropTypes.oneOfType([PropTypes.object, PropTypes.element]),\n /**\n * Start the timer on mount\n * default: true\n * @type {Boolean}\n */\n startOnMount: PropTypes.bool,\n /**\n * Require the timer to be started manually.\n * default: false\n * @type {Boolean}\n */\n startManually: PropTypes.bool,\n /**\n * Once the user goes idle the IdleTimer will not\n * reset on user input instead, reset() must be\n * called manually to restart the timer\n * default: false\n * @type {Boolean}\n */\n stopOnIdle: PropTypes.bool,\n /**\n * Bind events passively\n * default: true\n * @type {Boolean}\n */\n passive: PropTypes.bool,\n /**\n * Capture events\n * default: true\n * @type {Boolean}\n */\n capture: PropTypes.bool,\n /**\n * Cross Tab functionality.\n * default: false\n * @type {Boolean|Object}\n */\n crossTab: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n type: PropTypes.oneOf(['broadcastChannel', 'localStorage', 'simulate']),\n channelName: PropTypes.string,\n fallbackInterval: PropTypes.number,\n responseTime: PropTypes.number,\n removeTimeout: PropTypes.number,\n emitOnAllTabs: PropTypes.bool\n })\n ])\n}\n\n/**\n * Sets default property values\n * @type {Object}\n * @private\n */\nIdleTimer.defaultProps = {\n timeout: 1000 * 60 * 20,\n element: DEFAULT_ELEMENT,\n events: DEFAULT_EVENTS,\n onIdle: () => { },\n onActive: () => { },\n onAction: () => { },\n debounce: 0,\n throttle: 0,\n eventsThrottle: 200,\n startOnMount: true,\n startManually: false,\n stopOnIdle: false,\n capture: true,\n passive: true,\n crossTab: false\n}\n\nexport default IdleTimer\n","/**\n * ___ _ _ _____ _\n * |_ _|__| | | __|_ _(_)_ __ ___ ___ _ __\n * | |/ _` | |/ _ \\| | | | '_ ` _ \\ / _ \\ '__|\n * | | (_| | | __/| | | | | | | | | __/ |\n * |___\\__,_|_|\\___||_| |_|_| |_| |_|\\___|_|\n *\n * @name useIdleTimer\n * @author Randy Lebeau\n * @private\n */\n\nimport { useEffect, useRef, useMemo } from 'react'\nimport PropTypes from 'prop-types'\nimport { TabManager } from './TabManager'\nimport { IS_BROWSER, DEFAULT_ELEMENT, DEFAULT_EVENTS, debounced, throttled } from './utils'\n\n/**\n * Detects when your user is idle\n * @function useIdleTimer\n * @private\n */\nfunction useIdleTimer ({\n timeout = 1000 * 60 * 20,\n element = DEFAULT_ELEMENT,\n events = DEFAULT_EVENTS,\n onIdle = () => { },\n onActive = () => { },\n onAction = () => { },\n debounce = 0,\n throttle = 0,\n eventsThrottle = 200,\n startOnMount = true,\n startManually = false,\n stopOnIdle = false,\n capture = true,\n passive = true,\n crossTab = false\n} = {}) {\n const eventsBound = useRef(false)\n const idle = useRef(true)\n const oldDate = useRef(+new Date())\n const remaining = useRef(null)\n const pageX = useRef(null)\n const pageY = useRef(null)\n const tId = useRef(null)\n const lastActive = useRef(null)\n const lastIdle = useRef(null)\n const idleTime = useRef(0)\n const firstLoad = useRef(true)\n const _timeout = useRef(timeout)\n const manager = useRef(null)\n\n /* istanbul ignore next */\n if (crossTab) {\n if (crossTab === true) crossTab = {}\n crossTab = Object.assign({\n channelName: 'idle-timer',\n fallbackInterval: 2000,\n responseTime: 100,\n removeTimeout: 1000 * 60,\n emitOnAllTabs: false\n }, crossTab)\n }\n\n // Event emitters\n const emitOnIdle = useRef(onIdle)\n const emitOnActive = useRef(onActive)\n const emitOnAction = useRef(onAction)\n\n useEffect(() => {\n emitOnIdle.current = onIdle\n }, [onIdle])\n\n useEffect(() => {\n emitOnActive.current = onActive\n }, [onActive])\n\n useEffect(() => {\n emitOnAction.current = onAction\n }, [onAction])\n\n const intermediateOnAction = useMemo(() => {\n function callOnAction (e) {\n emitOnAction.current(e)\n }\n\n // Cancel any existing debounce timeouts\n if (callOnAction.cancel) callOnAction.cancel()\n\n // Create debounced action if applicable\n if (debounce > 0) {\n return debounced(callOnAction, debounce)\n\n // Create throttled action if applicable\n } else if (throttle > 0) {\n return throttled(callOnAction, throttle)\n\n // No throttle or debounce\n } else {\n return callOnAction\n }\n }, [throttle, debounce])\n\n /**\n * Toggles the idle state and calls\n * the correct action function\n * @private\n */\n const _toggleIdleState = e => {\n const nextIdle = !idle.current\n idle.current = nextIdle\n if (nextIdle) {\n if (stopOnIdle) {\n // Clear any existing timeout\n clearTimeout(tId.current)\n tId.current = null\n // Unbind events\n _unbindEvents()\n }\n lastIdle.current = (+new Date()) - _timeout.current\n if (manager.current) {\n /* istanbul ignore next */\n manager.current.idle()\n } else {\n emitOnIdle.current(e)\n }\n } else {\n idleTime.current += (+new Date()) - lastIdle.current\n _bindEvents()\n if (manager.current) {\n /* istanbul ignore next */\n manager.current.active()\n } else {\n emitOnActive.current(e)\n }\n }\n }\n\n /**\n * Event handler\n * @param {Event} e\n */\n const _handleEvent = e => {\n // Fire onAction event\n intermediateOnAction(e)\n\n // Already active, ignore events\n if (remaining.current) return\n\n // Mousemove event\n /* istanbul ignore next */\n if (e.type === 'mousemove') {\n // If coords are same, it didn't move\n if (e.pageX === pageX && e.pageY === pageY) {\n return\n }\n // If coords don't exist how could it move\n if (typeof e.pageX === 'undefined' && typeof e.pageY === 'undefined') {\n return\n }\n // Under 200 ms is hard to do\n // continuous activity will bypass this\n const elapsed = getElapsedTime()\n if (elapsed < 200) {\n return\n }\n }\n\n // Clear any existing timeout\n clearTimeout(tId.current)\n tId.current = null\n\n // Determine last time User was active, as can't rely on setTimeout ticking at the correct interval\n const elapsedTimeSinceLastActive = +new Date() - getLastActiveTime()\n\n // If the user is idle or last active time is more than timeout, flip the idle state\n if (\n (idle.current && !stopOnIdle) ||\n (!idle.current && elapsedTimeSinceLastActive > _timeout.current)\n ) {\n _toggleIdleState(e)\n }\n\n // Store when the user was last active\n // and update the mouse coordinates\n lastActive.current = +new Date()\n pageX.current = e.pageX\n pageY.current = e.pageY\n\n // If the user is active, set a new timeout\n if (!idle.current) {\n tId.current = setTimeout(_toggleIdleState, _timeout.current)\n }\n }\n\n /**\n * Reference to current handleEvent function.\n * @private\n */\n const handleEvent = useRef(_handleEvent)\n\n /**\n * Binds the specified events\n * @private\n */\n const _bindEvents = () => {\n // Don't bind events if\n // we are not in a browser\n if (!IS_BROWSER) return\n // Otherwise we bind all the events\n // to the supplied element\n if (!eventsBound.current) {\n events.forEach(e => {\n element.addEventListener(e, handleEvent.current, {\n capture,\n passive\n })\n })\n eventsBound.current = true\n }\n }\n\n /**\n * Unbinds all the bound events\n * @private\n */\n const _unbindEvents = (force = false) => {\n // If we are not in a browser\n // we don't need to unbind events\n if (!IS_BROWSER) return\n // Unbind all events\n if (eventsBound.current || force) {\n events.forEach(e => {\n element.removeEventListener(e, handleEvent.current, {\n capture,\n passive\n })\n })\n eventsBound.current = false\n }\n }\n\n /**\n * Time remaining before idle\n * @name getRemainingTime\n * @return {number} Milliseconds remaining\n */\n const getRemainingTime = () => {\n // If idle there is no time remaining\n if (remaining.current !== null) {\n return remaining.current < 0 ? 0 : remaining.current\n }\n\n // Determine remaining, if negative idle didn't finish flipping, just return 0\n const timeLeft = _timeout.current - ((+new Date()) - lastActive.current)\n return timeLeft < 0 ? 0 : timeLeft\n }\n\n /**\n * How much time has elapsed\n * @name getElapsedTime\n * @return {Timestamp}\n */\n const getElapsedTime = () => (+new Date()) - oldDate.current\n\n /**\n * Last time the user was idle\n * @name getLastIdleTime\n * @return {Timestamp}\n */\n const getLastIdleTime = () => lastIdle.current\n\n /**\n * Get the total time user is idle\n * @name getTotalIdleTime\n * @return {number} Milliseconds idle\n */\n const getTotalIdleTime = () => {\n if (idle.current) {\n return ((+new Date()) - lastIdle.current) + idleTime.current\n } else {\n return idleTime.current\n }\n }\n\n /**\n * Last time the user was active\n * @name getLastActiveTime\n * @return {Timestamp}\n */\n const getLastActiveTime = () => lastActive.current\n\n /**\n * Get the total time user is active\n * @name getTotalActiveTime\n * @return {number} Milliseconds active\n */\n const getTotalActiveTime = () => getElapsedTime() - getTotalIdleTime()\n\n /**\n * Returns wether or not the user is idle\n * @name isIdle\n * @return {Boolean}\n */\n const isIdle = () => idle.current\n\n /**\n * Returns wether or not this is the leader tab\n * @returns {Boolean}\n */\n const isLeader = () => manager.current ? manager.current.isLeader() : true\n\n /**\n * Set initial state and start timer\n * @name reset\n */\n const start = (remote = false) => {\n // Clear timeout\n clearTimeout(tId.current)\n tId.current = null\n\n // Bind the events\n _bindEvents()\n\n // Set state\n idle.current = false\n oldDate.current = +new Date()\n lastActive.current = +new Date()\n remaining.current = null\n\n if (manager.current) {\n /* istanbul ignore next */\n manager.current.setAllIdle(false)\n /* istanbul ignore next */\n if (!remote && crossTab.emitOnAllTabs) {\n manager.current.send('start')\n }\n }\n\n // Set new timeout\n tId.current = setTimeout(_toggleIdleState, _timeout.current)\n }\n\n /**\n * Restore initial state and restart timer, calling onActive\n * @name reset\n */\n const reset = (remote = false) => {\n // Clear timeout\n clearTimeout(tId.current)\n tId.current = null\n\n // Bind the events\n _bindEvents()\n\n // Emit active\n if (idle.current) {\n if (manager.current) {\n /* istanbul ignore next */\n manager.current.active()\n } else {\n emitOnActive.current()\n }\n }\n\n // Reset state\n idle.current = false\n oldDate.current = +new Date()\n lastActive.current = +new Date()\n remaining.current = null\n\n if (manager.current) {\n /* istanbul ignore next */\n manager.current.setAllIdle(false)\n /* istanbul ignore next */\n if (!remote && crossTab.emitOnAllTabs) {\n manager.current.send('reset')\n }\n }\n\n // Set new timeout\n tId.current = setTimeout(_toggleIdleState, _timeout.current)\n }\n\n /**\n * Store remaining time and stop timer\n * @name pause\n */\n const pause = (remote = false) => {\n // Timer is already paused\n if (remaining.current !== null) return\n\n // Unbind events\n _unbindEvents()\n\n // Clear existing timeout\n clearTimeout(tId.current)\n tId.current = null\n\n // Define how much is left on the timer\n remaining.current = getRemainingTime()\n\n if (manager.current) {\n /* istanbul ignore next */\n if (!remote && crossTab.emitOnAllTabs) {\n manager.current.send('pause')\n }\n }\n }\n\n /**\n * Resumes a paused timer\n * @name resume\n */\n const resume = (remote = false) => {\n // Timer is not paused\n if (remaining.current === null) return\n\n // Bind events\n _bindEvents()\n\n // Start timer and clear remaining\n // if we are in the idle state\n if (!idle.current) {\n // Set a new timeout\n tId.current = setTimeout(_toggleIdleState, remaining.current)\n // Set states\n remaining.current = null\n lastActive.current = +new Date()\n }\n\n if (manager.current) {\n /* istanbul ignore next */\n if (!remote && crossTab.emitOnAllTabs) {\n manager.current.send('resume')\n }\n }\n }\n\n /**\n * Hook lifecycle\n */\n useEffect(() => {\n // Debounce and throttle can't both be set\n if (debounce > 0 && throttle > 0) {\n throw new Error('onAction can either be throttled or debounced (not both)')\n }\n\n // Set up cross tab\n /* istanbul ignore next */\n if (crossTab) {\n manager.current = TabManager({\n type: crossTab.type,\n channelName: crossTab.channelName,\n fallbackInterval: crossTab.fallbackInterval,\n responseTime: crossTab.responseTime,\n emitOnAllTabs: crossTab.emitOnAllTabs,\n callbacks: {\n onIdle: emitOnIdle.current,\n onActive: emitOnActive.current\n },\n start,\n reset,\n pause,\n resume\n })\n }\n\n // If startOnMount is enabled, start the timer\n if (startManually) {\n return async () => {\n clearTimeout(tId.current)\n _unbindEvents(true)\n if (crossTab) await manager.current.close()\n }\n }\n\n if (startOnMount) {\n start()\n } else {\n _bindEvents()\n }\n\n // Clear and unbind on unmount\n return async () => {\n clearTimeout(tId.current)\n _unbindEvents(true)\n if (intermediateOnAction.cancel) intermediateOnAction.cancel()\n if (crossTab) await manager.current.close()\n }\n }, [])\n\n useEffect(() => {\n const eventsWereBound = eventsBound.current\n if (eventsWereBound) _unbindEvents()\n if (eventsThrottle > 0) {\n handleEvent.current = throttled(_handleEvent, eventsThrottle)\n } else {\n handleEvent.current = _handleEvent\n }\n if (eventsWereBound) _bindEvents()\n }, [eventsThrottle])\n\n useEffect(() => {\n _timeout.current = timeout\n if (!firstLoad.current && idle.current) {\n reset()\n }\n firstLoad.current = false\n }, [timeout])\n\n return {\n isIdle,\n isLeader,\n start,\n pause,\n reset,\n resume,\n getLastIdleTime,\n getTotalIdleTime,\n getLastActiveTime,\n getTotalActiveTime,\n getElapsedTime,\n getRemainingTime\n }\n}\n\n/**\n * Type checks for every property\n * @type {Object}\n * @private\n */\nuseIdleTimer.propTypes = {\n /**\n * Activity Timeout in milliseconds\n * default: 1200000\n * @type {number}\n */\n timeout: PropTypes.number,\n /**\n * DOM events to listen to\n * default: see [default events](https://github.com/SupremeTechnopriest/react-idle-timer#default-events)\n * @type {Array}\n */\n events: PropTypes.arrayOf(PropTypes.string),\n /**\n * Function to call when user is idle.\n * default: () => {}\n * @type {Function}\n */\n onIdle: PropTypes.func,\n /**\n * Function to call when user becomes active.\n * default: () => {}\n * @type {Function}\n */\n onActive: PropTypes.func,\n /**\n * Function to call on user actions.\n * default: () => {}\n * @type {Function}\n */\n onAction: PropTypes.func,\n /**\n * Debounce the onAction function by setting delay in milliseconds.\n * default: 0\n * @type {number}\n */\n debounce: PropTypes.number,\n /**\n * Throttle the onAction function by setting delay in milliseconds.\n * default: 0\n * @type {number}\n */\n throttle: PropTypes.number,\n /**\n * Throttle the event handler function by setting delay in milliseconds.\n * default: 200\n * @type {number}\n */\n eventsThrottle: PropTypes.number,\n /**\n * Element reference to bind activity listeners to.\n * default: document\n * @type {Object}\n */\n element: PropTypes.oneOfType([PropTypes.object, PropTypes.element]),\n /**\n * Start the timer on mount.\n * default: true\n * @type {Boolean}\n */\n startOnMount: PropTypes.bool,\n /**\n * Require the timer to be started manually.\n * default: false\n * @type {Boolean}\n */\n startManually: PropTypes.bool,\n /**\n * Once the user goes idle the IdleTimer will not\n * reset on user input instead, start() or reset() must be\n * called manually to restart the timer.\n * default: false\n * @type {Boolean}\n */\n stopOnIdle: PropTypes.bool,\n /**\n * Bind events passively.\n * default: true\n * @type {Boolean}\n */\n passive: PropTypes.bool,\n /**\n * Capture events.\n * default: true\n * @type {Boolean}\n */\n capture: PropTypes.bool,\n /**\n * Cross Tab functionality.\n * default: false\n * @type {Boolean|Object}\n */\n crossTab: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n type: PropTypes.oneOf(['broadcastChannel', 'localStorage', 'simulate']),\n channelName: PropTypes.string,\n fallbackInterval: PropTypes.number,\n responseTime: PropTypes.number,\n removeTimeout: PropTypes.number,\n emitOnAllTabs: PropTypes.bool\n })\n ])\n}\n\n/**\n * Sets default property values\n * @type {Object}\n * @private\n */\nuseIdleTimer.defaultProps = {\n timeout: 1000 * 60 * 20,\n element: DEFAULT_ELEMENT,\n events: DEFAULT_EVENTS,\n onIdle: () => { },\n onActive: () => { },\n onAction: () => { },\n debounce: 0,\n throttle: 0,\n eventsThrottle: 200,\n startOnMount: true,\n startManually: false,\n stopOnIdle: false,\n capture: true,\n passive: true,\n crossTab: false\n}\n\nexport default useIdleTimer\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useIdleTimer } from \"react-idle-timer\";\r\nimport { Modal, Result } from \"antd\";\r\nimport Text from \"antd/lib/typography/Text\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\n\r\nexport default function IdleTimer() {\r\n\tconst timeout = 3600000; // 60 mins (1,000 x 60 x 60)\r\n\tconst [remaining, setRemaining] = useState(timeout);\r\n\tconst { instance } = useMsal();\r\n\r\n\tconst handleOnIdle = () => {\r\n\t\tinstance.logoutRedirect({\r\n\t\t\tpostLogoutRedirectUri: \"/#/SignedOut\",\r\n\t\t});\r\n\t};\r\n\r\n\tconst { getRemainingTime } = useIdleTimer({\r\n\t\ttimeout,\r\n\t\tonIdle: handleOnIdle,\r\n\t\tcrossTab: {\r\n\t\t\temitOnAllTabs: true,\r\n\t\t},\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tsetRemaining(getRemainingTime());\r\n\r\n\t\tsetInterval(() => {\r\n\t\t\tsetRemaining(getRemainingTime());\r\n\t\t}, 1000);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<Modal open={remaining < 300000} footer={null} closable={false}>\r\n\t\t\t<Result\r\n\t\t\t\ttitle=\"Are you still there?\"\r\n\t\t\t\tsubTitle=\"You're about to be automatically signed out due to inactivity. Click anywhere to stay signed in.\"\r\n\t\t\t>\r\n\t\t\t\t<Text strong>\r\n\t\t\t\t\tTime Remaining: {Number(remaining / 1000).toFixed(0)}{\" \"}\r\n\t\t\t\t\tseconds\r\n\t\t\t\t</Text>\r\n\t\t\t</Result>\r\n\t\t</Modal>\r\n\t);\r\n}\r\n","import { notification } from \"antd\";\r\nimport React, { useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport GlobalLoading from \"components/GlobalLoading\";\r\nimport { Header, Content, Footer, Layout } from \"components/Layout\";\r\nimport {\r\n\tfetchFormDefinitionById,\r\n\tpostRequestFormComplete,\r\n\tselectFormError,\r\n\terrorEdited as formErrorEdited,\r\n\tselectFormStatus,\r\n\tfetchCmeFormById,\r\n} from \"reducers/formSlice\";\r\nimport {\r\n\tloadingEdited,\r\n\tscreenTitleEdited,\r\n\tselectGlobal,\r\n} from \"reducers/global\";\r\nimport { fetchTreeByDomain } from \"reducers/treesSlice\";\r\nimport { CustomButton } from \"components/Paginator\";\r\nimport { ADMIN, useSecurity } from \"features/cme/Components/security\";\r\nimport Leave from \"../leaveLine\";\r\nimport { validateAllLeaveLines } from \"../leaveLine/leaveLineSlice\";\r\n\r\nimport { selectRequestFormData } from \"../requestForm/requestFormSlice\";\r\nimport {\r\n\terrorEdited,\r\n\tpostProcessLeaveRequest,\r\n\tselectAdminError,\r\n\tselectAdminStatus,\r\n} from \"./adminSlice\";\r\nimport { selectUserOrganisation } from \"reducers/securitySlice\";\r\n\r\nconst LeaveClaim = () => {\r\n\tuseSecurity(ADMIN);\r\n\tconst { formDefinitionId, formId, formTypeId } = useParams();\r\n\tconst dispatch = useDispatch();\r\n\tconst domain = useSelector(selectUserOrganisation);\r\n\tconst { loading } = useSelector(selectGlobal);\r\n\r\n\t//reset store every time a new form or form def is loaded\r\n\tuseEffect(() => {\r\n\t\tdispatch({ type: \"RESET_CME\" });\r\n\t\t//while we are loading forms/defs etc, we set the global loading\r\n\t\tdispatch(loadingEdited(true));\r\n\t}, [dispatch, formId, formDefinitionId]);\r\n\r\n\t//first retrieve form definition\r\n\tuseEffect(() => {\r\n\t\tconst fetchData = async () => {\r\n\t\t\tdispatch(fetchFormDefinitionById(formDefinitionId));\r\n\t\t};\r\n\r\n\t\tconst fetchFormDefinition = async () => {\r\n\t\t\tif (formDefinitionId && domain) {\r\n\t\t\t\tawait fetchData();\r\n\t\t\t\tdispatch(fetchTreeByDomain({ domain }));\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tfetchFormDefinition();\r\n\t}, [dispatch, formDefinitionId, domain]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst fetchAll = async () => {\r\n\t\t\t//load form\r\n\t\t\tif (formId) {\r\n\t\t\t\tdispatch(fetchCmeFormById(formId));\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst setup = async () => {\r\n\t\t\tawait fetchAll();\r\n\t\t\t//finally, we remove loading\r\n\t\t\tdispatch(loadingEdited(false));\r\n\t\t};\r\n\r\n\t\tsetup();\r\n\t}, [dispatch, formDefinitionId, formId, formTypeId]);\r\n\r\n\tconst history = useHistory();\r\n\t//get the parent form id of this form - this is what we need to call processLeaveRequest\r\n\tconst { parentFormId, statusId } = useSelector(selectRequestFormData);\r\n\tconst onSubmit = async () => {\r\n\t\t//validate\r\n\t\tconst errors = await dispatch(validateAllLeaveLines()).unwrap();\r\n\r\n\t\tif (errors === 0) {\r\n\t\t\t//1. save requestForm in its entirety\r\n\t\t\tawait dispatch(\r\n\t\t\t\tpostRequestFormComplete({\r\n\t\t\t\t\toptions: { isSilentSave: true },\r\n\t\t\t\t})\r\n\t\t\t).unwrap();\r\n\t\t\t//2. process leave request\r\n\t\t\tawait dispatch(\r\n\t\t\t\t//the processing of leave request is based on the parent form that generated this form\r\n\t\t\t\tpostProcessLeaveRequest({ formId: parentFormId, statusId: 3 })\r\n\t\t\t).unwrap();\r\n\t\t\t//success notification\r\n\t\t\tnotification.success({ message: \"Leave processed successfully!\" });\r\n\t\t\t//clear out previous results\r\n\t\t\tdispatch({ type: \"RESET_ADMIN\" });\r\n\t\t\tdispatch({ type: \"RESET_CME\" });\r\n\t\t\t//redirect to leave manager\r\n\t\t\thistory.push(\"/CME/Coordinator/leavemanager\");\r\n\t\t}\r\n\t};\r\n\r\n\tconst adminError = useSelector(selectAdminError);\r\n\tuseEffect(() => {\r\n\t\tif (adminError) {\r\n\t\t\tnotification.error({\r\n\t\t\t\tmessage: \"Error while process leave submission\",\r\n\t\t\t\tdescription:\r\n\t\t\t\t\t\"This leave form could not be processed correctly. Please try submitting again - if issues persist, please contact support.\",\r\n\t\t\t\tduration: 0,\r\n\t\t\t\tonClose: () => dispatch(errorEdited(null)),\r\n\t\t\t});\r\n\t\t}\r\n\t}, [adminError, dispatch]);\r\n\tconst formError = useSelector(selectFormError);\r\n\tuseEffect(() => {\r\n\t\tif (formError) {\r\n\t\t\tnotification.error({\r\n\t\t\t\tmessage: \"Error while process leave submission\",\r\n\t\t\t\tdescription:\r\n\t\t\t\t\t\"This leave form could not be processed correctly. Please try submitting again - if issues persist, please contact support.\",\r\n\t\t\t\tduration: 0,\r\n\t\t\t\tonClose: () => dispatch(formErrorEdited(null)),\r\n\t\t\t});\r\n\t\t}\r\n\t}, [formError, dispatch]);\r\n\r\n\tconst adminStatus = useSelector(selectAdminStatus);\r\n\tconst formStatus = useSelector(selectFormStatus);\r\n\r\n\treturn (\r\n\t\t<Layout>\r\n\t\t\t<Header />\r\n\t\t\t<Content>\r\n\t\t\t\t{loading ? <GlobalLoading /> : <LeaveClaimContainer />}\r\n\t\t\t</Content>\r\n\t\t\t<Footer>\r\n\t\t\t\t<CustomButton\r\n\t\t\t\t\tvisible={statusId === 1}\r\n\t\t\t\t\ttype=\"primary\"\r\n\t\t\t\t\tonClick={onSubmit}\r\n\t\t\t\t\tdisabled={\r\n\t\t\t\t\t\tadminStatus === \"loading\" || formStatus === \"loading\"\r\n\t\t\t\t\t}\r\n\t\t\t\t>\r\n\t\t\t\t\tSubmit\r\n\t\t\t\t</CustomButton>\r\n\t\t\t</Footer>\r\n\t\t</Layout>\r\n\t);\r\n};\r\n\r\nconst LeaveClaimContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\r\n\t//update screen name\r\n\tuseEffect(() => {\r\n\t\tdispatch(screenTitleEdited(\"Edit Leave Taken\"));\r\n\t}, [dispatch]);\r\n\r\n\treturn <Leave type=\"leaveClaim\" />;\r\n};\r\n\r\nexport default LeaveClaim;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport Renderer from \"components/Renderer\";\r\nimport Error from \"components/Error\";\r\nimport { selectSecurityStatus, selectSecurityError } from \"reducers\";\r\nimport { fetchFormById, idGenerated } from \"reducers/formSlice\";\r\nimport { fetchAttachmentsByFormId } from \"reducers/attachmentsSlice\";\r\nimport { fetchWorkflowsByFormId } from \"reducers/workflowsSlice\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { fetchTreeByDomain } from \"reducers/treesSlice\";\r\nimport { fetchWorkflowHistoryByFormId } from \"reducers/workflowHistorySlice\";\r\nimport { fetchRcs } from \"./assetRc/assetRcSlice\";\r\nimport { fetchDivisions } from \"./division/divisionSlice\";\r\nimport GlobalLoading from \"components/GlobalLoading\";\r\nimport IeCheck from \"components/IeCheck\";\r\nimport { dispatchCapexForm } from \"./form-definition/capex\";\r\n\r\nconst CapexQna = () => {\r\n\tconst [ready, setReady] = useState(false);\r\n\tconst { formDefinitionId, formId } = useParams();\r\n\tconst securityStatus = useSelector(selectSecurityStatus);\r\n\tconst securityError = useSelector(selectSecurityError);\r\n\tconst { status, message } = securityError || {};\r\n\tconst dispatch = useDispatch();\r\n\tconst TREE_DOMAIN = \"Test\";\r\n\r\n\tuseEffect(() => {\r\n\t\tconst fetchFormDefinition = async () => {\r\n\t\t\tdispatch(fetchTreeByDomain({ domain: TREE_DOMAIN }));\r\n\t\t\tdispatch(\r\n\t\t\t\tfetchRcs({ code: \"WTMHADS\", stateKey: \"mentalHealthRcs\" })\r\n\t\t\t);\r\n\t\t\tdispatch(fetchRcs({ code: \"WTFACIL\", stateKey: \"facilityRcs\" }));\r\n\t\t\tdispatch(fetchRcs({ code: \"WTTOTAL\", stateKey: \"rcs\" }));\r\n\t\t\tdispatch(fetchDivisions());\r\n\t\t};\r\n\r\n\t\tconst fetchCommon = async () => {\r\n\t\t\tdispatch(fetchWorkflowsByFormId({ responseFormId: formId }));\r\n\t\t\tdispatch(fetchWorkflowHistoryByFormId({ responseFormId: formId }));\r\n\t\t};\r\n\r\n\t\tconst fetchForm = async () => {\r\n\t\t\tdispatch(fetchFormById(formId));\r\n\t\t\tdispatch(fetchAttachmentsByFormId(formId));\r\n\t\t};\r\n\r\n\t\tconst fetchAll = async () => {\r\n\t\t\t//reset store every time a new form or form def is loaded\r\n\t\t\tdispatch({ type: \"RESET\" });\r\n\t\t\t//this dispatches form def based on the javascript capex.js file\r\n\t\t\tdispatchCapexForm();\r\n\t\t\t//always fetch definition\r\n\t\t\tfetchFormDefinition();\r\n\t\t\t//fetch form if id was passed\r\n\t\t\tif (formId) {\r\n\t\t\t\tfetchCommon();\r\n\t\t\t\tawait fetchForm();\r\n\t\t\t} else {\r\n\t\t\t\t//generate a new ID for the new form\r\n\t\t\t\tdispatch(idGenerated());\r\n\t\t\t}\r\n\t\t\tsetReady(true);\r\n\t\t};\r\n\t\tfetchAll();\r\n\t}, [dispatch, formId, formDefinitionId]);\r\n\r\n\treturn securityStatus === \"failed\" ? (\r\n\t\t<Error error={status} message={message} />\r\n\t) : ready ? (\r\n\t\t<IeCheck>\r\n\t\t\t<Renderer />\r\n\t\t</IeCheck>\r\n\t) : (\r\n\t\t<GlobalLoading />\r\n\t);\r\n};\r\n\r\nexport default CapexQna;\r\n","import React, { Suspense, useEffect } from \"react\";\r\nimport { HashRouter, Route, Switch } from \"react-router-dom\";\r\nimport ErrorBoundary from \"./ErrorBoundary\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { selectAuthToken } from \"../reducers\";\r\nimport { login, selectSecurityStatus } from \"../reducers/securitySlice\";\r\nimport GenericUnauthenticated from \"./Unauthenticated\";\r\nimport IdleTimer from \"../components/IdleTimer\";\r\nimport GlobalLoading from \"./GlobalLoading\";\r\nimport LeaveClaim from \"../features/cme/admin/LeaveClaim\";\r\nimport CapexQna from \"../features/capex/CapexQna\";\r\n\r\nconst CmeWrapper = React.lazy(() =>\r\n\timport(\"../features/cme/Components/CmeWrapper\")\r\n);\r\nconst FormApproval = React.lazy(() => import(\"../features/cme/formApproval\"));\r\nconst FormRedirector = React.lazy(() =>\r\n\timport(\"features/cme/formJumper/FormRedirector\")\r\n);\r\nconst CapexDashboard = React.lazy(() =>\r\n\timport(\"../features/capex/CapexDashboard\")\r\n);\r\nconst Dashboard = React.lazy(() => import(\"../features/cme/dashboard\"));\r\nconst MyHistory = React.lazy(() => import(\"../features/cme/myHistory\"));\r\nconst ManageForms = React.lazy(() =>\r\n\timport(\"../features/cme/admin/ManageForms\")\r\n);\r\nconst Cme = React.lazy(() => import(\"../features/cme\"));\r\nconst Balance = React.lazy(() => import(\"../features/cme/balance\"));\r\nconst Unauthenticated = React.lazy(() =>\r\n\timport(\"../features/cme/unauthenticated\")\r\n);\r\nconst UnauthenticatedCapex = React.lazy(() =>\r\n\timport(\"../features/capex/unauthenticated\")\r\n);\r\nconst Admin = React.lazy(() => import(\"../features/cme/admin\"));\r\nconst CapexAdmin = React.lazy(() => import(\"../features/capex/admin\"));\r\nconst Payroll = React.lazy(() => import(\"../features/cme/payroll/Payroll\"));\r\nconst PayrollDashboard = React.lazy(() =>\r\n\timport(\"../features/cme/payroll/Dashboard\")\r\n);\r\nconst Coordinator = React.lazy(() =>\r\n\timport(\"../features/cme/admin/Coordinator\")\r\n);\r\n\r\nconst CapexWrapper = React.lazy(() => import(\"../features/capex/CapexWrapper\"));\r\nconst PayrollFormJumper = React.lazy(() =>\r\n\timport(\"../features/cme/payroll/PayrollFormJumper\")\r\n);\r\n\r\nconst RocWrapper = React.lazy(() => import(\"features/roc/RocWrapper\"));\r\nconst RoC = React.lazy(() => import(\"features/roc/Roc\"));\r\n\r\nconst Router = () => {\r\n\t//establish user and token in state.security reducer\r\n\tconst hasToken = useSelector(selectAuthToken);\r\n\tconst securityStatus = useSelector(selectSecurityStatus);\r\n\tconst dispatch = useDispatch();\r\n\tuseEffect(() => {\r\n\t\tif (!hasToken) dispatch(login());\r\n\t}, [dispatch, hasToken]);\r\n\treturn (\r\n\t\t<HashRouter>\r\n\t\t\t<ErrorBoundary>\r\n\t\t\t\t{process.env.REACT_APP_ENVIRONMENT === \"AZURE\" ? (\r\n\t\t\t\t\t<IdleTimer />\r\n\t\t\t\t) : null}\r\n\t\t\t\t<Suspense fallback={<GlobalLoading />}>\r\n\t\t\t\t\t{hasToken ? (\r\n\t\t\t\t\t\t<Switch>\r\n\t\t\t\t\t\t\t<Route path=\"/form/:formDefinitionId?/:formId?\">\r\n\t\t\t\t\t\t\t\t<CapexWrapper>\r\n\t\t\t\t\t\t\t\t\t<CapexQna />\r\n\t\t\t\t\t\t\t\t</CapexWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/RoC\">\r\n\t\t\t\t\t\t\t\t<RocWrapper>\r\n\t\t\t\t\t\t\t\t\t<RoC />\r\n\t\t\t\t\t\t\t\t</RocWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/Capex/Dashboard\">\r\n\t\t\t\t\t\t\t\t<CapexWrapper>\r\n\t\t\t\t\t\t\t\t\t<CapexDashboard />\r\n\t\t\t\t\t\t\t\t</CapexWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/Capex/Admin/:screen?/:id?\">\r\n\t\t\t\t\t\t\t\t<CapexWrapper>\r\n\t\t\t\t\t\t\t\t\t<CapexAdmin />\r\n\t\t\t\t\t\t\t\t</CapexWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/Dashboard\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<Dashboard />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/Balance/:mode/:personId?\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<Balance />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/MyHistory/:mode?\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<MyHistory />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/Form/:formDefinitionId?/:formId?\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<Cme />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/Payroll/Find\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<PayrollFormJumper />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/Payroll/Dashboard\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<PayrollDashboard />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/Payroll/:formDefinitionId?/:formId?\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<Payroll />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/New/:formDefinitionId?/:formTypeId?/:parentFormId?\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<Cme />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/Admin/ManageForms/:personId\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<ManageForms />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/Admin/:screen?/:id?\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<Admin />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/Coordinator/Leave/:formDefinitionId?/:formId?\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<LeaveClaim />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/Coordinator/:screen?/:id?\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<Coordinator />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/ApproverDashboard/:personId?\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<FormApproval />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/FormRedirector/:formId?\">\r\n\t\t\t\t\t\t\t\t<CmeWrapper>\r\n\t\t\t\t\t\t\t\t\t<FormRedirector />\r\n\t\t\t\t\t\t\t\t</CmeWrapper>\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CME/Unauthenticated/:error?\">\r\n\t\t\t\t\t\t\t\t<Unauthenticated />\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t<Route path=\"/CAPEX/Unauthenticated/:error?\">\r\n\t\t\t\t\t\t\t\t<UnauthenticatedCapex />\r\n\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t</Switch>\r\n\t\t\t\t\t) : securityStatus === \"failed\" ? (\r\n\t\t\t\t\t\t<GenericUnauthenticated />\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<GlobalLoading />\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Suspense>\r\n\t\t\t</ErrorBoundary>\r\n\t\t</HashRouter>\r\n\t);\r\n};\r\n\r\nexport default Router;\r\n","import { Result } from \"antd\";\r\n\r\nconst SignedOut = () => {\r\n\treturn (\r\n\t\t<Result title=\"Signed Out\" status=\"success\">\r\n\t\t\t<div className=\"desc\">\r\n\t\t\t\t<p>You can now close this browser window.</p>\r\n\t\t\t</div>\r\n\t\t</Result>\r\n\t);\r\n};\r\n\r\nexport default SignedOut;\r\n","import React from \"react\";\r\nimport { Provider } from \"react-redux\";\r\nimport store from \"./reducers/store\";\r\nimport {\r\n\tAuthenticatedTemplate,\r\n\tUnauthenticatedTemplate,\r\n} from \"@azure/msal-react\";\r\nimport SignIn from \"components/SignIn\";\r\nimport Router from \"components/Router\";\r\nimport { HashRouter, Route, Switch } from \"react-router-dom\";\r\nimport SignedOut from \"./components/SignedOut\";\r\n\r\nconst App = () => {\r\n\treturn (\r\n\t\t<Provider store={store}>\r\n\t\t\t{process.env.REACT_APP_ENVIRONMENT === \"AZURE\" ? (\r\n\t\t\t\t<>\r\n\t\t\t\t\t<AuthenticatedTemplate>\r\n\t\t\t\t\t\t<Router />\r\n\t\t\t\t\t</AuthenticatedTemplate>\r\n\t\t\t\t\t<UnauthenticatedTemplate>\r\n\t\t\t\t\t\t<HashRouter>\r\n\t\t\t\t\t\t\t<Switch>\r\n\t\t\t\t\t\t\t\t<Route path=\"/SignedOut\">\r\n\t\t\t\t\t\t\t\t\t<SignedOut />\r\n\t\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t\t<Route>\r\n\t\t\t\t\t\t\t\t\t<SignIn />\r\n\t\t\t\t\t\t\t\t</Route>\r\n\t\t\t\t\t\t\t</Switch>\r\n\t\t\t\t\t\t</HashRouter>\r\n\t\t\t\t\t</UnauthenticatedTemplate>\r\n\t\t\t\t</>\r\n\t\t\t) : (\r\n\t\t\t\t<Router />\r\n\t\t\t)}\r\n\t\t</Provider>\r\n\t);\r\n};\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n process.env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Protocol modes supported by MSAL.\n */\nexport enum ProtocolMode {\n AAD = \"AAD\",\n OIDC = \"OIDC\"\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Utility class for math specific functions in browser.\n */\nexport class MathUtils {\n\n /**\n * Decimal to Hex\n *\n * @param num\n */\n static decimalToHex(num: number): string {\n let hex: string = num.toString(16);\n while (hex.length < 2) {\n hex = \"0\" + hex;\n }\n return hex;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { MathUtils } from \"../utils/MathUtils\";\nimport { BrowserCrypto } from \"./BrowserCrypto\";\n\nexport class GuidGenerator {\n\n // browser crypto object used to generate random values\n private cryptoObj: BrowserCrypto;\n\n constructor(cryptoObj: BrowserCrypto) {\n this.cryptoObj = cryptoObj;\n }\n\n /*\n * RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\n * pseudo-random numbers.\n * The algorithm is as follows:\n * Set the two most significant bits (bits 6 and 7) of the\n * clock_seq_hi_and_reserved to zero and one, respectively.\n * Set the four most significant bits (bits 12 through 15) of the\n * time_hi_and_version field to the 4-bit version number from\n * Section 4.1.3. Version4\n * Set all the other bits to randomly (or pseudo-randomly) chosen\n * values.\n * UUID = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\n * time-low = 4hexOctet\n * time-mid = 2hexOctet\n * time-high-and-version = 2hexOctet\n * clock-seq-and-reserved = hexOctet:\n * clock-seq-low = hexOctet\n * node = 6hexOctet\n * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\n * y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\n * y values are 8, 9, A, B\n */\n generateGuid(): string {\n try {\n const buffer: Uint8Array = new Uint8Array(16);\n this.cryptoObj.getRandomValues(buffer);\n\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).\n buffer[6] |= 0x40; // buffer[6] | 01000000 will set the 6 bit to 1.\n buffer[6] &= 0x4f; // buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\n\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.\n buffer[8] |= 0x80; // buffer[8] | 10000000 will set the 7 bit to 1.\n buffer[8] &= 0xbf; // buffer[8] & 10111111 will set the 6 bit to 0.\n\n return MathUtils.decimalToHex(buffer[0]) + MathUtils.decimalToHex(buffer[1])\n + MathUtils.decimalToHex(buffer[2]) + MathUtils.decimalToHex(buffer[3])\n + \"-\" + MathUtils.decimalToHex(buffer[4]) + MathUtils.decimalToHex(buffer[5])\n + \"-\" + MathUtils.decimalToHex(buffer[6]) + MathUtils.decimalToHex(buffer[7])\n + \"-\" + MathUtils.decimalToHex(buffer[8]) + MathUtils.decimalToHex(buffer[9])\n + \"-\" + MathUtils.decimalToHex(buffer[10]) + MathUtils.decimalToHex(buffer[11])\n + MathUtils.decimalToHex(buffer[12]) + MathUtils.decimalToHex(buffer[13])\n + MathUtils.decimalToHex(buffer[14]) + MathUtils.decimalToHex(buffer[15]);\n }\n catch (err) {\n const guidHolder: string = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\n const hex: string = \"0123456789abcdef\";\n let r: number = 0;\n let guidResponse: string = \"\";\n for (let i: number = 0; i < 36; i++) {\n if (guidHolder[i] !== \"-\" && guidHolder[i] !== \"4\") {\n // each x and y needs to be random\n r = Math.random() * 16 | 0;\n }\n if (guidHolder[i] === \"x\") {\n guidResponse += hex[r];\n } else if (guidHolder[i] === \"y\") {\n // clock-seq-and-reserved first hex is filtered and remaining hex values are random\n r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\n r |= 0x8; // set pos 3 to 1 as 1???\n guidResponse += hex[r];\n } else {\n guidResponse += guidHolder[i];\n }\n }\n return guidResponse;\n }\n }\n\n /**\n * verifies if a string is GUID\n * @param guid\n */\n static isGuid(guid: string): boolean {\n const 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;\n return regexGuid.test(guid);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Utility functions for strings in a browser. See here for implementation details:\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\n */\nexport class BrowserStringUtils {\n\n /**\n * Converts string to Uint8Array\n * @param sDOMStr \n */\n static stringToUtf8Arr (sDOMStr: string): Uint8Array {\n let nChr;\n let nArrLen = 0;\n const nStrLen = sDOMStr.length;\n /* mapping... */\n for (let nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\n nChr = sDOMStr.charCodeAt(nMapIdx);\n nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;\n }\n\n const aBytes = new Uint8Array(nArrLen);\n\n /* transcription... */\n\n for (let nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {\n nChr = sDOMStr.charCodeAt(nChrIdx);\n if (nChr < 128) {\n /* one byte */\n aBytes[nIdx++] = nChr;\n } else if (nChr < 0x800) {\n /* two bytes */\n aBytes[nIdx++] = 192 + (nChr >>> 6);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x10000) {\n /* three bytes */\n aBytes[nIdx++] = 224 + (nChr >>> 12);\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x200000) {\n /* four bytes */\n aBytes[nIdx++] = 240 + (nChr >>> 18);\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x4000000) {\n /* five bytes */\n aBytes[nIdx++] = 248 + (nChr >>> 24);\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else /* if (nChr <= 0x7fffffff) */ {\n /* six bytes */\n aBytes[nIdx++] = 252 + (nChr >>> 30);\n aBytes[nIdx++] = 128 + (nChr >>> 24 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n }\n }\n\n return aBytes; \n }\n\n /**\n * Converst string to ArrayBuffer\n * @param dataString \n */\n static stringToArrayBuffer(dataString: string): ArrayBuffer {\n const data = new ArrayBuffer(dataString.length);\n const dataView = new Uint8Array(data);\n for (let i: number = 0; i < dataString.length; i++) {\n dataView[i] = dataString.charCodeAt(i);\n }\n return data;\n }\n\n /**\n * Converts Uint8Array to a string\n * @param aBytes \n */\n static utf8ArrToString (aBytes: Uint8Array): string {\n let sView = \"\";\n for (let nPart, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {\n nPart = aBytes[nIdx];\n sView += String.fromCharCode(\n nPart > 251 && nPart < 254 && nIdx + 5 < nLen ? /* six bytes */\n /* (nPart - 252 << 30) may be not so safe in ECMAScript! So...: */\n (nPart - 252) * 1073741824 + (aBytes[++nIdx] - 128 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen ? /* five bytes */\n (nPart - 248 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen ? /* four bytes */\n (nPart - 240 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen ? /* three bytes */\n (nPart - 224 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen ? /* two bytes */\n (nPart - 192 << 6) + aBytes[++nIdx] - 128\n : /* nPart < 127 ? */ /* one byte */\n nPart\n );\n }\n return sView;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { BrowserStringUtils } from \"../utils/BrowserStringUtils\";\n\n/**\n * Class which exposes APIs to encode plaintext to base64 encoded string. See here for implementation details:\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\n */\nexport class Base64Encode {\n \n /**\n * Returns URL Safe b64 encoded string from a plaintext string.\n * @param input \n */\n urlEncode(input: string): string {\n return encodeURIComponent(this.encode(input)\n .replace(/=/g, \"\")\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\"));\n }\n\n /**\n * Returns URL Safe b64 encoded string from an int8Array.\n * @param inputArr \n */\n urlEncodeArr(inputArr: Uint8Array): string {\n return this.base64EncArr(inputArr)\n .replace(/=/g, \"\")\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\");\n }\n\n /**\n * Returns b64 encoded string from plaintext string.\n * @param input \n */\n encode(input: string): string {\n const inputUtf8Arr = BrowserStringUtils.stringToUtf8Arr(input);\n return this.base64EncArr(inputUtf8Arr);\n }\n\n /**\n * Base64 encode byte array\n * @param aBytes \n */\n private base64EncArr(aBytes: Uint8Array): string { \n const eqLen = (3 - (aBytes.length % 3)) % 3;\n let sB64Enc = \"\";\n \n for (let nMod3, nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\n nMod3 = nIdx % 3;\n /* Uncomment the following line in order to split the output in lines 76-character long: */\n /*\n *if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += \"\\r\\n\"; }\n */\n nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\n sB64Enc += String.fromCharCode(\n this.uint6ToB64(nUint24 >>> 18 & 63), \n this.uint6ToB64(nUint24 >>> 12 & 63), \n this.uint6ToB64(nUint24 >>> 6 & 63), \n this.uint6ToB64(nUint24 & 63)\n );\n nUint24 = 0;\n }\n }\n\n return eqLen === 0 ? sB64Enc : sB64Enc.substring(0, sB64Enc.length - eqLen) + (eqLen === 1 ? \"=\" : \"==\");\n }\n\n /**\n * Base64 string to array encoding helper\n * @param nUint6 \n */\n private uint6ToB64 (nUint6: number): number {\n return nUint6 < 26 ?\n nUint6 + 65\n : nUint6 < 52 ?\n nUint6 + 71\n : nUint6 < 62 ?\n nUint6 - 4\n : nUint6 === 62 ?\n 43\n : nUint6 === 63 ?\n 47\n :\n 65;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { BrowserStringUtils } from \"../utils/BrowserStringUtils\";\n\n/**\n * Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:\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\n */\nexport class Base64Decode {\n\n /**\n * Returns a URL-safe plaintext decoded string from b64 encoded input.\n * @param input \n */\n decode(input: string): string {\n let encodedString = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (encodedString.length % 4) {\n case 0:\n break;\n case 2:\n encodedString += \"==\";\n break;\n case 3:\n encodedString += \"=\";\n break;\n default:\n throw new Error(\"Invalid base64 string\");\n }\n\n const inputUtf8Arr = this.base64DecToArr(encodedString);\n return BrowserStringUtils.utf8ArrToString(inputUtf8Arr);\n }\n\n /**\n * Decodes base64 into Uint8Array\n * @param base64String \n * @param nBlockSize \n */\n private base64DecToArr(base64String: string, nBlockSize?: number): Uint8Array {\n const sB64Enc = base64String.replace(/[^A-Za-z0-9\\+\\/]/g, \"\");\n const nInLen = sB64Enc.length;\n const nOutLen = nBlockSize ? Math.ceil((nInLen * 3 + 1 >>> 2) / nBlockSize) * nBlockSize : nInLen * 3 + 1 >>> 2;\n const aBytes = new Uint8Array(nOutLen);\n\n for (let nMod3, nMod4, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {\n nMod4 = nInIdx & 3;\n nUint24 |= this.b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\n for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {\n aBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;\n }\n nUint24 = 0;\n }\n }\n\n return aBytes;\n }\n\n /**\n * Base64 string to array decoding helper\n * @param charNum \n */\n private b64ToUint6(charNum: number): number {\n return charNum > 64 && charNum < 91 ?\n charNum - 65\n : charNum > 96 && charNum < 123 ? \n charNum - 71\n : charNum > 47 && charNum < 58 ?\n charNum + 4\n : charNum === 43 ?\n 62\n : charNum === 47 ?\n 63\n :\n 0;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError, StringUtils } from \"@azure/msal-common\";\n\n/**\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const BrowserAuthErrorMessage = {\n pkceNotGenerated: {\n code: \"pkce_not_created\",\n desc: \"The PKCE code challenge and verifier could not be generated.\"\n },\n cryptoDoesNotExist: {\n code: \"crypto_nonexistent\",\n desc: \"The crypto object or function is not available.\"\n },\n httpMethodNotImplementedError: {\n code: \"http_method_not_implemented\",\n desc: \"The HTTP method given has not been implemented in this library.\"\n },\n emptyNavigateUriError: {\n code: \"empty_navigate_uri\",\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\n },\n hashEmptyError: {\n code: \"hash_empty_error\",\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash.\"\n },\n hashDoesNotContainStateError: {\n code: \"no_state_in_hash\",\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\n },\n hashDoesNotContainKnownPropertiesError: {\n code: \"hash_does_not_contain_known_properties\",\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash.\"\n },\n unableToParseStateError: {\n code: \"unable_to_parse_state\",\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\n },\n stateInteractionTypeMismatchError: {\n code: \"state_interaction_type_mismatch\",\n desc: \"Hash contains state but the interaction type does not match the caller.\"\n },\n interactionInProgress: {\n code: \"interaction_in_progress\",\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.\"\n },\n popUpWindowError: {\n code: \"popup_window_error\",\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\n },\n emptyWindowError: {\n code: \"empty_window_error\",\n desc: \"window.open returned null or undefined window object.\"\n },\n userCancelledError: {\n code: \"user_cancelled\",\n desc: \"User cancelled the flow.\"\n },\n monitorPopupTimeoutError: {\n code: \"monitor_window_timeout\",\n desc: \"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n monitorIframeTimeoutError: {\n code: \"monitor_window_timeout\",\n desc: \"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n redirectInIframeError: {\n code: \"redirect_in_iframe\",\n desc: \"Code flow is not supported inside an iframe. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\n },\n blockTokenRequestsInHiddenIframeError: {\n code: \"block_iframe_reload\",\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\n },\n blockAcquireTokenInPopupsError: {\n code: \"block_nested_popups\",\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\n },\n iframeClosedPrematurelyError: {\n code: \"iframe_closed_prematurely\",\n desc: \"The iframe being monitored was closed prematurely.\"\n },\n silentSSOInsufficientInfoError: {\n code: \"silent_sso_error\",\n desc: \"Silent SSO could not be completed - insufficient information was provided. Please provide either a loginHint or sid.\"\n },\n noAccountError: {\n code: \"no_account_error\",\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.\"\n },\n silentPromptValueError: {\n code: \"silent_prompt_value_error\",\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none'.\"\n },\n noTokenRequestCacheError: {\n code: \"no_token_request_cache_error\",\n desc: \"No token request in found in cache.\"\n },\n unableToParseTokenRequestCacheError: {\n code: \"unable_to_parse_token_request_cache_error\",\n desc: \"The cached token request could not be parsed.\"\n },\n noCachedAuthorityError: {\n code: \"no_cached_authority_error\",\n desc: \"No cached authority found.\"\n },\n authRequestNotSet: {\n code: \"auth_request_not_set_error\",\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\n },\n invalidCacheType: {\n code: \"invalid_cache_type\",\n desc: \"Invalid cache type\"\n },\n notInBrowserEnvironment: {\n code: \"non_browser_environment\",\n desc: \"Login and token requests are not supported in non-browser environments.\"\n },\n databaseNotOpen: {\n code: \"database_not_open\",\n desc: \"Database is not open!\"\n },\n noNetworkConnectivity: {\n code: \"no_network_connectivity\",\n desc: \"No network connectivity. Check your internet connection.\"\n },\n postRequestFailed: {\n code: \"post_request_failed\",\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'\"\n },\n getRequestFailed: {\n code: \"get_request_failed\",\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\n },\n failedToParseNetworkResponse: {\n code: \"failed_to_parse_response\",\n desc: \"Failed to parse network response. Check network trace.\"\n }\n};\n\n/**\n * Browser library error class thrown by the MSAL.js library for SPAs\n */\nexport class BrowserAuthError extends AuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n\n Object.setPrototypeOf(this, BrowserAuthError.prototype);\n this.name = \"BrowserAuthError\";\n }\n\n /**\n * Creates an error thrown when PKCE is not implemented.\n * @param errDetail \n */\n static createPkceNotGeneratedError(errDetail: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code,\n `${BrowserAuthErrorMessage.pkceNotGenerated.desc} Detail:${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the crypto object is unavailable.\n * @param errDetail \n */\n static createCryptoNotAvailableError(errDetail: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code,\n `${BrowserAuthErrorMessage.cryptoDoesNotExist.desc} Detail:${errDetail}`);\n }\n\n /**\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\n * @param method \n */\n static createHttpMethodNotImplementedError(method: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code,\n `${BrowserAuthErrorMessage.httpMethodNotImplementedError.desc} Given Method: ${method}`);\n }\n\n /**\n * Creates an error thrown when the navigation URI is empty.\n */\n static createEmptyNavigationUriError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n * @param hashValue \n */\n static createEmptyHashError(hashValue: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, `${BrowserAuthErrorMessage.hashEmptyError.desc} Given Url: ${hashValue}`);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n */\n static createHashDoesNotContainStateError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value does not contain known properties\n */\n static createHashDoesNotContainKnownPropertiesError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n */\n static createUnableToParseStateError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\n }\n\n /**\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.\n */\n static createStateInteractionTypeMismatchError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\n */\n static createInteractionInProgressError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\n }\n\n /**\n * Creates an error thrown when the popup window could not be opened.\n * @param errDetail \n */\n static createPopupWindowError(errDetail?: string): BrowserAuthError {\n let errorMessage = BrowserAuthErrorMessage.popUpWindowError.desc;\n errorMessage = !StringUtils.isEmpty(errDetail) ? `${errorMessage} Details: ${errDetail}` : errorMessage;\n return new BrowserAuthError(BrowserAuthErrorMessage.popUpWindowError.code, errorMessage);\n }\n\n /**\n * Creates an error thrown when window.open returns an empty window object.\n * @param errDetail \n */\n static createEmptyWindowCreatedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\n }\n\n /**\n * Creates an error thrown when the user closes a popup.\n */\n static createUserCancelledError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code,\n BrowserAuthErrorMessage.userCancelledError.desc);\n }\n\n /**\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\n */\n static createMonitorPopupTimeoutError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code,\n BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\n }\n\n /**\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\n */\n static createMonitorIframeTimeoutError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code,\n BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\n }\n\n /**\n * Creates an error thrown when navigateWindow is called inside an iframe.\n * @param windowParentCheck \n */\n static createRedirectInIframeError(windowParentCheck: boolean): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code, \n `${BrowserAuthErrorMessage.redirectInIframeError.desc} (window.parent !== window) => ${windowParentCheck}`);\n }\n\n /**\n * Creates an error thrown when an auth reload is done inside an iframe.\n */\n static createBlockReloadInHiddenIframeError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code,\n BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\n }\n\n /**\n * Creates an error thrown when a popup attempts to call an acquireToken API\n * @returns \n */\n static createBlockAcquireTokenInPopupsError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code, \n BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\n }\n\n /**\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\n */\n static createIframeClosedPrematurelyError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\n }\n\n /**\n * Creates an error thrown when the login_hint, sid or account object is not provided in the ssoSilent API.\n */\n static createSilentSSOInsufficientInfoError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.silentSSOInsufficientInfoError.code, BrowserAuthErrorMessage.silentSSOInsufficientInfoError.desc);\n }\n\n /**\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\n */\n static createNoAccountError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\n }\n\n /**\n * Creates an error thrown when a given prompt value is invalid for silent requests.\n */\n static createSilentPromptValueError(givenPrompt: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, `${BrowserAuthErrorMessage.silentPromptValueError.desc} Given value: ${givenPrompt}`);\n }\n\n /**\n * Creates an error thrown when the cached token request could not be retrieved from the cache\n */\n static createUnableToParseTokenRequestCacheError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code,\n BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\n }\n\n /**\n * Creates an error thrown when the token request could not be retrieved from the cache\n */\n static createNoTokenRequestCacheError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code,\n BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\n }\n\n /**\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\n */\n static createAuthRequestNotSetError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code,\n BrowserAuthErrorMessage.authRequestNotSet.desc);\n }\n\n /**\n * Creates an error thrown when the authority could not be retrieved from the cache\n */\n static createNoCachedAuthorityError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code,\n BrowserAuthErrorMessage.noCachedAuthorityError.desc);\n }\n\n /**\n * Creates an error thrown if cache type is invalid.\n */\n static createInvalidCacheTypeError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, `${BrowserAuthErrorMessage.invalidCacheType.desc}`);\n }\n\n /**\n * Create an error thrown when login and token requests are made from a non-browser environment\n */\n static createNonBrowserEnvironmentError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\n }\n\n /**\n * Create an error thrown when indexDB database is not open\n */\n static createDatabaseNotOpenError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\n }\n\n /**\n * Create an error thrown when token fetch fails due to no internet\n */\n static createNoNetworkConnectivityError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\n }\n\n /**\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\n */\n static createPostRequestFailedError(errorDesc: string, endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, `${BrowserAuthErrorMessage.postRequestFailed.desc} | Network client threw: ${errorDesc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Create an error thrown when get request fails due to reasons other than internet connectivity\n */\n static createGetRequestFailedError(errorDesc: string, endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, `${BrowserAuthErrorMessage.getRequestFailed.desc} | Network client threw: ${errorDesc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Create an error thrown when network client fails to parse network response\n */\n static createFailedToParseNetworkResponseError(endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, `${BrowserAuthErrorMessage.failedToParseNetworkResponse.desc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { PkceCodes } from \"@azure/msal-common\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { Base64Encode } from \"../encode/Base64Encode\";\nimport { BrowserCrypto } from \"./BrowserCrypto\";\n\n// Constant byte array length\nconst RANDOM_BYTE_ARR_LENGTH = 32;\n\n/**\n * Class which exposes APIs to generate PKCE codes and code verifiers.\n */\nexport class PkceGenerator {\n\n private base64Encode: Base64Encode;\n private cryptoObj: BrowserCrypto;\n\n constructor(cryptoObj: BrowserCrypto) {\n this.base64Encode = new Base64Encode();\n this.cryptoObj = cryptoObj;\n }\n\n /**\n * Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636\n */\n async generateCodes(): Promise<PkceCodes> {\n const codeVerifier = this.generateCodeVerifier();\n const codeChallenge = await this.generateCodeChallengeFromVerifier(codeVerifier);\n return {\n verifier: codeVerifier,\n challenge: codeChallenge\n };\n }\n\n /**\n * Generates a random 32 byte buffer and returns the base64\n * encoded string to be used as a PKCE Code Verifier\n */\n private generateCodeVerifier(): string {\n try {\n // Generate random values as utf-8\n const buffer: Uint8Array = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);\n this.cryptoObj.getRandomValues(buffer);\n // encode verifier as base64\n const pkceCodeVerifierB64: string = this.base64Encode.urlEncodeArr(buffer);\n return pkceCodeVerifierB64;\n } catch (e) {\n throw BrowserAuthError.createPkceNotGeneratedError(e);\n }\n }\n\n /**\n * Creates a base64 encoded PKCE Code Challenge string from the\n * hash created from the PKCE Code Verifier supplied\n */\n private async generateCodeChallengeFromVerifier(pkceCodeVerifier: string): Promise<string> {\n try {\n // hashed verifier\n const pkceHashedCodeVerifier = await this.cryptoObj.sha256Digest(pkceCodeVerifier);\n // encode hash as base64\n return this.base64Encode.urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier));\n } catch (e) {\n throw BrowserAuthError.createPkceNotGeneratedError(e);\n }\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { BrowserStringUtils } from \"../utils/BrowserStringUtils\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { KEY_FORMAT_JWK } from \"../utils/BrowserConstants\";\n/**\n * See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams\n */\n// RSA KeyGen Algorithm\nconst PKCS1_V15_KEYGEN_ALG = \"RSASSA-PKCS1-v1_5\";\n// SHA-256 hashing algorithm\nconst S256_HASH_ALG = \"SHA-256\";\n// MOD length for PoP tokens\nconst MODULUS_LENGTH = 2048;\n// Public Exponent\nconst PUBLIC_EXPONENT: Uint8Array = new Uint8Array([0x01, 0x00, 0x01]);\n\n/**\n * This class implements functions used by the browser library to perform cryptography operations such as\n * hashing and encoding. It also has helper functions to validate the availability of specific APIs.\n */\nexport class BrowserCrypto {\n\n private _keygenAlgorithmOptions: RsaHashedKeyGenParams;\n\n constructor() {\n if (!(this.hasCryptoAPI())) {\n throw BrowserAuthError.createCryptoNotAvailableError(\"Browser crypto or msCrypto object not available.\");\n }\n\n this._keygenAlgorithmOptions = {\n name: PKCS1_V15_KEYGEN_ALG,\n hash: S256_HASH_ALG,\n modulusLength: MODULUS_LENGTH,\n publicExponent: PUBLIC_EXPONENT\n };\n }\n\n /**\n * Returns a sha-256 hash of the given dataString as an ArrayBuffer.\n * @param dataString \n */\n async sha256Digest(dataString: string): Promise<ArrayBuffer> {\n const data = BrowserStringUtils.stringToUtf8Arr(dataString);\n\n return this.hasIECrypto() ? this.getMSCryptoDigest(S256_HASH_ALG, data) : this.getSubtleCryptoDigest(S256_HASH_ALG, data);\n }\n\n /**\n * Populates buffer with cryptographically random values.\n * @param dataBuffer \n */\n getRandomValues(dataBuffer: Uint8Array): void {\n const cryptoObj = window[\"msCrypto\"] || window.crypto;\n if (!cryptoObj.getRandomValues) {\n throw BrowserAuthError.createCryptoNotAvailableError(\"getRandomValues does not exist.\");\n }\n cryptoObj.getRandomValues(dataBuffer);\n }\n\n /**\n * Generates a keypair based on current keygen algorithm config.\n * @param extractable \n * @param usages \n */\n async generateKeyPair(extractable: boolean, usages: Array<KeyUsage>): Promise<CryptoKeyPair> {\n return (\n this.hasIECrypto() ? \n this.msCryptoGenerateKey(extractable, usages) \n : window.crypto.subtle.generateKey(this._keygenAlgorithmOptions, extractable, usages)\n ) as Promise<CryptoKeyPair>;\n }\n\n /**\n * Export key as Json Web Key (JWK)\n * @param key \n * @param format \n */\n async exportJwk(key: CryptoKey): Promise<JsonWebKey> {\n return this.hasIECrypto() ? this.msCryptoExportJwk(key) : window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key);\n }\n\n /**\n * Imports key as Json Web Key (JWK), can set extractable and usages.\n * @param key \n * @param format \n * @param extractable \n * @param usages \n */\n async importJwk(key: JsonWebKey, extractable: boolean, usages: Array<KeyUsage>): Promise<CryptoKey> {\n const keyString = BrowserCrypto.getJwkString(key);\n const keyBuffer = BrowserStringUtils.stringToArrayBuffer(keyString);\n\n return this.hasIECrypto() ? \n this.msCryptoImportKey(keyBuffer, extractable, usages) \n : window.crypto.subtle.importKey(KEY_FORMAT_JWK, key, this._keygenAlgorithmOptions, extractable, usages);\n }\n\n /**\n * Signs given data with given key\n * @param key \n * @param data \n */\n async sign(key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer> {\n return this.hasIECrypto() ?\n this.msCryptoSign(key, data)\n : window.crypto.subtle.sign(this._keygenAlgorithmOptions, key, data);\n }\n\n /**\n * Check whether IE crypto or other browser cryptography is available.\n */\n private hasCryptoAPI(): boolean {\n return this.hasIECrypto() || this.hasBrowserCrypto();\n }\n\n /**\n * Checks whether IE crypto (AKA msCrypto) is available.\n */\n private hasIECrypto(): boolean {\n return \"msCrypto\" in window;\n }\n\n /**\n * Check whether browser crypto is available.\n */\n private hasBrowserCrypto(): boolean {\n return \"crypto\" in window;\n }\n\n /**\n * Helper function for SHA digest.\n * @param algorithm \n * @param data \n */\n private async getSubtleCryptoDigest(algorithm: string, data: Uint8Array): Promise<ArrayBuffer> {\n return window.crypto.subtle.digest(algorithm, data);\n }\n\n /**\n * IE Helper function for SHA digest.\n * @param algorithm \n * @param data \n */\n private async getMSCryptoDigest(algorithm: string, data: Uint8Array): Promise<ArrayBuffer> {\n return new Promise((resolve, reject) => {\n const digestOperation = window[\"msCrypto\"].subtle.digest(algorithm, data.buffer);\n digestOperation.addEventListener(\"complete\", (e: { target: { result: ArrayBuffer | PromiseLike<ArrayBuffer>; }; }) => {\n resolve(e.target.result);\n });\n digestOperation.addEventListener(\"error\", (error: string) => {\n reject(error);\n });\n });\n }\n\n /**\n * IE Helper function for generating a keypair\n * @param extractable \n * @param usages \n */\n private async msCryptoGenerateKey(extractable: boolean, usages: Array<KeyUsage>): Promise<CryptoKeyPair> {\n return new Promise((resolve: Function, reject: Function) => {\n const msGenerateKey = window[\"msCrypto\"].subtle.generateKey(this._keygenAlgorithmOptions, extractable, usages);\n msGenerateKey.addEventListener(\"complete\", (e: { target: { result: CryptoKeyPair | PromiseLike<CryptoKeyPair>; }; }) => {\n resolve(e.target.result);\n });\n\n msGenerateKey.addEventListener(\"error\", (error: string) => {\n reject(error);\n });\n });\n }\n\n /**\n * IE Helper function for exportKey\n * @param key \n * @param format \n */\n private async msCryptoExportJwk(key: CryptoKey): Promise<JsonWebKey> {\n return new Promise((resolve: Function, reject: Function) => {\n const msExportKey = window[\"msCrypto\"].subtle.exportKey(KEY_FORMAT_JWK, key);\n msExportKey.addEventListener(\"complete\", (e: { target: { result: ArrayBuffer; }; }) => {\n const resultBuffer: ArrayBuffer = e.target.result;\n\n const resultString = BrowserStringUtils.utf8ArrToString(new Uint8Array(resultBuffer))\n .replace(/\\r/g, \"\")\n .replace(/\\n/g, \"\")\n .replace(/\\t/g, \"\")\n .split(\" \").join(\"\")\n .replace(\"\\u0000\", \"\");\n\n try {\n resolve(JSON.parse(resultString));\n } catch (e) {\n reject(e);\n }\n });\n\n msExportKey.addEventListener(\"error\", (error: string) => {\n reject(error);\n });\n });\n }\n\n /**\n * IE Helper function for importKey\n * @param key \n * @param format \n * @param extractable \n * @param usages \n */\n private async msCryptoImportKey(keyBuffer: ArrayBuffer, extractable: boolean, usages: Array<KeyUsage>): Promise<CryptoKey> {\n return new Promise((resolve: Function, reject: Function) => {\n const msImportKey = window[\"msCrypto\"].subtle.importKey(KEY_FORMAT_JWK, keyBuffer, this._keygenAlgorithmOptions, extractable, usages);\n msImportKey.addEventListener(\"complete\", (e: { target: { result: CryptoKey | PromiseLike<CryptoKey>; }; }) => {\n resolve(e.target.result);\n });\n\n msImportKey.addEventListener(\"error\", (error: string) => {\n reject(error);\n });\n });\n }\n\n /**\n * IE Helper function for sign JWT\n * @param key \n * @param data \n */\n private async msCryptoSign(key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer> {\n return new Promise((resolve: Function, reject: Function) => {\n const msSign = window[\"msCrypto\"].subtle.sign(this._keygenAlgorithmOptions, key, data);\n msSign.addEventListener(\"complete\", (e: { target: { result: ArrayBuffer | PromiseLike<ArrayBuffer>; }; }) => {\n resolve(e.target.result);\n });\n\n msSign.addEventListener(\"error\", (error: string) => {\n reject(error);\n });\n });\n }\n\n /**\n * Returns stringified jwk.\n * @param jwk \n */\n static getJwkString(jwk: JsonWebKey): string {\n return JSON.stringify(jwk, Object.keys(jwk).sort());\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\n\ninterface IDBOpenDBRequestEvent extends Event {\n target: IDBOpenDBRequest & EventTarget;\n}\n\ninterface IDBOpenOnUpgradeNeededEvent extends IDBVersionChangeEvent {\n target: IDBOpenDBRequest & EventTarget;\n}\n\ninterface IDBRequestEvent extends Event {\n target: IDBRequest & EventTarget;\n}\n\n/**\n * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API\n */\nexport class DatabaseStorage<T>{\n private db: IDBDatabase|undefined;\n private dbName: string;\n private tableName: string;\n private version: number;\n private dbOpen: boolean;\n\n constructor(dbName: string, tableName: string, version: number) {\n this.dbName = dbName;\n this.tableName = tableName;\n this.version = version;\n this.dbOpen = false;\n }\n\n /**\n * Opens IndexedDB instance.\n */\n async open(): Promise<void> {\n return new Promise((resolve, reject) => {\n // TODO: Add timeouts?\n const openDB = window.indexedDB.open(this.dbName, this.version);\n openDB.addEventListener(\"upgradeneeded\", (e: IDBVersionChangeEvent) => {\n const event = e as IDBOpenOnUpgradeNeededEvent;\n event.target.result.createObjectStore(this.tableName);\n });\n openDB.addEventListener(\"success\", (e: Event) => {\n const event = e as IDBOpenDBRequestEvent;\n this.db = event.target.result;\n this.dbOpen = true;\n resolve();\n });\n\n openDB.addEventListener(\"error\", error => reject(error));\n });\n }\n\n /**\n * Retrieves item from IndexedDB instance.\n * @param key \n */\n async get(key: string): Promise<T> {\n if (!this.dbOpen) {\n await this.open();\n }\n\n return new Promise<T>((resolve, reject) => {\n // TODO: Add timeouts?\n if (!this.db) {\n return reject(BrowserAuthError.createDatabaseNotOpenError());\n }\n\n const transaction = this.db.transaction([this.tableName], \"readonly\");\n\n const objectStore = transaction.objectStore(this.tableName);\n const dbGet = objectStore.get(key);\n dbGet.addEventListener(\"success\", (e: Event) => {\n const event = e as IDBRequestEvent;\n resolve(event.target.result);\n });\n dbGet.addEventListener(\"error\", e => reject(e));\n });\n }\n\n /**\n * Adds item to IndexedDB under given key\n * @param key \n * @param payload \n */\n async put(key: string, payload: T): Promise<T> {\n if (!this.dbOpen) {\n await this.open();\n }\n\n return new Promise<T>((resolve: Function, reject: Function) => {\n // TODO: Add timeouts?\n if (!this.db) {\n return reject(BrowserAuthError.createDatabaseNotOpenError());\n }\n\n const transaction = this.db.transaction([this.tableName], \"readwrite\");\n const objectStore = transaction.objectStore(this.tableName);\n\n const dbPut = objectStore.put(payload, key);\n dbPut.addEventListener(\"success\", (e: Event) => {\n const event = e as IDBRequestEvent;\n resolve(event.target.result);\n });\n dbPut.addEventListener(\"error\", e => reject(e));\n });\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { BaseAuthRequest, ICrypto, PkceCodes, SignedHttpRequest } from \"@azure/msal-common\";\nimport { GuidGenerator } from \"./GuidGenerator\";\nimport { Base64Encode } from \"../encode/Base64Encode\";\nimport { Base64Decode } from \"../encode/Base64Decode\";\nimport { PkceGenerator } from \"./PkceGenerator\";\nimport { BrowserCrypto } from \"./BrowserCrypto\";\nimport { DatabaseStorage } from \"../cache/DatabaseStorage\";\nimport { BrowserStringUtils } from \"../utils/BrowserStringUtils\";\nimport { KEY_FORMAT_JWK } from \"../utils/BrowserConstants\";\n\nexport type CachedKeyPair = {\n publicKey: CryptoKey,\n privateKey: CryptoKey,\n requestMethod?: string,\n requestUri?: string\n};\n\n/**\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and \n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\n */\nexport class CryptoOps implements ICrypto {\n\n private browserCrypto: BrowserCrypto;\n private guidGenerator: GuidGenerator;\n private b64Encode: Base64Encode;\n private b64Decode: Base64Decode;\n private pkceGenerator: PkceGenerator;\n\n private static POP_KEY_USAGES: Array<KeyUsage> = [\"sign\", \"verify\"];\n private static EXTRACTABLE: boolean = true;\n\n private static DB_VERSION = 1;\n private static DB_NAME = \"msal.db\";\n private static TABLE_NAME =`${CryptoOps.DB_NAME}.keys`;\n private cache: DatabaseStorage<CachedKeyPair>;\n\n constructor() {\n // Browser crypto needs to be validated first before any other classes can be set.\n this.browserCrypto = new BrowserCrypto();\n this.b64Encode = new Base64Encode();\n this.b64Decode = new Base64Decode();\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\n this.pkceGenerator = new PkceGenerator(this.browserCrypto);\n this.cache = new DatabaseStorage(CryptoOps.DB_NAME, CryptoOps.TABLE_NAME, CryptoOps.DB_VERSION);\n }\n\n /**\n * Creates a new random GUID - used to populate state and nonce.\n * @returns string (GUID)\n */\n createNewGuid(): string {\n return this.guidGenerator.generateGuid();\n }\n\n /**\n * Encodes input string to base64.\n * @param input \n */\n base64Encode(input: string): string {\n return this.b64Encode.encode(input);\n } \n \n /**\n * Decodes input string from base64.\n * @param input \n */\n base64Decode(input: string): string {\n return this.b64Decode.decode(input);\n }\n\n /**\n * Generates PKCE codes used in Authorization Code Flow.\n */\n async generatePkceCodes(): Promise<PkceCodes> {\n return this.pkceGenerator.generateCodes();\n }\n\n /**\n * Generates a keypair, stores it and returns a thumbprint\n * @param request\n */\n async getPublicKeyThumbprint(request: BaseAuthRequest): Promise<string> {\n // Generate Keypair\n const keyPair = await this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES);\n\n // Generate Thumbprint for Public Key\n const publicKeyJwk: JsonWebKey = await this.browserCrypto.exportJwk(keyPair.publicKey);\n const pubKeyThumprintObj: JsonWebKey = {\n e: publicKeyJwk.e,\n kty: publicKeyJwk.kty,\n n: publicKeyJwk.n\n };\n const publicJwkString: string = BrowserCrypto.getJwkString(pubKeyThumprintObj);\n const publicJwkBuffer: ArrayBuffer = await this.browserCrypto.sha256Digest(publicJwkString);\n const publicJwkHash: string = this.b64Encode.urlEncodeArr(new Uint8Array(publicJwkBuffer));\n\n // Generate Thumbprint for Private Key\n const privateKeyJwk: JsonWebKey = await this.browserCrypto.exportJwk(keyPair.privateKey);\n // Re-import private key to make it unextractable\n const unextractablePrivateKey: CryptoKey = await this.browserCrypto.importJwk(privateKeyJwk, false, [\"sign\"]);\n\n // Store Keypair data in keystore\n this.cache.put(publicJwkHash, {\n privateKey: unextractablePrivateKey,\n publicKey: keyPair.publicKey,\n requestMethod: request.resourceRequestMethod,\n requestUri: request.resourceRequestUri\n });\n\n return publicJwkHash;\n }\n\n /**\n * Signs the given object as a jwt payload with private key retrieved by given kid.\n * @param payload \n * @param kid \n */\n async signJwt(payload: SignedHttpRequest, kid: string): Promise<string> {\n // Get keypair from cache\n const cachedKeyPair: CachedKeyPair = await this.cache.get(kid);\n\n // Get public key as JWK\n const publicKeyJwk = await this.browserCrypto.exportJwk(cachedKeyPair.publicKey);\n const publicKeyJwkString = BrowserCrypto.getJwkString(publicKeyJwk);\n\n // Generate header\n const header = {\n alg: publicKeyJwk.alg,\n type: KEY_FORMAT_JWK\n };\n const encodedHeader = this.b64Encode.urlEncode(JSON.stringify(header));\n\n // Generate payload\n payload.cnf = {\n jwk: JSON.parse(publicKeyJwkString)\n };\n const encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));\n\n // Form token string\n const tokenString = `${encodedHeader}.${encodedPayload}`;\n\n // Sign token\n const tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);\n const signatureBuffer = await this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer);\n const encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));\n\n return `${tokenString}.${encodedSignature}`;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"../error/AuthError\";\nimport { BaseAuthRequest } from \"../request/BaseAuthRequest\";\nimport { SignedHttpRequest } from \"./SignedHttpRequest\";\n\n/**\n * The PkceCodes type describes the structure\n * of objects that contain PKCE code\n * challenge and verifier pairs\n */\nexport type PkceCodes = {\n verifier: string,\n challenge: string\n};\n\n/**\n * Interface for crypto functions used by library\n */\nexport interface ICrypto {\n /**\n * Creates a guid randomly.\n */\n createNewGuid(): string;\n /**\n * base64 Encode string\n * @param input \n */\n base64Encode(input: string): string;\n /**\n * base64 decode string\n * @param input \n */\n base64Decode(input: string): string;\n /**\n * Generate PKCE codes for OAuth. See RFC here: https://tools.ietf.org/html/rfc7636\n */\n generatePkceCodes(): Promise<PkceCodes>;\n /**\n * Generates an JWK RSA S256 Thumbprint\n * @param request\n */\n getPublicKeyThumbprint(request: BaseAuthRequest): Promise<string>;\n /** \n * Returns a signed proof-of-possession token with a given acces token that contains a cnf claim with the required kid.\n * @param accessToken \n */\n signJwt(payload: SignedHttpRequest, kid: string): Promise<string>;\n}\n\nexport const DEFAULT_CRYPTO_IMPLEMENTATION: ICrypto = {\n createNewGuid: (): string => {\n const notImplErr = \"Crypto interface - createNewGuid() has not been implemented\";\n throw AuthError.createUnexpectedError(notImplErr);\n },\n base64Decode: (): string => {\n const notImplErr = \"Crypto interface - base64Decode() has not been implemented\";\n throw AuthError.createUnexpectedError(notImplErr);\n },\n base64Encode: (): string => {\n const notImplErr = \"Crypto interface - base64Encode() has not been implemented\";\n throw AuthError.createUnexpectedError(notImplErr);\n },\n async generatePkceCodes(): Promise<PkceCodes> {\n const notImplErr = \"Crypto interface - generatePkceCodes() has not been implemented\";\n throw AuthError.createUnexpectedError(notImplErr);\n },\n async getPublicKeyThumbprint(): Promise<string> {\n const notImplErr = \"Crypto interface - getPublicKeyThumbprint() has not been implemented\";\n throw AuthError.createUnexpectedError(notImplErr);\n },\n async signJwt(): Promise<string> {\n const notImplErr = \"Crypto interface - signJwt() has not been implemented\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ClientAuthError } from \"./ClientAuthError\";\n\n/**\n * ClientConfigurationErrorMessage class containing string constants used by error codes and messages.\n */\nexport const ClientConfigurationErrorMessage = {\n redirectUriNotSet: {\n code: \"redirect_uri_empty\",\n desc: \"A redirect URI is required for all calls, and none has been set.\"\n },\n postLogoutUriNotSet: {\n code: \"post_logout_uri_empty\",\n desc: \"A post logout redirect has not been set.\"\n },\n claimsRequestParsingError: {\n code: \"claims_request_parsing_error\",\n desc: \"Could not parse the given claims request object.\"\n },\n authorityUriInsecure: {\n code: \"authority_uri_insecure\",\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\"\n },\n urlParseError: {\n code: \"url_parse_error\",\n desc: \"URL could not be parsed into appropriate segments.\"\n },\n urlEmptyError: {\n code: \"empty_url_error\",\n desc: \"URL was empty or null.\"\n },\n emptyScopesError: {\n code: \"empty_input_scopes_error\",\n desc: \"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.\"\n },\n nonArrayScopesError: {\n code: \"nonarray_input_scopes_error\",\n desc: \"Scopes cannot be passed as non-array.\"\n },\n clientIdSingleScopeError: {\n code: \"clientid_input_scopes_error\",\n desc: \"Client ID can only be provided as a single scope.\"\n },\n invalidPrompt: {\n code: \"invalid_prompt_value\",\n desc: \"Supported prompt values are 'login', 'select_account', 'consent', 'create' and 'none'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest\",\n },\n invalidClaimsRequest: {\n code: \"invalid_claims\",\n desc: \"Given claims parameter must be a stringified JSON object.\"\n },\n tokenRequestEmptyError: {\n code: \"token_request_empty\",\n desc: \"Token request was empty and not found in cache.\"\n },\n logoutRequestEmptyError: {\n code: \"logout_request_empty\",\n desc: \"The logout request was null or undefined.\"\n },\n invalidCodeChallengeMethod: {\n code: \"invalid_code_challenge_method\",\n desc: \"code_challenge_method passed is invalid. Valid values are \\\"plain\\\" and \\\"S256\\\".\"\n },\n invalidCodeChallengeParams: {\n code: \"pkce_params_missing\",\n desc: \"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request\"\n },\n invalidCloudDiscoveryMetadata: {\n code: \"invalid_cloud_discovery_metadata\",\n desc: \"Invalid cloudDiscoveryMetadata provided. Must be a JSON object containing tenant_discovery_endpoint and metadata fields\"\n },\n invalidAuthorityMetadata: {\n code: \"invalid_authority_metadata\",\n desc: \"Invalid authorityMetadata provided. Must by a JSON object containing authorization_endpoint, token_endpoint, end_session_endpoint, issuer fields.\"\n },\n untrustedAuthority: {\n code: \"untrusted_authority\",\n desc: \"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.\"\n }\n};\n\n/**\n * Error thrown when there is an error in configuration of the MSAL.js library.\n */\nexport class ClientConfigurationError extends ClientAuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n this.name = \"ClientConfigurationError\";\n Object.setPrototypeOf(this, ClientConfigurationError.prototype);\n }\n\n /**\n * Creates an error thrown when the redirect uri is empty (not set by caller)\n */\n static createRedirectUriEmptyError(): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.redirectUriNotSet.code,\n ClientConfigurationErrorMessage.redirectUriNotSet.desc);\n }\n\n /**\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\n */\n static createPostLogoutRedirectUriEmptyError(): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.postLogoutUriNotSet.code,\n ClientConfigurationErrorMessage.postLogoutUriNotSet.desc);\n }\n\n /**\n * Creates an error thrown when the claims request could not be successfully parsed\n */\n static createClaimsRequestParsingError(claimsRequestParseError: string): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.claimsRequestParsingError.code,\n `${ClientConfigurationErrorMessage.claimsRequestParsingError.desc} Given value: ${claimsRequestParseError}`);\n }\n\n /**\n * Creates an error thrown if authority uri is given an insecure protocol.\n * @param urlString\n */\n static createInsecureAuthorityUriError(urlString: string): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.authorityUriInsecure.code,\n `${ClientConfigurationErrorMessage.authorityUriInsecure.desc} Given URI: ${urlString}`);\n }\n\n /**\n * Creates an error thrown if URL string does not parse into separate segments.\n * @param urlString\n */\n static createUrlParseError(urlParseError: string): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlParseError.code,\n `${ClientConfigurationErrorMessage.urlParseError.desc} Given Error: ${urlParseError}`);\n }\n\n /**\n * Creates an error thrown if URL string is empty or null.\n * @param urlString\n */\n static createUrlEmptyError(): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlEmptyError.code,\n ClientConfigurationErrorMessage.urlEmptyError.desc);\n }\n\n /**\n * Error thrown when scopes are empty.\n * @param scopesValue\n */\n static createEmptyScopesArrayError(): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.emptyScopesError.code,\n `${ClientConfigurationErrorMessage.emptyScopesError.desc}`);\n }\n\n /**\n * Error thrown when client id scope is not provided as single scope.\n * @param inputScopes\n */\n static createClientIdSingleScopeError(inputScopes: Array<string>): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.clientIdSingleScopeError.code,\n `${ClientConfigurationErrorMessage.clientIdSingleScopeError.desc} Given Scopes: ${inputScopes}`);\n }\n\n /**\n * Error thrown when prompt is not an allowed type.\n * @param promptValue\n */\n static createInvalidPromptError(promptValue: string): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidPrompt.code,\n `${ClientConfigurationErrorMessage.invalidPrompt.desc} Given value: ${promptValue}`);\n }\n\n /**\n * Creates error thrown when claims parameter is not a stringified JSON object\n */\n static createInvalidClaimsRequestError(): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidClaimsRequest.code,\n ClientConfigurationErrorMessage.invalidClaimsRequest.desc);\n }\n\n /**\n * Throws error when token request is empty and nothing cached in storage.\n */\n static createEmptyLogoutRequestError(): ClientConfigurationError {\n return new ClientConfigurationError(\n ClientConfigurationErrorMessage.logoutRequestEmptyError.code,\n ClientConfigurationErrorMessage.logoutRequestEmptyError.desc\n );\n }\n\n /**\n * Throws error when token request is empty and nothing cached in storage.\n */\n static createEmptyTokenRequestError(): ClientConfigurationError {\n return new ClientConfigurationError(\n ClientConfigurationErrorMessage.tokenRequestEmptyError.code,\n ClientConfigurationErrorMessage.tokenRequestEmptyError.desc\n );\n }\n\n /**\n * Throws error when an invalid code_challenge_method is passed by the user\n */\n static createInvalidCodeChallengeMethodError(): ClientConfigurationError {\n return new ClientConfigurationError(\n ClientConfigurationErrorMessage.invalidCodeChallengeMethod.code,\n ClientConfigurationErrorMessage.invalidCodeChallengeMethod.desc\n );\n }\n\n /**\n * Throws error when both params: code_challenge and code_challenge_method are not passed together\n */\n static createInvalidCodeChallengeParamsError(): ClientConfigurationError {\n return new ClientConfigurationError(\n ClientConfigurationErrorMessage.invalidCodeChallengeParams.code,\n ClientConfigurationErrorMessage.invalidCodeChallengeParams.desc\n );\n }\n\n /**\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\n */\n static createInvalidCloudDiscoveryMetadataError(): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.code,\n ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.desc);\n }\n\n /**\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\n */\n static createInvalidAuthorityMetadataError(): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityMetadata.code,\n ClientConfigurationErrorMessage.invalidAuthorityMetadata.desc);\n }\n\n /**\n * Throws error when provided authority is not a member of the trusted host list\n */\n static createUntrustedAuthorityError(): ClientConfigurationError {\n return new ClientConfigurationError(ClientConfigurationErrorMessage.untrustedAuthority.code,\n ClientConfigurationErrorMessage.untrustedAuthority.desc);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ServerAuthorizationCodeResponse } from \"../response/ServerAuthorizationCodeResponse\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { IUri } from \"./IUri\";\nimport { AADAuthorityConstants, Constants } from \"../utils/Constants\";\n\n/**\n * Url object class which can perform various transformations on url strings.\n */\nexport class UrlString {\n\n // internal url string field\n private _urlString: string;\n public get urlString(): string {\n return this._urlString;\n }\n \n constructor(url: string) {\n this._urlString = url;\n if (StringUtils.isEmpty(this._urlString)) {\n // Throws error if url is empty\n throw ClientConfigurationError.createUrlEmptyError();\n }\n\n if (StringUtils.isEmpty(this.getHash())) {\n this._urlString = UrlString.canonicalizeUri(url);\n }\n }\n\n /**\n * Ensure urls are lower case and end with a / character.\n * @param url \n */\n static canonicalizeUri(url: string): string {\n if (url) {\n let lowerCaseUrl = url.toLowerCase();\n\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\n } else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\n }\n\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\n lowerCaseUrl += \"/\";\n }\n\n return lowerCaseUrl;\n }\n\n return url;\n }\n\n /**\n * Throws if urlString passed is not a valid authority URI string.\n */\n validateAsUri(): void {\n // Attempts to parse url for uri components\n let components;\n try {\n components = this.getUrlComponents();\n } catch (e) {\n throw ClientConfigurationError.createUrlParseError(e);\n }\n\n // Throw error if URI or path segments are not parseable.\n if (!components.HostNameAndPort || !components.PathSegments) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\n }\n\n // Throw error if uri is insecure.\n if(!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\n }\n }\n\n /**\n * Function to remove query string params from url. Returns the new url.\n * @param url\n * @param name\n */\n urlRemoveQueryStringParameter(name: string): string {\n let regex = new RegExp(\"(\\\\&\" + name + \"=)[^\\&]+\");\n this._urlString = this.urlString.replace(regex, \"\");\n // name=value&\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+&\");\n this._urlString = this.urlString.replace(regex, \"\");\n // name=value\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+\");\n this._urlString = this.urlString.replace(regex, \"\");\n return this.urlString;\n }\n\n /**\n * Given a url and a query string return the url with provided query string appended\n * @param url \n * @param queryString \n */\n static appendQueryString(url: string, queryString: string): string {\n if (StringUtils.isEmpty(queryString)) {\n return url;\n }\n\n return url.indexOf(\"?\") < 0 ? `${url}?${queryString}` : `${url}&${queryString}`;\n }\n\n /**\n * Returns a url with the hash removed\n * @param url \n */\n static removeHashFromUrl(url: string): string {\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\n }\n\n /**\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\n * @param href The url\n * @param tenantId The tenant id to replace\n */\n replaceTenantPath(tenantId: string): UrlString {\n const urlObject = this.getUrlComponents();\n const pathArray = urlObject.PathSegments;\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\n pathArray[0] = tenantId;\n }\n return UrlString.constructAuthorityUriFromObject(urlObject);\n }\n\n /**\n * Returns the anchor part(#) of the URL\n */\n getHash(): string {\n return UrlString.parseHash(this.urlString);\n }\n\n /**\n * Parses out the components from a url string.\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\n */\n getUrlComponents(): IUri {\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\n const regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\n\n // If url string does not match regEx, we throw an error\n const match = this.urlString.match(regEx);\n if (!match) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\n }\n\n // Url component object\n const urlComponents = {\n Protocol: match[1],\n HostNameAndPort: match[4],\n AbsolutePath: match[5],\n QueryString: match[7]\n } as IUri;\n\n let pathSegments = urlComponents.AbsolutePath.split(\"/\");\n pathSegments = pathSegments.filter((val) => val && val.length > 0); // remove empty elements\n urlComponents.PathSegments = pathSegments;\n\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length-1);\n }\n return urlComponents;\n }\n\n static getDomainFromUrl(url: string): string {\n const regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\n\n const match = url.match(regEx);\n\n if (!match) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${url}`);\n }\n\n return match[2];\n }\n\n static getAbsoluteUrl(relativeUrl: string, baseUrl: string): string {\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\n const url = new UrlString(baseUrl);\n const baseComponents = url.getUrlComponents();\n\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\n }\n \n return relativeUrl;\n }\n \n /**\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\n * @param hashString \n */\n static parseHash(hashString: string): string {\n const hashIndex1 = hashString.indexOf(\"#\");\n const hashIndex2 = hashString.indexOf(\"#/\");\n if (hashIndex2 > -1) {\n return hashString.substring(hashIndex2 + 2);\n } else if (hashIndex1 > -1) {\n return hashString.substring(hashIndex1 + 1);\n }\n return \"\";\n }\n\n static constructAuthorityUriFromObject(urlObject: IUri): UrlString {\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\n }\n\n /**\n * Returns URL hash as server auth code response object.\n */\n static getDeserializedHash(hash: string): ServerAuthorizationCodeResponse {\n // Check if given hash is empty\n if (StringUtils.isEmpty(hash)) {\n return {};\n }\n // Strip the # symbol if present\n const parsedHash = UrlString.parseHash(hash);\n // If # symbol was not present, above will return empty string, so give original hash value\n const deserializedHash: ServerAuthorizationCodeResponse = StringUtils.queryStringToObject<ServerAuthorizationCodeResponse>(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\n // Check if deserialization didn't work\n if (!deserializedHash) {\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\n }\n return deserializedHash;\n }\n\n /**\n * Check if the hash of the URL string contains known properties\n */\n static hashContainsKnownProperties(hash: string): boolean {\n if (StringUtils.isEmpty(hash)) {\n return false;\n }\n\n const parameters: ServerAuthorizationCodeResponse = UrlString.getDeserializedHash(hash);\n return !!(\n parameters.code ||\n parameters.error_description ||\n parameters.error ||\n parameters.state\n );\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"./AuthError\";\n\n/**\n * Error thrown when there is an error with the server code, for example, unavailability.\n */\nexport class ServerError extends AuthError {\n\n constructor(errorCode?: string, errorMessage?: string, subError?: string) {\n super(errorCode, errorMessage, subError);\n this.name = \"ServerError\";\n\n Object.setPrototypeOf(this, ServerError.prototype);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { NetworkResponse } from \"./NetworkManager\";\nimport { ServerAuthorizationTokenResponse } from \"../response/ServerAuthorizationTokenResponse\";\nimport { HeaderNames, CacheSchemaType, ThrottlingConstants, Constants } from \"../utils/Constants\";\nimport { CacheManager } from \"../cache/CacheManager\";\nimport { ServerError } from \"../error/ServerError\";\nimport { RequestThumbprint } from \"./RequestThumbprint\";\nimport { ThrottlingEntity } from \"../cache/entities/ThrottlingEntity\";\n\nexport class ThrottlingUtils {\n\n /**\n * Prepares a RequestThumbprint to be stored as a key.\n * @param thumbprint\n */\n static generateThrottlingStorageKey(thumbprint: RequestThumbprint): string {\n return `${ThrottlingConstants.THROTTLING_PREFIX}.${JSON.stringify(thumbprint)}`;\n }\n\n /**\n * Performs necessary throttling checks before a network request.\n * @param cacheManager\n * @param thumbprint\n */\n static preProcess(cacheManager: CacheManager, thumbprint: RequestThumbprint): void {\n const key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\n const value = cacheManager.getThrottlingCache(key);\n\n if (value) {\n if (value.throttleTime < Date.now()) {\n cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\n return;\n }\n throw new ServerError(value.errorCodes?.join(\" \") || Constants.EMPTY_STRING, value.errorMessage, value.subError);\n }\n }\n\n /**\n * Performs necessary throttling checks after a network request.\n * @param cacheManager\n * @param thumbprint\n * @param response\n */\n static postProcess(cacheManager: CacheManager, thumbprint: RequestThumbprint, response: NetworkResponse<ServerAuthorizationTokenResponse>): void {\n if (ThrottlingUtils.checkResponseStatus(response) || ThrottlingUtils.checkResponseForRetryAfter(response)) {\n const thumbprintValue: ThrottlingEntity = {\n throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\n error: response.body.error,\n errorCodes: response.body.error_codes,\n errorMessage: response.body.error_description,\n subError: response.body.suberror\n };\n cacheManager.setThrottlingCache(\n ThrottlingUtils.generateThrottlingStorageKey(thumbprint),\n thumbprintValue\n );\n }\n }\n\n /**\n * Checks a NetworkResponse object's status codes against 429 or 5xx\n * @param response\n */\n static checkResponseStatus(response: NetworkResponse<ServerAuthorizationTokenResponse>): boolean {\n return response.status === 429 || response.status >= 500 && response.status < 600;\n }\n\n /**\n * Checks a NetworkResponse object's RetryAfter header\n * @param response\n */\n static checkResponseForRetryAfter(response: NetworkResponse<ServerAuthorizationTokenResponse>): boolean {\n if (response.headers) {\n return response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) && (response.status < 200 || response.status >= 300);\n }\n return false;\n }\n\n /**\n * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\n * @param throttleTime\n */\n static calculateThrottleTime(throttleTime: number): number {\n const time = throttleTime <= 0 ? 0 : throttleTime;\n\n const currentSeconds = Date.now() / 1000;\n return Math.floor(Math.min(\n currentSeconds + (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS),\n currentSeconds + ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS\n ) * 1000);\n }\n\n static removeThrottle(cacheManager: CacheManager, clientId: string, authority: string, scopes: Array<string>, homeAccountIdentifier?: string): boolean {\n const thumbprint: RequestThumbprint = {\n clientId,\n authority,\n scopes,\n homeAccountIdentifier\n };\n\n const key = this.generateThrottlingStorageKey(thumbprint);\n return cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ServerError } from \"./ServerError\";\n\n/**\n * InteractionRequiredAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const InteractionRequiredAuthErrorMessage = [\n \"interaction_required\",\n \"consent_required\",\n \"login_required\"\n];\n\nexport const InteractionRequiredAuthSubErrorMessage = [\n \"message_only\",\n \"additional_action\",\n \"basic_action\",\n \"user_password_expired\",\n \"consent_required\"\n];\n\n/**\n * Error thrown when user interaction is required at the auth server.\n */\nexport class InteractionRequiredAuthError extends ServerError {\n\n constructor(errorCode?: string, errorMessage?: string, subError?: string) {\n super(errorCode, errorMessage, subError);\n this.name = \"InteractionRequiredAuthError\";\n\n Object.setPrototypeOf(this, InteractionRequiredAuthError.prototype);\n }\n\n static isInteractionRequiredError(errorCode?: string, errorString?: string, subError?: string) : boolean {\n const isInteractionRequiredErrorCode = !!errorCode && InteractionRequiredAuthErrorMessage.indexOf(errorCode) > -1;\n const isInteractionRequiredSubError = !!subError && InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\n const isInteractionRequiredErrorDesc = !!errorString && InteractionRequiredAuthErrorMessage.some((irErrorCode) => {\n return errorString.indexOf(irErrorCode) > -1;\n });\n\n return isInteractionRequiredErrorCode || isInteractionRequiredErrorDesc || isInteractionRequiredSubError;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Tenant Discovery Response which contains the relevant OAuth endpoints and data needed for authentication and authorization.\n */\nexport type OpenIdConfigResponse = {\n authorization_endpoint: string;\n token_endpoint: string;\n end_session_endpoint: string;\n issuer: string;\n};\n\nexport function isOpenIdConfigResponse(response: object): boolean {\n return (\n response.hasOwnProperty(\"authorization_endpoint\") &&\n response.hasOwnProperty(\"token_endpoint\") && \n response.hasOwnProperty(\"end_session_endpoint\") &&\n response.hasOwnProperty(\"issuer\")\n );\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Utility class which exposes functions for managing date and time operations.\n */\nexport class TimeUtils {\n\n /**\n * return the current time in Unix time (seconds).\n */\n static nowSeconds(): number {\n // Date.getTime() returns in milliseconds.\n return Math.round(new Date().getTime() / 1000.0);\n }\n \n /**\n * check if a token is expired based on given UTC time in seconds.\n * @param expiresOn\n */\n static isTokenExpired(expiresOn: string, offset: number): boolean {\n // check for access token expiry\n const expirationSec = Number(expiresOn) || 0;\n const offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;\n\n // If current time + offset is greater than token expiration time, then token is expired.\n return (offsetCurrentTimeSec > expirationSec);\n }\n\n /**\n * If the current time is earlier than the time that a token was cached at, we must discard the token\n * i.e. The system clock was turned back after acquiring the cached token\n * @param cachedAt \n * @param offset \n */\n static wasClockTurnedBack(cachedAt: string): boolean {\n const cachedAtSec = Number(cachedAt);\n\n return cachedAtSec > TimeUtils.nowSeconds();\n }\n\n /**\n * Waits for t number of milliseconds\n * @param t number\n * @param value T\n */\n static delay<T>(t: number, value?: T): Promise<T | void> {\n return new Promise((resolve) => setTimeout(() => resolve(value), t));\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { CloudDiscoveryMetadata } from \"../../authority/CloudDiscoveryMetadata\";\nimport { OpenIdConfigResponse } from \"../../authority/OpenIdConfigResponse\";\nimport { AUTHORITY_METADATA_CONSTANTS } from \"../../utils/Constants\";\nimport { TimeUtils } from \"../../utils/TimeUtils\";\n\nexport class AuthorityMetadataEntity {\n aliases: Array<string>;\n preferred_cache: string;\n preferred_network: string;\n canonical_authority: string;\n authorization_endpoint: string;\n token_endpoint: string;\n end_session_endpoint: string;\n issuer: string;\n aliasesFromNetwork: boolean;\n endpointsFromNetwork: boolean;\n expiresAt: number;\n\n constructor() {\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\n }\n\n /**\n * Update the entity with new aliases, preferred_cache and preferred_network values\n * @param metadata \n * @param fromNetwork \n */\n updateCloudDiscoveryMetadata(metadata: CloudDiscoveryMetadata, fromNetwork: boolean): void {\n this.aliases = metadata.aliases;\n this.preferred_cache = metadata.preferred_cache;\n this.preferred_network = metadata.preferred_network;\n this.aliasesFromNetwork = fromNetwork;\n }\n\n /**\n * Update the entity with new endpoints\n * @param metadata \n * @param fromNetwork \n */\n updateEndpointMetadata(metadata: OpenIdConfigResponse, fromNetwork: boolean): void {\n this.authorization_endpoint = metadata.authorization_endpoint;\n this.token_endpoint = metadata.token_endpoint;\n this.end_session_endpoint = metadata.end_session_endpoint;\n this.issuer = metadata.issuer;\n this.endpointsFromNetwork = fromNetwork;\n }\n\n /**\n * Save the authority that was used to create this cache entry\n * @param authority \n */\n updateCanonicalAuthority(authority: string): void {\n this.canonical_authority = authority;\n }\n\n /**\n * Reset the exiresAt value\n */\n resetExpiresAt(): void {\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\n }\n\n /**\n * Returns whether or not the data needs to be refreshed\n */\n isExpired(): boolean {\n return this.expiresAt <= TimeUtils.nowSeconds();\n }\n\n /**\n * Validates an entity: checks for all expected params\n * @param entity\n */\n static isAuthorityMetadataEntity(key: string, entity: object): boolean {\n\n if (!entity) {\n return false;\n }\n\n return (\n key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) === 0 &&\n entity.hasOwnProperty(\"aliases\") &&\n entity.hasOwnProperty(\"preferred_cache\") &&\n entity.hasOwnProperty(\"preferred_network\") &&\n entity.hasOwnProperty(\"canonical_authority\") &&\n entity.hasOwnProperty(\"authorization_endpoint\") &&\n entity.hasOwnProperty(\"token_endpoint\") &&\n entity.hasOwnProperty(\"end_session_endpoint\") &&\n entity.hasOwnProperty(\"issuer\") &&\n entity.hasOwnProperty(\"aliasesFromNetwork\") &&\n entity.hasOwnProperty(\"endpointsFromNetwork\") &&\n entity.hasOwnProperty(\"expiresAt\")\n );\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INetworkModule } from \"../network/INetworkModule\";\nimport { NetworkResponse } from \"../network/NetworkManager\";\nimport { IMDSBadResponse } from \"../response/IMDSBadResponse\";\nimport { Constants, RegionDiscoverySources, ResponseCodes } from \"../utils/Constants\";\nimport { RegionDiscoveryMetadata } from \"./RegionDiscoveryMetadata\";\n\nexport class RegionDiscovery {\n // Network interface to make requests with.\n protected networkInterface: INetworkModule;\n // Options for the IMDS endpoint request\n protected static IMDS_OPTIONS = {headers: {\"Metadata\": \"true\"}};\n\n constructor(networkInterface: INetworkModule) {\n this.networkInterface = networkInterface;\n }\n\n /**\n * Detect the region from the application's environment.\n * \n * @returns Promise<string | null>\n */\n public async detectRegion(environmentRegion: string | undefined, regionDiscoveryMetadata: RegionDiscoveryMetadata): Promise<string | null> {\n // Initialize auto detected region with the region from the envrionment \n let autodetectedRegionName = environmentRegion;\n\n // Check if a region was detected from the environment, if not, attempt to get the region from IMDS \n if (!autodetectedRegionName) {\n try {\n const localIMDSVersionResponse = await this.getRegionFromIMDS(Constants.IMDS_VERSION);\n if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\n autodetectedRegionName = localIMDSVersionResponse.body;\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\n } \n \n // If the response using the local IMDS version failed, try to fetch the current version of IMDS and retry. \n if (localIMDSVersionResponse.status === ResponseCodes.httpBadRequest) {\n const currentIMDSVersion = await this.getCurrentVersion();\n if (!currentIMDSVersion) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n return null;\n }\n\n const currentIMDSVersionResponse = await this.getRegionFromIMDS(currentIMDSVersion);\n if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\n autodetectedRegionName = currentIMDSVersionResponse.body;\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\n }\n }\n } catch(e) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n return null;\n } \n } else {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.ENVIRONMENT_VARIABLE;\n }\n\n // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\n if (!autodetectedRegionName) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n }\n\n return autodetectedRegionName || null;\n }\n\n /**\n * Make the call to the IMDS endpoint\n * \n * @param imdsEndpointUrl\n * @returns Promise<NetworkResponse<string>>\n */\n private async getRegionFromIMDS(version: string): Promise<NetworkResponse<string>> {\n return this.networkInterface.sendGetRequestAsync<string>(`${Constants.IMDS_ENDPOINT}?api-version=${version}&format=text`, RegionDiscovery.IMDS_OPTIONS, Constants.IMDS_TIMEOUT);\n }\n\n /**\n * Get the most recent version of the IMDS endpoint available\n * \n * @returns Promise<string | null>\n */\n private async getCurrentVersion(): Promise<string | null> {\n try {\n const response = await this.networkInterface.sendGetRequestAsync<IMDSBadResponse>(`${Constants.IMDS_ENDPOINT}?format=json`, RegionDiscovery.IMDS_OPTIONS);\n\n // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\n if (response.status === ResponseCodes.httpBadRequest && response.body && response.body[\"newest-versions\"] && response.body[\"newest-versions\"].length > 0) {\n return response.body[\"newest-versions\"][0];\n }\n\n return null;\n } catch (e) {\n return null;\n }\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthorityType } from \"./AuthorityType\";\nimport { isOpenIdConfigResponse, OpenIdConfigResponse } from \"./OpenIdConfigResponse\";\nimport { UrlString } from \"../url/UrlString\";\nimport { IUri } from \"../url/IUri\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { INetworkModule } from \"../network/INetworkModule\";\nimport { AuthorityMetadataSource, Constants, RegionDiscoveryOutcomes } from \"../utils/Constants\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { ProtocolMode } from \"./ProtocolMode\";\nimport { ICacheManager } from \"../cache/interface/ICacheManager\";\nimport { AuthorityMetadataEntity } from \"../cache/entities/AuthorityMetadataEntity\";\nimport { AuthorityOptions } from \"./AuthorityOptions\";\nimport { CloudInstanceDiscoveryResponse, isCloudInstanceDiscoveryResponse } from \"./CloudInstanceDiscoveryResponse\";\nimport { CloudDiscoveryMetadata } from \"./CloudDiscoveryMetadata\";\nimport { RegionDiscovery } from \"./RegionDiscovery\";\nimport { RegionDiscoveryMetadata } from \"./RegionDiscoveryMetadata\";\n\n/**\n * The authority class validates the authority URIs used by the user, and retrieves the OpenID Configuration Data from the\n * endpoint. It will store the pertinent config data in this object for use during token calls.\n */\nexport class Authority {\n\n // Canonical authority url string\n private _canonicalAuthority: UrlString;\n // Canonicaly authority url components\n private _canonicalAuthorityUrlComponents: IUri | null;\n // Network interface to make requests with.\n protected networkInterface: INetworkModule;\n // Cache Manager to cache network responses\n protected cacheManager: ICacheManager;\n // Protocol mode to construct endpoints\n private authorityOptions: AuthorityOptions;\n // Authority metadata\n private metadata: AuthorityMetadataEntity;\n // Region discovery service\n private regionDiscovery: RegionDiscovery;\n // Region discovery metadata\n public regionDiscoveryMetadata: RegionDiscoveryMetadata;\n\n constructor(authority: string, networkInterface: INetworkModule, cacheManager: ICacheManager, authorityOptions: AuthorityOptions) {\n this.canonicalAuthority = authority;\n this._canonicalAuthority.validateAsUri();\n this.networkInterface = networkInterface;\n this.cacheManager = cacheManager;\n this.authorityOptions = authorityOptions;\n this.regionDiscovery = new RegionDiscovery(networkInterface);\n this.regionDiscoveryMetadata = { region_used: undefined, region_source: undefined, region_outcome: undefined };\n }\n\n // See above for AuthorityType\n public get authorityType(): AuthorityType {\n const pathSegments = this.canonicalAuthorityUrlComponents.PathSegments;\n\n if (pathSegments.length && pathSegments[0].toLowerCase() === Constants.ADFS) {\n return AuthorityType.Adfs;\n }\n\n return AuthorityType.Default;\n }\n\n /**\n * ProtocolMode enum representing the way endpoints are constructed.\n */\n public get protocolMode(): ProtocolMode {\n return this.authorityOptions.protocolMode;\n }\n\n /**\n * Returns authorityOptions which can be used to reinstantiate a new authority instance\n */\n public get options(): AuthorityOptions {\n return this.authorityOptions;\n }\n\n /**\n * A URL that is the authority set by the developer\n */\n public get canonicalAuthority(): string {\n return this._canonicalAuthority.urlString;\n }\n\n /**\n * Sets canonical authority.\n */\n public set canonicalAuthority(url: string) {\n this._canonicalAuthority = new UrlString(url);\n this._canonicalAuthority.validateAsUri();\n this._canonicalAuthorityUrlComponents = null;\n }\n\n /**\n * Get authority components.\n */\n public get canonicalAuthorityUrlComponents(): IUri {\n if (!this._canonicalAuthorityUrlComponents) {\n this._canonicalAuthorityUrlComponents = this._canonicalAuthority.getUrlComponents();\n }\n\n return this._canonicalAuthorityUrlComponents;\n }\n\n /**\n * Get hostname and port i.e. login.microsoftonline.com\n */\n public get hostnameAndPort(): string {\n return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase();\n }\n\n /**\n * Get tenant for authority.\n */\n public get tenant(): string {\n return this.canonicalAuthorityUrlComponents.PathSegments[0];\n }\n\n /**\n * OAuth /authorize endpoint for requests\n */\n public get authorizationEndpoint(): string {\n if(this.discoveryComplete()) {\n const endpoint = this.replacePath(this.metadata.authorization_endpoint);\n return this.replaceTenant(endpoint);\n } else {\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\n }\n }\n\n /**\n * OAuth /token endpoint for requests\n */\n public get tokenEndpoint(): string {\n if(this.discoveryComplete()) {\n const endpoint = this.replacePath(this.metadata.token_endpoint);\n return this.replaceTenant(endpoint);\n } else {\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\n }\n }\n\n public get deviceCodeEndpoint(): string {\n if(this.discoveryComplete()) {\n const endpoint = this.replacePath(this.metadata.token_endpoint.replace(\"/token\", \"/devicecode\"));\n return this.replaceTenant(endpoint);\n } else {\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\n }\n }\n\n /**\n * OAuth logout endpoint for requests\n */\n public get endSessionEndpoint(): string {\n if(this.discoveryComplete()) {\n const endpoint = this.replacePath(this.metadata.end_session_endpoint);\n return this.replaceTenant(endpoint);\n } else {\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\n }\n }\n\n /**\n * OAuth issuer for requests\n */\n public get selfSignedJwtAudience(): string {\n if(this.discoveryComplete()) {\n const endpoint = this.replacePath(this.metadata.issuer);\n return this.replaceTenant(endpoint);\n } else {\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\n }\n }\n\n /**\n * Replaces tenant in url path with current tenant. Defaults to common.\n * @param urlString\n */\n private replaceTenant(urlString: string): string {\n return urlString.replace(/{tenant}|{tenantid}/g, this.tenant);\n }\n\n /**\n * Replaces path such as tenant or policy with the current tenant or policy.\n * @param urlString \n */\n private replacePath(urlString: string): string {\n let endpoint = urlString;\n const cachedAuthorityUrl = new UrlString(this.metadata.canonical_authority);\n const cachedAuthorityParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\n const currentAuthorityParts = this.canonicalAuthorityUrlComponents.PathSegments;\n\n currentAuthorityParts.forEach((currentPart, index) => {\n const cachedPart = cachedAuthorityParts[index];\n if (currentPart !== cachedPart) {\n endpoint = endpoint.replace(`/${cachedPart}/`, `/${currentPart}/`);\n }\n });\n\n return endpoint;\n }\n\n /**\n * The default open id configuration endpoint for any canonical authority.\n */\n protected get defaultOpenIdConfigurationEndpoint(): string {\n if (this.authorityType === AuthorityType.Adfs || this.protocolMode === ProtocolMode.OIDC) {\n return `${this.canonicalAuthority}.well-known/openid-configuration`;\n }\n return `${this.canonicalAuthority}v2.0/.well-known/openid-configuration`;\n }\n\n /**\n * Boolean that returns whethr or not tenant discovery has been completed.\n */\n discoveryComplete(): boolean {\n return !!this.metadata;\n }\n\n /**\n * Perform endpoint discovery to discover aliases, preferred_cache, preferred_network\n * and the /authorize, /token and logout endpoints.\n */\n public async resolveEndpointsAsync(): Promise<void> {\n let metadataEntity = this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);\n if (!metadataEntity) {\n metadataEntity = new AuthorityMetadataEntity();\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\n }\n\n const cloudDiscoverySource = await this.updateCloudDiscoveryMetadata(metadataEntity);\n this.canonicalAuthority = this.canonicalAuthority.replace(this.hostnameAndPort, metadataEntity.preferred_network);\n const endpointSource = await this.updateEndpointMetadata(metadataEntity);\n\n if (cloudDiscoverySource !== AuthorityMetadataSource.CACHE && endpointSource !== AuthorityMetadataSource.CACHE) {\n // Reset the expiration time unless both values came from a successful cache lookup\n metadataEntity.resetExpiresAt();\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\n } \n\n const cacheKey = this.cacheManager.generateAuthorityMetadataCacheKey(metadataEntity.preferred_cache);\n this.cacheManager.setAuthorityMetadata(cacheKey, metadataEntity);\n this.metadata = metadataEntity;\n }\n\n /**\n * Update AuthorityMetadataEntity with new endpoints and return where the information came from\n * @param metadataEntity \n */\n private async updateEndpointMetadata(metadataEntity: AuthorityMetadataEntity): Promise<AuthorityMetadataSource> {\n let metadata = this.getEndpointMetadataFromConfig();\n if (metadata) {\n metadataEntity.updateEndpointMetadata(metadata, false);\n return AuthorityMetadataSource.CONFIG;\n }\n\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.endpointsFromNetwork && !metadataEntity.isExpired()) {\n // No need to update\n return AuthorityMetadataSource.CACHE;\n }\n\n metadata = await this.getEndpointMetadataFromNetwork();\n if (metadata) {\n // If the user prefers to use an azure region replace the global endpoints with regional information.\n if (this.authorityOptions.azureRegionConfiguration?.azureRegion) {\n const autodetectedRegionName = await this.regionDiscovery.detectRegion(this.authorityOptions.azureRegionConfiguration.environmentRegion, this.regionDiscoveryMetadata);\n\n const azureRegion = this.authorityOptions.azureRegionConfiguration.azureRegion === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG \n ? autodetectedRegionName \n : this.authorityOptions.azureRegionConfiguration.azureRegion;\n\n if (this.authorityOptions.azureRegionConfiguration.azureRegion === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {\n this.regionDiscoveryMetadata.region_outcome = autodetectedRegionName ?\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL :\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;\n } else {\n if (autodetectedRegionName) {\n this.regionDiscoveryMetadata.region_outcome = (this.authorityOptions.azureRegionConfiguration.azureRegion === autodetectedRegionName) ?\n RegionDiscoveryOutcomes.CONFIGURED_MATCHES_DETECTED :\n RegionDiscoveryOutcomes.CONFIGURED_NOT_DETECTED;\n } else {\n this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;\n }\n }\n\n if (azureRegion) {\n this.regionDiscoveryMetadata.region_used = azureRegion;\n metadata = Authority.replaceWithRegionalInformation(metadata, azureRegion);\n }\n }\n\n metadataEntity.updateEndpointMetadata(metadata, true);\n return AuthorityMetadataSource.NETWORK;\n } else {\n throw ClientAuthError.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint);\n }\n }\n\n /**\n * Compares the number of url components after the domain to determine if the cached authority metadata can be used for the requested authority\n * Protects against same domain different authority such as login.microsoftonline.com/tenant and login.microsoftonline.com/tfp/tenant/policy\n * @param metadataEntity\n */\n private isAuthoritySameType(metadataEntity: AuthorityMetadataEntity): boolean {\n const cachedAuthorityUrl = new UrlString(metadataEntity.canonical_authority);\n const cachedParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\n \n return cachedParts.length === this.canonicalAuthorityUrlComponents.PathSegments.length;\n }\n\n /**\n * Parse authorityMetadata config option\n */\n private getEndpointMetadataFromConfig(): OpenIdConfigResponse | null {\n if (this.authorityOptions.authorityMetadata) {\n try {\n return JSON.parse(this.authorityOptions.authorityMetadata) as OpenIdConfigResponse;\n } catch (e) {\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\n }\n }\n\n return null;\n }\n\n /**\n * Gets OAuth endpoints from the given OpenID configuration endpoint.\n */\n private async getEndpointMetadataFromNetwork(): Promise<OpenIdConfigResponse | null> {\n try {\n const response = await this.networkInterface.sendGetRequestAsync<OpenIdConfigResponse>(this.defaultOpenIdConfigurationEndpoint);\n return isOpenIdConfigResponse(response.body) ? response.body : null;\n } catch (e) {\n return null;\n }\n }\n\n /**\n * Updates the AuthorityMetadataEntity with new aliases, preferred_network and preferred_cache and returns where the information was retrived from\n * @param cachedMetadata \n * @param newMetadata \n */\n private async updateCloudDiscoveryMetadata(metadataEntity: AuthorityMetadataEntity): Promise<AuthorityMetadataSource> {\n let metadata = this.getCloudDiscoveryMetadataFromConfig();\n if (metadata) {\n metadataEntity.updateCloudDiscoveryMetadata(metadata, false);\n return AuthorityMetadataSource.CONFIG;\n }\n\n // If The cached metadata came from config but that config was not passed to this instance, we must go to the network\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.aliasesFromNetwork && !metadataEntity.isExpired()) {\n // No need to update\n return AuthorityMetadataSource.CACHE;\n }\n\n metadata = await this.getCloudDiscoveryMetadataFromNetwork();\n if (metadata) {\n metadataEntity.updateCloudDiscoveryMetadata(metadata, true);\n return AuthorityMetadataSource.NETWORK;\n } else {\n // Metadata could not be obtained from config, cache or network\n throw ClientConfigurationError.createUntrustedAuthorityError();\n }\n }\n\n /**\n * Parse cloudDiscoveryMetadata config or check knownAuthorities\n */\n private getCloudDiscoveryMetadataFromConfig(): CloudDiscoveryMetadata | null {\n // Check if network response was provided in config\n if (this.authorityOptions.cloudDiscoveryMetadata) {\n try {\n const parsedResponse = JSON.parse(this.authorityOptions.cloudDiscoveryMetadata) as CloudInstanceDiscoveryResponse;\n const metadata = Authority.getCloudDiscoveryMetadataFromNetworkResponse(parsedResponse.metadata, this.hostnameAndPort);\n if (metadata) {\n return metadata;\n }\n } catch (e) {\n throw ClientConfigurationError.createInvalidCloudDiscoveryMetadataError();\n }\n }\n\n // If cloudDiscoveryMetadata is empty or does not contain the host, check knownAuthorities\n if (this.isInKnownAuthorities()) {\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\n }\n\n return null;\n }\n\n /**\n * Called to get metadata from network if CloudDiscoveryMetadata was not populated by config\n * @param networkInterface \n */\n private async getCloudDiscoveryMetadataFromNetwork(): Promise<CloudDiscoveryMetadata | null> {\n const instanceDiscoveryEndpoint = `${Constants.AAD_INSTANCE_DISCOVERY_ENDPT}${this.canonicalAuthority}oauth2/v2.0/authorize`;\n let match = null;\n try {\n const response = await this.networkInterface.sendGetRequestAsync<CloudInstanceDiscoveryResponse>(instanceDiscoveryEndpoint);\n const metadata = isCloudInstanceDiscoveryResponse(response.body) ? response.body.metadata : [];\n if (metadata.length === 0) {\n // If no metadata is returned, authority is untrusted\n return null;\n }\n match = Authority.getCloudDiscoveryMetadataFromNetworkResponse(metadata, this.hostnameAndPort);\n } catch(e) {\n return null;\n }\n\n if (!match) {\n // Custom Domain scenario, host is trusted because Instance Discovery call succeeded \n match = Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\n }\n return match;\n } \n\n /**\n * Helper function to determine if this host is included in the knownAuthorities config option\n */\n private isInKnownAuthorities(): boolean {\n const matches = this.authorityOptions.knownAuthorities.filter((authority) => {\n return UrlString.getDomainFromUrl(authority).toLowerCase() === this.hostnameAndPort;\n });\n\n return matches.length > 0;\n }\n\n /**\n * Creates cloud discovery metadata object from a given host\n * @param host \n */\n static createCloudDiscoveryMetadataFromHost(host: string): CloudDiscoveryMetadata {\n return {\n preferred_network: host,\n preferred_cache: host,\n aliases: [host]\n };\n }\n\n /**\n * Searches instance discovery network response for the entry that contains the host in the aliases list\n * @param response \n * @param authority \n */\n static getCloudDiscoveryMetadataFromNetworkResponse(response: CloudDiscoveryMetadata[], authority: string): CloudDiscoveryMetadata | null {\n for (let i = 0; i < response.length; i++) {\n const metadata = response[i];\n if (metadata.aliases.indexOf(authority) > -1) {\n return metadata;\n }\n }\n\n return null;\n }\n\n /**\n * helper function to generate environment from authority object\n */\n getPreferredCache(): string {\n if(this.discoveryComplete()) {\n return this.metadata.preferred_cache;\n } else {\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\n }\n }\n\n /**\n * Returns whether or not the provided host is an alias of this authority instance\n * @param host \n */\n isAlias(host: string): boolean {\n return this.metadata.aliases.indexOf(host) > -1;\n }\n\n /**\n * Checks whether the provided host is that of a public cloud authority\n * \n * @param authority string\n * @returns bool\n */\n static isPublicCloudAuthority(host: string): boolean {\n return Constants.KNOWN_PUBLIC_CLOUDS.indexOf(host) >= 0;\n }\n\n /**\n * Rebuild the authority string with the region\n * \n * @param host string\n * @param region string \n */\n static buildRegionalAuthorityString(host: string, region: string, queryString?: string): string {\n // Create and validate a Url string object with the initial authority string\n const authorityUrlInstance = new UrlString(host);\n authorityUrlInstance.validateAsUri();\n\n const authorityUrlParts = authorityUrlInstance.getUrlComponents();\n\n let hostNameAndPort= `${region}.${authorityUrlParts.HostNameAndPort}`;\n\n if (this.isPublicCloudAuthority(authorityUrlParts.HostNameAndPort)) {\n hostNameAndPort = `${region}.${Constants.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX}`;\n }\n\n // Include the query string portion of the url\n const url = UrlString.constructAuthorityUriFromObject({\n ...authorityUrlInstance.getUrlComponents(),\n HostNameAndPort: hostNameAndPort\n }).urlString;\n\n // Add the query string if a query string was provided\n if (queryString) return `${url}?${queryString}`;\n\n return url;\n }\n\n /**\n * Replace the endpoints in the metadata object with their regional equivalents.\n * \n * @param metadata OpenIdConfigResponse\n * @param azureRegion string\n */\n static replaceWithRegionalInformation(metadata: OpenIdConfigResponse, azureRegion: string): OpenIdConfigResponse {\n metadata.authorization_endpoint = Authority.buildRegionalAuthorityString(metadata.authorization_endpoint, azureRegion);\n // TODO: Enquire on whether we should leave the query string or remove it before releasing the feature\n metadata.token_endpoint = Authority.buildRegionalAuthorityString(metadata.token_endpoint, azureRegion, \"allowestsrnonmsi=true\");\n metadata.end_session_endpoint = Authority.buildRegionalAuthorityString(metadata.end_session_endpoint, azureRegion);\n \n return metadata;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { CloudDiscoveryMetadata } from \"./CloudDiscoveryMetadata\";\n\n/**\n * The OpenID Configuration Endpoint Response type. Used by the authority class to get relevant OAuth endpoints.\n */\nexport type CloudInstanceDiscoveryResponse = {\n tenant_discovery_endpoint: string;\n metadata: Array<CloudDiscoveryMetadata>;\n};\n\nexport function isCloudInstanceDiscoveryResponse(response: object): boolean {\n return (\n response.hasOwnProperty(\"tenant_discovery_endpoint\") &&\n response.hasOwnProperty(\"metadata\")\n );\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Authority } from \"./Authority\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { INetworkModule } from \"../network/INetworkModule\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { ICacheManager } from \"../cache/interface/ICacheManager\";\nimport { AuthorityOptions } from \"./AuthorityOptions\";\n\nexport class AuthorityFactory {\n\n /**\n * Create an authority object of the correct type based on the url\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\n *\n * Also performs endpoint discovery.\n *\n * @param authorityUri\n * @param networkClient\n * @param protocolMode\n */\n static async createDiscoveredInstance(authorityUri: string, networkClient: INetworkModule, cacheManager: ICacheManager, authorityOptions: AuthorityOptions): Promise<Authority> {\n // Initialize authority and perform discovery endpoint check.\n const acquireTokenAuthority: Authority = AuthorityFactory.createInstance(authorityUri, networkClient, cacheManager, authorityOptions);\n\n try {\n await acquireTokenAuthority.resolveEndpointsAsync();\n return acquireTokenAuthority;\n } catch (e) {\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(e);\n }\n }\n\n /**\n * Create an authority object of the correct type based on the url\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\n *\n * Does not perform endpoint discovery.\n *\n * @param authorityUrl\n * @param networkInterface\n * @param protocolMode\n */\n static createInstance(authorityUrl: string, networkInterface: INetworkModule, cacheManager: ICacheManager, authorityOptions: AuthorityOptions): Authority {\n // Throw error if authority url is empty\n if (StringUtils.isEmpty(authorityUrl)) {\n throw ClientConfigurationError.createUrlEmptyError();\n }\n\n return new Authority(authorityUrl, networkInterface, cacheManager, authorityOptions);\n }\n}\n","/* eslint-disable header/header */\nexport const name = \"@azure/msal-common\";\nexport const version = \"4.5.1\";\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Separators, CredentialType, CacheType, Constants } from \"../../utils/Constants\";\nimport { ClientAuthError } from \"../../error/ClientAuthError\";\n\n/**\n * Base type for credentials to be stored in the cache: eg: ACCESS_TOKEN, ID_TOKEN etc\n *\n * Key:Value Schema:\n *\n * Key: <home_account_id*>-<environment>-<credential_type>-<client_id>-<realm*>-<target*>\n *\n * Value Schema:\n * {\n * homeAccountId: home account identifier for the auth scheme,\n * environment: entity that issued the token, represented as a full host\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\n * clientId: client ID of the application\n * secret: Actual credential as a string\n * familyId: Family ID identifier, usually only used for refresh tokens\n * realm: Full tenant or organizational identifier that the account belongs to\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\n * oboAssertion: access token passed in as part of OBO request\n * }\n */\nexport class CredentialEntity {\n homeAccountId: string;\n environment: string;\n credentialType: CredentialType;\n clientId: string;\n secret: string;\n familyId?: string;\n realm?: string;\n target?: string;\n oboAssertion?: string;\n\n /**\n * Generate Account Id key component as per the schema: <home_account_id>-<environment>\n */\n generateAccountId(): string {\n return CredentialEntity.generateAccountIdForCacheKey(this.homeAccountId, this.environment);\n }\n\n /**\n * Generate Credential Id key component as per the schema: <credential_type>-<client_id>-<realm>\n */\n generateCredentialId(): string {\n return CredentialEntity.generateCredentialIdForCacheKey(\n this.credentialType,\n this.clientId,\n this.realm,\n this.familyId\n );\n }\n\n /**\n * Generate target key component as per schema: <target>\n */\n generateTarget(): string {\n return CredentialEntity.generateTargetForCacheKey(this.target);\n }\n\n /**\n * generates credential key\n */\n generateCredentialKey(): string {\n return CredentialEntity.generateCredentialCacheKey(\n this.homeAccountId,\n this.environment,\n this.credentialType,\n this.clientId,\n this.realm,\n this.target,\n this.familyId\n );\n }\n\n /**\n * returns the type of the cache (in this case credential)\n */\n generateType(): number {\n switch (this.credentialType) {\n case CredentialType.ID_TOKEN:\n return CacheType.ID_TOKEN;\n case CredentialType.ACCESS_TOKEN:\n return CacheType.ACCESS_TOKEN;\n case CredentialType.REFRESH_TOKEN:\n return CacheType.REFRESH_TOKEN;\n default: {\n throw ClientAuthError.createUnexpectedCredentialTypeError();\n }\n }\n }\n\n /**\n * helper function to return `CredentialType`\n * @param key\n */\n static getCredentialType(key: string): string {\n // First keyword search will match all \"AccessToken\" and \"AccessToken_With_AuthScheme\" credentials\n if (key.indexOf(CredentialType.ACCESS_TOKEN.toLowerCase()) !== -1) {\n // Perform second search to differentiate between \"AccessToken\" and \"AccessToken_With_AuthScheme\" credential types\n if (key.indexOf(CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()) !== -1) {\n return CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\n }\n return CredentialType.ACCESS_TOKEN;\n } else if (key.indexOf(CredentialType.ID_TOKEN.toLowerCase()) !== -1) {\n return CredentialType.ID_TOKEN;\n } else if (key.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) !== -1) {\n return CredentialType.REFRESH_TOKEN;\n }\n\n return Constants.NOT_DEFINED;\n }\n\n /**\n * generates credential key\n */\n static generateCredentialCacheKey(\n homeAccountId: string,\n environment: string,\n credentialType: CredentialType,\n clientId: string,\n realm?: string,\n target?: string,\n familyId?: string\n ): string {\n const credentialKey = [\n this.generateAccountIdForCacheKey(homeAccountId, environment),\n this.generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId),\n this.generateTargetForCacheKey(target),\n ];\n\n return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\n }\n\n /**\n * generates Account Id for keys\n * @param homeAccountId\n * @param environment\n */\n private static generateAccountIdForCacheKey(\n homeAccountId: string,\n environment: string\n ): string {\n const accountId: Array<string> = [homeAccountId, environment];\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\n }\n\n /**\n * Generates Credential Id for keys\n * @param credentialType\n * @param realm\n * @param clientId\n * @param familyId\n */\n private static generateCredentialIdForCacheKey(\n credentialType: CredentialType,\n clientId: string,\n realm?: string,\n familyId?: string\n ): string {\n const clientOrFamilyId =\n credentialType === CredentialType.REFRESH_TOKEN\n ? familyId || clientId\n : clientId;\n const credentialId: Array<string> = [\n credentialType,\n clientOrFamilyId,\n realm || \"\",\n ];\n\n return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\n }\n\n /**\n * Generate target key component as per schema: <target>\n */\n private static generateTargetForCacheKey(scopes?: string): string {\n return (scopes || \"\").toLowerCase();\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { OIDC_SCOPES } from \"../utils/Constants\";\n\n/**\n * The ScopeSet class creates a set of scopes. Scopes are case-insensitive, unique values, so the Set object in JS makes\n * the most sense to implement for this class. All scopes are trimmed and converted to lower case strings in intersection and union functions\n * to ensure uniqueness of strings.\n */\nexport class ScopeSet {\n // Scopes as a Set of strings\n private scopes: Set<string>;\n\n constructor(inputScopes: Array<string>) {\n // Filter empty string and null/undefined array items\n const scopeArr = inputScopes ? StringUtils.trimArrayEntries([...inputScopes]) : [];\n const filteredInput = scopeArr ? StringUtils.removeEmptyStringsFromArray(scopeArr) : [];\n\n // Validate and filter scopes (validate function throws if validation fails)\n this.validateInputScopes(filteredInput);\n\n this.scopes = new Set<string>(); // Iterator in constructor not supported by IE11\n filteredInput.forEach(scope => this.scopes.add(scope));\n }\n\n /**\n * Factory method to create ScopeSet from space-delimited string\n * @param inputScopeString\n * @param appClientId\n * @param scopesRequired\n */\n static fromString(inputScopeString: string): ScopeSet {\n const scopeString = inputScopeString || \"\";\n const inputScopes: Array<string> = scopeString.split(\" \");\n return new ScopeSet(inputScopes);\n }\n\n /**\n * Used to validate the scopes input parameter requested by the developer.\n * @param {Array<string>} inputScopes - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\n * @param {boolean} scopesRequired - Boolean indicating whether the scopes array is required or not\n */\n private validateInputScopes(inputScopes: Array<string>): void {\n // Check if scopes are required but not given or is an empty array\n if (!inputScopes || inputScopes.length < 1) {\n throw ClientConfigurationError.createEmptyScopesArrayError();\n }\n }\n\n /**\n * Check if a given scope is present in this set of scopes.\n * @param scope\n */\n containsScope(scope: string): boolean {\n const lowerCaseScopes = this.printScopesLowerCase().split(\" \");\n const lowerCaseScopesSet = new ScopeSet(lowerCaseScopes);\n // compare lowercase scopes\n return !StringUtils.isEmpty(scope) ? lowerCaseScopesSet.scopes.has(scope.toLowerCase()) : false;\n }\n\n /**\n * Check if a set of scopes is present in this set of scopes.\n * @param scopeSet\n */\n containsScopeSet(scopeSet: ScopeSet): boolean {\n if (!scopeSet || scopeSet.scopes.size <= 0) {\n return false;\n }\n\n return (this.scopes.size >= scopeSet.scopes.size && scopeSet.asArray().every(scope => this.containsScope(scope)));\n }\n\n /**\n * Check if set of scopes contains only the defaults\n */\n containsOnlyOIDCScopes(): boolean {\n let defaultScopeCount = 0;\n OIDC_SCOPES.forEach((defaultScope: string) => {\n if (this.containsScope(defaultScope)) {\n defaultScopeCount += 1;\n }\n });\n\n return this.scopes.size === defaultScopeCount;\n }\n\n /**\n * Appends single scope if passed\n * @param newScope\n */\n appendScope(newScope: string): void {\n if (!StringUtils.isEmpty(newScope)) {\n this.scopes.add(newScope.trim());\n }\n }\n\n /**\n * Appends multiple scopes if passed\n * @param newScopes\n */\n appendScopes(newScopes: Array<string>): void {\n try {\n newScopes.forEach(newScope => this.appendScope(newScope));\n } catch (e) {\n throw ClientAuthError.createAppendScopeSetError(e);\n }\n }\n\n /**\n * Removes element from set of scopes.\n * @param scope\n */\n removeScope(scope: string): void {\n if (StringUtils.isEmpty(scope)) {\n throw ClientAuthError.createRemoveEmptyScopeFromSetError(scope);\n }\n this.scopes.delete(scope.trim());\n }\n\n /**\n * Removes default scopes from set of scopes\n * Primarily used to prevent cache misses if the default scopes are not returned from the server\n */\n removeOIDCScopes(): void {\n OIDC_SCOPES.forEach((defaultScope: string) => {\n this.scopes.delete(defaultScope);\n });\n }\n\n /**\n * Combines an array of scopes with the current set of scopes.\n * @param otherScopes\n */\n unionScopeSets(otherScopes: ScopeSet): Set<string> {\n if (!otherScopes) {\n throw ClientAuthError.createEmptyInputScopeSetError();\n }\n const unionScopes = new Set<string>(); // Iterator in constructor not supported in IE11\n otherScopes.scopes.forEach(scope => unionScopes.add(scope.toLowerCase()));\n this.scopes.forEach(scope => unionScopes.add(scope.toLowerCase()));\n return unionScopes;\n }\n\n /**\n * Check if scopes intersect between this set and another.\n * @param otherScopes\n */\n intersectingScopeSets(otherScopes: ScopeSet): boolean {\n if (!otherScopes) {\n throw ClientAuthError.createEmptyInputScopeSetError();\n }\n \n // Do not allow OIDC scopes to be the only intersecting scopes\n if (!otherScopes.containsOnlyOIDCScopes()) {\n otherScopes.removeOIDCScopes();\n }\n const unionScopes = this.unionScopeSets(otherScopes);\n const sizeOtherScopes = otherScopes.getScopeCount();\n const sizeThisScopes = this.getScopeCount();\n const sizeUnionScopes = unionScopes.size;\n return sizeUnionScopes < (sizeThisScopes + sizeOtherScopes);\n }\n\n /**\n * Returns size of set of scopes.\n */\n getScopeCount(): number {\n return this.scopes.size;\n }\n\n /**\n * Returns the scopes as an array of string values\n */\n asArray(): Array<string> {\n const array: Array<string> = [];\n this.scopes.forEach(val => array.push(val));\n return array;\n }\n\n /**\n * Prints scopes into a space-delimited string\n */\n printScopes(): string {\n if (this.scopes) {\n const scopeArr = this.asArray();\n return scopeArr.join(\" \");\n }\n return \"\";\n }\n\n /**\n * Prints scopes into a space-delimited lower-case string (used for caching)\n */\n printScopesLowerCase(): string {\n return this.printScopes().toLowerCase();\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { TokenClaims } from \"./TokenClaims\";\nimport { DecodedAuthToken } from \"./DecodedAuthToken\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ICrypto } from \"../crypto/ICrypto\";\n\n/**\n * JWT Token representation class. Parses token string and generates claims object.\n */\nexport class AuthToken {\n\n // Raw Token string\n rawToken: string;\n // Claims inside token\n claims: TokenClaims;\n constructor(rawToken: string, crypto: ICrypto) {\n if (StringUtils.isEmpty(rawToken)) {\n throw ClientAuthError.createTokenNullOrEmptyError(rawToken);\n }\n\n this.rawToken = rawToken;\n this.claims = AuthToken.extractTokenClaims(rawToken, crypto);\n }\n\n /**\n * Extract token by decoding the rawToken\n *\n * @param encodedToken\n */\n static extractTokenClaims(encodedToken: string, crypto: ICrypto): TokenClaims {\n\n const decodedToken: DecodedAuthToken = StringUtils.decodeAuthToken(encodedToken);\n\n // token will be decoded to get the username\n try {\n const base64TokenPayload = decodedToken.JWSPayload;\n\n // base64Decode() should throw an error if there is an issue\n const base64Decoded = crypto.base64Decode(base64TokenPayload);\n return JSON.parse(base64Decoded) as TokenClaims;\n } catch (err) {\n throw ClientAuthError.createTokenParsingError(err);\n }\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AccountCache, AccountFilter, CredentialFilter, CredentialCache, ValidCredentialType, AppMetadataFilter, AppMetadataCache } from \"./utils/CacheTypes\";\nimport { CacheRecord } from \"./entities/CacheRecord\";\nimport { CacheSchemaType, CredentialType, Constants, APP_METADATA, THE_FAMILY_ID, AUTHORITY_METADATA_CONSTANTS, AuthenticationScheme } from \"../utils/Constants\";\nimport { CredentialEntity } from \"./entities/CredentialEntity\";\nimport { ScopeSet } from \"../request/ScopeSet\";\nimport { AccountEntity } from \"./entities/AccountEntity\";\nimport { AccessTokenEntity } from \"./entities/AccessTokenEntity\";\nimport { IdTokenEntity } from \"./entities/IdTokenEntity\";\nimport { RefreshTokenEntity } from \"./entities/RefreshTokenEntity\";\nimport { AuthError } from \"../error/AuthError\";\nimport { ICacheManager } from \"./interface/ICacheManager\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { AccountInfo } from \"../account/AccountInfo\";\nimport { AppMetadataEntity } from \"./entities/AppMetadataEntity\";\nimport { ServerTelemetryEntity } from \"./entities/ServerTelemetryEntity\";\nimport { ThrottlingEntity } from \"./entities/ThrottlingEntity\";\nimport { AuthToken } from \"../account/AuthToken\";\nimport { ICrypto } from \"../crypto/ICrypto\";\nimport { AuthorityMetadataEntity } from \"./entities/AuthorityMetadataEntity\";\n\n/**\n * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.\n */\nexport abstract class CacheManager implements ICacheManager {\n protected clientId: string;\n protected cryptoImpl: ICrypto;\n\n constructor(clientId: string, cryptoImpl: ICrypto) {\n this.clientId = clientId;\n this.cryptoImpl = cryptoImpl;\n }\n\n /**\n * fetch the account entity from the platform cache\n * @param accountKey\n */\n abstract getAccount(accountKey: string): AccountEntity | null;\n\n /**\n * set account entity in the platform cache\n * @param account\n */\n abstract setAccount(account: AccountEntity): void;\n\n /**\n * fetch the idToken entity from the platform cache\n * @param idTokenKey\n */\n abstract getIdTokenCredential(idTokenKey: string): IdTokenEntity | null;\n\n /**\n * set idToken entity to the platform cache\n * @param idToken\n */\n abstract setIdTokenCredential(idToken: IdTokenEntity): void;\n\n /**\n * fetch the idToken entity from the platform cache\n * @param accessTokenKey\n */\n abstract getAccessTokenCredential(accessTokenKey: string): AccessTokenEntity | null;\n\n /**\n * set idToken entity to the platform cache\n * @param accessToken\n */\n abstract setAccessTokenCredential(accessToken: AccessTokenEntity): void;\n\n /**\n * fetch the idToken entity from the platform cache\n * @param refreshTokenKey\n */\n abstract getRefreshTokenCredential(refreshTokenKey: string): RefreshTokenEntity | null;\n\n /**\n * set idToken entity to the platform cache\n * @param refreshToken\n */\n abstract setRefreshTokenCredential(refreshToken: RefreshTokenEntity): void;\n\n /**\n * fetch appMetadata entity from the platform cache\n * @param appMetadataKey\n */\n abstract getAppMetadata(appMetadataKey: string): AppMetadataEntity | null;\n\n /**\n * set appMetadata entity to the platform cache\n * @param appMetadata\n */\n abstract setAppMetadata(appMetadata: AppMetadataEntity): void;\n\n /**\n * fetch server telemetry entity from the platform cache\n * @param serverTelemetryKey\n */\n abstract getServerTelemetry(serverTelemetryKey: string): ServerTelemetryEntity | null;\n\n /**\n * set server telemetry entity to the platform cache\n * @param serverTelemetryKey\n * @param serverTelemetry\n */\n abstract setServerTelemetry(serverTelemetryKey: string, serverTelemetry: ServerTelemetryEntity): void;\n\n /**\n * fetch cloud discovery metadata entity from the platform cache\n * @param key\n */\n abstract getAuthorityMetadata(key: string): AuthorityMetadataEntity | null;\n\n /**\n * \n */\n abstract getAuthorityMetadataKeys(): Array<string>;\n\n /**\n * set cloud discovery metadata entity to the platform cache\n * @param key\n * @param value\n */\n abstract setAuthorityMetadata(key: string, value: AuthorityMetadataEntity): void;\n\n /**\n * fetch throttling entity from the platform cache\n * @param throttlingCacheKey\n */\n abstract getThrottlingCache(throttlingCacheKey: string): ThrottlingEntity | null;\n\n /**\n * set throttling entity to the platform cache\n * @param throttlingCacheKey\n * @param throttlingCache\n */\n abstract setThrottlingCache(throttlingCacheKey: string, throttlingCache: ThrottlingEntity): void;;\n\n /**\n * Function to remove an item from cache given its key.\n * @param key\n */\n abstract removeItem(key: string, type?: string): boolean;\n\n /**\n * Function which returns boolean whether cache contains a specific key.\n * @param key\n */\n abstract containsKey(key: string, type?: string): boolean;\n\n /**\n * Function which retrieves all current keys from the cache.\n */\n abstract getKeys(): string[];\n\n /**\n * Function which clears cache.\n */\n abstract clear(): void;\n\n /**\n * Returns all accounts in cache\n */\n getAllAccounts(): AccountInfo[] {\n const currentAccounts: AccountCache = this.getAccountsFilteredBy();\n const accountValues: AccountEntity[] = Object.keys(currentAccounts).map(accountKey => currentAccounts[accountKey]);\n const numAccounts = accountValues.length;\n if (numAccounts < 1) {\n return [];\n } else {\n const allAccounts = accountValues.map<AccountInfo>((value) => {\n const accountEntity = CacheManager.toObject<AccountEntity>(new AccountEntity(), value);\n const accountInfo = accountEntity.getAccountInfo();\n const idToken = this.readIdTokenFromCache(this.clientId, accountInfo);\n if (idToken && !accountInfo.idTokenClaims) {\n accountInfo.idTokenClaims = new AuthToken(idToken.secret, this.cryptoImpl).claims;\n }\n\n return accountInfo;\n \n });\n return allAccounts;\n }\n }\n\n /**\n * saves a cache record\n * @param cacheRecord\n */\n saveCacheRecord(cacheRecord: CacheRecord): void {\n if (!cacheRecord) {\n throw ClientAuthError.createNullOrUndefinedCacheRecord();\n }\n\n if (!!cacheRecord.account) {\n this.setAccount(cacheRecord.account);\n }\n\n if (!!cacheRecord.idToken) {\n this.setIdTokenCredential(cacheRecord.idToken);\n }\n\n if (!!cacheRecord.accessToken) {\n this.saveAccessToken(cacheRecord.accessToken);\n }\n\n if (!!cacheRecord.refreshToken) {\n this.setRefreshTokenCredential(cacheRecord.refreshToken);\n }\n\n if (!!cacheRecord.appMetadata) {\n this.setAppMetadata(cacheRecord.appMetadata);\n }\n }\n\n /**\n * saves access token credential\n * @param credential\n */\n private saveAccessToken(credential: AccessTokenEntity): void {\n const currentTokenCache = this.getCredentialsFilteredBy({\n clientId: credential.clientId,\n credentialType: credential.credentialType,\n environment: credential.environment,\n homeAccountId: credential.homeAccountId,\n realm: credential.realm,\n });\n const currentScopes = ScopeSet.fromString(credential.target);\n const currentAccessTokens: AccessTokenEntity[] = Object.keys(currentTokenCache.accessTokens).map(key => currentTokenCache.accessTokens[key]);\n if (currentAccessTokens) {\n currentAccessTokens.forEach((tokenEntity) => {\n const tokenScopeSet = ScopeSet.fromString(tokenEntity.target);\n if (tokenScopeSet.intersectingScopeSets(currentScopes)) {\n this.removeCredential(tokenEntity);\n }\n });\n }\n this.setAccessTokenCredential(credential);\n }\n\n /**\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\n * @param homeAccountId\n * @param environment\n * @param realm\n */\n getAccountsFilteredBy(accountFilter?: AccountFilter): AccountCache {\n return this.getAccountsFilteredByInternal(\n accountFilter ? accountFilter.homeAccountId : \"\",\n accountFilter ? accountFilter.environment : \"\",\n accountFilter ? accountFilter.realm : \"\"\n );\n }\n\n /**\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\n * @param homeAccountId\n * @param environment\n * @param realm\n */\n private getAccountsFilteredByInternal(\n homeAccountId?: string,\n environment?: string,\n realm?: string\n ): AccountCache {\n const allCacheKeys = this.getKeys();\n const matchingAccounts: AccountCache = {};\n\n allCacheKeys.forEach((cacheKey) => {\n const entity: AccountEntity | null = this.getAccount(cacheKey);\n\n if (!entity) {\n return;\n }\n\n if (!!homeAccountId && !this.matchHomeAccountId(entity, homeAccountId)) {\n return;\n }\n\n if (!!environment && !this.matchEnvironment(entity, environment)) {\n return;\n }\n\n if (!!realm && !this.matchRealm(entity, realm)) {\n return;\n }\n\n matchingAccounts[cacheKey] = entity;\n });\n\n return matchingAccounts;\n }\n\n /**\n * retrieve credentails matching all provided filters; if no filter is set, get all credentials\n * @param homeAccountId\n * @param environment\n * @param credentialType\n * @param clientId\n * @param realm\n * @param target\n */\n getCredentialsFilteredBy(filter: CredentialFilter): CredentialCache {\n return this.getCredentialsFilteredByInternal(\n filter.homeAccountId,\n filter.environment,\n filter.credentialType,\n filter.clientId,\n filter.familyId,\n filter.realm,\n filter.target,\n filter.oboAssertion\n );\n }\n\n /**\n * Support function to help match credentials\n * @param homeAccountId\n * @param environment\n * @param credentialType\n * @param clientId\n * @param realm\n * @param target\n */\n private getCredentialsFilteredByInternal(\n homeAccountId?: string,\n environment?: string,\n credentialType?: string,\n clientId?: string,\n familyId?: string,\n realm?: string,\n target?: string,\n oboAssertion?: string\n ): CredentialCache {\n const allCacheKeys = this.getKeys();\n const matchingCredentials: CredentialCache = {\n idTokens: {},\n accessTokens: {},\n refreshTokens: {},\n };\n \n allCacheKeys.forEach((cacheKey) => {\n // don't parse any non-credential type cache entities\n const credType = CredentialEntity.getCredentialType(cacheKey);\n\n if (credType === Constants.NOT_DEFINED) {\n return;\n }\n\n // Attempt retrieval\n const entity = this.getSpecificCredential(cacheKey, credType);\n\n if (!entity) {\n return;\n }\n\n if (!!oboAssertion && !this.matchOboAssertion(entity, oboAssertion)) {\n return;\n }\n\n if (!!homeAccountId && !this.matchHomeAccountId(entity, homeAccountId)) {\n return;\n }\n\n if (!!environment && !this.matchEnvironment(entity, environment)) {\n return;\n }\n\n if (!!realm && !this.matchRealm(entity, realm)) {\n return;\n }\n\n if (!!credentialType && !this.matchCredentialType(entity, credentialType)) {\n return;\n }\n\n if (!!clientId && !this.matchClientId(entity, clientId)) {\n return;\n }\n\n if (!!familyId && !this.matchFamilyId(entity, familyId)) {\n return;\n }\n\n /*\n * idTokens do not have \"target\", target specific refreshTokens do exist for some types of authentication\n * Resource specific refresh tokens case will be added when the support is deemed necessary\n */\n if (!!target && !this.matchTarget(entity, target)) {\n return;\n }\n\n switch (credType) {\n case CredentialType.ID_TOKEN:\n matchingCredentials.idTokens[cacheKey] = entity as IdTokenEntity;\n break;\n case CredentialType.ACCESS_TOKEN:\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\n matchingCredentials.accessTokens[cacheKey] = entity as AccessTokenEntity;\n break;\n case CredentialType.REFRESH_TOKEN:\n matchingCredentials.refreshTokens[cacheKey] = entity as RefreshTokenEntity;\n break;\n }\n });\n\n return matchingCredentials;\n }\n\n /**\n * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata\n * @param filter\n */\n getAppMetadataFilteredBy(filter: AppMetadataFilter): AppMetadataCache {\n return this.getAppMetadataFilteredByInternal(\n filter.environment,\n filter.clientId,\n );\n }\n\n /**\n * Support function to help match appMetadata\n * @param environment\n * @param clientId\n */\n private getAppMetadataFilteredByInternal(\n environment?: string,\n clientId?: string\n ): AppMetadataCache {\n\n const allCacheKeys = this.getKeys();\n const matchingAppMetadata: AppMetadataCache = {};\n\n allCacheKeys.forEach((cacheKey) => {\n // don't parse any non-appMetadata type cache entities\n if (!this.isAppMetadata(cacheKey)) {\n return;\n }\n\n // Attempt retrieval\n const entity = this.getAppMetadata(cacheKey);\n\n if (!entity) {\n return;\n }\n\n if (!!environment && !this.matchEnvironment(entity, environment)) {\n return;\n }\n\n if (!!clientId && !this.matchClientId(entity, clientId)) {\n return;\n }\n\n matchingAppMetadata[cacheKey] = entity;\n\n });\n\n return matchingAppMetadata;\n }\n\n /**\n * retrieve authorityMetadata that contains a matching alias\n * @param filter\n */\n getAuthorityMetadataByAlias(host: string): AuthorityMetadataEntity | null {\n const allCacheKeys = this.getAuthorityMetadataKeys();\n let matchedEntity = null;\n\n allCacheKeys.forEach((cacheKey) => {\n // don't parse any non-authorityMetadata type cache entities\n if (!this.isAuthorityMetadata(cacheKey) || cacheKey.indexOf(this.clientId) === -1) {\n return;\n }\n\n // Attempt retrieval\n const entity = this.getAuthorityMetadata(cacheKey);\n\n if (!entity) {\n return;\n }\n\n if (entity.aliases.indexOf(host) === -1) {\n return;\n }\n\n matchedEntity = entity;\n\n });\n \n return matchedEntity;\n }\n\n /**\n * Removes all accounts and related tokens from cache.\n */\n removeAllAccounts(): boolean {\n const allCacheKeys = this.getKeys();\n allCacheKeys.forEach((cacheKey) => {\n const entity = this.getAccount(cacheKey);\n if (!entity) {\n return;\n }\n this.removeAccount(cacheKey);\n });\n\n return true;\n }\n\n /**\n * returns a boolean if the given account is removed\n * @param account\n */\n removeAccount(accountKey: string): boolean {\n const account = this.getAccount(accountKey);\n if (!account) {\n throw ClientAuthError.createNoAccountFoundError();\n }\n return (this.removeAccountContext(account) && this.removeItem(accountKey, CacheSchemaType.ACCOUNT));\n }\n\n /**\n * returns a boolean if the given account is removed\n * @param account\n */\n removeAccountContext(account: AccountEntity): boolean {\n const allCacheKeys = this.getKeys();\n const accountId = account.generateAccountId();\n\n allCacheKeys.forEach((cacheKey) => {\n // don't parse any non-credential type cache entities\n const credType = CredentialEntity.getCredentialType(cacheKey);\n if (credType === Constants.NOT_DEFINED) {\n return;\n }\n\n const cacheEntity = this.getSpecificCredential(cacheKey, credType);\n if (!!cacheEntity && accountId === cacheEntity.generateAccountId()) {\n this.removeCredential(cacheEntity);\n }\n });\n\n return true;\n }\n\n /**\n * returns a boolean if the given credential is removed\n * @param credential\n */\n removeCredential(credential: CredentialEntity): boolean {\n const key = credential.generateCredentialKey();\n return this.removeItem(key, CacheSchemaType.CREDENTIAL);\n }\n\n /**\n * Removes all app metadata objects from cache.\n */\n removeAppMetadata(): boolean {\n const allCacheKeys = this.getKeys();\n allCacheKeys.forEach((cacheKey) => {\n if (this.isAppMetadata(cacheKey)) {\n this.removeItem(cacheKey, CacheSchemaType.APP_METADATA);\n }\n });\n\n return true;\n }\n\n /**\n * Retrieve the cached credentials into a cacherecord\n * @param account\n * @param clientId\n * @param scopes\n * @param environment\n * @param authScheme\n */\n readCacheRecord(account: AccountInfo, clientId: string, scopes: ScopeSet, environment: string, authScheme: AuthenticationScheme): CacheRecord {\n const cachedAccount = this.readAccountFromCache(account);\n const cachedIdToken = this.readIdTokenFromCache(clientId, account);\n const cachedAccessToken = this.readAccessTokenFromCache(clientId, account, scopes, authScheme);\n const cachedRefreshToken = this.readRefreshTokenFromCache(clientId, account, false);\n const cachedAppMetadata = this.readAppMetadataFromCache(environment, clientId);\n\n if (cachedAccount && cachedIdToken) {\n cachedAccount.idTokenClaims = new AuthToken(cachedIdToken.secret, this.cryptoImpl).claims;\n }\n\n return {\n account: cachedAccount,\n idToken: cachedIdToken,\n accessToken: cachedAccessToken,\n refreshToken: cachedRefreshToken,\n appMetadata: cachedAppMetadata,\n };\n }\n\n /**\n * Retrieve AccountEntity from cache\n * @param account\n */\n readAccountFromCache(account: AccountInfo): AccountEntity | null {\n const accountKey: string = AccountEntity.generateAccountCacheKey(account);\n return this.getAccount(accountKey);\n }\n\n /**\n * Retrieve IdTokenEntity from cache\n * @param clientId\n * @param account\n * @param inputRealm\n */\n readIdTokenFromCache(clientId: string, account: AccountInfo): IdTokenEntity | null {\n const idTokenFilter: CredentialFilter = {\n homeAccountId: account.homeAccountId,\n environment: account.environment,\n credentialType: CredentialType.ID_TOKEN,\n clientId: clientId,\n realm: account.tenantId,\n };\n\n const credentialCache: CredentialCache = this.getCredentialsFilteredBy(idTokenFilter);\n const idTokens = Object.keys(credentialCache.idTokens).map((key) => credentialCache.idTokens[key]);\n const numIdTokens = idTokens.length;\n\n if (numIdTokens < 1) {\n return null;\n } else if (numIdTokens > 1) {\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\n }\n\n return idTokens[0] as IdTokenEntity;\n }\n\n /**\n * Retrieve AccessTokenEntity from cache\n * @param clientId\n * @param account\n * @param scopes\n * @param authScheme\n */\n readAccessTokenFromCache(clientId: string, account: AccountInfo, scopes: ScopeSet, authScheme: AuthenticationScheme): AccessTokenEntity | null {\n const credentialType = (authScheme === AuthenticationScheme.POP) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;\n\n const accessTokenFilter: CredentialFilter = {\n homeAccountId: account.homeAccountId,\n environment: account.environment,\n credentialType: credentialType,\n clientId,\n realm: account.tenantId,\n target: scopes.printScopesLowerCase(),\n };\n\n const credentialCache: CredentialCache = this.getCredentialsFilteredBy(accessTokenFilter);\n\n const accessTokens = Object.keys(credentialCache.accessTokens).map((key) => credentialCache.accessTokens[key]);\n\n const numAccessTokens = accessTokens.length;\n if (numAccessTokens < 1) {\n return null;\n } else if (numAccessTokens > 1) {\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\n }\n\n return accessTokens[0] as AccessTokenEntity;\n }\n\n /**\n * Helper to retrieve the appropriate refresh token from cache\n * @param clientId\n * @param account\n * @param familyRT\n */\n readRefreshTokenFromCache(clientId: string, account: AccountInfo, familyRT: boolean): RefreshTokenEntity | null {\n const id = familyRT ? THE_FAMILY_ID : undefined;\n const refreshTokenFilter: CredentialFilter = {\n homeAccountId: account.homeAccountId,\n environment: account.environment,\n credentialType: CredentialType.REFRESH_TOKEN,\n clientId: clientId,\n familyId: id\n };\n\n const credentialCache: CredentialCache = this.getCredentialsFilteredBy(refreshTokenFilter);\n const refreshTokens = Object.keys(credentialCache.refreshTokens).map((key) => credentialCache.refreshTokens[key]);\n\n const numRefreshTokens = refreshTokens.length;\n if (numRefreshTokens < 1) {\n return null;\n }\n // address the else case after remove functions address environment aliases\n\n return refreshTokens[0] as RefreshTokenEntity;\n }\n\n /**\n * Retrieve AppMetadataEntity from cache\n */\n readAppMetadataFromCache(environment: string, clientId: string): AppMetadataEntity | null {\n const appMetadataFilter: AppMetadataFilter = {\n environment,\n clientId,\n };\n\n const appMetadata: AppMetadataCache = this.getAppMetadataFilteredBy(appMetadataFilter);\n const appMetadataEntries: AppMetadataEntity[] = Object.keys(appMetadata).map((key) => appMetadata[key]);\n\n const numAppMetadata = appMetadataEntries.length;\n if (numAppMetadata < 1) {\n return null;\n } else if (numAppMetadata > 1) {\n throw ClientAuthError.createMultipleMatchingAppMetadataInCacheError();\n }\n\n return appMetadataEntries[0] as AppMetadataEntity;\n }\n\n /**\n * Return the family_id value associated with FOCI\n * @param environment\n * @param clientId\n */\n isAppMetadataFOCI(environment: string, clientId: string): boolean {\n const appMetadata = this.readAppMetadataFromCache(environment, clientId);\n return !!(appMetadata && appMetadata.familyId === THE_FAMILY_ID);\n }\n\n /**\n * helper to match account ids\n * @param value\n * @param homeAccountId\n */\n private matchHomeAccountId(entity: AccountEntity | CredentialEntity, homeAccountId: string): boolean {\n return !!(entity.homeAccountId && homeAccountId === entity.homeAccountId);\n }\n\n /**\n * helper to match assertion\n * @param value\n * @param oboAssertion\n */\n private matchOboAssertion(entity: AccountEntity | CredentialEntity, oboAssertion: string): boolean {\n return !!(entity.oboAssertion && oboAssertion === entity.oboAssertion);\n }\n\n /**\n * helper to match environment\n * @param value\n * @param environment\n */\n private matchEnvironment(entity: AccountEntity | CredentialEntity | AppMetadataEntity, environment: string): boolean {\n const cloudMetadata = this.getAuthorityMetadataByAlias(environment);\n if (cloudMetadata && cloudMetadata.aliases.indexOf(entity.environment) > -1) {\n return true;\n }\n\n return false;\n }\n\n /**\n * helper to match credential type\n * @param entity\n * @param credentialType\n */\n private matchCredentialType(entity: CredentialEntity, credentialType: string): boolean {\n return (entity.credentialType && credentialType.toLowerCase() === entity.credentialType.toLowerCase());\n }\n\n /**\n * helper to match client ids\n * @param entity\n * @param clientId\n */\n private matchClientId(entity: CredentialEntity | AppMetadataEntity, clientId: string): boolean {\n return !!(entity.clientId && clientId === entity.clientId);\n }\n\n /**\n * helper to match family ids\n * @param entity\n * @param familyId\n */\n private matchFamilyId(entity: CredentialEntity | AppMetadataEntity, familyId: string): boolean {\n return !!(entity.familyId && familyId === entity.familyId);\n }\n\n /**\n * helper to match realm\n * @param entity\n * @param realm\n */\n private matchRealm(entity: AccountEntity | CredentialEntity, realm: string): boolean {\n return !!(entity.realm && realm === entity.realm);\n }\n\n /**\n * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.\n * @param entity\n * @param target\n */\n private matchTarget(entity: CredentialEntity, target: string): boolean {\n const isNotAccessTokenCredential = (entity.credentialType !== CredentialType.ACCESS_TOKEN && entity.credentialType !== CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME);\n\n if ( isNotAccessTokenCredential || !entity.target) {\n return false;\n }\n\n const entityScopeSet: ScopeSet = ScopeSet.fromString(entity.target);\n const requestTargetScopeSet: ScopeSet = ScopeSet.fromString(target);\n\n if (!requestTargetScopeSet.containsOnlyOIDCScopes()) {\n requestTargetScopeSet.removeOIDCScopes(); // ignore OIDC scopes\n } else {\n requestTargetScopeSet.removeScope(Constants.OFFLINE_ACCESS_SCOPE);\n }\n return entityScopeSet.containsScopeSet(requestTargetScopeSet);\n }\n\n /**\n * returns if a given cache entity is of the type appmetadata\n * @param key\n */\n private isAppMetadata(key: string): boolean {\n return key.indexOf(APP_METADATA) !== -1;\n }\n\n /**\n * returns if a given cache entity is of the type authoritymetadata\n * @param key\n */\n protected isAuthorityMetadata(key: string): boolean {\n return key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) !== -1;\n }\n\n /**\n * returns cache key used for cloud instance metadata\n */\n generateAuthorityMetadataCacheKey(authority: string): string {\n return `${AUTHORITY_METADATA_CONSTANTS.CACHE_KEY}-${this.clientId}-${authority}`;\n }\n\n /**\n * Returns the specific credential (IdToken/AccessToken/RefreshToken) from the cache\n * @param key\n * @param credType\n */\n private getSpecificCredential(key: string, credType: string): ValidCredentialType | null {\n switch (credType) {\n case CredentialType.ID_TOKEN: {\n return this.getIdTokenCredential(key);\n }\n case CredentialType.ACCESS_TOKEN:\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME: {\n return this.getAccessTokenCredential(key);\n }\n case CredentialType.REFRESH_TOKEN: {\n return this.getRefreshTokenCredential(key);\n }\n default:\n return null;\n }\n }\n\n /**\n * Helper to convert serialized data to object\n * @param obj\n * @param json\n */\n static toObject<T>(obj: T, json: object): T {\n for (const propertyName in json) {\n obj[propertyName] = json[propertyName];\n }\n return obj;\n }\n}\n\nexport class DefaultStorageClass extends CacheManager {\n setAccount(): void {\n const notImplErr = \"Storage interface - setAccount() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n getAccount(): AccountEntity {\n const notImplErr = \"Storage interface - getAccount() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n setIdTokenCredential(): void {\n const notImplErr = \"Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n getIdTokenCredential(): IdTokenEntity {\n const notImplErr = \"Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n setAccessTokenCredential(): void {\n const notImplErr = \"Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n getAccessTokenCredential(): AccessTokenEntity {\n const notImplErr = \"Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n setRefreshTokenCredential(): void {\n const notImplErr = \"Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n getRefreshTokenCredential(): RefreshTokenEntity {\n const notImplErr = \"Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n setAppMetadata(): void {\n const notImplErr = \"Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n getAppMetadata(): AppMetadataEntity {\n const notImplErr = \"Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n setServerTelemetry(): void {\n const notImplErr = \"Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n getServerTelemetry(): ServerTelemetryEntity {\n const notImplErr = \"Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n setAuthorityMetadata(): void {\n const notImplErr = \"Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n getAuthorityMetadata(): AuthorityMetadataEntity | null {\n const notImplErr = \"Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n getAuthorityMetadataKeys(): Array<string> {\n const notImplErr = \"Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n setThrottlingCache(): void {\n const notImplErr = \"Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n getThrottlingCache(): ThrottlingEntity {\n const notImplErr = \"Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n removeItem(): boolean {\n const notImplErr = \"Storage interface - removeItem() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n containsKey(): boolean {\n const notImplErr = \"Storage interface - containsKey() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n getKeys(): string[] {\n const notImplErr = \"Storage interface - getKeys() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n clear(): void {\n const notImplErr = \"Storage interface - clear() has not been implemented for the cacheStorage interface.\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INetworkModule } from \"../network/INetworkModule\";\nimport { DEFAULT_CRYPTO_IMPLEMENTATION, ICrypto } from \"../crypto/ICrypto\";\nimport { AuthError } from \"../error/AuthError\";\nimport { ILoggerCallback, LogLevel } from \"../logger/Logger\";\nimport { Constants } from \"../utils/Constants\";\nimport { version } from \"../packageMetadata\";\nimport { Authority } from \"../authority/Authority\";\nimport { CacheManager, DefaultStorageClass } from \"../cache/CacheManager\";\nimport { ServerTelemetryManager } from \"../telemetry/server/ServerTelemetryManager\";\nimport { ICachePlugin } from \"../cache/interface/ICachePlugin\";\nimport { ISerializableTokenCache } from \"../cache/interface/ISerializableTokenCache\";\n\n// Token renewal offset default in seconds\nconst DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;\n\n/**\n * Use the configuration object to configure MSAL Modules and initialize the base interfaces for MSAL.\n *\n * This object allows you to configure important elements of MSAL functionality:\n * - authOptions - Authentication for application\n * - cryptoInterface - Implementation of crypto functions\n * - libraryInfo - Library metadata\n * - loggerOptions - Logging for application\n * - networkInterface - Network implementation\n * - storageInterface - Storage implementation\n * - systemOptions - Additional library options\n * - clientCredentials - Credentials options for confidential clients\n */\nexport type ClientConfiguration = {\n authOptions: AuthOptions,\n systemOptions?: SystemOptions,\n loggerOptions?: LoggerOptions,\n storageInterface?: CacheManager,\n networkInterface?: INetworkModule,\n cryptoInterface?: ICrypto,\n clientCredentials?: ClientCredentials,\n libraryInfo?: LibraryInfo\n serverTelemetryManager?: ServerTelemetryManager | null,\n persistencePlugin?: ICachePlugin | null,\n serializableCache?: ISerializableTokenCache | null\n};\n\nexport type CommonClientConfiguration = {\n authOptions: Required<AuthOptions>,\n systemOptions: Required<SystemOptions>,\n loggerOptions : Required<LoggerOptions>,\n storageInterface: CacheManager,\n networkInterface : INetworkModule,\n cryptoInterface : Required<ICrypto>,\n libraryInfo : LibraryInfo,\n serverTelemetryManager: ServerTelemetryManager | null,\n clientCredentials: ClientCredentials,\n persistencePlugin: ICachePlugin | null,\n serializableCache: ISerializableTokenCache | null\n};\n\n/**\n * Use this to configure the auth options in the ClientConfiguration object\n *\n * - clientId - Client ID of your app registered with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview in Microsoft Identity Platform\n * - authority - You can configure a specific authority, defaults to \" \" or \"https://login.microsoftonline.com/common\"\n * - knownAuthorities - An array of URIs that are known to be valid. Used in B2C scenarios.\n * - cloudDiscoveryMetadata - A string containing the cloud discovery response. Used in AAD scenarios.\n * - clientCapabilities - Array of capabilities which will be added to the claims.access_token.xms_cc request property on every network request.\n * - protocolMode - Enum that represents the protocol that msal follows. Used for configuring proper endpoints.\n */\nexport type AuthOptions = {\n clientId: string;\n authority: Authority;\n clientCapabilities?: Array<string>;\n};\n\n/**\n * Use this to configure token renewal info in the Configuration object\n *\n * - tokenRenewalOffsetSeconds - Sets the window of offset needed to renew the token before expiry\n */\nexport type SystemOptions = {\n tokenRenewalOffsetSeconds?: number;\n preventCorsPreflight?: boolean;\n};\n\n/**\n * Use this to configure the logging that MSAL does, by configuring logger options in the Configuration object\n *\n * - loggerCallback - Callback for logger\n * - piiLoggingEnabled - Sets whether pii logging is enabled\n * - logLevel - Sets the level at which logging happens\n * - correlationId - Sets the correlationId printed by the logger\n */\nexport type LoggerOptions = {\n loggerCallback?: ILoggerCallback,\n piiLoggingEnabled?: boolean,\n logLevel?: LogLevel,\n correlationId?: string\n};\n\n/**\n * Library-specific options\n */\nexport type LibraryInfo = {\n sku: string,\n version: string,\n cpu: string,\n os: string\n};\n\n/**\n * Credentials for confidential clients\n */\nexport type ClientCredentials = {\n clientSecret?: string,\n clientAssertion? : {\n assertion: string,\n assertionType: string\n };\n};\n\nexport const DEFAULT_SYSTEM_OPTIONS: Required<SystemOptions> = {\n tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,\n preventCorsPreflight: false\n};\n\nconst DEFAULT_LOGGER_IMPLEMENTATION: Required<LoggerOptions> = {\n loggerCallback: () => {\n // allow users to not set loggerCallback\n },\n piiLoggingEnabled: false,\n logLevel: LogLevel.Info,\n correlationId: \"\"\n};\n\nconst DEFAULT_NETWORK_IMPLEMENTATION: INetworkModule = {\n async sendGetRequestAsync<T>(): Promise<T> {\n const notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented\";\n throw AuthError.createUnexpectedError(notImplErr);\n },\n async sendPostRequestAsync<T>(): Promise<T> {\n const notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented\";\n throw AuthError.createUnexpectedError(notImplErr);\n }\n};\n\nconst DEFAULT_LIBRARY_INFO: LibraryInfo = {\n sku: Constants.SKU,\n version: version,\n cpu: \"\",\n os: \"\"\n};\n\nconst DEFAULT_CLIENT_CREDENTIALS: ClientCredentials = {\n clientSecret: \"\",\n clientAssertion: undefined\n};\n\n/**\n * Function that sets the default options when not explicitly configured from app developer\n *\n * @param Configuration\n *\n * @returns Configuration\n */\nexport function buildClientConfiguration(\n {\n authOptions: userAuthOptions,\n systemOptions: userSystemOptions,\n loggerOptions: userLoggerOption,\n storageInterface: storageImplementation,\n networkInterface: networkImplementation,\n cryptoInterface: cryptoImplementation,\n clientCredentials: clientCredentials,\n libraryInfo: libraryInfo,\n serverTelemetryManager: serverTelemetryManager,\n persistencePlugin: persistencePlugin,\n serializableCache: serializableCache\n }: ClientConfiguration): CommonClientConfiguration {\n\n return {\n authOptions: buildAuthOptions(userAuthOptions),\n systemOptions: { ...DEFAULT_SYSTEM_OPTIONS, ...userSystemOptions },\n loggerOptions: { ...DEFAULT_LOGGER_IMPLEMENTATION, ...userLoggerOption },\n storageInterface: storageImplementation || new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION),\n networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,\n cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,\n clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,\n libraryInfo: { ...DEFAULT_LIBRARY_INFO, ...libraryInfo },\n serverTelemetryManager: serverTelemetryManager || null,\n persistencePlugin: persistencePlugin || null,\n serializableCache: serializableCache || null\n };\n}\n\n/**\n * Construct authoptions from the client and platform passed values\n * @param authOptions\n */\nfunction buildAuthOptions(authOptions: AuthOptions): Required<AuthOptions> {\n return {\n clientCapabilities: [],\n ...authOptions\n };\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport type CcsCredential = {\n credential: string,\n type: CcsCredentialType\n};\n\nexport enum CcsCredentialType {\n HOME_ACCOUNT_ID = \"home_account_id\",\n UPN = \"UPN\"\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INetworkModule, NetworkRequestOptions } from \"./INetworkModule\";\nimport { RequestThumbprint } from \"./RequestThumbprint\";\nimport { ThrottlingUtils } from \"./ThrottlingUtils\";\nimport { CacheManager } from \"../cache/CacheManager\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { AuthError } from \"../error/AuthError\";\n\nexport type NetworkResponse<T> = {\n headers: Record<string, string>;\n body: T;\n status: number;\n};\n\nexport class NetworkManager {\n private networkClient: INetworkModule;\n private cacheManager: CacheManager;\n\n constructor(networkClient: INetworkModule, cacheManager: CacheManager) {\n this.networkClient = networkClient;\n this.cacheManager = cacheManager;\n }\n\n /**\n * Wraps sendPostRequestAsync with necessary preflight and postflight logic\n * @param thumbprint\n * @param tokenEndpoint\n * @param options\n */\n async sendPostRequest<T>(thumbprint: RequestThumbprint, tokenEndpoint: string, options: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\n\n let response;\n try {\n response = await this.networkClient.sendPostRequestAsync<T>(tokenEndpoint, options);\n } catch (e) {\n if (e instanceof AuthError) {\n throw e;\n } else {\n throw ClientAuthError.createNetworkError(tokenEndpoint, e);\n }\n }\n\n ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\n\n return response;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ICrypto } from \"./ICrypto\";\nimport { AuthToken } from \"../account/AuthToken\";\nimport { TokenClaims } from \"../account/TokenClaims\";\nimport { TimeUtils } from \"../utils/TimeUtils\";\nimport { UrlString } from \"../url/UrlString\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { BaseAuthRequest } from \"../request/BaseAuthRequest\";\n\n/**\n * See eSTS docs for more info.\n * - A kid element, with the value containing an RFC 7638-compliant JWK thumbprint that is base64 encoded.\n * - xms_ksl element, representing the storage location of the key's secret component on the client device. One of two values:\n * - sw: software storage\n * - uhw: hardware storage\n */\ntype ReqCnf = {\n kid: string;\n xms_ksl: KeyLocation;\n};\n\nenum KeyLocation {\n SW = \"sw\",\n UHW = \"uhw\"\n}\n\nexport class PopTokenGenerator {\n\n private cryptoUtils: ICrypto;\n\n constructor(cryptoUtils: ICrypto) {\n this.cryptoUtils = cryptoUtils;\n }\n\n async generateCnf(request: BaseAuthRequest): Promise<string> {\n const kidThumbprint = await this.cryptoUtils.getPublicKeyThumbprint(request);\n const reqCnf: ReqCnf = {\n kid: kidThumbprint,\n xms_ksl: KeyLocation.SW\n };\n return this.cryptoUtils.base64Encode(JSON.stringify(reqCnf));\n }\n\n async signPopToken(accessToken: string, request: BaseAuthRequest): Promise<string> {\n const tokenClaims: TokenClaims | null = AuthToken.extractTokenClaims(accessToken, this.cryptoUtils);\n\n // Deconstruct request to extract SHR parameters\n const { resourceRequestMethod, resourceRequestUri, shrClaims } = request;\n\n const resourceUrlString = (resourceRequestUri) ? new UrlString(resourceRequestUri) : undefined;\n const resourceUrlComponents = resourceUrlString?.getUrlComponents();\n\n if (!tokenClaims?.cnf?.kid) {\n throw ClientAuthError.createTokenClaimsRequiredError();\n }\n\n return await this.cryptoUtils.signJwt({\n at: accessToken,\n ts: TimeUtils.nowSeconds(),\n m: resourceRequestMethod?.toUpperCase(),\n u: resourceUrlComponents?.HostNameAndPort,\n nonce: this.cryptoUtils.createNewGuid(),\n p: resourceUrlComponents?.AbsolutePath,\n q: (resourceUrlComponents?.QueryString) ? [[], resourceUrlComponents.QueryString] : undefined,\n client_claims: shrClaims || undefined\n }, tokenClaims.cnf.kid);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ClientConfiguration, buildClientConfiguration, CommonClientConfiguration } from \"../config/ClientConfiguration\";\nimport { INetworkModule } from \"../network/INetworkModule\";\nimport { NetworkManager, NetworkResponse } from \"../network/NetworkManager\";\nimport { ICrypto } from \"../crypto/ICrypto\";\nimport { Authority } from \"../authority/Authority\";\nimport { Logger } from \"../logger/Logger\";\nimport { Constants, HeaderNames } from \"../utils/Constants\";\nimport { ServerAuthorizationTokenResponse } from \"../response/ServerAuthorizationTokenResponse\";\nimport { CacheManager } from \"../cache/CacheManager\";\nimport { ServerTelemetryManager } from \"../telemetry/server/ServerTelemetryManager\";\nimport { RequestThumbprint } from \"../network/RequestThumbprint\";\nimport { version, name } from \"../packageMetadata\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { CcsCredential, CcsCredentialType } from \"../account/CcsCredential\";\nimport { buildClientInfoFromHomeAccountId } from \"../account/ClientInfo\";\n\n/**\n * Base application class which will construct requests to send to and handle responses from the Microsoft STS using the authorization code flow.\n */\nexport abstract class BaseClient {\n // Logger object\n public logger: Logger;\n\n // Application config\n protected config: CommonClientConfiguration;\n\n // Crypto Interface\n protected cryptoUtils: ICrypto;\n\n // Storage Interface\n protected cacheManager: CacheManager;\n\n // Network Interface\n protected networkClient: INetworkModule;\n\n // Server Telemetry Manager\n protected serverTelemetryManager: ServerTelemetryManager | null;\n\n // Network Manager\n protected networkManager: NetworkManager;\n\n // Default authority object\n public authority: Authority;\n\n protected constructor(configuration: ClientConfiguration) {\n // Set the configuration\n this.config = buildClientConfiguration(configuration);\n\n // Initialize the logger\n this.logger = new Logger(this.config.loggerOptions, name, version);\n\n // Initialize crypto\n this.cryptoUtils = this.config.cryptoInterface;\n\n // Initialize storage interface\n this.cacheManager = this.config.storageInterface;\n\n // Set the network interface\n this.networkClient = this.config.networkInterface;\n\n // Set the NetworkManager\n this.networkManager = new NetworkManager(this.networkClient, this.cacheManager);\n\n // Set TelemetryManager\n this.serverTelemetryManager = this.config.serverTelemetryManager;\n\n // set Authority\n this.authority = this.config.authOptions.authority;\n }\n\n /**\n * Creates default headers for requests to token endpoint\n */\n protected createTokenRequestHeaders(ccsCred?: CcsCredential): Record<string, string> {\n const headers: Record<string, string> = {};\n headers[HeaderNames.CONTENT_TYPE] = Constants.URL_FORM_CONTENT_TYPE;\n\n if (!this.config.systemOptions.preventCorsPreflight && ccsCred) {\n switch (ccsCred.type) {\n case CcsCredentialType.HOME_ACCOUNT_ID:\n try {\n const clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\n headers[HeaderNames.CCS_HEADER] = `Oid:${clientInfo.uid}@${clientInfo.utid}`;\n } catch (e) {\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\n }\n break;\n case CcsCredentialType.UPN:\n headers[HeaderNames.CCS_HEADER] = `UPN: ${ccsCred.credential}`;\n break;\n }\n }\n return headers;\n }\n\n /**\n * Http post to token endpoint\n * @param tokenEndpoint\n * @param queryString\n * @param headers\n * @param thumbprint\n */\n protected async executePostToTokenEndpoint(tokenEndpoint: string, queryString: string, headers: Record<string, string>, thumbprint: RequestThumbprint): Promise<NetworkResponse<ServerAuthorizationTokenResponse>> {\n const response = await this.networkManager.sendPostRequest<ServerAuthorizationTokenResponse>(\n thumbprint,\n tokenEndpoint,\n { body: queryString, headers: headers }\n );\n\n if (this.config.serverTelemetryManager && response.status < 500 && response.status !== 429) {\n // Telemetry data successfully logged by server, clear Telemetry cache\n this.config.serverTelemetryManager.clearTelemetryCache();\n }\n\n return response;\n }\n\n /**\n * Updates the authority object of the client. Endpoint discovery must be completed.\n * @param updatedAuthority \n */\n updateAuthority(updatedAuthority: Authority): void {\n if (!updatedAuthority.discoveryComplete()) {\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Updated authority has not completed endpoint discovery.\");\n }\n this.authority = updatedAuthority;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { PromptValue, CodeChallengeMethodValues} from \"../utils/Constants\";\nimport { StringDict } from \"../utils/MsalTypes\";\n\n/**\n * Validates server consumable params from the \"request\" objects\n */\nexport class RequestValidator {\n\n /**\n * Utility to check if the `redirectUri` in the request is a non-null value\n * @param redirectUri\n */\n static validateRedirectUri(redirectUri: string) : void {\n if (StringUtils.isEmpty(redirectUri)) {\n throw ClientConfigurationError.createRedirectUriEmptyError();\n }\n }\n\n /**\n * Utility to validate prompt sent by the user in the request\n * @param prompt\n */\n static validatePrompt(prompt: string) : void {\n const promptValues = [];\n\n for (const value in PromptValue) {\n promptValues.push(PromptValue[value]);\n }\n\n if (promptValues.indexOf(prompt) < 0) {\n throw ClientConfigurationError.createInvalidPromptError(prompt);\n }\n }\n\n static validateClaims(claims: string) : void {\n try {\n JSON.parse(claims);\n } catch(e) {\n throw ClientConfigurationError.createInvalidClaimsRequestError();\n }\n }\n\n /**\n * Utility to validate code_challenge and code_challenge_method\n * @param codeChallenge\n * @param codeChallengeMethod\n */\n static validateCodeChallengeParams(codeChallenge: string, codeChallengeMethod: string) : void {\n if (StringUtils.isEmpty(codeChallenge) || StringUtils.isEmpty(codeChallengeMethod)) {\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\n } else {\n this.validateCodeChallengeMethod(codeChallengeMethod);\n }\n }\n\n /**\n * Utility to validate code_challenge_method\n * @param codeChallengeMethod\n */\n static validateCodeChallengeMethod(codeChallengeMethod: string) : void {\n if (\n [\n CodeChallengeMethodValues.PLAIN,\n CodeChallengeMethodValues.S256\n ].indexOf(codeChallengeMethod) < 0\n ) {\n throw ClientConfigurationError.createInvalidCodeChallengeMethodError();\n }\n }\n\n /**\n * Removes unnecessary or duplicate query parameters from extraQueryParameters\n * @param request\n */\n static sanitizeEQParams(eQParams: StringDict, queryParams: Map<string, string>) : StringDict {\n if (!eQParams) {\n return {};\n }\n\n // Remove any query parameters already included in SSO params\n queryParams.forEach((value, key) => {\n if (eQParams[key]) {\n delete eQParams[key];\n }\n });\n\n return eQParams;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AADServerParamKeys, Constants, ResponseMode, SSOTypes, CLIENT_INFO, AuthenticationScheme, ClaimsRequestKeys, PasswordGrantConstants, OIDC_DEFAULT_SCOPES, ThrottlingConstants, HeaderNames} from \"../utils/Constants\";\nimport { ScopeSet } from \"./ScopeSet\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { StringDict } from \"../utils/MsalTypes\";\nimport { RequestValidator } from \"./RequestValidator\";\nimport { LibraryInfo } from \"../config/ClientConfiguration\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ServerTelemetryManager } from \"../telemetry/server/ServerTelemetryManager\";\nimport { ClientInfo } from \"../account/ClientInfo\";\n\nexport class RequestParameterBuilder {\n\n private parameters: Map<string, string>;\n\n constructor() {\n this.parameters = new Map<string, string>();\n }\n\n /**\n * add response_type = code\n */\n addResponseTypeCode(): void {\n this.parameters.set(\n AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE)\n );\n }\n\n /**\n * add response_mode. defaults to query.\n * @param responseMode\n */\n addResponseMode(responseMode?: ResponseMode): void {\n this.parameters.set(\n AADServerParamKeys.RESPONSE_MODE,\n encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY)\n );\n }\n\n /**\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\n * @param scopeSet\n * @param addOidcScopes\n */\n addScopes(scopes: string[], addOidcScopes: boolean = true): void {\n const requestScopes = addOidcScopes ? [...scopes || [], ...OIDC_DEFAULT_SCOPES] : scopes || [];\n const scopeSet = new ScopeSet(requestScopes);\n this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\n }\n\n /**\n * add clientId\n * @param clientId\n */\n addClientId(clientId: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\n }\n\n /**\n * add redirect_uri\n * @param redirectUri\n */\n addRedirectUri(redirectUri: string): void {\n RequestValidator.validateRedirectUri(redirectUri);\n this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\n }\n\n /**\n * add post logout redirectUri\n * @param redirectUri\n */\n addPostLogoutRedirectUri(redirectUri: string): void {\n RequestValidator.validateRedirectUri(redirectUri);\n this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\n }\n\n /**\n * add id_token_hint to logout request\n * @param idTokenHint\n */\n addIdTokenHint(idTokenHint: string): void {\n this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\n }\n\n /**\n * add domain_hint\n * @param domainHint\n */\n addDomainHint(domainHint: string): void {\n this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\n }\n\n /**\n * add login_hint\n * @param loginHint\n */\n addLoginHint(loginHint: string): void {\n this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\n }\n\n /**\n * Adds the CCS (Cache Credential Service) query parameter for login_hint\n * @param loginHint \n */\n addCcsUpn(loginHint: string): void {\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(`UPN:${loginHint}`));\n }\n\n /**\n * Adds the CCS (Cache Credential Service) query parameter for account object\n * @param loginHint \n */\n addCcsOid(clientInfo: ClientInfo): void {\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(`Oid:${clientInfo.uid}@${clientInfo.utid}`));\n }\n\n /**\n * add sid\n * @param sid\n */\n addSid(sid: string): void {\n this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\n }\n\n /**\n * add claims\n * @param claims\n */\n addClaims(claims?: string, clientCapabilities?: Array<string>): void {\n const mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\n RequestValidator.validateClaims(mergedClaims);\n this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\n }\n\n /**\n * add correlationId\n * @param correlationId\n */\n addCorrelationId(correlationId: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\n }\n\n /**\n * add library info query params\n * @param libraryInfo\n */\n addLibraryInfo(libraryInfo: LibraryInfo): void {\n // Telemetry Info\n this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\n this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\n this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\n this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\n }\n\n /**\n * add prompt\n * @param prompt\n */\n addPrompt(prompt: string): void {\n RequestValidator.validatePrompt(prompt);\n this.parameters.set(`${AADServerParamKeys.PROMPT}`, encodeURIComponent(prompt));\n }\n\n /**\n * add state\n * @param state\n */\n addState(state: string): void {\n if (!StringUtils.isEmpty(state)) {\n this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\n }\n }\n\n /**\n * add nonce\n * @param nonce\n */\n addNonce(nonce: string): void {\n this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\n }\n\n /**\n * add code_challenge and code_challenge_method\n * - throw if either of them are not passed\n * @param codeChallenge\n * @param codeChallengeMethod\n */\n addCodeChallengeParams(\n codeChallenge: string,\n codeChallengeMethod: string\n ): void {\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\n if (codeChallenge && codeChallengeMethod) {\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\n } else {\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\n }\n }\n\n /**\n * add the `authorization_code` passed by the user to exchange for a token\n * @param code\n */\n addAuthorizationCode(code: string): void {\n this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\n }\n\n /**\n * add the `authorization_code` passed by the user to exchange for a token\n * @param code\n */\n addDeviceCode(code: string): void {\n this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\n }\n\n /**\n * add the `refreshToken` passed by the user\n * @param refreshToken\n */\n addRefreshToken(refreshToken: string): void {\n this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\n }\n\n /**\n * add the `code_verifier` passed by the user to exchange for a token\n * @param codeVerifier\n */\n addCodeVerifier(codeVerifier: string): void {\n this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\n }\n\n /**\n * add client_secret\n * @param clientSecret\n */\n addClientSecret(clientSecret: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\n }\n\n /**\n * add clientAssertion for confidential client flows\n * @param clientAssertion\n */\n addClientAssertion(clientAssertion: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\n }\n\n /**\n * add clientAssertionType for confidential client flows\n * @param clientAssertionType\n */\n addClientAssertionType(clientAssertionType: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\n }\n\n /**\n * add OBO assertion for confidential client flows\n * @param clientAssertion\n */\n addOboAssertion(oboAssertion: string): void {\n this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\n }\n\n /**\n * add grant type\n * @param grantType\n */\n addRequestTokenUse(tokenUse: string): void {\n this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\n }\n\n /**\n * add grant type\n * @param grantType\n */\n addGrantType(grantType: string): void {\n this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\n }\n\n /**\n * add client info\n *\n */\n addClientInfo(): void {\n this.parameters.set(CLIENT_INFO, \"1\");\n }\n\n /**\n * add extraQueryParams\n * @param eQparams\n */\n addExtraQueryParameters(eQparams: StringDict): void {\n RequestValidator.sanitizeEQParams(eQparams, this.parameters);\n Object.keys(eQparams).forEach((key) => {\n this.parameters.set(key, eQparams[key]);\n });\n }\n\n addClientCapabilitiesToClaims(claims?: string, clientCapabilities?: Array<string>): string {\n let mergedClaims: object;\n\n // Parse provided claims into JSON object or initialize empty object\n if (!claims) {\n mergedClaims = {};\n } else {\n try {\n mergedClaims = JSON.parse(claims);\n } catch(e) {\n throw ClientConfigurationError.createInvalidClaimsRequestError();\n }\n }\n\n if (clientCapabilities && clientCapabilities.length > 0) {\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)){\n // Add access_token key to claims object\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\n }\n\n // Add xms_cc claim with provided clientCapabilities to access_token key\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\n values: clientCapabilities\n };\n }\n\n return JSON.stringify(mergedClaims);\n }\n\n /**\n * adds `username` for Password Grant flow\n * @param username\n */\n addUsername(username: string): void {\n this.parameters.set(PasswordGrantConstants.username, username);\n }\n\n /**\n * adds `password` for Password Grant flow\n * @param password\n */\n addPassword(password: string): void {\n this.parameters.set(PasswordGrantConstants.password, password);\n }\n\n /**\n * add pop_jwk to query params\n * @param cnfString\n */\n addPopToken(cnfString: string): void {\n if (!StringUtils.isEmpty(cnfString)) {\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\n }\n }\n\n /**\n * add server telemetry fields\n * @param serverTelemetryManager \n */\n addServerTelemetry(serverTelemetryManager: ServerTelemetryManager): void {\n this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\n this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\n }\n\n /**\n * Adds parameter that indicates to the server that throttling is supported\n */\n addThrottling(): void {\n this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\n }\n\n /**\n * Utility to create a URL from the params map\n */\n createQueryString(): string {\n const queryParameterArray: Array<string> = new Array<string>();\n\n this.parameters.forEach((value, key) => {\n queryParameterArray.push(`${key}=${value}`);\n });\n\n return queryParameterArray.join(\"&\");\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { CredentialEntity } from \"./CredentialEntity\";\nimport { CredentialType } from \"../../utils/Constants\";\n\n/**\n * ID_TOKEN Cache\n *\n * Key:Value Schema:\n *\n * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-\n *\n * Value Schema:\n * {\n * homeAccountId: home account identifier for the auth scheme,\n * environment: entity that issued the token, represented as a full host\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\n * clientId: client ID of the application\n * secret: Actual credential as a string\n * realm: Full tenant or organizational identifier that the account belongs to\n * }\n */\nexport class IdTokenEntity extends CredentialEntity {\n realm: string;\n\n /**\n * Create IdTokenEntity\n * @param homeAccountId\n * @param authenticationResult\n * @param clientId\n * @param authority\n */\n static createIdTokenEntity(\n homeAccountId: string,\n environment: string,\n idToken: string,\n clientId: string,\n tenantId: string,\n oboAssertion?: string\n ): IdTokenEntity {\n const idTokenEntity = new IdTokenEntity();\n\n idTokenEntity.credentialType = CredentialType.ID_TOKEN;\n idTokenEntity.homeAccountId = homeAccountId;\n idTokenEntity.environment = environment;\n idTokenEntity.clientId = clientId;\n idTokenEntity.secret = idToken;\n idTokenEntity.realm = tenantId;\n idTokenEntity.oboAssertion = oboAssertion;\n\n return idTokenEntity;\n }\n\n /**\n * Validates an entity: checks for all expected params\n * @param entity\n */\n static isIdTokenEntity(entity: object): boolean {\n\n if (!entity) {\n return false;\n }\n\n return (\n entity.hasOwnProperty(\"homeAccountId\") &&\n entity.hasOwnProperty(\"environment\") &&\n entity.hasOwnProperty(\"credentialType\") &&\n entity.hasOwnProperty(\"realm\") &&\n entity.hasOwnProperty(\"clientId\") &&\n entity.hasOwnProperty(\"secret\") &&\n entity[\"credentialType\"] === CredentialType.ID_TOKEN\n );\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { CredentialEntity } from \"./CredentialEntity\";\nimport { CredentialType, AuthenticationScheme } from \"../../utils/Constants\";\nimport { TimeUtils } from \"../../utils/TimeUtils\";\nimport { StringUtils } from \"../../utils/StringUtils\";\nimport { ICrypto } from \"../../crypto/ICrypto\";\nimport { TokenClaims } from \"../../account/TokenClaims\";\nimport { AuthToken } from \"../../account/AuthToken\";\nimport { ClientAuthError } from \"../../error/ClientAuthError\";\n\n/**\n * ACCESS_TOKEN Credential Type\n *\n * Key:Value Schema:\n *\n * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read\n *\n * Value Schema:\n * {\n * homeAccountId: home account identifier for the auth scheme,\n * environment: entity that issued the token, represented as a full host\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\n * clientId: client ID of the application\n * secret: Actual credential as a string\n * familyId: Family ID identifier, usually only used for refresh tokens\n * realm: Full tenant or organizational identifier that the account belongs to\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\n * cachedAt: Absolute device time when entry was created in the cache.\n * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.\n * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.\n * keyId: used for POP and SSH tokenTypes\n * tokenType: Type of the token issued. Usually \"Bearer\"\n * }\n */\nexport class AccessTokenEntity extends CredentialEntity {\n realm: string;\n target: string;\n cachedAt: string;\n expiresOn: string;\n extendedExpiresOn?: string;\n refreshOn?: string;\n keyId?: string; // for POP and SSH tokenTypes\n tokenType?: string;\n\n /**\n * Create AccessTokenEntity\n * @param homeAccountId\n * @param environment\n * @param accessToken\n * @param clientId\n * @param tenantId\n * @param scopes\n * @param expiresOn\n * @param extExpiresOn\n */\n static createAccessTokenEntity(\n homeAccountId: string,\n environment: string,\n accessToken: string,\n clientId: string,\n tenantId: string,\n scopes: string,\n expiresOn: number,\n extExpiresOn: number,\n cryptoUtils: ICrypto,\n refreshOn?: number,\n tokenType?: string,\n oboAssertion?: string\n ): AccessTokenEntity {\n const atEntity: AccessTokenEntity = new AccessTokenEntity();\n\n atEntity.homeAccountId = homeAccountId;\n atEntity.credentialType = CredentialType.ACCESS_TOKEN;\n atEntity.secret = accessToken;\n\n const currentTime = TimeUtils.nowSeconds();\n atEntity.cachedAt = currentTime.toString();\n\n /*\n * Token expiry time.\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.\n */\n atEntity.expiresOn = expiresOn.toString();\n atEntity.extendedExpiresOn = extExpiresOn.toString();\n if (refreshOn) {\n atEntity.refreshOn = refreshOn.toString();\n }\n\n atEntity.environment = environment;\n atEntity.clientId = clientId;\n atEntity.realm = tenantId;\n atEntity.target = scopes;\n atEntity.oboAssertion = oboAssertion;\n\n atEntity.tokenType = StringUtils.isEmpty(tokenType) ? AuthenticationScheme.BEARER : tokenType;\n\n // Create Access Token With AuthScheme instead of regular access token\n if (atEntity.tokenType === AuthenticationScheme.POP) {\n atEntity.credentialType = CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\n // Make sure keyId is present and add it to credential\n const tokenClaims: TokenClaims | null = AuthToken.extractTokenClaims(accessToken, cryptoUtils);\n if (!tokenClaims?.cnf?.kid) {\n throw ClientAuthError.createTokenClaimsRequiredError();\n }\n atEntity.keyId = tokenClaims.cnf.kid;\n }\n\n return atEntity;\n }\n\n /**\n * Validates an entity: checks for all expected params\n * @param entity\n */\n static isAccessTokenEntity(entity: object): boolean {\n\n if (!entity) {\n return false;\n }\n\n return (\n entity.hasOwnProperty(\"homeAccountId\") &&\n entity.hasOwnProperty(\"environment\") &&\n entity.hasOwnProperty(\"credentialType\") &&\n entity.hasOwnProperty(\"realm\") &&\n entity.hasOwnProperty(\"clientId\") &&\n entity.hasOwnProperty(\"secret\") &&\n entity.hasOwnProperty(\"target\") &&\n (entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN || entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME)\n );\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { CredentialEntity } from \"./CredentialEntity\";\nimport { CredentialType } from \"../../utils/Constants\";\n\n/**\n * REFRESH_TOKEN Cache\n *\n * Key:Value Schema:\n *\n * Key Example: uid.utid-login.microsoftonline.com-refreshtoken-clientId--\n *\n * Value:\n * {\n * homeAccountId: home account identifier for the auth scheme,\n * environment: entity that issued the token, represented as a full host\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\n * clientId: client ID of the application\n * secret: Actual credential as a string\n * familyId: Family ID identifier, '1' represents Microsoft Family\n * realm: Full tenant or organizational identifier that the account belongs to\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\n * }\n */\nexport class RefreshTokenEntity extends CredentialEntity {\n familyId?: string;\n\n /**\n * Create RefreshTokenEntity\n * @param homeAccountId\n * @param authenticationResult\n * @param clientId\n * @param authority\n */\n static createRefreshTokenEntity(\n homeAccountId: string,\n environment: string,\n refreshToken: string,\n clientId: string,\n familyId?: string,\n oboAssertion?: string\n ): RefreshTokenEntity {\n const rtEntity = new RefreshTokenEntity();\n\n rtEntity.clientId = clientId;\n rtEntity.credentialType = CredentialType.REFRESH_TOKEN;\n rtEntity.environment = environment;\n rtEntity.homeAccountId = homeAccountId;\n rtEntity.secret = refreshToken;\n rtEntity.oboAssertion = oboAssertion;\n\n if (familyId)\n rtEntity.familyId = familyId;\n\n return rtEntity;\n }\n\n /**\n * Validates an entity: checks for all expected params\n * @param entity\n */\n static isRefreshTokenEntity(entity: object): boolean {\n\n if (!entity) {\n return false;\n }\n\n return (\n entity.hasOwnProperty(\"homeAccountId\") &&\n entity.hasOwnProperty(\"environment\") &&\n entity.hasOwnProperty(\"credentialType\") &&\n entity.hasOwnProperty(\"clientId\") &&\n entity.hasOwnProperty(\"secret\") &&\n entity[\"credentialType\"] === CredentialType.REFRESH_TOKEN\n );\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IdTokenEntity } from \"./IdTokenEntity\";\nimport { AccessTokenEntity } from \"./AccessTokenEntity\";\nimport { RefreshTokenEntity } from \"./RefreshTokenEntity\";\nimport { AccountEntity } from \"./AccountEntity\";\nimport { AppMetadataEntity } from \"./AppMetadataEntity\";\n\nexport class CacheRecord {\n account: AccountEntity | null;\n idToken: IdTokenEntity | null;\n accessToken: AccessTokenEntity | null;\n refreshToken: RefreshTokenEntity | null;\n appMetadata: AppMetadataEntity | null;\n\n constructor(accountEntity?: AccountEntity | null, idTokenEntity?: IdTokenEntity | null, accessTokenEntity?: AccessTokenEntity | null, refreshTokenEntity?: RefreshTokenEntity | null, appMetadataEntity?: AppMetadataEntity | null) {\n this.account = accountEntity || null;\n this.idToken = idTokenEntity || null;\n this.accessToken = accessTokenEntity || null;\n this.refreshToken = refreshTokenEntity || null;\n this.appMetadata = appMetadataEntity || null;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { StringUtils } from \"./StringUtils\";\nimport { Constants } from \"./Constants\";\nimport { ICrypto } from \"../crypto/ICrypto\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\n\n/**\n * Type which defines the object that is stringified, encoded and sent in the state value.\n * Contains the following:\n * - id - unique identifier for this request\n * - ts - timestamp for the time the request was made. Used to ensure that token expiration is not calculated incorrectly.\n * - platformState - string value sent from the platform.\n */\nexport type LibraryStateObject = {\n id: string,\n meta?: Record<string, string>\n};\n\n/**\n * Type which defines the stringified and encoded object sent to the service in the authorize request.\n */\nexport type RequestStateObject = {\n userRequestState: string,\n libraryState: LibraryStateObject\n};\n\n/**\n * Class which provides helpers for OAuth 2.0 protocol specific values\n */\nexport class ProtocolUtils {\n\n /**\n * Appends user state with random guid, or returns random guid.\n * @param userState \n * @param randomGuid \n */\n static setRequestState(cryptoObj: ICrypto, userState?: string, meta?: Record<string, string>): string {\n const libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\n return !StringUtils.isEmpty(userState) ? `${libraryState}${Constants.RESOURCE_DELIM}${userState}` : libraryState;\n }\n\n /**\n * Generates the state value used by the common library.\n * @param randomGuid \n * @param cryptoObj \n */\n static generateLibraryState(cryptoObj: ICrypto, meta?: Record<string, string>): string {\n if (!cryptoObj) {\n throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\n }\n\n // Create a state object containing a unique id and the timestamp of the request creation\n const stateObj: LibraryStateObject = {\n id: cryptoObj.createNewGuid()\n };\n\n if (meta) {\n stateObj.meta = meta;\n }\n\n const stateString = JSON.stringify(stateObj);\n\n return cryptoObj.base64Encode(stateString);\n }\n\n /**\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\n * @param state \n * @param cryptoObj \n */\n static parseRequestState(cryptoObj: ICrypto, state: string): RequestStateObject {\n if (!cryptoObj) {\n throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\n }\n\n if (StringUtils.isEmpty(state)) {\n throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\n }\n\n try {\n // Split the state between library state and user passed state and decode them separately\n const splitState = state.split(Constants.RESOURCE_DELIM);\n const libraryState = splitState[0];\n const userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : \"\";\n const libraryStateString = cryptoObj.base64Decode(libraryState);\n const libraryStateObj = JSON.parse(libraryStateString) as LibraryStateObject;\n return {\n userRequestState: !StringUtils.isEmpty(userState) ? userState : \"\",\n libraryState: libraryStateObj\n };\n } catch(e) {\n throw ClientAuthError.createInvalidStateError(state, e);\n }\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { APP_METADATA, Separators } from \"../../utils/Constants\";\n\n/**\n * APP_METADATA Cache\n *\n * Key:Value Schema:\n *\n * Key: appmetadata-<environment>-<client_id>\n *\n * Value:\n * {\n * clientId: client ID of the application\n * environment: entity that issued the token, represented as a full host\n * familyId: Family ID identifier, '1' represents Microsoft Family\n * }\n */\nexport class AppMetadataEntity {\n clientId: string;\n environment: string;\n familyId?: string;\n\n /**\n * Generate AppMetadata Cache Key as per the schema: appmetadata-<environment>-<client_id>\n */\n generateAppMetadataKey(): string {\n return AppMetadataEntity.generateAppMetadataCacheKey(this.environment, this.clientId);\n }\n\n /**\n * Generate AppMetadata Cache Key\n */\n static generateAppMetadataCacheKey(environment: string, clientId: string): string {\n const appMetaDataKeyArray: Array<string> = [\n APP_METADATA,\n environment,\n clientId,\n ];\n return appMetaDataKeyArray.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\n }\n\n /**\n * Creates AppMetadataEntity\n * @param clientId\n * @param environment\n * @param familyId\n */\n static createAppMetadataEntity(clientId: string, environment: string, familyId?: string): AppMetadataEntity {\n const appMetadata = new AppMetadataEntity();\n\n appMetadata.clientId = clientId;\n appMetadata.environment = environment;\n if (familyId) {\n appMetadata.familyId = familyId;\n }\n\n return appMetadata;\n }\n\n /**\n * Validates an entity: checks for all expected params\n * @param entity\n */\n static isAppMetadataEntity(key: string, entity: object): boolean {\n\n if (!entity) {\n return false;\n }\n\n return (\n key.indexOf(APP_METADATA) === 0 &&\n entity.hasOwnProperty(\"clientId\") &&\n entity.hasOwnProperty(\"environment\")\n );\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ISerializableTokenCache } from \"../interface/ISerializableTokenCache\";\n\n/**\n * This class instance helps track the memory changes facilitating\n * decisions to read from and write to the persistent cache\n */export class TokenCacheContext {\n /**\n * boolean indicating cache change\n */\n hasChanged: boolean;\n /**\n * serializable token cache interface\n */\n cache: ISerializableTokenCache;\n\n constructor(tokenCache: ISerializableTokenCache, hasChanged: boolean) {\n this.cache = tokenCache;\n this.hasChanged = hasChanged;\n }\n\n /**\n * boolean which indicates the changes in cache\n */\n get cacheHasChanged(): boolean {\n return this.hasChanged;\n }\n\n /**\n * function to retrieve the token cache\n */\n get tokenCache(): ISerializableTokenCache {\n return this.cache;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ServerAuthorizationTokenResponse } from \"./ServerAuthorizationTokenResponse\";\nimport { buildClientInfo} from \"../account/ClientInfo\";\nimport { ICrypto } from \"../crypto/ICrypto\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ServerAuthorizationCodeResponse } from \"./ServerAuthorizationCodeResponse\";\nimport { Logger } from \"../logger/Logger\";\nimport { ServerError } from \"../error/ServerError\";\nimport { AuthToken } from \"../account/AuthToken\";\nimport { ScopeSet } from \"../request/ScopeSet\";\nimport { AuthenticationResult } from \"./AuthenticationResult\";\nimport { AccountEntity } from \"../cache/entities/AccountEntity\";\nimport { Authority } from \"../authority/Authority\";\nimport { AuthorityType } from \"../authority/AuthorityType\";\nimport { IdTokenEntity } from \"../cache/entities/IdTokenEntity\";\nimport { AccessTokenEntity } from \"../cache/entities/AccessTokenEntity\";\nimport { RefreshTokenEntity } from \"../cache/entities/RefreshTokenEntity\";\nimport { InteractionRequiredAuthError } from \"../error/InteractionRequiredAuthError\";\nimport { CacheRecord } from \"../cache/entities/CacheRecord\";\nimport { CacheManager } from \"../cache/CacheManager\";\nimport { ProtocolUtils, RequestStateObject } from \"../utils/ProtocolUtils\";\nimport { AuthenticationScheme, Constants, THE_FAMILY_ID } from \"../utils/Constants\";\nimport { PopTokenGenerator } from \"../crypto/PopTokenGenerator\";\nimport { AppMetadataEntity } from \"../cache/entities/AppMetadataEntity\";\nimport { ICachePlugin } from \"../cache/interface/ICachePlugin\";\nimport { TokenCacheContext } from \"../cache/persistence/TokenCacheContext\";\nimport { ISerializableTokenCache } from \"../cache/interface/ISerializableTokenCache\";\nimport { AuthorizationCodePayload } from \"./AuthorizationCodePayload\";\nimport { BaseAuthRequest } from \"../request/BaseAuthRequest\";\n\n/**\n * Class that handles response parsing.\n */\nexport class ResponseHandler {\n private clientId: string;\n private cacheStorage: CacheManager;\n private cryptoObj: ICrypto;\n private logger: Logger;\n private homeAccountIdentifier: string;\n private serializableCache: ISerializableTokenCache | null;\n private persistencePlugin: ICachePlugin | null;\n\n constructor(clientId: string, cacheStorage: CacheManager, cryptoObj: ICrypto, logger: Logger, serializableCache: ISerializableTokenCache | null, persistencePlugin: ICachePlugin | null) {\n this.clientId = clientId;\n this.cacheStorage = cacheStorage;\n this.cryptoObj = cryptoObj;\n this.logger = logger;\n this.serializableCache = serializableCache;\n this.persistencePlugin = persistencePlugin;\n }\n\n /**\n * Function which validates server authorization code response.\n * @param serverResponseHash\n * @param cachedState\n * @param cryptoObj\n */\n validateServerAuthorizationCodeResponse(serverResponseHash: ServerAuthorizationCodeResponse, cachedState: string, cryptoObj: ICrypto): void {\n\n if (!serverResponseHash.state || !cachedState) {\n throw !serverResponseHash.state ? ClientAuthError.createStateNotFoundError(\"Server State\") : ClientAuthError.createStateNotFoundError(\"Cached State\");\n }\n\n if (decodeURIComponent(serverResponseHash.state) !== decodeURIComponent(cachedState)) {\n throw ClientAuthError.createStateMismatchError();\n }\n\n // Check for error\n if (serverResponseHash.error || serverResponseHash.error_description || serverResponseHash.suberror) {\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponseHash.error, serverResponseHash.error_description, serverResponseHash.suberror)) {\n throw new InteractionRequiredAuthError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\n }\n\n throw new ServerError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\n }\n\n if (serverResponseHash.client_info) {\n buildClientInfo(serverResponseHash.client_info, cryptoObj);\n }\n }\n\n /**\n * Function which validates server authorization token response.\n * @param serverResponse\n */\n validateTokenResponse(serverResponse: ServerAuthorizationTokenResponse): void {\n // Check for error\n if (serverResponse.error || serverResponse.error_description || serverResponse.suberror) {\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponse.error, serverResponse.error_description, serverResponse.suberror)) {\n throw new InteractionRequiredAuthError(serverResponse.error, serverResponse.error_description, serverResponse.suberror);\n }\n\n const errString = `${serverResponse.error_codes} - [${serverResponse.timestamp}]: ${serverResponse.error_description} - Correlation ID: ${serverResponse.correlation_id} - Trace ID: ${serverResponse.trace_id}`;\n throw new ServerError(serverResponse.error, errString, serverResponse.suberror);\n }\n }\n\n /**\n * Returns a constructed token response based on given string. Also manages the cache updates and cleanups.\n * @param serverTokenResponse\n * @param authority\n */\n async handleServerTokenResponse(\n serverTokenResponse: ServerAuthorizationTokenResponse,\n authority: Authority,\n reqTimestamp: number,\n request: BaseAuthRequest,\n authCodePayload?: AuthorizationCodePayload,\n oboAssertion?: string,\n handlingRefreshTokenResponse?: boolean): Promise<AuthenticationResult> {\n\n // create an idToken object (not entity)\n let idTokenObj: AuthToken | undefined;\n if (serverTokenResponse.id_token) {\n idTokenObj = new AuthToken(serverTokenResponse.id_token || Constants.EMPTY_STRING, this.cryptoObj);\n \n // token nonce check (TODO: Add a warning if no nonce is given?)\n if (authCodePayload && !StringUtils.isEmpty(authCodePayload.nonce)) {\n if (idTokenObj.claims.nonce !== authCodePayload.nonce) {\n throw ClientAuthError.createNonceMismatchError();\n }\n }\n }\n\n // generate homeAccountId\n this.homeAccountIdentifier = AccountEntity.generateHomeAccountId(serverTokenResponse.client_info || Constants.EMPTY_STRING, authority.authorityType, this.logger, this.cryptoObj, idTokenObj);\n\n // save the response tokens\n let requestStateObj: RequestStateObject | undefined;\n if (!!authCodePayload && !!authCodePayload.state) {\n requestStateObj = ProtocolUtils.parseRequestState(this.cryptoObj, authCodePayload.state);\n }\n\n const cacheRecord = this.generateCacheRecord(serverTokenResponse, authority, reqTimestamp, idTokenObj, request.scopes, oboAssertion, authCodePayload);\n let cacheContext;\n try {\n if (this.persistencePlugin && this.serializableCache) {\n this.logger.verbose(\"Persistence enabled, calling beforeCacheAccess\");\n cacheContext = new TokenCacheContext(this.serializableCache, true);\n await this.persistencePlugin.beforeCacheAccess(cacheContext);\n }\n /*\n * When saving a refreshed tokens to the cache, it is expected that the account that was used is present in the cache.\n * If not present, we should return null, as it's the case that another application called removeAccount in between\n * the calls to getAllAccounts and acquireTokenSilent. We should not overwrite that removal.\n */\n if (handlingRefreshTokenResponse && cacheRecord.account) {\n const key = cacheRecord.account.generateAccountKey();\n const account = this.cacheStorage.getAccount(key);\n if (!account) {\n this.logger.warning(\"Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache\");\n return ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj);\n }\n }\n this.cacheStorage.saveCacheRecord(cacheRecord);\n } finally {\n if (this.persistencePlugin && this.serializableCache && cacheContext) {\n this.logger.verbose(\"Persistence enabled, calling afterCacheAccess\");\n await this.persistencePlugin.afterCacheAccess(cacheContext);\n }\n }\n return ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj);\n }\n\n /**\n * Generates CacheRecord\n * @param serverTokenResponse\n * @param idTokenObj\n * @param authority\n */\n private generateCacheRecord(serverTokenResponse: ServerAuthorizationTokenResponse, authority: Authority, reqTimestamp: number, idTokenObj?: AuthToken, requestScopes?: string[], oboAssertion?: string, authCodePayload?: AuthorizationCodePayload): CacheRecord {\n const env = authority.getPreferredCache();\n if (StringUtils.isEmpty(env)) {\n throw ClientAuthError.createInvalidCacheEnvironmentError();\n }\n\n // IdToken: non AAD scenarios can have empty realm\n let cachedIdToken: IdTokenEntity | undefined;\n let cachedAccount: AccountEntity | undefined;\n if (!StringUtils.isEmpty(serverTokenResponse.id_token) && !!idTokenObj) {\n cachedIdToken = IdTokenEntity.createIdTokenEntity(\n this.homeAccountIdentifier,\n env,\n serverTokenResponse.id_token || Constants.EMPTY_STRING,\n this.clientId,\n idTokenObj.claims.tid || Constants.EMPTY_STRING,\n oboAssertion\n );\n\n cachedAccount = this.generateAccountEntity(\n serverTokenResponse,\n idTokenObj,\n authority,\n oboAssertion,\n authCodePayload\n );\n }\n\n // AccessToken\n let cachedAccessToken: AccessTokenEntity | null = null;\n if (!StringUtils.isEmpty(serverTokenResponse.access_token)) {\n\n // If scopes not returned in server response, use request scopes\n const responseScopes = serverTokenResponse.scope ? ScopeSet.fromString(serverTokenResponse.scope) : new ScopeSet(requestScopes || []);\n\n /*\n * Use timestamp calculated before request\n * Server may return timestamps as strings, parse to numbers if so.\n */\n const expiresIn: number = (typeof serverTokenResponse.expires_in === \"string\" ? parseInt(serverTokenResponse.expires_in, 10) : serverTokenResponse.expires_in) || 0;\n const extExpiresIn: number = (typeof serverTokenResponse.ext_expires_in === \"string\" ? parseInt(serverTokenResponse.ext_expires_in, 10) : serverTokenResponse.ext_expires_in) || 0;\n const refreshIn: number | undefined = (typeof serverTokenResponse.refresh_in === \"string\" ? parseInt(serverTokenResponse.refresh_in, 10) : serverTokenResponse.refresh_in) || undefined;\n const tokenExpirationSeconds = reqTimestamp + expiresIn;\n const extendedTokenExpirationSeconds = tokenExpirationSeconds + extExpiresIn;\n const refreshOnSeconds = refreshIn && refreshIn > 0 ? reqTimestamp + refreshIn : undefined;\n\n // non AAD scenarios can have empty realm\n cachedAccessToken = AccessTokenEntity.createAccessTokenEntity(\n this.homeAccountIdentifier,\n env,\n serverTokenResponse.access_token || Constants.EMPTY_STRING,\n this.clientId,\n idTokenObj ? idTokenObj.claims.tid || Constants.EMPTY_STRING : authority.tenant,\n responseScopes.printScopes(),\n tokenExpirationSeconds,\n extendedTokenExpirationSeconds,\n this.cryptoObj,\n refreshOnSeconds,\n serverTokenResponse.token_type,\n oboAssertion\n );\n }\n\n // refreshToken\n let cachedRefreshToken: RefreshTokenEntity | null = null;\n if (!StringUtils.isEmpty(serverTokenResponse.refresh_token)) {\n cachedRefreshToken = RefreshTokenEntity.createRefreshTokenEntity(\n this.homeAccountIdentifier,\n env,\n serverTokenResponse.refresh_token || Constants.EMPTY_STRING,\n this.clientId,\n serverTokenResponse.foci,\n oboAssertion\n );\n }\n\n // appMetadata\n let cachedAppMetadata: AppMetadataEntity | null = null;\n if (!StringUtils.isEmpty(serverTokenResponse.foci)) {\n cachedAppMetadata = AppMetadataEntity.createAppMetadataEntity(this.clientId, env, serverTokenResponse.foci);\n }\n\n return new CacheRecord(cachedAccount, cachedIdToken, cachedAccessToken, cachedRefreshToken, cachedAppMetadata);\n }\n\n /**\n * Generate Account\n * @param serverTokenResponse\n * @param idToken\n * @param authority\n */\n private generateAccountEntity(serverTokenResponse: ServerAuthorizationTokenResponse, idToken: AuthToken, authority: Authority, oboAssertion?: string, authCodePayload?: AuthorizationCodePayload): AccountEntity {\n const authorityType = authority.authorityType;\n const cloudGraphHostName = authCodePayload ? authCodePayload.cloud_graph_host_name : \"\";\n const msGraphhost = authCodePayload ? authCodePayload.msgraph_host : \"\";\n\n // ADFS does not require client_info in the response\n if (authorityType === AuthorityType.Adfs) {\n this.logger.verbose(\"Authority type is ADFS, creating ADFS account\");\n return AccountEntity.createGenericAccount(authority, this.homeAccountIdentifier, idToken, oboAssertion, cloudGraphHostName, msGraphhost);\n }\n\n // This fallback applies to B2C as well as they fall under an AAD account type.\n if (StringUtils.isEmpty(serverTokenResponse.client_info) && authority.protocolMode === \"AAD\") {\n throw ClientAuthError.createClientInfoEmptyError();\n }\n\n return serverTokenResponse.client_info ?\n AccountEntity.createAccount(serverTokenResponse.client_info, this.homeAccountIdentifier, authority, idToken, oboAssertion, cloudGraphHostName, msGraphhost) :\n AccountEntity.createGenericAccount(authority, this.homeAccountIdentifier, idToken, oboAssertion, cloudGraphHostName, msGraphhost);\n }\n\n /**\n * Creates an @AuthenticationResult from @CacheRecord , @IdToken , and a boolean that states whether or not the result is from cache.\n *\n * Optionally takes a state string that is set as-is in the response.\n *\n * @param cacheRecord\n * @param idTokenObj\n * @param fromTokenCache\n * @param stateString\n */\n static async generateAuthenticationResult(\n cryptoObj: ICrypto, \n authority: Authority,\n cacheRecord: CacheRecord, \n fromTokenCache: boolean, \n request: BaseAuthRequest,\n idTokenObj?: AuthToken,\n requestState?: RequestStateObject): Promise<AuthenticationResult> {\n let accessToken: string = \"\";\n let responseScopes: Array<string> = [];\n let expiresOn: Date | null = null;\n let extExpiresOn: Date | undefined;\n let familyId: string = Constants.EMPTY_STRING;\n\n if (cacheRecord.accessToken) {\n if (cacheRecord.accessToken.tokenType === AuthenticationScheme.POP) {\n const popTokenGenerator: PopTokenGenerator = new PopTokenGenerator(cryptoObj);\n accessToken = await popTokenGenerator.signPopToken(cacheRecord.accessToken.secret, request);\n } else {\n accessToken = cacheRecord.accessToken.secret;\n }\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\n }\n\n if (cacheRecord.appMetadata) {\n familyId = cacheRecord.appMetadata.familyId === THE_FAMILY_ID ? THE_FAMILY_ID : Constants.EMPTY_STRING;\n }\n const uid = idTokenObj?.claims.oid || idTokenObj?.claims.sub || Constants.EMPTY_STRING;\n const tid = idTokenObj?.claims.tid || Constants.EMPTY_STRING;\n\n return {\n authority: authority.canonicalAuthority,\n uniqueId: uid,\n tenantId: tid,\n scopes: responseScopes,\n account: cacheRecord.account ? cacheRecord.account.getAccountInfo() : null,\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\n accessToken: accessToken,\n fromCache: fromTokenCache,\n expiresOn: expiresOn,\n extExpiresOn: extExpiresOn,\n familyId: familyId,\n tokenType: cacheRecord.accessToken?.tokenType || Constants.EMPTY_STRING,\n state: requestState ? requestState.userRequestState : Constants.EMPTY_STRING,\n cloudGraphHostName: cacheRecord.account?.cloudGraphHostName || Constants.EMPTY_STRING,\n msGraphHost: cacheRecord.account?.msGraphHost || Constants.EMPTY_STRING\n };\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { BaseClient } from \"./BaseClient\";\nimport { CommonAuthorizationUrlRequest } from \"../request/CommonAuthorizationUrlRequest\";\nimport { CommonAuthorizationCodeRequest } from \"../request/CommonAuthorizationCodeRequest\";\nimport { Authority } from \"../authority/Authority\";\nimport { RequestParameterBuilder } from \"../request/RequestParameterBuilder\";\nimport { GrantType, AuthenticationScheme, PromptValue, Separators } from \"../utils/Constants\";\nimport { ClientConfiguration } from \"../config/ClientConfiguration\";\nimport { ServerAuthorizationTokenResponse } from \"../response/ServerAuthorizationTokenResponse\";\nimport { NetworkResponse } from \"../network/NetworkManager\";\nimport { ResponseHandler } from \"../response/ResponseHandler\";\nimport { AuthenticationResult } from \"../response/AuthenticationResult\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { UrlString } from \"../url/UrlString\";\nimport { ServerAuthorizationCodeResponse } from \"../response/ServerAuthorizationCodeResponse\";\nimport { AccountEntity } from \"../cache/entities/AccountEntity\";\nimport { CommonEndSessionRequest } from \"../request/CommonEndSessionRequest\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { PopTokenGenerator } from \"../crypto/PopTokenGenerator\";\nimport { RequestThumbprint } from \"../network/RequestThumbprint\";\nimport { AuthorizationCodePayload } from \"../response/AuthorizationCodePayload\";\nimport { TimeUtils } from \"../utils/TimeUtils\";\nimport { TokenClaims } from \"../account/TokenClaims\";\nimport { AccountInfo } from \"../account/AccountInfo\";\nimport { buildClientInfoFromHomeAccountId, buildClientInfo } from \"../account/ClientInfo\";\nimport { CcsCredentialType, CcsCredential } from \"../account/CcsCredential\";\n\n/**\n * Oauth2.0 Authorization Code client\n */\nexport class AuthorizationCodeClient extends BaseClient {\n\n constructor(configuration: ClientConfiguration) {\n super(configuration);\n }\n\n /**\n * Creates the URL of the authorization request letting the user input credentials and consent to the\n * application. The URL target the /authorize endpoint of the authority configured in the\n * application object.\n *\n * Once the user inputs their credentials and consents, the authority will send a response to the redirect URI\n * sent in the request and should contain an authorization code, which can then be used to acquire tokens via\n * acquireToken(AuthorizationCodeRequest)\n * @param request\n */\n async getAuthCodeUrl(request: CommonAuthorizationUrlRequest): Promise<string> {\n const queryString = this.createAuthCodeUrlQueryString(request);\n\n return UrlString.appendQueryString(this.authority.authorizationEndpoint, queryString);\n }\n\n /**\n * API to acquire a token in exchange of 'authorization_code` acquired by the user in the first leg of the\n * authorization_code_grant\n * @param request\n */\n async acquireToken(request: CommonAuthorizationCodeRequest, authCodePayload?: AuthorizationCodePayload): Promise<AuthenticationResult> {\n this.logger.info(\"in acquireToken call\");\n if (!request || StringUtils.isEmpty(request.code)) {\n throw ClientAuthError.createTokenRequestCannotBeMadeError();\n }\n\n const reqTimestamp = TimeUtils.nowSeconds();\n const response = await this.executeTokenRequest(this.authority, request);\n\n const responseHandler = new ResponseHandler(\n this.config.authOptions.clientId,\n this.cacheManager,\n this.cryptoUtils,\n this.logger,\n this.config.serializableCache,\n this.config.persistencePlugin\n );\n\n // Validate response. This function throws a server error if an error is returned by the server.\n responseHandler.validateTokenResponse(response.body);\n return await responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, authCodePayload);\n }\n\n /**\n * Handles the hash fragment response from public client code request. Returns a code response used by\n * the client to exchange for a token in acquireToken.\n * @param hashFragment\n */\n handleFragmentResponse(hashFragment: string, cachedState: string): AuthorizationCodePayload {\n // Handle responses.\n const responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, null, null);\n\n // Deserialize hash fragment response parameters.\n const hashUrlString = new UrlString(hashFragment);\n // Deserialize hash fragment response parameters.\n const serverParams: ServerAuthorizationCodeResponse = UrlString.getDeserializedHash(hashUrlString.getHash());\n\n // Get code response\n responseHandler.validateServerAuthorizationCodeResponse(serverParams, cachedState, this.cryptoUtils);\n\n // throw when there is no auth code in the response\n if (!serverParams.code) {\n throw ClientAuthError.createNoAuthCodeInServerResponseError();\n }\n return {\n ...serverParams,\n // Code param is optional in ServerAuthorizationCodeResponse but required in AuthorizationCodePaylod\n code: serverParams.code\n };\n }\n\n /**\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\n * Default behaviour is to redirect the user to `window.location.href`.\n * @param authorityUri\n */\n getLogoutUri(logoutRequest: CommonEndSessionRequest): string {\n // Throw error if logoutRequest is null/undefined\n if (!logoutRequest) {\n throw ClientConfigurationError.createEmptyLogoutRequestError();\n }\n\n if (logoutRequest.account) {\n // Clear given account.\n this.cacheManager.removeAccount(AccountEntity.generateAccountCacheKey(logoutRequest.account));\n } else {\n // Clear all accounts and tokens\n this.cacheManager.clear();\n }\n\n const queryString = this.createLogoutUrlQueryString(logoutRequest);\n\n // Construct logout URI.\n return UrlString.appendQueryString(this.authority.endSessionEndpoint, queryString);\n }\n\n /**\n * Executes POST request to token endpoint\n * @param authority\n * @param request\n */\n private async executeTokenRequest(authority: Authority, request: CommonAuthorizationCodeRequest): Promise<NetworkResponse<ServerAuthorizationTokenResponse>> {\n const thumbprint: RequestThumbprint = {\n clientId: this.config.authOptions.clientId,\n authority: authority.canonicalAuthority,\n scopes: request.scopes\n };\n\n const requestBody = await this.createTokenRequestBody(request);\n const queryParameters = this.createTokenQueryParameters(request);\n let ccsCredential: CcsCredential | undefined = undefined;\n if (request.clientInfo) {\n try {\n const clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\n ccsCredential = {\n credential: `${clientInfo.uid}${Separators.CLIENT_INFO_SEPARATOR}${clientInfo.utid}`,\n type: CcsCredentialType.HOME_ACCOUNT_ID\n };\n } catch (e) {\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\n }\n }\n const headers: Record<string, string> = this.createTokenRequestHeaders(ccsCredential || request.ccsCredential);\n const endpoint = StringUtils.isEmpty(queryParameters) ? authority.tokenEndpoint : `${authority.tokenEndpoint}?${queryParameters}`;\n\n return this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint);\n }\n\n /**\n * Creates query string for the /token request\n * @param request \n */\n private createTokenQueryParameters(request: CommonAuthorizationCodeRequest): string {\n const parameterBuilder = new RequestParameterBuilder();\n\n if (request.tokenQueryParameters) {\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\n }\n\n return parameterBuilder.createQueryString();\n }\n\n /**\n * Generates a map for all the params to be sent to the service\n * @param request\n */\n private async createTokenRequestBody(request: CommonAuthorizationCodeRequest): Promise<string> {\n const parameterBuilder = new RequestParameterBuilder();\n\n parameterBuilder.addClientId(this.config.authOptions.clientId);\n\n // validate the redirectUri (to be a non null value)\n parameterBuilder.addRedirectUri(request.redirectUri);\n\n // Add scope array, parameter builder will add default scopes and dedupe\n parameterBuilder.addScopes(request.scopes);\n\n // add code: user set, not validated\n parameterBuilder.addAuthorizationCode(request.code);\n\n // Add library metadata\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\n\n parameterBuilder.addThrottling();\n \n if (this.serverTelemetryManager) {\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\n }\n\n // add code_verifier if passed\n if (request.codeVerifier) {\n parameterBuilder.addCodeVerifier(request.codeVerifier);\n }\n\n if (this.config.clientCredentials.clientSecret) {\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\n }\n\n if (this.config.clientCredentials.clientAssertion) {\n const clientAssertion = this.config.clientCredentials.clientAssertion;\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\n }\n\n parameterBuilder.addGrantType(GrantType.AUTHORIZATION_CODE_GRANT);\n parameterBuilder.addClientInfo();\n\n if (request.authenticationScheme === AuthenticationScheme.POP) {\n const popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\n const cnfString = await popTokenGenerator.generateCnf(request);\n parameterBuilder.addPopToken(cnfString);\n }\n\n const correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\n parameterBuilder.addCorrelationId(correlationId);\n\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\n }\n \n let ccsCred: CcsCredential | undefined = undefined;\n if (request.clientInfo) {\n try {\n const clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\n ccsCred = {\n credential: `${clientInfo.uid}${Separators.CLIENT_INFO_SEPARATOR}${clientInfo.utid}`,\n type: CcsCredentialType.HOME_ACCOUNT_ID\n };\n } catch (e) {\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\n }\n } else {\n ccsCred = request.ccsCredential;\n }\n\n // Adds these as parameters in the request instead of headers to prevent CORS preflight request\n if (this.config.systemOptions.preventCorsPreflight && ccsCred) {\n switch (ccsCred.type) {\n case CcsCredentialType.HOME_ACCOUNT_ID:\n try {\n const clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\n parameterBuilder.addCcsOid(clientInfo);\n } catch (e) {\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\n }\n break;\n case CcsCredentialType.UPN:\n parameterBuilder.addCcsUpn(ccsCred.credential);\n break;\n }\n }\n\n return parameterBuilder.createQueryString();\n }\n\n /**\n * This API validates the `AuthorizationCodeUrlRequest` and creates a URL\n * @param request\n */\n private createAuthCodeUrlQueryString(request: CommonAuthorizationUrlRequest): string {\n const parameterBuilder = new RequestParameterBuilder();\n\n parameterBuilder.addClientId(this.config.authOptions.clientId);\n\n const requestScopes = [...request.scopes || [], ...request.extraScopesToConsent || []];\n parameterBuilder.addScopes(requestScopes);\n\n // validate the redirectUri (to be a non null value)\n parameterBuilder.addRedirectUri(request.redirectUri);\n\n // generate the correlationId if not set by the user and add\n const correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\n parameterBuilder.addCorrelationId(correlationId);\n\n // add response_mode. If not passed in it defaults to query.\n parameterBuilder.addResponseMode(request.responseMode);\n\n // add response_type = code\n parameterBuilder.addResponseTypeCode();\n\n // add library info parameters\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\n\n // add client_info=1\n parameterBuilder.addClientInfo();\n\n if (request.codeChallenge && request.codeChallengeMethod) {\n parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);\n }\n\n if (request.prompt) {\n parameterBuilder.addPrompt(request.prompt);\n }\n\n if (request.domainHint) {\n parameterBuilder.addDomainHint(request.domainHint);\n }\n\n // Add sid or loginHint with preference for sid -> loginHint -> username of AccountInfo object\n if (request.prompt !== PromptValue.SELECT_ACCOUNT) {\n // AAD will throw if prompt=select_account is passed with an account hint\n if (request.sid && request.prompt === PromptValue.NONE) {\n // SessionID is only used in silent calls\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from request\");\n parameterBuilder.addSid(request.sid);\n } else if (request.account) {\n const accountSid = this.extractAccountSid(request.account);\n // If account and loginHint are provided, we will check account first for sid before adding loginHint\n if (accountSid && request.prompt === PromptValue.NONE) {\n // SessionId is only used in silent calls\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from account\");\n parameterBuilder.addSid(accountSid);\n try {\n const clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\n parameterBuilder.addCcsOid(clientInfo);\n } catch (e) {\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\n }\n } else if (request.loginHint) {\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from request\");\n parameterBuilder.addLoginHint(request.loginHint);\n parameterBuilder.addCcsUpn(request.loginHint);\n } else if (request.account.username) {\n // Fallback to account username if provided\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from account\");\n parameterBuilder.addLoginHint(request.account.username);\n try {\n const clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\n parameterBuilder.addCcsOid(clientInfo);\n } catch (e) {\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\n }\n }\n } else if (request.loginHint) {\n this.logger.verbose(\"createAuthCodeUrlQueryString: No account, adding login_hint from request\");\n parameterBuilder.addLoginHint(request.loginHint);\n parameterBuilder.addCcsUpn(request.loginHint);\n }\n } else {\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints\");\n }\n\n if (request.nonce) {\n parameterBuilder.addNonce(request.nonce);\n }\n\n if (request.state) {\n parameterBuilder.addState(request.state);\n }\n\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\n }\n\n if (request.extraQueryParameters) {\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\n }\n\n return parameterBuilder.createQueryString();\n }\n\n /**\n * This API validates the `EndSessionRequest` and creates a URL\n * @param request\n */\n private createLogoutUrlQueryString(request: CommonEndSessionRequest): string {\n const parameterBuilder = new RequestParameterBuilder();\n\n if (request.postLogoutRedirectUri) {\n parameterBuilder.addPostLogoutRedirectUri(request.postLogoutRedirectUri);\n }\n\n if (request.correlationId) {\n parameterBuilder.addCorrelationId(request.correlationId);\n }\n\n if (request.idTokenHint) {\n parameterBuilder.addIdTokenHint(request.idTokenHint);\n }\n\n return parameterBuilder.createQueryString();\n }\n\n /**\n * Helper to get sid from account. Returns null if idTokenClaims are not present or sid is not present.\n * @param account \n */\n private extractAccountSid(account: AccountInfo): string | null {\n if (account.idTokenClaims) {\n const tokenClaims = account.idTokenClaims as TokenClaims;\n return tokenClaims.sid || null;\n }\n return null;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ClientConfiguration } from \"../config/ClientConfiguration\";\nimport { BaseClient } from \"./BaseClient\";\nimport { CommonRefreshTokenRequest } from \"../request/CommonRefreshTokenRequest\";\nimport { Authority } from \"../authority/Authority\";\nimport { ServerAuthorizationTokenResponse } from \"../response/ServerAuthorizationTokenResponse\";\nimport { RequestParameterBuilder } from \"../request/RequestParameterBuilder\";\nimport { GrantType, AuthenticationScheme, Errors } from \"../utils/Constants\";\nimport { ResponseHandler } from \"../response/ResponseHandler\";\nimport { AuthenticationResult } from \"../response/AuthenticationResult\";\nimport { PopTokenGenerator } from \"../crypto/PopTokenGenerator\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { RequestThumbprint } from \"../network/RequestThumbprint\";\nimport { NetworkResponse } from \"../network/NetworkManager\";\nimport { CommonSilentFlowRequest } from \"../request/CommonSilentFlowRequest\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { ClientAuthError, ClientAuthErrorMessage } from \"../error/ClientAuthError\";\nimport { ServerError } from \"../error/ServerError\";\nimport { TimeUtils } from \"../utils/TimeUtils\";\nimport { UrlString } from \"../url/UrlString\";\nimport { CcsCredentialType } from \"../account/CcsCredential\";\nimport { buildClientInfoFromHomeAccountId } from \"../account/ClientInfo\";\n\n/**\n * OAuth2.0 refresh token client\n */\nexport class RefreshTokenClient extends BaseClient {\n\n constructor(configuration: ClientConfiguration) {\n super(configuration);\n }\n\n public async acquireToken(request: CommonRefreshTokenRequest): Promise<AuthenticationResult>{\n const reqTimestamp = TimeUtils.nowSeconds();\n const response = await this.executeTokenRequest(request, this.authority);\n\n const responseHandler = new ResponseHandler(\n this.config.authOptions.clientId,\n this.cacheManager,\n this.cryptoUtils,\n this.logger,\n this.config.serializableCache,\n this.config.persistencePlugin\n );\n\n responseHandler.validateTokenResponse(response.body);\n return responseHandler.handleServerTokenResponse(\n response.body,\n this.authority,\n reqTimestamp,\n request,\n undefined,\n undefined,\n true\n );\n }\n\n /**\n * Gets cached refresh token and attaches to request, then calls acquireToken API\n * @param request\n */\n public async acquireTokenByRefreshToken(request: CommonSilentFlowRequest): Promise<AuthenticationResult> {\n // Cannot renew token if no request object is given.\n if (!request) {\n throw ClientConfigurationError.createEmptyTokenRequestError();\n }\n\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\n if (!request.account) {\n throw ClientAuthError.createNoAccountInSilentRequestError();\n }\n\n // try checking if FOCI is enabled for the given application\n const isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment, this.config.authOptions.clientId);\n\n // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\n if (isFOCI) {\n try {\n return this.acquireTokenWithCachedRefreshToken(request, true);\n } catch (e) {\n const noFamilyRTInCache = e instanceof ClientAuthError && e.errorCode === ClientAuthErrorMessage.noTokensFoundError.code;\n const clientMismatchErrorWithFamilyRT = e instanceof ServerError && e.errorCode === Errors.INVALID_GRANT_ERROR && e.subError === Errors.CLIENT_MISMATCH_ERROR;\n\n // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\n if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\n return this.acquireTokenWithCachedRefreshToken(request, false);\n // throw in all other cases\n } else {\n throw e;\n }\n }\n }\n\n // fall back to application refresh token acquisition\n return this.acquireTokenWithCachedRefreshToken(request, false);\n }\n\n /**\n * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\n * @param request\n */\n private async acquireTokenWithCachedRefreshToken(request: CommonSilentFlowRequest, foci: boolean) {\n // fetches family RT or application RT based on FOCI value\n const refreshToken = this.cacheManager.readRefreshTokenFromCache(this.config.authOptions.clientId, request.account, foci);\n\n // no refresh Token\n if (!refreshToken) {\n throw ClientAuthError.createNoTokensFoundError();\n }\n\n const refreshTokenRequest: CommonRefreshTokenRequest = {\n ...request,\n refreshToken: refreshToken.secret,\n authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER,\n ccsCredential: {\n credential: request.account.homeAccountId,\n type: CcsCredentialType.HOME_ACCOUNT_ID\n }\n };\n\n return this.acquireToken(refreshTokenRequest);\n }\n\n /**\n * Constructs the network message and makes a NW call to the underlying secure token service\n * @param request\n * @param authority\n */\n private async executeTokenRequest(request: CommonRefreshTokenRequest, authority: Authority)\n : Promise<NetworkResponse<ServerAuthorizationTokenResponse>> {\n\n const requestBody = await this.createTokenRequestBody(request);\n const queryParameters = this.createTokenQueryParameters(request);\n const headers: Record<string, string> = this.createTokenRequestHeaders(request.ccsCredential);\n const thumbprint: RequestThumbprint = {\n clientId: this.config.authOptions.clientId,\n authority: authority.canonicalAuthority,\n scopes: request.scopes\n };\n\n const endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParameters);\n return this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint);\n }\n\n /**\n * Creates query string for the /token request\n * @param request \n */\n private createTokenQueryParameters(request: CommonRefreshTokenRequest): string {\n const parameterBuilder = new RequestParameterBuilder();\n\n if (request.tokenQueryParameters) {\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\n }\n\n return parameterBuilder.createQueryString();\n }\n\n /**\n * Helper function to create the token request body\n * @param request\n */\n private async createTokenRequestBody(request: CommonRefreshTokenRequest): Promise<string> {\n const parameterBuilder = new RequestParameterBuilder();\n\n parameterBuilder.addClientId(this.config.authOptions.clientId);\n\n parameterBuilder.addScopes(request.scopes);\n\n parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\n\n parameterBuilder.addClientInfo();\n\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\n\n parameterBuilder.addThrottling();\n \n if (this.serverTelemetryManager) {\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\n }\n\n const correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\n parameterBuilder.addCorrelationId(correlationId);\n\n parameterBuilder.addRefreshToken(request.refreshToken);\n\n if (this.config.clientCredentials.clientSecret) {\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\n }\n\n if (this.config.clientCredentials.clientAssertion) {\n const clientAssertion = this.config.clientCredentials.clientAssertion;\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\n }\n\n if (request.authenticationScheme === AuthenticationScheme.POP) {\n const popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\n\n parameterBuilder.addPopToken(await popTokenGenerator.generateCnf(request));\n }\n\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\n }\n\n if (this.config.systemOptions.preventCorsPreflight && request.ccsCredential) {\n switch (request.ccsCredential.type) {\n case CcsCredentialType.HOME_ACCOUNT_ID:\n try {\n const clientInfo = buildClientInfoFromHomeAccountId(request.ccsCredential.credential);\n parameterBuilder.addCcsOid(clientInfo);\n } catch (e) {\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\n }\n break;\n case CcsCredentialType.UPN:\n parameterBuilder.addCcsUpn(request.ccsCredential.credential);\n break;\n }\n }\n\n return parameterBuilder.createQueryString();\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { BaseClient } from \"./BaseClient\";\nimport { ClientConfiguration } from \"../config/ClientConfiguration\";\nimport { CommonSilentFlowRequest } from \"../request/CommonSilentFlowRequest\";\nimport { AuthenticationResult } from \"../response/AuthenticationResult\";\nimport { ScopeSet } from \"../request/ScopeSet\";\nimport { AuthToken } from \"../account/AuthToken\";\nimport { TimeUtils } from \"../utils/TimeUtils\";\nimport { RefreshTokenClient } from \"./RefreshTokenClient\";\nimport { ClientAuthError, ClientAuthErrorMessage } from \"../error/ClientAuthError\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { ResponseHandler } from \"../response/ResponseHandler\";\nimport { CacheRecord } from \"../cache/entities/CacheRecord\";\nimport { AuthenticationScheme, CacheOutcome } from \"../utils/Constants\";\nimport { StringUtils } from \"../utils/StringUtils\";\n\nexport class SilentFlowClient extends BaseClient {\n\n constructor(configuration: ClientConfiguration) {\n super(configuration);\n }\n\n /**\n * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew\n * the given token and returns the renewed token\n * @param request\n */\n async acquireToken(request: CommonSilentFlowRequest): Promise<AuthenticationResult> {\n try {\n return await this.acquireCachedToken(request);\n } catch (e) {\n if (e instanceof ClientAuthError && e.errorCode === ClientAuthErrorMessage.tokenRefreshRequired.code) {\n const refreshTokenClient = new RefreshTokenClient(this.config);\n return refreshTokenClient.acquireTokenByRefreshToken(request);\n } else {\n throw e;\n }\n }\n }\n\n /**\n * Retrieves token from cache or throws an error if it must be refreshed.\n * @param request\n */\n async acquireCachedToken(request: CommonSilentFlowRequest): Promise<AuthenticationResult> {\n // Cannot renew token if no request object is given.\n if (!request) {\n throw ClientConfigurationError.createEmptyTokenRequestError();\n }\n\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\n if (!request.account) {\n throw ClientAuthError.createNoAccountInSilentRequestError();\n }\n const requestScopes = new ScopeSet(request.scopes || []);\n const environment = request.authority || this.authority.getPreferredCache();\n const authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;\n const cacheRecord = this.cacheManager.readCacheRecord(request.account, this.config.authOptions.clientId, requestScopes, environment, authScheme);\n \n if (request.forceRefresh) {\n // Must refresh due to present force_refresh flag.\n this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.FORCE_REFRESH);\n throw ClientAuthError.createRefreshRequiredError();\n } else if (!cacheRecord.accessToken) {\n // Must refresh due to non-existent access_token.\n this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);\n throw ClientAuthError.createRefreshRequiredError();\n } else if (\n TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||\n TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)\n ) {\n // Must refresh due to expired access_token.\n this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);\n throw ClientAuthError.createRefreshRequiredError();\n } else if (cacheRecord.accessToken.refreshOn && TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {\n // Must refresh due to the refresh_in value.\n this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);\n throw ClientAuthError.createRefreshRequiredError();\n } else if (!StringUtils.isEmptyObj(request.claims)) {\n // Must refresh due to request parameters.\n throw ClientAuthError.createRefreshRequiredError();\n }\n\n if (this.config.serverTelemetryManager) {\n this.config.serverTelemetryManager.incrementCacheHits();\n }\n\n return await this.generateResultFromCacheRecord(cacheRecord, request);\n }\n\n /**\n * Helper function to build response object from the CacheRecord\n * @param cacheRecord\n */\n private async generateResultFromCacheRecord(cacheRecord: CacheRecord, request: CommonSilentFlowRequest): Promise<AuthenticationResult> {\n let idTokenObj: AuthToken | undefined;\n if (cacheRecord.idToken) {\n idTokenObj = new AuthToken(cacheRecord.idToken.secret, this.config.cryptoInterface);\n }\n return await ResponseHandler.generateAuthenticationResult(\n this.cryptoUtils,\n this.authority,\n cacheRecord,\n true,\n request,\n idTokenObj\n );\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { SERVER_TELEM_CONSTANTS } from \"../../utils/Constants\";\n\nexport class ServerTelemetryEntity {\n failedRequests: Array<string|number>;\n errors: string[];\n cacheHits: number;\n\n constructor() {\n this.failedRequests = [];\n this.errors = [];\n this.cacheHits = 0;\n }\n\n /**\n * validates if a given cache entry is \"Telemetry\", parses <key,value>\n * @param key\n * @param entity\n */\n static isServerTelemetryEntity(key: string, entity?: object): boolean {\n\n const validateKey: boolean = key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;\n let validateEntity: boolean = true;\n\n if (entity) {\n validateEntity =\n entity.hasOwnProperty(\"failedRequests\") &&\n entity.hasOwnProperty(\"errors\") &&\n entity.hasOwnProperty(\"cacheHits\");\n }\n\n return validateKey && validateEntity;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { SERVER_TELEM_CONSTANTS, Separators, CacheOutcome, Constants, RegionDiscoverySources, RegionDiscoveryOutcomes } from \"../../utils/Constants\";\nimport { CacheManager } from \"../../cache/CacheManager\";\nimport { AuthError } from \"../../error/AuthError\";\nimport { ServerTelemetryRequest } from \"./ServerTelemetryRequest\";\nimport { ServerTelemetryEntity } from \"../../cache/entities/ServerTelemetryEntity\";\nimport { StringUtils } from \"../../utils/StringUtils\";\nimport { RegionDiscoveryMetadata } from \"../../authority/RegionDiscoveryMetadata\";\n\nexport class ServerTelemetryManager {\n private cacheManager: CacheManager;\n private apiId: number;\n private correlationId: string;\n private telemetryCacheKey: string;\n private wrapperSKU: String;\n private wrapperVer: String;\n private regionUsed: string | undefined;\n private regionSource: RegionDiscoverySources | undefined;\n private regionOutcome: RegionDiscoveryOutcomes | undefined;\n private cacheOutcome: CacheOutcome = CacheOutcome.NO_CACHE_HIT;\n\n constructor(telemetryRequest: ServerTelemetryRequest, cacheManager: CacheManager) {\n this.cacheManager = cacheManager;\n this.apiId = telemetryRequest.apiId;\n this.correlationId = telemetryRequest.correlationId;\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\n\n this.telemetryCacheKey = SERVER_TELEM_CONSTANTS.CACHE_KEY + Separators.CACHE_KEY_SEPARATOR + telemetryRequest.clientId;\n }\n\n /**\n * API to add MSER Telemetry to request\n */\n generateCurrentRequestHeaderValue(): string {\n const request = `${this.apiId}${SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR}${this.cacheOutcome}`;\n const platformFields = [this.wrapperSKU, this.wrapperVer].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\n const regionDiscoveryFields = this.getRegionDiscoveryFields();\n const requestWithRegionDiscoveryFields = [request, regionDiscoveryFields].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\n\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, requestWithRegionDiscoveryFields, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\n }\n\n /**\n * API to add MSER Telemetry for the last failed request\n */\n generateLastRequestHeaderValue(): string {\n const lastRequests = this.getLastRequests();\n\n const maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\n const failedRequests = lastRequests.failedRequests.slice(0, 2*maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\n const errors = lastRequests.errors.slice(0, maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\n const errorCount = lastRequests.errors.length;\n\n // Indicate whether this header contains all data or partial data\n const overflow = maxErrors < errorCount ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\n const platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\n\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, lastRequests.cacheHits, failedRequests, errors, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\n }\n\n /**\n * API to cache token failures for MSER data capture\n * @param error\n */\n cacheFailedRequest(error: AuthError): void {\n const lastRequests = this.getLastRequests();\n if (lastRequests.errors.length >= SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\n // Remove a cached error to make room, first in first out\n lastRequests.failedRequests.shift(); // apiId\n lastRequests.failedRequests.shift(); // correlationId\n lastRequests.errors.shift();\n }\n \n lastRequests.failedRequests.push(this.apiId, this.correlationId);\n\n if (!StringUtils.isEmpty(error.subError)) {\n lastRequests.errors.push(error.subError);\n } else if (!StringUtils.isEmpty(error.errorCode)) {\n lastRequests.errors.push(error.errorCode);\n } else if (!!error && error.toString()) {\n lastRequests.errors.push(error.toString());\n } else {\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\n }\n\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\n\n return;\n }\n\n /**\n * Update server telemetry cache entry by incrementing cache hit counter\n */\n incrementCacheHits(): number {\n const lastRequests = this.getLastRequests();\n lastRequests.cacheHits += 1;\n\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\n return lastRequests.cacheHits;\n }\n\n /**\n * Get the server telemetry entity from cache or initialize a new one\n */\n getLastRequests(): ServerTelemetryEntity {\n const initialValue: ServerTelemetryEntity = new ServerTelemetryEntity();\n const lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey) as ServerTelemetryEntity;\n\n return lastRequests || initialValue;\n }\n\n /**\n * Remove server telemetry cache entry\n */\n clearTelemetryCache(): void {\n const lastRequests = this.getLastRequests();\n const numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\n const errorCount = lastRequests.errors.length;\n if (numErrorsFlushed === errorCount) {\n // All errors were sent on last request, clear Telemetry cache\n this.cacheManager.removeItem(this.telemetryCacheKey);\n } else {\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\n const serverTelemEntity = new ServerTelemetryEntity();\n serverTelemEntity.failedRequests = lastRequests.failedRequests.slice(numErrorsFlushed*2); // failedRequests contains 2 items for each error\n serverTelemEntity.errors = lastRequests.errors.slice(numErrorsFlushed);\n\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\n }\n }\n\n /**\n * Returns the maximum number of errors that can be flushed to the server in the next network request\n * @param serverTelemetryEntity\n */\n static maxErrorsToSend(serverTelemetryEntity: ServerTelemetryEntity): number {\n let i;\n let maxErrors = 0;\n let dataSize = 0;\n const errorCount = serverTelemetryEntity.errors.length;\n for (i = 0; i < errorCount; i++) {\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\n const apiId = serverTelemetryEntity.failedRequests[2*i] || Constants.EMPTY_STRING;\n const correlationId = serverTelemetryEntity.failedRequests[2*i + 1] || Constants.EMPTY_STRING;\n const errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\n\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\n dataSize += apiId.toString().length + correlationId.toString().length + errorCode.length + 3;\n\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\n // Adding this entry to the header would still keep header size below the limit\n maxErrors += 1;\n } else {\n break;\n }\n }\n\n return maxErrors;\n }\n\n /**\n * Get the region discovery fields\n * \n * @returns string\n */\n getRegionDiscoveryFields(): string {\n const regionDiscoveryFields: string[] = [];\n\n regionDiscoveryFields.push(this.regionUsed || \"\");\n regionDiscoveryFields.push(this.regionSource || \"\");\n regionDiscoveryFields.push(this.regionOutcome || \"\");\n\n return regionDiscoveryFields.join(\",\");\n }\n\n /**\n * Update the region discovery metadata\n * \n * @param regionDiscoveryMetadata\n * @returns void\n */\n updateRegionDiscoveryMetadata(regionDiscoveryMetadata: RegionDiscoveryMetadata): void {\n this.regionUsed = regionDiscoveryMetadata.region_used;\n this.regionSource = regionDiscoveryMetadata.region_source;\n this.regionOutcome = regionDiscoveryMetadata.region_outcome;\n }\n\n /**\n * Set cache outcome \n */\n setCacheOutcome(cacheOutcome: CacheOutcome): void {\n this.cacheOutcome = cacheOutcome;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ThrottlingConstants } from \"../../utils/Constants\";\n\nexport class ThrottlingEntity {\n // Unix-time value representing the expiration of the throttle\n throttleTime: number;\n // Information provided by the server\n error?: string;\n errorCodes?: Array<string>;\n errorMessage?: string;\n subError?: string;\n\n /**\n * validates if a given cache entry is \"Throttling\", parses <key,value>\n * @param key\n * @param entity\n */\n static isThrottlingEntity(key: string, entity?: object): boolean {\n \n let validateKey: boolean = false;\n if (key) {\n validateKey = key.indexOf(ThrottlingConstants.THROTTLING_PREFIX) === 0;\n }\n \n let validateEntity: boolean = true;\n if (entity) {\n validateEntity = entity.hasOwnProperty(\"throttleTime\");\n }\n\n return validateKey && validateEntity;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { BrowserConfigurationAuthError } from \"../error/BrowserConfigurationAuthError\";\nimport { BrowserCacheLocation } from \"../utils/BrowserConstants\";\nimport { IWindowStorage } from \"./IWindowStorage\";\n\nexport class BrowserStorage implements IWindowStorage {\n\n private windowStorage: Storage;\n\n constructor(cacheLocation: string) {\n this.validateWindowStorage(cacheLocation);\n this.windowStorage = window[cacheLocation];\n }\n\n private validateWindowStorage(cacheLocation: string): void {\n if (cacheLocation !== BrowserCacheLocation.LocalStorage && cacheLocation !== BrowserCacheLocation.SessionStorage) {\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\n }\n const storageSupported = !!window[cacheLocation];\n if (!storageSupported) {\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\n }\n }\n\n getItem(key: string): string | null {\n return this.windowStorage.getItem(key);\n }\n\n setItem(key: string, value: string): void {\n this.windowStorage.setItem(key, value);\n }\n\n removeItem(key: string): void {\n this.windowStorage.removeItem(key);\n }\n\n getKeys(): string[] {\n return Object.keys(this.windowStorage);\n }\n\n containsKey(key: string): boolean {\n return this.windowStorage.hasOwnProperty(key);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IWindowStorage } from \"./IWindowStorage\";\n\nexport class MemoryStorage implements IWindowStorage {\n\n private cache: Map<string, string>;\n\n constructor() {\n this.cache = new Map<string, string>();\n }\n\n getItem(key: string): string | null {\n return this.cache.get(key) || null;\n }\n\n setItem(key: string, value: string): void {\n this.cache.set(key, value);\n }\n\n removeItem(key: string): void {\n this.cache.delete(key);\n }\n\n getKeys(): string[] {\n const cacheKeys: string[] = [];\n this.cache.forEach((value: string, key: string) => {\n cacheKeys.push(key);\n });\n return cacheKeys;\n }\n\n containsKey(key: string): boolean {\n return this.cache.has(key);\n }\n\n clear() :void {\n this.cache.clear();\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { InteractionType } from \"./BrowserConstants\";\nimport { StringUtils, ClientAuthError, ICrypto, RequestStateObject, ProtocolUtils, ServerAuthorizationCodeResponse, UrlString } from \"@azure/msal-common\";\n\nexport type BrowserStateObject = {\n interactionType: InteractionType\n};\n\nexport class BrowserProtocolUtils {\n\n /**\n * Extracts the BrowserStateObject from the state string.\n * @param browserCrypto \n * @param state \n */\n static extractBrowserRequestState(browserCrypto: ICrypto, state: string): BrowserStateObject | null {\n if (StringUtils.isEmpty(state)) {\n return null;\n }\n\n try {\n const requestStateObj: RequestStateObject = ProtocolUtils.parseRequestState(browserCrypto, state);\n return requestStateObj.libraryState.meta as BrowserStateObject;\n } catch (e) {\n throw ClientAuthError.createInvalidStateError(state, e);\n }\n }\n\n /**\n * Parses properties of server response from url hash\n * @param locationHash Hash from url\n */\n static parseServerResponseFromHash(locationHash: string): ServerAuthorizationCodeResponse {\n if (!locationHash) {\n return {};\n }\n \n const hashUrlString = new UrlString(locationHash);\n return UrlString.getDeserializedHash(hashUrlString.getHash());\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Constants, PersistentCacheKeys, StringUtils, CommonAuthorizationCodeRequest, ICrypto, AccountEntity, IdTokenEntity, AccessTokenEntity, RefreshTokenEntity, AppMetadataEntity, CacheManager, ServerTelemetryEntity, ThrottlingEntity, ProtocolUtils, Logger, AuthorityMetadataEntity, DEFAULT_CRYPTO_IMPLEMENTATION, AccountInfo, CcsCredential, CcsCredentialType } from \"@azure/msal-common\";\nimport { CacheOptions } from \"../config/Configuration\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { BrowserCacheLocation, InteractionType, TemporaryCacheKeys } from \"../utils/BrowserConstants\";\nimport { BrowserStorage } from \"./BrowserStorage\";\nimport { MemoryStorage } from \"./MemoryStorage\";\nimport { IWindowStorage } from \"./IWindowStorage\";\nimport { BrowserProtocolUtils } from \"../utils/BrowserProtocolUtils\";\n\n/**\n * This class implements the cache storage interface for MSAL through browser local or session storage.\n * Cookies are only used if storeAuthStateInCookie is true, and are only used for\n * parameters such as state and nonce, generally.\n */\nexport class BrowserCacheManager extends CacheManager {\n\n // Cache configuration, either set by user or default values.\n private cacheConfig: Required<CacheOptions>;\n // Window storage object (either local or sessionStorage)\n private browserStorage: IWindowStorage;\n // Internal in-memory storage object used for data used by msal that does not need to persist across page loads\n private internalStorage: MemoryStorage;\n // Temporary cache\n private temporaryCacheStorage: IWindowStorage;\n // Client id of application. Used in cache keys to partition cache correctly in the case of multiple instances of MSAL.\n private logger: Logger;\n\n // Cookie life calculation (hours * minutes * seconds * ms)\n private readonly COOKIE_LIFE_MULTIPLIER = 24 * 60 * 60 * 1000;\n\n constructor(clientId: string, cacheConfig: Required<CacheOptions>, cryptoImpl: ICrypto, logger: Logger) {\n super(clientId, cryptoImpl);\n\n this.cacheConfig = cacheConfig;\n this.logger = logger;\n\n this.internalStorage = new MemoryStorage();\n this.browserStorage = this.setupBrowserStorage(this.cacheConfig.cacheLocation);\n this.temporaryCacheStorage = this.setupTemporaryCacheStorage(this.cacheConfig.cacheLocation);\n\n // Migrate any cache entries from older versions of MSAL.\n this.migrateCacheEntries();\n }\n\n /**\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured cacheLocation.\n * @param cacheLocation\n */\n private setupBrowserStorage(cacheLocation: BrowserCacheLocation | string): IWindowStorage {\n switch (cacheLocation) {\n case BrowserCacheLocation.LocalStorage:\n case BrowserCacheLocation.SessionStorage:\n try {\n // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\n return new BrowserStorage(cacheLocation);\n } catch (e) {\n this.logger.verbose(e);\n break;\n }\n case BrowserCacheLocation.MemoryStorage:\n default:\n break;\n }\n this.cacheConfig.cacheLocation = BrowserCacheLocation.MemoryStorage;\n return new MemoryStorage();\n }\n\n /**\n *\n * @param cacheLocation\n */\n private setupTemporaryCacheStorage(cacheLocation: BrowserCacheLocation | string): IWindowStorage {\n switch (cacheLocation) {\n case BrowserCacheLocation.LocalStorage:\n case BrowserCacheLocation.SessionStorage:\n try {\n // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\n return new BrowserStorage(BrowserCacheLocation.SessionStorage);\n } catch (e) {\n this.logger.verbose(e);\n return this.internalStorage;\n }\n case BrowserCacheLocation.MemoryStorage:\n default:\n return this.internalStorage;\n }\n }\n\n /**\n * Migrate all old cache entries to new schema. No rollback supported.\n * @param storeAuthStateInCookie\n */\n private migrateCacheEntries(): void {\n const idTokenKey = `${Constants.CACHE_PREFIX}.${PersistentCacheKeys.ID_TOKEN}`;\n const clientInfoKey = `${Constants.CACHE_PREFIX}.${PersistentCacheKeys.CLIENT_INFO}`;\n const errorKey = `${Constants.CACHE_PREFIX}.${PersistentCacheKeys.ERROR}`;\n const errorDescKey = `${Constants.CACHE_PREFIX}.${PersistentCacheKeys.ERROR_DESC}`;\n\n const idTokenValue = this.browserStorage.getItem(idTokenKey);\n const clientInfoValue = this.browserStorage.getItem(clientInfoKey);\n const errorValue = this.browserStorage.getItem(errorKey);\n const errorDescValue = this.browserStorage.getItem(errorDescKey);\n\n const values = [idTokenValue, clientInfoValue, errorValue, errorDescValue];\n const keysToMigrate = [PersistentCacheKeys.ID_TOKEN, PersistentCacheKeys.CLIENT_INFO, PersistentCacheKeys.ERROR, PersistentCacheKeys.ERROR_DESC];\n\n keysToMigrate.forEach((cacheKey:string, index: number) => this.migrateCacheEntry(cacheKey, values[index]));\n }\n\n /**\n * Utility function to help with migration.\n * @param newKey\n * @param value\n * @param storeAuthStateInCookie\n */\n private migrateCacheEntry(newKey: string, value: string|null): void {\n if (value) {\n this.setTemporaryCache(newKey, value, true);\n }\n }\n\n /**\n * Parses passed value as JSON object, JSON.parse() will throw an error.\n * @param input\n */\n private validateAndParseJson(jsonValue: string): object | null {\n try {\n const parsedJson = JSON.parse(jsonValue);\n /**\n * There are edge cases in which JSON.parse will successfully parse a non-valid JSON object\n * (e.g. JSON.parse will parse an escaped string into an unescaped string), so adding a type check\n * of the parsed value is necessary in order to be certain that the string represents a valid JSON object.\n *\n */\n return (parsedJson && typeof parsedJson === \"object\") ? parsedJson : null;\n } catch (error) {\n return null;\n }\n }\n\n /**\n * fetches the entry from the browser storage based off the key\n * @param key\n */\n getItem(key: string): string | null {\n return this.browserStorage.getItem(key);\n }\n\n /**\n * sets the entry in the browser storage\n * @param key\n * @param value\n */\n setItem(key: string, value: string): void {\n this.browserStorage.setItem(key, value);\n }\n\n /**\n * fetch the account entity from the platform cache\n * @param accountKey\n */\n getAccount(accountKey: string): AccountEntity | null {\n const account = this.getItem(accountKey);\n if (!account) {\n return null;\n }\n\n const parsedAccount = this.validateAndParseJson(account);\n if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {\n return null;\n }\n\n return CacheManager.toObject<AccountEntity>(new AccountEntity(), parsedAccount);\n }\n\n /**\n * set account entity in the platform cache\n * @param key\n * @param value\n */\n setAccount(account: AccountEntity): void {\n this.logger.trace(\"BrowserCacheManager.setAccount called\");\n const key = account.generateAccountKey();\n this.setItem(key, JSON.stringify(account));\n }\n\n /**\n * generates idToken entity from a string\n * @param idTokenKey\n */\n getIdTokenCredential(idTokenKey: string): IdTokenEntity | null {\n const value = this.getItem(idTokenKey);\n if (!value) {\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\n return null;\n }\n\n const parsedIdToken = this.validateAndParseJson(value);\n if (!parsedIdToken || !IdTokenEntity.isIdTokenEntity(parsedIdToken)) {\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\n return null;\n }\n\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: cache hit\");\n return CacheManager.toObject(new IdTokenEntity(), parsedIdToken);\n }\n\n /**\n * set IdToken credential to the platform cache\n * @param idToken\n */\n setIdTokenCredential(idToken: IdTokenEntity): void {\n this.logger.trace(\"BrowserCacheManager.setIdTokenCredential called\");\n const idTokenKey = idToken.generateCredentialKey();\n this.setItem(idTokenKey, JSON.stringify(idToken));\n }\n\n /**\n * generates accessToken entity from a string\n * @param key\n */\n getAccessTokenCredential(accessTokenKey: string): AccessTokenEntity | null {\n const value = this.getItem(accessTokenKey);\n if (!value) {\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\n return null;\n }\n const parsedAccessToken = this.validateAndParseJson(value);\n if (!parsedAccessToken || !AccessTokenEntity.isAccessTokenEntity(parsedAccessToken)) {\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\n return null;\n }\n\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: cache hit\");\n return CacheManager.toObject(new AccessTokenEntity(), parsedAccessToken);\n }\n\n /**\n * set accessToken credential to the platform cache\n * @param accessToken\n */\n setAccessTokenCredential(accessToken: AccessTokenEntity): void {\n this.logger.trace(\"BrowserCacheManager.setAccessTokenCredential called\");\n const accessTokenKey = accessToken.generateCredentialKey();\n this.setItem(accessTokenKey, JSON.stringify(accessToken));\n }\n\n /**\n * generates refreshToken entity from a string\n * @param refreshTokenKey\n */\n getRefreshTokenCredential(refreshTokenKey: string): RefreshTokenEntity | null {\n const value = this.getItem(refreshTokenKey);\n if (!value) {\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\n return null;\n }\n const parsedRefreshToken = this.validateAndParseJson(value);\n if (!parsedRefreshToken || !RefreshTokenEntity.isRefreshTokenEntity(parsedRefreshToken)) {\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\n return null;\n }\n\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: cache hit\");\n return CacheManager.toObject(new RefreshTokenEntity(), parsedRefreshToken);\n }\n\n /**\n * set refreshToken credential to the platform cache\n * @param refreshToken\n */\n setRefreshTokenCredential(refreshToken: RefreshTokenEntity): void {\n this.logger.trace(\"BrowserCacheManager.setRefreshTokenCredential called\");\n const refreshTokenKey = refreshToken.generateCredentialKey();\n this.setItem(refreshTokenKey, JSON.stringify(refreshToken));\n }\n\n /**\n * fetch appMetadata entity from the platform cache\n * @param appMetadataKey\n */\n getAppMetadata(appMetadataKey: string): AppMetadataEntity | null {\n const value = this.getItem(appMetadataKey);\n if (!value) {\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\n return null;\n }\n\n const parsedMetadata = this.validateAndParseJson(value);\n if (!parsedMetadata || !AppMetadataEntity.isAppMetadataEntity(appMetadataKey, parsedMetadata)) {\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\n return null;\n }\n\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: cache hit\");\n return CacheManager.toObject(new AppMetadataEntity(), parsedMetadata);\n }\n\n /**\n * set appMetadata entity to the platform cache\n * @param appMetadata\n */\n setAppMetadata(appMetadata: AppMetadataEntity): void {\n this.logger.trace(\"BrowserCacheManager.setAppMetadata called\");\n const appMetadataKey = appMetadata.generateAppMetadataKey();\n this.setItem(appMetadataKey, JSON.stringify(appMetadata));\n }\n\n /**\n * fetch server telemetry entity from the platform cache\n * @param serverTelemetryKey\n */\n getServerTelemetry(serverTelemetryKey: string): ServerTelemetryEntity | null {\n const value = this.getItem(serverTelemetryKey);\n if (!value) {\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\n return null;\n }\n const parsedMetadata = this.validateAndParseJson(value);\n if (!parsedMetadata || !ServerTelemetryEntity.isServerTelemetryEntity(serverTelemetryKey, parsedMetadata)) {\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\n return null;\n }\n\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: cache hit\");\n return CacheManager.toObject(new ServerTelemetryEntity(), parsedMetadata);\n }\n\n /**\n * set server telemetry entity to the platform cache\n * @param serverTelemetryKey\n * @param serverTelemetry\n */\n setServerTelemetry(serverTelemetryKey: string, serverTelemetry: ServerTelemetryEntity): void {\n this.logger.trace(\"BrowserCacheManager.setServerTelemetry called\");\n this.setItem(serverTelemetryKey, JSON.stringify(serverTelemetry));\n }\n\n /**\n *\n */\n getAuthorityMetadata(key: string) : AuthorityMetadataEntity | null {\n const value = this.internalStorage.getItem(key);\n if (!value) {\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: called, no cache hit\");\n return null;\n }\n const parsedMetadata = this.validateAndParseJson(value);\n if (parsedMetadata && AuthorityMetadataEntity.isAuthorityMetadataEntity(key, parsedMetadata)) {\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: cache hit\");\n return CacheManager.toObject(new AuthorityMetadataEntity(), parsedMetadata);\n }\n return null;\n }\n\n /**\n *\n */\n getAuthorityMetadataKeys(): Array<string> {\n const allKeys = this.internalStorage.getKeys();\n return allKeys.filter((key) => {\n return this.isAuthorityMetadata(key);\n });\n }\n\n /**\n *\n * @param entity\n */\n setAuthorityMetadata(key: string, entity: AuthorityMetadataEntity): void {\n this.logger.trace(\"BrowserCacheManager.setAuthorityMetadata called\");\n this.internalStorage.setItem(key, JSON.stringify(entity));\n }\n\n /**\n * Gets the active account\n */\n getActiveAccount(): AccountInfo | null {\n const activeAccountIdKey = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\n const activeAccountId = this.browserStorage.getItem(activeAccountIdKey);\n if (!activeAccountId) {\n return null;\n }\n return this.getAccountInfoByFilter({localAccountId: activeAccountId})[0] || null;\n }\n\n /**\n * Sets the active account's localAccountId in cache\n * @param account \n */\n setActiveAccount(account: AccountInfo | null): void {\n const activeAccountIdKey = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\n if (account) {\n this.logger.verbose(\"setActiveAccount: Active account set\");\n this.browserStorage.setItem(activeAccountIdKey, account.localAccountId);\n } else {\n this.logger.verbose(\"setActiveAccount: No account passed, active account not set\");\n this.browserStorage.removeItem(activeAccountIdKey);\n }\n }\n\n /**\n * Gets a list of accounts that match all of the filters provided\n * @param account \n */\n getAccountInfoByFilter(accountFilter: Partial<Omit<AccountInfo, \"idTokenClaims\"|\"name\">>): AccountInfo[] {\n const allAccounts = this.getAllAccounts();\n return allAccounts.filter((accountObj) => {\n if (accountFilter.username && accountFilter.username.toLowerCase() !== accountObj.username.toLowerCase()) {\n return false;\n }\n\n if (accountFilter.homeAccountId && accountFilter.homeAccountId !== accountObj.homeAccountId) {\n return false;\n }\n\n if (accountFilter.localAccountId && accountFilter.localAccountId !== accountObj.localAccountId) {\n return false;\n }\n\n if (accountFilter.tenantId && accountFilter.tenantId !== accountObj.tenantId) {\n return false;\n }\n\n if (accountFilter.environment && accountFilter.environment !== accountObj.environment) {\n return false;\n }\n \n return true;\n });\n }\n\n /**\n * fetch throttling entity from the platform cache\n * @param throttlingCacheKey\n */\n getThrottlingCache(throttlingCacheKey: string): ThrottlingEntity | null {\n const value = this.getItem(throttlingCacheKey);\n if (!value) {\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\n return null;\n }\n\n const parsedThrottlingCache = this.validateAndParseJson(value);\n if (!parsedThrottlingCache || !ThrottlingEntity.isThrottlingEntity(throttlingCacheKey, parsedThrottlingCache)) {\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\n return null;\n }\n\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: cache hit\");\n return CacheManager.toObject(new ThrottlingEntity(), parsedThrottlingCache);\n }\n\n /**\n * set throttling entity to the platform cache\n * @param throttlingCacheKey\n * @param throttlingCache\n */\n setThrottlingCache(throttlingCacheKey: string, throttlingCache: ThrottlingEntity): void {\n this.logger.trace(\"BrowserCacheManager.setThrottlingCache called\");\n this.setItem(throttlingCacheKey, JSON.stringify(throttlingCache));\n }\n\n /**\n * Gets cache item with given key.\n * Will retrieve from cookies if storeAuthStateInCookie is set to true.\n * @param key\n */\n getTemporaryCache(cacheKey: string, generateKey?: boolean): string | null {\n const key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\n if (this.cacheConfig.storeAuthStateInCookie) {\n const itemCookie = this.getItemCookie(key);\n if (itemCookie) {\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies\");\n return itemCookie;\n }\n }\n\n const value = this.temporaryCacheStorage.getItem(key);\n if (!value) {\n // If temp cache item not found in session/memory, check local storage for items set by old versions\n if (this.cacheConfig.cacheLocation === BrowserCacheLocation.LocalStorage) {\n const item = this.browserStorage.getItem(key);\n if (item) {\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage\");\n return item;\n }\n }\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: No cache item found in local storage\");\n return null;\n }\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item returned\");\n return value;\n }\n\n /**\n * Sets the cache item with the key and value given.\n * Stores in cookie if storeAuthStateInCookie is set to true.\n * This can cause cookie overflow if used incorrectly.\n * @param key\n * @param value\n */\n setTemporaryCache(cacheKey: string, value: string, generateKey?: boolean): void {\n const key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\n\n this.temporaryCacheStorage.setItem(key, value);\n if (this.cacheConfig.storeAuthStateInCookie) {\n this.logger.trace(\"BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie\");\n this.setItemCookie(key, value);\n }\n }\n\n /**\n * Removes the cache item with the given key.\n * Will also clear the cookie item if storeAuthStateInCookie is set to true.\n * @param key\n */\n removeItem(key: string): boolean {\n this.browserStorage.removeItem(key);\n this.temporaryCacheStorage.removeItem(key);\n if (this.cacheConfig.storeAuthStateInCookie) {\n this.logger.trace(\"BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie\");\n this.clearItemCookie(key);\n }\n return true;\n }\n\n /**\n * Checks whether key is in cache.\n * @param key\n */\n containsKey(key: string): boolean {\n return this.browserStorage.containsKey(key) || this.temporaryCacheStorage.containsKey(key);\n }\n\n /**\n * Gets all keys in window.\n */\n getKeys(): string[] {\n return [\n ...this.browserStorage.getKeys(),\n ...this.temporaryCacheStorage.getKeys()\n ];\n }\n\n /**\n * Clears all cache entries created by MSAL (except tokens).\n */\n clear(): void {\n this.removeAllAccounts();\n this.removeAppMetadata();\n this.getKeys().forEach((cacheKey: string) => {\n // Check if key contains msal prefix; For now, we are clearing all the cache items created by MSAL.js\n if ((this.browserStorage.containsKey(cacheKey) || this.temporaryCacheStorage.containsKey(cacheKey)) && ((cacheKey.indexOf(Constants.CACHE_PREFIX) !== -1) || (cacheKey.indexOf(this.clientId) !== -1))) {\n this.removeItem(cacheKey);\n }\n });\n\n this.internalStorage.clear();\n }\n\n /**\n * Add value to cookies\n * @param cookieName\n * @param cookieValue\n * @param expires\n */\n setItemCookie(cookieName: string, cookieValue: string, expires?: number): void {\n let cookieStr = `${encodeURIComponent(cookieName)}=${encodeURIComponent(cookieValue)};path=/;`;\n if (expires) {\n const expireTime = this.getCookieExpirationTime(expires);\n cookieStr += `expires=${expireTime};`;\n }\n\n if (this.cacheConfig.secureCookies) {\n cookieStr += \"Secure;\";\n }\n \n document.cookie = cookieStr;\n }\n\n /**\n * Get one item by key from cookies\n * @param cookieName\n */\n getItemCookie(cookieName: string): string {\n const name = `${encodeURIComponent(cookieName)}=`;\n const cookieList = document.cookie.split(\";\");\n for (let i: number = 0; i < cookieList.length; i++) {\n let cookie = cookieList[i];\n while (cookie.charAt(0) === \" \") {\n cookie = cookie.substring(1);\n }\n if (cookie.indexOf(name) === 0) {\n return decodeURIComponent(cookie.substring(name.length, cookie.length));\n }\n }\n return \"\";\n }\n\n /**\n * Clear all msal-related cookies currently set in the browser. Should only be used to clear temporary cache items.\n */\n clearMsalCookies(): void {\n const cookiePrefix = `${Constants.CACHE_PREFIX}.${this.clientId}`;\n const cookieList = document.cookie.split(\";\");\n cookieList.forEach((cookie: string): void => {\n while (cookie.charAt(0) === \" \") {\n // eslint-disable-next-line no-param-reassign\n cookie = cookie.substring(1);\n }\n if (cookie.indexOf(cookiePrefix) === 0) {\n const cookieKey = cookie.split(\"=\")[0];\n this.clearItemCookie(cookieKey);\n }\n });\n }\n\n /**\n * Clear an item in the cookies by key\n * @param cookieName\n */\n clearItemCookie(cookieName: string): void {\n this.setItemCookie(cookieName, \"\", -1);\n }\n\n /**\n * Get cookie expiration time\n * @param cookieLifeDays\n */\n getCookieExpirationTime(cookieLifeDays: number): string {\n const today = new Date();\n const expr = new Date(today.getTime() + cookieLifeDays * this.COOKIE_LIFE_MULTIPLIER);\n return expr.toUTCString();\n }\n\n /**\n * Gets the cache object referenced by the browser\n */\n getCache(): object {\n return this.browserStorage;\n }\n\n /**\n * interface compat, we cannot overwrite browser cache; Functionality is supported by individual entities in browser\n */\n setCache(): void {\n // sets nothing\n }\n\n /**\n * Prepend msal.<client-id> to each key; Skip for any JSON object as Key (defined schemas do not need the key appended: AccessToken Keys or the upcoming schema)\n * @param key\n * @param addInstanceId\n */\n generateCacheKey(key: string): string {\n const generatedKey = this.validateAndParseJson(key);\n if (!generatedKey) {\n if (StringUtils.startsWith(key, Constants.CACHE_PREFIX) || StringUtils.startsWith(key, PersistentCacheKeys.ADAL_ID_TOKEN)) {\n return key;\n }\n return `${Constants.CACHE_PREFIX}.${this.clientId}.${key}`;\n }\n\n return JSON.stringify(key);\n }\n\n /**\n * Create authorityKey to cache authority\n * @param state\n */\n generateAuthorityKey(stateString: string): string {\n const {\n libraryState: {\n id: stateId\n }\n } = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString);\n\n return this.generateCacheKey(`${TemporaryCacheKeys.AUTHORITY}.${stateId}`);\n }\n\n /**\n * Create Nonce key to cache nonce\n * @param state\n */\n generateNonceKey(stateString: string): string {\n const {\n libraryState: {\n id: stateId\n }\n } = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString);\n\n return this.generateCacheKey(`${TemporaryCacheKeys.NONCE_IDTOKEN}.${stateId}`);\n }\n\n /**\n * Creates full cache key for the request state\n * @param stateString State string for the request\n */\n generateStateKey(stateString: string): string {\n // Use the library state id to key temp storage for uniqueness for multiple concurrent requests\n const {\n libraryState: {\n id: stateId\n }\n } = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString);\n return this.generateCacheKey(`${TemporaryCacheKeys.REQUEST_STATE}.${stateId}`);\n } \n\n /**\n * Gets the cached authority based on the cached state. Returns empty if no cached state found.\n */\n getCachedAuthority(cachedState: string): string | null {\n const stateCacheKey = this.generateStateKey(cachedState);\n const state = this.getTemporaryCache(stateCacheKey);\n if (!state) {\n return null;\n }\n\n const authorityCacheKey = this.generateAuthorityKey(state);\n return this.getTemporaryCache(authorityCacheKey);\n }\n\n /**\n * Updates account, authority, and state in cache\n * @param serverAuthenticationRequest\n * @param account\n */\n updateCacheEntries(state: string, nonce: string, authorityInstance: string, loginHint: string, account: AccountInfo|null): void {\n this.logger.trace(\"BrowserCacheManager.updateCacheEntries called\");\n // Cache the request state\n const stateCacheKey = this.generateStateKey(state);\n this.setTemporaryCache(stateCacheKey, state, false);\n\n // Cache the nonce\n const nonceCacheKey = this.generateNonceKey(state);\n this.setTemporaryCache(nonceCacheKey, nonce, false);\n\n // Cache authorityKey\n const authorityCacheKey = this.generateAuthorityKey(state);\n this.setTemporaryCache(authorityCacheKey, authorityInstance, false);\n\n if (account) {\n const ccsCredential: CcsCredential = {\n credential: account.homeAccountId,\n type: CcsCredentialType.HOME_ACCOUNT_ID\n };\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\n } else if (!StringUtils.isEmpty(loginHint)) {\n const ccsCredential: CcsCredential = {\n credential: loginHint,\n type: CcsCredentialType.UPN\n };\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\n }\n }\n\n /**\n * Reset all temporary cache items\n * @param state\n */\n resetRequestCache(state: string): void {\n this.logger.trace(\"BrowserCacheManager.resetRequestCache called\");\n // check state and remove associated cache items\n if (!StringUtils.isEmpty(state)) {\n this.getKeys().forEach(key => {\n if (key.indexOf(state) !== -1) {\n this.removeItem(key);\n }\n });\n }\n\n // delete generic interactive request parameters\n if (state) {\n this.removeItem(this.generateStateKey(state));\n this.removeItem(this.generateNonceKey(state));\n this.removeItem(this.generateAuthorityKey(state));\n }\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.ORIGIN_URI));\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.URL_HASH));\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CCS_CREDENTIAL));\n }\n\n /**\n * Removes temporary cache for the provided state\n * @param stateString \n */\n cleanRequestByState(stateString: string): void {\n this.logger.trace(\"BrowserCacheManager.cleanRequestByState called\");\n // Interaction is completed - remove interaction status.\n if (stateString) {\n const stateKey = this.generateStateKey(stateString);\n const cachedState = this.temporaryCacheStorage.getItem(stateKey);\n this.logger.infoPii(`BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: ${cachedState}`);\n this.resetRequestCache(cachedState || \"\");\n }\n this.clearMsalCookies();\n }\n\n /**\n * Looks in temporary cache for any state values with the provided interactionType and removes all temporary cache items for that state\n * Used in scenarios where temp cache needs to be cleaned but state is not known, such as clicking browser back button.\n * @param interactionType \n */\n cleanRequestByInteractionType(interactionType: InteractionType): void {\n this.logger.trace(\"BrowserCacheManager.cleanRequestByInteractionType called\");\n // Loop through all keys to find state key\n this.getKeys().forEach((key) => {\n // If this key is not the state key, move on\n if (key.indexOf(TemporaryCacheKeys.REQUEST_STATE) === -1) {\n return;\n }\n \n // Retrieve state value, return if not a valid value\n const stateValue = this.temporaryCacheStorage.getItem(key);\n if (!stateValue) {\n return;\n }\n // Extract state and ensure it matches given InteractionType, then clean request cache\n const parsedState = BrowserProtocolUtils.extractBrowserRequestState(this.cryptoImpl, stateValue);\n if (parsedState && parsedState.interactionType === interactionType) {\n this.logger.infoPii(`BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: ${stateValue}`);\n this.resetRequestCache(stateValue);\n }\n });\n this.clearMsalCookies();\n }\n\n cacheCodeRequest(authCodeRequest: CommonAuthorizationCodeRequest, browserCrypto: ICrypto): void {\n this.logger.trace(\"BrowserCacheManager.cacheCodeRequest called\");\n\n const encodedValue = browserCrypto.base64Encode(JSON.stringify(authCodeRequest));\n this.setTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, encodedValue, true);\n }\n\n /**\n * Gets the token exchange parameters from the cache. Throws an error if nothing is found.\n */\n getCachedRequest(state: string, browserCrypto: ICrypto): CommonAuthorizationCodeRequest {\n this.logger.trace(\"BrowserCacheManager.getCachedRequest called\");\n // Get token request from cache and parse as TokenExchangeParameters.\n const encodedTokenRequest = this.getTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, true);\n if (!encodedTokenRequest) {\n throw BrowserAuthError.createNoTokenRequestCacheError();\n }\n\n const parsedRequest = this.validateAndParseJson(browserCrypto.base64Decode(encodedTokenRequest)) as CommonAuthorizationCodeRequest;\n if (!parsedRequest) {\n throw BrowserAuthError.createUnableToParseTokenRequestCacheError();\n }\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\n\n // Get cached authority and use if no authority is cached with request.\n if (StringUtils.isEmpty(parsedRequest.authority)) {\n const authorityCacheKey: string = this.generateAuthorityKey(state);\n const cachedAuthority = this.getTemporaryCache(authorityCacheKey);\n if (!cachedAuthority) {\n throw BrowserAuthError.createNoCachedAuthorityError();\n }\n parsedRequest.authority = cachedAuthority;\n }\n\n return parsedRequest;\n }\n}\n\nexport const DEFAULT_BROWSER_CACHE_MANAGER = (clientId: string, logger: Logger): BrowserCacheManager => {\n const cacheOptions = {\n cacheLocation: BrowserCacheLocation.MemoryStorage,\n storeAuthStateInCookie: false,\n secureCookies: false\n };\n return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger);\n};\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"../error/AuthError\";\nimport { NetworkResponse } from \"./NetworkManager\";\n\n/**\n * Options allowed by network request APIs.\n */\nexport type NetworkRequestOptions = {\n headers?: Record<string, string>,\n body?: string;\n};\n\n/**\n * Client network interface to send backend requests.\n * @interface\n */\nexport interface INetworkModule {\n\n /**\n * Interface function for async network \"GET\" requests. Based on the Fetch standard: https://fetch.spec.whatwg.org/\n * @param url\n * @param requestParams\n * @param enableCaching\n */\n sendGetRequestAsync<T>(url: string, options?: NetworkRequestOptions, cancellationToken?: number): Promise<NetworkResponse<T>>;\n\n /**\n * Interface function for async network \"POST\" requests. Based on the Fetch standard: https://fetch.spec.whatwg.org/\n * @param url\n * @param requestParams\n * @param enableCaching\n */\n sendPostRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>>;\n}\n\nexport const StubbedNetworkModule: INetworkModule = {\n sendGetRequestAsync: () => {\n const notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented for the Network interface.\";\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\n },\n sendPostRequestAsync: () => {\n const notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented for the Network interface.\";\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INetworkModule, NetworkRequestOptions, NetworkResponse } from \"@azure/msal-common\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { HTTP_REQUEST_TYPE } from \"../utils/BrowserConstants\";\n\n/**\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\n */\nexport class FetchClient implements INetworkModule {\n\n /**\n * Fetch Client for REST endpoints - Get request\n * @param url \n * @param headers \n * @param body \n */\n async sendGetRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n let response;\n try {\n response = await fetch(url, {\n method: HTTP_REQUEST_TYPE.GET,\n headers: this.getFetchHeaders(options)\n });\n } catch (e) {\n if (window.navigator.onLine) {\n throw BrowserAuthError.createGetRequestFailedError(e, url);\n } else {\n throw BrowserAuthError.createNoNetworkConnectivityError();\n }\n }\n\n try {\n return {\n headers: this.getHeaderDict(response.headers),\n body: await response.json() as T,\n status: response.status\n };\n } catch (e) {\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\n }\n }\n\n /**\n * Fetch Client for REST endpoints - Post request\n * @param url \n * @param headers \n * @param body \n */\n async sendPostRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n const reqBody = (options && options.body) || \"\";\n\n let response;\n try {\n response = await fetch(url, {\n method: HTTP_REQUEST_TYPE.POST,\n headers: this.getFetchHeaders(options),\n body: reqBody\n });\n } catch (e) {\n if (window.navigator.onLine) {\n throw BrowserAuthError.createPostRequestFailedError(e, url);\n } else {\n throw BrowserAuthError.createNoNetworkConnectivityError();\n }\n }\n\n try {\n return {\n headers: this.getHeaderDict(response.headers),\n body: await response.json() as T,\n status: response.status\n };\n } catch (e) {\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\n }\n }\n\n /**\n * Get Fetch API Headers object from string map\n * @param inputHeaders \n */\n private getFetchHeaders(options?: NetworkRequestOptions): Headers {\n const headers = new Headers();\n if (!(options && options.headers)) {\n return headers;\n }\n const optionsHeaders = options.headers;\n Object.keys(optionsHeaders).forEach((key) => {\n headers.append(key, optionsHeaders[key]);\n });\n return headers;\n }\n\n private getHeaderDict(headers: Headers): Record<string, string> {\n const headerDict: Record<string, string> = {};\n headers.forEach((value: string, key: string) => {\n headerDict[key] = value;\n });\n return headerDict;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INetworkModule, NetworkRequestOptions, NetworkResponse } from \"@azure/msal-common\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { HTTP_REQUEST_TYPE } from \"../utils/BrowserConstants\";\n\n/**\n * This client implements the XMLHttpRequest class to send GET and POST requests.\n */\nexport class XhrClient implements INetworkModule {\n\n /**\n * XhrClient for REST endpoints - Get request\n * @param url \n * @param headers \n * @param body \n */\n async sendGetRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n return this.sendRequestAsync(url, HTTP_REQUEST_TYPE.GET, options);\n }\n\n /**\n * XhrClient for REST endpoints - Post request\n * @param url \n * @param headers \n * @param body \n */\n async sendPostRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n return this.sendRequestAsync(url, HTTP_REQUEST_TYPE.POST, options);\n }\n\n /**\n * Helper for XhrClient requests.\n * @param url \n * @param method \n * @param options \n */\n private sendRequestAsync<T>(url: string, method: HTTP_REQUEST_TYPE, options?: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n return new Promise<NetworkResponse<T>>((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.open(method, url, /* async: */ true);\n this.setXhrHeaders(xhr, options);\n xhr.onload = (): void => {\n if (xhr.status < 200 || xhr.status >= 300) {\n if (method === HTTP_REQUEST_TYPE.POST) {\n reject(BrowserAuthError.createPostRequestFailedError(`Failed with status ${xhr.status}`, url));\n } else {\n reject(BrowserAuthError.createGetRequestFailedError(`Failed with status ${xhr.status}`, url));\n }\n }\n try {\n const jsonResponse = JSON.parse(xhr.responseText) as T;\n const networkResponse: NetworkResponse<T> = {\n headers: this.getHeaderDict(xhr),\n body: jsonResponse,\n status: xhr.status\n };\n resolve(networkResponse);\n } catch (e) {\n reject(BrowserAuthError.createFailedToParseNetworkResponseError(url));\n }\n };\n\n xhr.onerror = (): void => {\n if (window.navigator.onLine) {\n if (method === HTTP_REQUEST_TYPE.POST) {\n reject(BrowserAuthError.createPostRequestFailedError(`Failed with status ${xhr.status}`, url));\n } else {\n reject(BrowserAuthError.createGetRequestFailedError(`Failed with status ${xhr.status}`, url));\n }\n } else {\n reject(BrowserAuthError.createNoNetworkConnectivityError());\n }\n };\n\n if (method === HTTP_REQUEST_TYPE.POST && options && options.body) {\n xhr.send(options.body);\n } else if (method === HTTP_REQUEST_TYPE.GET) {\n xhr.send();\n } else {\n throw BrowserAuthError.createHttpMethodNotImplementedError(method);\n }\n });\n }\n\n /**\n * Helper to set XHR headers for request.\n * @param xhr \n * @param options \n */\n private setXhrHeaders(xhr: XMLHttpRequest, options?: NetworkRequestOptions): void {\n if (options && options.headers) {\n const headers = options.headers;\n Object.keys(headers).forEach((key: string) => {\n xhr.setRequestHeader(key, headers[key]);\n });\n }\n }\n\n /**\n * Gets a string map of the headers received in the response.\n * \n * Algorithm comes from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders\n * @param xhr \n */\n private getHeaderDict(xhr: XMLHttpRequest): Record<string, string> {\n const headerString = xhr.getAllResponseHeaders();\n const headerArr = headerString.trim().split(/[\\r\\n]+/);\n const headerDict: Record<string, string> = {};\n headerArr.forEach((value: string) => {\n const parts = value.split(\": \");\n const headerName = parts.shift();\n const headerVal = parts.join(\": \");\n if (headerName && headerVal) {\n headerDict[headerName] = headerVal;\n }\n });\n\n return headerDict;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Constants, INetworkModule, UrlString } from \"@azure/msal-common\";\nimport { FetchClient } from \"../network/FetchClient\";\nimport { XhrClient } from \"../network/XhrClient\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { InteractionType, BrowserConstants } from \"./BrowserConstants\";\n\n/**\n * Utility class for browser specific functions\n */\nexport class BrowserUtils {\n\n // #region Window Navigation and URL management\n\n /**\n * Clears hash from window url.\n */\n static clearHash(contentWindow: Window): void {\n // Office.js sets history.replaceState to null\n contentWindow.location.hash = Constants.EMPTY_STRING;\n if (typeof contentWindow.history.replaceState === \"function\") {\n // Full removes \"#\" from url\n contentWindow.history.replaceState(null, Constants.EMPTY_STRING, `${contentWindow.location.origin}${contentWindow.location.pathname}${contentWindow.location.search}`);\n }\n }\n\n /**\n * Replaces current hash with hash from provided url\n */\n static replaceHash(url: string): void {\n const urlParts = url.split(\"#\");\n urlParts.shift(); // Remove part before the hash\n window.location.hash = urlParts.length > 0 ? urlParts.join(\"#\") : \"\";\n }\n\n /**\n * Returns boolean of whether the current window is in an iframe or not.\n */\n static isInIframe(): boolean {\n return window.parent !== window;\n }\n\n /**\n * Returns boolean of whether or not the current window is a popup opened by msal\n */\n static isInPopup(): boolean {\n return typeof window !== \"undefined\" && !!window.opener && \n window.opener !== window && \n typeof window.name === \"string\" && \n window.name.indexOf(`${BrowserConstants.POPUP_NAME_PREFIX}.`) === 0;\n }\n\n // #endregion\n\n /**\n * Returns current window URL as redirect uri\n */\n static getCurrentUri(): string {\n return window.location.href.split(\"?\")[0].split(\"#\")[0];\n }\n\n /**\n * Gets the homepage url for the current window location.\n */\n static getHomepage(): string {\n const currentUrl = new UrlString(window.location.href);\n const urlComponents = currentUrl.getUrlComponents();\n return `${urlComponents.Protocol}//${urlComponents.HostNameAndPort}/`;\n }\n\n /**\n * Returns best compatible network client object. \n */\n static getBrowserNetworkClient(): INetworkModule {\n if (window.fetch && window.Headers) {\n return new FetchClient();\n } else {\n return new XhrClient();\n }\n }\n\n /**\n * Throws error if we have completed an auth and are \n * attempting another auth request inside an iframe.\n */\n static blockReloadInHiddenIframes(): void {\n const isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);\n // return an error if called from the hidden iframe created by the msal js silent calls\n if (isResponseHash && BrowserUtils.isInIframe()) {\n throw BrowserAuthError.createBlockReloadInHiddenIframeError();\n }\n }\n\n /**\n * Block redirect operations in iframes unless explicitly allowed\n * @param interactionType Interaction type for the request\n * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe\n */\n static blockRedirectInIframe(interactionType: InteractionType, allowRedirectInIframe: boolean): void {\n const isIframedApp = BrowserUtils.isInIframe();\n if (interactionType === InteractionType.Redirect && isIframedApp && !allowRedirectInIframe) {\n // If we are not in top frame, we shouldn't redirect. This is also handled by the service.\n throw BrowserAuthError.createRedirectInIframeError(isIframedApp);\n }\n }\n\n /**\n * Block redirectUri loaded in popup from calling AcquireToken APIs\n */\n static blockAcquireTokenInPopups(): void {\n // Popups opened by msal popup APIs are given a name that starts with \"msal.\"\n if (BrowserUtils.isInPopup()) {\n throw BrowserAuthError.createBlockAcquireTokenInPopupsError();\n }\n }\n\n /**\n * Throws error if token requests are made in non-browser environment\n * @param isBrowserEnvironment Flag indicating if environment is a browser.\n */\n static blockNonBrowserEnvironment(isBrowserEnvironment: boolean): void {\n if (!isBrowserEnvironment) {\n throw BrowserAuthError.createNonBrowserEnvironmentError();\n }\n }\n\n /**\n * Returns boolean of whether current browser is an Internet Explorer or Edge browser.\n */\n static detectIEOrEdge(): boolean {\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf(\"MSIE \");\n const msie11 = ua.indexOf(\"Trident/\");\n const msedge = ua.indexOf(\"Edge/\");\n const isIE = msie > 0 || msie11 > 0;\n const isEdge = msedge > 0;\n return isIE || isEdge;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INavigationClient } from \"./INavigationClient\";\nimport { NavigationOptions } from \"./NavigationOptions\";\n\nexport class NavigationClient implements INavigationClient {\n /**\n * Navigates to other pages within the same web application\n * @param url \n * @param options \n */\n navigateInternal(url: string, options: NavigationOptions): Promise<boolean>{\n return NavigationClient.defaultNavigateWindow(url, options);\n }\n\n /**\n * Navigates to other pages outside the web application i.e. the Identity Provider\n * @param url \n * @param options \n */\n navigateExternal(url: string, options: NavigationOptions): Promise<boolean> {\n return NavigationClient.defaultNavigateWindow(url, options);\n }\n\n /**\n * Default navigation implementation invoked by the internal and external functions\n * @param url \n * @param options \n */\n private static defaultNavigateWindow(url: string, options: NavigationOptions): Promise<boolean> {\n if (options.noHistory) {\n window.location.replace(url);\n } else {\n window.location.assign(url);\n }\n\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true);\n }, options.timeout);\n });\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { SystemOptions, LoggerOptions, INetworkModule, DEFAULT_SYSTEM_OPTIONS, Constants, ProtocolMode, LogLevel, StubbedNetworkModule } from \"@azure/msal-common\";\nimport { BrowserUtils } from \"../utils/BrowserUtils\";\nimport { BrowserCacheLocation } from \"../utils/BrowserConstants\";\nimport { INavigationClient } from \"../navigation/INavigationClient\";\nimport { NavigationClient } from \"../navigation/NavigationClient\";\n\n// Default timeout for popup windows and iframes in milliseconds\nexport const DEFAULT_POPUP_TIMEOUT_MS = 60000;\nexport const DEFAULT_IFRAME_TIMEOUT_MS = 6000;\nexport const DEFAULT_REDIRECT_TIMEOUT_MS = 30000;\n\n/**\n * Use this to configure the auth options in the Configuration object\n *\n * - clientId - Client ID of your app registered with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview in Microsoft Identity Platform\n * - authority - You can configure a specific authority, defaults to \" \" or \"https://login.microsoftonline.com/common\"\n * - knownAuthorities - An array of URIs that are known to be valid. Used in B2C scenarios.\n * - cloudDiscoveryMetadata - A string containing the cloud discovery response. Used in AAD scenarios.\n * - redirectUri - The redirect URI where authentication responses can be received by your application. It must exactly match one of the redirect URIs registered in the Azure portal.\n * - postLogoutRedirectUri - The redirect URI where the window navigates after a successful logout.\n * - navigateToLoginRequestUrl - Boolean indicating whether to navigate to the original request URL after the auth server navigates to the redirect URL.\n * - clientCapabilities - Array of capabilities which will be added to the claims.access_token.xms_cc request property on every network request.\n * - protocolMode - Enum that represents the protocol that msal follows. Used for configuring proper endpoints.\n */\nexport type BrowserAuthOptions = {\n clientId: string;\n authority?: string;\n knownAuthorities?: Array<string>;\n cloudDiscoveryMetadata?: string;\n authorityMetadata?: string;\n redirectUri?: string;\n postLogoutRedirectUri?: string | null;\n navigateToLoginRequestUrl?: boolean;\n clientCapabilities?: Array<string>;\n protocolMode?: ProtocolMode;\n};\n\n/**\n * Use this to configure the below cache configuration options:\n *\n * - cacheLocation - Used to specify the cacheLocation user wants to set. Valid values are \"localStorage\" and \"sessionStorage\"\n * - storeAuthStateInCookie - If set, MSAL stores the auth request state required for validation of the auth flows in the browser cookies. By default this flag is set to false.\n * - secureCookies - If set, MSAL sets the \"Secure\" flag on cookies so they can only be sent over HTTPS. By default this flag is set to false.\n */\nexport type CacheOptions = {\n cacheLocation?: BrowserCacheLocation | string;\n storeAuthStateInCookie?: boolean;\n secureCookies?: boolean;\n};\n\n/**\n * Library Specific Options\n *\n * - tokenRenewalOffsetSeconds - Sets the window of offset needed to renew the token before expiry\n * - loggerOptions - Used to initialize the Logger object (See ClientConfiguration.ts)\n * - networkClient - Network interface implementation\n * - windowHashTimeout - Sets the timeout for waiting for a response hash in a popup. Will take precedence over loadFrameTimeout if both are set.\n * - iframeHashTimeout - Sets the timeout for waiting for a response hash in an iframe. Will take precedence over loadFrameTimeout if both are set.\n * - loadFrameTimeout - Sets the timeout for waiting for a response hash in an iframe or popup\n * - navigateFrameWait - Maximum time the library should wait for a frame to load\n * - redirectNavigationTimeout - Time to wait for redirection to occur before resolving promise\n * - asyncPopups - Sets whether popups are opened asynchronously. By default, this flag is set to false. When set to false, blank popups are opened before anything else happens. When set to true, popups are opened when making the network request.\n * - allowRedirectInIframe - Flag to enable redirect opertaions when the app is rendered in an iframe (to support scenarios such as embedded B2C login).\n */\nexport type BrowserSystemOptions = SystemOptions & {\n loggerOptions?: LoggerOptions;\n networkClient?: INetworkModule;\n navigationClient?: INavigationClient;\n windowHashTimeout?: number;\n iframeHashTimeout?: number;\n loadFrameTimeout?: number;\n navigateFrameWait?: number;\n redirectNavigationTimeout?: number;\n asyncPopups?: boolean;\n allowRedirectInIframe?: boolean;\n};\n\n/**\n * Use the configuration object to configure MSAL and initialize the UserAgentApplication.\n *\n * This object allows you to configure important elements of MSAL functionality:\n * - auth: this is where you configure auth elements like clientID, authority used for authenticating against the Microsoft Identity Platform\n * - cache: this is where you configure cache location and whether to store cache in cookies\n * - system: this is where you can configure the network client, logger, token renewal offset\n */\nexport type Configuration = {\n auth: BrowserAuthOptions,\n cache?: CacheOptions,\n system?: BrowserSystemOptions\n};\n\nexport type BrowserConfiguration = {\n auth: Required<BrowserAuthOptions>,\n cache: Required<CacheOptions>,\n system: Required<BrowserSystemOptions>\n};\n\n/**\n * MSAL function that sets the default options when not explicitly configured from app developer\n *\n * @param auth\n * @param cache\n * @param system\n *\n * @returns Configuration object\n */\nexport function buildConfiguration({ auth: userInputAuth, cache: userInputCache, system: userInputSystem }: Configuration, isBrowserEnvironment: boolean): BrowserConfiguration {\n\n // Default auth options for browser\n const DEFAULT_AUTH_OPTIONS: Required<BrowserAuthOptions> = {\n clientId: \"\",\n authority: `${Constants.DEFAULT_AUTHORITY}`,\n knownAuthorities: [],\n cloudDiscoveryMetadata: \"\",\n authorityMetadata: \"\",\n redirectUri: \"\",\n postLogoutRedirectUri: \"\",\n navigateToLoginRequestUrl: true,\n clientCapabilities: [],\n protocolMode: ProtocolMode.AAD\n };\n\n // Default cache options for browser\n const DEFAULT_CACHE_OPTIONS: Required<CacheOptions> = {\n cacheLocation: BrowserCacheLocation.SessionStorage,\n storeAuthStateInCookie: false,\n secureCookies: false\n };\n\n // Default logger options for browser\n const DEFAULT_LOGGER_OPTIONS: LoggerOptions = {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n loggerCallback: (): void => {},\n logLevel: LogLevel.Info,\n piiLoggingEnabled: false\n };\n\n // Default system options for browser\n const DEFAULT_BROWSER_SYSTEM_OPTIONS: Required<BrowserSystemOptions> = {\n ...DEFAULT_SYSTEM_OPTIONS,\n loggerOptions: DEFAULT_LOGGER_OPTIONS,\n networkClient: isBrowserEnvironment ? BrowserUtils.getBrowserNetworkClient() : StubbedNetworkModule,\n navigationClient: new NavigationClient(),\n loadFrameTimeout: 0,\n // If loadFrameTimeout is provided, use that as default.\n windowHashTimeout: (userInputSystem && userInputSystem.loadFrameTimeout) || DEFAULT_POPUP_TIMEOUT_MS,\n iframeHashTimeout: (userInputSystem && userInputSystem.loadFrameTimeout) || DEFAULT_IFRAME_TIMEOUT_MS,\n navigateFrameWait: isBrowserEnvironment && BrowserUtils.detectIEOrEdge() ? 500 : 0,\n redirectNavigationTimeout: DEFAULT_REDIRECT_TIMEOUT_MS,\n asyncPopups: false,\n allowRedirectInIframe: false\n };\n\n const overlayedConfig: BrowserConfiguration = {\n auth: { ...DEFAULT_AUTH_OPTIONS, ...userInputAuth },\n cache: { ...DEFAULT_CACHE_OPTIONS, ...userInputCache },\n system: { ...DEFAULT_BROWSER_SYSTEM_OPTIONS, ...userInputSystem }\n };\n return overlayedConfig;\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { StringUtils, CommonAuthorizationCodeRequest, AuthenticationResult, AuthorizationCodeClient, AuthorityFactory, Authority, INetworkModule, ClientAuthError, CcsCredential, Logger } from \"@azure/msal-common\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { TemporaryCacheKeys } from \"../utils/BrowserConstants\";\n\nexport type InteractionParams = {};\n\n/**\n * Abstract class which defines operations for a browser interaction handling class.\n */\nexport abstract class InteractionHandler {\n\n protected authModule: AuthorizationCodeClient;\n protected browserStorage: BrowserCacheManager;\n protected authCodeRequest: CommonAuthorizationCodeRequest;\n protected browserRequestLogger: Logger;\n\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger) {\n this.authModule = authCodeModule;\n this.browserStorage = storageImpl;\n this.authCodeRequest = authCodeRequest;\n this.browserRequestLogger = browserRequestLogger;\n }\n\n /**\n * Function to enable user interaction.\n * @param requestUrl\n */\n abstract initiateAuthRequest(requestUrl: string, params: InteractionParams): Window | Promise<HTMLIFrameElement> | Promise<void>;\n\n /**\n * Function to handle response parameters from hash.\n * @param locationHash\n */\n async handleCodeResponse(locationHash: string, state: string, authority: Authority, networkModule: INetworkModule): Promise<AuthenticationResult> {\n this.browserRequestLogger.verbose(\"InteractionHandler.handleCodeResponse called\");\n // Check that location hash isn't empty.\n if (StringUtils.isEmpty(locationHash)) {\n throw BrowserAuthError.createEmptyHashError(locationHash);\n }\n\n // Handle code response.\n const stateKey = this.browserStorage.generateStateKey(state);\n const requestState = this.browserStorage.getTemporaryCache(stateKey);\n if (!requestState) {\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\n }\n const authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\n\n // Get cached items\n const nonceKey = this.browserStorage.generateNonceKey(requestState);\n const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\n\n // Assign code to request\n this.authCodeRequest.code = authCodeResponse.code;\n\n // Check for new cloud instance\n if (authCodeResponse.cloud_instance_host_name) {\n await this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule);\n }\n\n authCodeResponse.nonce = cachedNonce || undefined;\n authCodeResponse.state = requestState;\n\n // Add CCS parameters if available\n if (authCodeResponse.client_info) {\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\n } else {\n const cachedCcsCred = this.checkCcsCredentials();\n if (cachedCcsCred) {\n this.authCodeRequest.ccsCredential = cachedCcsCred;\n }\n }\n\n // Acquire token with retrieved code.\n const tokenResponse = await this.authModule.acquireToken(this.authCodeRequest, authCodeResponse);\n this.browserStorage.cleanRequestByState(state);\n return tokenResponse;\n }\n\n /**\n * Updates authority based on cloudInstanceHostname\n * @param cloudInstanceHostname \n * @param authority \n * @param networkModule \n */\n protected async updateTokenEndpointAuthority(cloudInstanceHostname: string, authority: Authority, networkModule: INetworkModule): Promise<void> {\n const cloudInstanceAuthorityUri = `https://${cloudInstanceHostname}/${authority.tenant}/`;\n const cloudInstanceAuthority = await AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options);\n this.authModule.updateAuthority(cloudInstanceAuthority);\n }\n\n /**\n * Looks up ccs creds in the cache\n */\n protected checkCcsCredentials(): CcsCredential | null {\n // Look up ccs credential in temp cache\n const cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);\n if (cachedCcsCred) {\n try {\n return JSON.parse(cachedCcsCred) as CcsCredential;\n } catch (e) {\n this.authModule.logger.error(\"Cache credential could not be parsed\");\n this.authModule.logger.errorPii(`Cache credential could not be parsed: ${cachedCcsCred}`);\n }\n }\n return null;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthorizationCodeClient, StringUtils, CommonAuthorizationCodeRequest, ICrypto, AuthenticationResult, ThrottlingUtils, Authority, INetworkModule, ClientAuthError, Logger } from \"@azure/msal-common\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { ApiId, BrowserConstants, TemporaryCacheKeys } from \"../utils/BrowserConstants\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { InteractionHandler, InteractionParams } from \"./InteractionHandler\";\nimport { INavigationClient } from \"../navigation/INavigationClient\";\nimport { NavigationOptions } from \"../navigation/NavigationOptions\";\n\nexport type RedirectParams = InteractionParams & {\n navigationClient: INavigationClient;\n redirectTimeout: number;\n redirectStartPage: string;\n onRedirectNavigate?: (url: string) => void | boolean;\n};\n\nexport class RedirectHandler extends InteractionHandler {\n\n private browserCrypto: ICrypto;\n\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger, browserCrypto: ICrypto) {\n super(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger);\n this.browserCrypto = browserCrypto;\n }\n\n /**\n * Redirects window to given URL.\n * @param urlNavigate\n */\n async initiateAuthRequest(requestUrl: string, params: RedirectParams): Promise<void> {\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest called\");\n // Navigate if valid URL\n if (!StringUtils.isEmpty(requestUrl)) {\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\n if (params.redirectStartPage) {\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page\");\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\n }\n\n // Set interaction status in the library.\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\n this.browserRequestLogger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${requestUrl}`);\n const navigationOptions: NavigationOptions = {\n apiId: ApiId.acquireTokenRedirect,\n timeout: params.redirectTimeout,\n noHistory: false\n };\n \n // If onRedirectNavigate is implemented, invoke it and provide requestUrl\n if (typeof params.onRedirectNavigate === \"function\") {\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\n const navigate = params.onRedirectNavigate(requestUrl);\n\n // Returning false from onRedirectNavigate will stop navigation\n if (navigate !== false) {\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\n await params.navigationClient.navigateExternal(requestUrl, navigationOptions);\n return;\n } else {\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\n return;\n }\n } else {\n // Navigate window to request URL\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\n await params.navigationClient.navigateExternal(requestUrl, navigationOptions);\n return;\n }\n } else {\n // Throw error if request URL is empty.\n this.browserRequestLogger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\n throw BrowserAuthError.createEmptyNavigationUriError();\n }\n }\n\n /**\n * Handle authorization code response in the window.\n * @param hash\n */\n async handleCodeResponse(locationHash: string, state: string, authority: Authority, networkModule: INetworkModule, clientId?: string): Promise<AuthenticationResult> {\n this.browserRequestLogger.verbose(\"RedirectHandler.handleCodeResponse called\");\n\n // Check that location hash isn't empty.\n if (StringUtils.isEmpty(locationHash)) {\n throw BrowserAuthError.createEmptyHashError(locationHash);\n }\n\n // Interaction is completed - remove interaction status.\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\n\n // Handle code response.\n const stateKey = this.browserStorage.generateStateKey(state);\n const requestState = this.browserStorage.getTemporaryCache(stateKey);\n if (!requestState) {\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\n }\n const authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\n\n // Get cached items\n const nonceKey = this.browserStorage.generateNonceKey(requestState);\n const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\n\n // Assign code to request\n this.authCodeRequest.code = authCodeResponse.code;\n\n // Check for new cloud instance\n if (authCodeResponse.cloud_instance_host_name) {\n await this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule);\n }\n\n authCodeResponse.nonce = cachedNonce || undefined;\n authCodeResponse.state = requestState;\n\n // Add CCS parameters if available\n if (authCodeResponse.client_info) {\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\n } else {\n const cachedCcsCred = this.checkCcsCredentials();\n if (cachedCcsCred) {\n this.authCodeRequest.ccsCredential = cachedCcsCred;\n }\n }\n\n // Remove throttle if it exists\n if (clientId) {\n ThrottlingUtils.removeThrottle(this.browserStorage, clientId, this.authCodeRequest.authority, this.authCodeRequest.scopes);\n }\n\n // Acquire token with retrieved code.\n const tokenResponse = await this.authModule.acquireToken(this.authCodeRequest, authCodeResponse);\n\n this.browserStorage.cleanRequestByState(state);\n return tokenResponse;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { CommonEndSessionRequest, Constants, Logger, StringUtils } from \"@azure/msal-common\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { AuthorizationUrlRequest } from \"../request/AuthorizationUrlRequest\";\nimport { BrowserConstants, InteractionType, TemporaryCacheKeys } from \"./BrowserConstants\";\n\nexport class PopupUtils {\n private browserStorage: BrowserCacheManager;\n private logger: Logger;\n private currentWindow: Window|undefined;\n\n constructor(storageImpl: BrowserCacheManager, logger: Logger) {\n this.browserStorage = storageImpl;\n this.logger = logger;\n\n // Properly sets this reference for the unload event.\n this.unloadWindow = this.unloadWindow.bind(this);\n }\n\n /**\n * @hidden\n *\n * Configures popup window for login.\n *\n * @param urlNavigate\n * @param title\n * @param popUpWidth\n * @param popUpHeight\n * @ignore\n * @hidden\n */\n openPopup(urlNavigate: string, popupName: string, popup?: Window|null): Window {\n try {\n let popupWindow;\n // Popup window passed in, setting url to navigate to\n if (popup) {\n popupWindow = popup;\n this.logger.verbosePii(`Navigating popup window to: ${urlNavigate}`);\n popupWindow.location.assign(urlNavigate);\n } else if (typeof popup === \"undefined\") {\n // Popup will be undefined if it was not passed in\n this.logger.verbosePii(`Opening popup window to: ${urlNavigate}`);\n popupWindow = PopupUtils.openSizedPopup(urlNavigate, popupName);\n }\n\n // Popup will be null if popups are blocked\n if (!popupWindow) {\n throw BrowserAuthError.createEmptyWindowCreatedError();\n }\n if (popupWindow.focus) {\n popupWindow.focus();\n }\n this.currentWindow = popupWindow;\n window.addEventListener(\"beforeunload\", this.unloadWindow);\n\n return popupWindow;\n } catch (e) {\n this.logger.error(\"error opening popup \" + e.message);\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\n throw BrowserAuthError.createPopupWindowError(e.toString());\n }\n }\n\n static openSizedPopup(urlNavigate: string, popupName: string): Window|null {\n /**\n * adding winLeft and winTop to account for dual monitor\n * using screenLeft and screenTop for IE8 and earlier\n */\n const winLeft = window.screenLeft ? window.screenLeft : window.screenX;\n const winTop = window.screenTop ? window.screenTop : window.screenY;\n /**\n * window.innerWidth displays browser window\"s height and width excluding toolbars\n * using document.documentElement.clientWidth for IE8 and earlier\n */\n const width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n const height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n const left = Math.max(0, ((width / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft);\n const top = Math.max(0, ((height / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop);\n\n return window.open(urlNavigate, popupName, `width=${BrowserConstants.POPUP_WIDTH}, height=${BrowserConstants.POPUP_HEIGHT}, top=${top}, left=${left}, scrollbars=yes`);\n }\n\n /**\n * Event callback to unload main window.\n */\n unloadWindow(e: Event): void {\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup);\n if (this.currentWindow) {\n this.currentWindow.close();\n }\n // Guarantees browser unload will happen, so no other errors will be thrown.\n e.preventDefault();\n }\n\n /**\n * Closes popup, removes any state vars created during popup calls.\n * @param popupWindow\n */\n cleanPopup(popupWindow?: Window): void {\n if (popupWindow) {\n // Close window.\n popupWindow.close();\n }\n // Remove window unload function\n window.removeEventListener(\"beforeunload\", this.unloadWindow);\n\n // Interaction is completed - remove interaction status.\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\n }\n\n /**\n * Monitors a window until it loads a url with the same origin.\n * @param popupWindow - window that is being monitored\n */\n monitorPopupForSameOrigin(popupWindow: Window): Promise<void> {\n return new Promise((resolve, reject) => {\n const intervalId = setInterval(() => {\n if (popupWindow.closed) {\n // Window is closed\n this.cleanPopup();\n clearInterval(intervalId);\n reject(BrowserAuthError.createUserCancelledError());\n return;\n }\n\n let href: string = Constants.EMPTY_STRING;\n try {\n /*\n * Will throw if cross origin,\n * which should be caught and ignored\n * since we need the interval to keep running while on STS UI.\n */\n href = popupWindow.location.href;\n } catch (e) {}\n\n // Don't process blank pages or cross domain\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\n return;\n }\n\n clearInterval(intervalId);\n resolve();\n }, BrowserConstants.POLL_INTERVAL_MS);\n });\n }\n\n /**\n * Generates the name for the popup based on the client id and request\n * @param clientId\n * @param request\n */\n static generatePopupName(clientId: string, request: AuthorizationUrlRequest): string {\n return `${BrowserConstants.POPUP_NAME_PREFIX}.${clientId}.${request.scopes.join(\"-\")}.${request.authority}.${request.correlationId}`;\n }\n\n /**\n * Generates the name for the popup based on the client id and request for logouts\n * @param clientId \n * @param request \n */\n static generateLogoutPopupName(clientId: string, request: CommonEndSessionRequest): string {\n const homeAccountId = request.account && request.account.homeAccountId;\n return `${BrowserConstants.POPUP_NAME_PREFIX}.${clientId}.${homeAccountId}.${request.correlationId}`;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { UrlString, StringUtils, CommonAuthorizationCodeRequest, AuthorizationCodeClient, Logger } from \"@azure/msal-common\";\nimport { InteractionHandler, InteractionParams } from \"./InteractionHandler\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { BrowserConstants, TemporaryCacheKeys } from \"../utils/BrowserConstants\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { PopupUtils } from \"../utils/PopupUtils\";\nimport { BrowserUtils } from \"../utils/BrowserUtils\";\n\nexport type PopupParams = InteractionParams & {\n popup?: Window|null;\n popupName: string\n};\n\n/**\n * This class implements the interaction handler base class for browsers. It is written specifically for handling\n * popup window scenarios. It includes functions for monitoring the popup window for a hash.\n */\nexport class PopupHandler extends InteractionHandler {\n private popupUtils: PopupUtils;\n\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger) {\n super(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger);\n\n // Properly sets this reference for the unload event.\n this.popupUtils = new PopupUtils(storageImpl, browserRequestLogger);\n }\n\n /**\n * Opens a popup window with given request Url.\n * @param requestUrl\n */\n initiateAuthRequest(requestUrl: string, params: PopupParams): Window {\n // Check that request url is not empty.\n if (!StringUtils.isEmpty(requestUrl)) {\n // Set interaction status in the library.\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\n this.browserRequestLogger.infoPii(`Navigate to: ${requestUrl}`);\n // Open the popup window to requestUrl.\n return this.popupUtils.openPopup(requestUrl, params.popupName, params.popup);\n } else {\n // Throw error if request URL is empty.\n this.browserRequestLogger.error(\"Navigate url is empty\");\n throw BrowserAuthError.createEmptyNavigationUriError();\n }\n }\n\n /**\n * Monitors a window until it loads a url with a known hash, or hits a specified timeout.\n * @param popupWindow - window that is being monitored\n * @param timeout - milliseconds until timeout\n */\n monitorPopupForHash(popupWindow: Window): Promise<string> {\n return this.popupUtils.monitorPopupForSameOrigin(popupWindow).then(() => {\n const contentHash = popupWindow.location.hash;\n BrowserUtils.clearHash(popupWindow);\n this.popupUtils.cleanPopup(popupWindow);\n\n if (!contentHash) {\n throw BrowserAuthError.createEmptyHashError(popupWindow.location.href);\n }\n\n if (UrlString.hashContainsKnownProperties(contentHash)) {\n return contentHash;\n } else {\n throw BrowserAuthError.createHashDoesNotContainKnownPropertiesError();\n }\n }\n );\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { UrlString, StringUtils, CommonAuthorizationCodeRequest, AuthorizationCodeClient, Constants, Logger } from \"@azure/msal-common\";\nimport { InteractionHandler } from \"./InteractionHandler\";\nimport { BrowserConstants } from \"../utils/BrowserConstants\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { DEFAULT_IFRAME_TIMEOUT_MS } from \"../config/Configuration\";\n\nexport class SilentHandler extends InteractionHandler {\n\n private navigateFrameWait: number;\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger, navigateFrameWait: number) {\n super(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger);\n this.navigateFrameWait = navigateFrameWait;\n }\n\n /**\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\n * @param urlNavigate\n * @param userRequestScopes\n */\n async initiateAuthRequest(requestUrl: string): Promise<HTMLIFrameElement> {\n if (StringUtils.isEmpty(requestUrl)) {\n // Throw error if request URL is empty.\n this.browserRequestLogger.info(\"Navigate url is empty\");\n throw BrowserAuthError.createEmptyNavigationUriError();\n }\n\n return this.navigateFrameWait ? await this.loadFrame(requestUrl) : this.loadFrameSync(requestUrl);\n }\n\n /**\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\n * @param iframe\n * @param timeout\n */\n monitorIframeForHash(iframe: HTMLIFrameElement, timeout: number): Promise<string> {\n return new Promise((resolve, reject) => {\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\n this.browserRequestLogger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${timeout}ms) than the default (${DEFAULT_IFRAME_TIMEOUT_MS}ms). This may result in timeouts.`);\n }\n\n /*\n * Polling for iframes can be purely timing based,\n * since we don't need to account for interaction.\n */\n const nowMark = window.performance.now();\n const timeoutMark = nowMark + timeout;\n\n const intervalId = setInterval(() => {\n if (window.performance.now() > timeoutMark) {\n this.removeHiddenIframe(iframe);\n clearInterval(intervalId);\n reject(BrowserAuthError.createMonitorIframeTimeoutError());\n return;\n }\n\n let href: string = Constants.EMPTY_STRING;\n const contentWindow = iframe.contentWindow;\n try {\n /*\n * Will throw if cross origin,\n * which should be caught and ignored\n * since we need the interval to keep running while on STS UI.\n */\n href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;\n } catch (e) {}\n\n if (StringUtils.isEmpty(href)) {\n return;\n }\n\n const contentHash = contentWindow ? contentWindow.location.hash: Constants.EMPTY_STRING;\n if (UrlString.hashContainsKnownProperties(contentHash)) {\n // Success case\n this.removeHiddenIframe(iframe);\n clearInterval(intervalId);\n resolve(contentHash);\n return;\n }\n }, BrowserConstants.POLL_INTERVAL_MS);\n });\n }\n\n /**\n * @hidden\n * Loads iframe with authorization endpoint URL\n * @ignore\n */\n private loadFrame(urlNavigate: string): Promise<HTMLIFrameElement> {\n /*\n * This trick overcomes iframe navigation in IE\n * IE does not load the page consistently in iframe\n */\n\n return new Promise((resolve, reject) => {\n const frameHandle = this.createHiddenIframe();\n\n setTimeout(() => {\n if (!frameHandle) {\n reject(\"Unable to load iframe\");\n return;\n }\n\n frameHandle.src = urlNavigate;\n\n resolve(frameHandle);\n }, this.navigateFrameWait);\n });\n }\n\n /**\n * @hidden\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\n * @param urlNavigate\n * @param frameName\n * @param logger\n */\n private loadFrameSync(urlNavigate: string): HTMLIFrameElement{\n const frameHandle = this.createHiddenIframe();\n\n frameHandle.src = urlNavigate;\n\n return frameHandle;\n }\n\n /**\n * @hidden\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\n * @ignore\n */\n private createHiddenIframe(): HTMLIFrameElement {\n const authFrame = document.createElement(\"iframe\");\n\n authFrame.style.visibility = \"hidden\";\n authFrame.style.position = \"absolute\";\n authFrame.style.width = authFrame.style.height = \"0\";\n authFrame.style.border = \"0\";\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\n document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\n\n return authFrame;\n }\n\n /**\n * @hidden\n * Removes a hidden iframe from the page.\n * @ignore\n */\n private removeHiddenIframe(iframe: HTMLIFrameElement): void {\n if (document.body === iframe.parentNode) {\n document.body.removeChild(iframe);\n }\n }\n}\n","/* eslint-disable header/header */\nexport const name = \"@azure/msal-browser\";\nexport const version = \"2.16.1\";\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ICrypto, Logger } from \"@azure/msal-common\";\nimport { InteractionType } from \"../utils/BrowserConstants\";\nimport { EventCallbackFunction, EventError, EventMessage, EventPayload } from \"./EventMessage\";\nimport { EventType } from \"./EventType\";\n\nexport class EventHandler {\n // Callback for subscribing to events\n private eventCallbacks: Map<string, EventCallbackFunction>;\n private logger: Logger;\n private browserCrypto: ICrypto;\n\n constructor(logger: Logger, browserCrypto: ICrypto) {\n this.eventCallbacks = new Map();\n this.logger = logger;\n this.browserCrypto = browserCrypto;\n }\n\n /**\n * Adds event callbacks to array\n * @param callback\n */\n addEventCallback(callback: EventCallbackFunction): string | null {\n if (typeof window !== \"undefined\") {\n const callbackId = this.browserCrypto.createNewGuid();\n this.eventCallbacks.set(callbackId, callback);\n this.logger.verbose(`Event callback registered with id: ${callbackId}`);\n \n return callbackId;\n }\n \n return null;\n }\n\n /**\n * Removes callback with provided id from callback array\n * @param callbackId\n */\n removeEventCallback(callbackId: string): void {\n this.eventCallbacks.delete(callbackId);\n this.logger.verbose(`Event callback ${callbackId} removed.`);\n }\n\n /**\n * Emits events by calling callback with event message\n * @param eventType\n * @param interactionType\n * @param payload\n * @param error\n */\n emitEvent(eventType: EventType, interactionType?: InteractionType, payload?: EventPayload, error?: EventError): void {\n if (typeof window !== \"undefined\") {\n const message: EventMessage = {\n eventType: eventType,\n interactionType: interactionType || null,\n payload: payload || null,\n error: error || null,\n timestamp: Date.now()\n };\n\n this.logger.info(`Emitting event: ${eventType}`);\n\n this.eventCallbacks.forEach((callback: EventCallbackFunction, callbackId: string) => {\n this.logger.verbose(`Emitting event to callback ${callbackId}: ${eventType}`);\n callback.apply(null, [message]);\n });\n }\n }\n\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { CryptoOps } from \"../crypto/CryptoOps\";\nimport { Authority, StringUtils, UrlString, ServerAuthorizationCodeResponse, CommonAuthorizationCodeRequest, AuthorizationCodeClient, PromptValue, ServerError, InteractionRequiredAuthError, AccountInfo, AuthorityFactory, ServerTelemetryManager, SilentFlowClient, ClientConfiguration, BaseAuthRequest, ServerTelemetryRequest, PersistentCacheKeys, IdToken, ProtocolUtils, ResponseMode, Constants, INetworkModule, AuthenticationResult, Logger, ThrottlingUtils, RefreshTokenClient, AuthenticationScheme, CommonSilentFlowRequest, CommonEndSessionRequest, AccountEntity, ICrypto, DEFAULT_CRYPTO_IMPLEMENTATION, AuthorityOptions } from \"@azure/msal-common\";\nimport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER } from \"../cache/BrowserCacheManager\";\nimport { BrowserConfiguration, buildConfiguration, Configuration } from \"../config/Configuration\";\nimport { TemporaryCacheKeys, InteractionType, ApiId, BrowserConstants, BrowserCacheLocation, WrapperSKU } from \"../utils/BrowserConstants\";\nimport { BrowserUtils } from \"../utils/BrowserUtils\";\nimport { BrowserStateObject, BrowserProtocolUtils } from \"../utils/BrowserProtocolUtils\";\nimport { RedirectHandler } from \"../interaction_handler/RedirectHandler\";\nimport { PopupHandler, PopupParams } from \"../interaction_handler/PopupHandler\";\nimport { SilentHandler } from \"../interaction_handler/SilentHandler\";\nimport { RedirectRequest } from \"../request/RedirectRequest\";\nimport { PopupRequest } from \"../request/PopupRequest\";\nimport { AuthorizationUrlRequest } from \"../request/AuthorizationUrlRequest\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { SsoSilentRequest } from \"../request/SsoSilentRequest\";\nimport { version, name } from \"../packageMetadata\";\nimport { EventCallbackFunction } from \"../event/EventMessage\";\nimport { EventType } from \"../event/EventType\";\nimport { EndSessionRequest } from \"../request/EndSessionRequest\";\nimport { BrowserConfigurationAuthError } from \"../error/BrowserConfigurationAuthError\";\nimport { PopupUtils } from \"../utils/PopupUtils\";\nimport { EndSessionPopupRequest } from \"../request/EndSessionPopupRequest\";\nimport { INavigationClient } from \"../navigation/INavigationClient\";\nimport { NavigationOptions } from \"../navigation/NavigationOptions\";\nimport { EventHandler } from \"../event/EventHandler\";\n\nexport abstract class ClientApplication {\n\n // Crypto interface implementation\n protected readonly browserCrypto: ICrypto;\n\n // Storage interface implementation\n protected readonly browserStorage: BrowserCacheManager;\n\n // Network interface implementation\n protected readonly networkClient: INetworkModule;\n\n // Navigation interface implementation\n protected navigationClient: INavigationClient;\n\n // Input configuration by developer/user\n protected config: BrowserConfiguration;\n\n // Logger\n protected logger: Logger;\n\n // Flag to indicate if in browser environment\n protected isBrowserEnvironment: boolean;\n\n // Set the SKU and Version for wrapper library if applicable\n private wrapperSKU: string | undefined;\n private wrapperVer: string | undefined;\n\n protected eventHandler: EventHandler;\n\n // Redirect Response Object\n private redirectResponse: Map<string, Promise<AuthenticationResult | null>>;\n\n /**\n * @constructor\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\n *\n * Important attributes in the Configuration object for auth are:\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\n * - authority: the authority URL for your application.\n * - redirect_uri: the uri of your application registered in the portal.\n *\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\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).\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\n *\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\n * Full B2C functionality will be available in this library in future versions.\n *\n * @param configuration Object for the MSAL PublicClientApplication instance\n */\n constructor(configuration: Configuration) {\n /*\n * If loaded in an environment where window is not available,\n * set internal flag to false so that further requests fail.\n * This is to support server-side rendering environments.\n */\n this.isBrowserEnvironment = typeof window !== \"undefined\";\n // Set the configuration.\n this.config = buildConfiguration(configuration, this.isBrowserEnvironment);\n\n // Initialize logger\n this.logger = new Logger(this.config.system.loggerOptions, name, version);\n \n // Initialize the network module class.\n this.networkClient = this.config.system.networkClient;\n \n // Initialize the navigation client class.\n this.navigationClient = this.config.system.navigationClient;\n \n // Initialize redirectResponse Map\n this.redirectResponse = new Map();\n \n // Initialize the crypto class.\n this.browserCrypto = this.isBrowserEnvironment ? new CryptoOps() : DEFAULT_CRYPTO_IMPLEMENTATION;\n\n this.eventHandler = new EventHandler(this.logger, this.browserCrypto);\n\n // Initialize the browser storage class.\n this.browserStorage = this.isBrowserEnvironment ? \n new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger) : \n DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger);\n }\n\n // #region Redirect Flow\n\n /**\n * Event handler function which allows users to fire events after the PublicClientApplication object\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\n * auth flows.\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.\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\n */\n async handleRedirectPromise(hash?: string): Promise<AuthenticationResult | null> {\n this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_START, InteractionType.Redirect);\n this.logger.verbose(\"handleRedirectPromise called\");\n const loggedInAccounts = this.getAllAccounts();\n if (this.isBrowserEnvironment) {\n /**\n * Store the promise on the PublicClientApplication instance if this is the first invocation of handleRedirectPromise,\n * otherwise return the promise from the first invocation. Prevents race conditions when handleRedirectPromise is called\n * several times concurrently.\n */\n const redirectResponseKey = hash || Constants.EMPTY_STRING;\n let response = this.redirectResponse.get(redirectResponseKey);\n if (typeof response === \"undefined\") {\n this.logger.verbose(\"handleRedirectPromise has been called for the first time, storing the promise\");\n response = this.handleRedirectResponse(hash)\n .then((result: AuthenticationResult | null) => {\n if (result) {\n // Emit login event if number of accounts change\n const isLoggingIn = loggedInAccounts.length < this.getAllAccounts().length;\n if (isLoggingIn) {\n this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Redirect, result);\n this.logger.verbose(\"handleRedirectResponse returned result, login success\");\n } else {\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Redirect, result);\n this.logger.verbose(\"handleRedirectResponse returned result, acquire token success\");\n }\n }\n this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\n\n return result;\n })\n .catch((e) => {\n // Emit login event if there is an account\n if (loggedInAccounts.length > 0) {\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\n } else {\n this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\n }\n this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\n\n throw e;\n });\n this.redirectResponse.set(redirectResponseKey, response);\n } else {\n this.logger.verbose(\"handleRedirectPromise has been called previously, returning the result from the first call\");\n }\n \n return response;\n }\n this.logger.verbose(\"handleRedirectPromise returns null, not browser environment\");\n return null;\n }\n\n /**\n * Checks if navigateToLoginRequestUrl is set, and:\n * - if true, performs logic to cache and navigate\n * - if false, handles hash string and parses response\n * @param hash\n */\n private async handleRedirectResponse(hash?: string): Promise<AuthenticationResult | null> {\n if (!this.interactionInProgress()) {\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\n return null;\n }\n\n const responseHash = this.getRedirectResponseHash(hash || window.location.hash);\n if (!responseHash) {\n // Not a recognized server response hash or hash not associated with a redirect request\n this.logger.info(\"handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache.\");\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\n return null;\n }\n\n let state: string;\n try {\n state = this.validateAndExtractStateFromHash(responseHash, InteractionType.Redirect);\n BrowserUtils.clearHash(window);\n this.logger.verbose(\"State extracted from hash\");\n } catch (e) {\n this.logger.info(`handleRedirectPromise was unable to extract state due to: ${e}`);\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\n return null;\n }\n\n // If navigateToLoginRequestUrl is true, get the url where the redirect request was initiated\n const loginRequestUrl = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, true) || \"\";\n const loginRequestUrlNormalized = UrlString.removeHashFromUrl(loginRequestUrl);\n const currentUrlNormalized = UrlString.removeHashFromUrl(window.location.href);\n\n if (loginRequestUrlNormalized === currentUrlNormalized && this.config.auth.navigateToLoginRequestUrl) {\n // We are on the page we need to navigate to - handle hash\n this.logger.verbose(\"Current page is loginRequestUrl, handling hash\");\n const handleHashResult = await this.handleHash(responseHash, state);\n\n if (loginRequestUrl.indexOf(\"#\") > -1) {\n // Replace current hash with non-msal hash, if present\n BrowserUtils.replaceHash(loginRequestUrl);\n }\n\n return handleHashResult;\n } else if (!this.config.auth.navigateToLoginRequestUrl) {\n this.logger.verbose(\"NavigateToLoginRequestUrl set to false, handling hash\");\n return this.handleHash(responseHash, state);\n } else if (!BrowserUtils.isInIframe()) {\n /*\n * Returned from authority using redirect - need to perform navigation before processing response\n * Cache the hash to be retrieved after the next redirect\n */\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.URL_HASH, responseHash, true);\n const navigationOptions: NavigationOptions = {\n apiId: ApiId.handleRedirectPromise,\n timeout: this.config.system.redirectNavigationTimeout,\n noHistory: true\n };\n\n /**\n * Default behavior is to redirect to the start page and not process the hash now. \n * The start page is expected to also call handleRedirectPromise which will process the hash in one of the checks above.\n */ \n let processHashOnRedirect: boolean = true;\n if (!loginRequestUrl || loginRequestUrl === \"null\") {\n // Redirect to home page if login request url is null (real null or the string null)\n const homepage = BrowserUtils.getHomepage();\n // Cache the homepage under ORIGIN_URI to ensure cached hash is processed on homepage\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, homepage, true);\n this.logger.warning(\"Unable to get valid login request url from cache, redirecting to home page\");\n processHashOnRedirect = await this.navigationClient.navigateInternal(homepage, navigationOptions);\n } else {\n // Navigate to page that initiated the redirect request\n this.logger.verbose(`Navigating to loginRequestUrl: ${loginRequestUrl}`);\n processHashOnRedirect = await this.navigationClient.navigateInternal(loginRequestUrl, navigationOptions);\n }\n\n // If navigateInternal implementation returns false, handle the hash now\n if (!processHashOnRedirect) {\n return this.handleHash(responseHash, state);\n }\n }\n\n return null;\n }\n\n /**\n * Gets the response hash for a redirect request\n * Returns null if interactionType in the state value is not \"redirect\" or the hash does not contain known properties\n * @param hash\n */\n private getRedirectResponseHash(hash: string): string | null {\n this.logger.verbose(\"getRedirectResponseHash called\");\n // Get current location hash from window or cache.\n const isResponseHash: boolean = UrlString.hashContainsKnownProperties(hash);\n const cachedHash = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.URL_HASH, true);\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.URL_HASH));\n\n if (isResponseHash) {\n this.logger.verbose(\"Hash contains known properties, returning response hash\");\n return hash;\n }\n\n this.logger.verbose(\"Hash does not contain known properties, returning cached hash\");\n return cachedHash;\n }\n\n /**\n * @param hash\n * @param interactionType\n */\n private validateAndExtractStateFromHash(hash: string, interactionType: InteractionType, requestCorrelationId?: string): string {\n this.logger.verbose(\"validateAndExtractStateFromHash called\", requestCorrelationId);\n // Deserialize hash fragment response parameters.\n const serverParams: ServerAuthorizationCodeResponse = UrlString.getDeserializedHash(hash);\n if (!serverParams.state) {\n throw BrowserAuthError.createHashDoesNotContainStateError();\n }\n\n const platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\n if (!platformStateObj) {\n throw BrowserAuthError.createUnableToParseStateError();\n }\n\n if (platformStateObj.interactionType !== interactionType) {\n throw BrowserAuthError.createStateInteractionTypeMismatchError();\n }\n\n this.logger.verbose(\"Returning state from hash\", requestCorrelationId);\n return serverParams.state;\n }\n\n /**\n * Checks if hash exists and handles in window.\n * @param hash\n * @param state\n */\n private async handleHash(hash: string, state: string): Promise<AuthenticationResult> {\n const cachedRequest = this.browserStorage.getCachedRequest(state, this.browserCrypto);\n const browserRequestLogger = this.logger.clone(name, version, cachedRequest.correlationId);\n browserRequestLogger.verbose(\"handleHash called, retrieved cached request\");\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.handleRedirectPromise, cachedRequest.correlationId);\n\n try {\n // Hash contains known properties - handle and return in callback\n const currentAuthority = this.browserStorage.getCachedAuthority(state);\n if (!currentAuthority) {\n throw BrowserAuthError.createNoCachedAuthorityError();\n }\n\n const authClient = await this.createAuthCodeClient(serverTelemetryManager, currentAuthority, cachedRequest.correlationId);\n browserRequestLogger.verbose(\"Auth code client created\");\n const interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, browserRequestLogger, this.browserCrypto);\n return await interactionHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient, this.config.auth.clientId);\n } catch (e) {\n serverTelemetryManager.cacheFailedRequest(e);\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\n throw e;\n }\n }\n\n /**\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\n * the page, so any code that follows this function will not execute.\n *\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\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\n *\n * @param request\n */\n async acquireTokenRedirect(request: RedirectRequest): Promise<void> {\n // Preflight request\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\n this.logger.verbose(\"acquireTokenRedirect called\");\n\n // If logged in, emit acquire token events\n const isLoggedIn = this.getAllAccounts().length > 0;\n if (isLoggedIn) {\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Redirect, request);\n } else {\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Redirect, request);\n }\n\n const validRequest: AuthorizationUrlRequest = this.preflightInteractiveRequest(request, InteractionType.Redirect);\n const browserRequestLogger = this.logger.clone(name, version, validRequest.correlationId);\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect, validRequest.correlationId);\n\n try {\n // Create auth code request and generate PKCE params\n const authCodeRequest: CommonAuthorizationCodeRequest = await this.initializeAuthorizationCodeRequest(validRequest);\n\n // Initialize the client\n const authClient: AuthorizationCodeClient = await this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.correlationId);\n browserRequestLogger.verbose(\"Auth code client created\");\n\n // Create redirect interaction handler.\n const interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, browserRequestLogger, this.browserCrypto);\n\n // Create acquire token url.\n const navigateUrl = await authClient.getAuthCodeUrl(validRequest);\n\n const redirectStartPage = this.getRedirectStartPage(request.redirectStartPage);\n browserRequestLogger.verbosePii(`Redirect start page: ${redirectStartPage}`);\n\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.\n return interactionHandler.initiateAuthRequest(navigateUrl, {\n navigationClient: this.navigationClient,\n redirectTimeout: this.config.system.redirectNavigationTimeout,\n redirectStartPage: redirectStartPage,\n onRedirectNavigate: request.onRedirectNavigate\n });\n } catch (e) {\n // If logged in, emit acquire token events\n if (isLoggedIn) {\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\n } else {\n this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\n }\n\n serverTelemetryManager.cacheFailedRequest(e);\n this.browserStorage.cleanRequestByState(validRequest.state);\n throw e;\n }\n }\n\n // #endregion\n\n // #region Popup Flow\n\n /**\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\n *\n * @param request\n *\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n acquireTokenPopup(request: PopupRequest): Promise<AuthenticationResult> {\n let validRequest: AuthorizationUrlRequest;\n try {\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\n this.logger.verbose(\"acquireTokenPopup called\", request.correlationId);\n validRequest = this.preflightInteractiveRequest(request, InteractionType.Popup);\n } catch (e) {\n // Since this function is syncronous we need to reject\n return Promise.reject(e);\n }\n\n const popupName = PopupUtils.generatePopupName(this.config.auth.clientId, validRequest);\n\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\n if (this.config.system.asyncPopups) {\n this.logger.verbose(\"asyncPopups set to true, acquiring token\", validRequest.correlationId);\n return this.acquireTokenPopupAsync(validRequest, popupName);\n } else {\n // asyncPopups flag is set to false. Opens popup before acquiring token.\n this.logger.verbose(\"asyncPopup set to false, opening popup before acquiring token\", validRequest.correlationId);\n const popup = PopupUtils.openSizedPopup(\"about:blank\", popupName);\n return this.acquireTokenPopupAsync(validRequest, popupName, popup);\n }\n }\n\n /**\n * Helper which obtains an access_token for your API via opening a popup window in the user's browser\n * @param validRequest\n * @param popupName\n * @param popup\n *\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n private async acquireTokenPopupAsync(validRequest: AuthorizationUrlRequest, popupName: string, popup?: Window|null): Promise<AuthenticationResult> {\n this.logger.verbose(\"acquireTokenPopupAsync called\", validRequest.correlationId);\n // If logged in, emit acquire token events\n const loggedInAccounts = this.getAllAccounts();\n if (loggedInAccounts.length > 0) {\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Popup, validRequest);\n } else {\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Popup, validRequest);\n }\n\n const browserRequestLogger = this.logger.clone(name, version, validRequest.correlationId);\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenPopup, validRequest.correlationId);\n\n try {\n // Create auth code request and generate PKCE params\n const authCodeRequest: CommonAuthorizationCodeRequest = await this.initializeAuthorizationCodeRequest(validRequest);\n\n // Initialize the client\n const authClient: AuthorizationCodeClient = await this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.correlationId);\n browserRequestLogger.verbose(\"Auth code client created\");\n\n // Create acquire token url.\n const navigateUrl = await authClient.getAuthCodeUrl(validRequest);\n\n // Create popup interaction handler.\n const interactionHandler = new PopupHandler(authClient, this.browserStorage, authCodeRequest, browserRequestLogger);\n\n // Show the UI once the url has been created. Get the window handle for the popup.\n const popupParameters: PopupParams = {\n popup,\n popupName\n };\n const popupWindow: Window = interactionHandler.initiateAuthRequest(navigateUrl, popupParameters);\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, {popupWindow}, null);\n\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.\n const hash = await interactionHandler.monitorPopupForHash(popupWindow);\n const state = this.validateAndExtractStateFromHash(hash, InteractionType.Popup, validRequest.correlationId);\n\n // Remove throttle if it exists\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, authCodeRequest.authority, authCodeRequest.scopes);\n\n // Handle response from hash string.\n const result = await interactionHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient);\n\n // If logged in, emit acquire token events\n const isLoggingIn = loggedInAccounts.length < this.getAllAccounts().length;\n if (isLoggingIn) {\n this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Popup, result);\n } else {\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Popup, result);\n }\n\n return result;\n } catch (e) {\n if (loggedInAccounts.length > 0) {\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Popup, null, e);\n } else {\n this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Popup, null, e);\n }\n \n if (popup) {\n // Close the synchronous popup if an error is thrown before the window unload event is registered\n popup.close();\n }\n\n serverTelemetryManager.cacheFailedRequest(e);\n this.browserStorage.cleanRequestByState(validRequest.state);\n throw e;\n }\n }\n\n // #endregion\n\n // #region Silent Flow\n\n /**\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\n * - Any browser using a form of Intelligent Tracking Prevention\n * - If there is not an established session with the service\n *\n * In these cases, the request must be done inside a popup or full frame redirect.\n *\n * For the cases where interaction is required, you cannot send a request with prompt=none.\n *\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\n * you session on the server still exists.\n * @param request {@link SsoSilentRequest}\n *\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n async ssoSilent(request: SsoSilentRequest): Promise<AuthenticationResult> {\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\n this.logger.verbose(\"ssoSilent called\", request.correlationId);\n this.eventHandler.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, request);\n\n try {\n const silentTokenResult = await this.acquireTokenByIframe(request, ApiId.ssoSilent);\n this.eventHandler.emitEvent(EventType.SSO_SILENT_SUCCESS, InteractionType.Silent, silentTokenResult);\n return silentTokenResult;\n } catch (e) {\n this.eventHandler.emitEvent(EventType.SSO_SILENT_FAILURE, InteractionType.Silent, null, e);\n throw e;\n }\n }\n\n /**\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. To be used for silent refresh token acquisition and renewal.\n * @param request\n * @param apiId - ApiId of the calling function. Used for telemetry.\n */\n private async acquireTokenByIframe(request: SsoSilentRequest, apiId: ApiId): Promise<AuthenticationResult> {\n this.logger.verbose(\"acquireTokenByIframe called\", request.correlationId);\n // Check that we have some SSO data\n if (StringUtils.isEmpty(request.loginHint) && StringUtils.isEmpty(request.sid) && (!request.account || StringUtils.isEmpty(request.account.username))) {\n throw BrowserAuthError.createSilentSSOInsufficientInfoError();\n }\n\n // Check that prompt is set to none, throw error if it is set to anything else.\n if (request.prompt && request.prompt !== PromptValue.NONE) {\n throw BrowserAuthError.createSilentPromptValueError(request.prompt);\n }\n\n // Create silent request\n const silentRequest: AuthorizationUrlRequest = this.initializeAuthorizationRequest({\n ...request,\n prompt: PromptValue.NONE\n }, InteractionType.Silent);\n\n const browserRequestLogger = this.logger.clone(name, version, silentRequest.correlationId);\n const serverTelemetryManager = this.initializeServerTelemetryManager(apiId, silentRequest.correlationId);\n\n try {\n // Create auth code request and generate PKCE params\n const authCodeRequest: CommonAuthorizationCodeRequest = await this.initializeAuthorizationCodeRequest(silentRequest);\n\n // Initialize the client\n const authClient: AuthorizationCodeClient = await this.createAuthCodeClient(serverTelemetryManager, silentRequest.authority, silentRequest.correlationId);\n browserRequestLogger.verbose(\"Auth code client created\");\n\n // Create authorize request url\n const navigateUrl = await authClient.getAuthCodeUrl(silentRequest);\n\n return await this.silentTokenHelper(navigateUrl, authCodeRequest, authClient, browserRequestLogger);\n } catch (e) {\n serverTelemetryManager.cacheFailedRequest(e);\n this.browserStorage.cleanRequestByState(silentRequest.state);\n throw e;\n }\n }\n\n /**\n * Use this function to obtain a token before every call to the API / resource provider\n *\n * MSAL return's a cached token when available\n * Or it send's a request to the STS to obtain a new token using a refresh token.\n *\n * @param {@link SilentRequest}\n *\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n protected async acquireTokenByRefreshToken(request: CommonSilentFlowRequest): Promise<AuthenticationResult> {\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_NETWORK_START, InteractionType.Silent, request);\n // block the reload if it occurred inside a hidden iframe\n BrowserUtils.blockReloadInHiddenIframes();\n const silentRequest: CommonSilentFlowRequest = {\n ...request,\n ...this.initializeBaseRequest(request)\n };\n const browserRequestLogger = this.logger.clone(name, version, silentRequest.correlationId);\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow, silentRequest.correlationId);\n try {\n const refreshTokenClient = await this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority, silentRequest.correlationId);\n browserRequestLogger.verbose(\"Refresh token client created\");\n \n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\n return await refreshTokenClient.acquireTokenByRefreshToken(silentRequest);\n } catch (e) {\n serverTelemetryManager.cacheFailedRequest(e);\n const isServerError = e instanceof ServerError;\n const isInteractionRequiredError = e instanceof InteractionRequiredAuthError;\n const isInvalidGrantError = (e.errorCode === BrowserConstants.INVALID_GRANT_ERROR);\n if (isServerError && isInvalidGrantError && !isInteractionRequiredError) {\n browserRequestLogger.verbose(\"Refresh token expired or invalid, attempting acquire token by iframe\");\n return await this.acquireTokenByIframe(request, ApiId.acquireTokenSilent_authCode);\n }\n throw e;\n }\n }\n\n /**\n * Helper which acquires an authorization code silently using a hidden iframe from given url\n * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.\n * @param navigateUrl\n * @param userRequestScopes\n */\n private async silentTokenHelper(navigateUrl: string, authCodeRequest: CommonAuthorizationCodeRequest, authClient: AuthorizationCodeClient, browserRequestLogger: Logger): Promise<AuthenticationResult> {\n // Create silent handler\n const silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, browserRequestLogger, this.config.system.navigateFrameWait);\n // Get the frame handle for the silent request\n const msalFrame = await silentHandler.initiateAuthRequest(navigateUrl);\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.\n const hash = await silentHandler.monitorIframeForHash(msalFrame, this.config.system.iframeHashTimeout);\n const state = this.validateAndExtractStateFromHash(hash, InteractionType.Silent, authCodeRequest.correlationId);\n\n // Handle response from hash string\n return silentHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient);\n }\n\n // #endregion\n\n // #region Logout\n\n /**\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\n * @param logoutRequest \n * @deprecated\n */\n async logout(logoutRequest?: EndSessionRequest): Promise<void> {\n this.logger.warning(\"logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.\");\n return this.logoutRedirect(logoutRequest);\n }\n\n /**\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\n * Default behaviour is to redirect the user to `window.location.href`.\n * @param logoutRequest\n */\n async logoutRedirect(logoutRequest?: EndSessionRequest): Promise<void> {\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\n this.logger.verbose(\"logoutRedirect called\", logoutRequest?.correlationId);\n const validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\n const browserRequestLogger = this.logger.clone(name, version, validLogoutRequest.correlationId);\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logout, validLogoutRequest.correlationId);\n\n try {\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Redirect, logoutRequest);\n const authClient = await this.createAuthCodeClient(serverTelemetryManager, logoutRequest && logoutRequest.authority, validLogoutRequest?.correlationId);\n browserRequestLogger.verbose(\"Auth code client created\");\n\n // create logout string and navigate user window to logout. Auth module will clear cache.\n const logoutUri: string = authClient.getLogoutUri(validLogoutRequest);\n \n if (!validLogoutRequest.account || AccountEntity.accountInfoIsEqual(validLogoutRequest.account, this.getActiveAccount(), false)) {\n browserRequestLogger.verbose(\"Setting active account to null\");\n this.setActiveAccount(null);\n }\n \n const navigationOptions: NavigationOptions = {\n apiId: ApiId.logout,\n timeout: this.config.system.redirectNavigationTimeout,\n noHistory: false\n };\n \n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Redirect, validLogoutRequest);\n // Check if onRedirectNavigate is implemented, and invoke it if so\n if (logoutRequest && typeof logoutRequest.onRedirectNavigate === \"function\") {\n const navigate = logoutRequest.onRedirectNavigate(logoutUri);\n\n if (navigate !== false) {\n browserRequestLogger.verbose(\"Logout onRedirectNavigate did not return false, navigating\");\n await this.navigationClient.navigateExternal(logoutUri, navigationOptions);\n return;\n } else {\n browserRequestLogger.verbose(\"Logout onRedirectNavigate returned false, stopping navigation\");\n }\n } else {\n await this.navigationClient.navigateExternal(logoutUri, navigationOptions);\n return;\n }\n } catch(e) {\n serverTelemetryManager.cacheFailedRequest(e);\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Redirect, null, e);\n throw e;\n }\n\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\n }\n\n /**\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\n * @param logoutRequest \n */\n logoutPopup(logoutRequest?: EndSessionPopupRequest): Promise<void> {\n let validLogoutRequest: CommonEndSessionRequest;\n try {\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\n this.logger.verbose(\"logoutPopup called\", logoutRequest?.correlationId);\n validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\n } catch (e) {\n // Since this function is synchronous we need to reject\n return Promise.reject(e);\n }\n\n const popupName = PopupUtils.generateLogoutPopupName(this.config.auth.clientId, validLogoutRequest);\n let popup;\n\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\n if (this.config.system.asyncPopups) {\n this.logger.verbose(\"asyncPopups set to true\", validLogoutRequest.correlationId);\n } else {\n // asyncPopups flag is set to false. Opens popup before logging out.\n this.logger.verbose(\"asyncPopup set to false, opening popup\", validLogoutRequest.correlationId);\n popup = PopupUtils.openSizedPopup(\"about:blank\", popupName);\n }\n\n const authority = logoutRequest && logoutRequest.authority;\n const mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri;\n return this.logoutPopupAsync(validLogoutRequest, popupName, authority, popup, mainWindowRedirectUri);\n }\n\n /**\n * \n * @param request \n * @param popupName \n * @param requestAuthority\n * @param popup \n */\n private async logoutPopupAsync(validRequest: CommonEndSessionRequest, popupName: string, requestAuthority?: string, popup?: Window|null, mainWindowRedirectUri?: string): Promise<void> {\n this.logger.verbose(\"logoutPopupAsync called\", validRequest.correlationId);\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Popup, validRequest);\n\n const browserRequestLogger = this.logger.clone(name, version, validRequest.correlationId);\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logoutPopup, validRequest.correlationId);\n \n try {\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\n // Initialize the client\n const authClient = await this.createAuthCodeClient(serverTelemetryManager, requestAuthority, validRequest.correlationId);\n browserRequestLogger.verbose(\"Auth code client created\");\n\n // create logout string and navigate user window to logout. Auth module will clear cache.\n const logoutUri: string = authClient.getLogoutUri(validRequest);\n if (!validRequest.account || AccountEntity.accountInfoIsEqual(validRequest.account, this.getActiveAccount(), false)) {\n browserRequestLogger.verbose(\"Setting active account to null\");\n this.setActiveAccount(null);\n }\n\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Popup, validRequest);\n\n const popupUtils = new PopupUtils(this.browserStorage, this.logger);\n // Open the popup window to requestUrl.\n const popupWindow = popupUtils.openPopup(logoutUri, popupName, popup);\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, {popupWindow}, null);\n\n try {\n // Don't care if this throws an error (User Cancelled)\n await popupUtils.monitorPopupForSameOrigin(popupWindow);\n browserRequestLogger.verbose(\"Popup successfully redirected to postLogoutRedirectUri\");\n } catch (e) {\n browserRequestLogger.verbose(`Error occurred while monitoring popup for same origin. Session on server may remain active. Error: ${e}`);\n }\n\n popupUtils.cleanPopup(popupWindow);\n\n if (mainWindowRedirectUri) {\n const navigationOptions: NavigationOptions = {\n apiId: ApiId.logoutPopup,\n timeout: this.config.system.redirectNavigationTimeout,\n noHistory: false\n };\n const absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, BrowserUtils.getCurrentUri());\n\n browserRequestLogger.verbose(\"Redirecting main window to url specified in the request\");\n browserRequestLogger.verbosePii(`Redirecing main window to: ${absoluteUrl}`);\n this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\n } else {\n browserRequestLogger.verbose(\"No main window navigation requested\");\n }\n\n } catch (e) {\n if (popup) {\n // Close the synchronous popup if an error is thrown before the window unload event is registered\n popup.close();\n }\n \n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e);\n serverTelemetryManager.cacheFailedRequest(e);\n throw e;\n }\n\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\n }\n\n // #endregion\n\n // #region Account APIs\n\n /**\n * Returns all accounts that MSAL currently has data for.\n * (the account object is created at the time of successful login)\n * or empty array when no accounts are found\n * @returns Array of account objects in cache\n */\n getAllAccounts(): AccountInfo[] {\n this.logger.verbose(\"getAllAccounts called\");\n return this.isBrowserEnvironment ? this.browserStorage.getAllAccounts() : [];\n }\n\n /**\n * Returns the signed in account matching username.\n * (the account object is created at the time of successful login)\n * or null when no matching account is found.\n * This API is provided for convenience but getAccountById should be used for best reliability\n * @param userName\n * @returns The account object stored in MSAL\n */\n getAccountByUsername(userName: string): AccountInfo|null {\n const allAccounts = this.getAllAccounts();\n if (!StringUtils.isEmpty(userName) && allAccounts && allAccounts.length) {\n this.logger.verbose(\"Account matching username found, returning\");\n this.logger.verbosePii(`Returning signed-in accounts matching username: ${userName}`);\n return allAccounts.filter(accountObj => accountObj.username.toLowerCase() === userName.toLowerCase())[0] || null;\n } else {\n this.logger.verbose(\"getAccountByUsername: No matching account found, returning null\");\n return null;\n }\n }\n\n /**\n * Returns the signed in account matching homeAccountId.\n * (the account object is created at the time of successful login)\n * or null when no matching account is found\n * @param homeAccountId\n * @returns The account object stored in MSAL\n */\n getAccountByHomeId(homeAccountId: string): AccountInfo|null {\n const allAccounts = this.getAllAccounts();\n if (!StringUtils.isEmpty(homeAccountId) && allAccounts && allAccounts.length) {\n this.logger.verbose(\"Account matching homeAccountId found, returning\");\n this.logger.verbosePii(`Returning signed-in accounts matching homeAccountId: ${homeAccountId}`);\n return allAccounts.filter(accountObj => accountObj.homeAccountId === homeAccountId)[0] || null;\n } else {\n this.logger.verbose(\"getAccountByHomeId: No matching account found, returning null\");\n return null;\n }\n }\n\n /**\n * Returns the signed in account matching localAccountId.\n * (the account object is created at the time of successful login)\n * or null when no matching account is found\n * @param localAccountId\n * @returns The account object stored in MSAL\n */\n getAccountByLocalId(localAccountId: string): AccountInfo | null {\n const allAccounts = this.getAllAccounts();\n if (!StringUtils.isEmpty(localAccountId) && allAccounts && allAccounts.length) {\n this.logger.verbose(\"Account matching localAccountId found, returning\");\n this.logger.verbosePii(`Returning signed-in accounts matching localAccountId: ${localAccountId}`);\n return allAccounts.filter(accountObj => accountObj.localAccountId === localAccountId)[0] || null;\n } else {\n this.logger.verbose(\"getAccountByLocalId: No matching account found, returning null\");\n return null;\n }\n }\n\n /**\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.\n * @param account\n */\n setActiveAccount(account: AccountInfo | null): void {\n this.browserStorage.setActiveAccount(account);\n }\n\n /**\n * Gets the currently active account\n */\n getActiveAccount(): AccountInfo | null {\n return this.browserStorage.getActiveAccount();\n }\n\n // #endregion\n\n // #region Helpers\n\n /**\n *\n * Use to get the redirect uri configured in MSAL or null.\n * @param requestRedirectUri\n * @returns Redirect URL\n *\n */\n protected getRedirectUri(requestRedirectUri?: string): string {\n this.logger.verbose(\"getRedirectUri called\");\n const redirectUri = requestRedirectUri || this.config.auth.redirectUri || BrowserUtils.getCurrentUri();\n return UrlString.getAbsoluteUrl(redirectUri, BrowserUtils.getCurrentUri());\n }\n\n /**\n * Use to get the redirectStartPage either from request or use current window\n * @param requestStartPage\n */\n protected getRedirectStartPage(requestStartPage?: string): string {\n const redirectStartPage = requestStartPage || window.location.href;\n return UrlString.getAbsoluteUrl(redirectStartPage, BrowserUtils.getCurrentUri());\n }\n\n /**\n * Used to get a discovered version of the default authority.\n * @param requestAuthority\n * @param requestCorrelationId\n */\n async getDiscoveredAuthority(requestAuthority?: string, requestCorrelationId?: string): Promise<Authority> {\n this.logger.verbose(\"getDiscoveredAuthority called\", requestCorrelationId);\n const authorityOptions: AuthorityOptions = {\n protocolMode: this.config.auth.protocolMode,\n knownAuthorities: this.config.auth.knownAuthorities,\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\n authorityMetadata: this.config.auth.authorityMetadata\n };\n\n if (requestAuthority) {\n this.logger.verbose(\"Creating discovered authority with request authority\", requestCorrelationId);\n return await AuthorityFactory.createDiscoveredInstance(requestAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions);\n }\n\n this.logger.verbose(\"Creating discovered authority with configured authority\", requestCorrelationId);\n return await AuthorityFactory.createDiscoveredInstance(this.config.auth.authority, this.config.system.networkClient, this.browserStorage, authorityOptions);\n }\n\n /**\n * Helper to check whether interaction is in progress.\n */\n protected interactionInProgress(): boolean {\n // Check whether value in cache is present and equal to expected value\n return (this.browserStorage.getTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, true)) === BrowserConstants.INTERACTION_IN_PROGRESS_VALUE;\n }\n\n /**\n * Creates an Authorization Code Client with the given authority, or the default authority.\n * @param serverTelemetryManager\n * @param authorityUrl\n */\n protected async createAuthCodeClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, correlationId?: string): Promise<AuthorizationCodeClient> {\n // Create auth module.\n const clientConfig = await this.getClientConfiguration(serverTelemetryManager, authorityUrl, correlationId);\n return new AuthorizationCodeClient(clientConfig);\n }\n\n /**\n * Creates an Silent Flow Client with the given authority, or the default authority.\n * @param serverTelemetryManager\n * @param authorityUrl\n */\n protected async createSilentFlowClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, correlationId?: string): Promise<SilentFlowClient> {\n // Create auth module.\n const clientConfig = await this.getClientConfiguration(serverTelemetryManager, authorityUrl, correlationId);\n return new SilentFlowClient(clientConfig);\n }\n\n /**\n * Creates a Refresh Client with the given authority, or the default authority.\n * @param serverTelemetryManager\n * @param authorityUrl\n */\n protected async createRefreshTokenClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, correlationId?: string): Promise<RefreshTokenClient> {\n // Create auth module.\n const clientConfig = await this.getClientConfiguration(serverTelemetryManager, authorityUrl, correlationId);\n return new RefreshTokenClient(clientConfig);\n }\n\n /**\n * Creates a Client Configuration object with the given request authority, or the default authority.\n * @param serverTelemetryManager\n * @param requestAuthority\n * @param requestCorrelationId\n */\n protected async getClientConfiguration(serverTelemetryManager: ServerTelemetryManager, requestAuthority?: string, requestCorrelationId?: string): Promise<ClientConfiguration> {\n this.logger.verbose(\"getClientConfiguration called\", requestCorrelationId);\n const discoveredAuthority = await this.getDiscoveredAuthority(requestAuthority, requestCorrelationId);\n\n return {\n authOptions: {\n clientId: this.config.auth.clientId,\n authority: discoveredAuthority,\n clientCapabilities: this.config.auth.clientCapabilities\n },\n systemOptions: {\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds,\n preventCorsPreflight: true\n },\n loggerOptions: {\n loggerCallback: this.config.system.loggerOptions.loggerCallback,\n piiLoggingEnabled: this.config.system.loggerOptions.piiLoggingEnabled,\n logLevel: this.config.system.loggerOptions.logLevel,\n correlationId: requestCorrelationId\n },\n cryptoInterface: this.browserCrypto,\n networkInterface: this.networkClient,\n storageInterface: this.browserStorage,\n serverTelemetryManager: serverTelemetryManager,\n libraryInfo: {\n sku: BrowserConstants.MSAL_SKU,\n version: version,\n cpu: \"\",\n os: \"\"\n }\n };\n }\n\n /**\n * Helper to validate app environment before making a request.\n * @param request\n * @param interactionType\n */\n protected preflightInteractiveRequest(request: RedirectRequest|PopupRequest, interactionType: InteractionType): AuthorizationUrlRequest {\n this.logger.verbose(\"preflightInteractiveRequest called, validating app environment\", request?.correlationId);\n // block the reload if it occurred inside a hidden iframe\n BrowserUtils.blockReloadInHiddenIframes();\n\n // Check if interaction is in progress. Throw error if true.\n if (this.interactionInProgress()) {\n throw BrowserAuthError.createInteractionInProgressError();\n }\n\n return this.initializeAuthorizationRequest(request, interactionType);\n }\n\n /**\n * Helper to validate app environment before making an auth request\n * * @param interactionType\n */\n protected preflightBrowserEnvironmentCheck(interactionType: InteractionType): void {\n this.logger.verbose(\"preflightBrowserEnvironmentCheck started\");\n // Block request if not in browser environment\n BrowserUtils.blockNonBrowserEnvironment(this.isBrowserEnvironment);\n\n // Block redirects if in an iframe\n BrowserUtils.blockRedirectInIframe(interactionType, this.config.system.allowRedirectInIframe);\n\n // Block auth requests inside a hidden iframe\n BrowserUtils.blockReloadInHiddenIframes();\n\n // Block redirectUri opened in a popup from calling MSAL APIs\n BrowserUtils.blockAcquireTokenInPopups();\n\n // Block redirects if memory storage is enabled but storeAuthStateInCookie is not\n if (interactionType === InteractionType.Redirect &&\n this.config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&\n !this.config.cache.storeAuthStateInCookie) {\n throw BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError();\n }\n }\n\n /**\n * Initializer function for all request APIs\n * @param request\n */\n protected initializeBaseRequest(request: Partial<BaseAuthRequest>): BaseAuthRequest {\n this.logger.verbose(\"Initializing BaseAuthRequest\", request.correlationId);\n const authority = request.authority || this.config.auth.authority;\n\n const scopes = [...((request && request.scopes) || [])];\n const correlationId = (request && request.correlationId) || this.browserCrypto.createNewGuid();\n\n // Set authenticationScheme to BEARER if not explicitly set in the request\n if (!request.authenticationScheme) {\n request.authenticationScheme = AuthenticationScheme.BEARER;\n this.logger.verbose(\"Authentication Scheme wasn't explicitly set in request, defaulting to \\\"Bearer\\\" request\", request.correlationId);\n } else {\n this.logger.verbose(`Authentication Scheme set to \"${request.authenticationScheme}\" as configured in Auth request`, request.correlationId);\n }\n\n const validatedRequest: BaseAuthRequest = {\n ...request,\n correlationId,\n authority,\n scopes\n };\n\n return validatedRequest;\n }\n\n /**\n *\n * @param apiId\n * @param correlationId\n * @param forceRefresh\n */\n protected initializeServerTelemetryManager(apiId: number, correlationId: string, forceRefresh?: boolean): ServerTelemetryManager {\n this.logger.verbose(\"initializeServerTelemetryManager called\", correlationId);\n const telemetryPayload: ServerTelemetryRequest = {\n clientId: this.config.auth.clientId,\n correlationId: correlationId,\n apiId: apiId,\n forceRefresh: forceRefresh || false,\n wrapperSKU: this.wrapperSKU,\n wrapperVer: this.wrapperVer\n };\n\n return new ServerTelemetryManager(telemetryPayload, this.browserStorage);\n }\n\n /**\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\n * @param request\n * @param interactionType\n */\n protected initializeAuthorizationRequest(request: RedirectRequest|PopupRequest|SsoSilentRequest, interactionType: InteractionType): AuthorizationUrlRequest {\n this.logger.verbose(\"initializeAuthorizationRequest called\", request.correlationId);\n const redirectUri = this.getRedirectUri(request.redirectUri);\n const browserState: BrowserStateObject = {\n interactionType: interactionType\n };\n\n const state = ProtocolUtils.setRequestState(\n this.browserCrypto,\n (request && request.state) || \"\",\n browserState\n );\n\n const validatedRequest: AuthorizationUrlRequest = {\n ...this.initializeBaseRequest(request),\n redirectUri: redirectUri,\n state: state,\n nonce: request.nonce || this.browserCrypto.createNewGuid(),\n responseMode: ResponseMode.FRAGMENT\n };\n\n const account = request.account || this.getActiveAccount();\n if (account) {\n this.logger.verbose(\"Setting validated request account\");\n this.logger.verbosePii(`Setting validated request account: ${account}`);\n validatedRequest.account = account;\n }\n\n // Check for ADAL SSO\n if (StringUtils.isEmpty(validatedRequest.loginHint)) {\n // Only check for adal token if no SSO params are being used\n const adalIdTokenString = this.browserStorage.getTemporaryCache(PersistentCacheKeys.ADAL_ID_TOKEN);\n if (adalIdTokenString) {\n const adalIdToken = new IdToken(adalIdTokenString, this.browserCrypto);\n this.browserStorage.removeItem(PersistentCacheKeys.ADAL_ID_TOKEN);\n if (adalIdToken.claims && adalIdToken.claims.upn) {\n this.logger.verbose(\"No SSO params used and ADAL token retrieved, setting ADAL upn as loginHint\");\n validatedRequest.loginHint = adalIdToken.claims.upn;\n }\n }\n }\n\n this.browserStorage.updateCacheEntries(validatedRequest.state, validatedRequest.nonce, validatedRequest.authority, validatedRequest.loginHint || \"\", validatedRequest.account || null);\n\n return validatedRequest;\n }\n\n /**\n * Generates an auth code request tied to the url request.\n * @param request\n */\n protected async initializeAuthorizationCodeRequest(request: AuthorizationUrlRequest): Promise<CommonAuthorizationCodeRequest> {\n this.logger.verbose(\"initializeAuthorizationRequest called\", request.correlationId);\n const generatedPkceParams = await this.browserCrypto.generatePkceCodes();\n\n const authCodeRequest: CommonAuthorizationCodeRequest = {\n ...request,\n redirectUri: request.redirectUri,\n code: \"\",\n codeVerifier: generatedPkceParams.verifier\n };\n\n request.codeChallenge = generatedPkceParams.challenge;\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\n\n return authCodeRequest;\n }\n\n /**\n * Initializer for the logout request.\n * @param logoutRequest\n */\n protected initializeLogoutRequest(logoutRequest?: EndSessionRequest): CommonEndSessionRequest {\n this.logger.verbose(\"initializeLogoutRequest called\", logoutRequest?.correlationId);\n\n // Check if interaction is in progress. Throw error if true.\n if (this.interactionInProgress()) {\n throw BrowserAuthError.createInteractionInProgressError();\n }\n\n const validLogoutRequest: CommonEndSessionRequest = {\n correlationId: this.browserCrypto.createNewGuid(),\n ...logoutRequest\n };\n\n /*\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\n * Otherwise, use passed uri, config, or current page.\n */\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\", validLogoutRequest.correlationId);\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\n } else if (this.config.auth.postLogoutRedirectUri === null) {\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\", validLogoutRequest.correlationId);\n } else if (this.config.auth.postLogoutRedirectUri) {\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\", validLogoutRequest.correlationId);\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\n } else {\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\", validLogoutRequest.correlationId);\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\n }\n } else {\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not setting post logout redirect uri\", validLogoutRequest.correlationId);\n }\n\n return validLogoutRequest;\n }\n\n /**\n * Adds event callbacks to array\n * @param callback\n */\n addEventCallback(callback: EventCallbackFunction): string | null {\n return this.eventHandler.addEventCallback(callback);\n }\n\n /**\n * Removes callback with provided id from callback array\n * @param callbackId\n */\n removeEventCallback(callbackId: string): void {\n this.eventHandler.removeEventCallback(callbackId);\n }\n\n /**\n * Returns the logger instance\n */\n getLogger(): Logger {\n return this.logger;\n }\n\n /**\n * Replaces the default logger set in configurations with new Logger with new configurations\n * @param logger Logger instance\n */\n setLogger(logger: Logger): void {\n this.logger = logger;\n }\n\n /**\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\n * @param sku\n * @param version\n */\n initializeWrapperLibrary(sku: WrapperSKU, version: string): void {\n // Validate the SKU passed in is one we expect\n this.wrapperSKU = sku;\n this.wrapperVer = version;\n }\n\n /**\n * Sets navigation client\n * @param navigationClient\n */\n setNavigationClient(navigationClient: INavigationClient): void {\n this.navigationClient = navigationClient;\n }\n // #endregion\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AccountInfo, AuthenticationResult, CommonSilentFlowRequest, RequestThumbprint } from \"@azure/msal-common\";\nimport { Configuration } from \"../config/Configuration\";\nimport { DEFAULT_REQUEST, ApiId, InteractionType } from \"../utils/BrowserConstants\";\nimport { IPublicClientApplication } from \"./IPublicClientApplication\";\nimport { RedirectRequest } from \"../request/RedirectRequest\";\nimport { PopupRequest } from \"../request/PopupRequest\";\nimport { ClientApplication } from \"./ClientApplication\";\nimport { SilentRequest } from \"../request/SilentRequest\";\nimport { EventType } from \"../event/EventType\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { version, name } from \"../packageMetadata\";\n\n/**\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\n */\nexport class PublicClientApplication extends ClientApplication implements IPublicClientApplication {\n\n // Active requests\n private activeSilentTokenRequests: Map<string, Promise<AuthenticationResult>>;\n\n /**\n * @constructor\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\n *\n * Important attributes in the Configuration object for auth are:\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\n * - authority: the authority URL for your application.\n * - redirect_uri: the uri of your application registered in the portal.\n *\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\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).\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\n *\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\n * Full B2C functionality will be available in this library in future versions.\n *\n * @param configuration object for the MSAL PublicClientApplication instance\n */\n constructor(configuration: Configuration) {\n super(configuration);\n\n this.activeSilentTokenRequests = new Map();\n }\n\n /**\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\n * any code that follows this function will not execute.\n *\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\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\n *\n * @param request\n */\n async loginRedirect(request?: RedirectRequest): Promise<void> {\n this.logger.verbose(\"loginRedirect called\");\n return this.acquireTokenRedirect(request || DEFAULT_REQUEST);\n }\n\n /**\n * Use when initiating the login process via opening a popup window in the user's browser\n *\n * @param request\n *\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n loginPopup(request?: PopupRequest): Promise<AuthenticationResult> {\n this.logger.verbose(\"loginPopup called\");\n return this.acquireTokenPopup(request || DEFAULT_REQUEST);\n }\n\n /**\n * Silently acquire an access token for a given set of scopes. Returns currently processing promise if parallel requests are made.\n *\n * @param {@link (SilentRequest:type)}\n * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\n */\n async acquireTokenSilent(request: SilentRequest): Promise<AuthenticationResult> {\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\n this.logger.verbose(\"acquireTokenSilent called\", request.correlationId);\n const account = request.account || this.getActiveAccount();\n if (!account) {\n throw BrowserAuthError.createNoAccountError();\n }\n const thumbprint: RequestThumbprint = {\n clientId: this.config.auth.clientId,\n authority: request.authority || \"\",\n scopes: request.scopes,\n homeAccountIdentifier: account.homeAccountId\n };\n const silentRequestKey = JSON.stringify(thumbprint);\n const cachedResponse = this.activeSilentTokenRequests.get(silentRequestKey);\n if (typeof cachedResponse === \"undefined\") {\n this.logger.verbose(\"acquireTokenSilent called for the first time, storing active request\", request.correlationId);\n const response = this.acquireTokenSilentAsync(request, account)\n .then((result) => {\n this.activeSilentTokenRequests.delete(silentRequestKey);\n return result;\n })\n .catch((error) => {\n this.activeSilentTokenRequests.delete(silentRequestKey);\n throw error;\n });\n this.activeSilentTokenRequests.set(silentRequestKey, response);\n return response;\n } else {\n this.logger.verbose(\"acquireTokenSilent has been called previously, returning the result from the first call\", request.correlationId);\n return cachedResponse;\n }\n }\n\n /**\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.\n * @param {@link (SilentRequest:type)}\n * @param {@link (AccountInfo:type)}\n * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} \n */\n private async acquireTokenSilentAsync(request: SilentRequest, account: AccountInfo): Promise<AuthenticationResult>{\n const silentRequest: CommonSilentFlowRequest = {\n ...request,\n ...this.initializeBaseRequest(request),\n account: account,\n forceRefresh: request.forceRefresh || false\n };\n const browserRequestLogger = this.logger.clone(name, version, silentRequest.correlationId);\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);\n try {\n // Telemetry manager only used to increment cacheHits here\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow, silentRequest.correlationId);\n const silentAuthClient = await this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority, silentRequest.correlationId);\n browserRequestLogger.verbose(\"Silent auth client created\");\n const cachedToken = await silentAuthClient.acquireCachedToken(silentRequest);\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, cachedToken);\n return cachedToken;\n } catch (e) {\n try {\n const tokenRenewalResult = await this.acquireTokenByRefreshToken(silentRequest);\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, tokenRenewalResult);\n return tokenRenewalResult;\n } catch (tokenRenewalError) {\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Silent, null, tokenRenewalError);\n throw tokenRenewalError;\n }\n }\n }\n}\n","import \"react-app-polyfill/ie11\";\r\nimport \"react-app-polyfill/stable\";\r\nimport \"core-js/features/string/repeat\";\r\nimport \"abortcontroller-polyfill\";\r\n\r\nimport React from \"react\";\r\nimport { render } from \"react-dom\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\n\r\nimport \"./index.css\";\r\nimport \"./App.less\";\r\n\r\nimport { PublicClientApplication } from \"@azure/msal-browser\";\r\nimport { MsalProvider } from \"@azure/msal-react\";\r\nimport { msalConfig } from \"./authConfig\";\r\n\r\nimport Bowser from \"bowser\";\r\n/**\r\n * Initialize a PublicClientApplication instance which is provided to the MsalProvider component\r\n * We recommend initializing this outside of your root component to ensure it is not re-initialized on re-renders\r\n */\r\nexport const msalInstance = new PublicClientApplication(msalConfig);\r\nconst browser = Bowser.getParser(window.navigator.userAgent);\r\nconst isValidBrowser = browser.satisfies({\r\n\t// also supports equality operator\r\n\tchrome: \">=49\", // will match particular build only\r\n\tedge: \">=84\",\r\n\tfirefox: \">=78\",\r\n\tsafari: \">=9.3\",\r\n\topera: \">=76\",\r\n\t\"android browser\": \">=4\",\r\n\tsamsung: \">=11\",\r\n\t\"internet explorer\": \">=11\",\r\n});\r\nwindow.localStorage.setItem(\"browser\", JSON.stringify(browser));\r\nwindow.localStorage.setItem(\"isValidBrowser\", isValidBrowser);\r\n\r\nrender(\r\n\tprocess.env.REACT_APP_ENVIRONMENT === \"AZURE\" ? (\r\n\t\t<MsalProvider instance={msalInstance}>\r\n\t\t\t<App />\r\n\t\t</MsalProvider>\r\n\t) : (\r\n\t\t<App />\r\n\t),\r\n\tdocument.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","var _errors;\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\nexport var ERROR = 'ERROR';\nexport var ERROR_DIV_ZERO = 'DIV/0';\nexport var ERROR_NAME = 'NAME';\nexport var ERROR_NOT_AVAILABLE = 'N/A';\nexport var ERROR_NULL = 'NULL';\nexport var ERROR_NUM = 'NUM';\nexport var ERROR_REF = 'REF';\nexport var ERROR_VALUE = 'VALUE';\nvar errors = (_errors = {}, _defineProperty(_errors, ERROR, '#ERROR!'), _defineProperty(_errors, ERROR_DIV_ZERO, '#DIV/0!'), _defineProperty(_errors, ERROR_NAME, '#NAME?'), _defineProperty(_errors, ERROR_NOT_AVAILABLE, '#N/A'), _defineProperty(_errors, ERROR_NULL, '#NULL!'), _defineProperty(_errors, ERROR_NUM, '#NUM!'), _defineProperty(_errors, ERROR_REF, '#REF!'), _defineProperty(_errors, ERROR_VALUE, '#VALUE!'), _errors);\n/**\n * Return error type based on provided error id.\n *\n * @param {String} type Error type.\n * @returns {String|null} Returns error id.\n */\n\nexport default function error(type) {\n var result;\n type = (type + '').replace(/#|!|\\?/g, '');\n\n if (errors[type]) {\n result = errors[type];\n }\n\n return result ? result : null;\n}\n/**\n * Check if error type is strict valid with knows errors.\n *\n * @param {String} Error type.\n * @return {Boolean}\n */\n\nexport function isValidStrict(type) {\n var valid = false;\n\n for (var i in errors) {\n if (Object.prototype.hasOwnProperty.call(errors, i) && errors[i] === type) {\n valid = true;\n break;\n }\n }\n\n return valid;\n}","/**\n * Convert value into number.\n *\n * @param {String|Number} number\n * @returns {*}\n */\nexport function toNumber(number) {\n var result;\n\n if (typeof number === 'number') {\n result = number;\n } else if (typeof number === 'string') {\n result = number.indexOf('.') > -1 ? parseFloat(number) : parseInt(number, 10);\n }\n\n return result;\n}\n/**\n * Invert provided number.\n *\n * @param {Number} number\n * @returns {Number} Returns inverted number.\n */\n\nexport function invertNumber(number) {\n return -1 * toNumber(number);\n}","import { toNumber } from \"./../../helper/number.mjs\";\nimport { ERROR_VALUE } from \"./../../error.mjs\";\nexport var SYMBOL = '+';\nexport default function func(first) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var result = rest.reduce(function (acc, value) {\n return acc + toNumber(value);\n }, toNumber(first));\n\n if (isNaN(result)) {\n throw Error(ERROR_VALUE);\n }\n\n return result;\n}\nfunc.SYMBOL = SYMBOL;","export var SYMBOL = '&';\nexport default function func() {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n\n return params.reduce(function (acc, value) {\n return acc + value.toString();\n }, '');\n}\nfunc.SYMBOL = SYMBOL;","import { toNumber } from \"./../../helper/number.mjs\";\nimport { ERROR_DIV_ZERO, ERROR_VALUE } from \"./../../error.mjs\";\nexport var SYMBOL = '/';\nexport default function func(first) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var result = rest.reduce(function (acc, value) {\n return acc / toNumber(value);\n }, toNumber(first));\n\n if (result === Infinity) {\n throw Error(ERROR_DIV_ZERO);\n }\n\n if (isNaN(result)) {\n throw Error(ERROR_VALUE);\n }\n\n return result;\n}\nfunc.SYMBOL = SYMBOL;","export var SYMBOL = '=';\nexport default function func(exp1, exp2) {\n return exp1 === exp2;\n}\nfunc.SYMBOL = SYMBOL;","import formulajs from '@handsontable/formulajs';\nimport SUPPORTED_FORMULAS from \"./../../supported-formulas.mjs\";\nimport { ERROR_NAME } from \"./../../error.mjs\";\nexport var SYMBOL = SUPPORTED_FORMULAS;\nexport default function func(symbol) {\n return function __formulaFunction() {\n symbol = symbol.toUpperCase();\n var symbolParts = symbol.split('.');\n var foundFormula = false;\n var result;\n\n if (symbolParts.length === 1) {\n if (formulajs[symbolParts[0]]) {\n foundFormula = true;\n result = formulajs[symbolParts[0]].apply(formulajs, arguments);\n }\n } else {\n var length = symbolParts.length;\n var index = 0;\n var nestedFormula = formulajs;\n\n while (index < length) {\n nestedFormula = nestedFormula[symbolParts[index]];\n index++;\n\n if (!nestedFormula) {\n nestedFormula = null;\n break;\n }\n }\n\n if (nestedFormula) {\n foundFormula = true;\n result = nestedFormula.apply(void 0, arguments);\n }\n }\n\n if (!foundFormula) {\n throw Error(ERROR_NAME);\n }\n\n return result;\n };\n}\nfunc.isFactory = true;\nfunc.SYMBOL = SYMBOL;","var SUPPORTED_FORMULAS = ['ABS', 'ACCRINT', 'ACOS', 'ACOSH', 'ACOT', 'ACOTH', 'ADD', 'AGGREGATE', 'AND', 'ARABIC', 'ARGS2ARRAY', 'ASIN', 'ASINH', 'ATAN', 'ATAN2', 'ATANH', 'AVEDEV', 'AVERAGE', 'AVERAGEA', 'AVERAGEIF', 'AVERAGEIFS', 'BASE', 'BESSELI', 'BESSELJ', 'BESSELK', 'BESSELY', 'BETA.DIST', 'BETA.INV', 'BETADIST', 'BETAINV', 'BIN2DEC', 'BIN2HEX', 'BIN2OCT', 'BINOM.DIST', 'BINOM.DIST.RANGE', 'BINOM.INV', 'BINOMDIST', 'BITAND', 'BITLSHIFT', 'BITOR', 'BITRSHIFT', 'BITXOR', 'CEILING', 'CEILINGMATH', 'CEILINGPRECISE', 'CHAR', 'CHISQ.DIST', 'CHISQ.DIST.RT', 'CHISQ.INV', 'CHISQ.INV.RT', 'CHOOSE', 'CHOOSE', 'CLEAN', 'CODE', 'COLUMN', 'COLUMNS', 'COMBIN', 'COMBINA', 'COMPLEX', 'CONCATENATE', 'CONFIDENCE', 'CONFIDENCE.NORM', 'CONFIDENCE.T', 'CONVERT', 'CORREL', 'COS', 'COSH', 'COT', 'COTH', 'COUNT', 'COUNTA', 'COUNTBLANK', 'COUNTIF', 'COUNTIFS', 'COUNTIN', 'COUNTUNIQUE', 'COVARIANCE.P', 'COVARIANCE.S', 'CSC', 'CSCH', 'CUMIPMT', 'CUMPRINC', 'DATE', 'DATEVALUE', 'DAY', 'DAYS', 'DAYS360', 'DB', 'DDB', 'DEC2BIN', 'DEC2HEX', 'DEC2OCT', 'DECIMAL', 'DEGREES', 'DELTA', 'DEVSQ', 'DIVIDE', 'DOLLARDE', 'DOLLARFR', 'E', 'EDATE', 'EFFECT', 'EOMONTH', 'EQ', 'ERF', 'ERFC', 'EVEN', 'EXACT', 'EXP', 'EXPON.DIST', 'EXPONDIST', 'F.DIST', 'F.DIST.RT', 'F.INV', 'F.INV.RT', 'FACT', 'FACTDOUBLE', 'FALSE', 'FDIST', 'FDISTRT', 'FIND', 'FINV', 'FINVRT', 'FISHER', 'FISHERINV', 'FLATTEN', 'FLOOR', 'FORECAST', 'FREQUENCY', 'FV', 'FVSCHEDULE', 'GAMMA', 'GAMMA.DIST', 'GAMMA.INV', 'GAMMADIST', 'GAMMAINV', 'GAMMALN', 'GAMMALN.PRECISE', 'GAUSS', 'GCD', 'GEOMEAN', 'GESTEP', 'GROWTH', 'GTE', 'HARMEAN', 'HEX2BIN', 'HEX2DEC', 'HEX2OCT', 'HOUR', 'HTML2TEXT', 'HYPGEOM.DIST', 'HYPGEOMDIST', 'IF', 'IMABS', 'IMAGINARY', 'IMARGUMENT', 'IMCONJUGATE', 'IMCOS', 'IMCOSH', 'IMCOT', 'IMCSC', 'IMCSCH', 'IMDIV', 'IMEXP', 'IMLN', 'IMLOG10', 'IMLOG2', 'IMPOWER', 'IMPRODUCT', 'IMREAL', 'IMSEC', 'IMSECH', 'IMSIN', 'IMSINH', 'IMSQRT', 'IMSUB', 'IMSUM', 'IMTAN', 'INT', 'INTERCEPT', 'INTERVAL', 'IPMT', 'IRR', 'ISBINARY', 'ISBLANK', 'ISEVEN', 'ISLOGICAL', 'ISNONTEXT', 'ISNUMBER', 'ISODD', 'ISODD', 'ISOWEEKNUM', 'ISPMT', 'ISTEXT', 'JOIN', 'KURT', 'LARGE', 'LCM', 'LEFT', 'LEN', 'LINEST', 'LN', 'LOG', 'LOG10', 'LOGEST', 'LOGNORM.DIST', 'LOGNORM.INV', 'LOGNORMDIST', 'LOGNORMINV', 'LOWER', 'LT', 'LTE', 'MATCH', 'MAX', 'MAXA', 'MEDIAN', 'MID', 'MIN', 'MINA', 'MINUS', 'MINUTE', 'MIRR', 'MOD', 'MODE.MULT', 'MODE.SNGL', 'MODEMULT', 'MODESNGL', 'MONTH', 'MROUND', 'MULTINOMIAL', 'MULTIPLY', 'NE', 'NEGBINOM.DIST', 'NEGBINOMDIST', 'NETWORKDAYS', 'NOMINAL', 'NORM.DIST', 'NORM.INV', 'NORM.S.DIST', 'NORM.S.INV', 'NORMDIST', 'NORMINV', 'NORMSDIST', 'NORMSINV', 'NOT', 'NOW', 'NPER', 'NPV', 'NUMBERS', 'OCT2BIN', 'OCT2DEC', 'OCT2HEX', 'ODD', 'OR', 'PDURATION', 'PEARSON', 'PERCENTILEEXC', 'PERCENTILEINC', 'PERCENTRANKEXC', 'PERCENTRANKINC', 'PERMUT', 'PERMUTATIONA', 'PHI', 'PI', 'PMT', 'POISSON.DIST', 'POISSONDIST', 'POW', 'POWER', 'PPMT', 'PROB', 'PRODUCT', 'PROPER', 'PV', 'QUARTILE.EXC', 'QUARTILE.INC', 'QUARTILEEXC', 'QUARTILEINC', 'QUOTIENT', 'RADIANS', 'RAND', 'RANDBETWEEN', 'RANK.AVG', 'RANK.EQ', 'RANKAVG', 'RANKEQ', 'RATE', 'REFERENCE', 'REGEXEXTRACT', 'REGEXMATCH', 'REGEXREPLACE', 'REPLACE', 'REPT', 'RIGHT', 'ROMAN', 'ROUND', 'ROUNDDOWN', 'ROUNDUP', 'ROW', 'ROWS', 'RRI', 'RSQ', 'SEARCH', 'SEC', 'SECH', 'SECOND', 'SERIESSUM', 'SIGN', 'SIN', 'SINH', 'SKEW', 'SKEW.P', 'SKEWP', 'SLN', 'SLOPE', 'SMALL', 'SPLIT', 'SPLIT', 'SQRT', 'SQRTPI', 'STANDARDIZE', 'STDEV.P', 'STDEV.S', 'STDEVA', 'STDEVP', 'STDEVPA', 'STDEVS', 'STEYX', 'SUBSTITUTE', 'SUBTOTAL', 'SUM', 'SUMIF', 'SUMIFS', 'SUMPRODUCT', 'SUMSQ', 'SUMX2MY2', 'SUMX2PY2', 'SUMXMY2', 'SWITCH', 'SYD', 'T', 'T.DIST', 'T.DIST.2T', 'T.DIST.RT', 'T.INV', 'T.INV.2T', 'TAN', 'TANH', 'TBILLEQ', 'TBILLPRICE', 'TBILLYIELD', 'TDIST', 'TDIST2T', 'TDISTRT', 'TIME', 'TIMEVALUE', 'TINV', 'TINV2T', 'TODAY', 'TRANSPOSE', 'TREND', 'TRIM', 'TRIMMEAN', 'TRUE', 'TRUNC', 'UNICHAR', 'UNICODE', 'UNIQUE', 'UPPER', 'VAR.P', 'VAR.S', 'VARA', 'VARP', 'VARPA', 'VARS', 'WEEKDAY', 'WEEKNUM', 'WEIBULL.DIST', 'WEIBULLDIST', 'WORKDAY', 'XIRR', 'XNPV', 'XOR', 'YEAR', 'YEARFRAC'];\nexport default SUPPORTED_FORMULAS;","export var SYMBOL = '>';\nexport default function func(exp1, exp2) {\n return exp1 > exp2;\n}\nfunc.SYMBOL = SYMBOL;","export var SYMBOL = '>=';\nexport default function func(exp1, exp2) {\n return exp1 >= exp2;\n}\nfunc.SYMBOL = SYMBOL;","export var SYMBOL = '<';\nexport default function func(exp1, exp2) {\n return exp1 < exp2;\n}\nfunc.SYMBOL = SYMBOL;","export var SYMBOL = '<=';\nexport default function func(exp1, exp2) {\n return exp1 <= exp2;\n}\nfunc.SYMBOL = SYMBOL;","import { toNumber } from \"./../../helper/number.mjs\";\nimport { ERROR_VALUE } from \"./../../error.mjs\";\nexport var SYMBOL = '-';\nexport default function func(first) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var result = rest.reduce(function (acc, value) {\n return acc - toNumber(value);\n }, toNumber(first));\n\n if (isNaN(result)) {\n throw Error(ERROR_VALUE);\n }\n\n return result;\n}\nfunc.SYMBOL = SYMBOL;","import { toNumber } from \"./../../helper/number.mjs\";\nimport { ERROR_VALUE } from \"./../../error.mjs\";\nexport var SYMBOL = '*';\nexport default function func(first) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var result = rest.reduce(function (acc, value) {\n return acc * toNumber(value);\n }, toNumber(first));\n\n if (isNaN(result)) {\n throw Error(ERROR_VALUE);\n }\n\n return result;\n}\nfunc.SYMBOL = SYMBOL;","export var SYMBOL = '<>';\nexport default function func(exp1, exp2) {\n return exp1 !== exp2;\n}\nfunc.SYMBOL = SYMBOL;","import { toNumber } from \"./../../helper/number.mjs\";\nimport { ERROR_VALUE } from \"./../../error.mjs\";\nexport var SYMBOL = '^';\nexport default function func(exp1, exp2) {\n var result = Math.pow(toNumber(exp1), toNumber(exp2));\n\n if (isNaN(result)) {\n throw Error(ERROR_VALUE);\n }\n\n return result;\n}\nfunc.SYMBOL = SYMBOL;","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 _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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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\n/* eslint-disable import/no-named-as-default-member */\nimport add from \"./operator/add.mjs\";\nimport ampersand from \"./operator/ampersand.mjs\";\nimport divide from \"./operator/divide.mjs\";\nimport equal from \"./operator/equal.mjs\";\nimport formulaFunction from \"./operator/formula-function.mjs\";\nimport greaterThan from \"./operator/greater-than.mjs\";\nimport greaterThanOrEqual from \"./operator/greater-than-or-equal.mjs\";\nimport lessThan from \"./operator/less-than.mjs\";\nimport lessThanOrEqual from \"./operator/less-than-or-equal.mjs\";\nimport minus from \"./operator/minus.mjs\";\nimport multiply from \"./operator/multiply.mjs\";\nimport notEqual from \"./operator/not-equal.mjs\";\nimport power from \"./operator/power.mjs\";\nimport { ERROR_NAME } from \"./../error.mjs\";\nvar availableOperators = Object.create(null);\n/**\n * Evaluate values by operator id.git\n *\n * @param {String} operator Operator id.\n * @param {Array} [params=[]] Arguments to evaluate.\n * @returns {*}\n */\n\nexport default function evaluateByOperator(operator) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n operator = operator.toUpperCase();\n\n if (!availableOperators[operator]) {\n throw Error(ERROR_NAME);\n }\n\n return availableOperators[operator].apply(availableOperators, _toConsumableArray(params));\n}\n/**\n * Register operator.\n *\n * @param {String|Array} symbol Symbol to register.\n * @param {Function} func Logic to register for this symbol.\n */\n\nexport function registerOperation(symbol, func) {\n if (!Array.isArray(symbol)) {\n symbol = [symbol.toUpperCase()];\n }\n\n symbol.forEach(function (s) {\n if (func.isFactory) {\n availableOperators[s] = func(s);\n } else {\n availableOperators[s] = func;\n }\n });\n}\nregisterOperation(add.SYMBOL, add);\nregisterOperation(ampersand.SYMBOL, ampersand);\nregisterOperation(divide.SYMBOL, divide);\nregisterOperation(equal.SYMBOL, equal);\nregisterOperation(power.SYMBOL, power);\nregisterOperation(formulaFunction.SYMBOL, formulaFunction);\nregisterOperation(greaterThan.SYMBOL, greaterThan);\nregisterOperation(greaterThanOrEqual.SYMBOL, greaterThanOrEqual);\nregisterOperation(lessThan.SYMBOL, lessThan);\nregisterOperation(lessThanOrEqual.SYMBOL, lessThanOrEqual);\nregisterOperation(multiply.SYMBOL, multiply);\nregisterOperation(notEqual.SYMBOL, notEqual);\nregisterOperation(minus.SYMBOL, minus);","/* parser generated by jison 0.4.18 */\n\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar o = function o(k, v, _o, l) {\n for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v) {\n ;\n }\n\n return _o;\n},\n $V0 = [1, 5],\n $V1 = [1, 8],\n $V2 = [1, 6],\n $V3 = [1, 7],\n $V4 = [1, 9],\n $V5 = [1, 14],\n $V6 = [1, 15],\n $V7 = [1, 16],\n $V8 = [1, 12],\n $V9 = [1, 13],\n $Va = [1, 17],\n $Vb = [1, 19],\n $Vc = [1, 20],\n $Vd = [1, 21],\n $Ve = [1, 22],\n $Vf = [1, 23],\n $Vg = [1, 24],\n $Vh = [1, 25],\n $Vi = [1, 26],\n $Vj = [1, 27],\n $Vk = [1, 28],\n $Vl = [5, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 29, 30],\n $Vm = [5, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 29, 30, 32],\n $Vn = [5, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 29, 30, 34],\n $Vo = [5, 10, 11, 13, 14, 15, 16, 17, 29, 30],\n $Vp = [5, 10, 13, 14, 15, 16, 29, 30],\n $Vq = [5, 10, 11, 13, 14, 15, 16, 17, 18, 19, 29, 30],\n $Vr = [13, 29, 30];\n\nvar parser = {\n trace: function trace() {},\n yy: {},\n symbols_: {\n \"error\": 2,\n \"expressions\": 3,\n \"expression\": 4,\n \"EOF\": 5,\n \"variableSequence\": 6,\n \"number\": 7,\n \"STRING\": 8,\n \"&\": 9,\n \"=\": 10,\n \"+\": 11,\n \"(\": 12,\n \")\": 13,\n \"<\": 14,\n \">\": 15,\n \"NOT\": 16,\n \"-\": 17,\n \"*\": 18,\n \"/\": 19,\n \"^\": 20,\n \"FUNCTION\": 21,\n \"expseq\": 22,\n \"cell\": 23,\n \"ABSOLUTE_CELL\": 24,\n \"RELATIVE_CELL\": 25,\n \"MIXED_CELL\": 26,\n \":\": 27,\n \"ARRAY\": 28,\n \";\": 29,\n \",\": 30,\n \"VARIABLE\": 31,\n \"DECIMAL\": 32,\n \"NUMBER\": 33,\n \"%\": 34,\n \"ERROR\": 35,\n \"$accept\": 0,\n \"$end\": 1\n },\n terminals_: {\n 5: \"EOF\",\n 8: \"STRING\",\n 9: \"&\",\n 10: \"=\",\n 11: \"+\",\n 12: \"(\",\n 13: \")\",\n 14: \"<\",\n 15: \">\",\n 16: \"NOT\",\n 17: \"-\",\n 18: \"*\",\n 19: \"/\",\n 20: \"^\",\n 21: \"FUNCTION\",\n 24: \"ABSOLUTE_CELL\",\n 25: \"RELATIVE_CELL\",\n 26: \"MIXED_CELL\",\n 27: \":\",\n 28: \"ARRAY\",\n 29: \";\",\n 30: \",\",\n 31: \"VARIABLE\",\n 32: \"DECIMAL\",\n 33: \"NUMBER\",\n 34: \"%\",\n 35: \"ERROR\"\n },\n productions_: [0, [3, 2], [4, 1], [4, 1], [4, 1], [4, 3], [4, 3], [4, 3], [4, 3], [4, 4], [4, 4], [4, 4], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 2], [4, 2], [4, 3], [4, 4], [4, 1], [4, 1], [4, 2], [23, 1], [23, 1], [23, 1], [23, 3], [23, 3], [23, 3], [23, 3], [23, 3], [23, 3], [23, 3], [23, 3], [23, 3], [22, 1], [22, 1], [22, 3], [22, 3], [6, 1], [6, 3], [7, 1], [7, 3], [7, 2], [2, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate\n /* action[1] */\n , $$\n /* vstack */\n , _$\n /* lstack */\n ) {\n /* this == yyval */\n var $0 = $$.length - 1;\n\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n break;\n\n case 2:\n this.$ = yy.callVariable($$[$0][0]);\n break;\n\n case 3:\n this.$ = yy.toNumber($$[$0]);\n break;\n\n case 4:\n this.$ = yy.trimEdges($$[$0]);\n break;\n\n case 5:\n this.$ = yy.evaluateByOperator('&', [$$[$0 - 2], $$[$0]]);\n break;\n\n case 6:\n this.$ = yy.evaluateByOperator('=', [$$[$0 - 2], $$[$0]]);\n break;\n\n case 7:\n this.$ = yy.evaluateByOperator('+', [$$[$0 - 2], $$[$0]]);\n break;\n\n case 8:\n this.$ = $$[$0 - 1];\n break;\n\n case 9:\n this.$ = yy.evaluateByOperator('<=', [$$[$0 - 3], $$[$0]]);\n break;\n\n case 10:\n this.$ = yy.evaluateByOperator('>=', [$$[$0 - 3], $$[$0]]);\n break;\n\n case 11:\n this.$ = yy.evaluateByOperator('<>', [$$[$0 - 3], $$[$0]]);\n break;\n\n case 12:\n this.$ = yy.evaluateByOperator('NOT', [$$[$0 - 2], $$[$0]]);\n break;\n\n case 13:\n this.$ = yy.evaluateByOperator('>', [$$[$0 - 2], $$[$0]]);\n break;\n\n case 14:\n this.$ = yy.evaluateByOperator('<', [$$[$0 - 2], $$[$0]]);\n break;\n\n case 15:\n this.$ = yy.evaluateByOperator('-', [$$[$0 - 2], $$[$0]]);\n break;\n\n case 16:\n this.$ = yy.evaluateByOperator('*', [$$[$0 - 2], $$[$0]]);\n break;\n\n case 17:\n this.$ = yy.evaluateByOperator('/', [$$[$0 - 2], $$[$0]]);\n break;\n\n case 18:\n this.$ = yy.evaluateByOperator('^', [$$[$0 - 2], $$[$0]]);\n break;\n\n case 19:\n var n1 = yy.invertNumber($$[$0]);\n this.$ = n1;\n\n if (isNaN(this.$)) {\n this.$ = 0;\n }\n\n break;\n\n case 20:\n var n1 = yy.toNumber($$[$0]);\n this.$ = n1;\n\n if (isNaN(this.$)) {\n this.$ = 0;\n }\n\n break;\n\n case 21:\n this.$ = yy.callFunction($$[$0 - 2]);\n break;\n\n case 22:\n this.$ = yy.callFunction($$[$0 - 3], $$[$0 - 1]);\n break;\n\n case 26:\n case 27:\n case 28:\n this.$ = yy.cellValue($$[$0]);\n break;\n\n case 29:\n case 30:\n case 31:\n case 32:\n case 33:\n case 34:\n case 35:\n case 36:\n case 37:\n this.$ = yy.rangeValue($$[$0 - 2], $$[$0]);\n break;\n\n case 38:\n case 42:\n this.$ = [$$[$0]];\n break;\n\n case 39:\n this.$ = yy.trimEdges(yytext).split(',');\n break;\n\n case 40:\n case 41:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n\n case 43:\n this.$ = Array.isArray($$[$0 - 2]) ? $$[$0 - 2] : [$$[$0 - 2]];\n this.$.push($$[$0]);\n break;\n\n case 44:\n this.$ = $$[$0];\n break;\n\n case 45:\n this.$ = ($$[$0 - 2] + '.' + $$[$0]) * 1;\n break;\n\n case 46:\n this.$ = $$[$0 - 1] * 0.01;\n break;\n\n case 47:\n this.$ = yy.throwError($$[$0]);\n break;\n }\n },\n table: [{\n 2: 11,\n 3: 1,\n 4: 2,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 1: [3]\n }, {\n 5: [1, 18],\n 9: $Vb,\n 10: $Vc,\n 11: $Vd,\n 14: $Ve,\n 15: $Vf,\n 16: $Vg,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }, o($Vl, [2, 2], {\n 32: [1, 29]\n }), o($Vl, [2, 3], {\n 34: [1, 30]\n }), o($Vl, [2, 4]), {\n 2: 11,\n 4: 31,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 32,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 33,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 12: [1, 34]\n }, o($Vl, [2, 23]), o($Vl, [2, 24], {\n 2: 35,\n 35: $Va\n }), o($Vm, [2, 42]), o($Vn, [2, 44], {\n 32: [1, 36]\n }), o($Vl, [2, 26], {\n 27: [1, 37]\n }), o($Vl, [2, 27], {\n 27: [1, 38]\n }), o($Vl, [2, 28], {\n 27: [1, 39]\n }), o([5, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 29, 30, 35], [2, 47]), {\n 1: [2, 1]\n }, {\n 2: 11,\n 4: 40,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 41,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 42,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 45,\n 6: 3,\n 7: 4,\n 8: $V0,\n 10: [1, 43],\n 11: $V1,\n 12: $V2,\n 15: [1, 44],\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 47,\n 6: 3,\n 7: 4,\n 8: $V0,\n 10: [1, 46],\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 48,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 49,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 50,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 51,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 52,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 31: [1, 53]\n }, o($Vn, [2, 46]), {\n 9: $Vb,\n 10: $Vc,\n 11: $Vd,\n 13: [1, 54],\n 14: $Ve,\n 15: $Vf,\n 16: $Vg,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }, o($Vo, [2, 19], {\n 9: $Vb,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), o($Vo, [2, 20], {\n 9: $Vb,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), {\n 2: 11,\n 4: 57,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 13: [1, 55],\n 17: $V3,\n 21: $V4,\n 22: 56,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 28: [1, 58],\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, o($Vl, [2, 25]), {\n 33: [1, 59]\n }, {\n 24: [1, 60],\n 25: [1, 61],\n 26: [1, 62]\n }, {\n 24: [1, 63],\n 25: [1, 64],\n 26: [1, 65]\n }, {\n 24: [1, 66],\n 25: [1, 67],\n 26: [1, 68]\n }, o($Vl, [2, 5]), o([5, 10, 13, 29, 30], [2, 6], {\n 9: $Vb,\n 11: $Vd,\n 14: $Ve,\n 15: $Vf,\n 16: $Vg,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), o($Vo, [2, 7], {\n 9: $Vb,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), {\n 2: 11,\n 4: 69,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 70,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, o($Vp, [2, 14], {\n 9: $Vb,\n 11: $Vd,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), {\n 2: 11,\n 4: 71,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, o($Vp, [2, 13], {\n 9: $Vb,\n 11: $Vd,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), o([5, 10, 13, 16, 29, 30], [2, 12], {\n 9: $Vb,\n 11: $Vd,\n 14: $Ve,\n 15: $Vf,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), o($Vo, [2, 15], {\n 9: $Vb,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), o($Vq, [2, 16], {\n 9: $Vb,\n 20: $Vk\n }), o($Vq, [2, 17], {\n 9: $Vb,\n 20: $Vk\n }), o([5, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 29, 30], [2, 18], {\n 9: $Vb\n }), o($Vm, [2, 43]), o($Vl, [2, 8]), o($Vl, [2, 21]), {\n 13: [1, 72],\n 29: [1, 73],\n 30: [1, 74]\n }, o($Vr, [2, 38], {\n 9: $Vb,\n 10: $Vc,\n 11: $Vd,\n 14: $Ve,\n 15: $Vf,\n 16: $Vg,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), o($Vr, [2, 39]), o($Vn, [2, 45]), o($Vl, [2, 29]), o($Vl, [2, 30]), o($Vl, [2, 31]), o($Vl, [2, 32]), o($Vl, [2, 33]), o($Vl, [2, 34]), o($Vl, [2, 35]), o($Vl, [2, 36]), o($Vl, [2, 37]), o($Vp, [2, 9], {\n 9: $Vb,\n 11: $Vd,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), o($Vp, [2, 11], {\n 9: $Vb,\n 11: $Vd,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), o($Vp, [2, 10], {\n 9: $Vb,\n 11: $Vd,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), o($Vl, [2, 22]), {\n 2: 11,\n 4: 75,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, {\n 2: 11,\n 4: 76,\n 6: 3,\n 7: 4,\n 8: $V0,\n 11: $V1,\n 12: $V2,\n 17: $V3,\n 21: $V4,\n 23: 10,\n 24: $V5,\n 25: $V6,\n 26: $V7,\n 31: $V8,\n 33: $V9,\n 35: $Va\n }, o($Vr, [2, 40], {\n 9: $Vb,\n 10: $Vc,\n 11: $Vd,\n 14: $Ve,\n 15: $Vf,\n 16: $Vg,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n }), o($Vr, [2, 41], {\n 9: $Vb,\n 10: $Vc,\n 11: $Vd,\n 14: $Ve,\n 15: $Vf,\n 16: $Vg,\n 17: $Vh,\n 18: $Vi,\n 19: $Vj,\n 20: $Vk\n })],\n defaultActions: {\n 18: [2, 1]\n },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this,\n stack = [0],\n tstack = [],\n // token stack\n vstack = [null],\n // semantic value stack\n lstack = [],\n // location stack\n table = this.table,\n yytext = '',\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n var args = lstack.slice.call(arguments, 1); //this.reductionCount = this.shiftCount = 0;\n\n var lexer = Object.create(this.lexer);\n var sharedState = {\n yy: {}\n }; // copy state\n\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n\n var lex = function lex() {\n var token;\n token = lexer.lex() || EOF; // if token isn't its numeric value, convert\n\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token;\n };\n\n var symbol,\n preErrorSymbol,\n state,\n action,\n a,\n r,\n yyval = {},\n p,\n len,\n newState,\n expected;\n\n while (true) {\n // retreive state number from top of stack\n state = stack[stack.length - 1]; // use default actions if available\n\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n } // read action for current state and first input\n\n\n action = table[state] && table[state][symbol];\n } // handle parse error\n\n\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n // Return the rule stack depth where the nearest error rule can be found.\n // Return FALSE when no error recovery rule was found.\n var locateNearestErrorRecoveryRule = function locateNearestErrorRecoveryRule(state) {\n var stack_probe = stack.length - 1;\n var depth = 0; // try to recover from error\n\n for (;;) {\n // check for error recovery rule in this state\n if (TERROR.toString() in table[state]) {\n return depth;\n }\n\n if (state === 0 || stack_probe < 2) {\n return false; // No suitable error recovery rule available.\n }\n\n stack_probe -= 2; // popStack(1): [symbol, action]\n\n state = stack[stack_probe];\n ++depth;\n }\n };\n\n var error_rule_depth;\n var errStr = '';\n\n if (!recovering) {\n // first see if there's any chance at hitting an error recovery rule:\n error_rule_depth = locateNearestErrorRecoveryRule(state); // Report error\n\n expected = [];\n\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + \":\\n\" + lexer.showPosition() + \"\\nExpecting \" + expected.join(', ') + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected,\n recoverable: error_rule_depth !== false\n });\n } else if (preErrorSymbol !== EOF) {\n error_rule_depth = locateNearestErrorRecoveryRule(state);\n } // just recovered from another error\n\n\n if (recovering == 3) {\n if (symbol === EOF || preErrorSymbol === EOF) {\n throw new Error(errStr || 'Parsing halted while starting to recover from another error.');\n } // discard current lookahead and grab another\n\n\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n symbol = lex();\n } // try to recover from error\n\n\n if (error_rule_depth === false) {\n throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.');\n }\n\n popStack(error_rule_depth);\n preErrorSymbol = symbol == TERROR ? null : symbol; // save the lookahead token\n\n symbol = TERROR; // insert generic error symbol as new lookahead\n\n state = stack[stack.length - 1];\n action = table[state] && table[state][TERROR];\n recovering = 3; // allow 3 real symbols to be shifted before reporting a new error\n } // this shouldn't happen, unless resolve defaults are off\n\n\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n\n switch (action[0]) {\n case 1:\n // shift\n //this.shiftCount++;\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]); // push state\n\n symbol = null;\n\n if (!preErrorSymbol) {\n // normal execution/no error\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n\n if (recovering > 0) {\n recovering--;\n }\n } else {\n // error just occurred, resume old lookahead f/ before error\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n\n break;\n\n case 2:\n // reduce\n //this.reductionCount++;\n len = this.productions_[action[1]][1]; // perform semantic action\n\n yyval.$ = vstack[vstack.length - len]; // default to $$ = $1\n // default location, uses first token for firsts, last for lasts\n\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n\n if (ranges) {\n yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\n }\n\n r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));\n\n if (typeof r !== 'undefined') {\n return r;\n } // pop off stack\n\n\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n\n stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)\n\n vstack.push(yyval.$);\n lstack.push(yyval._$); // goto new state = table[STATE][NONTERMINAL]\n\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n\n case 3:\n // accept\n return true;\n }\n }\n\n return true;\n }\n};\n/* generated by jison-lex 0.3.4 */\n\nvar lexer = function () {\n var lexer = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function setInput(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function input() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function unput(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len); //this.yyleng -= len;\n\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function more() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function reject() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n\n return this;\n },\n // retain first n characters of the match\n less: function less(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function pastInput() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function upcomingInput() {\n var next = this.match;\n\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n\n return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function showPosition() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function test_match(match, indexed_rule) {\n var token, lines, backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n\n if (lines) {\n this.yylineno += lines.length;\n }\n\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n\n if (this.done && this._input) {\n this.done = false;\n }\n\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n\n return false;\n },\n // return next match in input\n next: function next() {\n if (this.done) {\n return this.EOF;\n }\n\n if (!this._input) {\n this.done = true;\n }\n\n var token, match, tempMatch, index;\n\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n\n var rules = this._currentRules();\n\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n\n if (match) {\n token = this.test_match(match, rules[index]);\n\n if (token !== false) {\n return token;\n } // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n\n\n return false;\n }\n\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n\n switch ($avoiding_name_collisions) {\n case 0:\n /* skip whitespace */\n break;\n\n case 1:\n return 8;\n break;\n\n case 2:\n return 8;\n break;\n\n case 3:\n return 21;\n break;\n\n case 4:\n return 35;\n break;\n\n case 5:\n return 24;\n break;\n\n case 6:\n return 26;\n break;\n\n case 7:\n return 26;\n break;\n\n case 8:\n return 25;\n break;\n\n case 9:\n return 21;\n break;\n\n case 10:\n return 31;\n break;\n\n case 11:\n return 31;\n break;\n\n case 12:\n return 33;\n break;\n\n case 13:\n return 28;\n break;\n\n case 14:\n return 9;\n break;\n\n case 15:\n return ' ';\n break;\n\n case 16:\n return 32;\n break;\n\n case 17:\n return 27;\n break;\n\n case 18:\n return 29;\n break;\n\n case 19:\n return 30;\n break;\n\n case 20:\n return 18;\n break;\n\n case 21:\n return 19;\n break;\n\n case 22:\n return 17;\n break;\n\n case 23:\n return 11;\n break;\n\n case 24:\n return 20;\n break;\n\n case 25:\n return 12;\n break;\n\n case 26:\n return 13;\n break;\n\n case 27:\n return 15;\n break;\n\n case 28:\n return 14;\n break;\n\n case 29:\n return 16;\n break;\n\n case 30:\n return '\"';\n break;\n\n case 31:\n return \"'\";\n break;\n\n case 32:\n return \"!\";\n break;\n\n case 33:\n return 10;\n break;\n\n case 34:\n return 34;\n break;\n\n case 35:\n return '#';\n break;\n\n case 36:\n return 5;\n break;\n }\n },\n rules: [/^(?:\\s+)/, /^(?:\"(\\\\[\"]|[^\"])*\")/, /^(?:'(\\\\[']|[^'])*')/, /^(?:[A-Za-z]{1,}[A-Za-z_0-9\\.]+(?=[(]))/, /^(?:#[A-Z0-9\\/]+(!|\\?)?)/, /^(?:\\$[A-Za-z]+\\$[0-9]+)/, /^(?:\\$[A-Za-z]+[0-9]+)/, /^(?:[A-Za-z]+\\$[0-9]+)/, /^(?:[A-Za-z]+[0-9]+)/, /^(?:[A-Za-z\\.]+(?=[(]))/, /^(?:[A-Za-z]{1,}[A-Za-z_0-9]+)/, /^(?:[A-Za-z_]+)/, /^(?:[0-9]+)/, /^(?:\\[(.*)?\\])/, /^(?:&)/, /^(?: )/, /^(?:[.])/, /^(?::)/, /^(?:;)/, /^(?:,)/, /^(?:\\*)/, /^(?:\\/)/, /^(?:-)/, /^(?:\\+)/, /^(?:\\^)/, /^(?:\\()/, /^(?:\\))/, /^(?:>)/, /^(?:<)/, /^(?:NOT\\b)/, /^(?:\")/, /^(?:')/, /^(?:!)/, /^(?:=)/, /^(?:%)/, /^(?:[#])/, /^(?:$)/],\n conditions: {\n \"INITIAL\": {\n \"rules\": [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],\n \"inclusive\": true\n }\n }\n };\n return lexer;\n}();\n\nparser.lexer = lexer;\nexport function Parser() {\n this.yy = {};\n}\nParser.prototype = parser;\nparser.Parser = Parser;","/* eslint-disable import/prefer-default-export */\n\n/**\n * Trim value by cutting character starting from the beginning and ending at the same time.\n *\n * @param {String} string String to trimming.\n * @param {Number} [margin=1] Number of character to cut.\n * @returns {String}\n */\nexport function trimEdges(string) {\n var margin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n string = string.substring(margin, string.length - margin);\n return string;\n}","function _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) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\n/**\n * Convert row label to index.\n *\n * @param {String} label Row label (eq. '1', '5')\n * @returns {Number} Returns -1 if label is not recognized otherwise proper row index.\n */\nexport function rowLabelToIndex(label) {\n var result = parseInt(label, 10);\n\n if (isNaN(result)) {\n result = -1;\n } else {\n result = Math.max(result - 1, -1);\n }\n\n return result;\n}\n/**\n * Convert row index to label.\n *\n * @param {Number} row Row index.\n * @returns {String} Returns row label (eq. '1', '7').\n */\n\nexport function rowIndexToLabel(row) {\n var result = '';\n\n if (row >= 0) {\n result = \"\".concat(row + 1);\n }\n\n return result;\n}\nvar COLUMN_LABEL_BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\nvar COLUMN_LABEL_BASE_LENGTH = COLUMN_LABEL_BASE.length;\n/**\n * Convert column label to index.\n *\n * @param {String} label Column label (eq. 'ABB', 'CNQ')\n * @returns {Number} Returns -1 if label is not recognized otherwise proper column index.\n */\n\nexport function columnLabelToIndex(label) {\n var result = 0;\n\n if (typeof label === 'string') {\n label = label.toUpperCase();\n\n for (var i = 0, j = label.length - 1; i < label.length; i += 1, j -= 1) {\n result += Math.pow(COLUMN_LABEL_BASE_LENGTH, j) * (COLUMN_LABEL_BASE.indexOf(label[i]) + 1);\n }\n }\n\n --result;\n return result;\n}\n/**\n * Convert column index to label.\n *\n * @param {Number} column Column index.\n * @returns {String} Returns column label (eq. 'ABB', 'CNQ').\n */\n\nexport function columnIndexToLabel(column) {\n var result = '';\n\n while (column >= 0) {\n result = String.fromCharCode(column % COLUMN_LABEL_BASE_LENGTH + 97) + result;\n column = Math.floor(column / COLUMN_LABEL_BASE_LENGTH) - 1;\n }\n\n return result.toUpperCase();\n}\nvar LABEL_EXTRACT_REGEXP = /^([$])?([A-Za-z]+)([$])?([0-9]+)$/;\n/**\n * Extract cell coordinates.\n *\n * @param {String} label Cell coordinates (eq. 'A1', '$B6', '$N$98').\n * @returns {Array} Returns an array of objects.\n */\n\nexport function extractLabel(label) {\n if (typeof label !== 'string' || !LABEL_EXTRACT_REGEXP.test(label)) {\n return [];\n }\n\n var _label$toUpperCase$ma = label.toUpperCase().match(LABEL_EXTRACT_REGEXP),\n _label$toUpperCase$ma2 = _slicedToArray(_label$toUpperCase$ma, 5),\n columnAbs = _label$toUpperCase$ma2[1],\n column = _label$toUpperCase$ma2[2],\n rowAbs = _label$toUpperCase$ma2[3],\n row = _label$toUpperCase$ma2[4];\n\n return [{\n index: rowLabelToIndex(row),\n label: row,\n isAbsolute: rowAbs === '$'\n }, {\n index: columnLabelToIndex(column),\n label: column,\n isAbsolute: columnAbs === '$'\n }];\n}\n/**\n * Convert row and column indexes into cell label.\n *\n * @param {Object} row Object with `index` and `isAbsolute` properties.\n * @param {Object} column Object with `index` and `isAbsolute` properties.\n * @returns {String} Returns cell label.\n */\n\nexport function toLabel(row, column) {\n var rowLabel = (row.isAbsolute ? '$' : '') + rowIndexToLabel(row.index);\n var columnLabel = (column.isAbsolute ? '$' : '') + columnIndexToLabel(column.index);\n return columnLabel + rowLabel;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport Emitter from 'tiny-emitter';\nimport evaluateByOperator from \"./evaluate-by-operator/evaluate-by-operator.mjs\";\nimport { Parser as GrammarParser } from \"./grammar-parser/grammar-parser.mjs\";\nimport { trimEdges } from \"./helper/string.mjs\";\nimport { toNumber, invertNumber } from \"./helper/number.mjs\";\nimport errorParser, { isValidStrict as isErrorValid, ERROR, ERROR_NAME } from \"./error.mjs\";\nimport { extractLabel, toLabel } from \"./helper/cell.mjs\";\n/**\n * @class Parser\n */\n\nvar Parser = /*#__PURE__*/function (_Emitter) {\n _inherits(Parser, _Emitter);\n\n var _super = _createSuper(Parser);\n\n function Parser() {\n var _this;\n\n _classCallCheck(this, Parser);\n\n _this = _super.call(this);\n _this.parser = new GrammarParser();\n _this.parser.yy = {\n toNumber: toNumber,\n trimEdges: trimEdges,\n invertNumber: invertNumber,\n throwError: function throwError(errorName) {\n return _this._throwError(errorName);\n },\n callVariable: function callVariable(variable) {\n return _this._callVariable(variable);\n },\n evaluateByOperator: evaluateByOperator,\n callFunction: function callFunction(name, params) {\n return _this._callFunction(name, params);\n },\n cellValue: function cellValue(value) {\n return _this._callCellValue(value);\n },\n rangeValue: function rangeValue(start, end) {\n return _this._callRangeValue(start, end);\n }\n };\n _this.variables = Object.create(null);\n _this.functions = Object.create(null);\n\n _this.setVariable('TRUE', true).setVariable('FALSE', false).setVariable('NULL', null);\n\n return _this;\n }\n /**\n * Parse formula expression.\n *\n * @param {String} expression to parse.\n * @return {*} Returns an object with tow properties `error` and `result`.\n */\n\n\n _createClass(Parser, [{\n key: \"parse\",\n value: function parse(expression) {\n var result = null;\n var error = null;\n\n try {\n if (expression === '') {\n result = '';\n } else {\n result = this.parser.parse(expression);\n }\n } catch (ex) {\n var message = errorParser(ex.message);\n\n if (message) {\n error = message;\n } else {\n error = errorParser(ERROR);\n }\n }\n\n if (result instanceof Error) {\n error = errorParser(result.message) || errorParser(ERROR);\n result = null;\n }\n\n return {\n error: error,\n result: result\n };\n }\n /**\n * Set predefined variable name which can be visible while parsing formula expression.\n *\n * @param {String} name Variable name.\n * @param {*} value Variable value.\n * @returns {Parser}\n */\n\n }, {\n key: \"setVariable\",\n value: function setVariable(name, value) {\n this.variables[name] = value;\n return this;\n }\n /**\n * Get variable name.\n *\n * @param {String} name Variable name.\n * @returns {*}\n */\n\n }, {\n key: \"getVariable\",\n value: function getVariable(name) {\n return this.variables[name];\n }\n /**\n * Retrieve variable value by its name.\n *\n * @param name Variable name.\n * @returns {*}\n * @private\n */\n\n }, {\n key: \"_callVariable\",\n value: function _callVariable(name) {\n var value = this.getVariable(name);\n this.emit('callVariable', name, function (newValue) {\n if (newValue !== void 0) {\n value = newValue;\n }\n });\n\n if (value === void 0) {\n throw Error(ERROR_NAME);\n }\n\n return value;\n }\n /**\n * Set custom function which can be visible while parsing formula expression.\n *\n * @param {String} name Custom function name.\n * @param {Function} fn Custom function.\n * @returns {Parser}\n */\n\n }, {\n key: \"setFunction\",\n value: function setFunction(name, fn) {\n this.functions[name] = fn;\n return this;\n }\n /**\n * Get custom function.\n *\n * @param {String} name Custom function name.\n * @returns {*}\n */\n\n }, {\n key: \"getFunction\",\n value: function getFunction(name) {\n return this.functions[name];\n }\n /**\n * Call function with provided params.\n *\n * @param name Function name.\n * @param params Function params.\n * @returns {*}\n * @private\n */\n\n }, {\n key: \"_callFunction\",\n value: function _callFunction(name) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var fn = this.getFunction(name);\n var value;\n\n if (fn) {\n value = fn(params);\n }\n\n this.emit('callFunction', name, params, function (newValue) {\n if (newValue !== void 0) {\n value = newValue;\n }\n });\n return value === void 0 ? evaluateByOperator(name, params) : value;\n }\n /**\n * Retrieve value by its label (`B3`, `B$3`, `B$3`, `$B$3`).\n *\n * @param {String} label Coordinates.\n * @returns {*}\n * @private\n */\n\n }, {\n key: \"_callCellValue\",\n value: function _callCellValue(label) {\n label = label.toUpperCase();\n\n var _extractLabel = extractLabel(label),\n _extractLabel2 = _slicedToArray(_extractLabel, 2),\n row = _extractLabel2[0],\n column = _extractLabel2[1];\n\n var value = void 0;\n this.emit('callCellValue', {\n label: label,\n row: row,\n column: column\n }, function (_value) {\n value = _value;\n });\n return value;\n }\n /**\n * Retrieve value by its label (`B3:A1`, `B$3:A1`, `B$3:$A1`, `$B$3:A$1`).\n *\n * @param {String} startLabel Coordinates of the first cell.\n * @param {String} endLabel Coordinates of the last cell.\n * @returns {Array} Returns an array of mixed values.\n * @private\n */\n\n }, {\n key: \"_callRangeValue\",\n value: function _callRangeValue(startLabel, endLabel) {\n startLabel = startLabel.toUpperCase();\n endLabel = endLabel.toUpperCase();\n\n var _extractLabel3 = extractLabel(startLabel),\n _extractLabel4 = _slicedToArray(_extractLabel3, 2),\n startRow = _extractLabel4[0],\n startColumn = _extractLabel4[1];\n\n var _extractLabel5 = extractLabel(endLabel),\n _extractLabel6 = _slicedToArray(_extractLabel5, 2),\n endRow = _extractLabel6[0],\n endColumn = _extractLabel6[1];\n\n var startCell = {};\n var endCell = {};\n\n if (startRow.index <= endRow.index) {\n startCell.row = startRow;\n endCell.row = endRow;\n } else {\n startCell.row = endRow;\n endCell.row = startRow;\n }\n\n if (startColumn.index <= endColumn.index) {\n startCell.column = startColumn;\n endCell.column = endColumn;\n } else {\n startCell.column = endColumn;\n endCell.column = startColumn;\n }\n\n startCell.label = toLabel(startCell.row, startCell.column);\n endCell.label = toLabel(endCell.row, endCell.column);\n var value = [];\n this.emit('callRangeValue', startCell, endCell, function () {\n var _value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n value = _value;\n });\n return value;\n }\n /**\n * Try to throw error by its name.\n *\n * @param {String} errorName Error name.\n * @returns {String}\n * @private\n */\n\n }, {\n key: \"_throwError\",\n value: function _throwError(errorName) {\n if (isErrorValid(errorName)) {\n throw Error(errorName);\n }\n\n throw Error(ERROR);\n }\n }]);\n\n return Parser;\n}(Emitter);\n\nexport default Parser;","import { Parser } from \"hot-formula-parser\";\r\n\r\nexport const parser = new Parser();\r\n","import {\r\n\tcreateSlice,\r\n\tcreateEntityAdapter,\r\n\tcreateAsyncThunk,\r\n} from \"@reduxjs/toolkit\";\r\nimport { formulaEdited } from \"./formulasSlice\";\r\n\r\nimport { parser } from \"components/Parser\";\r\n\r\nconst answersAdapter = createEntityAdapter();\r\n\r\nconst initialState = answersAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\n// export const answerRemoved = createAsyncThunk(\r\n// \t\"answer/answerRemoved\",\r\n// \tasync (id, { getState, dispatch }) => {\r\n// \t\tconst state = getState();\r\n// \t\tconst answers = selectAllAnswers(state);\r\n// \t\tconst answer = answers.find((a) => a.id === id);\r\n// \t\t//trigger an answer upsert with a null value\r\n// \t\t//this ensures that dependencies are updated as expected\r\n// \t\tif (answer) dispatch(answerUpserted({ ...answer, value: null }));\r\n// \t}\r\n// );\r\n\r\nexport const answerUpserted = createAsyncThunk(\r\n\t\"answer/answerUpserted\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (action, { getState, dispatch }) => {\r\n\t\t//call the answer reducer\r\n\t\tdispatch(answerEdited(action));\r\n\r\n\t\t//get the row of the action, for child questions\r\n\t\tconst { row } = action;\r\n\r\n\t\t//grab all state we need for formula calculations\r\n\t\tconst { dependencies, formulas, answers } = getState();\r\n\r\n\t\t//returns an array of formulas that depend on the value that just changed\r\n\t\tlet dependentFormulas =\r\n\t\t\tdependencies.entities[action.questionId]?.formulas;\r\n\r\n\t\tif (dependentFormulas && dependentFormulas.length > 0) {\r\n\t\t\tdependentFormulas.forEach((d) => {\r\n\t\t\t\t//get all of the dependencies of this formula\r\n\t\t\t\tconst formula = formulas.entities[d];\r\n\t\t\t\tformula.dependencies.forEach((sd) => {\r\n\t\t\t\t\tlet id = row ? row[sd] : sd; //if null, try get a non-instance value\r\n\t\t\t\t\t//todo: replace parseFloat with a more accurate and safe method\r\n\t\t\t\t\tlet value = answers.entities[id]?.value;\r\n\t\t\t\t\tparser.setVariable(\r\n\t\t\t\t\t\tsd,\r\n\t\t\t\t\t\t!Array.isArray(value)\r\n\t\t\t\t\t\t\t? answers.entities[id]?.dataType !== \"string\" &&\r\n\t\t\t\t\t\t\t typeof value === \"number\"\r\n\t\t\t\t\t\t\t\t? parseFloat(value || 0)\r\n\t\t\t\t\t\t\t\t: value\r\n\t\t\t\t\t\t\t: value.join(\",\")\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst { error, result } = parser.parse(formula.text);\r\n\r\n\t\t\t\tif (error) {\r\n\t\t\t\t\tdispatch(formulaEdited({ ...formula, error: error }));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//if child value, stored on an object with rowId as key\r\n\t\t\t\t\t//else stored as value primitive\r\n\t\t\t\t\tconst valuesByRow = row\r\n\t\t\t\t\t\t? { ...formula.valuesByRow, [row.id]: result }\r\n\t\t\t\t\t\t: { ...formula.valuesByRow };\r\n\t\t\t\t\tconst value = row ? formula.value : result;\r\n\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\tformulaEdited({\r\n\t\t\t\t\t\t\t...formula,\r\n\t\t\t\t\t\t\tvaluesByRow: valuesByRow,\r\n\t\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\t\terror: null,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst answersSlice = createSlice({\r\n\tname: \"answer\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tanswerAdded(state, action) {\r\n\t\t\tanswersAdapter.addOne(state, action.payload);\r\n\t\t},\r\n\t\tanswerEdited(state, action) {\r\n\t\t\tanswersAdapter.upsertOne(state, action.payload);\r\n\t\t},\r\n\t\tanswersReceived(state, action) {\r\n\t\t\tanswersAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t\tanswerRemoved(state, action) {\r\n\t\t\tanswersAdapter.removeOne(state, action.payload);\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { answerAdded, answerEdited, answersReceived, answerRemoved } =\r\n\tanswersSlice.actions;\r\n\r\n/*\r\nSELECTORS\r\n*/\r\nexport const { selectAll: selectAllAnswers, selectById: selectAnswerById } =\r\n\tanswersAdapter.getSelectors((state) => state.answers);\r\n\r\nexport const selectAnswersError = (state) => state.answers.error;\r\n\r\nexport default answersSlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateEntityAdapter,\r\n\tcreateAsyncThunk,\r\n} from \"@reduxjs/toolkit\";\r\nimport { getAttachmentById, getUploadDocuments } from \"api\";\r\nimport { downloadFile } from \"../utils/common\";\r\n\r\nexport const fetchAttachmentById = createAsyncThunk(\r\n\t\"attachment/fetchAttachmentById\",\r\n\tasync (attachmentId, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tdownloadFile(await getAttachmentById({ attachmentId }));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchAttachmentsByFormId = createAsyncThunk(\r\n\t\"attachment/fetchAttachmentsByFormId\",\r\n\tasync (formId, { dispatch, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tdispatch(attachmentsReceived(await getUploadDocuments({ formId })));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const deleteAttachmentsByQuestionId = createAsyncThunk(\r\n\t\"attachment/deleteAttachmentsByQuestionId\",\r\n\tasync (questionId, { dispatch, getState, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst state = getState();\r\n\t\t\tconst attachments = selectAllAttachments(state);\r\n\t\t\tconst toDelete = attachments.filter(\r\n\t\t\t\t(a) => a.questionId === questionId\r\n\t\t\t);\r\n\t\t\ttoDelete.forEach(({ id }) => {\r\n\t\t\t\tdispatch(attachmentUpserted({ id, isDeleted: true }));\r\n\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst attachmentsAdapter = createEntityAdapter();\r\n\r\nconst initialState = attachmentsAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nconst attachmentsSlice = createSlice({\r\n\tname: \"attachments\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tattachmentsReceived(state, action) {\r\n\t\t\tattachmentsAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t\tattachmentUpserted(state, action) {\r\n\t\t\tif (action.payload.isDeleted) {\r\n\t\t\t\tattachmentsAdapter.removeOne(state, action.payload.id);\r\n\t\t\t} else {\r\n\t\t\t\tattachmentsAdapter.upsertOne(state, action.payload);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\t[fetchAttachmentById.pending]: (state, action) => {},\r\n\t\t[fetchAttachmentById.fulfilled]: (state, action) => {},\r\n\t\t[fetchAttachmentById.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchAttachmentsByFormId.pending]: (state, action) => {},\r\n\t\t[fetchAttachmentsByFormId.fulfilled]: (state, action) => {},\r\n\t\t[fetchAttachmentsByFormId.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\n/*\r\nACTIONS\r\nattachments data can only ever be received via API\r\nThere are no actions to CRUD individual attachments\r\n*/\r\nexport const { attachmentUpserted, attachmentsReceived } =\r\n\tattachmentsSlice.actions;\r\n\r\n/*\r\nSELECTORS\r\n*/\r\nexport const {\r\n\tselectAll: selectAllAttachments,\r\n\tselectById: selectAttachmentById,\r\n} = attachmentsAdapter.getSelectors((state) => state.attachments);\r\n\r\n/*\r\nCUSTOM SELECTORS\r\n*/\r\nexport const selectAttachmentsError = (state) => state.attachments.error;\r\n\r\nexport default attachmentsSlice.reducer;\r\n","import { createSlice, createEntityAdapter } from \"@reduxjs/toolkit\";\r\n\r\nconst dependencyAdapter = createEntityAdapter();\r\n\r\nconst initialState = dependencyAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nconst dependencySlice = createSlice({\r\n\tname: \"dependency\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tdependencyAdded(state, action) {\r\n\t\t\tdependencyAdapter.addOne(state, action.payload);\r\n\t\t},\r\n\t\tdependencyEdited(state, action) {\r\n\t\t\tdependencyAdapter.upsertOne(state, action.payload);\r\n\t\t},\r\n\t\tdependencyReceived(state, action) {\r\n\t\t\tdependencyAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { dependencyAdded, dependencyEdited, dependencyReceived } =\r\n\tdependencySlice.actions;\r\n\r\n/*\r\nSELECTORS\r\n*/\r\nexport const {\r\n\tselectAll: selectAllDependencies,\r\n\tselectById: selectDependencyById,\r\n} = dependencyAdapter.getSelectors((state) => state.dependencies);\r\n\r\nexport const selectDependenciesError = (state) => state.dependencies.error;\r\n\r\nexport default dependencySlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateAsyncThunk,\r\n\tcreateSelector,\r\n} from \"@reduxjs/toolkit\";\r\nimport { questionsReceived, selectAllQuestions } from \"./questionsSlice\";\r\nimport { pagesReceived, selectAllPages } from \"./pagesSlice\";\r\nimport { lookupsReceived, selectAllLookups } from \"./lookupsSlice\";\r\nimport { treesReceived, selectAllTrees } from \"./treesSlice\";\r\nimport { sectionsReceived, selectAllSections } from \"./sectionsSlice\";\r\nimport { answersReceived } from \"./answersSlice\";\r\nimport { rowsReceived } from \"./rowsSlice\";\r\nimport {\r\n\tformulasReceived,\r\n\tselectAllFormulas,\r\n\tformulasEdited,\r\n} from \"./formulasSlice\";\r\nimport { dependencyReceived, selectAllDependencies } from \"./dependenciesSlice\";\r\nimport { newId } from \"../utils/common\";\r\nimport {\r\n\tgetFormById,\r\n\tgetFormDefinitionById,\r\n\tpostFormDefinition,\r\n\tpostResponseForm,\r\n\tpostCPEForm as postCpeApi,\r\n\tgetCPEFormById,\r\n\tgetRequestFormById,\r\n\tpostRequestForm as postRequestFormApi,\r\n\tsaveByPayroll,\r\n\tgetCMEFormById,\r\n} from \"api\";\r\nimport {\r\n\tformTeamEdited,\r\n\tselectFormTeam,\r\n} from \"../features/cme/formTeam/formTeamSlice\";\r\nimport {\r\n\tcpeFormReceived,\r\n\tselectCpeFormData,\r\n} from \"../features/cme/cpeForm/cpeFormSlice\";\r\nimport {\r\n\trequestLinesReceived,\r\n\tselectAllRequestLines,\r\n} from \"../features/cme/requestLine/requestLineSlice\";\r\nimport {\r\n\tleaveLinesReceived,\r\n\tselectAllLeaveLines,\r\n} from \"../features/cme/leaveLine/leaveLineSlice\";\r\nimport {\r\n\tattachmentReceived,\r\n\tselectAllAttachment as selectAllCmeAttachments,\r\n} from \"../features/cme/attachment/attachmentsSlice\";\r\nimport {\r\n\trequestFormReceived,\r\n\tselectRequestFormData,\r\n} from \"../features/cme/requestForm/requestFormSlice\";\r\nimport {\r\n\tfetchPermission,\r\n\tselectIsSysAdmin,\r\n\tselectIsCmeCoordinator,\r\n\tselectPersonId,\r\n\tselectUser,\r\n} from \"./securitySlice\";\r\nimport {\r\n\tselectActiveWorkflowQuery,\r\n\tselectActiveWorkflow,\r\n\tworkflowsReceived,\r\n} from \"./workflowsSlice\";\r\nimport {\r\n\tchildrenRequestLinesReceived,\r\n\tparentFormReceived,\r\n\tselectParentFormTypeId,\r\n} from \"../features/cme/parentForm/parentFormSlice\";\r\nimport {\r\n\tbalanceReceived,\r\n\topenCommitmentReceived,\r\n} from \"../features/cme/balance/balanceSlice\";\r\nimport {\r\n\tpostWorkflowHistoryThunk,\r\n\tworkflowHistoryReceived,\r\n} from \"./workflowHistorySlice\";\r\nimport { personEdited } from \"../features/cme/person/personSlice\";\r\nimport { CME_APP_ID } from \"../features/cme/constants\";\r\nimport {\r\n\tselectAdminActiveCpeData,\r\n\tselectAdminPerson,\r\n} from \"../features/cme/admin/adminSlice\";\r\nimport { keyMembersReceived } from \"../features/capex/keyMembers/keyMembersSlice\";\r\nimport { selectAllInvalidQuestionsByCurrentPage, selectFormToPost } from \".\";\r\n\r\nconst defaultOptions = { options: { isSilentSave: true } };\r\n\r\nconst initialState = {\r\n\tdata: {\r\n\t\tid: newId(),\r\n\t\tpersonId: null, //for CME\r\n\t\tstatus: \"Draft\",\r\n\t\townerId: null,\r\n\t\tformId: null,\r\n\t\tappHierarchyId: null,\r\n\t\torganisationHierarchyId: null,\r\n\t\tcreateOn: null,\r\n\t\tcreateBy: null,\r\n\t\tmodifyOn: null,\r\n\t\tmodifyBy: null,\r\n\t\towner: null,\r\n\t\tmodifyByUser: null,\r\n\t\tcreateByUser: null,\r\n\t},\r\n\r\n\t//persisted state regarding form stage/status\r\n\tstate: {\r\n\t\tisNew: true,\r\n\t\tisTouched: false, //any change sets this to true\r\n\t\tisLocked: false,\r\n\t\tinitialisedRows: [], //to remember rows that have had their initial rows added\r\n\t},\r\n\r\n\t//transient state regarding current session\r\n\tsession: {\r\n\t\tisSilentSave: false,\r\n\t\tcurrentPage: undefined,\r\n\t\tstatus: \"idle\",\r\n\t\tvalidationMessage: \"\",\r\n\t},\r\n\r\n\t//meta data that built this type of form\r\n\tdefinition: {\r\n\t\tname: \"\",\r\n\t},\r\n\r\n\t//app-level determination\r\n\tappType: \"qna\",\r\n\tappContext: null,\r\n\r\n\terror: null,\r\n};\r\n\r\nexport const getTitleByFormTypeId = (formTypeId, parentFormTypeId = null) => {\r\n\tif (parentFormTypeId) {\r\n\t\treturn \"Claim on \" + getFormName(parentFormTypeId);\r\n\t} else if (formTypeId === 2) {\r\n\t\t//no parentform but claim is always course and conf claim\r\n\t\t//return blank title, which forces user to edit it\r\n\t\treturn \"\";\r\n\t} else return getFormName(formTypeId);\r\n};\r\n\r\nexport const getFormName = (formTypeId) => {\r\n\tswitch (formTypeId) {\r\n\t\tcase 1:\r\n\t\t\treturn \"Course and Conference Request\";\r\n\t\tcase 2:\r\n\t\t\treturn \"CME Claim\";\r\n\t\tcase 3:\r\n\t\t\treturn \"Other CME Claim\";\r\n\t\tcase 4:\r\n\t\t\treturn \"IT Equipment Request\";\r\n\t\tcase 5:\r\n\t\t\treturn \"SMO Leave Request\";\r\n\t\tcase 8:\r\n\t\t\treturn \"WRE Claim\";\r\n\t\tcase 9:\r\n\t\t\treturn \"CPD Course Claim\";\r\n\t\tcase 10:\r\n\t\t\treturn \"CPD Other Claim\";\r\n\t\tdefault:\r\n\t\t\treturn \"\";\r\n\t}\r\n};\r\n\r\nexport const validate = createAsyncThunk(\r\n\t\"form/validate\",\r\n\tasync (_, { getState, dispatch }) => {\r\n\t\tconst state = getState();\r\n\t\tconst invalidQuestions = selectAllInvalidQuestionsByCurrentPage(state);\r\n\t\tconst questions = invalidQuestions.map((q) => q?.title);\r\n\t\tconst joinedText = questions.join(\", \");\r\n\t\tconst message =\r\n\t\t\t\"Please correct the input errors on the following questions: \" +\r\n\t\t\tjoinedText;\r\n\t\tdispatch(\r\n\t\t\tsessionEdited({\r\n\t\t\t\tstatus: \"validation error\",\r\n\t\t\t\tvalidationMessage: message,\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n);\r\n\r\n//#region Standard QNA forms get/post\r\nexport const TESTONLY_postFormDefinition = createAsyncThunk(\r\n\t\"form/TESTONLY_postFormDefinition\",\r\n\tasync (_, { getState }) => {\r\n\t\ttry {\r\n\t\t\tconst state = getState();\r\n\t\t\tconst definition = selectFormDefinition(state);\r\n\t\t\tconst lookups = selectAllLookups(state);\r\n\t\t\tconst pages = selectAllPages(state);\r\n\t\t\tconst sections = selectAllSections(state);\r\n\t\t\tconst dependencies = selectAllDependencies(state);\r\n\t\t\tconst questions = selectAllQuestions(state);\r\n\t\t\tconst formulas = selectAllFormulas(state);\r\n\t\t\tconst trees = selectAllTrees(state);\r\n\r\n\t\t\tawait postFormDefinition({\r\n\t\t\t\tid: \"E3508ECC-7901-4552-B7DF-9734CB97403F\",\r\n\t\t\t\tappHierarchyId: definition.appHierarchyId,\r\n\t\t\t\torganisationHierarchyId:\r\n\t\t\t\t\tdefinition.organisationHierarchyId /* todo: compute org hierarchy by a default setting on form type. for e.g. we could have it dependent on a pick-list inside the form, or dependent on the current user's home/chosen hierarchy*/,\r\n\t\t\t\toriginId: \"E3508ECC-7901-4552-B7DF-9734CB97403F\",\r\n\t\t\t\tversion: 0,\r\n\t\t\t\tname: \"Online CAPEX\",\r\n\t\t\t\townerId: \"DC207B33-8849-4152-86C3-C37FA1CAC4C8\",\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tlookups,\r\n\t\t\t\t\tpages,\r\n\t\t\t\t\tquestions,\r\n\t\t\t\t\tsections,\r\n\t\t\t\t\tdependencies,\r\n\t\t\t\t\tformulas,\r\n\t\t\t\t\ttrees,\r\n\t\t\t\t},\r\n\t\t\t\tisLive: true,\r\n\t\t\t\tcreateBy: \"CDE836A4-6155-4E4C-A4E0-120E939CAC82\",\r\n\t\t\t\tmodifyBy: \"CDE836A4-6155-4E4C-A4E0-120E939CAC82\",\r\n\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchFormById = createAsyncThunk(\r\n\t\"form/fetchFormById\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (formId, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst data = await getFormById({ formId });\r\n\t\t\tconst { status, content, state } = data;\r\n\t\t\t//status of isLocked is recalculated on opening a form each time\r\n\t\t\tconst isLocked = mapStatusToLock(status);\r\n\t\t\tdispatch(answersReceived(content.answers));\r\n\t\t\tdispatch(rowsReceived(content.rows));\r\n\t\t\tdispatch(formulasEdited(content.formulas));\r\n\t\t\tif (content?.keyMembers)\r\n\t\t\t\tdispatch(keyMembersReceived(content.keyMembers));\r\n\t\t\tdispatch(formStateEdited({ ...state, isLocked, isNew: false }));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchFormDefinitionById = createAsyncThunk(\r\n\t\"form/fetchFormDefinitionById\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (formDefinitionId, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst responseData = await getFormDefinitionById({\r\n\t\t\t\tformDefinitionId,\r\n\t\t\t});\r\n\t\t\tconst { data } = responseData;\r\n\t\t\t// form definition data is split across other slices\r\n\t\t\tif (data.questions && data.questions.length > 0)\r\n\t\t\t\tdispatch(questionsReceived(data.questions));\r\n\t\t\tif (data.pages && data.pages.length > 0)\r\n\t\t\t\tdispatch(pagesReceived(data.pages));\r\n\t\t\tif (data.lookups && data.lookups.length > 0)\r\n\t\t\t\tdispatch(lookupsReceived(data.lookups));\r\n\t\t\tif (data.sections && data.sections.length > 0)\r\n\t\t\t\tdispatch(sectionsReceived(data.sections));\r\n\t\t\tif (data.trees && data.trees.length > 0)\r\n\t\t\t\tdispatch(treesReceived(data.trees));\r\n\t\t\tif (data.dependencies && data.dependencies.length > 0)\r\n\t\t\t\tdispatch(dependencyReceived(data.dependencies));\r\n\t\t\tif (data.formulas && data.formulas.length > 0)\r\n\t\t\t\tdispatch(formulasReceived(data.formulas));\r\n\r\n\t\t\treturn responseData;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postForm = createAsyncThunk(\r\n\t\"form/postForm\",\r\n\tasync (\r\n\t\toptions = { isSilentSave: true },\r\n\t\t{ dispatch, getState, rejectWithValue }\r\n\t) => {\r\n\t\tconst state = getState();\r\n\t\tconst formToPost = selectFormToPost(state);\r\n\t\ttry {\r\n\t\t\tdispatch(sessionEdited({ isSilentSave: options.isSilentSave }));\r\n\t\t\tawait postResponseForm(formToPost);\r\n\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\tresolve();\r\n\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n//#endregion Standard QNA forms get/post\r\n\r\n//#region CME forms get/post\r\n\r\nfunction mapStatusToLock(status) {\r\n\t//return a new isLock value based on status\r\n\treturn status === \"Pending\" ||\r\n\t\tstatus === \"Pending Approval\" ||\r\n\t\tstatus === \"Approved\" ||\r\n\t\tstatus === \"Closed\"\r\n\t\t? true\r\n\t\t: false;\r\n}\r\n\r\nfunction mapCmeStatusToQnaStatus(statusId) {\r\n\treturn statusId === 1\r\n\t\t? \"Draft\"\r\n\t\t: statusId === 2\r\n\t\t? \"Pending\"\r\n\t\t: statusId === 3\r\n\t\t? \"Approved\"\r\n\t\t: statusId === 4\r\n\t\t? \"Closed\"\r\n\t\t: statusId === 5\r\n\t\t? \"Declined\"\r\n\t\t: statusId === 6\r\n\t\t? \"Cancelled\"\r\n\t\t: `Unknown Status Id of ${statusId}`;\r\n}\r\n\r\nexport const postCpeForm = createAsyncThunk(\r\n\t\"form/postCpeForm\",\r\n\tasync ({ data, options }, { dispatch, getState, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tdispatch(\r\n\t\t\t\tsessionEdited({\r\n\t\t\t\t\tisSilentSave: options.isSilentSave,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tconst state = getState();\r\n\t\t\tconst formTeam = selectFormTeam(state);\r\n\t\t\tconst response = await postCpeApi({\r\n\t\t\t\t...data,\r\n\t\t\t\tformTeam,\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(cpeFormReceived(response));\r\n\r\n\t\t\t//the owner of the form is put into person\r\n\t\t\tdispatch(personEdited(response.owner));\r\n\r\n\t\t\t//we map from cme data to qna form state\r\n\t\t\t//so that we can use common features like loading messages\r\n\t\t\tconst { statusId, id, formId, owner } = response;\r\n\t\t\tconst status = mapCmeStatusToQnaStatus(statusId);\r\n\t\t\tconst isLocked = mapStatusToLock(status);\r\n\t\t\tconst newData = {\r\n\t\t\t\tid,\r\n\t\t\t\tformId,\r\n\t\t\t\towner,\r\n\t\t\t\tstatus,\r\n\t\t\t};\r\n\t\t\tdispatch(formDataEdited(newData));\r\n\t\t\tdispatch(formStateEdited({ isLocked, isNew: false }));\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postCpeFormComplete = createAsyncThunk(\r\n\t\"form/postCpeFormComplete\",\r\n\tasync (\r\n\t\t{ options } = defaultOptions,\r\n\t\t{ dispatch, getState, rejectWithValue }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tdispatch(sessionEdited({ isSilentSave: options.isSilentSave }));\r\n\t\t\tconst state = getState();\r\n\t\t\tconst cpeForm = selectCpeFormData(state);\r\n\t\t\tconst requestLines = selectAllRequestLines(state);\r\n\t\t\tconst leaveLines = selectAllLeaveLines(state);\r\n\t\t\tconst attachments = selectAllCmeAttachments(state);\r\n\t\t\tconst formTeam = selectFormTeam(state);\r\n\t\t\tconst data = {\r\n\t\t\t\t...cpeForm,\r\n\t\t\t\trequestLines,\r\n\t\t\t\tleaveLines,\r\n\t\t\t\tattachments,\r\n\t\t\t\tformTeam,\r\n\t\t\t};\r\n\t\t\tconst response = await postCpeApi(data);\r\n\t\t\tdispatch(cpeFormReceived(response));\r\n\t\t\t//we map from cme data to qna form state\r\n\t\t\t//so that we can use common features like loading messages\r\n\t\t\tconst { statusId, id, formId, owner } = response;\r\n\t\t\tconst status = mapCmeStatusToQnaStatus(statusId);\r\n\t\t\tconst isLocked = mapStatusToLock(status);\r\n\t\t\tconst newData = {\r\n\t\t\t\tid,\r\n\t\t\t\tformId,\r\n\t\t\t\towner,\r\n\t\t\t\tstatus,\r\n\t\t\t};\r\n\t\t\tdispatch(formDataEdited(newData));\r\n\t\t\tdispatch(formStateEdited({ isLocked, isNew: false }));\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const isCpeFormTable = (formTypeId) => {\r\n\treturn [1, 9].includes(formTypeId);\r\n};\r\n\r\nexport const fetchCmeFormById = createAsyncThunk(\r\n\t\"form/fetchCmeFormById\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (id, { getState, rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst {\r\n\t\t\t\trequestLines,\r\n\t\t\t\tattachments,\r\n\t\t\t\tformTeam,\r\n\t\t\t\tleaveLines,\r\n\t\t\t\tbalances,\r\n\t\t\t\tcommitments,\r\n\t\t\t\tworkflows,\r\n\t\t\t\tworkflowHistories,\r\n\t\t\t\tparentForm,\r\n\t\t\t\tchildrenRequestLines,\r\n\t\t\t\tprevLines,\r\n\t\t\t\t...data\r\n\t\t\t} = await getCMEFormById({ id });\r\n\r\n\t\t\t//since this api returns both cpe/request form, we need to check which we just received\r\n\t\t\tconst { formTypeId } = data;\r\n\t\t\tif (isCpeFormTable(formTypeId)) dispatch(cpeFormReceived(data));\r\n\t\t\telse dispatch(requestFormReceived(data));\r\n\r\n\t\t\t//attach prevLines to request lines\r\n\t\t\tconst requestLinesWithPrevLines = requestLines.map((r) => {\r\n\t\t\t\tconst prevLine =\r\n\t\t\t\t\tprevLines && prevLines.length > 0\r\n\t\t\t\t\t\t? prevLines.find((pl) => pl.requestId === r.requestId)\r\n\t\t\t\t\t\t: null;\r\n\t\t\t\treturn { ...r, prevLine };\r\n\t\t\t});\r\n\r\n\t\t\t//standard/shared data entities relatead to form\r\n\t\t\tdispatch(requestLinesReceived(requestLinesWithPrevLines));\r\n\t\t\tdispatch(formTeamEdited(formTeam));\r\n\t\t\tdispatch(attachmentReceived(attachments));\r\n\t\t\tdispatch(leaveLinesReceived(leaveLines));\r\n\r\n\t\t\t//balances are received here, because sometimes form data is requested by users who don't have direct access to this form\r\n\t\t\t//the access is granted via a workflow delegate, for example\r\n\t\t\tdispatch(balanceReceived(balances));\r\n\t\t\tdispatch(openCommitmentReceived(commitments));\r\n\r\n\t\t\t//same reason as above, the workflows are retrieved here\r\n\t\t\tdispatch(workflowsReceived(workflows));\r\n\t\t\tdispatch(workflowHistoryReceived(workflowHistories));\r\n\r\n\t\t\t//retrieve parent form and sibling form data\r\n\t\t\tdispatch(parentFormReceived(parentForm));\r\n\t\t\tdispatch(childrenRequestLinesReceived(childrenRequestLines));\r\n\r\n\t\t\t//the owner of the form is put into person\r\n\t\t\tdispatch(personEdited(data.owner));\r\n\r\n\t\t\t//need to check if current user is same as form user\r\n\t\t\tconst state = getState();\r\n\t\t\tconst myPersonId = selectPersonId(state);\r\n\t\t\tif (myPersonId !== data.owner.personId) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tfetchPermission({\r\n\t\t\t\t\t\tappId: CME_APP_ID,\r\n\t\t\t\t\t\tuserId: data.owner.id,\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t//we map from cme data to qna form state\r\n\t\t\t//so that we can use common features like loading messages\r\n\t\t\tconst {\r\n\t\t\t\tstatusId,\r\n\t\t\t\tid: returnedId,\r\n\t\t\t\tformId: returnedFormId,\r\n\t\t\t\towner,\r\n\t\t\t} = data;\r\n\t\t\tconst status = mapCmeStatusToQnaStatus(statusId);\r\n\t\t\tconst isLocked = mapStatusToLock(status);\r\n\t\t\tconst newData = {\r\n\t\t\t\tid: returnedId,\r\n\t\t\t\tformId: returnedFormId,\r\n\t\t\t\towner,\r\n\t\t\t\tstatus,\r\n\t\t\t};\r\n\t\t\tdispatch(formDataEdited(newData));\r\n\t\t\tdispatch(formStateEdited({ isLocked, isNew: false }));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchCpeFormById = createAsyncThunk(\r\n\t\"form/fetchCpeFormById\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (id, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst {\r\n\t\t\t\trequestLines,\r\n\t\t\t\tattachments,\r\n\t\t\t\tformTeam,\r\n\t\t\t\tleaveLines,\r\n\t\t\t\t// formLink,\r\n\t\t\t\t...data\r\n\t\t\t} = await getCPEFormById({ id });\r\n\t\t\tdispatch(cpeFormReceived(data));\r\n\t\t\tdispatch(requestLinesReceived(requestLines));\r\n\t\t\tdispatch(formTeamEdited(formTeam));\r\n\t\t\tdispatch(attachmentReceived(attachments));\r\n\t\t\tdispatch(leaveLinesReceived(leaveLines));\r\n\t\t\t//we map from cme data to qna form state\r\n\t\t\t//so that we can use common features like loading messages\r\n\t\t\tconst {\r\n\t\t\t\tstatusId,\r\n\t\t\t\tid: returnedId,\r\n\t\t\t\tformId: returnedFormId,\r\n\t\t\t\towner,\r\n\t\t\t} = data;\r\n\t\t\tconst status = mapCmeStatusToQnaStatus(statusId);\r\n\t\t\tconst isLocked = mapStatusToLock(status);\r\n\t\t\tconst newData = {\r\n\t\t\t\tid: returnedId,\r\n\t\t\t\tformId: returnedFormId,\r\n\t\t\t\towner,\r\n\t\t\t\tstatus,\r\n\t\t\t};\r\n\t\t\tdispatch(formDataEdited(newData));\r\n\t\t\tdispatch(formStateEdited({ isLocked, isNew: false }));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchRequestFormById = createAsyncThunk(\r\n\t\"form/fetchRequestFormById\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync ({ id, formId }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst {\r\n\t\t\t\trequestLines,\r\n\t\t\t\tattachments,\r\n\t\t\t\tformTeam,\r\n\t\t\t\tleaveLines,\r\n\t\t\t\t// formLink,\r\n\t\t\t\t...data\r\n\t\t\t} = await getRequestFormById({ id, formId });\r\n\t\t\tdispatch(requestFormReceived(data));\r\n\t\t\tdispatch(leaveLinesReceived(leaveLines));\r\n\t\t\tdispatch(requestLinesReceived(requestLines));\r\n\t\t\tdispatch(formTeamEdited(formTeam));\r\n\t\t\tdispatch(attachmentReceived(attachments));\r\n\r\n\t\t\t//we map from cme data to qna form state\r\n\t\t\t//so that we can use common features like loading messages\r\n\t\t\tconst {\r\n\t\t\t\tstatusId,\r\n\t\t\t\tid: returnedId,\r\n\t\t\t\tformId: returnedFormId,\r\n\t\t\t\towner,\r\n\t\t\t} = data;\r\n\t\t\tconst status = mapCmeStatusToQnaStatus(statusId);\r\n\t\t\tconst isLocked = mapStatusToLock(status);\r\n\t\t\tconst newData = {\r\n\t\t\t\tid: returnedId,\r\n\t\t\t\tformId: returnedFormId,\r\n\t\t\t\towner,\r\n\t\t\t\tstatus,\r\n\t\t\t};\r\n\t\t\tdispatch(formDataEdited(newData));\r\n\t\t\tdispatch(formStateEdited({ isLocked, isNew: false }));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postRequestForm = createAsyncThunk(\r\n\t\"form/postRequestForm\",\r\n\tasync ({ data, options }, { dispatch, getState, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tdispatch(sessionEdited({ isSilentSave: options.isSilentSave }));\r\n\t\t\tconst state = getState();\r\n\t\t\tconst formTeam = selectFormTeam(state);\r\n\t\t\tconst activeCpe = selectAdminActiveCpeData(state);\r\n\t\t\tconst supplementaryData = JSON.stringify({ activeCpe });\r\n\t\t\tconst parentFormTypeId = selectParentFormTypeId(state);\r\n\t\t\tconst defaultTitle = getTitleByFormTypeId(\r\n\t\t\t\tdata.formTypeId,\r\n\t\t\t\tparentFormTypeId\r\n\t\t\t);\r\n\t\t\tconst response = await postRequestFormApi({\r\n\t\t\t\t...data,\r\n\t\t\t\ttitle: defaultTitle,\r\n\t\t\t\tformTeam,\r\n\t\t\t\tsupplementaryData,\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(requestFormReceived(response));\r\n\t\t\t//we map from cme data to qna form state\r\n\t\t\t//so that we can use common features like loading messages\r\n\t\t\tconst { statusId, id, formId, owner } = response;\r\n\t\t\tconst status = mapCmeStatusToQnaStatus(statusId);\r\n\t\t\tconst isLocked = mapStatusToLock(status);\r\n\t\t\tconst newData = {\r\n\t\t\t\tid,\r\n\t\t\t\tformId,\r\n\t\t\t\towner,\r\n\t\t\t\tstatus,\r\n\t\t\t};\r\n\t\t\tdispatch(formDataEdited(newData));\r\n\t\t\t//the owner of the form is put into person\r\n\t\t\tdispatch(personEdited(owner));\r\n\t\t\tdispatch(formStateEdited({ isLocked, isNew: false }));\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postRequestFormComplete = createAsyncThunk(\r\n\t\"form/postRequestFormComplete\",\r\n\tasync (\r\n\t\t{ options } = defaultOptions,\r\n\t\t{ dispatch, getState, rejectWithValue }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tdispatch(\r\n\t\t\t\tsessionEdited({\r\n\t\t\t\t\tisSilentSave: options.isSilentSave,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tconst state = getState();\r\n\t\t\tconst requestForm = selectRequestFormData(state);\r\n\t\t\tconst requestLines = selectAllRequestLines(state);\r\n\t\t\tconst leaveLines = selectAllLeaveLines(state);\r\n\t\t\tconst attachments = selectAllCmeAttachments(state);\r\n\t\t\tconst formTeam = selectFormTeam(state);\r\n\t\t\tconst data = {\r\n\t\t\t\t...requestForm,\r\n\t\t\t\trequestLines,\r\n\t\t\t\tleaveLines,\r\n\t\t\t\tattachments,\r\n\t\t\t\tformTeam,\r\n\t\t\t};\r\n\t\t\tconst response = await postRequestFormApi(data);\r\n\t\t\tdispatch(requestFormReceived(response));\r\n\t\t\tdispatch(formStateEdited({ isNew: false }));\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const postByPayroll = createAsyncThunk(\r\n\t\"form/postByPayroll\",\r\n\tasync (\r\n\t\t{ comments, options } = defaultOptions,\r\n\t\t{ dispatch, getState, rejectWithValue }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tdispatch(\r\n\t\t\t\tsessionEdited({\r\n\t\t\t\t\tisSilentSave: options.isSilentSave,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tconst state = getState();\r\n\t\t\tconst requestForm = selectRequestFormData(state);\r\n\t\t\tconst requestLines = selectAllRequestLines(state);\r\n\t\t\tconst leaveLines = selectAllLeaveLines(state);\r\n\t\t\tconst attachments = selectAllCmeAttachments(state);\r\n\t\t\tconst formTeam = selectFormTeam(state);\r\n\t\t\tconst userId = selectUser(state)?.id;\r\n\t\t\tconst data = {\r\n\t\t\t\t...requestForm,\r\n\t\t\t\t// statusId: 6,\r\n\t\t\t\trequestLines,\r\n\t\t\t\tleaveLines,\r\n\t\t\t\tattachments,\r\n\t\t\t\tformTeam,\r\n\t\t\t};\r\n\t\t\tconst response = await saveByPayroll(data);\r\n\t\t\tif (comments) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tpostWorkflowHistoryThunk({\r\n\t\t\t\t\t\tid: newId(),\r\n\t\t\t\t\t\tresponseFormId: requestForm.id,\r\n\t\t\t\t\t\taction: \"Admin Form Edit\",\r\n\t\t\t\t\t\tdescription:\r\n\t\t\t\t\t\t\t\"Form updated by an administrator after approval\",\r\n\t\t\t\t\t\tcategory: \"Admin\",\r\n\t\t\t\t\t\tcomment: comments,\r\n\t\t\t\t\t\tuserId,\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tdispatch(requestFormReceived(response));\r\n\t\t\t//we map from cme data to qna form state\r\n\t\t\t//so that we can use common features like loading messages\r\n\t\t\tconst { statusId, id, formId, owner } = response;\r\n\t\t\tconst status = mapCmeStatusToQnaStatus(statusId);\r\n\t\t\tconst isLocked = mapStatusToLock(status);\r\n\t\t\tconst newData = {\r\n\t\t\t\tid,\r\n\t\t\t\tformId,\r\n\t\t\t\towner,\r\n\t\t\t\tstatus,\r\n\t\t\t};\r\n\t\t\tdispatch(formDataEdited(newData));\r\n\t\t\tdispatch(formStateEdited({ isLocked, isNew: false }));\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\n//#endregion CME forms\r\n\r\nconst formSlice = createSlice({\r\n\tname: \"form\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\trowInitialised(state, action) {\r\n\t\t\tconst initialisedRows = state.state.initialisedRows;\r\n\t\t\tstate.state.initialisedRows = [...initialisedRows, action.payload];\r\n\t\t},\r\n\t\tformDataEdited(state, action) {\r\n\t\t\tObject.entries(action.payload).forEach(([key, value]) => {\r\n\t\t\t\tstate.data[key] = value;\r\n\t\t\t});\r\n\t\t},\r\n\t\tformStateEdited(state, action) {\r\n\t\t\tObject.entries(action.payload).forEach(([key, value]) => {\r\n\t\t\t\tstate.state[key] = value;\r\n\t\t\t});\r\n\t\t},\r\n\t\tformDefinitionEdited(state, action) {\r\n\t\t\tstate.definition = { ...action.payload };\r\n\t\t},\r\n\t\tsessionEdited(state, action) {\r\n\t\t\tstate.session = { ...state.session, ...action.payload };\r\n\t\t},\r\n\t\terrorEdited(state, action) {\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\tlockToggled(state, action) {\r\n\t\t\tstate.state.isLocked = !state.state.isLocked;\r\n\t\t},\r\n\t\tstatusEdited(state, action) {\r\n\t\t\tstate.data.status = action.payload;\r\n\t\t\tif (state.appType === \"cme\") {\r\n\t\t\t\tstate.state.isLocked = mapStatusToLock(action.payload);\r\n\t\t\t}\r\n\t\t},\r\n\t\tappTypeEdited(state, action) {\r\n\t\t\tstate.appType = action.payload;\r\n\t\t},\r\n\t\tappContextEdited(state, action) {\r\n\t\t\tstate.appContext = action.payload;\r\n\t\t},\r\n\t\tidGenerated(state, action) {\r\n\t\t\tstate.data.id = newId();\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_CME: (state, action) => {\r\n\t\t\t//restore back to initial state, but keep the original app type & context\r\n\t\t\treturn {\r\n\t\t\t\t...initialState,\r\n\t\t\t\tappContext: state.appContext,\r\n\t\t\t\tappType: state.appType,\r\n\t\t\t};\r\n\t\t},\r\n\t\t[fetchFormDefinitionById.pending]: (state, action) => {\r\n\t\t\t// state.session.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchFormDefinitionById.fulfilled]: (state, action) => {\r\n\t\t\t// state.session.status = \"succeeded\";\r\n\t\t\tObject.entries(action.payload).forEach(([key, value]) => {\r\n\t\t\t\t/* skip the data property, which is already dispatched into their\r\n\t\t\t\t\town slices via the thunk */\r\n\t\t\t\tif (key !== \"data\") state.definition[key] = value;\r\n\t\t\t});\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchFormDefinitionById.rejected]: (state, action) => {\r\n\t\t\tstate.session.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postForm.pending]: (state, action) => {\r\n\t\t\tstate.session.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postForm.fulfilled]: (state, action) => {\r\n\t\t\tstate.session.status = state.session.isSilentSave\r\n\t\t\t\t? \"succeeded\"\r\n\t\t\t\t: \"saved\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postForm.rejected]: (state, action) => {\r\n\t\t\tstate.session.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postCpeForm.pending]: (state, action) => {\r\n\t\t\tstate.session.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postCpeForm.fulfilled]: (state, action) => {\r\n\t\t\tstate.session.status = state.session.isSilentSave\r\n\t\t\t\t? \"succeeded\"\r\n\t\t\t\t: \"saved\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postCpeForm.rejected]: (state, action) => {\r\n\t\t\tstate.session.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postCpeFormComplete.pending]: (state, action) => {\r\n\t\t\tstate.session.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postCpeFormComplete.fulfilled]: (state, action) => {\r\n\t\t\tstate.session.status = state.session.isSilentSave\r\n\t\t\t\t? \"succeeded\"\r\n\t\t\t\t: \"saved\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postCpeFormComplete.rejected]: (state, action) => {\r\n\t\t\tstate.session.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchFormById.pending]: (state, action) => {\r\n\t\t\tstate.session.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchFormById.fulfilled]: (state, action) => {\r\n\t\t\tstate.session.status = \"succeeded\";\r\n\t\t\tObject.entries(action.payload).forEach(([key, value]) => {\r\n\t\t\t\t/* skip the data property, which is already dispatched into their\r\n\t\t\t\t\town slices via the thunk */\r\n\t\t\t\tif (key !== \"content\" && key !== \"authoriseData\")\r\n\t\t\t\t\tstate.data[key] = value;\r\n\t\t\t});\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchFormById.rejected]: (state, action) => {\r\n\t\t\tstate.session.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchCmeFormById.pending]: (state, action) => {\r\n\t\t\tstate.session.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchCmeFormById.fulfilled]: (state, action) => {\r\n\t\t\tstate.session.status = \"idle\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchCmeFormById.rejected]: (state, action) => {\r\n\t\t\tstate.session.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchCpeFormById.pending]: (state, action) => {\r\n\t\t\tstate.session.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchCpeFormById.fulfilled]: (state, action) => {\r\n\t\t\tstate.session.status = \"idle\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchCpeFormById.rejected]: (state, action) => {\r\n\t\t\tstate.session.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postRequestForm.pending]: (state, action) => {\r\n\t\t\tstate.session.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postRequestForm.fulfilled]: (state, action) => {\r\n\t\t\tstate.session.status = state.session.isSilentSave\r\n\t\t\t\t? \"succeeded\"\r\n\t\t\t\t: \"saved\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postRequestForm.rejected]: (state, action) => {\r\n\t\t\tstate.session.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchRequestFormById.pending]: (state, action) => {\r\n\t\t\tstate.session.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchRequestFormById.fulfilled]: (state, action) => {\r\n\t\t\tstate.session.status = \"idle\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchRequestFormById.rejected]: (state, action) => {\r\n\t\t\tstate.session.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postRequestFormComplete.pending]: (state, action) => {\r\n\t\t\tstate.session.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postRequestFormComplete.fulfilled]: (state, action) => {\r\n\t\t\tstate.session.status = state.session.isSilentSave\r\n\t\t\t\t? \"succeeded\"\r\n\t\t\t\t: \"saved\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postByPayroll.rejected]: (state, action) => {\r\n\t\t\tstate.session.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postByPayroll.pending]: (state, action) => {\r\n\t\t\tstate.session.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postByPayroll.fulfilled]: (state, action) => {\r\n\t\t\tstate.session.status = state.session.isSilentSave\r\n\t\t\t\t? \"succeeded\"\r\n\t\t\t\t: \"saved\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[postRequestFormComplete.rejected]: (state, action) => {\r\n\t\t\tstate.session.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const {\r\n\tformDataEdited,\r\n\tformStateEdited,\r\n\tsessionEdited,\r\n\terrorEdited,\r\n\tlockToggled,\r\n\tstatusEdited,\r\n\tformDefinitionEdited,\r\n\tappContextEdited,\r\n\trowInitialised,\r\n\tidGenerated,\r\n} = formSlice.actions;\r\n\r\nexport const selectForm = (state) => state.form.data;\r\nexport const selectFormId = (state) => state.form.data.id;\r\nexport const selectCmeFormId = (state) => state.form.data.formId;\r\nexport const selectFormState = (state) => state.form.state;\r\nexport const selectFormStateInitialisedRows = (state) =>\r\n\tstate.form.state.initialisedRows;\r\nexport const selectFormDefinition = (state) => state.form.definition;\r\nexport const selectFormError = (state) => state.form.error;\r\nexport const selectSession = (state) => state.form.session;\r\nexport const selectFormStatus = (state) => state.form.session.status;\r\nexport const selectAppHierarchyId = (state) =>\r\n\tstate.form.data.appHierarchyId\r\n\t\t? state.form.data.appHierarchyId.toUpperCase()\r\n\t\t: null;\r\nexport const selectAppContext = (state) => state.form.appContext;\r\nexport const selectFormPersonId = createSelector(\r\n\t[selectCpeFormData, selectRequestFormData],\r\n\t(c, r) => {\r\n\t\treturn c.personId ? c.personId : r.personId;\r\n\t}\r\n);\r\nexport const selectPersonIdForNewForm = createSelector(\r\n\t[selectAdminPerson, selectPersonId],\r\n\t(adminPerson, myPersonId) => {\r\n\t\treturn adminPerson?.personId || myPersonId;\r\n\t}\r\n);\r\n\r\nexport const selectFormOwner = (state) => state.form.data.owner;\r\n\r\nexport const selectNotMyApproval = createSelector(\r\n\t[selectActiveWorkflow, selectUser, selectFormOwner],\r\n\t(w, u, o) => {\r\n\t\t//active workflow user is not me\r\n\t\t//AND i am not the form owner\r\n\t\t//AND check user and form objects exist\r\n\t\tif (w?.user?.id !== u?.id && u?.id !== o?.id && u && o) {\r\n\t\t\treturn true;\r\n\t\t} else return false;\r\n\t}\r\n);\r\n\r\nexport const selectQnaIsOverrideUnlocked = (state) =>\r\n\tstate.form.state.isOverrideUnlocked;\r\n\r\nexport const selectQnaIsLocked = (state) => state.form.state.isLocked;\r\n\r\nexport const selectIsLocked = createSelector(\r\n\t[\r\n\t\t(state) => state.form.state.isLocked,\r\n\t\tselectFormOwner,\r\n\t\tselectUser,\r\n\t\tselectActiveWorkflowQuery,\r\n\t\tselectIsSysAdmin,\r\n\t],\r\n\t(isLocked, owner, user, queryWorkflow, isSysAdmin) => {\r\n\t\tif (user?.id === queryWorkflow?.user?.id && owner?.id === user?.id) {\r\n\t\t\t//queried user is this current user\r\n\t\t\t//current user is the form owner\r\n\t\t\t//they can edit\r\n\t\t\treturn false;\r\n\t\t} else if (!isLocked && isSysAdmin) {\r\n\t\t\t//form is naturally unlocked and user is system admin\r\n\t\t\t//allow them to edit\r\n\t\t\treturn false;\r\n\t\t} else {\r\n\t\t\t//default check\r\n\t\t\treturn isLocked || user?.id !== owner?.id;\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const selectIsCmeLocked = createSelector(\r\n\t[\r\n\t\tselectIsLocked,\r\n\t\tselectCpeFormData,\r\n\t\tselectRequestFormData,\r\n\t\tselectIsCmeCoordinator,\r\n\t],\r\n\t(isLocked, cpeForm, requestForm, amCmeCoordinator) => {\r\n\t\t//firstly, if it's already unlocked, just return it\r\n\t\tif (!isLocked) {\r\n\t\t\treturn isLocked;\r\n\t\t}\r\n\r\n\t\tconst form = cpeForm.personId ? cpeForm : requestForm;\r\n\t\tif (\r\n\t\t\t[1, 5].includes(form.formTypeId) && //if type of form is course request or smo leave request\r\n\t\t\tamCmeCoordinator && //and current user is a cme coordinator on an existing workflow\r\n\t\t\t![3, 4].includes(form.statusId) //NOT in approved or finalised status\r\n\t\t) {\r\n\t\t\treturn false; //allow the cme coordinator to edit the leave form\r\n\t\t} else {\r\n\t\t\treturn isLocked; //in all other cases, return the default isLocked value\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport default formSlice.reducer;\r\n","import { createSlice, createEntityAdapter } from \"@reduxjs/toolkit\";\r\n\r\nconst formulasAdapter = createEntityAdapter();\r\n\r\nconst initialState = formulasAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nconst formulasSlice = createSlice({\r\n\tname: \"formula\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tformulaAdded(state, action) {\r\n\t\t\tformulasAdapter.addOne(state, action.payload);\r\n\t\t},\r\n\t\tformulaEdited(state, action) {\r\n\t\t\tformulasAdapter.upsertOne(state, action.payload);\r\n\t\t},\r\n\t\tformulasReceived(state, action) {\r\n\t\t\tformulasAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t\tformulasEdited(state, action) {\r\n\t\t\tformulasAdapter.upsertMany(state, action.payload);\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { formulaAdded, formulaEdited, formulasReceived, formulasEdited } =\r\n\tformulasSlice.actions;\r\n\r\n/*\r\nSELECTORS\r\n*/\r\nexport const { selectAll: selectAllFormulas, selectById: selectFormulaById } =\r\n\tformulasAdapter.getSelectors((state) => state.formulas);\r\n\r\nexport const selectFormulasError = (state) => state.formulas.error;\r\n\r\nexport default formulasSlice.reducer;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst globalSlice = createSlice({\r\n\tname: \"global\",\r\n\tinitialState: {\r\n\t\tloading: false,\r\n\t\tscreenTitle: \"loading...\",\r\n\t\tappType: null,\r\n\t\tshowFormHeader: false,\r\n\t\thomePath: null, //must start null, because upon signin we check if it is null to determine default path\r\n\t\tappId: null,\r\n\t\tformDefinitionId: null,\r\n\t\torgRootId: null,\r\n\t\tdomain: null,\r\n\t\tshowFooter: true,\r\n\t\tshowHeader: true,\r\n\t},\r\n\treducers: {\r\n\t\tloadingEdited(state, action) {\r\n\t\t\tstate.loading = action.payload;\r\n\t\t},\r\n\t\tglobalEdited(state, action) {\r\n\t\t\tfor (const [key, value] of Object.entries(action.payload)) {\r\n\t\t\t\tstate[key] = value;\r\n\t\t\t}\r\n\t\t},\r\n\t\thomePathEdited(state, action) {\r\n\t\t\tstate.homePath = action.payload;\r\n\t\t},\r\n\t\tscreenTitleEdited(state, action) {\r\n\t\t\tstate.screenTitle = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {},\r\n});\r\n\r\nexport const {\r\n\tloadingEdited,\r\n\tglobalEdited,\r\n\thomePathEdited,\r\n\tscreenTitleEdited,\r\n} = globalSlice.actions;\r\n\r\nexport const selectGlobal = (state) => state.global;\r\n\r\nexport const selectGlobalLoading = (state) => state.global.loading;\r\n\r\nexport const selectGlobalScreenTitle = (state) => state.global.screenTitle;\r\n\r\nexport default globalSlice.reducer;\r\n","const initialState = {\r\n\terror: null,\r\n};\r\n\r\nexport function errorReducer(state = initialState, action) {\r\n\tconst { error, payload } = action;\r\n\r\n\tif (error) {\r\n\t\treturn {\r\n\t\t\terror: payload,\r\n\t\t};\r\n\t} else if (action.type === \"RESET_CME\") return initialState;\r\n\r\n\treturn state;\r\n}\r\n","import { createSlice, createAsyncThunk } from \"@reduxjs/toolkit\";\r\nimport { getFormsByPersonId } from \"api\";\r\nimport { selectPersonId } from \"reducers/securitySlice\";\r\n\r\nexport const fetchLeaveManager = createAsyncThunk(\r\n\t\"leaveManager/fetchLeaveManager\",\r\n\t//need the thunkApi's getState to retrieve auth token\r\n\tasync (_, { getState, rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst state = getState();\r\n\t\t\tconst personId = selectPersonId(state);\r\n\t\t\tconst data = await getFormsByPersonId({ personId });\r\n\t\t\tdispatch(leaveManagerReceived(data));\r\n\t\t\treturn data;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst initialState = {\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n\tdata: [],\r\n};\r\n\r\nconst leaveManagerSlice = createSlice({\r\n\tname: \"leaveManager\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tleaveManagerReceived(state, action) {\r\n\t\t\tstate.data = [...action.payload];\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\t[fetchLeaveManager.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchLeaveManager.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"idle\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchLeaveManager.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { leaveManagerReceived } = leaveManagerSlice.actions;\r\n\r\nexport const selectLeaveManager = (state) => state.cme.leaveManager.data;\r\nexport const selectLeaveManagerStatus = (state) =>\r\n\tstate.cme.leaveManager.status;\r\nexport const selectLeaveManagerError = (state) => state.cme.leaveManager.error;\r\n\r\nexport default leaveManagerSlice.reducer;\r\n","import { combineReducers } from \"redux\";\r\n\r\nimport cpeForm from \"./cpeForm/cpeFormSlice\";\r\nimport requestForm from \"./requestForm/requestFormSlice\";\r\nimport requestLines from \"./requestLine/requestLineSlice\";\r\nimport leaveLines from \"./leaveLine/leaveLineSlice\";\r\nimport attachments from \"./attachment/attachmentsSlice\";\r\nimport formTeam from \"./formTeam/formTeamSlice\";\r\nimport balance from \"./balance/balanceSlice\";\r\nimport myHistory from \"./myHistory/myHistorySlice\";\r\nimport parentForm from \"./parentForm/parentFormSlice\";\r\nimport person from \"./person/personSlice\";\r\nimport formApproval from \"./formApproval/formApprovalSlice\";\r\nimport leaveManager from \"./leaveManager/leaveManagerSlice\";\r\nimport admin from \"./admin/adminSlice\";\r\n\r\nexport default combineReducers({\r\n\tcpeForm,\r\n\trequestForm,\r\n\trequestLines,\r\n\tleaveLines,\r\n\tattachments,\r\n\tformTeam,\r\n\tbalance,\r\n\tmyHistory,\r\n\tparentForm,\r\n\tperson,\r\n\tformApproval,\r\n\tleaveManager,\r\n\tadmin,\r\n});\r\n","import { combineReducers } from \"redux\";\r\nimport assetRc from \"./assetRc/assetRcSlice\";\r\nimport keyMembers from \"./keyMembers/keyMembersSlice\";\r\nimport division from \"./division/divisionSlice\";\r\nimport assetCategory from \"./assetCategory/assetCategorySlice\";\r\nimport role from \"./role/roleSlice\";\r\nimport admin from \"./admin/adminSlice\";\r\n\r\nexport default combineReducers({\r\n\tassetRc,\r\n\tkeyMembers,\r\n\tdivision,\r\n\tassetCategory,\r\n\trole,\r\n\tadmin,\r\n});\r\n","import { combineReducers } from \"redux\";\r\nimport agencies from \"./agency/agenciesSlice\";\r\n\r\nexport default combineReducers({\r\n\tagencies,\r\n});\r\n","import { combineReducers } from \"redux\";\r\nimport {\r\n\tcreateSelector,\r\n\tcreateSelectorCreator,\r\n\tdefaultMemoize,\r\n} from \"reselect\";\r\nimport isEqual from \"lodash\";\r\nimport answers, {\r\n\tselectAllAnswers,\r\n\tselectAnswerById,\r\n\tselectAnswersError,\r\n} from \"./answersSlice\";\r\nimport pages, {\r\n\tselectAllPages,\r\n\tselectPageById,\r\n\tselectPagesError,\r\n} from \"./pagesSlice\";\r\nimport form, {\r\n\tselectForm,\r\n\tselectFormError,\r\n\tselectFormState,\r\n\tselectFormStatus,\r\n\tselectSession,\r\n} from \"./formSlice\";\r\nimport questions, {\r\n\tselectAllQuestions,\r\n\tselectQuestionsError,\r\n} from \"./questionsSlice\";\r\nimport sections, {\r\n\tselectAllSections,\r\n\tselectSectionsError,\r\n} from \"./sectionsSlice\";\r\nimport lookups, { selectAllLookups, selectLookupsError } from \"./lookupsSlice\";\r\nimport trees, { selectAllTrees, selectTreesError } from \"./treesSlice\";\r\nimport security, { selectAuthToken } from \"./securitySlice\";\r\nimport rows, { selectAllRows, selectRowsError } from \"./rowsSlice\";\r\nimport formulas, {\r\n\tselectAllFormulas,\r\n\tselectFormulaById,\r\n\tselectFormulasError,\r\n} from \"./formulasSlice\";\r\nimport dependencies, {\r\n\tselectAllDependencies,\r\n\tselectDependenciesError,\r\n} from \"./dependenciesSlice\";\r\nimport attachments, {\r\n\tselectAllAttachments,\r\n\tselectAttachmentsError,\r\n} from \"./attachmentsSlice\";\r\nimport workflows, {\r\n\tselectAllWorkflows,\r\n\tselectWorkflowsError,\r\n\tselectWorkflowStatus,\r\n} from \"./workflowsSlice\";\r\nimport workflowHistory from \"./workflowHistorySlice\";\r\nimport { validator } from \"../utils/common\";\r\nimport global, { selectGlobal } from \"./global\";\r\nimport dayjs from \"dayjs\";\r\nimport { errorReducer } from \"./error\";\r\n\r\n/* cme specific */\r\nimport cme from \"../features/cme/reducers\";\r\n\r\n/* capex specific */\r\nimport capex from \"../features/capex/reducers\";\r\nimport { selectAssetRc } from \"features/capex/assetRc/assetRcSlice\";\r\nimport { selectAssetCategory } from \"features/capex/assetCategory/assetCategorySlice\";\r\nimport { selectAllKeyMembers } from \"../features/capex/keyMembers/keyMembersSlice\";\r\n\r\n/* roc specific */\r\nimport roc from \"../features/roc/reducers\";\r\n\r\nexport default combineReducers({\r\n\tanswers,\r\n\tpages,\r\n\tquestions,\r\n\tsections,\r\n\tlookups,\r\n\ttrees,\r\n\tform,\r\n\tsecurity,\r\n\trows,\r\n\tformulas,\r\n\tdependencies,\r\n\tattachments,\r\n\tworkflows,\r\n\tworkflowHistory,\r\n\tcme,\r\n\tcapex,\r\n\troc,\r\n\terrorReducer,\r\n\tglobal,\r\n});\r\n\r\n//this ensures our selectors use deep equal for selectors that always return new refs\r\nconst createDeepEqualSelector = createSelectorCreator(defaultMemoize, isEqual);\r\n\r\nexport const selectCurrentPageId = createSelector(\r\n\t[selectSession, selectAllPages],\r\n\t(session, pages) => {\r\n\t\treturn session.currentPage\r\n\t\t\t? session.currentPage\r\n\t\t\t: pages.length > 0\r\n\t\t\t? pages[0].id\r\n\t\t\t: null;\r\n\t}\r\n);\r\n\r\nexport const selectLastPageId = (state) => {\r\n\tlet pagesCount = state.pages?.ids.length || 0;\r\n\tif (pagesCount > 0) return state.pages?.ids[pagesCount - 1];\r\n};\r\n\r\nexport const selectSecurityStatus = (state) => state.security.status;\r\n\r\nexport const selectSecurityError = (state) => state.security.error;\r\n\r\nexport const selectAllErrors = createSelector(\r\n\t[\r\n\t\tselectFormError,\r\n\t\tselectWorkflowsError,\r\n\t\tselectAnswersError,\r\n\t\tselectDependenciesError,\r\n\t\tselectAttachmentsError,\r\n\t\tselectFormulasError,\r\n\t\tselectLookupsError,\r\n\t\tselectPagesError,\r\n\t\tselectSectionsError,\r\n\t\tselectQuestionsError,\r\n\t\tselectRowsError,\r\n\t\tselectSecurityError,\r\n\t\tselectTreesError,\r\n\t],\r\n\t(...args) => {\r\n\t\t//each slice of state have props status and error\r\n\t\t//this selector returns an array of the error props, if status is 'failed'\r\n\t\tconst errorState = [];\r\n\t\targs.forEach((arg) => {\r\n\t\t\tif (arg) errorState.push(arg);\r\n\t\t});\r\n\t\treturn errorState;\r\n\t}\r\n);\r\n\r\nexport const selectFormDefinition = (state) => state.form?.definition;\r\n\r\nexport const selectIsLoading = createSelector(\r\n\t[selectFormStatus, selectWorkflowStatus],\r\n\t(...args) => {\r\n\t\tlet isLoading = false;\r\n\t\targs.forEach((arg) => {\r\n\t\t\tif (arg === \"loading\") isLoading = true;\r\n\t\t});\r\n\t\treturn isLoading;\r\n\t}\r\n);\r\n\r\nexport const selectQuestionsByPage = createSelector(\r\n\t//only get questions on current page\r\n\t[selectCurrentPageId, selectAllQuestions],\r\n\t(currentPage, allQuestions) => {\r\n\t\treturn allQuestions.filter((q) => q.pageId === currentPage);\r\n\t}\r\n);\r\n\r\nexport const makeSelectQuestionsBySectionId = (sectionId) => {\r\n\treturn createDeepEqualSelector([selectAllQuestions], (questions) => {\r\n\t\treturn questions.filter((q) => q.sectionId === sectionId);\r\n\t});\r\n};\r\n\r\nexport const selectSectionsByPageId = (pageId) => {\r\n\treturn createDeepEqualSelector([selectAllSections], (allSections) => {\r\n\t\treturn allSections.filter((s) => s.pageId === pageId);\r\n\t});\r\n};\r\n\r\nexport const makeSelectChildQuestions = (id) => {\r\n\treturn createDeepEqualSelector(\r\n\t\t[selectQuestionsByPage],\r\n\t\t(selectQuestionsByPage) => {\r\n\t\t\treturn selectQuestionsByPage.filter(\r\n\t\t\t\t(q) => q.parentQuestionId === id\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n};\r\n\r\nexport const makeSelectLookupByDomainCode = (domain) => {\r\n\treturn createSelector([selectAllLookups], (allLookups) => {\r\n\t\treturn allLookups.filter((l) => l.domainCode === domain);\r\n\t});\r\n};\r\n\r\nexport const makeSelectTreeByDomainCode = (domain) => {\r\n\treturn createSelector([selectAllTrees], (trees) => {\r\n\t\treturn trees.find((l) => l.domain === domain)?.tree;\r\n\t});\r\n};\r\n\r\nexport const makeSelectRowsByQuestionId = (questionId) => {\r\n\treturn createSelector([selectAllRows], (rows) =>\r\n\t\trows.filter((row) => row.questionId === questionId)\r\n\t);\r\n};\r\n\r\nexport const makeSelectAttachmentsByQuestionId = (questionId) => {\r\n\treturn createSelector([selectAllAttachments], (attachments) =>\r\n\t\tattachments.filter((a) => a.questionId === questionId)\r\n\t);\r\n};\r\n\r\nexport const selectValueByQuestionId = createSelector(\r\n\t[selectAnswerById],\r\n\t(answer) => {\r\n\t\treturn answer ? answer : null;\r\n\t}\r\n);\r\n\r\nexport const makeSelectFormulaByRowId = (rowId) =>\r\n\tcreateSelector([selectFormulaById], (formula) => {\r\n\t\tif (formula) {\r\n\t\t\tif (rowId && formula.valuesByRow) {\r\n\t\t\t\treturn rowId ? formula?.valuesByRow[rowId] : formula.value;\r\n\t\t\t} else return formula.value;\r\n\t\t}\r\n\t});\r\n\r\n//#region to determine visible questions\r\nexport const selectAllSectionsByCurrentPage = createSelector(\r\n\t[selectAllSections, selectCurrentPageId],\r\n\t(sections, pageId) => {\r\n\t\treturn sections.filter((s) => s.pageId === pageId);\r\n\t}\r\n);\r\n\r\nexport const selectAllVisibleSectionsByCurrentPage = createSelector(\r\n\t[selectAllSectionsByCurrentPage, selectAllFormulas],\r\n\t(sections, formulas) => {\r\n\t\treturn sections.filter((s) => {\r\n\t\t\tconst { visible } = s;\r\n\t\t\tconst formulaId =\r\n\t\t\t\ttypeof visible === \"object\" && visible !== null\r\n\t\t\t\t\t? visible.formulaId\r\n\t\t\t\t\t: null;\r\n\t\t\treturn formulaId\r\n\t\t\t\t? formulas.find((f) => f.id === formulaId)?.value\r\n\t\t\t\t: visible\r\n\t\t\t\t? visible\r\n\t\t\t\t: true;\r\n\t\t});\r\n\t}\r\n);\r\n\r\nexport const selectAllVisibleQuestions = createSelector(\r\n\t[selectAllQuestions, selectAllFormulas],\r\n\t(questions, formulas) => {\r\n\t\treturn questions.filter((q) => {\r\n\t\t\tconst { visible } = q;\r\n\t\t\tconst formulaId =\r\n\t\t\t\ttypeof visible === \"object\" && visible !== null\r\n\t\t\t\t\t? visible.formulaId\r\n\t\t\t\t\t: null;\r\n\t\t\treturn formulaId\r\n\t\t\t\t? formulas.find((f) => f.id === formulaId)?.value\r\n\t\t\t\t: visible\r\n\t\t\t\t? visible\r\n\t\t\t\t: true;\r\n\t\t});\r\n\t}\r\n);\r\n\r\nexport const selectAllVisibleQuestionsByCurrentPage = createSelector(\r\n\t[selectAllVisibleQuestions, selectAllVisibleSectionsByCurrentPage],\r\n\t(questions, sections) => {\r\n\t\treturn questions.filter(\r\n\t\t\t(q) => sections.findIndex((s) => s.id === q.sectionId) !== -1\r\n\t\t);\r\n\t}\r\n);\r\n//#endregion to determine visible questions\r\n\r\n//#region static type answers\r\n\r\nexport const selectStaticQuestions = createSelector(\r\n\t[selectAllQuestions],\r\n\t(questions) => questions.filter((q) => q.staticType)\r\n);\r\n\r\nexport const selectStaticAnswers = createSelector(\r\n\t[selectStaticQuestions, selectAllAnswers],\r\n\t(qs, as) => as.filter((a) => qs.some((q) => q.id === a.questionId))\r\n);\r\n\r\nexport const selectStaticAnswerOrganisationHiearchyId = createSelector(\r\n\t[selectStaticQuestions, selectAllAnswers, selectGlobal],\r\n\t(qs, as, global) =>\r\n\t\tas.find((a) =>\r\n\t\t\tqs.some(\r\n\t\t\t\t(q) => q.id === a.questionId && q.staticType === \"approvalRc\"\r\n\t\t\t)\r\n\t\t)?.value || global.orgRootId\r\n);\r\n\r\nexport const selectApprovalSummary = createSelector(\r\n\t[\r\n\t\tselectAllAnswers,\r\n\t\tselectForm,\r\n\t\tselectAllQuestions,\r\n\t\tselectAllLookups,\r\n\t\tselectAssetRc,\r\n\t\tmakeSelectRowsByQuestionId(\"q1\"),\r\n\t\tmakeSelectRowsByQuestionId(\"fundingSourceTable\"),\r\n\t\tmakeSelectRowsByQuestionId(\"q8\"),\r\n\t\tselectAllAttachments,\r\n\t\tselectAssetCategory,\r\n\t\tselectAllKeyMembers,\r\n\t\tselectAllFormulas,\r\n\t],\r\n\t(\r\n\t\tanswers,\r\n\t\tformData,\r\n\t\tquestions,\r\n\t\tlookups,\r\n\t\trcs,\r\n\t\tpurchases,\r\n\t\tfunding,\r\n\t\topex,\r\n\t\tattachments,\r\n\t\tassetCategories,\r\n\t\tkeyMembers,\r\n\t\tformulas\r\n\t) => {\r\n\t\tconst getAnswer = (questionId, answerId = null) => {\r\n\t\t\tconst answer = answers.find(\r\n\t\t\t\t(a) =>\r\n\t\t\t\t\ta.questionId === questionId &&\r\n\t\t\t\t\t(a.id === answerId || answerId === null)\r\n\t\t\t);\r\n\t\t\tconst question = questions.find((q) => q.id === questionId);\r\n\t\t\tif (question?.id === \"s6q1\") {\r\n\t\t\t\treturn rcs.find(\r\n\t\t\t\t\t(l) => l.id.toLowerCase() === answer?.value?.toLowerCase()\r\n\t\t\t\t);\r\n\t\t\t} else if (question?.domain) {\r\n\t\t\t\tconst lookup = lookups.find(\r\n\t\t\t\t\t(l) =>\r\n\t\t\t\t\t\tl.domainCode === question.domain &&\r\n\t\t\t\t\t\tl.code === answer?.value\r\n\t\t\t\t);\r\n\t\t\t\t//in lookup lists where you can do freetext, you won't find a matching lookup item\r\n\t\t\t\treturn lookup ?? answer;\r\n\t\t\t} else return answer;\r\n\t\t};\r\n\t\tconst getFormula = (formulaId, rowId) => {\r\n\t\t\tconst formula = formulas.find((f) => f.id === formulaId);\r\n\t\t\treturn formula?.valuesByRow ? formula.valuesByRow[rowId] : null;\r\n\t\t};\r\n\t\tlet fileList = attachments.map((a) => {\r\n\t\t\treturn {\r\n\t\t\t\tuid: a.id,\r\n\t\t\t\tquestionId: a.questionId,\r\n\t\t\t\tname: a.fileName,\r\n\t\t\t\tstatus: \"done\",\r\n\t\t\t\tfileType: a.fileType,\r\n\t\t\t\turl: `${process.env.REACT_APP_API_URL}/UploadDocument/GetUploadDocument/${a.id}`,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\t//display data\r\n\t\tconst projectCode = getAnswer(\"projectCode\");\r\n\t\tconst projectShortName = getAnswer(\"projectShortName\");\r\n\t\tconst projectLongName = getAnswer(\"projectDescription\");\r\n\t\tconst projectOutline = getAnswer(\"s7q2\");\r\n\t\tconst riskAddressed = getAnswer(\"s7q3\");\r\n\t\tconst alternatives = getAnswer(\"s7q4\");\r\n\t\tconst reasonforInvestment = getAnswer(\"reasonforInvestment\");\r\n\r\n\t\tconst division = getAnswer(\"s6q1-2\");\r\n\t\tconst startDate = formData.createOn\r\n\t\t\t? dayjs(formData.createOn, \"YYYY-MM-DD\").format(\"DD/MM/YYYY\")\r\n\t\t\t: dayjs().format(\"DD/MM/YYYY\");\r\n\t\tconst endDate = dayjs(getAnswer(\"s6q2\")?.value).format(\"DD/MM/YYYY\");\r\n\t\tconst FPIMSetupType = getAnswer(\"FPIMSetupType\");\r\n\t\tconst rc = getAnswer(\"s6q1\");\r\n\t\tconst projectNumber = getAnswer(\"s2q2\");\r\n\r\n\t\tconst isNewRequest = getAnswer(\"newOrSupQ\")?.code === \"newRequest\";\r\n\r\n\t\tconst projectBudgetArray =\r\n\t\t\tpurchases && purchases.length > 0\r\n\t\t\t\t? purchases.map((f) => {\r\n\t\t\t\t\t\tconst major = getAnswer(\"q3a\", f?.q3a)?.value;\r\n\t\t\t\t\t\tconst minor = getAnswer(\"q3b\", f?.q3b)?.value;\r\n\t\t\t\t\t\tconst category = assetCategories.find(\r\n\t\t\t\t\t\t\t(ac) => ac.major === major && ac.minor === minor\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tconst itemDescription = getAnswer(\"q2\", f?.q2)?.value;\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tid: f.id,\r\n\t\t\t\t\t\t\titemDescription,\r\n\t\t\t\t\t\t\tmajor,\r\n\t\t\t\t\t\t\tminor,\r\n\t\t\t\t\t\t\tcurrency:\r\n\t\t\t\t\t\t\t\tgetAnswer(\"q4\", f?.q4)?.description ?? \"NZD\",\r\n\t\t\t\t\t\t\tquantity: getAnswer(\"quantity\", f?.quantity)?.value,\r\n\t\t\t\t\t\t\tunitPrice: getAnswer(\"unitPrice\", f?.unitPrice)\r\n\t\t\t\t\t\t\t\t?.value,\r\n\t\t\t\t\t\t\ttotal: getFormula(\"formulaId\", f?.id),\r\n\t\t\t\t\t\t\twipAccount: category?.wipAccount,\r\n\t\t\t\t\t\t\tlifeYears: category?.lifeYears,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t })\r\n\t\t\t\t: [];\r\n\r\n\t\tconst fundingArray =\r\n\t\t\tfunding && funding.length > 0\r\n\t\t\t\t? funding.map((f) => {\r\n\t\t\t\t\t\tconst source = getAnswer(\r\n\t\t\t\t\t\t\t\"sourceProjectCode\",\r\n\t\t\t\t\t\t\tf?.sourceProjectCode\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tid: f.id,\r\n\t\t\t\t\t\t\tsource: source?.description,\r\n\t\t\t\t\t\t\tcode: source?.code,\r\n\t\t\t\t\t\t\tamount: getAnswer(\r\n\t\t\t\t\t\t\t\t\"sourceCommitment\",\r\n\t\t\t\t\t\t\t\tf?.sourceCommitment\r\n\t\t\t\t\t\t\t)?.value,\r\n\t\t\t\t\t\t\twtProjectCode: getAnswer(\r\n\t\t\t\t\t\t\t\t\"sourceWtProjectCode\",\r\n\t\t\t\t\t\t\t\tf?.sourceWtProjectCode\r\n\t\t\t\t\t\t\t)?.value,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t })\r\n\t\t\t\t: [];\r\n\r\n\t\tconst opexArray =\r\n\t\t\topex && opex.length > 0\r\n\t\t\t\t? opex.map((f) => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tid: f.id,\r\n\t\t\t\t\t\t\tcostType:\r\n\t\t\t\t\t\t\t\tgetAnswer(\"costType\", f?.costType)\r\n\t\t\t\t\t\t\t\t\t?.description ??\r\n\t\t\t\t\t\t\t\tgetAnswer(\"costType\", f?.costType)?.value,\r\n\t\t\t\t\t\t\tyears: getAnswer(\"years\", f?.years)?.value,\r\n\t\t\t\t\t\t\tamountPerYear: getAnswer(\r\n\t\t\t\t\t\t\t\t\"amountPerYear\",\r\n\t\t\t\t\t\t\t\tf?.amountPerYear\r\n\t\t\t\t\t\t\t)?.value,\r\n\t\t\t\t\t\t\ttotalOngoingCost: getFormula(\"ongoingTotal\", f?.id),\r\n\t\t\t\t\t\t};\r\n\t\t\t\t })\r\n\t\t\t\t: [];\r\n\r\n\t\tconst contactPerson = getAnswer(\"contactPerson\");\r\n\t\tconst deliveryAddress = getAnswer(\"deliveryAddress\");\r\n\r\n\t\treturn {\r\n\t\t\tprojectCode: projectCode?.value,\r\n\t\t\tprojectShortName: projectShortName?.value,\r\n\t\t\tprojectLongName: projectLongName?.value,\r\n\t\t\tprojectNumber: projectNumber?.value,\r\n\t\t\tdivision: division?.description,\r\n\t\t\trc: `${rc?.code} ${rc?.name}`,\r\n\t\t\tstartDate,\r\n\t\t\tendDate,\r\n\t\t\tFPIMSetupType: FPIMSetupType?.description,\r\n\t\t\tprojectBudget: projectBudgetArray,\r\n\t\t\tfundedFrom: fundingArray,\r\n\t\t\tfileList,\r\n\t\t\tkeyMembers,\r\n\t\t\tisNewRequest,\r\n\t\t\tprojectOutline: projectOutline?.value,\r\n\t\t\triskAddressed: riskAddressed?.value,\r\n\t\t\talternatives: alternatives?.value,\r\n\t\t\treasonforInvestment: reasonforInvestment?.value,\r\n\t\t\tcontactPerson: contactPerson?.value,\r\n\t\t\tdeliveryAddress: deliveryAddress?.value,\r\n\t\t\topex: opexArray,\r\n\t\t};\r\n\t}\r\n);\r\n\r\nexport const selectFormToPost = createSelector(\r\n\t[\r\n\t\tselectForm,\r\n\t\tselectFormDefinition,\r\n\t\tselectAllAnswers,\r\n\t\tselectAllFormulas,\r\n\t\tselectAllRows,\r\n\t\tselectAllAttachments,\r\n\t\tselectStaticAnswerOrganisationHiearchyId,\r\n\t\tselectAllKeyMembers,\r\n\t\tselectFormState,\r\n\t\tselectApprovalSummary,\r\n\t],\r\n\t(\r\n\t\tform,\r\n\t\tdefinition,\r\n\t\tanswers,\r\n\t\tformulas,\r\n\t\trows,\r\n\t\tattachments,\r\n\t\torganisationHierarchyId,\r\n\t\tkeyMembers,\r\n\t\tformState,\r\n\t\tapprovalSummary\r\n\t) => {\r\n\t\treturn {\r\n\t\t\tid: form.id,\r\n\t\t\tformId: definition.id,\r\n\t\t\tappHierarchyId: definition.appHierarchyId,\r\n\t\t\torganisationHierarchyId,\r\n\t\t\tcontent: {\r\n\t\t\t\tanswers,\r\n\t\t\t\trows,\r\n\t\t\t\tformulas,\r\n\t\t\t\tattachments,\r\n\t\t\t\tkeyMembers,\r\n\t\t\t\tapprovalSummary,\r\n\t\t\t},\r\n\t\t\tstatus: form.status,\r\n\t\t\tstate: {\r\n\t\t\t\t...formState,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n);\r\n\r\nexport const selectStaticAnswerAssetDivision = createSelector(\r\n\t[selectStaticQuestions, selectAllAnswers],\r\n\t(qs, as) =>\r\n\t\tas.find((a) =>\r\n\t\t\tqs.some(\r\n\t\t\t\t(q) => q.id === a.questionId && q.staticType === \"assetDivision\"\r\n\t\t\t)\r\n\t\t)?.value\r\n);\r\n\r\n//#endregion static type answers\r\n\r\n//#region hacks for Capex\r\n\r\nexport const makeSelectSumByFormulaId = (formulaId) =>\r\n\tcreateSelector([selectAllFormulas], (formulas) => {\r\n\t\tconst formula = formulas.find((f) => f.id === formulaId);\r\n\t\tif (formula?.valuesByRow) {\r\n\t\t\treturn Object.keys(formula.valuesByRow).reduce((acc, val) => {\r\n\t\t\t\treturn (acc += formula.valuesByRow[val]);\r\n\t\t\t}, 0);\r\n\t\t} else return 0;\r\n\t});\r\n\r\nexport const selectTotalFundingSource = createSelector(\r\n\t[selectAllAnswers],\r\n\t(answers) => {\r\n\t\tconst fsA = answers.filter(\r\n\t\t\t(a) =>\r\n\t\t\t\ta.questionId === \"sourceCommitment\" ||\r\n\t\t\t\ta.questionId === \"externalSourceCommitment\"\r\n\t\t);\r\n\t\treturn fsA.reduce((acc, a) => {\r\n\t\t\treturn a.value ? acc + a.value : acc;\r\n\t\t}, 0);\r\n\t}\r\n);\r\n\r\nexport const selectTotalNbv = createSelector(\r\n\t[selectAllQuestions, selectAllAnswers],\r\n\t(questions, answers) => {\r\n\t\tconst fsQ = questions.filter((q) => q.id === \"NBV\");\r\n\t\tconst fsA = answers.filter((a) =>\r\n\t\t\tfsQ.some((q) => q.id === a.questionId)\r\n\t\t);\r\n\t\treturn fsA.reduce((acc, a) => {\r\n\t\t\treturn a.value ? acc + a.value : acc;\r\n\t\t}, 0);\r\n\t}\r\n);\r\n\r\nexport const selectTotalFundingDifference = createSelector(\r\n\t[makeSelectSumByFormulaId(\"formulaId\"), selectTotalFundingSource],\r\n\t(cost, funding) => {\r\n\t\treturn funding - cost;\r\n\t}\r\n);\r\n\r\nexport const selectServiceImpact = createSelector(\r\n\t[selectAllAnswers],\r\n\t(answers) => {\r\n\t\treturn answers.find((a) => a.questionId === \"serviceImpact\");\r\n\t}\r\n);\r\n\r\nexport const selectPatientStaffImpact = createSelector(\r\n\t[selectAllAnswers],\r\n\t(answers) => {\r\n\t\treturn answers.find((a) => a.questionId === \"patientStaffImpact\");\r\n\t}\r\n);\r\n\r\nexport const selectLikelihoodOfAssetFailing = createSelector(\r\n\t[selectAllAnswers],\r\n\t(answers) => {\r\n\t\treturn answers.find((a) => a.questionId === \"likelihoodOfAssetFailing\");\r\n\t}\r\n);\r\n\r\nexport const selectAssetCriticalityScore = createSelector(\r\n\t[selectServiceImpact, selectPatientStaffImpact],\r\n\t(serviceImpact, patientStaffImpact) => {\r\n\t\tconst x = serviceImpact?.value ? parseInt(serviceImpact.value) : 0;\r\n\t\tconst y = patientStaffImpact?.value\r\n\t\t\t? parseInt(patientStaffImpact.value)\r\n\t\t\t: 0;\r\n\t\t/*\r\n\t\tcalculation logic\r\n\t\t-if either number is 0, then 0 (stands for NO SCORE)\r\n\t\t-if both numbers are same, then the same number is returned\r\n\t\t-if they are different, then it is \r\n\t\t\ta) take the bigger number\r\n\t\t\tb) minus the (difference between the two numbers divided by two, rounded up)\r\n\t\t\t1 & 2 = 2\r\n\t\t\t2 & 2 = 2\r\n\t\t\t3 & 2 = 3\r\n\t\t\t4 & 2 = 3\t\t\t\r\n\t\t\t5 & 2 = 4\r\n\t\t*/\r\n\t\treturn x === 0 || y === 0\r\n\t\t\t? 0\r\n\t\t\t: x === y\r\n\t\t\t? x\r\n\t\t\t: x > y\r\n\t\t\t? x - parseInt((x - y) / 2)\r\n\t\t\t: y - parseInt((y - x) / 2);\r\n\t}\r\n);\r\nexport const selectLikelihoodScore = createSelector(\r\n\t[selectLikelihoodOfAssetFailing],\r\n\t(likelihood) => {\r\n\t\treturn likelihood?.value ? parseInt(likelihood.value) : 0;\r\n\t}\r\n);\r\n\r\nexport const selectOverallRiskScore = createSelector(\r\n\t[selectAssetCriticalityScore, selectLikelihoodScore],\r\n\t(x, y) => {\r\n\t\treturn x === 0 || y === 0 ? 0 : x * y;\r\n\t}\r\n);\r\n\r\nconst selectWeighting1 = createSelector([selectAllAnswers], (answers) => {\r\n\treturn answers.find((a) => a.questionId === \"weighting1\")?.value;\r\n});\r\nconst selectWeighting2 = createSelector([selectAllAnswers], (answers) => {\r\n\treturn answers.find((a) => a.questionId === \"weighting2\")?.value;\r\n});\r\nconst selectWeighting3 = createSelector([selectAllAnswers], (answers) => {\r\n\treturn answers.find((a) => a.questionId === \"weighting3\")?.value;\r\n});\r\nconst selectLikelihoodConsequences = createSelector(\r\n\t[selectAllAnswers],\r\n\t(answers) => {\r\n\t\treturn answers.find((a) => a.questionId === \"likelihoodOfConsequence\")\r\n\t\t\t?.value;\r\n\t}\r\n);\r\n\r\nexport const selectOverallRiskConsequences = createSelector(\r\n\t[\r\n\t\tselectWeighting1,\r\n\t\tselectWeighting2,\r\n\t\tselectWeighting3,\r\n\t\tselectLikelihoodConsequences,\r\n\t],\r\n\t(con1, con2, con3, likelihood) => {\r\n\t\tconst total =\r\n\t\t\t(con1 ? parseInt(con1) : 0) +\r\n\t\t\t(con2 ? parseInt(con2) : 0) +\r\n\t\t\t(con3 ? parseInt(con3) : 0);\r\n\r\n\t\tconst count = (con1 ? 1 : 0) + (con2 ? 1 : 0) + (con3 ? 1 : 0);\r\n\r\n\t\tconst x = Math.round(total / count, 0);\r\n\t\tconst y = likelihood ? parseInt(likelihood) : 0;\r\n\r\n\t\treturn x === 0 || y === 0 ? 0 : x * y;\r\n\t}\r\n);\r\n\r\n//#endregion hacks for Capex\r\n\r\nexport const selectAllInvalidQuestionsByCurrentPage = createSelector(\r\n\t[\r\n\t\tselectAllVisibleQuestionsByCurrentPage,\r\n\t\tselectAllAnswers,\r\n\t\tselectAllRows,\r\n\t\tselectTotalFundingDifference,\r\n\t\tselectAllKeyMembers,\r\n\t\tselectCurrentPageId,\r\n\t],\r\n\t(\r\n\t\tquestions,\r\n\t\tanswers,\r\n\t\trows,\r\n\t\ttotalFundingDifference,\r\n\t\tkeyMembers,\r\n\t\tcurrentPageId\r\n\t) => {\r\n\t\tlet allQuestions = [];\r\n\r\n\t\t//create an array of all quetions including child questions in rows\r\n\t\tquestions.forEach((q) => {\r\n\t\t\tconst { parentQuestionId } = q;\r\n\t\t\tif (parentQuestionId) {\r\n\t\t\t\tallQuestions.push(\r\n\t\t\t\t\t...rows\r\n\t\t\t\t\t\t.filter((r) => r.questionId === parentQuestionId)\r\n\t\t\t\t\t\t.map((r) => {\r\n\t\t\t\t\t\t\treturn { ...q, id: r[q.id] };\r\n\t\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tallQuestions.push(q);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//test for missing key members\r\n\t\tconst missingMandatoryKeyMembers = keyMembers.filter(\r\n\t\t\t({ mandatory, fullName }) => mandatory && !fullName\r\n\t\t);\r\n\r\n\t\t//push missing key member error if on the key member page\r\n\t\tif (\r\n\t\t\tmissingMandatoryKeyMembers.length > 0 &&\r\n\t\t\tcurrentPageId === \"keyMembers\"\r\n\t\t) {\r\n\t\t\tallQuestions.push({\r\n\t\t\t\tid: \"keyMembers\",\r\n\t\t\t\terrors: missingMandatoryKeyMembers.length,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//detect errors for each question\r\n\t\tconst errorQuestions = allQuestions.map((q) => {\r\n\t\t\tconst { id, validation } = q;\r\n\t\t\tlet errors = 0;\r\n\t\t\tif (validation && validation.length > 0) {\r\n\t\t\t\t// eslint-disable-next-line array-callback-return\r\n\t\t\t\terrors = validation.reduce((acc, val) => {\r\n\t\t\t\t\tconst answerObject =\r\n\t\t\t\t\t\tid === \"totalFundingDifference\"\r\n\t\t\t\t\t\t\t? totalFundingDifference\r\n\t\t\t\t\t\t\t: answers.find((a) => a.id === q.id);\r\n\t\t\t\t\tconst answer =\r\n\t\t\t\t\t\tid === \"totalFundingDifference\"\r\n\t\t\t\t\t\t\t? answerObject\r\n\t\t\t\t\t\t\t: answerObject?.value === undefined\r\n\t\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t\t: answerObject.value;\r\n\t\t\t\t\tlet result = validator(val, answer);\r\n\t\t\t\t\tif (result) return acc + 1;\r\n\t\t\t\t\telse return acc;\r\n\t\t\t\t}, 0);\r\n\t\t\t}\r\n\t\t\tif (q.errors)\r\n\t\t\t\treturn q; //if the question already has errors (i.e. keyMembers) return it\r\n\t\t\telse return { ...q, errors };\r\n\t\t});\r\n\r\n\t\t//consolidate questions up to the parent level by summing children errors\r\n\t\tconst parentLevelErrorQuestions = errorQuestions\r\n\t\t\t.filter((q) => !q.parentQuestionId)\r\n\t\t\t.map((q) => {\r\n\t\t\t\tif (q.inputType !== \"Table\") return q;\r\n\t\t\t\telse {\r\n\t\t\t\t\t//for table questions, sum all children errors as there may be multiple instances\r\n\t\t\t\t\tconst childrenErrors = errorQuestions.reduce((acc, cq) => {\r\n\t\t\t\t\t\tconst { parentQuestionId, errors } = cq;\r\n\t\t\t\t\t\treturn parentQuestionId === q.id ? acc + errors : acc;\r\n\t\t\t\t\t}, 0);\r\n\t\t\t\t\treturn { ...q, errors: childrenErrors };\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\treturn parentLevelErrorQuestions.filter((pq) => pq.errors > 0);\r\n\t}\r\n);\r\n\r\nexport const selectIsPageValid = createSelector(\r\n\t[selectAllInvalidQuestionsByCurrentPage],\r\n\t(questions) => {\r\n\t\treturn questions.length === 0;\r\n\t}\r\n);\r\n\r\nexport {\r\n\tselectPageById,\r\n\tselectAllQuestions,\r\n\tselectAllAnswers,\r\n\tselectAllLookups,\r\n\tselectAllPages,\r\n\tselectAllSections,\r\n\tselectAllTrees,\r\n\tselectAllAttachments,\r\n\tselectAllFormulas,\r\n\tselectAllRows,\r\n\tselectForm,\r\n\tselectAllDependencies,\r\n\tselectAllWorkflows,\r\n\tselectSession,\r\n\tselectAuthToken,\r\n};\r\n","import { createSlice, createEntityAdapter } from \"@reduxjs/toolkit\";\r\n\r\nconst lookupsAdapter = createEntityAdapter();\r\n\r\nconst initialState = lookupsAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nconst lookupsSlice = createSlice({\r\n\tname: \"lookups\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tlookupsReceived(state, action) {\r\n\t\t\tlookupsAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t\tlookupsUpserted(state, action) {\r\n\t\t\tlookupsAdapter.upsertMany(state, action.payload);\r\n\t\t},\r\n\t},\r\n});\r\n\r\n/*\r\nACTIONS\r\n*/\r\nexport const { lookupsReceived, lookupsUpserted } = lookupsSlice.actions;\r\n\r\n/*\r\nSELECTORS\r\n*/\r\nexport const { selectAll: selectAllLookups, selectById: selectLookupById } =\r\n\tlookupsAdapter.getSelectors((state) => state.lookups);\r\n\r\n/*\r\nCUSTOM SELECTORS\r\n*/\r\nexport const selectLookupsError = (state) => state.lookups.error;\r\n\r\nexport default lookupsSlice.reducer;\r\n","import { createSlice, createEntityAdapter } from \"@reduxjs/toolkit\";\r\n\r\nconst pagesAdapter = createEntityAdapter();\r\n\r\nconst initialState = pagesAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nconst pagesSlice = createSlice({\r\n\tname: \"pages\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tpagesReceived(state, action) {\r\n\t\t\tpagesAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t},\r\n});\r\n\r\n/*\r\nACTIONS\r\npages data can only ever be received via API\r\nThere are no actions to CRUD individual pages\r\n*/\r\nexport const { pagesReceived, pageDecremented } = pagesSlice.actions;\r\n\r\n/*\r\nSELECTORS\r\n*/\r\nexport const { selectAll: selectAllPages, selectById: selectPageById } =\r\n\tpagesAdapter.getSelectors((state) => state.pages);\r\n\r\n/*\r\nCUSTOM SELECTORS\r\n*/\r\nexport const selectPagesError = (state) => state.pages.error;\r\n\r\nexport default pagesSlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateEntityAdapter,\r\n\tcreateSelector,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst questionsAdapter = createEntityAdapter();\r\n\r\nconst initialState = questionsAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nconst questionsSlice = createSlice({\r\n\tname: \"questions\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tquestionsReceived(state, action) {\r\n\t\t\tquestionsAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t},\r\n});\r\n\r\n/*\r\nACTIONS\r\nQuestions data can only ever be received via API\r\nThere are no actions to CRUD individual questions\r\n*/\r\nexport const { questionsReceived } = questionsSlice.actions;\r\n\r\n/*\r\nSELECTORS\r\n*/\r\nexport const { selectAll: selectAllQuestions, selectById: selectQuestionById } =\r\n\tquestionsAdapter.getSelectors((state) => state.questions);\r\n\r\n/*\r\nCUSTOM SELECTORS\r\nTable-value questions have a parent/child relationship\r\n*/\r\nexport const selectQuestionsByParentQuestionId = createSelector(\r\n\t[selectAllQuestions, (state, parentQuestionId) => parentQuestionId],\r\n\t(questions, parentQuestionId) =>\r\n\t\tquestions.filter((q) => q.parentQuestionId === parentQuestionId)\r\n);\r\n\r\nexport const selectQuestionsError = (state) => state.questions.error;\r\n\r\nexport default questionsSlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateEntityAdapter,\r\n\tcreateSelector,\r\n\tcreateAsyncThunk,\r\n} from \"@reduxjs/toolkit\";\r\nimport { answerRemoved } from \"./answersSlice\";\r\nimport { deleteAttachmentsByQuestionId } from \"./attachmentsSlice\";\r\nimport { formulaEdited } from \"./formulasSlice\";\r\n\r\nconst rowsAdapter = createEntityAdapter({ sortComparer: (a, b) => a - b });\r\n\r\nconst initialState = rowsAdapter.getInitialState({\r\n\tstatus: \"starting\",\r\n\terror: null,\r\n});\r\n\r\nexport const deleteRowAndAnswers = createAsyncThunk(\r\n\t\"row/deleteRowAndAnswers\",\r\n\tasync (row, { getState, dispatch, rejectWithValue }) => {\r\n\t\t//grab all state we need for formula calculations\r\n\t\tconst { dependencies, formulas } = getState();\r\n\t\ttry {\r\n\t\t\t//deleting a row requires the deletion of all related answers\r\n\t\t\tfor (const [key, value] of Object.entries(row)) {\r\n\t\t\t\t//ignore row properties that relate to the row itself, and not the answers inside it\r\n\t\t\t\tif (![\"id\", \"questionId\", \"sequence\"].includes(key)) {\r\n\t\t\t\t\t//simple removal of answer entity\r\n\t\t\t\t\tdispatch(answerRemoved(value));\r\n\t\t\t\t\tdispatch(deleteAttachmentsByQuestionId(value));\r\n\r\n\t\t\t\t\t//returns an array of formulas that depend on the value that just changed\r\n\t\t\t\t\tlet dependentFormulas =\r\n\t\t\t\t\t\tdependencies.entities[key]?.formulas;\r\n\r\n\t\t\t\t\t//each formula will have its valuesByRow deleted for this row\r\n\t\t\t\t\tif (dependentFormulas && dependentFormulas.length > 0) {\r\n\t\t\t\t\t\tdependentFormulas.forEach((d) => {\r\n\t\t\t\t\t\t\t//get all of the dependencies of this formula\r\n\t\t\t\t\t\t\tconst formula = formulas.entities[d];\r\n\t\t\t\t\t\t\t//edit the formula if it previously held a value\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\tformula?.valuesByRow &&\r\n\t\t\t\t\t\t\t\tformula.valuesByRow.hasOwnProperty(row.id)\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\tconst { [row.id]: _, ...otherProps } =\r\n\t\t\t\t\t\t\t\t\tformula.valuesByRow;\r\n\t\t\t\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\t\t\t\tformulaEdited({\r\n\t\t\t\t\t\t\t\t\t\t...formula,\r\n\t\t\t\t\t\t\t\t\t\tvaluesByRow: otherProps,\r\n\t\t\t\t\t\t\t\t\t\terror: null,\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t//delete the row itself\r\n\t\t\tdispatch(rowRemoved(row.id));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst rowsSlice = createSlice({\r\n\tname: \"rows\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\t//declaring this reducer generates action types/creators\r\n\t\trowStatusEdited(state, action) {\r\n\t\t\tstate.status = action.payload;\r\n\t\t},\r\n\t\trowAdded: rowsAdapter.addOne,\r\n\t\trowRemoved: rowsAdapter.removeOne,\r\n\t\trowUpdated: rowsAdapter.updateOne,\r\n\t\trowsUpdated: rowsAdapter.updateMany,\r\n\t\trowsReceived(state, action) {\r\n\t\t\trowsAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t},\r\n});\r\n\r\n//actions to be imported by components\r\nexport const {\r\n\trowStatusEdited,\r\n\trowAdded,\r\n\trowRemoved,\r\n\trowUpdated,\r\n\trowsUpdated,\r\n\trowsReceived,\r\n} = rowsSlice.actions;\r\n\r\nexport const { selectAll: selectAllRows, selectById: selectRowById } =\r\n\trowsAdapter.getSelectors((state) => state.rows);\r\n\r\n//commonly used selectors\r\nexport const selectRowsByQuestionId = createSelector(\r\n\t[selectAllRows, (state, questionId) => questionId],\r\n\t(rows, questionId) => rows.filter((row) => row.questionId === questionId)\r\n);\r\n\r\nexport const selectSequence = createSelector(\r\n\t[selectAllRows],\r\n\t(rows) => rows.length - 1\r\n);\r\n\r\nexport const selectRowsError = (state) => state.rows.error;\r\n\r\nexport const selectRowsStatus = (state) => state.rows.status;\r\n\r\nexport default rowsSlice.reducer;\r\n","import { createSlice, createEntityAdapter } from \"@reduxjs/toolkit\";\r\n\r\nconst sectionsAdapter = createEntityAdapter();\r\n\r\nconst initialState = sectionsAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nconst sectionsSlice = createSlice({\r\n\tname: \"sections\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsectionsReceived(state, action) {\r\n\t\t\tsectionsAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t},\r\n});\r\n\r\n/*\r\nACTIONS\r\nsections data can only ever be received via API\r\nThere are no actions to CRUD individual sections\r\n*/\r\nexport const { sectionsReceived } = sectionsSlice.actions;\r\n\r\n/*\r\nSELECTORS\r\n*/\r\nexport const { selectAll: selectAllSections, selectById: selectSectionById } =\r\n\tsectionsAdapter.getSelectors((state) => state.sections);\r\n\r\n/*\r\nCUSTOM SELECTORS\r\n*/\r\nexport const selectSectionsError = (state) => state.sections.error;\r\n\r\nexport default sectionsSlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateAsyncThunk,\r\n\tcreateSelector,\r\n} from \"@reduxjs/toolkit\";\r\nimport { getToken, getUserPermissionByAppId } from \"../api\";\r\nimport dayjs from \"dayjs\";\r\nimport { CME_CONFIG } from \"features/cme/constants\";\r\n\r\nexport const login = createAsyncThunk(\r\n\t\"security/login\",\r\n\tasync (_, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\treturn await getToken();\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchPermission = createAsyncThunk(\r\n\t\"security/fetchPermission\",\r\n\tasync ({ appId, userId = null }, { dispatch, rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tconst permission = await getUserPermissionByAppId({\r\n\t\t\t\tappId,\r\n\t\t\t\tuserId,\r\n\t\t\t});\r\n\t\t\t//if userId is not supplied, it's for my own permission\r\n\t\t\tif (!userId) dispatch(permissionEdited(permission));\r\n\t\t\telse dispatch(forPersonPermissionEdited(permission));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst securitySlice = createSlice({\r\n\tname: \"security\",\r\n\tinitialState: {\r\n\t\tuser: {\r\n\t\t\tdelegateUsers: [],\r\n\t\t},\r\n\t\tauthToken: null,\r\n\t\tstatus: \"idle\",\r\n\t\terror: null,\r\n\t\tpermission: [],\r\n\t\tforPersonPermission: [],\r\n\t\tpermissionLoaded: false,\r\n\t\tselectedPermission: {},\r\n\t},\r\n\treducers: {\r\n\t\tpermissionEdited(state, action) {\r\n\t\t\tstate.permission = action.payload;\r\n\t\t},\r\n\t\tpermissionSelected(state, action) {\r\n\t\t\tstate.selectedPermission = action.payload;\r\n\t\t},\r\n\t\tforPersonPermissionEdited(state, action) {\r\n\t\t\tstate.forPersonPermission = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\t[login.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[login.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"succeeded\";\r\n\t\t\tconst { authToken, user } = action.payload;\r\n\t\t\tstate.authToken = authToken;\r\n\t\t\tstate.user = { ...user, personId: 5182 };\r\n\t\t\tstate.user = user;\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[login.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = { ...action.payload };\r\n\t\t\tstate.authToken = null;\r\n\t\t},\r\n\t\t[fetchPermission.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t\tstate.error = null;\r\n\t\t},\r\n\t\t[fetchPermission.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"succeeded\";\r\n\t\t\tstate.error = null;\r\n\t\t\tstate.permissionLoaded = true;\r\n\t\t},\r\n\t\t[fetchPermission.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = { ...action.payload };\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const {\r\n\tpermissionEdited,\r\n\tpermissionSelected,\r\n\tforPersonPermissionEdited,\r\n} = securitySlice.actions;\r\n\r\nexport const selectSecurityStatus = (state) => state.security.status;\r\nexport const selectSecurityError = (state) => state.security.error;\r\nexport const selectUser = (state) => state.security.user;\r\nexport const selectAuthToken = (state) => state.security.authToken;\r\nexport const selectPersonId = (state) => state.security.user.personId;\r\nexport const selectAppPermission = (state) => state.security.permission || [];\r\nexport const selectForPersonAppPermission = (state) =>\r\n\tstate.security.forPersonPermission || [];\r\nexport const selectCurrentPermission = (state) =>\r\n\tstate.security.selectedPermission;\r\nexport const selectPermissionLoaded = (state) =>\r\n\tstate.security.permissionLoaded;\r\nexport const selectDelegateUsers = (state) =>\r\n\tstate.security.user?.delegateUsers || [];\r\n\r\nexport const selectUserOrganisation = createSelector([selectUser], (user) => {\r\n\treturn user.organisation;\r\n});\r\n\r\n//#region CME\r\nexport const selectIsCmeApprover = createSelector(\r\n\t[selectAppPermission],\r\n\t(p) => {\r\n\t\t//app admins always have access\r\n\t\t//privilege of 2 is team access, 3 is deep team access\r\n\t\treturn p\r\n\t\t\t? p.some((i) => i.isAppAdmin || i.privilege >= 2 || i.isSystemAdmin)\r\n\t\t\t: false;\r\n\t}\r\n);\r\nexport const selectIsCmeAdmin = createSelector(\r\n\t[selectAppPermission, selectUser],\r\n\t(p, u) => {\r\n\t\treturn u.isSystemAdmin\r\n\t\t\t? true\r\n\t\t\t: p\r\n\t\t\t? p.some((i) => i.isAppAdmin || i.isSystemAdmin)\r\n\t\t\t: false;\r\n\t}\r\n);\r\nexport const selectIsApprover = createSelector([selectAppPermission], (p) => {\r\n\t//app admins always have access\r\n\t//privilege of 2 is team access, 3 is deep team access\r\n\treturn p\r\n\t\t? p.some((i) => i.isAppAdmin || i.privilege >= 2 || i.isSystemAdmin)\r\n\t\t: false;\r\n});\r\nexport const selectIsAppAdmin = createSelector(\r\n\t[selectAppPermission, selectUser],\r\n\t(p, u) => {\r\n\t\treturn u?.isSystemAdmin\r\n\t\t\t? true\r\n\t\t\t: p\r\n\t\t\t? p.some((i) => i.isAppAdmin || i.isSystemAdmin)\r\n\t\t\t: false;\r\n\t}\r\n);\r\nexport const selectIsCmeUser = createSelector([selectAppPermission], (p) => {\r\n\t//any access to cme app denotes a user\r\n\treturn p ? p.length > 0 : false;\r\n});\r\nexport const selectIsCmeClaimant = createSelector(\r\n\t[selectAppPermission, selectUserOrganisation],\r\n\t(p, org) => {\r\n\t\tconst today = dayjs();\r\n\t\treturn p.length > 0\r\n\t\t\t? p.some((i) => {\r\n\t\t\t\t\t//you cannot use CME from x months prior to your end date\r\n\t\t\t\t\tconst x = CME_CONFIG[org]?.DisableCmeXMonthsBeforeEndDate;\r\n\t\t\t\t\tconst xMonthsBeforeEndDate = dayjs(\r\n\t\t\t\t\t\ti.endDate,\r\n\t\t\t\t\t\t\"YYYY-MM-DD\"\r\n\t\t\t\t\t).subtract(x, \"month\");\r\n\t\t\t\t\treturn i.roleName === \"SMO\" && xMonthsBeforeEndDate > today;\r\n\t\t\t })\r\n\t\t\t: false;\r\n\t}\r\n);\r\nexport const selectIsCpdClaimant = createSelector(\r\n\t[selectAppPermission, selectUserOrganisation],\r\n\t(p, org) => {\r\n\t\tconst today = dayjs();\r\n\t\treturn p.length > 0\r\n\t\t\t? p.some((i) => {\r\n\t\t\t\t\t//you cannot use CME from x months prior to your end date\r\n\t\t\t\t\tconst x = CME_CONFIG[org]?.DisableCmeXMonthsBeforeEndDate;\r\n\t\t\t\t\tconst xMonthsBeforeEndDate = dayjs(\r\n\t\t\t\t\t\ti.endDate,\r\n\t\t\t\t\t\t\"YYYY-MM-DD\"\r\n\t\t\t\t\t).subtract(x, \"month\");\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\ti.roleName === \"Nurse Practitioner\" &&\r\n\t\t\t\t\t\txMonthsBeforeEndDate > today\r\n\t\t\t\t\t);\r\n\t\t\t })\r\n\t\t\t: false;\r\n\t}\r\n);\r\nexport const selectIsCmeCoordinator = createSelector(\r\n\t[selectAppPermission],\r\n\t(p) => {\r\n\t\treturn p\r\n\t\t\t? p.some((i) =>\r\n\t\t\t\t\t[\r\n\t\t\t\t\t\t\"SMO Leave & Reimbursement Admin\",\r\n\t\t\t\t\t\t\"CME Coordinator\",\r\n\t\t\t\t\t].includes(i.roleName)\r\n\t\t\t )\r\n\t\t\t: false;\r\n\t}\r\n);\r\nexport const selectIsSysAdmin = createSelector(\r\n\t[selectAppPermission, selectUser],\r\n\t(p, u) => {\r\n\t\treturn u.isSystemAdmin\r\n\t\t\t? true\r\n\t\t\t: p\r\n\t\t\t? p.some((i) => i.isSystemAdmin)\r\n\t\t\t: false;\r\n\t}\r\n);\r\nexport const selectCmeUserTeam = createSelector([selectAppPermission], (p) => {\r\n\treturn p.filter((i) => i.actions?.some((a) => a === \"Write\"));\r\n});\r\nexport const selectCmeForUserTeam = createSelector(\r\n\t[selectForPersonAppPermission],\r\n\t(p) => {\r\n\t\treturn p.filter((i) => i.actions?.some((a) => a === \"Write\"));\r\n\t}\r\n);\r\n//#endregion CME\r\nexport default securitySlice.reducer;\r\n","import rootReducer from \".\";\r\nimport { configureStore } from \"@reduxjs/toolkit\";\r\n\r\nconst rootReducerWithReset = (state, action) => {\r\n\tswitch (action.type) {\r\n\t\tcase \"RESET\":\r\n\t\t\tconst { security, global } = state;\r\n\t\t\tstate = { security, global };\r\n\t\t\tbreak;\r\n\t\tcase \"SET_FROM_SESSION\":\r\n\t\t\tstate = action.payload;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\t}\r\n\treturn rootReducer(state, action);\r\n};\r\n\r\nconst store = configureStore({\r\n\treducer: rootReducerWithReset,\r\n\tmiddleware: (getDefaultMiddleware) => getDefaultMiddleware(),\r\n\tdevTools: process.env.NODE_ENV !== \"production\",\r\n});\r\n\r\nexport default store;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateEntityAdapter,\r\n\tcreateAsyncThunk,\r\n} from \"@reduxjs/toolkit\";\r\nimport { getTreeByDomain } from \"api\";\r\nconst treesAdapter = createEntityAdapter();\r\n\r\nconst initialState = treesAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nexport const fetchTreeByDomain = createAsyncThunk(\r\n\t\"tree/fetchTreeByDomain\",\r\n\tasync ({ domain, parentId }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\t//the id of the tree will be equal to the domain\r\n\t\t\t//the hierarchy api doesn't return an id column\r\n\t\t\t//api returns array but only ever 1 object in array\r\n\t\t\tlet tree = await getTreeByDomain({ domain, parentId });\r\n\t\t\ttree = { id: domain, name: domain, domain, parentId, tree };\r\n\t\t\tdispatch(treeUpserted(tree));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst treesSlice = createSlice({\r\n\tname: \"trees\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\ttreesReceived(state, action) {\r\n\t\t\ttreesAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t\ttreeUpserted(state, action) {\r\n\t\t\ttreesAdapter.upsertOne(state, action.payload);\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\t[fetchTreeByDomain.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"succeeded\";\r\n\t\t},\r\n\t\t[fetchTreeByDomain.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\n/*\r\nACTIONS\r\ntrees data can only ever be received via API\r\nThere are no actions to CRUD individual trees\r\n*/\r\nexport const { treesReceived, treeUpserted } = treesSlice.actions;\r\n\r\n/*\r\nSELECTORS\r\n*/\r\nexport const { selectAll: selectAllTrees, selectById: selectTreeById } =\r\n\ttreesAdapter.getSelectors((state) => state.trees);\r\n\r\n/*\r\nCUSTOM SELECTORS\r\n*/\r\nexport const selectTreesError = (state) => state.trees.error;\r\n\r\nexport default treesSlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateSelector,\r\n\tcreateAsyncThunk,\r\n\tcreateEntityAdapter,\r\n} from \"@reduxjs/toolkit\";\r\nimport dayjs from \"dayjs\";\r\nimport { newId } from \"utils/common\";\r\nimport { getWorkflowHistoryByFormId, postWorkflowHistory } from \"api\";\r\nimport { selectForm } from \"./formSlice\";\r\n\r\nconst workflowHistoryAdapter = createEntityAdapter();\r\n\r\nconst initialState = workflowHistoryAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nexport const postWorkflowHistoryThunk = createAsyncThunk(\r\n\t\"workflowHistory/postWorkflowHistory\",\r\n\tasync (\r\n\t\t{ workflowId, action, description, category, comment, userId },\r\n\t\t{ rejectWithValue, getState, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tconst state = getState();\r\n\t\t\tconst responseFormId = selectForm(state)?.id;\r\n\t\t\tconst workflowHistory = {\r\n\t\t\t\tresponseFormId,\r\n\t\t\t\tworkflowId,\r\n\t\t\t\taction,\r\n\t\t\t\tdescription,\r\n\t\t\t\tcategory,\r\n\t\t\t\tcomment,\r\n\t\t\t\tuserId,\r\n\t\t\t};\r\n\t\t\tawait postWorkflowHistory(workflowHistory);\r\n\t\t\tconst tempId = newId();\r\n\t\t\tdispatch(\r\n\t\t\t\tworkflowHistoryAdded({\r\n\t\t\t\t\tid: tempId,\r\n\t\t\t\t\tcreateOn: dayjs().format(\"YYYY-MM-DDTHH:mm:ss\"),\r\n\t\t\t\t\t...workflowHistory,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchWorkflowHistoryByFormId = createAsyncThunk(\r\n\t\"workflowHistory/fetchWorkflowHistoryByFormId\",\r\n\tasync ({ responseFormId }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tdispatch(\r\n\t\t\t\tworkflowHistoryReceived(\r\n\t\t\t\t\tawait getWorkflowHistoryByFormId({\r\n\t\t\t\t\t\tresponseFormId,\r\n\t\t\t\t\t})\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst workflowHistorySlice = createSlice({\r\n\tname: \"workflowHistory\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tworkflowHistoryAdded(state, action) {\r\n\t\t\tworkflowHistoryAdapter.addOne(state, action.payload);\r\n\t\t},\r\n\t\tworkflowHistoryReceived(state, action) {\r\n\t\t\tworkflowHistoryAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t\tworkflowHistoryStatusEdited(state, action) {\r\n\t\t\tstate.status = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_CME: (state, action) => {\r\n\t\t\treturn initialState;\r\n\t\t},\r\n\t\t[fetchWorkflowHistoryByFormId.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchWorkflowHistoryByFormId.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"succeeded\";\r\n\t\t},\r\n\t\t[fetchWorkflowHistoryByFormId.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[postWorkflowHistoryThunk.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[postWorkflowHistoryThunk.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"succeeded\";\r\n\t\t},\r\n\t\t[postWorkflowHistoryThunk.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\nexport const {\r\n\tworkflowHistoryReceived,\r\n\tworkflowHistoryStatusEdited,\r\n\tworkflowHistoryAdded,\r\n} = workflowHistorySlice.actions;\r\n\r\n/*\r\nSELECTORS\r\n*/\r\nexport const {\r\n\tselectAll: selectAllWorkflowHistoryRaw,\r\n\tselectById: selectWorkflowHistoryById,\r\n} = workflowHistoryAdapter.getSelectors((state) => state.workflowHistory);\r\n\r\nexport const selectAllWorkflowHistory = createSelector(\r\n\t[selectAllWorkflowHistoryRaw],\r\n\t(wh) => {\r\n\t\treturn wh.sort((a, b) =>\r\n\t\t\ta.createOn < b.createOn ? 1 : a.createOn > b.createOn ? -1 : 0\r\n\t\t);\r\n\t}\r\n);\r\n\r\nexport const selectWorkflowHistoryByWorkflowId = (state, props) =>\r\n\tstate.workflowHistory;\r\n\r\nexport const selectWorkflowHistoryError = (state) =>\r\n\tstate.workflowHistory.error;\r\n\r\nexport const selectLastSubmit = createSelector(\r\n\t[selectAllWorkflowHistory],\r\n\t(wh) => {\r\n\t\t//sort by latest created, because a form can be submitted multiple times\r\n\t\treturn wh\r\n\t\t\t.filter((a) => a.action === \"Submit\" || a.action === \"Resume\")\r\n\t\t\t.sort((a, b) =>\r\n\t\t\t\ta.createOn < b.createOn ? 1 : a.createOn > b.createOn ? -1 : 0\r\n\t\t\t)?.[0];\r\n\t}\r\n);\r\n\r\nexport const selectAllWorkflowHistoryIds = createSelector(\r\n\t[selectAllWorkflowHistory],\r\n\t(wh) => {\r\n\t\t//sort by latest created, because a form can be submitted multiple times\r\n\t\treturn wh\r\n\t\t\t.sort((a, b) =>\r\n\t\t\t\ta.createOn < b.createOn ? 1 : a.createOn > b.createOn ? -1 : 0\r\n\t\t\t)\r\n\t\t\t.map((d) => d.id);\r\n\t}\r\n);\r\n\r\nexport const selectCommentByWorkflowId = createSelector(\r\n\t[selectAllWorkflowHistory, (_, { id }) => id],\r\n\t(wh, id) => {\r\n\t\treturn wh\r\n\t\t\t.filter((a) => a.action !== \"Email\" && a.workflowId === id) //ignore email workflow history\r\n\t\t\t.sort((a, b) =>\r\n\t\t\t\ta.createOn < b.createOn ? 1 : a.createOn > b.createOn ? -1 : 0\r\n\t\t\t)?.[0]?.comment;\r\n\t}\r\n);\r\n\r\nexport default workflowHistorySlice.reducer;\r\n","import {\r\n\tcreateSlice,\r\n\tcreateAsyncThunk,\r\n\tcreateEntityAdapter,\r\n\tcreateSelector,\r\n} from \"@reduxjs/toolkit\";\r\nimport {\r\n\tapproveWorkflow,\r\n\trespondWorkflow,\r\n\tdeclineWorkflow,\r\n\tdelegateWorkflow,\r\n\tgetWorkflowsByTemplate,\r\n\tgetWorkflowsByFormId,\r\n\tresumeWorkflow,\r\n\tsubmitWorkflow,\r\n\teditWorkflow,\r\n\tqueryWorkflow,\r\n\tdeleteWorkflow,\r\n\tgetWorkflowApprovers,\r\n\tdeleteWorkflowsByResponseFormId,\r\n\trejectByPayroll,\r\n\taddWorkflow,\r\n\trejectByCountiesFinance,\r\n\tresendPayrollEmail,\r\n} from \"api\";\r\nimport { formStateEdited, statusEdited } from \"./formSlice\";\r\nimport { selectUser } from \"./securitySlice\";\r\nimport {\r\n\tfetchWorkflowHistoryByFormId,\r\n\tselectAllWorkflowHistory,\r\n} from \"./workflowHistorySlice\";\r\n\r\nconst workflowsAdapter = createEntityAdapter();\r\n\r\nconst initialState = workflowsAdapter.getInitialState({\r\n\tstatus: \"idle\",\r\n\terror: null,\r\n});\r\n\r\nexport const deleteWorkflowsByFormId = createAsyncThunk(\r\n\t\"workflow/deleteWorkflowsByFormId\",\r\n\tasync ({ responseFormId }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tawait deleteWorkflowsByResponseFormId({\r\n\t\t\t\tresponseFormId,\r\n\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchWorkflowsByFormId = createAsyncThunk(\r\n\t\"workflow/fetchWorkflowsByFormId\",\r\n\tasync ({ responseFormId }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tdispatch(\r\n\t\t\t\tworkflowsReceived(\r\n\t\t\t\t\tawait getWorkflowsByFormId({\r\n\t\t\t\t\t\tresponseFormId,\r\n\t\t\t\t\t})\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchFromTemplate = createAsyncThunk(\r\n\t\"workflow/fetchFromTemplate\",\r\n\tasync (\r\n\t\t{\r\n\t\t\tformGuid,\r\n\t\t\tformDefinitionId,\r\n\t\t\tcode,\r\n\t\t\tconditions,\r\n\t\t\tdomain,\r\n\t\t\torganisationHierarchyId,\r\n\t\t\torganisation,\r\n\t\t},\r\n\t\t{ rejectWithValue, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tdispatch(\r\n\t\t\t\tworkflowsReceived(\r\n\t\t\t\t\tawait getWorkflowsByTemplate({\r\n\t\t\t\t\t\torganisationHierarchyId,\r\n\t\t\t\t\t\tformGuid,\r\n\t\t\t\t\t\tformDefinitionId,\r\n\t\t\t\t\t\tcode,\r\n\t\t\t\t\t\tconditions,\r\n\t\t\t\t\t\tdomain,\r\n\t\t\t\t\t\torganisation,\r\n\t\t\t\t\t})\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const fetchApprovers = createAsyncThunk(\r\n\t\"workflow/fetchApprovers\",\r\n\tasync (\r\n\t\t{ roleId, organisationId, domain },\r\n\t\t{ rejectWithValue, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tconst response = await getWorkflowApprovers({\r\n\t\t\t\troleId,\r\n\t\t\t\torganisationId,\r\n\t\t\t\tdomain,\r\n\t\t\t});\r\n\t\t\treturn response;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst newWorkflowTemplate = {\r\n\tstatus: \"Pending\",\r\n\ttype: null,\r\n\taction: \"Add\",\r\n\tdescription: null,\r\n};\r\n\r\nexport const add = createAsyncThunk(\r\n\t\"workflow/add\",\r\n\tasync (\r\n\t\t{ responseFormId, userId, roleId, type, sequence, comments },\r\n\t\t{ rejectWithValue, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tconst newWorkflow = {\r\n\t\t\t\t...newWorkflowTemplate,\r\n\t\t\t\tresponseFormId,\r\n\t\t\t\tuserId,\r\n\t\t\t\troleId,\r\n\t\t\t\ttype,\r\n\t\t\t\tsequence,\r\n\t\t\t};\r\n\t\t\tawait addWorkflow(newWorkflow, comments);\r\n\r\n\t\t\t//refresh workflows\r\n\t\t\tawait dispatch(\r\n\t\t\t\tfetchWorkflowsByFormId({\r\n\t\t\t\t\tresponseFormId,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tawait dispatch(fetchWorkflowHistoryByFormId({ responseFormId }));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const submit = createAsyncThunk(\r\n\t\"workflow/submit\",\r\n\tasync ({ workflows, comments }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tawait submitWorkflow(workflows, comments);\r\n\t\t\t//update form state to be pending, since workflows have submitted successfully\r\n\t\t\tdispatch(statusEdited(\"Pending\"));\r\n\t\t\t//auto lock a form after submission\r\n\t\t\tdispatch(formStateEdited({ isLocked: true }));\r\n\t\t\t//refresh workflows\r\n\t\t\tconst { responseFormId } = workflows[0];\r\n\t\t\tawait dispatch(\r\n\t\t\t\tfetchWorkflowsByFormId({\r\n\t\t\t\t\tresponseFormId,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tawait dispatch(fetchWorkflowHistoryByFormId({ responseFormId }));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const approve = createAsyncThunk(\r\n\t\"workflow/approve\",\r\n\tasync ({ workflow, comments }, { rejectWithValue, dispatch, getState }) => {\r\n\t\ttry {\r\n\t\t\tawait approveWorkflow(workflow, comments);\r\n\t\t\t//refresh workflows\r\n\t\t\tconst { responseFormId } = workflow;\r\n\t\t\tawait dispatch(\r\n\t\t\t\tfetchWorkflowsByFormId({\r\n\t\t\t\t\tresponseFormId,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tawait dispatch(fetchWorkflowHistoryByFormId({ responseFormId }));\r\n\t\t\tconst state = getState();\r\n\t\t\tconst activeWorkflow = selectActiveWorkflow(state);\r\n\t\t\t//update form state to be approved, since there is no active workflow after this approval\r\n\t\t\tif (!activeWorkflow) dispatch(statusEdited(\"Approved\"));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const respond = createAsyncThunk(\r\n\t\"workflow/respond\",\r\n\tasync ({ workflow, comments }, { rejectWithValue, dispatch, getState }) => {\r\n\t\ttry {\r\n\t\t\tawait respondWorkflow(workflow, comments);\r\n\t\t\t//refresh workflows\r\n\t\t\tconst { responseFormId } = workflow;\r\n\t\t\tawait dispatch(\r\n\t\t\t\tfetchWorkflowsByFormId({\r\n\t\t\t\t\tresponseFormId,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tawait dispatch(fetchWorkflowHistoryByFormId({ responseFormId }));\r\n\t\t\tconst state = getState();\r\n\t\t\tconst activeWorkflow = selectActiveWorkflow(state);\r\n\t\t\t//update form state to be approved, since there is no active workflow after this approval\r\n\t\t\tif (!activeWorkflow) dispatch(statusEdited(\"Approved\"));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const decline = createAsyncThunk(\r\n\t\"workflow/decline\",\r\n\tasync ({ workflow, comments }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tawait declineWorkflow(workflow, comments);\r\n\r\n\t\t\t//change status to declined\r\n\t\t\tdispatch(statusEdited(\"Declined\"));\r\n\r\n\t\t\t//refresh workflows\r\n\t\t\tconst { responseFormId } = workflow;\r\n\t\t\tawait dispatch(\r\n\t\t\t\tfetchWorkflowsByFormId({\r\n\t\t\t\t\tresponseFormId,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tawait dispatch(fetchWorkflowHistoryByFormId({ responseFormId }));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const delegate = createAsyncThunk(\r\n\t\"workflow/delegate\",\r\n\tasync (\r\n\t\t{ workflow, delegateUserId, comments },\r\n\t\t{ rejectWithValue, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tawait delegateWorkflow(workflow, delegateUserId, comments);\r\n\r\n\t\t\t//refresh workflows\r\n\t\t\tconst { responseFormId } = workflow;\r\n\t\t\tawait dispatch(\r\n\t\t\t\tfetchWorkflowsByFormId({\r\n\t\t\t\t\tresponseFormId,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tawait dispatch(fetchWorkflowHistoryByFormId({ responseFormId }));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const query = createAsyncThunk(\r\n\t\"workflow/query\",\r\n\tasync (\r\n\t\t{ workflow, delegateUserId, comments },\r\n\t\t{ rejectWithValue, dispatch }\r\n\t) => {\r\n\t\ttry {\r\n\t\t\tawait queryWorkflow(workflow, delegateUserId, comments);\r\n\r\n\t\t\t//refresh workflows\r\n\t\t\tconst { responseFormId } = workflow;\r\n\t\t\tawait dispatch(\r\n\t\t\t\tfetchWorkflowsByFormId({\r\n\t\t\t\t\tresponseFormId,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tawait dispatch(fetchWorkflowHistoryByFormId({ responseFormId }));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const edit = createAsyncThunk(\r\n\t\"workflow/edit\",\r\n\tasync ({ workflow, comments }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tawait editWorkflow(workflow, comments);\r\n\t\t\t//refresh workflows\r\n\t\t\tconst { responseFormId } = workflow;\r\n\t\t\tawait dispatch(\r\n\t\t\t\tfetchWorkflowsByFormId({\r\n\t\t\t\t\tresponseFormId,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tawait dispatch(fetchWorkflowHistoryByFormId({ responseFormId }));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const deleteAction = createAsyncThunk(\r\n\t\"workflow/deleteAction\",\r\n\tasync ({ workflow, comments }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tawait deleteWorkflow(workflow, comments);\r\n\t\t\t//refresh workflows\r\n\t\t\tconst { responseFormId } = workflow;\r\n\t\t\tawait dispatch(\r\n\t\t\t\tfetchWorkflowsByFormId({\r\n\t\t\t\t\tresponseFormId,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tawait dispatch(fetchWorkflowHistoryByFormId({ responseFormId }));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const resume = createAsyncThunk(\r\n\t\"workflow/resume\",\r\n\tasync ({ workflows, comments }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tawait resumeWorkflow(workflows, comments);\r\n\t\t\t//update form state to be pending, since workflows have submitted successfully\r\n\t\t\tdispatch(statusEdited(\"Pending\"));\r\n\r\n\t\t\t//refresh workflows\r\n\t\t\tconst { responseFormId } = workflows[0];\r\n\t\t\tawait dispatch(\r\n\t\t\t\tfetchWorkflowsByFormId({\r\n\t\t\t\t\tresponseFormId,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tawait dispatch(fetchWorkflowHistoryByFormId({ responseFormId }));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const resendPayrollEmailThunk = createAsyncThunk(\r\n\t\"workflow/resume\",\r\n\tasync ({ workflow, comments }, { rejectWithValue, dispatch }) => {\r\n\t\ttry {\r\n\t\t\tawait resendPayrollEmail(workflow, comments);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const rejectPayroll = createAsyncThunk(\r\n\t\"workflow/rejectPayroll\",\r\n\tasync ({ formId }, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tawait rejectByPayroll({ formId });\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const rejectCountiesFinance = createAsyncThunk(\r\n\t\"workflow/rejectCountiesFinance\",\r\n\tasync ({ formId, comment }, { rejectWithValue }) => {\r\n\t\ttry {\r\n\t\t\tawait rejectByCountiesFinance({ formId, comment });\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error.message);\r\n\t\t\treturn rejectWithValue({\r\n\t\t\t\ttitle: error.name,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tstatus: \"\",\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n);\r\n\r\nconst workflowsSlice = createSlice({\r\n\tname: \"workflow\",\r\n\tinitialState,\r\n\treducers: {\r\n\t\tworkflowsReceived(state, action) {\r\n\t\t\tworkflowsAdapter.setAll(state, action.payload);\r\n\t\t},\r\n\t\tworkflowStatusEdited(state, action) {\r\n\t\t\tstate.status = action.payload;\r\n\t\t},\r\n\t\tworkflowErrorEdited(state, action) {\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n\textraReducers: {\r\n\t\tRESET_CME: (state, action) => {\r\n\t\t\treturn initialState;\r\n\t\t},\r\n\t\t[deleteWorkflowsByFormId.fulfilled]: (state, action) => {\r\n\t\t\treturn initialState;\r\n\t\t},\r\n\t\t[deleteWorkflowsByFormId.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchWorkflowsByFormId.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchWorkflowsByFormId.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"succeeded\";\r\n\t\t},\r\n\t\t[fetchWorkflowsByFormId.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[fetchFromTemplate.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[fetchFromTemplate.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"succeeded\";\r\n\t\t},\r\n\t\t[fetchFromTemplate.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[submit.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[submit.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"submitted\";\r\n\t\t\t//if submit is successful, redirect to success screen\r\n\t\t},\r\n\t\t[submit.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[approve.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[approve.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"approved\";\r\n\t\t},\r\n\t\t[approve.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[respond.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[respond.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"responded\";\r\n\t\t},\r\n\t\t[respond.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[decline.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[decline.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"declined\";\r\n\t\t},\r\n\t\t[decline.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[edit.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[edit.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"edited\";\r\n\t\t},\r\n\t\t[edit.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[add.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[add.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"edited\";\r\n\t\t},\r\n\t\t[add.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[deleteAction.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[deleteAction.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"deleted\";\r\n\t\t},\r\n\t\t[deleteAction.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[resume.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[resume.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"submitted\";\r\n\t\t},\r\n\t\t[resume.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[delegate.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[delegate.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"delegated\";\r\n\t\t},\r\n\t\t[delegate.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[query.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[query.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"queried\";\r\n\t\t},\r\n\t\t[query.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[rejectPayroll.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[rejectPayroll.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"rejected\";\r\n\t\t},\r\n\t\t[rejectPayroll.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[rejectCountiesFinance.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[rejectCountiesFinance.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"queried\";\r\n\t\t},\r\n\t\t[rejectCountiesFinance.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t\t[resendPayrollEmailThunk.pending]: (state, action) => {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t},\r\n\t\t[resendPayrollEmailThunk.fulfilled]: (state, action) => {\r\n\t\t\tstate.status = \"sent\";\r\n\t\t},\r\n\t\t[resendPayrollEmailThunk.rejected]: (state, action) => {\r\n\t\t\tstate.status = \"failed\";\r\n\t\t\tstate.error = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\n/*intentionally excluding fetchApprovers, as there's frontend\r\n\t\tlogic tied to the status of this slice*/\r\n\r\nexport const { workflowsReceived, workflowStatusEdited, workflowErrorEdited } =\r\n\tworkflowsSlice.actions;\r\n\r\n/*\r\nSELECTORS\r\n*/\r\nexport const { selectAll: selectAllWorkflows, selectById: selectWorkflowById } =\r\n\tworkflowsAdapter.getSelectors((state) => state.workflows);\r\n\r\nexport const selectWorkflowsError = (state) => state.workflows.error;\r\n\r\nexport const selectWorkflowStatus = (state) => state.workflows.status;\r\n\r\nexport const selectActiveWorkflow = createSelector([selectAllWorkflows], (w) =>\r\n\tw.find((w) => w.isActive)\r\n);\r\nexport const selectActiveWorkflowQuery = createSelector(\r\n\t[selectActiveWorkflow, selectAllWorkflowHistory],\r\n\t(w, wh) => {\r\n\t\tif (w && wh) {\r\n\t\t\tconst fromWh = wh.find((wh) => wh.id === w.fromWorkflowHistoryId);\r\n\t\t\treturn fromWh?.action.toString().toLowerCase() === \"query\"\r\n\t\t\t\t? w\r\n\t\t\t\t: null;\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const selectMyWorkflows = createSelector(\r\n\t[selectAllWorkflows, selectUser],\r\n\t(workflows, user) => {\r\n\t\treturn workflows.filter((w) => w.userId === user.id);\r\n\t}\r\n);\r\n\r\nexport const selectWorkflowTypes = createSelector(\r\n\t[selectAllWorkflows],\r\n\t(workflows) => {\r\n\t\treturn [\r\n\t\t\t...new Set(\r\n\t\t\t\tworkflows\r\n\t\t\t\t\t.filter((w) => w.type !== null && w.type !== undefined)\r\n\t\t\t\t\t.map((w) => w.type)\r\n\t\t\t),\r\n\t\t];\r\n\t}\r\n);\r\n\r\nexport default workflowsSlice.reducer;\r\n","import { v4 as uuidv4 } from \"uuid\";\r\n\r\nexport function createMarkup(html) {\r\n\treturn { __html: html };\r\n}\r\n\r\nexport const getBase64 = (file) => {\r\n\treturn new Promise((resolve) => {\r\n\t\t// Make new FileReader\r\n\t\tlet reader = new FileReader();\r\n\r\n\t\t// on reader load somthing...\r\n\t\treader.onload = () => {\r\n\t\t\t// Make a fileInfo Object\r\n\t\t\tresolve(reader.result);\r\n\t\t};\r\n\t\t// Convert the file to base64 text\r\n\t\treader.readAsDataURL(file);\r\n\t});\r\n};\r\n\r\nexport const newId = () => uuidv4();\r\n\r\nexport const getQueryValue = (name) => {\r\n\tlet search = window.location.search;\r\n\tlet params = new URLSearchParams(search);\r\n\treturn params.get(name);\r\n};\r\n\r\nexport const ciEquals = (a, b) => {\r\n\treturn typeof a === \"string\" && typeof b === \"string\"\r\n\t\t? a.localeCompare(b, undefined, { sensitivity: \"base\" }) === 0\r\n\t\t: a === b;\r\n};\r\n\r\n//validation helper - todo: refactor\r\nexport const validator = (validation, value) => {\r\n\tif (!validation || validation.length === 0) return;\r\n\tswitch (validation.type) {\r\n\t\tcase \"mandatory\":\r\n\t\t\tif (\r\n\t\t\t\ttypeof value === \"undefined\" ||\r\n\t\t\t\tvalue?.length === 0 ||\r\n\t\t\t\tvalue === null\r\n\t\t\t) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tvalidationType: validation.type,\r\n\t\t\t\t\tmessage: `This response is mandatory`,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase \"maxLength\":\r\n\t\t\tif (value && value.length > validation.value) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tvalidationType: validation.type,\r\n\t\t\t\t\tmessage: `This response can't exceed the maximum length of ${validation.value} letters.`,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"integer\":\r\n\t\t\tif (!Number.isInteger(value)) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tvalidationType: validation.type,\r\n\t\t\t\t\tmessage: `This response should be a number without any decimal points.`,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase \"number\":\r\n\t\t\tif (isNaN(value)) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tvalidationType: validation.type,\r\n\t\t\t\t\tmessage: `This response should be a number.`,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase \"minValue\":\r\n\t\t\tif (value && value < validation.value) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tvalidationType: validation.type,\r\n\t\t\t\t\tmessage: `This response cannot be less than ${validation.value}`,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase \"numericValue2dp\":\r\n\t\t\tif (\r\n\t\t\t\tvalue &&\r\n\t\t\t\tMath.abs(value).toFixed(2) !== validation.value.toFixed(2)\r\n\t\t\t) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tvalidationType: validation.type,\r\n\t\t\t\t\tmessage: `This response must be ${validation.value}`,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\t}\r\n};\r\n\r\nexport const arrayFromSize = (length) => {\r\n\treturn Array.from({ length }, (_, k) => k);\r\n};\r\n\r\nexport const downloadFile = (doc) => {\r\n\tconst blob = b64toBlob(doc);\r\n\tconst link = document.createElement(\"a\");\r\n\r\n\t//for IE use proprietary blob saving function\r\n\tif (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n\t\twindow.navigator.msSaveOrOpenBlob(blob, doc.fileName);\r\n\t} else {\r\n\t\t//other browsers\r\n\t\tlink.href = window.URL.createObjectURL(blob);\r\n\t\tlink.download = doc.fileName;\r\n\t\tlink.click();\r\n\t}\r\n};\r\n\r\nexport const getFile = (doc) => {\r\n\tconst blob = b64toBlob(doc);\r\n\treturn URL.createObjectURL(blob);\r\n};\r\n\r\nfunction b64toBlob(doc) {\r\n\tvar byteString = atob(\r\n\t\tdoc.fileContent.indexOf(\",\") < 0\r\n\t\t\t? doc.fileContent\r\n\t\t\t: doc.fileContent.split(\",\")[1]\r\n\t);\r\n\tvar ab = new ArrayBuffer(byteString.length);\r\n\tvar ia = new Uint8Array(ab);\r\n\tfor (var i = 0; i < byteString.length; i++) {\r\n\t\tia[i] = byteString.charCodeAt(i);\r\n\t}\r\n\treturn new Blob([ab], { type: doc.fileType });\r\n}\r\n\r\nexport function getPropertyCi(object, key) {\r\n\treturn object[\r\n\t\tObject.keys(object).find((k) => k.toLowerCase() === key.toLowerCase())\r\n\t];\r\n}\r\n\r\nfunction getAnyValueForSorting(value) {\r\n\tif (typeof value === \"string\") return value.toLowerCase();\r\n\telse return value;\r\n}\r\n\r\nexport function sortAnyValue(a, b, sortDirection) {\r\n\tconst valueA = getAnyValueForSorting(a);\r\n\tconst valueB = getAnyValueForSorting(b);\r\n\r\n\t//equal items sort equally\r\n\tif (valueA === valueB) {\r\n\t\treturn 0;\r\n\t}\r\n\t//sort nulls last before anything else\r\n\tif (valueA === null) {\r\n\t\treturn 1;\r\n\t}\r\n\tif (valueB === null) {\r\n\t\treturn -1;\r\n\t}\r\n\t//otherwise if ascending, lowest sorts first\r\n\tif (sortDirection === \"asc\") {\r\n\t\treturn valueA < valueB ? -1 : 1;\r\n\t}\r\n\t//if descending, highest sorts first\r\n\tif (sortDirection === \"desc\") {\r\n\t\treturn valueA > valueB ? -1 : 1;\r\n\t}\r\n}\r\n\r\nexport function getTimezone() {\r\n\tif (process.env.REACT_APP_TIMEZONE === \"NZDT\") return \"NZDT\";\r\n\telse return \"UTC\";\r\n}\r\n\r\nexport function getFormattedNumber(value) {\r\n\tif (!value) return value;\r\n\tvar parts = value.toString().split(\".\");\r\n\tparts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n\treturn parts.join(\".\");\r\n}\r\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexports.default = CheckCircleFilled;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CheckCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"check-circle\", \"theme\": \"outlined\" };\nexports.default = CheckCircleOutlined;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CheckOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" } }] }, \"name\": \"check\", \"theme\": \"outlined\" };\nexports.default = CheckOutlined;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CloseCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z\" } }] }, \"name\": \"close-circle\", \"theme\": \"filled\" };\nexports.default = CloseCircleFilled;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CloseCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm0 76c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm128.01 198.83c.03 0 .05.01.09.06l45.02 45.01a.2.2 0 01.05.09.12.12 0 010 .07c0 .02-.01.04-.05.08L557.25 512l127.87 127.86a.27.27 0 01.05.06v.02a.12.12 0 010 .07c0 .03-.01.05-.05.09l-45.02 45.02a.2.2 0 01-.09.05.12.12 0 01-.07 0c-.02 0-.04-.01-.08-.05L512 557.25 384.14 685.12c-.04.04-.06.05-.08.05a.12.12 0 01-.07 0c-.03 0-.05-.01-.09-.05l-45.02-45.02a.2.2 0 01-.05-.09.12.12 0 010-.07c0-.02.01-.04.06-.08L466.75 512 338.88 384.14a.27.27 0 01-.05-.06l-.01-.02a.12.12 0 010-.07c0-.03.01-.05.05-.09l45.02-45.02a.2.2 0 01.09-.05.12.12 0 01.07 0c.02 0 .04.01.08.06L512 466.75l127.86-127.86c.04-.05.06-.06.08-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close-circle\", \"theme\": \"outlined\" };\nexports.default = CloseCircleOutlined;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexports.default = CloseOutlined;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CopyOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\" } }] }, \"name\": \"copy\", \"theme\": \"outlined\" };\nexports.default = CopyOutlined;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EditOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\" } }] }, \"name\": \"edit\", \"theme\": \"outlined\" };\nexports.default = EditOutlined;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EnterOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"enter\", \"theme\": \"outlined\" };\nexports.default = EnterOutlined;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexports.default = ExclamationCircleFilled;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ExclamationCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"outlined\" };\nexports.default = ExclamationCircleOutlined;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexports.default = InfoCircleFilled;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar InfoCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"info-circle\", \"theme\": \"outlined\" };\nexports.default = InfoCircleOutlined;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexports.default = LoadingOutlined;\n","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CheckCircleFilled = _interopRequireDefault(require('./lib/icons/CheckCircleFilled'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CheckCircleFilled;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CheckCircleOutlined = _interopRequireDefault(require('./lib/icons/CheckCircleOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CheckCircleOutlined;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CheckOutlined = _interopRequireDefault(require('./lib/icons/CheckOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CheckOutlined;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CloseCircleFilled = _interopRequireDefault(require('./lib/icons/CloseCircleFilled'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CloseCircleFilled;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CloseCircleOutlined = _interopRequireDefault(require('./lib/icons/CloseCircleOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CloseCircleOutlined;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CloseOutlined = _interopRequireDefault(require('./lib/icons/CloseOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CloseOutlined;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CopyOutlined = _interopRequireDefault(require('./lib/icons/CopyOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CopyOutlined;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _EditOutlined = _interopRequireDefault(require('./lib/icons/EditOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _EditOutlined;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _EnterOutlined = _interopRequireDefault(require('./lib/icons/EnterOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _EnterOutlined;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _ExclamationCircleFilled = _interopRequireDefault(require('./lib/icons/ExclamationCircleFilled'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _ExclamationCircleFilled;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _ExclamationCircleOutlined = _interopRequireDefault(require('./lib/icons/ExclamationCircleOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _ExclamationCircleOutlined;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _InfoCircleFilled = _interopRequireDefault(require('./lib/icons/InfoCircleFilled'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _InfoCircleFilled;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _InfoCircleOutlined = _interopRequireDefault(require('./lib/icons/InfoCircleOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _InfoCircleOutlined;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _LoadingOutlined = _interopRequireDefault(require('./lib/icons/LoadingOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _LoadingOutlined;\n exports.default = _default;\n module.exports = _default;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nimport camelCase from 'lodash/camelCase';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n var _useContext = useContext(IconContext),\n csp = _useContext.csp;\n useEffect(function () {\n updateCSS(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!isIconDefinition(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils';\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classNames(rootClassName, prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","// This icon file is generated automatically.\nvar CalendarOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z\" } }] }, \"name\": \"calendar\", \"theme\": \"outlined\" };\nexport default CalendarOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CalendarOutlinedSvg from \"@ant-design/icons-svg/es/asn/CalendarOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CalendarOutlined = function CalendarOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CalendarOutlinedSvg\n }));\n};\nCalendarOutlined.displayName = 'CalendarOutlined';\nexport default /*#__PURE__*/React.forwardRef(CalendarOutlined);","// This icon file is generated automatically.\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexport default CheckCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckCircleFilledSvg\n }));\n};\nCheckCircleFilled.displayName = 'CheckCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleFilled);","// This icon file is generated automatically.\nvar CheckCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"check-circle\", \"theme\": \"outlined\" };\nexport default CheckCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CheckCircleOutlined = function CheckCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckCircleOutlinedSvg\n }));\n};\nCheckCircleOutlined.displayName = 'CheckCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleOutlined);","// This icon file is generated automatically.\nvar CheckOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" } }] }, \"name\": \"check\", \"theme\": \"outlined\" };\nexport default CheckOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CheckOutlined = function CheckOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckOutlinedSvg\n }));\n};\nCheckOutlined.displayName = 'CheckOutlined';\nexport default /*#__PURE__*/React.forwardRef(CheckOutlined);","// This icon file is generated automatically.\nvar ClockCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\" } }] }, \"name\": \"clock-circle\", \"theme\": \"outlined\" };\nexport default ClockCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ClockCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ClockCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ClockCircleOutlined = function ClockCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ClockCircleOutlinedSvg\n }));\n};\nClockCircleOutlined.displayName = 'ClockCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(ClockCircleOutlined);","// This icon file is generated automatically.\nvar CloseCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z\" } }] }, \"name\": \"close-circle\", \"theme\": \"filled\" };\nexport default CloseCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CloseCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseCircleFilledSvg\n }));\n};\nCloseCircleFilled.displayName = 'CloseCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleFilled);","// This icon file is generated automatically.\nvar CloseCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm0 76c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm128.01 198.83c.03 0 .05.01.09.06l45.02 45.01a.2.2 0 01.05.09.12.12 0 010 .07c0 .02-.01.04-.05.08L557.25 512l127.87 127.86a.27.27 0 01.05.06v.02a.12.12 0 010 .07c0 .03-.01.05-.05.09l-45.02 45.02a.2.2 0 01-.09.05.12.12 0 01-.07 0c-.02 0-.04-.01-.08-.05L512 557.25 384.14 685.12c-.04.04-.06.05-.08.05a.12.12 0 01-.07 0c-.03 0-.05-.01-.09-.05l-45.02-45.02a.2.2 0 01-.05-.09.12.12 0 010-.07c0-.02.01-.04.06-.08L466.75 512 338.88 384.14a.27.27 0 01-.05-.06l-.01-.02a.12.12 0 010-.07c0-.03.01-.05.05-.09l45.02-45.02a.2.2 0 01.09-.05.12.12 0 01.07 0c.02 0 .04.01.08.06L512 466.75l127.86-127.86c.04-.05.06-.06.08-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close-circle\", \"theme\": \"outlined\" };\nexport default CloseCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CloseCircleOutlined = function CloseCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseCircleOutlinedSvg\n }));\n};\nCloseCircleOutlined.displayName = 'CloseCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleOutlined);","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CloseOutlined = function CloseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseOutlinedSvg\n }));\n};\nCloseOutlined.displayName = 'CloseOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseOutlined);","// This icon file is generated automatically.\nvar CommentOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M573 421c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40zm-280 0c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M894 345a343.92 343.92 0 00-189-130v.1c-17.1-19-36.4-36.5-58-52.1-163.7-119-393.5-82.7-513 81-96.3 133-92.2 311.9 6 439l.8 132.6c0 3.2.5 6.4 1.5 9.4a31.95 31.95 0 0040.1 20.9L309 806c33.5 11.9 68.1 18.7 102.5 20.6l-.5.4c89.1 64.9 205.9 84.4 313 49l127.1 41.4c3.2 1 6.5 1.6 9.9 1.6 17.7 0 32-14.3 32-32V753c88.1-119.6 90.4-284.9 1-408zM323 735l-12-5-99 31-1-104-8-9c-84.6-103.2-90.2-251.9-11-361 96.4-132.2 281.2-161.4 413-66 132.2 96.1 161.5 280.6 66 412-80.1 109.9-223.5 150.5-348 102zm505-17l-8 10 1 104-98-33-12 5c-56 20.8-115.7 22.5-171 7l-.2-.1A367.31 367.31 0 00729 676c76.4-105.3 88.8-237.6 44.4-350.4l.6.4c23 16.5 44.1 37.1 62 62 72.6 99.6 68.5 235.2-8 330z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M433 421c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40z\" } }] }, \"name\": \"comment\", \"theme\": \"outlined\" };\nexport default CommentOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CommentOutlinedSvg from \"@ant-design/icons-svg/es/asn/CommentOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CommentOutlined = function CommentOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CommentOutlinedSvg\n }));\n};\nCommentOutlined.displayName = 'CommentOutlined';\nexport default /*#__PURE__*/React.forwardRef(CommentOutlined);","// This icon file is generated automatically.\nvar DeleteOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z\" } }] }, \"name\": \"delete\", \"theme\": \"outlined\" };\nexport default DeleteOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DeleteOutlinedSvg from \"@ant-design/icons-svg/es/asn/DeleteOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DeleteOutlined = function DeleteOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DeleteOutlinedSvg\n }));\n};\nDeleteOutlined.displayName = 'DeleteOutlined';\nexport default /*#__PURE__*/React.forwardRef(DeleteOutlined);","// This icon file is generated automatically.\nvar DownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" } }] }, \"name\": \"down\", \"theme\": \"outlined\" };\nexport default DownOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DownOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DownOutlined = function DownOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DownOutlinedSvg\n }));\n};\nDownOutlined.displayName = 'DownOutlined';\nexport default /*#__PURE__*/React.forwardRef(DownOutlined);","// This icon file is generated automatically.\nvar EditOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\" } }] }, \"name\": \"edit\", \"theme\": \"outlined\" };\nexport default EditOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EditOutlinedSvg from \"@ant-design/icons-svg/es/asn/EditOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EditOutlined = function EditOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EditOutlinedSvg\n }));\n};\nEditOutlined.displayName = 'EditOutlined';\nexport default /*#__PURE__*/React.forwardRef(EditOutlined);","// This icon file is generated automatically.\nvar EllipsisOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"ellipsis\", \"theme\": \"outlined\" };\nexport default EllipsisOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EllipsisOutlinedSvg from \"@ant-design/icons-svg/es/asn/EllipsisOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EllipsisOutlined = function EllipsisOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EllipsisOutlinedSvg\n }));\n};\nEllipsisOutlined.displayName = 'EllipsisOutlined';\nexport default /*#__PURE__*/React.forwardRef(EllipsisOutlined);","// This icon file is generated automatically.\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexport default ExclamationCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleFilledSvg\n }));\n};\nExclamationCircleFilled.displayName = 'ExclamationCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);","// This icon file is generated automatically.\nvar ExclamationCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"outlined\" };\nexport default ExclamationCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ExclamationCircleOutlined = function ExclamationCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleOutlinedSvg\n }));\n};\nExclamationCircleOutlined.displayName = 'ExclamationCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleOutlined);","// This icon file is generated automatically.\nvar EyeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\" } }] }, \"name\": \"eye\", \"theme\": \"outlined\" };\nexport default EyeOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EyeOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EyeOutlined = function EyeOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EyeOutlinedSvg\n }));\n};\nEyeOutlined.displayName = 'EyeOutlined';\nexport default /*#__PURE__*/React.forwardRef(EyeOutlined);","// This icon file is generated automatically.\nvar FileOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\" } }] }, \"name\": \"file\", \"theme\": \"outlined\" };\nexport default FileOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FileOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar FileOutlined = function FileOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FileOutlinedSvg\n }));\n};\nFileOutlined.displayName = 'FileOutlined';\nexport default /*#__PURE__*/React.forwardRef(FileOutlined);","// This icon file is generated automatically.\nvar HomeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z\" } }] }, \"name\": \"home\", \"theme\": \"outlined\" };\nexport default HomeOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport HomeOutlinedSvg from \"@ant-design/icons-svg/es/asn/HomeOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar HomeOutlined = function HomeOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: HomeOutlinedSvg\n }));\n};\nHomeOutlined.displayName = 'HomeOutlined';\nexport default /*#__PURE__*/React.forwardRef(HomeOutlined);","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: InfoCircleFilledSvg\n }));\n};\nInfoCircleFilled.displayName = 'InfoCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleFilled);","// This icon file is generated automatically.\nvar InfoCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"info-circle\", \"theme\": \"outlined\" };\nexport default InfoCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar InfoCircleOutlined = function InfoCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: InfoCircleOutlinedSvg\n }));\n};\nInfoCircleOutlined.displayName = 'InfoCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleOutlined);","// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\nLeftOutlined.displayName = 'LeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(LeftOutlined);","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LoadingOutlinedSvg\n }));\n};\nLoadingOutlined.displayName = 'LoadingOutlined';\nexport default /*#__PURE__*/React.forwardRef(LoadingOutlined);","// This icon file is generated automatically.\nvar LockOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z\" } }] }, \"name\": \"lock\", \"theme\": \"outlined\" };\nexport default LockOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LockOutlinedSvg from \"@ant-design/icons-svg/es/asn/LockOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar LockOutlined = function LockOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LockOutlinedSvg\n }));\n};\nLockOutlined.displayName = 'LockOutlined';\nexport default /*#__PURE__*/React.forwardRef(LockOutlined);","// This icon file is generated automatically.\nvar PaperClipOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z\" } }] }, \"name\": \"paper-clip\", \"theme\": \"outlined\" };\nexport default PaperClipOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PaperClipOutlinedSvg from \"@ant-design/icons-svg/es/asn/PaperClipOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PaperClipOutlined = function PaperClipOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PaperClipOutlinedSvg\n }));\n};\nPaperClipOutlined.displayName = 'PaperClipOutlined';\nexport default /*#__PURE__*/React.forwardRef(PaperClipOutlined);","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","// This icon file is generated automatically.\nvar QuestionCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"question-circle\", \"theme\": \"outlined\" };\nexport default QuestionCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport QuestionCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/QuestionCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar QuestionCircleOutlined = function QuestionCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: QuestionCircleOutlinedSvg\n }));\n};\nQuestionCircleOutlined.displayName = 'QuestionCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(QuestionCircleOutlined);","// This icon file is generated automatically.\nvar RightCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M666.7 505.5l-246-178A8 8 0 00408 334v46.9c0 10.2 4.9 19.9 13.2 25.9L566.6 512 421.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.8 0-13z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"right-circle\", \"theme\": \"outlined\" };\nexport default RightCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport RightCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar RightCircleOutlined = function RightCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: RightCircleOutlinedSvg\n }));\n};\nRightCircleOutlined.displayName = 'RightCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(RightCircleOutlined);","// This icon file is generated automatically.\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexport default RightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar RightOutlined = function RightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: RightOutlinedSvg\n }));\n};\nRightOutlined.displayName = 'RightOutlined';\nexport default /*#__PURE__*/React.forwardRef(RightOutlined);","// This icon file is generated automatically.\nvar SearchOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\" } }] }, \"name\": \"search\", \"theme\": \"outlined\" };\nexport default SearchOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SearchOutlinedSvg from \"@ant-design/icons-svg/es/asn/SearchOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar SearchOutlined = function SearchOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: SearchOutlinedSvg\n }));\n};\nSearchOutlined.displayName = 'SearchOutlined';\nexport default /*#__PURE__*/React.forwardRef(SearchOutlined);","// This icon file is generated automatically.\nvar UnlockOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z\" } }] }, \"name\": \"unlock\", \"theme\": \"outlined\" };\nexport default UnlockOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport UnlockOutlinedSvg from \"@ant-design/icons-svg/es/asn/UnlockOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar UnlockOutlined = function UnlockOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: UnlockOutlinedSvg\n }));\n};\nUnlockOutlined.displayName = 'UnlockOutlined';\nexport default /*#__PURE__*/React.forwardRef(UnlockOutlined);","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _Context = _interopRequireDefault(require(\"./Context\"));\nvar _IconBase = _interopRequireDefault(require(\"./IconBase\"));\nvar _twoTonePrimaryColor = require(\"./twoTonePrimaryColor\");\nvar _utils = require(\"../utils\");\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// Initial setting\n// should move it to antd main repo?\n(0, _twoTonePrimaryColor.setTwoToneColor)('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = (0, _objectWithoutProperties2.default)(props, _excluded);\n var _React$useContext = React.useContext(_Context.default),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = (0, _classnames.default)(rootClassName, prefixCls, (_classNames = {}, (0, _defineProperty2.default)(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), (0, _defineProperty2.default)(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = (0, _utils.normalizeTwoToneColors)(twoToneColor),\n _normalizeTwoToneColo2 = (0, _slicedToArray2.default)(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", (0, _objectSpread2.default)((0, _objectSpread2.default)({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(_IconBase.default, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = _twoTonePrimaryColor.getTwoToneColor;\nIcon.setTwoToneColor = _twoTonePrimaryColor.setTwoToneColor;\nvar _default = Icon;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = require(\"react\");\nvar IconContext = /*#__PURE__*/(0, _react.createContext)({});\nvar _default = IconContext;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _utils = require(\"../utils\");\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || (0, _utils.getSecondaryColor)(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return (0, _objectSpread2.default)({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = (0, _objectWithoutProperties2.default)(props, _excluded);\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || (0, _utils.getSecondaryColor)(primaryColor)\n };\n }\n (0, _utils.useInsertStyles)();\n (0, _utils.warning)((0, _utils.isIconDefinition)(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!(0, _utils.isIconDefinition)(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return (0, _utils.generate)(target.icon, \"svg-\".concat(target.name), (0, _objectSpread2.default)({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nvar _default = IconBase;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTwoToneColor = getTwoToneColor;\nexports.setTwoToneColor = setTwoToneColor;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _IconBase = _interopRequireDefault(require(\"./IconBase\"));\nvar _utils = require(\"../utils\");\nfunction setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = (0, _utils.normalizeTwoToneColors)(twoToneColor),\n _normalizeTwoToneColo2 = (0, _slicedToArray2.default)(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return _IconBase.default.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nfunction getTwoToneColor() {\n var colors = _IconBase.default.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _CheckCircleFilled = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/CheckCircleFilled\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _CheckCircleFilled.default\n }));\n};\nCheckCircleFilled.displayName = 'CheckCircleFilled';\nvar _default = /*#__PURE__*/React.forwardRef(CheckCircleFilled);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _CheckCircleOutlined = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/CheckCircleOutlined\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar CheckCircleOutlined = function CheckCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _CheckCircleOutlined.default\n }));\n};\nCheckCircleOutlined.displayName = 'CheckCircleOutlined';\nvar _default = /*#__PURE__*/React.forwardRef(CheckCircleOutlined);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _CheckOutlined = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/CheckOutlined\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar CheckOutlined = function CheckOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _CheckOutlined.default\n }));\n};\nCheckOutlined.displayName = 'CheckOutlined';\nvar _default = /*#__PURE__*/React.forwardRef(CheckOutlined);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _CloseCircleFilled = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/CloseCircleFilled\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _CloseCircleFilled.default\n }));\n};\nCloseCircleFilled.displayName = 'CloseCircleFilled';\nvar _default = /*#__PURE__*/React.forwardRef(CloseCircleFilled);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _CloseCircleOutlined = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/CloseCircleOutlined\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar CloseCircleOutlined = function CloseCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _CloseCircleOutlined.default\n }));\n};\nCloseCircleOutlined.displayName = 'CloseCircleOutlined';\nvar _default = /*#__PURE__*/React.forwardRef(CloseCircleOutlined);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _CloseOutlined = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/CloseOutlined\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar CloseOutlined = function CloseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _CloseOutlined.default\n }));\n};\nCloseOutlined.displayName = 'CloseOutlined';\nvar _default = /*#__PURE__*/React.forwardRef(CloseOutlined);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _CopyOutlined = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/CopyOutlined\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar CopyOutlined = function CopyOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _CopyOutlined.default\n }));\n};\nCopyOutlined.displayName = 'CopyOutlined';\nvar _default = /*#__PURE__*/React.forwardRef(CopyOutlined);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _EditOutlined = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/EditOutlined\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar EditOutlined = function EditOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _EditOutlined.default\n }));\n};\nEditOutlined.displayName = 'EditOutlined';\nvar _default = /*#__PURE__*/React.forwardRef(EditOutlined);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _EnterOutlined = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/EnterOutlined\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar EnterOutlined = function EnterOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _EnterOutlined.default\n }));\n};\nEnterOutlined.displayName = 'EnterOutlined';\nvar _default = /*#__PURE__*/React.forwardRef(EnterOutlined);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _ExclamationCircleFilled = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/ExclamationCircleFilled\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _ExclamationCircleFilled.default\n }));\n};\nExclamationCircleFilled.displayName = 'ExclamationCircleFilled';\nvar _default = /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _ExclamationCircleOutlined = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/ExclamationCircleOutlined\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar ExclamationCircleOutlined = function ExclamationCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _ExclamationCircleOutlined.default\n }));\n};\nExclamationCircleOutlined.displayName = 'ExclamationCircleOutlined';\nvar _default = /*#__PURE__*/React.forwardRef(ExclamationCircleOutlined);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _InfoCircleFilled = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/InfoCircleFilled\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _InfoCircleFilled.default\n }));\n};\nInfoCircleFilled.displayName = 'InfoCircleFilled';\nvar _default = /*#__PURE__*/React.forwardRef(InfoCircleFilled);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _InfoCircleOutlined = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/InfoCircleOutlined\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar InfoCircleOutlined = function InfoCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _InfoCircleOutlined.default\n }));\n};\nInfoCircleOutlined.displayName = 'InfoCircleOutlined';\nvar _default = /*#__PURE__*/React.forwardRef(InfoCircleOutlined);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _LoadingOutlined = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/LoadingOutlined\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _LoadingOutlined.default\n }));\n};\nLoadingOutlined.displayName = 'LoadingOutlined';\nvar _default = /*#__PURE__*/React.forwardRef(LoadingOutlined);\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof3 = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.generate = generate;\nexports.getSecondaryColor = getSecondaryColor;\nexports.iconStyles = void 0;\nexports.isIconDefinition = isIconDefinition;\nexports.normalizeAttrs = normalizeAttrs;\nexports.normalizeTwoToneColors = normalizeTwoToneColors;\nexports.useInsertStyles = exports.svgBaseProps = void 0;\nexports.warning = warning;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _colors = require(\"@ant-design/colors\");\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _warning = _interopRequireDefault(require(\"rc-util/lib/warning\"));\nvar _dynamicCSS = require(\"rc-util/lib/Dom/dynamicCSS\");\nvar _Context = _interopRequireDefault(require(\"./components/Context\"));\nvar _camelCase = _interopRequireDefault(require(\"lodash/camelCase\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction warning(valid, message) {\n (0, _warning.default)(valid, \"[@ant-design/icons] \".concat(message));\n}\nfunction isIconDefinition(target) {\n return (0, _typeof2.default)(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && ((0, _typeof2.default)(target.icon) === 'object' || typeof target.icon === 'function');\n}\nfunction normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[(0, _camelCase.default)(key)] = val;\n }\n return acc;\n }, {});\n}\nfunction generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/_react.default.createElement(node.tag, (0, _objectSpread2.default)({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/_react.default.createElement(node.tag, (0, _objectSpread2.default)((0, _objectSpread2.default)({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nfunction getSecondaryColor(primaryColor) {\n // choose the second color\n return (0, _colors.generate)(primaryColor)[0];\n}\nfunction normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nvar svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexports.svgBaseProps = svgBaseProps;\nvar iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexports.iconStyles = iconStyles;\nvar useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n var _useContext = (0, _react.useContext)(_Context.default),\n csp = _useContext.csp;\n (0, _react.useEffect)(function () {\n (0, _dynamicCSS.updateCSS)(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};\nexports.useInsertStyles = useInsertStyles;","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"@azure/msal-common\";\n\n/**\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const BrowserConfigurationAuthErrorMessage = {\n redirectUriNotSet: {\n code: \"redirect_uri_empty\",\n desc: \"A redirect URI is required for all calls, and none has been set.\"\n },\n postLogoutUriNotSet: {\n code: \"post_logout_uri_empty\",\n desc: \"A post logout redirect has not been set.\"\n },\n storageNotSupportedError: {\n code: \"storage_not_supported\",\n desc: \"Given storage configuration option was not supported.\"\n },\n noRedirectCallbacksSet: {\n code: \"no_redirect_callbacks\",\n desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. \" +\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\n },\n invalidCallbackObject: {\n code: \"invalid_callback_object\",\n desc: \"The object passed for the callback was invalid. \" +\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\n },\n stubPcaInstanceCalled: {\n code: \"stubbed_public_client_application_called\",\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\"\n },\n inMemRedirectUnavailable: {\n code: \"in_mem_redirect_unavailable\",\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.\"\n }\n};\n\n/**\n * Browser library error class thrown by the MSAL.js library for SPAs\n */\nexport class BrowserConfigurationAuthError extends AuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n this.name = \"BrowserConfigurationAuthError\";\n\n Object.setPrototypeOf(this, BrowserConfigurationAuthError.prototype);\n }\n\n /**\n * Creates an error thrown when the redirect uri is empty (not set by caller)\n */\n static createRedirectUriEmptyError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code,\n BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\n }\n\n /**\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\n */\n static createPostLogoutRedirectUriEmptyError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code,\n BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\n }\n\n /**\n * Creates error thrown when given storage location is not supported.\n * @param givenStorageLocation \n */\n static createStorageNotSupportedError(givenStorageLocation: string): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, `${BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc} Given Location: ${givenStorageLocation}`);\n }\n\n /**\n * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\n */\n static createRedirectCallbacksNotSetError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, \n BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\n }\n\n /**\n * Creates error thrown when the stub instance of PublicClientApplication is called.\n */\n static createStubPcaInstanceCalledError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code,\n BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\n }\n\n /*\n * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\n */\n static createInMemoryRedirectUnavailableError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport enum EventType {\n LOGIN_START = \"msal:loginStart\",\n LOGIN_SUCCESS = \"msal:loginSuccess\",\n LOGIN_FAILURE = \"msal:loginFailure\",\n ACQUIRE_TOKEN_START = \"msal:acquireTokenStart\",\n ACQUIRE_TOKEN_SUCCESS = \"msal:acquireTokenSuccess\",\n ACQUIRE_TOKEN_FAILURE = \"msal:acquireTokenFailure\",\n ACQUIRE_TOKEN_NETWORK_START = \"msal:acquireTokenFromNetworkStart\",\n SSO_SILENT_START = \"msal:ssoSilentStart\",\n SSO_SILENT_SUCCESS = \"msal:ssoSilentSuccess\",\n SSO_SILENT_FAILURE = \"msal:ssoSilentFailure\",\n HANDLE_REDIRECT_START = \"msal:handleRedirectStart\",\n HANDLE_REDIRECT_END = \"msal:handleRedirectEnd\",\n POPUP_OPENED = \"msal:popupOpened\",\n LOGOUT_START = \"msal:logoutStart\",\n LOGOUT_SUCCESS = \"msal:logoutSuccess\",\n LOGOUT_FAILURE = \"msal:logoutFailure\",\n LOGOUT_END = \"msal:logoutEnd\"\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { OIDC_DEFAULT_SCOPES } from \"@azure/msal-common\";\nimport { PopupRequest } from \"../request/PopupRequest\";\nimport { RedirectRequest } from \"../request/RedirectRequest\";\n\n/**\n * Constants\n */\nexport const BrowserConstants = {\n /**\n * Interaction in progress cache value\n */\n INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\n /**\n * Invalid grant error code\n */\n INVALID_GRANT_ERROR: \"invalid_grant\",\n /**\n * Default popup window width\n */\n POPUP_WIDTH: 483,\n /**\n * Default popup window height\n */\n POPUP_HEIGHT: 600,\n /**\n * Name of the popup window starts with\n */\n POPUP_NAME_PREFIX: \"msal\",\n /**\n * Default popup monitor poll interval in milliseconds\n */\n POLL_INTERVAL_MS: 50,\n /**\n * Msal-browser SKU\n */\n MSAL_SKU: \"msal.js.browser\",\n};\n\nexport enum BrowserCacheLocation {\n LocalStorage = \"localStorage\",\n SessionStorage = \"sessionStorage\",\n MemoryStorage = \"memoryStorage\"\n}\n\n/**\n * HTTP Request types supported by MSAL.\n */\nexport enum HTTP_REQUEST_TYPE {\n GET = \"GET\",\n POST = \"POST\"\n}\n\n/**\n * Temporary cache keys for MSAL, deleted after any request.\n */\nexport enum TemporaryCacheKeys {\n AUTHORITY = \"authority\",\n ACQUIRE_TOKEN_ACCOUNT = \"acquireToken.account\",\n SESSION_STATE = \"session.state\",\n REQUEST_STATE = \"request.state\",\n NONCE_IDTOKEN = \"nonce.id_token\",\n ORIGIN_URI = \"request.origin\",\n RENEW_STATUS = \"token.renew.status\",\n URL_HASH = \"urlHash\",\n REQUEST_PARAMS = \"request.params\",\n SCOPES = \"scopes\",\n INTERACTION_STATUS_KEY = \"interaction.status\",\n CCS_CREDENTIAL = \"ccs.credential\"\n}\n\n/**\n * API Codes for Telemetry purposes. \n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\n * 0-99 Silent Flow\n * 800-899 Auth Code Flow\n */\nexport enum ApiId {\n acquireTokenRedirect = 861,\n acquireTokenPopup = 862,\n ssoSilent = 863,\n acquireTokenSilent_authCode = 864,\n handleRedirectPromise = 865,\n acquireTokenSilent_silentFlow = 61,\n logout = 961,\n logoutPopup = 962\n}\n\n/*\n * Interaction type of the API - used for state and telemetry\n */\nexport enum InteractionType {\n Redirect = \"redirect\",\n Popup = \"popup\",\n Silent = \"silent\"\n}\n\n/**\n * Types of interaction currently in progress.\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\n */\nexport enum InteractionStatus {\n /**\n * Initial status before interaction occurs\n */\n Startup = \"startup\",\n /**\n * Status set when all login calls occuring\n */\n Login = \"login\",\n /**\n * Status set when logout call occuring\n */ \n Logout = \"logout\",\n /**\n * Status set for acquireToken calls\n */\n AcquireToken = \"acquireToken\",\n /**\n * Status set for ssoSilent calls\n */\n SsoSilent = \"ssoSilent\",\n /**\n * Status set when handleRedirect in progress\n */\n HandleRedirect = \"handleRedirect\",\n /**\n * Status set when interaction is complete\n */\n None = \"none\"\n}\n\nexport const DEFAULT_REQUEST: RedirectRequest|PopupRequest = {\n scopes: OIDC_DEFAULT_SCOPES\n};\n\n/**\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\n */\nexport const KEY_FORMAT_JWK = \"jwk\";\n\n// Supported wrapper SKUs\nexport enum WrapperSKU {\n React = \"@azure/msal-react\",\n Angular = \"@azure/msal-angular\"\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ICrypto } from \"../crypto/ICrypto\";\nimport { Separators, Constants } from \"../utils/Constants\";\n\n/**\n * Client info object which consists of two IDs. Need to add more info here.\n */\nexport type ClientInfo = {\n uid: string,\n utid: string\n};\n\n/**\n * Function to build a client info object from server clientInfo string\n * @param rawClientInfo\n * @param crypto\n */\nexport function buildClientInfo(rawClientInfo: string, crypto: ICrypto): ClientInfo {\n if (StringUtils.isEmpty(rawClientInfo)) {\n throw ClientAuthError.createClientInfoEmptyError();\n }\n\n try {\n const decodedClientInfo: string = crypto.base64Decode(rawClientInfo);\n return JSON.parse(decodedClientInfo) as ClientInfo;\n } catch (e) {\n throw ClientAuthError.createClientInfoDecodingError(e);\n }\n}\n\n/**\n * Function to build a client info object from cached homeAccountId string\n * @param homeAccountId \n */\nexport function buildClientInfoFromHomeAccountId(homeAccountId: string): ClientInfo {\n if (StringUtils.isEmpty(homeAccountId)) {\n throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\n }\n const clientInfoParts: string[] = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\n return {\n uid: clientInfoParts[0],\n utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\n };\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Authority types supported by MSAL.\n */\nexport enum AuthorityType {\n Default,\n Adfs\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n Separators,\n CacheAccountType,\n CacheType,\n Constants,\n} from \"../../utils/Constants\";\nimport { Authority } from \"../../authority/Authority\";\nimport { AuthToken } from \"../../account/AuthToken\";\nimport { ICrypto } from \"../../crypto/ICrypto\";\nimport { buildClientInfo } from \"../../account/ClientInfo\";\nimport { StringUtils } from \"../../utils/StringUtils\";\nimport { AccountInfo } from \"../../account/AccountInfo\";\nimport { ClientAuthError } from \"../../error/ClientAuthError\";\nimport { AuthorityType } from \"../../authority/AuthorityType\";\nimport { Logger } from \"../../logger/Logger\";\nimport { TokenClaims } from \"../../account/TokenClaims\";\n\n/**\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\n *\n * Key : Value Schema\n *\n * Key: <home_account_id>-<environment>-<realm*>\n *\n * Value Schema:\n * {\n * homeAccountId: home account identifier for the auth scheme,\n * environment: entity that issued the token, represented as a full host\n * realm: Full tenant or organizational identifier that the account belongs to\n * localAccountId: Original tenant-specific accountID, usually used for legacy cases\n * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\n * authorityType: Accounts authority type as a string\n * name: Full name for the account, including given name and family name,\n * clientInfo: Full base64 encoded client info received from ESTS\n * lastModificationTime: last time this entity was modified in the cache\n * lastModificationApp:\n * oboAssertion: access token passed in as part of OBO request\n * idTokenClaims: Object containing claims parsed from ID token\n * }\n */\nexport class AccountEntity {\n homeAccountId: string;\n environment: string;\n realm: string;\n localAccountId: string;\n username: string;\n authorityType: string;\n name?: string;\n clientInfo?: string;\n lastModificationTime?: string;\n lastModificationApp?: string;\n oboAssertion?: string;\n cloudGraphHostName?: string;\n msGraphHost?: string; \n idTokenClaims?: TokenClaims;\n\n /**\n * Generate Account Id key component as per the schema: <home_account_id>-<environment>\n */\n generateAccountId(): string {\n const accountId: Array<string> = [this.homeAccountId, this.environment];\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\n }\n\n /**\n * Generate Account Cache Key as per the schema: <home_account_id>-<environment>-<realm*>\n */\n generateAccountKey(): string {\n return AccountEntity.generateAccountCacheKey({\n homeAccountId: this.homeAccountId,\n environment: this.environment,\n tenantId: this.realm,\n username: this.username,\n localAccountId: this.localAccountId\n });\n }\n\n /**\n * returns the type of the cache (in this case account)\n */\n generateType(): number {\n switch (this.authorityType) {\n case CacheAccountType.ADFS_ACCOUNT_TYPE:\n return CacheType.ADFS;\n case CacheAccountType.MSAV1_ACCOUNT_TYPE:\n return CacheType.MSA;\n case CacheAccountType.MSSTS_ACCOUNT_TYPE:\n return CacheType.MSSTS;\n case CacheAccountType.GENERIC_ACCOUNT_TYPE:\n return CacheType.GENERIC;\n default: {\n throw ClientAuthError.createUnexpectedAccountTypeError();\n }\n }\n }\n\n /**\n * Returns the AccountInfo interface for this account.\n */\n getAccountInfo(): AccountInfo {\n return {\n homeAccountId: this.homeAccountId,\n environment: this.environment,\n tenantId: this.realm,\n username: this.username,\n localAccountId: this.localAccountId,\n name: this.name,\n idTokenClaims: this.idTokenClaims\n };\n }\n\n /**\n * Generates account key from interface\n * @param accountInterface\n */\n static generateAccountCacheKey(accountInterface: AccountInfo): string {\n const accountKey = [\n accountInterface.homeAccountId,\n accountInterface.environment || \"\",\n accountInterface.tenantId || \"\",\n ];\n\n return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\n }\n\n /**\n * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\n * @param clientInfo\n * @param authority\n * @param idToken\n * @param policy\n */\n static createAccount(\n clientInfo: string,\n homeAccountId: string,\n authority: Authority,\n idToken: AuthToken,\n oboAssertion?: string,\n cloudGraphHostName?: string,\n msGraphHost?: string\n ): AccountEntity {\n const account: AccountEntity = new AccountEntity();\n\n account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\n account.clientInfo = clientInfo;\n account.homeAccountId = homeAccountId;\n\n const env = authority.getPreferredCache();\n if (StringUtils.isEmpty(env)) {\n throw ClientAuthError.createInvalidCacheEnvironmentError();\n }\n\n account.environment = env;\n // non AAD scenarios can have empty realm\n account.realm = idToken?.claims?.tid || \"\";\n account.oboAssertion = oboAssertion;\n \n if (idToken) {\n account.idTokenClaims = idToken.claims;\n\n // How do you account for MSA CID here?\n account.localAccountId = idToken?.claims?.oid || idToken?.claims?.sub || \"\";\n\n /*\n * In B2C scenarios the emails claim is used instead of preferred_username and it is an array. In most cases it will contain a single email.\n * This field should not be relied upon if a custom policy is configured to return more than 1 email.\n */\n account.username = idToken?.claims?.preferred_username || (idToken?.claims?.emails? idToken.claims.emails[0]: \"\");\n account.name = idToken?.claims?.name;\n }\n\n account.cloudGraphHostName = cloudGraphHostName;\n account.msGraphHost = msGraphHost;\n\n return account;\n }\n\n /**\n * Builds non-AAD/ADFS account.\n * @param authority\n * @param idToken\n */\n static createGenericAccount(\n authority: Authority,\n homeAccountId: string,\n idToken: AuthToken,\n oboAssertion?: string,\n cloudGraphHostName?: string,\n msGraphHost?: string\n ): AccountEntity {\n const account: AccountEntity = new AccountEntity();\n\n account.authorityType = (authority.authorityType === AuthorityType.Adfs) ? CacheAccountType.ADFS_ACCOUNT_TYPE : CacheAccountType.GENERIC_ACCOUNT_TYPE;\n account.homeAccountId = homeAccountId;\n // non AAD scenarios can have empty realm\n account.realm = \"\";\n account.oboAssertion = oboAssertion;\n\n const env = authority.getPreferredCache();\n\n if (StringUtils.isEmpty(env)) {\n throw ClientAuthError.createInvalidCacheEnvironmentError();\n }\n\n if (idToken) {\n // How do you account for MSA CID here?\n account.localAccountId = idToken?.claims?.oid || idToken?.claims?.sub || \"\";\n // upn claim for most ADFS scenarios\n account.username = idToken?.claims?.upn || \"\";\n account.name = idToken?.claims?.name || \"\";\n account.idTokenClaims = idToken?.claims;\n }\n\n account.environment = env;\n\n account.cloudGraphHostName = cloudGraphHostName;\n account.msGraphHost = msGraphHost;\n\n /*\n * add uniqueName to claims\n * account.name = idToken.claims.uniqueName;\n */\n\n return account;\n }\n\n /**\n * Generate HomeAccountId from server response\n * @param serverClientInfo\n * @param authType\n */\n static generateHomeAccountId(serverClientInfo: string, authType: AuthorityType, logger: Logger, cryptoObj: ICrypto, idToken?: AuthToken): string {\n\n const accountId = idToken?.claims?.sub ? idToken.claims.sub : Constants.EMPTY_STRING;\n\n // since ADFS does not have tid and does not set client_info\n if (authType === AuthorityType.Adfs) {\n return accountId;\n }\n\n // for cases where there is clientInfo\n if (serverClientInfo) {\n try {\n const clientInfo = buildClientInfo(serverClientInfo, cryptoObj);\n if (!StringUtils.isEmpty(clientInfo.uid) && !StringUtils.isEmpty(clientInfo.utid)) {\n return `${clientInfo.uid}${Separators.CLIENT_INFO_SEPARATOR}${clientInfo.utid}`;\n }\n } catch (e) {}\n }\n\n // default to \"sub\" claim\n logger.verbose(\"No client info in response\");\n return accountId;\n }\n\n /**\n * Validates an entity: checks for all expected params\n * @param entity\n */\n static isAccountEntity(entity: object): boolean {\n\n if (!entity) {\n return false;\n }\n\n return (\n entity.hasOwnProperty(\"homeAccountId\") &&\n entity.hasOwnProperty(\"environment\") &&\n entity.hasOwnProperty(\"realm\") &&\n entity.hasOwnProperty(\"localAccountId\") &&\n entity.hasOwnProperty(\"username\") &&\n entity.hasOwnProperty(\"authorityType\")\n );\n }\n\n /**\n * Helper function to determine whether 2 accountInfo objects represent the same account\n * @param accountA \n * @param accountB \n * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality\n */\n static accountInfoIsEqual(accountA: AccountInfo | null, accountB: AccountInfo | null, compareClaims?: boolean): boolean {\n if (!accountA || !accountB) {\n return false;\n }\n\n let claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false\n if (compareClaims) {\n const accountAClaims = (accountA.idTokenClaims || {}) as TokenClaims;\n const accountBClaims = (accountB.idTokenClaims || {}) as TokenClaims;\n\n // issued at timestamp and nonce are expected to change each time a new id token is acquired\n claimsMatch = (accountAClaims.iat === accountBClaims.iat) &&\n (accountAClaims.nonce === accountBClaims.nonce);\n }\n\n return (accountA.homeAccountId === accountB.homeAccountId) && \n (accountA.localAccountId === accountB.localAccountId) &&\n (accountA.username === accountB.username) &&\n (accountA.tenantId === accountB.tenantId) &&\n (accountA.environment === accountB.environment) &&\n claimsMatch;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Constants } from \"../utils/Constants\";\n\n/**\n * AuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const AuthErrorMessage = {\n unexpectedError: {\n code: \"unexpected_error\",\n desc: \"Unexpected error in authentication.\"\n }\n};\n\n/**\n * General error class thrown by the MSAL.js library.\n */\nexport class AuthError extends Error {\n\n /**\n * Short string denoting error\n */\n errorCode: string;\n\n /**\n * Detailed description of error\n */\n errorMessage: string;\n\n /**\n * Describes the subclass of an error\n */\n subError: string;\n\n constructor(errorCode?: string, errorMessage?: string, suberror?: string) {\n const errorString = errorMessage ? `${errorCode}: ${errorMessage}` : errorCode;\n super(errorString);\n Object.setPrototypeOf(this, AuthError.prototype);\n\n this.errorCode = errorCode || Constants.EMPTY_STRING;\n this.errorMessage = errorMessage || \"\";\n this.subError = suberror || \"\";\n this.name = \"AuthError\";\n }\n\n /**\n * Creates an error that is thrown when something unexpected happens in the library.\n * @param errDesc\n */\n static createUnexpectedError(errDesc: string): AuthError {\n return new AuthError(AuthErrorMessage.unexpectedError.code, `${AuthErrorMessage.unexpectedError.desc}: ${errDesc}`);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"./AuthError\";\n\n/**\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const ClientAuthErrorMessage = {\n clientInfoDecodingError: {\n code: \"client_info_decoding_error\",\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\n },\n clientInfoEmptyError: {\n code: \"client_info_empty_error\",\n desc: \"The client info was empty. Please review the trace to determine the root cause.\"\n },\n tokenParsingError: {\n code: \"token_parsing_error\",\n desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\n },\n nullOrEmptyToken: {\n code: \"null_or_empty_token\",\n desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\n },\n endpointResolutionError: {\n code: \"endpoints_resolution_error\",\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\n },\n networkError: {\n code: \"network_error\",\n desc: \"Network request failed. Please check network trace to determine root cause.\"\n },\n unableToGetOpenidConfigError: {\n code: \"openid_config_error\",\n desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\n },\n hashNotDeserialized: {\n code: \"hash_not_deserialized\",\n desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\n },\n blankGuidGenerated: {\n code: \"blank_guid_generated\",\n desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\n },\n invalidStateError: {\n code: \"invalid_state\",\n desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\n },\n stateMismatchError: {\n code: \"state_mismatch\",\n desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\n },\n stateNotFoundError: {\n code: \"state_not_found\",\n desc: \"State not found\"\n },\n nonceMismatchError: {\n code: \"nonce_mismatch\",\n desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\n },\n nonceNotFoundError: {\n code: \"nonce_not_found\",\n desc: \"nonce not found\"\n },\n noTokensFoundError: {\n code: \"no_tokens_found\",\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().\"\n },\n multipleMatchingTokens: {\n code: \"multiple_matching_tokens\",\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\n \"Call AcquireToken again providing more requirements such as authority or account.\"\n },\n multipleMatchingAccounts: {\n code: \"multiple_matching_accounts\",\n desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\n },\n multipleMatchingAppMetadata: {\n code: \"multiple_matching_appMetadata\",\n desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\n },\n tokenRequestCannotBeMade: {\n code: \"request_cannot_be_made\",\n desc: \"Token request cannot be made without authorization code or refresh token.\"\n },\n appendEmptyScopeError: {\n code: \"cannot_append_empty_scope\",\n desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\n },\n removeEmptyScopeError: {\n code: \"cannot_remove_empty_scope\",\n desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\n },\n appendScopeSetError: {\n code: \"cannot_append_scopeset\",\n desc: \"Cannot append ScopeSet due to error.\"\n },\n emptyInputScopeSetError: {\n code: \"empty_input_scopeset\",\n desc: \"Empty input ScopeSet cannot be processed.\"\n },\n DeviceCodePollingCancelled: {\n code: \"device_code_polling_cancelled\",\n desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\n },\n DeviceCodeExpired: {\n code: \"device_code_expired\",\n desc: \"Device code is expired.\"\n },\n DeviceCodeUnknownError: {\n code: \"device_code_unknown_error\",\n desc: \"Device code stopped polling for unknown reasons.\"\n },\n NoAccountInSilentRequest: {\n code: \"no_account_in_silent_request\",\n desc: \"Please pass an account object, silent flow is not supported without account information\"\n },\n invalidCacheRecord: {\n code: \"invalid_cache_record\",\n desc: \"Cache record object was null or undefined.\"\n },\n invalidCacheEnvironment: {\n code: \"invalid_cache_environment\",\n desc: \"Invalid environment when attempting to create cache entry\"\n },\n noAccountFound: {\n code: \"no_account_found\",\n desc: \"No account found in cache for given key.\"\n },\n CachePluginError: {\n code: \"no cache plugin set on CacheManager\",\n desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\n },\n noCryptoObj: {\n code: \"no_crypto_object\",\n desc: \"No crypto object detected. This is required for the following operation: \"\n },\n invalidCacheType: {\n code: \"invalid_cache_type\",\n desc: \"Invalid cache type\"\n },\n unexpectedAccountType: {\n code: \"unexpected_account_type\",\n desc: \"Unexpected account type.\"\n },\n unexpectedCredentialType: {\n code: \"unexpected_credential_type\",\n desc: \"Unexpected credential type.\"\n },\n invalidAssertion: {\n code: \"invalid_assertion\",\n desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\n },\n invalidClientCredential: {\n code: \"invalid_client_credential\",\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\"\n },\n tokenRefreshRequired: {\n code: \"token_refresh_required\",\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.\"\n },\n userTimeoutReached: {\n code: \"user_timeout_reached\",\n desc: \"User defined timeout for device code polling reached\",\n },\n tokenClaimsRequired: {\n code: \"token_claims_cnf_required_for_signedjwt\",\n desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\n },\n noAuthorizationCodeFromServer: {\n code: \"authorization_code_missing_from_server_response\",\n desc: \"Server response does not contain an authorization code to proceed\"\n },\n noAzureRegionDetected: {\n code: \"no_azure_region_detected\",\n desc: \"No azure region was detected and no fallback was made available\"\n },\n accessTokenEntityNullError: {\n code: \"access_token_entity_null\",\n desc: \"Access token entity is null, please check logs and cache to ensure a valid access token is present.\"\n }\n};\n\n/**\n * Error thrown when there is an error in the client code running on the browser.\n */\nexport class ClientAuthError extends AuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n this.name = \"ClientAuthError\";\n\n Object.setPrototypeOf(this, ClientAuthError.prototype);\n }\n\n /**\n * Creates an error thrown when client info object doesn't decode correctly.\n * @param caughtError\n */\n static createClientInfoDecodingError(caughtError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code,\n `${ClientAuthErrorMessage.clientInfoDecodingError.desc} Failed with error: ${caughtError}`);\n }\n\n /**\n * Creates an error thrown if the client info is empty.\n * @param rawClientInfo\n */\n static createClientInfoEmptyError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code,\n `${ClientAuthErrorMessage.clientInfoEmptyError.desc}`);\n }\n\n /**\n * Creates an error thrown when the id token extraction errors out.\n * @param err\n */\n static createTokenParsingError(caughtExtractionError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code,\n `${ClientAuthErrorMessage.tokenParsingError.desc} Failed with error: ${caughtExtractionError}`);\n }\n\n /**\n * Creates an error thrown when the id token string is null or empty.\n * @param invalidRawTokenString\n */\n static createTokenNullOrEmptyError(invalidRawTokenString: string) : ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code,\n `${ClientAuthErrorMessage.nullOrEmptyToken.desc} Raw Token Value: ${invalidRawTokenString}`);\n }\n\n /**\n * Creates an error thrown when the endpoint discovery doesn't complete correctly.\n */\n static createEndpointDiscoveryIncompleteError(errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code,\n `${ClientAuthErrorMessage.endpointResolutionError.desc} Detail: ${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the fetch client throws\n */\n static createNetworkError(endpoint: string, errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.networkError.code,\n `${ClientAuthErrorMessage.networkError.desc} | Fetch client threw: ${errDetail} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\n */\n static createUnableToGetOpenidConfigError(errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code,\n `${ClientAuthErrorMessage.unableToGetOpenidConfigError.desc} Attempted to retrieve endpoints from: ${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the hash cannot be deserialized.\n * @param hashParamObj\n */\n static createHashNotDeserializedError(hashParamObj: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code,\n `${ClientAuthErrorMessage.hashNotDeserialized.desc} Given Object: ${hashParamObj}`);\n }\n\n /**\n * Creates an error thrown when the state cannot be parsed.\n * @param invalidState\n */\n static createInvalidStateError(invalidState: string, errorString?: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code,\n `${ClientAuthErrorMessage.invalidStateError.desc} Invalid State: ${invalidState}, Root Err: ${errorString}`);\n }\n\n /**\n * Creates an error thrown when two states do not match.\n */\n static createStateMismatchError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code,\n ClientAuthErrorMessage.stateMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when the state is not present\n * @param missingState\n */\n static createStateNotFoundError(missingState: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code,\n `${ClientAuthErrorMessage.stateNotFoundError.desc}: ${missingState}`);\n }\n\n /**\n * Creates an error thrown when the nonce does not match.\n */\n static createNonceMismatchError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code,\n ClientAuthErrorMessage.nonceMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when the mnonce is not present\n * @param missingNonce\n */\n static createNonceNotFoundError(missingNonce: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code,\n `${ClientAuthErrorMessage.nonceNotFoundError.desc}: ${missingNonce}`);\n }\n\n /**\n * Creates an error thrown when the authorization code required for a token request is null or empty.\n */\n static createNoTokensFoundError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noTokensFoundError.code, ClientAuthErrorMessage.noTokensFoundError.desc);\n }\n\n /**\n * Throws error when multiple tokens are in cache.\n */\n static createMultipleMatchingTokensInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code,\n `${ClientAuthErrorMessage.multipleMatchingTokens.desc}.`);\n }\n\n /**\n * Throws error when multiple accounts are in cache for the given params\n */\n static createMultipleMatchingAccountsInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code,\n ClientAuthErrorMessage.multipleMatchingAccounts.desc);\n }\n\n /**\n * Throws error when multiple appMetada are in cache for the given clientId.\n */\n static createMultipleMatchingAppMetadataInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code,\n ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\n }\n\n /**\n * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\n */\n static createTokenRequestCannotBeMadeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\n }\n\n /**\n * Throws error when attempting to append a null, undefined or empty scope to a set\n * @param givenScope\n */\n static createAppendEmptyScopeToSetError(givenScope: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, `${ClientAuthErrorMessage.appendEmptyScopeError.desc} Given Scope: ${givenScope}`);\n }\n\n /**\n * Throws error when attempting to append a null, undefined or empty scope to a set\n * @param givenScope\n */\n static createRemoveEmptyScopeFromSetError(givenScope: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, `${ClientAuthErrorMessage.removeEmptyScopeError.desc} Given Scope: ${givenScope}`);\n }\n\n /**\n * Throws error when attempting to append null or empty ScopeSet.\n * @param appendError\n */\n static createAppendScopeSetError(appendError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, `${ClientAuthErrorMessage.appendScopeSetError.desc} Detail Error: ${appendError}`);\n }\n\n /**\n * Throws error if ScopeSet is null or undefined.\n * @param givenScopeSet\n */\n static createEmptyInputScopeSetError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, `${ClientAuthErrorMessage.emptyInputScopeSetError.desc}`);\n }\n\n /**\n * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\n */\n static createDeviceCodeCancelledError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, `${ClientAuthErrorMessage.DeviceCodePollingCancelled.desc}`);\n }\n\n /**\n * Throws error if device code is expired\n */\n static createDeviceCodeExpiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, `${ClientAuthErrorMessage.DeviceCodeExpired.desc}`);\n }\n\n /**\n * Throws error if device code is expired\n */\n static createDeviceCodeUnknownError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, `${ClientAuthErrorMessage.DeviceCodeUnknownError.desc}`);\n }\n\n /**\n * Throws error when silent requests are made without an account object\n */\n static createNoAccountInSilentRequestError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, `${ClientAuthErrorMessage.NoAccountInSilentRequest.desc}`);\n }\n\n /**\n * Throws error when cache record is null or undefined.\n */\n static createNullOrUndefinedCacheRecord(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\n }\n\n /**\n * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\n */\n static createInvalidCacheEnvironmentError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\n }\n\n /**\n * Throws error when account is not found in cache.\n */\n static createNoAccountFoundError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\n }\n\n /**\n * Throws error if ICachePlugin not set on CacheManager.\n */\n static createCachePluginError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, `${ClientAuthErrorMessage.CachePluginError.desc}`);\n }\n\n /**\n * Throws error if crypto object not found.\n * @param operationName\n */\n static createNoCryptoObjectError(operationName: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, `${ClientAuthErrorMessage.noCryptoObj.desc}${operationName}`);\n }\n\n /**\n * Throws error if cache type is invalid.\n */\n static createInvalidCacheTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, `${ClientAuthErrorMessage.invalidCacheType.desc}`);\n }\n\n /**\n * Throws error if unexpected account type.\n */\n static createUnexpectedAccountTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, `${ClientAuthErrorMessage.unexpectedAccountType.desc}`);\n }\n\n /**\n * Throws error if unexpected credential type.\n */\n static createUnexpectedCredentialTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, `${ClientAuthErrorMessage.unexpectedCredentialType.desc}`);\n }\n\n /**\n * Throws error if client assertion is not valid.\n */\n static createInvalidAssertionError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, `${ClientAuthErrorMessage.invalidAssertion.desc}`);\n }\n\n /**\n * Throws error if client assertion is not valid.\n */\n static createInvalidCredentialError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, `${ClientAuthErrorMessage.invalidClientCredential.desc}`);\n }\n\n /**\n * Throws error if token cannot be retrieved from cache due to refresh being required.\n */\n static createRefreshRequiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\n }\n\n /**\n * Throws error if the user defined timeout is reached.\n */\n static createUserTimeoutReachedError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\n }\n\n /*\n * Throws error if token claims are not populated for a signed jwt generation\n */\n static createTokenClaimsRequiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\n }\n\n /**\n * Throws error when the authorization code is missing from the server response\n */\n static createNoAuthCodeInServerResponseError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { LoggerOptions } from \"../config/ClientConfiguration\";\nimport { Constants } from \"../utils/Constants\";\n\n/**\n * Options for logger messages.\n */\nexport type LoggerMessageOptions = {\n logLevel: LogLevel,\n containsPii?: boolean,\n context?: string,\n correlationId?: string\n};\n\n/**\n * Log message level.\n */\nexport enum LogLevel {\n Error,\n Warning,\n Info,\n Verbose,\n Trace\n}\n\n/**\n * Callback to send the messages to.\n */\nexport interface ILoggerCallback {\n (level: LogLevel, message: string, containsPii: boolean): void;\n}\n\n/**\n * Class which facilitates logging of messages to a specific place.\n */\nexport class Logger {\n\n // Correlation ID for request, usually set by user.\n private correlationId: string;\n\n // Current log level, defaults to info.\n private level: LogLevel = LogLevel.Info;\n\n // Boolean describing whether PII logging is allowed.\n private piiLoggingEnabled: boolean;\n\n // Callback to send messages to.\n private localCallback: ILoggerCallback;\n\n // Package name implementing this logger\n private packageName: string;\n\n // Package version implementing this logger\n private packageVersion: string;\n\n constructor(loggerOptions: LoggerOptions, packageName?: string, packageVersion?: string) {\n const defaultLoggerCallback = () => {};\n this.localCallback = loggerOptions.loggerCallback || defaultLoggerCallback;\n this.piiLoggingEnabled = loggerOptions.piiLoggingEnabled || false;\n this.level = loggerOptions.logLevel || LogLevel.Info;\n this.correlationId = loggerOptions.correlationId || \"\";\n\n this.packageName = packageName || Constants.EMPTY_STRING;\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\n }\n\n /**\n * Create new Logger with existing configurations.\n */\n public clone(packageName: string, packageVersion: string, correlationId?: string): Logger {\n return new Logger({loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level, correlationId: correlationId || this.correlationId}, packageName, packageVersion);\n }\n\n /**\n * Log message with required options.\n */\n private logMessage(logMessage: string, options: LoggerMessageOptions): void {\n if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\n return;\n }\n const timestamp = new Date().toUTCString();\n\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\n let logHeader: string;\n if (!StringUtils.isEmpty(options.correlationId)) {\n logHeader = `[${timestamp}] : [${options.correlationId}]`;\n } else if (!StringUtils.isEmpty(this.correlationId)) {\n logHeader = `[${timestamp}] : [${this.correlationId}]`;\n } else {\n logHeader = `[${timestamp}]`;\n }\n\n const log = `${logHeader} : ${this.packageName}@${this.packageVersion} : ${LogLevel[options.logLevel]} - ${logMessage}`;\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": \"\"}${options.context ? `:${options.context}` : \"\"}`)(logMessage);\n this.executeCallback(options.logLevel, log, options.containsPii || false);\n }\n\n /**\n * Execute callback with message.\n */\n executeCallback(level: LogLevel, message: string, containsPii: boolean): void {\n if (this.localCallback) {\n this.localCallback(level, message, containsPii);\n }\n }\n\n /**\n * Logs error messages.\n */\n error(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Error,\n containsPii: false,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs error messages with PII.\n */\n errorPii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Error,\n containsPii: true,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs warning messages.\n */\n warning(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Warning,\n containsPii: false,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs warning messages with PII.\n */\n warningPii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Warning,\n containsPii: true,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs info messages.\n */\n info(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Info,\n containsPii: false,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs info messages with PII.\n */\n infoPii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Info,\n containsPii: true,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs verbose messages.\n */\n verbose(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Verbose,\n containsPii: false,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs verbose messages with PII.\n */\n verbosePii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Verbose,\n containsPii: true,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs trace messages.\n */\n trace(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Trace,\n containsPii: false,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs trace messages with PII.\n */\n tracePii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Trace,\n containsPii: true,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Returns whether PII Logging is enabled or not.\n */\n isPiiLoggingEnabled(): boolean {\n return this.piiLoggingEnabled || false;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport const Constants = {\n LIBRARY_NAME: \"MSAL.JS\",\n SKU: \"msal.js.common\",\n // Prefix for all library cache entries\n CACHE_PREFIX: \"msal\",\n // default authority\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\n // ADFS String\n ADFS: \"adfs\",\n // Default AAD Instance Discovery Endpoint\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\n // Resource delimiter - used for certain cache entries\n RESOURCE_DELIM: \"|\",\n // Placeholder for non-existent account ids/objects\n NO_ACCOUNT: \"NO_ACCOUNT\",\n // Claims\n CLAIMS: \"claims\",\n // Consumer UTID\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\n // Default scopes\n OPENID_SCOPE: \"openid\",\n PROFILE_SCOPE: \"profile\",\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\n EMAIL_SCOPE: \"email\",\n // Default response type for authorization code flow\n CODE_RESPONSE_TYPE: \"code\",\n CODE_GRANT_TYPE: \"authorization_code\",\n RT_GRANT_TYPE: \"refresh_token\",\n FRAGMENT_RESPONSE_MODE: \"fragment\",\n S256_CODE_CHALLENGE_METHOD: \"S256\",\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\n AUTHORIZATION_PENDING: \"authorization_pending\",\n NOT_DEFINED: \"not_defined\",\n EMPTY_STRING: \"\",\n FORWARD_SLASH: \"/\",\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\n IMDS_VERSION: \"2020-06-01\",\n IMDS_TIMEOUT: 2000,\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"]\n};\n\nexport const OIDC_DEFAULT_SCOPES = [\n Constants.OPENID_SCOPE,\n Constants.PROFILE_SCOPE,\n Constants.OFFLINE_ACCESS_SCOPE\n];\n\nexport const OIDC_SCOPES = [\n ...OIDC_DEFAULT_SCOPES,\n Constants.EMAIL_SCOPE\n];\n\n/**\n * Request header names\n */\nexport enum HeaderNames {\n CONTENT_TYPE = \"Content-Type\",\n RETRY_AFTER = \"Retry-After\",\n CCS_HEADER = \"X-AnchorMailbox\"\n}\n\n/**\n * Persistent cache keys MSAL which stay while user is logged in.\n */\nexport enum PersistentCacheKeys {\n ID_TOKEN = \"idtoken\",\n CLIENT_INFO = \"client.info\",\n ADAL_ID_TOKEN = \"adal.idtoken\",\n ERROR = \"error\",\n ERROR_DESC = \"error.description\",\n ACTIVE_ACCOUNT = \"active-account\"\n}\n\n/**\n * String constants related to AAD Authority\n */\nexport enum AADAuthorityConstants {\n COMMON = \"common\",\n ORGANIZATIONS = \"organizations\",\n CONSUMERS = \"consumers\"\n}\n\n/**\n * Keys in the hashParams sent by AAD Server\n */\nexport enum AADServerParamKeys {\n CLIENT_ID = \"client_id\",\n REDIRECT_URI = \"redirect_uri\",\n RESPONSE_TYPE = \"response_type\",\n RESPONSE_MODE = \"response_mode\",\n GRANT_TYPE = \"grant_type\",\n CLAIMS = \"claims\",\n SCOPE = \"scope\",\n ERROR = \"error\",\n ERROR_DESCRIPTION = \"error_description\",\n ACCESS_TOKEN = \"access_token\",\n ID_TOKEN = \"id_token\",\n REFRESH_TOKEN = \"refresh_token\",\n EXPIRES_IN = \"expires_in\",\n STATE = \"state\",\n NONCE = \"nonce\",\n PROMPT = \"prompt\",\n SESSION_STATE = \"session_state\",\n CLIENT_INFO = \"client_info\",\n CODE = \"code\",\n CODE_CHALLENGE = \"code_challenge\",\n CODE_CHALLENGE_METHOD = \"code_challenge_method\",\n CODE_VERIFIER = \"code_verifier\",\n CLIENT_REQUEST_ID = \"client-request-id\",\n X_CLIENT_SKU = \"x-client-SKU\",\n X_CLIENT_VER = \"x-client-VER\",\n X_CLIENT_OS = \"x-client-OS\",\n X_CLIENT_CPU = \"x-client-CPU\",\n X_CLIENT_CURR_TELEM = \"x-client-current-telemetry\",\n X_CLIENT_LAST_TELEM = \"x-client-last-telemetry\",\n X_MS_LIB_CAPABILITY = \"x-ms-lib-capability\",\n POST_LOGOUT_URI = \"post_logout_redirect_uri\",\n ID_TOKEN_HINT= \"id_token_hint\",\n DEVICE_CODE = \"device_code\",\n CLIENT_SECRET = \"client_secret\",\n CLIENT_ASSERTION = \"client_assertion\",\n CLIENT_ASSERTION_TYPE = \"client_assertion_type\",\n TOKEN_TYPE = \"token_type\",\n REQ_CNF = \"req_cnf\",\n OBO_ASSERTION = \"assertion\",\n REQUESTED_TOKEN_USE = \"requested_token_use\",\n ON_BEHALF_OF = \"on_behalf_of\",\n FOCI = \"foci\",\n CCS_HEADER = \"X-AnchorMailbox\"\n}\n\n/**\n * Claims request keys\n */\nexport enum ClaimsRequestKeys {\n ACCESS_TOKEN = \"access_token\",\n XMS_CC = \"xms_cc\"\n}\n\n/**\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\n */\nexport const PromptValue = {\n LOGIN: \"login\",\n SELECT_ACCOUNT: \"select_account\",\n CONSENT: \"consent\",\n NONE: \"none\",\n CREATE: \"create\"\n};\n\n/**\n * SSO Types - generated to populate hints\n */\nexport enum SSOTypes {\n ACCOUNT = \"account\",\n SID = \"sid\",\n LOGIN_HINT = \"login_hint\",\n ID_TOKEN = \"id_token\",\n DOMAIN_HINT = \"domain_hint\",\n ORGANIZATIONS = \"organizations\",\n CONSUMERS = \"consumers\",\n ACCOUNT_ID = \"accountIdentifier\",\n HOMEACCOUNT_ID = \"homeAccountIdentifier\"\n}\n\n/**\n * Disallowed extra query parameters.\n */\nexport const BlacklistedEQParams = [\n SSOTypes.SID,\n SSOTypes.LOGIN_HINT\n];\n\n/**\n * allowed values for codeVerifier\n */\nexport const CodeChallengeMethodValues = {\n PLAIN: \"plain\",\n S256: \"S256\"\n};\n\n/**\n * The method used to encode the code verifier for the code challenge parameter. can be one\n * of plain or s256. if excluded, code challenge is assumed to be plaintext. for more\n * information, see the pkce rcf: https://tools.ietf.org/html/rfc7636\n */\nexport const CodeChallengeMethodValuesArray: string[] = [\n CodeChallengeMethodValues.PLAIN,\n CodeChallengeMethodValues.S256\n];\n\n/**\n * allowed values for response_mode\n */\nexport enum ResponseMode {\n QUERY = \"query\",\n FRAGMENT = \"fragment\",\n FORM_POST = \"form_post\"\n}\n\n/**\n * allowed grant_type\n */\nexport enum GrantType {\n IMPLICIT_GRANT = \"implicit\",\n AUTHORIZATION_CODE_GRANT = \"authorization_code\",\n CLIENT_CREDENTIALS_GRANT = \"client_credentials\",\n RESOURCE_OWNER_PASSWORD_GRANT = \"password\",\n REFRESH_TOKEN_GRANT = \"refresh_token\",\n DEVICE_CODE_GRANT = \"device_code\",\n JWT_BEARER = \"urn:ietf:params:oauth:grant-type:jwt-bearer\"\n}\n\n/**\n * Account types in Cache\n */\nexport enum CacheAccountType {\n MSSTS_ACCOUNT_TYPE = \"MSSTS\",\n ADFS_ACCOUNT_TYPE = \"ADFS\",\n MSAV1_ACCOUNT_TYPE = \"MSA\",\n GENERIC_ACCOUNT_TYPE = \"Generic\" // NTLM, Kerberos, FBA, Basic etc\n}\n\n/**\n * Separators used in cache\n */\nexport enum Separators {\n CACHE_KEY_SEPARATOR = \"-\",\n CLIENT_INFO_SEPARATOR = \".\"\n}\n\n/**\n * Credential Type stored in the cache\n */\nexport enum CredentialType {\n ID_TOKEN = \"IdToken\",\n ACCESS_TOKEN = \"AccessToken\",\n ACCESS_TOKEN_WITH_AUTH_SCHEME = \"AccessToken_With_AuthScheme\",\n REFRESH_TOKEN = \"RefreshToken\",\n}\n\n/**\n * Credential Type stored in the cache\n */\nexport enum CacheSchemaType {\n ACCOUNT = \"Account\",\n CREDENTIAL = \"Credential\",\n ID_TOKEN = \"IdToken\",\n ACCESS_TOKEN = \"AccessToken\",\n REFRESH_TOKEN = \"RefreshToken\",\n APP_METADATA = \"AppMetadata\",\n TEMPORARY = \"TempCache\",\n TELEMETRY = \"Telemetry\",\n UNDEFINED = \"Undefined\",\n THROTTLING = \"Throttling\"\n}\n\n/**\n * Combine all cache types\n */\nexport enum CacheType {\n ADFS = 1001,\n MSA = 1002,\n MSSTS = 1003,\n GENERIC = 1004,\n ACCESS_TOKEN = 2001,\n REFRESH_TOKEN = 2002,\n ID_TOKEN = 2003,\n APP_METADATA = 3001,\n UNDEFINED = 9999\n}\n\n/**\n * More Cache related constants\n */\nexport const APP_METADATA = \"appmetadata\";\nexport const CLIENT_INFO = \"client_info\";\nexport const THE_FAMILY_ID = \"1\";\n\nexport const AUTHORITY_METADATA_CONSTANTS = {\n CACHE_KEY: \"authority-metadata\",\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\n};\n\nexport enum AuthorityMetadataSource {\n CONFIG = \"config\",\n CACHE = \"cache\",\n NETWORK = \"network\"\n}\n\nexport const SERVER_TELEM_CONSTANTS = {\n SCHEMA_VERSION: 5,\n MAX_CUR_HEADER_BYTES: 80, // ESTS limit is 100B, set to 80 to provide a 20B buffer\n MAX_LAST_HEADER_BYTES: 330, // ESTS limit is 350B, set to 330 to provide a 20B buffer,\n MAX_CACHED_ERRORS: 50, // Limit the number of errors that can be stored to prevent uncontrolled size gains\n CACHE_KEY: \"server-telemetry\",\n CATEGORY_SEPARATOR: \"|\",\n VALUE_SEPARATOR: \",\",\n OVERFLOW_TRUE: \"1\",\n OVERFLOW_FALSE: \"0\",\n UNKNOWN_ERROR: \"unknown_error\"\n};\n\n/**\n * Type of the authentication request\n */\nexport enum AuthenticationScheme {\n POP = \"pop\",\n BEARER = \"Bearer\"\n}\n\n/**\n * Constants related to throttling\n */\nexport const ThrottlingConstants = {\n // Default time to throttle RequestThumbprint in seconds\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\n // Default maximum time to throttle in seconds, overrides what the server sends back\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\n // Prefix for storing throttling entries\n THROTTLING_PREFIX: \"throttling\",\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\n};\n\nexport const Errors = {\n INVALID_GRANT_ERROR: \"invalid_grant\",\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\n};\n\n/**\n * Password grant parameters\n */\nexport enum PasswordGrantConstants {\n username = \"username\",\n password = \"password\"\n}\n\n/**\n * Response codes\n */\nexport enum ResponseCodes {\n httpSuccess = 200,\n httpBadRequest = 400\n}\n\n/**\n * Region Discovery Sources\n */\nexport enum RegionDiscoverySources {\n FAILED_AUTO_DETECTION = \"1\",\n INTERNAL_CACHE = \"2\",\n ENVIRONMENT_VARIABLE = \"3\",\n IMDS = \"4\",\n}\n\n/**\n * Region Discovery Outcomes\n */\nexport enum RegionDiscoveryOutcomes {\n CONFIGURED_MATCHES_DETECTED = \"1\",\n CONFIGURED_NO_AUTO_DETECTION = \"2\",\n CONFIGURED_NOT_DETECTED = \"3\",\n AUTO_DETECTION_REQUESTED_SUCCESSFUL = \"4\",\n AUTO_DETECTION_REQUESTED_FAILED = \"5\"\n}\n\nexport enum CacheOutcome {\n NO_CACHE_HIT = \"0\",\n FORCE_REFRESH = \"1\",\n NO_CACHED_ACCESS_TOKEN = \"2\",\n CACHED_ACCESS_TOKEN_EXPIRED = \"3\",\n REFRESH_CACHED_ACCESS_TOKEN = \"4\"\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { DecodedAuthToken } from \"../account/DecodedAuthToken\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\n\n/**\n * @hidden\n */\nexport class StringUtils {\n\n /**\n * decode a JWT\n *\n * @param authToken\n */\n static decodeAuthToken(authToken: string): DecodedAuthToken {\n if (StringUtils.isEmpty(authToken)) {\n throw ClientAuthError.createTokenNullOrEmptyError(authToken);\n }\n const tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\n const matches = tokenPartsRegex.exec(authToken);\n if (!matches || matches.length < 4) {\n throw ClientAuthError.createTokenParsingError(`Given token is malformed: ${JSON.stringify(authToken)}`);\n }\n const crackedToken: DecodedAuthToken = {\n header: matches[1],\n JWSPayload: matches[2],\n JWSSig: matches[3]\n };\n return crackedToken;\n }\n\n /**\n * Check if a string is empty.\n *\n * @param str\n */\n static isEmpty(str?: string): boolean {\n return (typeof str === \"undefined\" || !str || 0 === str.length);\n }\n\n /**\n * Check if stringified object is empty\n * @param strObj \n */\n static isEmptyObj(strObj?: string): boolean {\n if (strObj && !StringUtils.isEmpty(strObj)) {\n try {\n const obj = JSON.parse(strObj);\n return Object.keys(obj).length === 0;\n } catch (e) {}\n }\n return true;\n }\n\n static startsWith(str: string, search: string): boolean {\n return str.indexOf(search) === 0;\n }\n\n static endsWith(str: string, search: string): boolean {\n return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\n }\n\n /**\n * Parses string into an object.\n *\n * @param query\n */\n static queryStringToObject<T>(query: string): T {\n let match: Array<string> | null; // Regex for replacing addition symbol with a space\n const pl = /\\+/g;\n const search = /([^&=]+)=([^&]*)/g;\n const decode = (s: string): string => decodeURIComponent(s.replace(pl, \" \"));\n const obj: {} = {};\n match = search.exec(query);\n while (match) {\n obj[decode(match[1])] = decode(match[2]);\n match = search.exec(query);\n }\n return obj as T;\n }\n\n /**\n * Trims entries in an array.\n *\n * @param arr\n */\n static trimArrayEntries(arr: Array<string>): Array<string> {\n return arr.map(entry => entry.trim());\n }\n\n /**\n * Removes empty strings from array\n * @param arr\n */\n static removeEmptyStringsFromArray(arr: Array<string>): Array<string> {\n return arr.filter(entry => {\n return !StringUtils.isEmpty(entry);\n });\n }\n\n /**\n * Attempts to parse a string into JSON\n * @param str\n */\n static jsonParseHelper<T>(str: string): T | null {\n try {\n return JSON.parse(str) as T;\n } catch (e) {\n return null;\n }\n }\n\n /**\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\n * @param input String to match against\n */\n static matchPattern(pattern: string, input: string): boolean {\n /**\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\n */\n const regex: RegExp = new RegExp(pattern.replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\"));\n\n return regex.test(input);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthenticationResult, AccountInfo, Logger } from \"@azure/msal-common\";\nimport { RedirectRequest } from \"../request/RedirectRequest\";\nimport { PopupRequest } from \"../request/PopupRequest\";\nimport { SilentRequest } from \"../request/SilentRequest\";\nimport { SsoSilentRequest } from \"../request/SsoSilentRequest\";\nimport { EndSessionRequest } from \"../request/EndSessionRequest\";\nimport { BrowserConfigurationAuthError } from \"../error/BrowserConfigurationAuthError\";\nimport { WrapperSKU } from \"../utils/BrowserConstants\";\nimport { INavigationClient } from \"../navigation/INavigationClient\";\nimport { EndSessionPopupRequest } from \"../request/EndSessionPopupRequest\";\n\nexport interface IPublicClientApplication {\n acquireTokenPopup(request: PopupRequest): Promise<AuthenticationResult>;\n acquireTokenRedirect(request: RedirectRequest): Promise<void>;\n acquireTokenSilent(silentRequest: SilentRequest): Promise<AuthenticationResult>;\n addEventCallback(callback: Function): string | null;\n removeEventCallback(callbackId: string): void;\n getAccountByHomeId(homeAccountId: string): AccountInfo | null;\n getAccountByLocalId(localId: string): AccountInfo | null;\n getAccountByUsername(userName: string): AccountInfo | null;\n getAllAccounts(): AccountInfo[];\n handleRedirectPromise(hash?: string): Promise<AuthenticationResult | null>;\n loginPopup(request?: PopupRequest): Promise<AuthenticationResult>;\n loginRedirect(request?: RedirectRequest): Promise<void>;\n logout(logoutRequest?: EndSessionRequest): Promise<void>;\n logoutRedirect(logoutRequest?: EndSessionRequest): Promise<void>;\n logoutPopup(logoutRequest?: EndSessionPopupRequest): Promise<void>;\n ssoSilent(request: SsoSilentRequest): Promise<AuthenticationResult>;\n getLogger(): Logger;\n setLogger(logger: Logger): void;\n setActiveAccount(account: AccountInfo | null): void;\n getActiveAccount(): AccountInfo | null;\n initializeWrapperLibrary(sku: WrapperSKU, version: string): void;\n setNavigationClient(navigationClient: INavigationClient): void;\n}\n\nexport const stubbedPublicClientApplication: IPublicClientApplication = {\n acquireTokenPopup: () => {\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\n },\n acquireTokenRedirect: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\t\n acquireTokenSilent: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\t\n getAllAccounts: () => {\n return [];\t\n },\t\n getAccountByHomeId: () => {\n return null;\n },\n getAccountByUsername: () => {\t\n return null;\t\n },\t\n getAccountByLocalId: () => {\n return null;\n },\n handleRedirectPromise: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\t\n loginPopup: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\t\n loginRedirect: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\t\n logout: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\t\n logoutRedirect: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\n logoutPopup: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\n ssoSilent: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\n addEventCallback: () => {\n return null;\n },\n removeEventCallback: () => {\n return;\n },\n getLogger: () => {\n throw BrowserConfigurationAuthError.createStubPcaInstanceCalledError();\n },\n setLogger: () => {\n return;\n },\n setActiveAccount: () => {\n return;\n },\n getActiveAccount: () => {\n return null;\n },\n initializeWrapperLibrary: () => {\n return;\n },\n setNavigationClient: () => {\n return;\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthenticationResult, AuthError } from \"@azure/msal-common\";\nimport { EventType } from \"./EventType\";\nimport { InteractionStatus, InteractionType } from \"../utils/BrowserConstants\";\nimport { PopupRequest, RedirectRequest, SilentRequest, SsoSilentRequest, EndSessionRequest } from \"..\";\n\nexport type EventMessage = {\n eventType: EventType;\n interactionType: InteractionType | null;\n payload: EventPayload;\n error: EventError;\n timestamp: number;\n};\n\nexport type PopupEvent = {\n popupWindow: Window;\n};\n\nexport type EventPayload = PopupRequest | RedirectRequest | SilentRequest | SsoSilentRequest | EndSessionRequest | AuthenticationResult | PopupEvent | null;\n\nexport type EventError = AuthError | Error | null;\n\nexport type EventCallbackFunction = (message: EventMessage) => void;\n\nexport class EventMessageUtils {\n\n /**\n * Gets interaction status from event message\n * @param message\n */\n static getInteractionStatusFromEvent(message: EventMessage): InteractionStatus|null {\n switch (message.eventType) {\n case EventType.LOGIN_START:\n return InteractionStatus.Login;\n case EventType.SSO_SILENT_START:\n return InteractionStatus.SsoSilent;\n case EventType.ACQUIRE_TOKEN_START:\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\n return InteractionStatus.AcquireToken;\n }\n break;\n case EventType.HANDLE_REDIRECT_START:\n return InteractionStatus.HandleRedirect;\n case EventType.LOGOUT_START:\n return InteractionStatus.Logout;\n case EventType.LOGIN_SUCCESS:\n case EventType.SSO_SILENT_SUCCESS:\n case EventType.HANDLE_REDIRECT_END:\n case EventType.LOGIN_FAILURE:\n case EventType.SSO_SILENT_FAILURE:\n case EventType.LOGOUT_END:\n return InteractionStatus.None;\n case EventType.ACQUIRE_TOKEN_SUCCESS:\n case EventType.ACQUIRE_TOKEN_FAILURE:\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\n return InteractionStatus.None;\n }\n break;\n default:\n break;\n }\n return null;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport * as React from \"react\";\nimport { IPublicClientApplication, stubbedPublicClientApplication, Logger, InteractionStatus, AccountInfo } from \"@azure/msal-browser\";\n\nexport interface IMsalContext {\n instance: IPublicClientApplication;\n inProgress: InteractionStatus;\n accounts: AccountInfo[];\n logger: Logger;\n}\n\n/*\n * Stubbed context implementation\n * Only used when there is no provider, which is an unsupported scenario\n */\nconst defaultMsalContext: IMsalContext = {\n instance: stubbedPublicClientApplication,\n inProgress: InteractionStatus.None,\n accounts: [],\n logger: new Logger({})\n};\n\nexport const MsalContext = React.createContext<IMsalContext>(\n defaultMsalContext\n);\nexport const MsalConsumer = MsalContext.Consumer;\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AccountIdentifiers } from \"../types/AccountIdentifiers\";\n\ntype FaaCFunction = <T>(args: T) => React.ReactNode;\n\nexport function getChildrenOrFunction<T>(\n children: React.ReactNode | FaaCFunction,\n args: T\n): React.ReactNode {\n if (typeof children === \"function\") {\n return children(args);\n }\n return children;\n}\n\n/*\n * Utility types\n * Reference: https://github.com/piotrwitek/utility-types\n */\ntype SetDifference<A, B> = A extends B ? never : A;\ntype SetComplement<A, A1 extends A> = SetDifference<A, A1>;\nexport type Subtract<T extends T1, T1 extends object> = Pick<T,SetComplement<keyof T, keyof T1>>;\n\n/**\n * Helper function to determine whether 2 arrays are equal\n * Used to avoid unnecessary state updates\n * @param arrayA \n * @param arrayB \n */\nexport function accountArraysAreEqual(arrayA: Array<AccountIdentifiers>, arrayB: Array<AccountIdentifiers>): boolean {\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n\n const comparisonArray = [...arrayB];\n\n return arrayA.every((elementA) => {\n const elementB = comparisonArray.shift();\n if (!elementA || !elementB) {\n return false;\n }\n\n return (elementA.homeAccountId === elementB.homeAccountId) && \n (elementA.localAccountId === elementB.localAccountId) &&\n (elementA.username === elementB.username);\n });\n}\n","/* eslint-disable header/header */\nexport const name = \"@azure/msal-react\";\nexport const version = \"1.0.1\";\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport React, { useState, useEffect, PropsWithChildren, useMemo } from \"react\";\nimport {\n IPublicClientApplication,\n EventType,\n EventMessage,\n EventMessageUtils,\n InteractionStatus,\n Logger,\n WrapperSKU,\n AccountInfo\n} from \"@azure/msal-browser\";\nimport { MsalContext, IMsalContext } from \"./MsalContext\";\nimport { accountArraysAreEqual } from \"./utils/utilities\";\nimport { name as SKU, version } from \"./packageMetadata\";\n\nexport type MsalProviderProps = PropsWithChildren<{\n instance: IPublicClientApplication;\n}>;\n\nexport function MsalProvider({instance, children}: MsalProviderProps): React.ReactElement {\n useEffect(() => {\n instance.initializeWrapperLibrary(WrapperSKU.React, version);\n }, [instance]);\n // Create a logger instance for msal-react with the same options as PublicClientApplication\n const logger: Logger = useMemo(() => {\n return instance.getLogger().clone(SKU, version);\n }, [instance]);\n\n // State hook to store accounts\n const [accounts, setAccounts] = useState<AccountInfo[]>([]);\n // State hook to store in progress value\n const [inProgress, setInProgress] = useState<InteractionStatus>(InteractionStatus.Startup);\n\n useEffect(() => {\n const callbackId = instance.addEventCallback((message: EventMessage) => {\n switch (message.eventType) {\n case EventType.LOGIN_SUCCESS:\n case EventType.SSO_SILENT_SUCCESS:\n case EventType.HANDLE_REDIRECT_END:\n case EventType.LOGIN_FAILURE:\n case EventType.SSO_SILENT_FAILURE:\n case EventType.LOGOUT_END:\n case EventType.ACQUIRE_TOKEN_SUCCESS:\n case EventType.ACQUIRE_TOKEN_FAILURE:\n const currentAccounts = instance.getAllAccounts();\n if (!accountArraysAreEqual(currentAccounts, accounts)) {\n logger.info(\"MsalProvider - updating account state\");\n setAccounts(currentAccounts);\n } else {\n logger.info(\"MsalProvider - no account changes\");\n }\n break;\n }\n });\n logger.verbose(`MsalProvider - Registered event callback with id: ${callbackId}`);\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, accounts, logger]);\n\n useEffect(() => {\n const callbackId = instance.addEventCallback((message: EventMessage) => {\n const status = EventMessageUtils.getInteractionStatusFromEvent(message);\n if (status !== null) {\n logger.info(`MsalProvider - ${message.eventType} results in setting inProgress to ${status}`);\n setInProgress(status);\n }\n });\n logger.verbose(`MsalProvider - Registered event callback with id: ${callbackId}`);\n\n instance.handleRedirectPromise().catch(() => {\n // Errors should be handled by listening to the LOGIN_FAILURE event\n return;\n });\n\n return () => {\n if (callbackId) {\n logger.verbose(`MsalProvider - Removing event callback ${callbackId}`);\n instance.removeEventCallback(callbackId);\n }\n };\n }, [instance, logger]);\n\n const contextValue: IMsalContext = {\n instance,\n inProgress,\n accounts,\n logger\n };\n\n return (\n <MsalContext.Provider value={contextValue}>\n {children}\n </MsalContext.Provider>\n );\n}\n\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { useContext } from \"react\";\nimport { IMsalContext, MsalContext } from \"../MsalContext\";\n\n/**\n * Returns Msal Context values\n */\nexport const useMsal = (): IMsalContext => useContext(MsalContext);\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { useState, useEffect } from \"react\";\nimport { AccountInfo, IPublicClientApplication, InteractionStatus, AccountEntity } from \"@azure/msal-browser\";\nimport { useMsal } from \"./useMsal\";\nimport { AccountIdentifiers } from \"../types/AccountIdentifiers\";\n\nfunction getAccount(instance: IPublicClientApplication, accountIdentifiers: AccountIdentifiers): AccountInfo | null {\n const allAccounts = instance.getAllAccounts();\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 if (accountIdentifiers.homeAccountId && accountIdentifiers.homeAccountId.toLowerCase() !== accountObj.homeAccountId.toLowerCase()) {\n return false;\n }\n if (accountIdentifiers.localAccountId && accountIdentifiers.localAccountId.toLowerCase() !== accountObj.localAccountId.toLowerCase()) {\n return false;\n }\n\n return true;\n });\n\n return matchedAccounts[0] || null;\n } else {\n return null;\n }\n}\n\n/**\n * Given 1 or more accountIdentifiers, returns the Account object if the user is signed-in\n * @param accountIdentifiers \n */\nexport function useAccount(accountIdentifiers: AccountIdentifiers): AccountInfo | null {\n const { instance, inProgress } = useMsal();\n\n const initialStateValue = inProgress === InteractionStatus.Startup ? null : getAccount(instance, accountIdentifiers);\n const [account, setAccount] = useState<AccountInfo|null>(initialStateValue);\n\n useEffect(() => {\n const currentAccount = getAccount(instance, accountIdentifiers);\n if (!AccountEntity.accountInfoIsEqual(account, currentAccount, true)) {\n setAccount(currentAccount);\n }\n }, [inProgress, accountIdentifiers, instance, account]);\n\n return account;\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { useState, useEffect } from \"react\";\nimport { useMsal } from \"./useMsal\";\nimport { AccountIdentifiers } from \"../types/AccountIdentifiers\";\nimport { useAccount } from \"./useAccount\";\nimport { AccountInfo, InteractionStatus } from \"@azure/msal-browser\";\n\nfunction isAuthenticated(allAccounts: AccountIdentifiers[], account: AccountInfo | null, matchAccount?: AccountIdentifiers): boolean {\n if(matchAccount && (matchAccount.username || matchAccount.homeAccountId || matchAccount.localAccountId)) {\n return !!account;\n } \n\n return allAccounts.length > 0;\n}\n\n/**\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\n * @param matchAccount \n */\nexport function useIsAuthenticated(matchAccount?: AccountIdentifiers): boolean {\n const { accounts: allAccounts, inProgress } = useMsal();\n const account = useAccount(matchAccount || {});\n\n const initialStateValue = inProgress === InteractionStatus.Startup ? false : isAuthenticated(allAccounts, account, matchAccount);\n const [hasAuthenticated, setHasAuthenticated] = useState<boolean>(initialStateValue);\n\n useEffect(() => {\n setHasAuthenticated(isAuthenticated(allAccounts, account, matchAccount));\n }, [allAccounts, account, matchAccount]);\n\n return hasAuthenticated;\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport React, { PropsWithChildren, useMemo } from \"react\";\nimport { AccountIdentifiers } from \"../types/AccountIdentifiers\";\nimport { getChildrenOrFunction } from \"../utils/utilities\";\nimport { useMsal } from \"../hooks/useMsal\";\nimport { useIsAuthenticated } from \"../hooks/useIsAuthenticated\";\nimport { InteractionStatus } from \"@azure/msal-browser\";\n\nexport type AuthenticatedTemplateProps = PropsWithChildren<AccountIdentifiers>;\n\n/**\n * Renders child components if user is authenticated\n * @param props \n */\nexport function AuthenticatedTemplate({ username, homeAccountId, localAccountId, children }: AuthenticatedTemplateProps): React.ReactElement|null {\n const context = useMsal();\n const accountIdentifier: AccountIdentifiers = 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 (\n <React.Fragment>\n {getChildrenOrFunction(children, context)}\n </React.Fragment>\n );\n }\n return null;\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport React, { PropsWithChildren, useMemo } from \"react\";\nimport { useMsal } from \"../hooks/useMsal\";\nimport { useIsAuthenticated } from \"../hooks/useIsAuthenticated\";\nimport { getChildrenOrFunction } from \"../utils/utilities\";\nimport { AccountIdentifiers } from \"../types/AccountIdentifiers\";\nimport { InteractionStatus } from \"@azure/msal-browser\";\n\nexport type UnauthenticatedTemplateProps = PropsWithChildren<AccountIdentifiers>;\n\n/**\n * Renders child components if user is unauthenticated\n * @param props \n */\nexport function UnauthenticatedTemplate({ username, homeAccountId, localAccountId, children }: UnauthenticatedTemplateProps): React.ReactElement|null {\n const context = useMsal();\n const accountIdentifier: AccountIdentifiers = 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 (\n <React.Fragment>\n {getChildrenOrFunction(children, context)}\n </React.Fragment>\n );\n }\n return null;\n}\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import { TinyColor } from './index.js';\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n/**\n * AKA `contrast`\n *\n * Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n */\nexport function readability(color1, color2) {\n var c1 = new TinyColor(color1);\n var c2 = new TinyColor(color2);\n return ((Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) /\n (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05));\n}\n/**\n * Ensure that foreground and background color combinations meet WCAG2 guidelines.\n * The third argument is an object.\n * the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n * the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n * If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n *\n * Example\n * ```ts\n * new TinyColor().isReadable('#000', '#111') => false\n * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false\n * ```\n */\nexport function isReadable(color1, color2, wcag2) {\n var _a, _b;\n if (wcag2 === void 0) { wcag2 = { level: 'AA', size: 'small' }; }\n var readabilityLevel = readability(color1, color2);\n switch (((_a = wcag2.level) !== null && _a !== void 0 ? _a : 'AA') + ((_b = wcag2.size) !== null && _b !== void 0 ? _b : 'small')) {\n case 'AAsmall':\n case 'AAAlarge':\n return readabilityLevel >= 4.5;\n case 'AAlarge':\n return readabilityLevel >= 3;\n case 'AAAsmall':\n return readabilityLevel >= 7;\n default:\n return false;\n }\n}\n/**\n * Given a base color and a list of possible foreground or background\n * colors for that base, returns the most readable color.\n * Optionally returns Black or White if the most readable color is unreadable.\n *\n * @param baseColor - the base color.\n * @param colorList - array of colors to pick the most readable one from.\n * @param args - and object with extra arguments\n *\n * Example\n * ```ts\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'], { includeFallbackColors: false }).toHexString(); // \"#112255\"\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'],{ includeFallbackColors: true }).toHexString(); // \"#ffffff\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // \"#faf3f3\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // \"#ffffff\"\n * ```\n */\nexport function mostReadable(baseColor, colorList, args) {\n if (args === void 0) { args = { includeFallbackColors: false, level: 'AA', size: 'small' }; }\n var bestColor = null;\n var bestScore = 0;\n var includeFallbackColors = args.includeFallbackColors, level = args.level, size = args.size;\n for (var _i = 0, colorList_1 = colorList; _i < colorList_1.length; _i++) {\n var color = colorList_1[_i];\n var score = readability(baseColor, color);\n if (score > bestScore) {\n bestScore = score;\n bestColor = new TinyColor(color);\n }\n }\n if (isReadable(baseColor, bestColor, { level: level, size: size }) || !includeFallbackColors) {\n return bestColor;\n }\n args.includeFallbackColors = false;\n return mostReadable(baseColor, ['#fff', '#000'], args);\n}\n","import { rgbaToArgbHex } from './conversion.js';\nimport { TinyColor } from './index.js';\n/**\n * Returns the color represented as a Microsoft filter for use in old versions of IE.\n */\nexport function toMsFilter(firstColor, secondColor) {\n var color = new TinyColor(firstColor);\n var hex8String = '#' + rgbaToArgbHex(color.r, color.g, color.b, color.a);\n var secondHex8String = hex8String;\n var gradientType = color.gradientType ? 'GradientType = 1, ' : '';\n if (secondColor) {\n var s = new TinyColor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s.r, s.g, s.b, s.a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\".concat(gradientType, \"startColorstr=\").concat(hex8String, \",endColorstr=\").concat(secondHex8String, \")\");\n}\n","import { TinyColor } from './index.js';\nimport { convertToPercentage } from './util.js';\n/**\n * If input is an object, force 1 into \"1.0\" to handle ratios properly\n * String input requires \"1.0\" as input, so 1 will be treated as 1\n */\nexport function fromRatio(ratio, opts) {\n var newColor = {\n r: convertToPercentage(ratio.r),\n g: convertToPercentage(ratio.g),\n b: convertToPercentage(ratio.b),\n };\n if (ratio.a !== undefined) {\n newColor.a = Number(ratio.a);\n }\n return new TinyColor(newColor, opts);\n}\n/** old random function */\nexport function legacyRandom() {\n return new TinyColor({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n}\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n// randomColor by David Merfield under the CC0 license\n// https://github.com/davidmerfield/randomColor/\nimport { TinyColor } from './index.js';\nexport function random(options) {\n if (options === void 0) { options = {}; }\n // Check if we need to generate multiple colors\n if (options.count !== undefined &&\n options.count !== null) {\n var totalColors = options.count;\n var colors = [];\n options.count = undefined;\n while (totalColors > colors.length) {\n // Since we're generating multiple colors,\n // incremement the seed. Otherwise we'd just\n // generate the same color each time...\n options.count = null;\n if (options.seed) {\n options.seed += 1;\n }\n colors.push(random(options));\n }\n options.count = totalColors;\n return colors;\n }\n // First we pick a hue (H)\n var h = pickHue(options.hue, options.seed);\n // Then use H to determine saturation (S)\n var s = pickSaturation(h, options);\n // Then use S and H to determine brightness (B).\n var v = pickBrightness(h, s, options);\n var res = { h: h, s: s, v: v };\n if (options.alpha !== undefined) {\n res.a = options.alpha;\n }\n // Then we return the HSB color in the desired format\n return new TinyColor(res);\n}\nfunction pickHue(hue, seed) {\n var hueRange = getHueRange(hue);\n var res = randomWithin(hueRange, seed);\n // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n if (res < 0) {\n res = 360 + res;\n }\n return res;\n}\nfunction pickSaturation(hue, options) {\n if (options.hue === 'monochrome') {\n return 0;\n }\n if (options.luminosity === 'random') {\n return randomWithin([0, 100], options.seed);\n }\n var saturationRange = getColorInfo(hue).saturationRange;\n var sMin = saturationRange[0];\n var sMax = saturationRange[1];\n switch (options.luminosity) {\n case 'bright':\n sMin = 55;\n break;\n case 'dark':\n sMin = sMax - 10;\n break;\n case 'light':\n sMax = 55;\n break;\n default:\n break;\n }\n return randomWithin([sMin, sMax], options.seed);\n}\nfunction pickBrightness(H, S, options) {\n var bMin = getMinimumBrightness(H, S);\n var bMax = 100;\n switch (options.luminosity) {\n case 'dark':\n bMax = bMin + 20;\n break;\n case 'light':\n bMin = (bMax + bMin) / 2;\n break;\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n default:\n break;\n }\n return randomWithin([bMin, bMax], options.seed);\n}\nfunction getMinimumBrightness(H, S) {\n var lowerBounds = getColorInfo(H).lowerBounds;\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n var s1 = lowerBounds[i][0];\n var v1 = lowerBounds[i][1];\n var s2 = lowerBounds[i + 1][0];\n var v2 = lowerBounds[i + 1][1];\n if (S >= s1 && S <= s2) {\n var m = (v2 - v1) / (s2 - s1);\n var b = v1 - m * s1;\n return m * S + b;\n }\n }\n return 0;\n}\nfunction getHueRange(colorInput) {\n var num = parseInt(colorInput, 10);\n if (!Number.isNaN(num) && num < 360 && num > 0) {\n return [num, num];\n }\n if (typeof colorInput === 'string') {\n var namedColor = bounds.find(function (n) { return n.name === colorInput; });\n if (namedColor) {\n var color = defineColor(namedColor);\n if (color.hueRange) {\n return color.hueRange;\n }\n }\n var parsed = new TinyColor(colorInput);\n if (parsed.isValid) {\n var hue = parsed.toHsv().h;\n return [hue, hue];\n }\n }\n return [0, 360];\n}\nfunction getColorInfo(hue) {\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue -= 360;\n }\n for (var _i = 0, bounds_1 = bounds; _i < bounds_1.length; _i++) {\n var bound = bounds_1[_i];\n var color = defineColor(bound);\n if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {\n return color;\n }\n }\n throw Error('Color not found');\n}\nfunction randomWithin(range, seed) {\n if (seed === undefined) {\n return Math.floor(range[0] + Math.random() * (range[1] + 1 - range[0]));\n }\n // Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n}\nfunction defineColor(bound) {\n var sMin = bound.lowerBounds[0][0];\n var sMax = bound.lowerBounds[bound.lowerBounds.length - 1][0];\n var bMin = bound.lowerBounds[bound.lowerBounds.length - 1][1];\n var bMax = bound.lowerBounds[0][1];\n return {\n name: bound.name,\n hueRange: bound.hueRange,\n lowerBounds: bound.lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax],\n };\n}\n/**\n * @hidden\n */\nexport var bounds = [\n {\n name: 'monochrome',\n hueRange: null,\n lowerBounds: [\n [0, 0],\n [100, 0],\n ],\n },\n {\n name: 'red',\n hueRange: [-26, 18],\n lowerBounds: [\n [20, 100],\n [30, 92],\n [40, 89],\n [50, 85],\n [60, 78],\n [70, 70],\n [80, 60],\n [90, 55],\n [100, 50],\n ],\n },\n {\n name: 'orange',\n hueRange: [19, 46],\n lowerBounds: [\n [20, 100],\n [30, 93],\n [40, 88],\n [50, 86],\n [60, 85],\n [70, 70],\n [100, 70],\n ],\n },\n {\n name: 'yellow',\n hueRange: [47, 62],\n lowerBounds: [\n [25, 100],\n [40, 94],\n [50, 89],\n [60, 86],\n [70, 84],\n [80, 82],\n [90, 80],\n [100, 75],\n ],\n },\n {\n name: 'green',\n hueRange: [63, 178],\n lowerBounds: [\n [30, 100],\n [40, 90],\n [50, 85],\n [60, 81],\n [70, 74],\n [80, 64],\n [90, 50],\n [100, 40],\n ],\n },\n {\n name: 'blue',\n hueRange: [179, 257],\n lowerBounds: [\n [20, 100],\n [30, 86],\n [40, 80],\n [50, 74],\n [60, 60],\n [70, 52],\n [80, 44],\n [90, 39],\n [100, 35],\n ],\n },\n {\n name: 'purple',\n hueRange: [258, 282],\n lowerBounds: [\n [20, 100],\n [30, 87],\n [40, 79],\n [50, 70],\n [60, 65],\n [70, 59],\n [80, 52],\n [90, 45],\n [100, 42],\n ],\n },\n {\n name: 'pink',\n hueRange: [283, 334],\n lowerBounds: [\n [20, 100],\n [30, 90],\n [40, 86],\n [60, 84],\n [80, 80],\n [90, 75],\n [100, 73],\n ],\n },\n];\n","import { tinycolor } from './index.js';\nexport * from './index.js';\nexport * from './css-color-names.js';\nexport * from './readability.js';\nexport * from './to-ms-filter.js';\nexport * from './from-ratio.js';\nexport * from './format-input.js';\nexport * from './random.js';\nexport * from './interfaces.js';\nexport * from './conversion.js';\n// kept for backwards compatability with v1\nexport default tinycolor;\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","var categories = [\n require('./lib/compatibility'),\n require('./lib/database'),\n require('./lib/engineering'),\n require('./lib/logical'),\n require('./lib/math-trig'),\n require('./lib/text'),\n require('./lib/date-time'),\n require('./lib/financial'),\n require('./lib/information'),\n require('./lib/lookup-reference'),\n require('./lib/statistical'),\n require('./lib/miscellaneous')\n];\n\nfor (var c in categories) {\n var category = categories[c];\n for (var f in category) {\n exports[f] = exports[f] || category[f];\n }\n}\n","var mathTrig = require('./math-trig');\nvar statistical = require('./statistical');\nvar engineering = require('./engineering');\nvar dateTime = require('./date-time');\n\nfunction set(fn, root) {\n if (root) {\n for (var i in root) {\n fn[i] = root[i];\n }\n }\n\n return fn;\n}\n\nexports.BETADIST = statistical.BETA.DIST;\nexports.BETAINV = statistical.BETA.INV;\nexports.BINOMDIST = statistical.BINOM.DIST;\nexports.CEILING = exports.ISOCEILING = set(mathTrig.CEILING.MATH, mathTrig.CEILING);\nexports.CEILINGMATH = mathTrig.CEILING.MATH;\nexports.CEILINGPRECISE = mathTrig.CEILING.PRECISE;\nexports.CHIDIST = statistical.CHISQ.DIST;\nexports.CHIDISTRT = statistical.CHISQ.DIST.RT;\nexports.CHIINV = statistical.CHISQ.INV;\nexports.CHIINVRT = statistical.CHISQ.INV.RT;\nexports.CHITEST = statistical.CHISQ.TEST;\nexports.CONFIDENCE = set(statistical.CONFIDENCE.NORM, statistical.CONFIDENCE);\nexports.COVAR = statistical.COVARIANCE.P;\nexports.COVARIANCEP = statistical.COVARIANCE.P;\nexports.COVARIANCES = statistical.COVARIANCE.S;\nexports.CRITBINOM = statistical.BINOM.INV;\nexports.EXPONDIST = statistical.EXPON.DIST;\nexports.ERFCPRECISE = engineering.ERFC.PRECISE;\nexports.ERFPRECISE = engineering.ERF.PRECISE;\nexports.FDIST = statistical.F.DIST;\nexports.FDISTRT = statistical.F.DIST.RT;\nexports.FINVRT = statistical.F.INV.RT;\nexports.FINV = statistical.F.INV;\nexports.FLOOR = set(mathTrig.FLOOR.MATH, mathTrig.FLOOR);\nexports.FLOORMATH = mathTrig.FLOOR.MATH;\nexports.FLOORPRECISE = mathTrig.FLOOR.PRECISE;\nexports.FTEST = statistical.F.TEST;\nexports.GAMMADIST = statistical.GAMMA.DIST;\nexports.GAMMAINV = statistical.GAMMA.INV;\nexports.GAMMALNPRECISE = statistical.GAMMALN.PRECISE;\nexports.HYPGEOMDIST = statistical.HYPGEOM.DIST;\nexports.LOGINV = statistical.LOGNORM.INV;\nexports.LOGNORMINV = statistical.LOGNORM.INV;\nexports.LOGNORMDIST = statistical.LOGNORM.DIST;\nexports.MODE = set(statistical.MODE.SNGL, statistical.MODE);\nexports.MODEMULT = statistical.MODE.MULT;\nexports.MODESNGL = statistical.MODE.SNGL;\nexports.NEGBINOMDIST = statistical.NEGBINOM.DIST;\nexports.NETWORKDAYSINTL = dateTime.NETWORKDAYS.INTL;\nexports.NORMDIST = statistical.NORM.DIST;\nexports.NORMINV = statistical.NORM.INV;\nexports.NORMSDIST = statistical.NORM.S.DIST;\nexports.NORMSINV = statistical.NORM.S.INV;\nexports.PERCENTILE = set(statistical.PERCENTILE.EXC, statistical.PERCENTILE);\nexports.PERCENTILEEXC = statistical.PERCENTILE.EXC;\nexports.PERCENTILEINC = statistical.PERCENTILE.INC;\nexports.PERCENTRANK = set(statistical.PERCENTRANK.INC, statistical.PERCENTRANK);\nexports.PERCENTRANKEXC = statistical.PERCENTRANK.EXC;\nexports.PERCENTRANKINC = statistical.PERCENTRANK.INC;\nexports.POISSON = set(statistical.POISSON.DIST, statistical.POISSON);\nexports.POISSONDIST = statistical.POISSON.DIST;\nexports.QUARTILE = set(statistical.QUARTILE.INC, statistical.QUARTILE);\nexports.QUARTILEEXC = statistical.QUARTILE.EXC;\nexports.QUARTILEINC = statistical.QUARTILE.INC;\nexports.RANK = set(statistical.RANK.EQ, statistical.RANK);\nexports.RANKAVG = statistical.RANK.AVG;\nexports.RANKEQ = statistical.RANK.EQ;\nexports.SKEWP = statistical.SKEW.P;\nexports.STDEV = set(statistical.STDEV.S, statistical.STDEV);\nexports.STDEVP = statistical.STDEV.P;\nexports.STDEVS = statistical.STDEV.S;\nexports.TDIST = statistical.T.DIST;\nexports.TDISTRT = statistical.T.DIST.RT;\nexports.TINV = statistical.T.INV;\nexports.TTEST = statistical.T.TEST;\nexports.VAR = set(statistical.VAR.S, statistical.VAR);\nexports.VARP = statistical.VAR.P;\nexports.VARS = statistical.VAR.S;\nexports.WEIBULL = set(statistical.WEIBULL.DIST, statistical.WEIBULL);\nexports.WEIBULLDIST = statistical.WEIBULL.DIST;\nexports.WORKDAYINTL = dateTime.WORKDAY.INTL;\nexports.ZTEST = statistical.Z.TEST;\n","var error = require('./utils/error');\nvar stats = require('./statistical');\nvar maths = require('./math-trig');\nvar utils = require('./utils/common');\nvar evalExpression = require('./utils/criteria-eval');\n\nfunction compact(array) {\n var result = [];\n\n utils.arrayEach(array, function(value) {\n if (value) {\n result.push(value);\n }\n });\n\n return result;\n}\n\nexports.FINDFIELD = function(database, title) {\n var index = null;\n\n utils.arrayEach(database, function(value, i) {\n if (value[0] === title) {\n index = i;\n return false;\n }\n });\n\n // Return error if the input field title is incorrect\n if (index == null) {\n return error.value;\n }\n\n return index;\n};\n\nfunction findResultIndex(database, criterias) {\n var matches = {};\n for (var i = 1; i < database[0].length; ++i) {\n matches[i] = true;\n }\n var maxCriteriaLength = criterias[0].length;\n for (i = 1; i < criterias.length; ++i) {\n if (criterias[i].length > maxCriteriaLength) {\n maxCriteriaLength = criterias[i].length;\n }\n }\n\n for (var k = 1; k < database.length; ++k) {\n for (var l = 1; l < database[k].length; ++l) {\n var currentCriteriaResult = false;\n var hasMatchingCriteria = false;\n for (var j = 0; j < criterias.length; ++j) {\n var criteria = criterias[j];\n if (criteria.length < maxCriteriaLength) {\n continue;\n }\n\n var criteriaField = criteria[0];\n if (database[k][0] !== criteriaField) {\n continue;\n }\n hasMatchingCriteria = true;\n for (var p = 1; p < criteria.length; ++p) {\n if (!currentCriteriaResult) {\n var isWildcard = criteria[p] === void 0 || criteria[p] === '*';\n\n if (isWildcard) {\n currentCriteriaResult = true;\n } else {\n var tokenizedCriteria = evalExpression.parse(criteria[p] + '');\n var tokens = [evalExpression.createToken(database[k][l], evalExpression.TOKEN_TYPE_LITERAL)].concat(tokenizedCriteria);\n\n currentCriteriaResult = evalExpression.compute(tokens);\n }\n }\n }\n }\n if (hasMatchingCriteria) {\n matches[l] = matches[l] && currentCriteriaResult;\n }\n }\n }\n\n var result = [];\n for (var n = 0; n < database[0].length; ++n) {\n if (matches[n]) {\n result.push(n - 1);\n }\n }\n\n return result;\n}\n\n// Database functions\nexports.DAVERAGE = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n var sum = 0;\n\n utils.arrayEach(resultIndexes, function(value) {\n sum += targetFields[value];\n });\n\n return resultIndexes.length === 0 ? error.div0 : sum / resultIndexes.length;\n};\n\nexports.DCOUNT = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n\n var targetValues = [];\n\n utils.arrayEach(resultIndexes, function(value) {\n targetValues.push(targetFields[value]);\n });\n\n return stats.COUNT(targetValues);\n};\n\nexports.DCOUNTA = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n\n var targetValues = [];\n\n utils.arrayEach(resultIndexes, function(value) {\n targetValues.push(targetFields[value]);\n });\n\n return stats.COUNTA(targetValues);\n};\n\nexports.DGET = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n\n // Return error if no record meets the criteria\n if (resultIndexes.length === 0) {\n return error.value;\n }\n // Returns the #NUM! error value because more than one record meets the\n // criteria\n if (resultIndexes.length > 1) {\n return error.num;\n }\n\n return targetFields[resultIndexes[0]];\n};\n\nexports.DMAX = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n\n var maxValue = targetFields[resultIndexes[0]];\n\n utils.arrayEach(resultIndexes, function(value) {\n if (maxValue < targetFields[value]) {\n maxValue = targetFields[value];\n }\n });\n\n return maxValue;\n};\n\nexports.DMIN = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n\n var minValue = targetFields[resultIndexes[0]];\n\n utils.arrayEach(resultIndexes, function(value) {\n if (minValue > targetFields[value]) {\n minValue = targetFields[value];\n }\n });\n\n return minValue;\n};\n\nexports.DPRODUCT = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n\n var targetValues = [];\n\n utils.arrayEach(resultIndexes, function(value) {\n targetValues.push(targetFields[value]);\n });\n targetValues = compact(targetValues);\n\n var result = 1;\n\n utils.arrayEach(targetValues, function(value) {\n result *= value;\n });\n\n return result;\n};\n\nexports.DSTDEV = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n var targetValues = [];\n\n utils.arrayEach(resultIndexes, function(value) {\n targetValues.push(targetFields[value]);\n });\n targetValues = compact(targetValues);\n\n return stats.STDEV.S(targetValues);\n};\n\nexports.DSTDEVP = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n\n var targetValues = [];\n\n utils.arrayEach(resultIndexes, function(value) {\n targetValues.push(targetFields[value]);\n });\n targetValues = compact(targetValues);\n\n return stats.STDEV.P(targetValues);\n};\n\nexports.DSUM = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n\n var targetValues = [];\n\n utils.arrayEach(resultIndexes, function(value) {\n targetValues.push(targetFields[value]);\n });\n\n return maths.SUM(targetValues);\n};\n\nexports.DVAR = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n var targetValues = [];\n\n utils.arrayEach(resultIndexes, function(value) {\n targetValues.push(targetFields[value]);\n });\n\n return stats.VAR.S(targetValues);\n};\n\nexports.DVARP = function(database, field, criteria) {\n // Return error if field is not a number and not a string\n if (isNaN(field) && (typeof field !== \"string\")) {\n return error.value;\n }\n var resultIndexes = findResultIndex(database, criteria);\n var targetFields = [];\n\n if (typeof field === \"string\") {\n var index = exports.FINDFIELD(database, field);\n targetFields = utils.rest(database[index]);\n } else {\n targetFields = utils.rest(database[field]);\n }\n var targetValues = [];\n\n utils.arrayEach(resultIndexes, function(value) {\n targetValues.push(targetFields[value]);\n });\n\n return stats.VAR.P(targetValues);\n};\n","var error = require('./utils/error');\nvar utils = require('./utils/common');\n\nvar d1900 = new Date(Date.UTC(1900, 0, 1));\nvar WEEK_STARTS = [\n undefined,\n 0,\n 1,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 0\n];\nvar WEEK_TYPES = [\n [],\n [1, 2, 3, 4, 5, 6, 7],\n [7, 1, 2, 3, 4, 5, 6],\n [6, 0, 1, 2, 3, 4, 5],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [7, 1, 2, 3, 4, 5, 6],\n [6, 7, 1, 2, 3, 4, 5],\n [5, 6, 7, 1, 2, 3, 4],\n [4, 5, 6, 7, 1, 2, 3],\n [3, 4, 5, 6, 7, 1, 2],\n [2, 3, 4, 5, 6, 7, 1],\n [1, 2, 3, 4, 5, 6, 7]\n];\nvar WEEKEND_TYPES = [\n [],\n [6, 0],\n [0, 1],\n [1, 2],\n [2, 3],\n [3, 4],\n [4, 5],\n [5, 6],\n undefined,\n undefined,\n undefined, [0, 0],\n [1, 1],\n [2, 2],\n [3, 3],\n [4, 4],\n [5, 5],\n [6, 6]\n];\n\nexports.DATE = function(year, month, day) {\n var result;\n\n year = utils.parseNumber(year);\n month = utils.parseNumber(month);\n day = utils.parseNumber(day);\n\n if (utils.anyIsError(year, month, day)) {\n result = error.value;\n\n } else if (year < 0 || month < 0 || day < 0) {\n result = error.num;\n\n } else {\n result = new Date(year, month - 1, day);\n }\n\n return result;\n};\n\nexports.DATEVALUE = function(date_text) {\n var modifier = 2;\n var date;\n\n if (typeof date_text !== 'string') {\n return error.value;\n }\n\n date = Date.parse(date_text);\n\n if (isNaN(date)) {\n return error.value;\n }\n\n if (date <= -2203891200000) {\n modifier = 1;\n }\n\n return Math.ceil((date - d1900) / 86400000) + modifier;\n};\n\nexports.DAY = function(serial_number) {\n var date = utils.parseDate(serial_number);\n if (date instanceof Error) {\n return date;\n }\n\n return date.getDate();\n};\n\nexports.DAYS = function(end_date, start_date) {\n end_date = utils.parseDate(end_date);\n start_date = utils.parseDate(start_date);\n\n if (end_date instanceof Error) {\n return end_date;\n }\n if (start_date instanceof Error) {\n return start_date;\n }\n\n return serial(end_date) - serial(start_date);\n};\n\nexports.DAYS360 = function(start_date, end_date, method) {\n method = utils.parseBool(method);\n start_date = utils.parseDate(start_date);\n end_date = utils.parseDate(end_date);\n\n if (start_date instanceof Error) {\n return start_date;\n }\n if (end_date instanceof Error) {\n return end_date;\n }\n if (method instanceof Error) {\n return method;\n }\n var sm = start_date.getMonth();\n var em = end_date.getMonth();\n var sd, ed;\n\n if (method) {\n sd = start_date.getDate() === 31 ? 30 : start_date.getDate();\n ed = end_date.getDate() === 31 ? 30 : end_date.getDate();\n } else {\n var smd = new Date(start_date.getFullYear(), sm + 1, 0).getDate();\n var emd = new Date(end_date.getFullYear(), em + 1, 0).getDate();\n sd = start_date.getDate() === smd ? 30 : start_date.getDate();\n if (end_date.getDate() === emd) {\n if (sd < 30) {\n em++;\n ed = 1;\n } else {\n ed = 30;\n }\n } else {\n ed = end_date.getDate();\n }\n }\n\n return 360 * (end_date.getFullYear() - start_date.getFullYear()) +\n 30 * (em - sm) + (ed - sd);\n};\n\nexports.EDATE = function(start_date, months) {\n start_date = utils.parseDate(start_date);\n\n if (start_date instanceof Error) {\n return start_date;\n }\n if (isNaN(months)) {\n return error.value;\n }\n months = parseInt(months, 10);\n start_date.setMonth(start_date.getMonth() + months);\n\n return serial(start_date);\n};\n\nexports.EOMONTH = function(start_date, months) {\n start_date = utils.parseDate(start_date);\n\n if (start_date instanceof Error) {\n return start_date;\n }\n if (isNaN(months)) {\n return error.value;\n }\n months = parseInt(months, 10);\n\n return serial(new Date(start_date.getFullYear(), start_date.getMonth() + months + 1, 0));\n};\n\nexports.HOUR = function(serial_number) {\n serial_number = utils.parseDate(serial_number);\n\n if (serial_number instanceof Error) {\n return serial_number;\n }\n\n return serial_number.getHours();\n};\n\nexports.INTERVAL = function (second) {\n if (typeof second !== 'number' && typeof second !== 'string') {\n return error.value;\n } else {\n second = parseInt(second, 10);\n }\n\n var year = Math.floor(second/946080000);\n second = second%946080000;\n var month = Math.floor(second/2592000);\n second = second%2592000;\n var day = Math.floor(second/86400);\n second = second%86400;\n\n var hour = Math.floor(second/3600);\n second = second%3600;\n var min = Math.floor(second/60);\n second = second%60;\n var sec = second;\n\n year = (year > 0) ? year + 'Y' : '';\n month = (month > 0) ? month + 'M' : '';\n day = (day > 0) ? day + 'D' : '';\n hour = (hour > 0) ? hour + 'H' : '';\n min = (min > 0) ? min + 'M' : '';\n sec = (sec > 0) ? sec + 'S' : '';\n\n return 'P' + year + month + day + 'T' + hour + min + sec;\n};\n\nexports.ISOWEEKNUM = function(date) {\n date = utils.parseDate(date);\n\n if (date instanceof Error) {\n return date;\n }\n\n date.setHours(0, 0, 0);\n date.setDate(date.getDate() + 4 - (date.getDay() || 7));\n var yearStart = new Date(date.getFullYear(), 0, 1);\n\n return Math.ceil((((date - yearStart) / 86400000) + 1) / 7);\n};\n\nexports.MINUTE = function(serial_number) {\n serial_number = utils.parseDate(serial_number);\n\n if (serial_number instanceof Error) {\n return serial_number;\n }\n\n return serial_number.getMinutes();\n};\n\nexports.MONTH = function(serial_number) {\n serial_number = utils.parseDate(serial_number);\n\n if (serial_number instanceof Error) {\n return serial_number;\n }\n\n return serial_number.getMonth() + 1;\n};\n\nexports.NETWORKDAYS = function(start_date, end_date, holidays) {\n return this.NETWORKDAYS.INTL(start_date, end_date, 1, holidays);\n};\n\nexports.NETWORKDAYS.INTL = function(start_date, end_date, weekend, holidays) {\n start_date = utils.parseDate(start_date);\n\n if (start_date instanceof Error) {\n return start_date;\n }\n end_date = utils.parseDate(end_date);\n\n if (end_date instanceof Error) {\n return end_date;\n }\n if (weekend === undefined) {\n weekend = WEEKEND_TYPES[1];\n } else {\n weekend = WEEKEND_TYPES[weekend];\n }\n if (!(weekend instanceof Array)) {\n return error.value;\n }\n if (holidays === undefined) {\n holidays = [];\n } else if (!(holidays instanceof Array)) {\n holidays = [holidays];\n }\n\n for (var i = 0; i < holidays.length; i++) {\n var h = utils.parseDate(holidays[i]);\n if (h instanceof Error) {\n return h;\n }\n holidays[i] = h;\n }\n var days = (end_date - start_date) / (1000 * 60 * 60 * 24) + 1;\n var total = days;\n var day = start_date;\n for (i = 0; i < days; i++) {\n var d = (new Date().getTimezoneOffset() > 0) ? day.getUTCDay() : day.getDay();\n var dec = false;\n if (d === weekend[0] || d === weekend[1]) {\n dec = true;\n }\n for (var j = 0; j < holidays.length; j++) {\n var holiday = holidays[j];\n if (holiday.getDate() === day.getDate() &&\n holiday.getMonth() === day.getMonth() &&\n holiday.getFullYear() === day.getFullYear()) {\n dec = true;\n break;\n }\n }\n if (dec) {\n total--;\n }\n day.setDate(day.getDate() + 1);\n }\n\n return total;\n};\n\nexports.NOW = function() {\n return new Date();\n};\n\nexports.SECOND = function(serial_number) {\n serial_number = utils.parseDate(serial_number);\n if (serial_number instanceof Error) {\n return serial_number;\n }\n\n return serial_number.getSeconds();\n};\n\nexports.TIME = function(hour, minute, second) {\n hour = utils.parseNumber(hour);\n minute = utils.parseNumber(minute);\n second = utils.parseNumber(second);\n if (utils.anyIsError(hour, minute, second)) {\n return error.value;\n }\n if (hour < 0 || minute < 0 || second < 0) {\n return error.num;\n }\n\n return (3600 * hour + 60 * minute + second) / 86400;\n};\n\nexports.TIMEVALUE = function(time_text) {\n time_text = utils.parseDate(time_text);\n\n if (time_text instanceof Error) {\n return time_text;\n }\n\n return (3600 * time_text.getHours() + 60 * time_text.getMinutes() + time_text.getSeconds()) / 86400;\n};\n\nexports.TODAY = function() {\n return new Date();\n};\n\nexports.WEEKDAY = function(serial_number, return_type) {\n serial_number = utils.parseDate(serial_number);\n if (serial_number instanceof Error) {\n return serial_number;\n }\n if (return_type === undefined) {\n return_type = 1;\n }\n var day = serial_number.getDay();\n\n return WEEK_TYPES[return_type][day];\n};\n\nexports.WEEKNUM = function(serial_number, return_type) {\n serial_number = utils.parseDate(serial_number);\n if (serial_number instanceof Error) {\n return serial_number;\n }\n if (return_type === undefined) {\n return_type = 1;\n }\n if (return_type === 21) {\n return this.ISOWEEKNUM(serial_number);\n }\n var week_start = WEEK_STARTS[return_type];\n var jan = new Date(serial_number.getFullYear(), 0, 1);\n var inc = jan.getDay() < week_start ? 1 : 0;\n jan -= Math.abs(jan.getDay() - week_start) * 24 * 60 * 60 * 1000;\n\n return Math.floor(((serial_number - jan) / (1000 * 60 * 60 * 24)) / 7 + 1) + inc;\n};\n\nexports.WORKDAY = function(start_date, days, holidays) {\n return this.WORKDAY.INTL(start_date, days, 1, holidays);\n};\n\nexports.WORKDAY.INTL = function(start_date, days, weekend, holidays) {\n start_date = utils.parseDate(start_date);\n if (start_date instanceof Error) {\n return start_date;\n }\n days = utils.parseNumber(days);\n if (days instanceof Error) {\n return days;\n }\n if (days < 0) {\n return error.num;\n }\n if (weekend === undefined) {\n weekend = WEEKEND_TYPES[1];\n } else {\n weekend = WEEKEND_TYPES[weekend];\n }\n if (!(weekend instanceof Array)) {\n return error.value;\n }\n if (holidays === undefined) {\n holidays = [];\n } else if (!(holidays instanceof Array)) {\n holidays = [holidays];\n }\n for (var i = 0; i < holidays.length; i++) {\n var h = utils.parseDate(holidays[i]);\n if (h instanceof Error) {\n return h;\n }\n holidays[i] = h;\n }\n var d = 0;\n while (d < days) {\n start_date.setDate(start_date.getDate() + 1);\n var day = start_date.getDay();\n if (day === weekend[0] || day === weekend[1]) {\n continue;\n }\n for (var j = 0; j < holidays.length; j++) {\n var holiday = holidays[j];\n if (holiday.getDate() === start_date.getDate() &&\n holiday.getMonth() === start_date.getMonth() &&\n holiday.getFullYear() === start_date.getFullYear()) {\n d--;\n break;\n }\n }\n d++;\n }\n\n return start_date;\n};\n\nexports.YEAR = function(serial_number) {\n serial_number = utils.parseDate(serial_number);\n\n if (serial_number instanceof Error) {\n return serial_number;\n }\n\n return serial_number.getFullYear();\n};\n\nfunction isLeapYear(year) {\n return new Date(year, 1, 29).getMonth() === 1;\n}\n\n// TODO : Use DAYS ?\nfunction daysBetween(start_date, end_date) {\n return Math.ceil((end_date - start_date) / 1000 / 60 / 60 / 24);\n}\n\nexports.YEARFRAC = function(start_date, end_date, basis) {\n start_date = utils.parseDate(start_date);\n if (start_date instanceof Error) {\n return start_date;\n }\n end_date = utils.parseDate(end_date);\n if (end_date instanceof Error) {\n return end_date;\n }\n\n basis = basis || 0;\n var sd = start_date.getDate();\n var sm = start_date.getMonth() + 1;\n var sy = start_date.getFullYear();\n var ed = end_date.getDate();\n var em = end_date.getMonth() + 1;\n var ey = end_date.getFullYear();\n\n switch (basis) {\n case 0:\n // US (NASD) 30/360\n if (sd === 31 && ed === 31) {\n sd = 30;\n ed = 30;\n } else if (sd === 31) {\n sd = 30;\n } else if (sd === 30 && ed === 31) {\n ed = 30;\n }\n return ((ed + em * 30 + ey * 360) - (sd + sm * 30 + sy * 360)) / 360;\n case 1:\n // Actual/actual\n var feb29Between = function(date1, date2) {\n var year1 = date1.getFullYear();\n var mar1year1 = new Date(year1, 2, 1);\n if (isLeapYear(year1) && date1 < mar1year1 && date2 >= mar1year1) {\n return true;\n }\n var year2 = date2.getFullYear();\n var mar1year2 = new Date(year2, 2, 1);\n return (isLeapYear(year2) && date2 >= mar1year2 && date1 < mar1year2);\n };\n var ylength = 365;\n if (sy === ey || ((sy + 1) === ey) && ((sm > em) || ((sm === em) && (sd >= ed)))) {\n if ((sy === ey && isLeapYear(sy)) ||\n feb29Between(start_date, end_date) ||\n (em === 1 && ed === 29)) {\n ylength = 366;\n }\n return daysBetween(start_date, end_date) / ylength;\n }\n var years = (ey - sy) + 1;\n var days = (new Date(ey + 1, 0, 1) - new Date(sy, 0, 1)) / 1000 / 60 / 60 / 24;\n var average = days / years;\n return daysBetween(start_date, end_date) / average;\n case 2:\n // Actual/360\n return daysBetween(start_date, end_date) / 360;\n case 3:\n // Actual/365\n return daysBetween(start_date, end_date) / 365;\n case 4:\n // European 30/360\n return ((ed + em * 30 + ey * 360) - (sd + sm * 30 + sy * 360)) / 360;\n }\n};\n\nfunction serial(date) {\n var addOn = (date > -2203891200000) ? 2 : 1;\n\n return Math.ceil((date - d1900) / 86400000) + addOn;\n}\n","var error = require('./utils/error');\nvar jStat = require('jstat');\nvar text = require('./text');\nvar utils = require('./utils/common');\nvar bessel = require('bessel');\n\nfunction isValidBinaryNumber(number) {\n return (/^[01]{1,10}$/).test(number);\n}\n\nexports.BESSELI = function(x, n) {\n x = utils.parseNumber(x);\n n = utils.parseNumber(n);\n if (utils.anyIsError(x, n)) {\n return error.value;\n }\n\n return bessel.besseli(x, n);\n};\n\nexports.BESSELJ = function(x, n) {\n x = utils.parseNumber(x);\n n = utils.parseNumber(n);\n if (utils.anyIsError(x, n)) {\n return error.value;\n }\n\n return bessel.besselj(x, n);\n};\n\nexports.BESSELK = function(x, n) {\n x = utils.parseNumber(x);\n n = utils.parseNumber(n);\n if (utils.anyIsError(x, n)) {\n return error.value;\n }\n\n return bessel.besselk(x, n);\n};\n\nexports.BESSELY = function(x, n) {\n x = utils.parseNumber(x);\n n = utils.parseNumber(n);\n if (utils.anyIsError(x, n)) {\n return error.value;\n }\n\n return bessel.bessely(x, n);\n};\n\nexports.BIN2DEC = function(number) {\n // Return error if number is not binary or contains more than 10 characters (10 digits)\n if (!isValidBinaryNumber(number)) {\n return error.num;\n }\n\n // Convert binary number to decimal\n var result = parseInt(number, 2);\n\n // Handle negative numbers\n var stringified = number.toString();\n if (stringified.length === 10 && stringified.substring(0, 1) === '1') {\n return parseInt(stringified.substring(1), 2) - 512;\n } else {\n return result;\n }\n};\n\n\nexports.BIN2HEX = function(number, places) {\n // Return error if number is not binary or contains more than 10 characters (10 digits)\n if (!isValidBinaryNumber(number)) {\n return error.num;\n }\n\n // Ignore places and return a 10-character hexadecimal number if number is negative\n var stringified = number.toString();\n if (stringified.length === 10 && stringified.substring(0, 1) === '1') {\n return (1099511627264 + parseInt(stringified.substring(1), 2)).toString(16);\n }\n\n // Convert binary number to hexadecimal\n var result = parseInt(number, 2).toString(16);\n\n // Return hexadecimal number using the minimum number of characters necessary if places is undefined\n if (places === undefined) {\n return result;\n } else {\n // Return error if places is nonnumeric\n if (isNaN(places)) {\n return error.value;\n }\n\n // Return error if places is negative\n if (places < 0) {\n return error.num;\n }\n\n // Truncate places in case it is not an integer\n places = Math.floor(places);\n\n // Pad return value with leading 0s (zeros) if necessary (using Underscore.string)\n return (places >= result.length) ? text.REPT('0', places - result.length) + result : error.num;\n }\n};\n\nexports.BIN2OCT = function(number, places) {\n // Return error if number is not binary or contains more than 10 characters (10 digits)\n if (!isValidBinaryNumber(number)) {\n return error.num;\n }\n\n // Ignore places and return a 10-character octal number if number is negative\n var stringified = number.toString();\n if (stringified.length === 10 && stringified.substring(0, 1) === '1') {\n return (1073741312 + parseInt(stringified.substring(1), 2)).toString(8);\n }\n\n // Convert binary number to octal\n var result = parseInt(number, 2).toString(8);\n\n // Return octal number using the minimum number of characters necessary if places is undefined\n if (places === undefined) {\n return result;\n } else {\n // Return error if places is nonnumeric\n if (isNaN(places)) {\n return error.value;\n }\n\n // Return error if places is negative\n if (places < 0) {\n return error.num;\n }\n\n // Truncate places in case it is not an integer\n places = Math.floor(places);\n\n // Pad return value with leading 0s (zeros) if necessary (using Underscore.string)\n return (places >= result.length) ? text.REPT('0', places - result.length) + result : error.num;\n }\n};\n\nexports.BITAND = function(number1, number2) {\n // Return error if either number is a non-numeric value\n number1 = utils.parseNumber(number1);\n number2 = utils.parseNumber(number2);\n if (utils.anyIsError(number1, number2)) {\n return error.value;\n }\n\n // Return error if either number is less than 0\n if (number1 < 0 || number2 < 0) {\n return error.num;\n }\n\n // Return error if either number is a non-integer\n if (Math.floor(number1) !== number1 || Math.floor(number2) !== number2) {\n return error.num;\n }\n\n // Return error if either number is greater than (2^48)-1\n if (number1 > 281474976710655 || number2 > 281474976710655) {\n return error.num;\n }\n\n // Return bitwise AND of two numbers\n return number1 & number2;\n};\n\nexports.BITLSHIFT = function(number, shift) {\n number = utils.parseNumber(number);\n shift = utils.parseNumber(shift);\n if (utils.anyIsError(number, shift)) {\n return error.value;\n }\n\n // Return error if number is less than 0\n if (number < 0) {\n return error.num;\n }\n\n // Return error if number is a non-integer\n if (Math.floor(number) !== number) {\n return error.num;\n }\n\n // Return error if number is greater than (2^48)-1\n if (number > 281474976710655) {\n return error.num;\n }\n\n // Return error if the absolute value of shift is greater than 53\n if (Math.abs(shift) > 53) {\n return error.num;\n }\n\n // Return number shifted by shift bits to the left or to the right if shift is negative\n return (shift >= 0) ? number << shift : number >> -shift;\n};\n\nexports.BITOR = function(number1, number2) {\n number1 = utils.parseNumber(number1);\n number2 = utils.parseNumber(number2);\n if (utils.anyIsError(number1, number2)) {\n return error.value;\n }\n\n // Return error if either number is less than 0\n if (number1 < 0 || number2 < 0) {\n return error.num;\n }\n\n // Return error if either number is a non-integer\n if (Math.floor(number1) !== number1 || Math.floor(number2) !== number2) {\n return error.num;\n }\n\n // Return error if either number is greater than (2^48)-1\n if (number1 > 281474976710655 || number2 > 281474976710655) {\n return error.num;\n }\n\n // Return bitwise OR of two numbers\n return number1 | number2;\n};\n\nexports.BITRSHIFT = function(number, shift) {\n number = utils.parseNumber(number);\n shift = utils.parseNumber(shift);\n if (utils.anyIsError(number, shift)) {\n return error.value;\n }\n\n // Return error if number is less than 0\n if (number < 0) {\n return error.num;\n }\n\n // Return error if number is a non-integer\n if (Math.floor(number) !== number) {\n return error.num;\n }\n\n // Return error if number is greater than (2^48)-1\n if (number > 281474976710655) {\n return error.num;\n }\n\n // Return error if the absolute value of shift is greater than 53\n if (Math.abs(shift) > 53) {\n return error.num;\n }\n\n // Return number shifted by shift bits to the right or to the left if shift is negative\n return (shift >= 0) ? number >> shift : number << -shift;\n};\n\nexports.BITXOR = function(number1, number2) {\n number1 = utils.parseNumber(number1);\n number2 = utils.parseNumber(number2);\n if (utils.anyIsError(number1, number2)) {\n return error.value;\n }\n\n // Return error if either number is less than 0\n if (number1 < 0 || number2 < 0) {\n return error.num;\n }\n\n // Return error if either number is a non-integer\n if (Math.floor(number1) !== number1 || Math.floor(number2) !== number2) {\n return error.num;\n }\n\n // Return error if either number is greater than (2^48)-1\n if (number1 > 281474976710655 || number2 > 281474976710655) {\n return error.num;\n }\n\n // Return bitwise XOR of two numbers\n return number1 ^ number2;\n};\n\nexports.COMPLEX = function(real, imaginary, suffix) {\n real = utils.parseNumber(real);\n imaginary = utils.parseNumber(imaginary);\n if (utils.anyIsError(real, imaginary)) {\n return real;\n }\n\n // Set suffix\n suffix = (suffix === undefined) ? 'i' : suffix;\n\n // Return error if suffix is neither \"i\" nor \"j\"\n if (suffix !== 'i' && suffix !== 'j') {\n return error.value;\n }\n\n // Return complex number\n if (real === 0 && imaginary === 0) {\n return 0;\n } else if (real === 0) {\n return (imaginary === 1) ? suffix : imaginary.toString() + suffix;\n } else if (imaginary === 0) {\n return real.toString();\n } else {\n var sign = (imaginary > 0) ? '+' : '';\n return real.toString() + sign + ((imaginary === 1) ? suffix : imaginary.toString() + suffix);\n }\n};\n\nexports.CONVERT = function(number, from_unit, to_unit) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n\n // List of units supported by CONVERT and units defined by the International System of Units\n // [Name, Symbol, Alternate symbols, Quantity, ISU, CONVERT, Conversion ratio]\n var units = [\n [\"a.u. of action\", \"?\", null, \"action\", false, false, 1.05457168181818e-34],\n [\"a.u. of charge\", \"e\", null, \"electric_charge\", false, false, 1.60217653141414e-19],\n [\"a.u. of energy\", \"Eh\", null, \"energy\", false, false, 4.35974417757576e-18],\n [\"a.u. of length\", \"a?\", null, \"length\", false, false, 5.29177210818182e-11],\n [\"a.u. of mass\", \"m?\", null, \"mass\", false, false, 9.10938261616162e-31],\n [\"a.u. of time\", \"?/Eh\", null, \"time\", false, false, 2.41888432650516e-17],\n [\"admiralty knot\", \"admkn\", null, \"speed\", false, true, 0.514773333],\n [\"ampere\", \"A\", null, \"electric_current\", true, false, 1],\n [\"ampere per meter\", \"A/m\", null, \"magnetic_field_intensity\", true, false, 1],\n [\"ångström\", \"Å\", [\"ang\"], \"length\", false, true, 1e-10],\n [\"are\", \"ar\", null, \"area\", false, true, 100],\n [\"astronomical unit\", \"ua\", null, \"length\", false, false, 1.49597870691667e-11],\n [\"bar\", \"bar\", null, \"pressure\", false, false, 100000],\n [\"barn\", \"b\", null, \"area\", false, false, 1e-28],\n [\"becquerel\", \"Bq\", null, \"radioactivity\", true, false, 1],\n [\"bit\", \"bit\", [\"b\"], \"information\", false, true, 1],\n [\"btu\", \"BTU\", [\"btu\"], \"energy\", false, true, 1055.05585262],\n [\"byte\", \"byte\", null, \"information\", false, true, 8],\n [\"candela\", \"cd\", null, \"luminous_intensity\", true, false, 1],\n [\"candela per square metre\", \"cd/m?\", null, \"luminance\", true, false, 1],\n [\"coulomb\", \"C\", null, \"electric_charge\", true, false, 1],\n [\"cubic ångström\", \"ang3\", [\"ang^3\"], \"volume\", false, true, 1e-30],\n [\"cubic foot\", \"ft3\", [\"ft^3\"], \"volume\", false, true, 0.028316846592],\n [\"cubic inch\", \"in3\", [\"in^3\"], \"volume\", false, true, 0.000016387064],\n [\"cubic light-year\", \"ly3\", [\"ly^3\"], \"volume\", false, true, 8.46786664623715e-47],\n [\"cubic metre\", \"m?\", null, \"volume\", true, true, 1],\n [\"cubic mile\", \"mi3\", [\"mi^3\"], \"volume\", false, true, 4168181825.44058],\n [\"cubic nautical mile\", \"Nmi3\", [\"Nmi^3\"], \"volume\", false, true, 6352182208],\n [\"cubic Pica\", \"Pica3\", [\"Picapt3\", \"Pica^3\", \"Picapt^3\"], \"volume\", false, true, 7.58660370370369e-8],\n [\"cubic yard\", \"yd3\", [\"yd^3\"], \"volume\", false, true, 0.764554857984],\n [\"cup\", \"cup\", null, \"volume\", false, true, 0.0002365882365],\n [\"dalton\", \"Da\", [\"u\"], \"mass\", false, false, 1.66053886282828e-27],\n [\"day\", \"d\", [\"day\"], \"time\", false, true, 86400],\n [\"degree\", \"°\", null, \"angle\", false, false, 0.0174532925199433],\n [\"degrees Rankine\", \"Rank\", null, \"temperature\", false, true, 0.555555555555556],\n [\"dyne\", \"dyn\", [\"dy\"], \"force\", false, true, 0.00001],\n [\"electronvolt\", \"eV\", [\"ev\"], \"energy\", false, true, 1.60217656514141],\n [\"ell\", \"ell\", null, \"length\", false, true, 1.143],\n [\"erg\", \"erg\", [\"e\"], \"energy\", false, true, 1e-7],\n [\"farad\", \"F\", null, \"electric_capacitance\", true, false, 1],\n [\"fluid ounce\", \"oz\", null, \"volume\", false, true, 0.0000295735295625],\n [\"foot\", \"ft\", null, \"length\", false, true, 0.3048],\n [\"foot-pound\", \"flb\", null, \"energy\", false, true, 1.3558179483314],\n [\"gal\", \"Gal\", null, \"acceleration\", false, false, 0.01],\n [\"gallon\", \"gal\", null, \"volume\", false, true, 0.003785411784],\n [\"gauss\", \"G\", [\"ga\"], \"magnetic_flux_density\", false, true, 1],\n [\"grain\", \"grain\", null, \"mass\", false, true, 0.0000647989],\n [\"gram\", \"g\", null, \"mass\", false, true, 0.001],\n [\"gray\", \"Gy\", null, \"absorbed_dose\", true, false, 1],\n [\"gross registered ton\", \"GRT\", [\"regton\"], \"volume\", false, true, 2.8316846592],\n [\"hectare\", \"ha\", null, \"area\", false, true, 10000],\n [\"henry\", \"H\", null, \"inductance\", true, false, 1],\n [\"hertz\", \"Hz\", null, \"frequency\", true, false, 1],\n [\"horsepower\", \"HP\", [\"h\"], \"power\", false, true, 745.69987158227],\n [\"horsepower-hour\", \"HPh\", [\"hh\", \"hph\"], \"energy\", false, true, 2684519.538],\n [\"hour\", \"h\", [\"hr\"], \"time\", false, true, 3600],\n [\"imperial gallon (U.K.)\", \"uk_gal\", null, \"volume\", false, true, 0.00454609],\n [\"imperial hundredweight\", \"lcwt\", [\"uk_cwt\", \"hweight\"], \"mass\", false, true, 50.802345],\n [\"imperial quart (U.K)\", \"uk_qt\", null, \"volume\", false, true, 0.0011365225],\n [\"imperial ton\", \"brton\", [\"uk_ton\", \"LTON\"], \"mass\", false, true, 1016.046909],\n [\"inch\", \"in\", null, \"length\", false, true, 0.0254],\n [\"international acre\", \"uk_acre\", null, \"area\", false, true, 4046.8564224],\n [\"IT calorie\", \"cal\", null, \"energy\", false, true, 4.1868],\n [\"joule\", \"J\", null, \"energy\", true, true, 1],\n [\"katal\", \"kat\", null, \"catalytic_activity\", true, false, 1],\n [\"kelvin\", \"K\", [\"kel\"], \"temperature\", true, true, 1],\n [\"kilogram\", \"kg\", null, \"mass\", true, true, 1],\n [\"knot\", \"kn\", null, \"speed\", false, true, 0.514444444444444],\n [\"light-year\", \"ly\", null, \"length\", false, true, 9460730472580800],\n [\"litre\", \"L\", [\"l\", \"lt\"], \"volume\", false, true, 0.001],\n [\"lumen\", \"lm\", null, \"luminous_flux\", true, false, 1],\n [\"lux\", \"lx\", null, \"illuminance\", true, false, 1],\n [\"maxwell\", \"Mx\", null, \"magnetic_flux\", false, false, 1e-18],\n [\"measurement ton\", \"MTON\", null, \"volume\", false, true, 1.13267386368],\n [\"meter per hour\", \"m/h\", [\"m/hr\"], \"speed\", false, true, 0.00027777777777778],\n [\"meter per second\", \"m/s\", [\"m/sec\"], \"speed\", true, true, 1],\n [\"meter per second squared\", \"m?s??\", null, \"acceleration\", true, false, 1],\n [\"parsec\", \"pc\", [\"parsec\"], \"length\", false, true, 30856775814671900],\n [\"meter squared per second\", \"m?/s\", null, \"kinematic_viscosity\", true, false, 1],\n [\"metre\", \"m\", null, \"length\", true, true, 1],\n [\"miles per hour\", \"mph\", null, \"speed\", false, true, 0.44704],\n [\"millimetre of mercury\", \"mmHg\", null, \"pressure\", false, false, 133.322],\n [\"minute\", \"?\", null, \"angle\", false, false, 0.000290888208665722],\n [\"minute\", \"min\", [\"mn\"], \"time\", false, true, 60],\n [\"modern teaspoon\", \"tspm\", null, \"volume\", false, true, 0.000005],\n [\"mole\", \"mol\", null, \"amount_of_substance\", true, false, 1],\n [\"morgen\", \"Morgen\", null, \"area\", false, true, 2500],\n [\"n.u. of action\", \"?\", null, \"action\", false, false, 1.05457168181818e-34],\n [\"n.u. of mass\", \"m?\", null, \"mass\", false, false, 9.10938261616162e-31],\n [\"n.u. of speed\", \"c?\", null, \"speed\", false, false, 299792458],\n [\"n.u. of time\", \"?/(me?c??)\", null, \"time\", false, false, 1.28808866778687e-21],\n [\"nautical mile\", \"M\", [\"Nmi\"], \"length\", false, true, 1852],\n [\"newton\", \"N\", null, \"force\", true, true, 1],\n [\"œrsted\", \"Oe \", null, \"magnetic_field_intensity\", false, false, 79.5774715459477],\n [\"ohm\", \"Ω\", null, \"electric_resistance\", true, false, 1],\n [\"ounce mass\", \"ozm\", null, \"mass\", false, true, 0.028349523125],\n [\"pascal\", \"Pa\", null, \"pressure\", true, false, 1],\n [\"pascal second\", \"Pa?s\", null, \"dynamic_viscosity\", true, false, 1],\n [\"pferdestärke\", \"PS\", null, \"power\", false, true, 735.49875],\n [\"phot\", \"ph\", null, \"illuminance\", false, false, 0.0001],\n [\"pica (1/6 inch)\", \"pica\", null, \"length\", false, true, 0.00035277777777778],\n [\"pica (1/72 inch)\", \"Pica\", [\"Picapt\"], \"length\", false, true, 0.00423333333333333],\n [\"poise\", \"P\", null, \"dynamic_viscosity\", false, false, 0.1],\n [\"pond\", \"pond\", null, \"force\", false, true, 0.00980665],\n [\"pound force\", \"lbf\", null, \"force\", false, true, 4.4482216152605],\n [\"pound mass\", \"lbm\", null, \"mass\", false, true, 0.45359237],\n [\"quart\", \"qt\", null, \"volume\", false, true, 0.000946352946],\n [\"radian\", \"rad\", null, \"angle\", true, false, 1],\n [\"second\", \"?\", null, \"angle\", false, false, 0.00000484813681109536],\n [\"second\", \"s\", [\"sec\"], \"time\", true, true, 1],\n [\"short hundredweight\", \"cwt\", [\"shweight\"], \"mass\", false, true, 45.359237],\n [\"siemens\", \"S\", null, \"electrical_conductance\", true, false, 1],\n [\"sievert\", \"Sv\", null, \"equivalent_dose\", true, false, 1],\n [\"slug\", \"sg\", null, \"mass\", false, true, 14.59390294],\n [\"square ångström\", \"ang2\", [\"ang^2\"], \"area\", false, true, 1e-20],\n [\"square foot\", \"ft2\", [\"ft^2\"], \"area\", false, true, 0.09290304],\n [\"square inch\", \"in2\", [\"in^2\"], \"area\", false, true, 0.00064516],\n [\"square light-year\", \"ly2\", [\"ly^2\"], \"area\", false, true, 8.95054210748189e+31],\n [\"square meter\", \"m?\", null, \"area\", true, true, 1],\n [\"square mile\", \"mi2\", [\"mi^2\"], \"area\", false, true, 2589988.110336],\n [\"square nautical mile\", \"Nmi2\", [\"Nmi^2\"], \"area\", false, true, 3429904],\n [\"square Pica\", \"Pica2\", [\"Picapt2\", \"Pica^2\", \"Picapt^2\"], \"area\", false, true, 0.00001792111111111],\n [\"square yard\", \"yd2\", [\"yd^2\"], \"area\", false, true, 0.83612736],\n [\"statute mile\", \"mi\", null, \"length\", false, true, 1609.344],\n [\"steradian\", \"sr\", null, \"solid_angle\", true, false, 1],\n [\"stilb\", \"sb\", null, \"luminance\", false, false, 0.0001],\n [\"stokes\", \"St\", null, \"kinematic_viscosity\", false, false, 0.0001],\n [\"stone\", \"stone\", null, \"mass\", false, true, 6.35029318],\n [\"tablespoon\", \"tbs\", null, \"volume\", false, true, 0.0000147868],\n [\"teaspoon\", \"tsp\", null, \"volume\", false, true, 0.00000492892],\n [\"tesla\", \"T\", null, \"magnetic_flux_density\", true, true, 1],\n [\"thermodynamic calorie\", \"c\", null, \"energy\", false, true, 4.184],\n [\"ton\", \"ton\", null, \"mass\", false, true, 907.18474],\n [\"tonne\", \"t\", null, \"mass\", false, false, 1000],\n [\"U.K. pint\", \"uk_pt\", null, \"volume\", false, true, 0.00056826125],\n [\"U.S. bushel\", \"bushel\", null, \"volume\", false, true, 0.03523907],\n [\"U.S. oil barrel\", \"barrel\", null, \"volume\", false, true, 0.158987295],\n [\"U.S. pint\", \"pt\", [\"us_pt\"], \"volume\", false, true, 0.000473176473],\n [\"U.S. survey mile\", \"survey_mi\", null, \"length\", false, true, 1609.347219],\n [\"U.S. survey/statute acre\", \"us_acre\", null, \"area\", false, true, 4046.87261],\n [\"volt\", \"V\", null, \"voltage\", true, false, 1],\n [\"watt\", \"W\", null, \"power\", true, true, 1],\n [\"watt-hour\", \"Wh\", [\"wh\"], \"energy\", false, true, 3600],\n [\"weber\", \"Wb\", null, \"magnetic_flux\", true, false, 1],\n [\"yard\", \"yd\", null, \"length\", false, true, 0.9144],\n [\"year\", \"yr\", null, \"time\", false, true, 31557600]\n ];\n\n // Binary prefixes\n // [Name, Prefix power of 2 value, Previx value, Abbreviation, Derived from]\n var binary_prefixes = {\n Yi: [\"yobi\", 80, 1208925819614629174706176, \"Yi\", \"yotta\"],\n Zi: [\"zebi\", 70, 1180591620717411303424, \"Zi\", \"zetta\"],\n Ei: [\"exbi\", 60, 1152921504606846976, \"Ei\", \"exa\"],\n Pi: [\"pebi\", 50, 1125899906842624, \"Pi\", \"peta\"],\n Ti: [\"tebi\", 40, 1099511627776, \"Ti\", \"tera\"],\n Gi: [\"gibi\", 30, 1073741824, \"Gi\", \"giga\"],\n Mi: [\"mebi\", 20, 1048576, \"Mi\", \"mega\"],\n ki: [\"kibi\", 10, 1024, \"ki\", \"kilo\"]\n };\n\n // Unit prefixes\n // [Name, Multiplier, Abbreviation]\n var unit_prefixes = {\n Y: [\"yotta\", 1e+24, \"Y\"],\n Z: [\"zetta\", 1e+21, \"Z\"],\n E: [\"exa\", 1e+18, \"E\"],\n P: [\"peta\", 1e+15, \"P\"],\n T: [\"tera\", 1e+12, \"T\"],\n G: [\"giga\", 1e+09, \"G\"],\n M: [\"mega\", 1e+06, \"M\"],\n k: [\"kilo\", 1e+03, \"k\"],\n h: [\"hecto\", 1e+02, \"h\"],\n e: [\"dekao\", 1e+01, \"e\"],\n d: [\"deci\", 1e-01, \"d\"],\n c: [\"centi\", 1e-02, \"c\"],\n m: [\"milli\", 1e-03, \"m\"],\n u: [\"micro\", 1e-06, \"u\"],\n n: [\"nano\", 1e-09, \"n\"],\n p: [\"pico\", 1e-12, \"p\"],\n f: [\"femto\", 1e-15, \"f\"],\n a: [\"atto\", 1e-18, \"a\"],\n z: [\"zepto\", 1e-21, \"z\"],\n y: [\"yocto\", 1e-24, \"y\"]\n };\n\n // Initialize units and multipliers\n var from = null;\n var to = null;\n var base_from_unit = from_unit;\n var base_to_unit = to_unit;\n var from_multiplier = 1;\n var to_multiplier = 1;\n var alt;\n\n // Lookup from and to units\n for (var i = 0; i < units.length; i++) {\n alt = (units[i][2] === null) ? [] : units[i][2];\n if (units[i][1] === base_from_unit || alt.indexOf(base_from_unit) >= 0) {\n from = units[i];\n }\n if (units[i][1] === base_to_unit || alt.indexOf(base_to_unit) >= 0) {\n to = units[i];\n }\n }\n\n // Lookup from prefix\n if (from === null) {\n var from_binary_prefix = binary_prefixes[from_unit.substring(0, 2)];\n var from_unit_prefix = unit_prefixes[from_unit.substring(0, 1)];\n\n // Handle dekao unit prefix (only unit prefix with two characters)\n if (from_unit.substring(0, 2) === 'da') {\n from_unit_prefix = [\"dekao\", 1e+01, \"da\"];\n }\n\n // Handle binary prefixes first (so that 'Yi' is processed before 'Y')\n if (from_binary_prefix) {\n from_multiplier = from_binary_prefix[2];\n base_from_unit = from_unit.substring(2);\n } else if (from_unit_prefix) {\n from_multiplier = from_unit_prefix[1];\n base_from_unit = from_unit.substring(from_unit_prefix[2].length);\n }\n\n // Lookup from unit\n for (var j = 0; j < units.length; j++) {\n alt = (units[j][2] === null) ? [] : units[j][2];\n if (units[j][1] === base_from_unit || alt.indexOf(base_from_unit) >= 0) {\n from = units[j];\n }\n }\n }\n\n // Lookup to prefix\n if (to === null) {\n var to_binary_prefix = binary_prefixes[to_unit.substring(0, 2)];\n var to_unit_prefix = unit_prefixes[to_unit.substring(0, 1)];\n\n // Handle dekao unit prefix (only unit prefix with two characters)\n if (to_unit.substring(0, 2) === 'da') {\n to_unit_prefix = [\"dekao\", 1e+01, \"da\"];\n }\n\n // Handle binary prefixes first (so that 'Yi' is processed before 'Y')\n if (to_binary_prefix) {\n to_multiplier = to_binary_prefix[2];\n base_to_unit = to_unit.substring(2);\n } else if (to_unit_prefix) {\n to_multiplier = to_unit_prefix[1];\n base_to_unit = to_unit.substring(to_unit_prefix[2].length);\n }\n\n // Lookup to unit\n for (var k = 0; k < units.length; k++) {\n alt = (units[k][2] === null) ? [] : units[k][2];\n if (units[k][1] === base_to_unit || alt.indexOf(base_to_unit) >= 0) {\n to = units[k];\n }\n }\n }\n\n // Return error if a unit does not exist\n if (from === null || to === null) {\n return error.na;\n }\n\n // Return error if units represent different quantities\n if (from[3] !== to[3]) {\n return error.na;\n }\n\n // Return converted number\n return number * from[6] * from_multiplier / (to[6] * to_multiplier);\n};\n\nexports.DEC2BIN = function(number, places) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n\n // Return error if number is not decimal, is lower than -512, or is greater than 511\n if (!/^-?[0-9]{1,3}$/.test(number) || number < -512 || number > 511) {\n return error.num;\n }\n\n // Ignore places and return a 10-character binary number if number is negative\n if (number < 0) {\n return '1' + text.REPT('0', 9 - (512 + number).toString(2).length) + (512 + number).toString(2);\n }\n\n // Convert decimal number to binary\n var result = parseInt(number, 10).toString(2);\n\n // Return binary number using the minimum number of characters necessary if places is undefined\n if (typeof places === 'undefined') {\n return result;\n } else {\n // Return error if places is nonnumeric\n if (isNaN(places)) {\n return error.value;\n }\n\n // Return error if places is negative\n if (places < 0) {\n return error.num;\n }\n\n // Truncate places in case it is not an integer\n places = Math.floor(places);\n\n // Pad return value with leading 0s (zeros) if necessary (using Underscore.string)\n return (places >= result.length) ? text.REPT('0', places - result.length) + result : error.num;\n }\n};\n\nexports.DEC2HEX = function(number, places) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n\n // Return error if number is not decimal, is lower than -549755813888, or is greater than 549755813887\n if (!/^-?[0-9]{1,12}$/.test(number) || number < -549755813888 || number > 549755813887) {\n return error.num;\n }\n\n // Ignore places and return a 10-character hexadecimal number if number is negative\n if (number < 0) {\n return (1099511627776 + number).toString(16);\n }\n\n // Convert decimal number to hexadecimal\n var result = parseInt(number, 10).toString(16);\n\n // Return hexadecimal number using the minimum number of characters necessary if places is undefined\n if (typeof places === 'undefined') {\n return result;\n } else {\n // Return error if places is nonnumeric\n if (isNaN(places)) {\n return error.value;\n }\n\n // Return error if places is negative\n if (places < 0) {\n return error.num;\n }\n\n // Truncate places in case it is not an integer\n places = Math.floor(places);\n\n // Pad return value with leading 0s (zeros) if necessary (using Underscore.string)\n return (places >= result.length) ? text.REPT('0', places - result.length) + result : error.num;\n }\n};\n\nexports.DEC2OCT = function(number, places) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n\n // Return error if number is not decimal, is lower than -549755813888, or is greater than 549755813887\n if (!/^-?[0-9]{1,9}$/.test(number) || number < -536870912 || number > 536870911) {\n return error.num;\n }\n\n // Ignore places and return a 10-character octal number if number is negative\n if (number < 0) {\n return (1073741824 + number).toString(8);\n }\n\n // Convert decimal number to octal\n var result = parseInt(number, 10).toString(8);\n\n // Return octal number using the minimum number of characters necessary if places is undefined\n if (typeof places === 'undefined') {\n return result;\n } else {\n // Return error if places is nonnumeric\n if (isNaN(places)) {\n return error.value;\n }\n\n // Return error if places is negative\n if (places < 0) {\n return error.num;\n }\n\n // Truncate places in case it is not an integer\n places = Math.floor(places);\n\n // Pad return value with leading 0s (zeros) if necessary (using Underscore.string)\n return (places >= result.length) ? text.REPT('0', places - result.length) + result : error.num;\n }\n};\n\nexports.DELTA = function(number1, number2) {\n // Set number2 to zero if undefined\n number2 = (number2 === undefined) ? 0 : number2;\n number1 = utils.parseNumber(number1);\n number2 = utils.parseNumber(number2);\n if (utils.anyIsError(number1, number2)) {\n return error.value;\n }\n\n // Return delta\n return (number1 === number2) ? 1 : 0;\n};\n\n// TODO: why is upper_bound not used ? The excel documentation has no examples with upper_bound\nexports.ERF = function(lower_bound, upper_bound) {\n // Set number2 to zero if undefined\n upper_bound = (upper_bound === undefined) ? 0 : upper_bound;\n\n lower_bound = utils.parseNumber(lower_bound);\n upper_bound = utils.parseNumber(upper_bound);\n if (utils.anyIsError(lower_bound, upper_bound)) {\n return error.value;\n }\n\n return jStat.erf(lower_bound);\n};\n\n// TODO\nexports.ERF.PRECISE = function() {\n throw new Error('ERF.PRECISE is not implemented');\n};\n\nexports.ERFC = function(x) {\n // Return error if x is not a number\n if (isNaN(x)) {\n return error.value;\n }\n\n return jStat.erfc(x);\n};\n\n// TODO\nexports.ERFC.PRECISE = function() {\n throw new Error('ERFC.PRECISE is not implemented');\n};\n\nexports.GESTEP = function(number, step) {\n step = step || 0;\n number = utils.parseNumber(number);\n if (utils.anyIsError(step, number)) {\n return number;\n }\n\n // Return delta\n return (number >= step) ? 1 : 0;\n};\n\nexports.HEX2BIN = function(number, places) {\n // Return error if number is not hexadecimal or contains more than ten characters (10 digits)\n if (!/^[0-9A-Fa-f]{1,10}$/.test(number)) {\n return error.num;\n }\n\n // Check if number is negative\n var negative = (number.length === 10 && number.substring(0, 1).toLowerCase() === 'f') ? true : false;\n\n // Convert hexadecimal number to decimal\n var decimal = (negative) ? parseInt(number, 16) - 1099511627776 : parseInt(number, 16);\n\n // Return error if number is lower than -512 or greater than 511\n if (decimal < -512 || decimal > 511) {\n return error.num;\n }\n\n // Ignore places and return a 10-character binary number if number is negative\n if (negative) {\n return '1' + text.REPT('0', 9 - (512 + decimal).toString(2).length) + (512 + decimal).toString(2);\n }\n\n // Convert decimal number to binary\n var result = decimal.toString(2);\n\n // Return binary number using the minimum number of characters necessary if places is undefined\n if (places === undefined) {\n return result;\n } else {\n // Return error if places is nonnumeric\n if (isNaN(places)) {\n return error.value;\n }\n\n // Return error if places is negative\n if (places < 0) {\n return error.num;\n }\n\n // Truncate places in case it is not an integer\n places = Math.floor(places);\n\n // Pad return value with leading 0s (zeros) if necessary (using Underscore.string)\n return (places >= result.length) ? text.REPT('0', places - result.length) + result : error.num;\n }\n};\n\nexports.HEX2DEC = function(number) {\n // Return error if number is not hexadecimal or contains more than ten characters (10 digits)\n if (!/^[0-9A-Fa-f]{1,10}$/.test(number)) {\n return error.num;\n }\n\n // Convert hexadecimal number to decimal\n var decimal = parseInt(number, 16);\n\n // Return decimal number\n return (decimal >= 549755813888) ? decimal - 1099511627776 : decimal;\n};\n\nexports.HEX2OCT = function(number, places) {\n // Return error if number is not hexadecimal or contains more than ten characters (10 digits)\n if (!/^[0-9A-Fa-f]{1,10}$/.test(number)) {\n return error.num;\n }\n\n // Convert hexadecimal number to decimal\n var decimal = parseInt(number, 16);\n\n // Return error if number is positive and greater than 0x1fffffff (536870911)\n if (decimal > 536870911 && decimal < 1098974756864) {\n return error.num;\n }\n\n // Ignore places and return a 10-character octal number if number is negative\n if (decimal >= 1098974756864) {\n return (decimal - 1098437885952).toString(8);\n }\n\n // Convert decimal number to octal\n var result = decimal.toString(8);\n\n // Return octal number using the minimum number of characters necessary if places is undefined\n if (places === undefined) {\n return result;\n } else {\n // Return error if places is nonnumeric\n if (isNaN(places)) {\n return error.value;\n }\n\n // Return error if places is negative\n if (places < 0) {\n return error.num;\n }\n\n // Truncate places in case it is not an integer\n places = Math.floor(places);\n\n // Pad return value with leading 0s (zeros) if necessary (using Underscore.string)\n return (places >= result.length) ? text.REPT('0', places - result.length) + result : error.num;\n }\n};\n\nexports.IMABS = function(inumber) {\n // Lookup real and imaginary coefficients using exports.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n // Return error if either coefficient is not a number\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Return absolute value of complex number\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\n};\n\nexports.IMAGINARY = function(inumber) {\n if (inumber === undefined || inumber === true || inumber === false) {\n return error.value;\n }\n\n // Return 0 if inumber is equal to 0\n if (inumber === 0 || inumber === '0') {\n return 0;\n }\n\n // Handle special cases\n if (['i', 'j'].indexOf(inumber) >= 0) {\n return 1;\n }\n\n // Normalize imaginary coefficient\n inumber = inumber.replace('+i', '+1i').replace('-i', '-1i').replace('+j', '+1j').replace('-j', '-1j');\n\n // Lookup sign\n var plus = inumber.indexOf('+');\n var minus = inumber.indexOf('-');\n if (plus === 0) {\n plus = inumber.indexOf('+', 1);\n }\n\n if (minus === 0) {\n minus = inumber.indexOf('-', 1);\n }\n\n // Lookup imaginary unit\n var last = inumber.substring(inumber.length - 1, inumber.length);\n var unit = (last === 'i' || last === 'j');\n\n if (plus >= 0 || minus >= 0) {\n // Return error if imaginary unit is neither i nor j\n if (!unit) {\n return error.num;\n }\n\n // Return imaginary coefficient of complex number\n if (plus >= 0) {\n return (isNaN(inumber.substring(0, plus)) || isNaN(inumber.substring(plus + 1, inumber.length - 1))) ?\n error.num :\n Number(inumber.substring(plus + 1, inumber.length - 1));\n } else {\n return (isNaN(inumber.substring(0, minus)) || isNaN(inumber.substring(minus + 1, inumber.length - 1))) ?\n error.num :\n -Number(inumber.substring(minus + 1, inumber.length - 1));\n }\n } else {\n if (unit) {\n return (isNaN(inumber.substring(0, inumber.length - 1))) ? error.num : inumber.substring(0, inumber.length - 1);\n } else {\n return (isNaN(inumber)) ? error.num : 0;\n }\n }\n};\n\nexports.IMARGUMENT = function(inumber) {\n // Lookup real and imaginary coefficients using exports.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n // Return error if either coefficient is not a number\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Return error if inumber is equal to zero\n if (x === 0 && y === 0) {\n return error.div0;\n }\n\n // Return PI/2 if x is equal to zero and y is positive\n if (x === 0 && y > 0) {\n return Math.PI / 2;\n }\n\n // Return -PI/2 if x is equal to zero and y is negative\n if (x === 0 && y < 0) {\n return -Math.PI / 2;\n }\n\n // Return zero if x is negative and y is equal to zero\n if (y === 0 && x > 0) {\n return 0;\n }\n\n // Return zero if x is negative and y is equal to zero\n if (y === 0 && x < 0) {\n return -Math.PI;\n }\n\n // Return argument of complex number\n if (x > 0) {\n return Math.atan(y / x);\n } else if (x < 0 && y >= 0) {\n return Math.atan(y / x) + Math.PI;\n } else {\n return Math.atan(y / x) - Math.PI;\n }\n};\n\nexports.IMCONJUGATE = function(inumber) {\n // Lookup real and imaginary coefficients using exports.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit = inumber.substring(inumber.length - 1);\n unit = (unit === 'i' || unit === 'j') ? unit : 'i';\n\n // Return conjugate of complex number\n return (y !== 0) ? exports.COMPLEX(x, -y, unit) : inumber;\n};\n\nexports.IMCOS = function(inumber) {\n // Lookup real and imaginary coefficients using exports.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit = inumber.substring(inumber.length - 1);\n unit = (unit === 'i' || unit === 'j') ? unit : 'i';\n\n // Return cosine of complex number\n return exports.COMPLEX(Math.cos(x) * (Math.exp(y) + Math.exp(-y)) / 2, -Math.sin(x) * (Math.exp(y) - Math.exp(-y)) / 2, unit);\n};\n\nexports.IMCOSH = function(inumber) {\n // Lookup real and imaginary coefficients using exports.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit = inumber.substring(inumber.length - 1);\n unit = (unit === 'i' || unit === 'j') ? unit : 'i';\n\n // Return hyperbolic cosine of complex number\n return exports.COMPLEX(Math.cos(y) * (Math.exp(x) + Math.exp(-x)) / 2, Math.sin(y) * (Math.exp(x) - Math.exp(-x)) / 2, unit);\n};\n\nexports.IMCOT = function(inumber) {\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Return cotangent of complex number\n return exports.IMDIV(exports.IMCOS(inumber), exports.IMSIN(inumber));\n};\n\nexports.IMDIV = function(inumber1, inumber2) {\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var a = exports.IMREAL(inumber1);\n var b = exports.IMAGINARY(inumber1);\n var c = exports.IMREAL(inumber2);\n var d = exports.IMAGINARY(inumber2);\n\n if (utils.anyIsError(a, b, c, d)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit1 = inumber1.substring(inumber1.length - 1);\n var unit2 = inumber2.substring(inumber2.length - 1);\n var unit = 'i';\n if (unit1 === 'j') {\n unit = 'j';\n } else if (unit2 === 'j') {\n unit = 'j';\n }\n\n // Return error if inumber2 is null\n if (c === 0 && d === 0) {\n return error.num;\n }\n\n // Return exponential of complex number\n var den = c * c + d * d;\n return exports.COMPLEX((a * c + b * d) / den, (b * c - a * d) / den, unit);\n};\n\nexports.IMEXP = function(inumber) {\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit = inumber.substring(inumber.length - 1);\n unit = (unit === 'i' || unit === 'j') ? unit : 'i';\n\n // Return exponential of complex number\n var e = Math.exp(x);\n return exports.COMPLEX(e * Math.cos(y), e * Math.sin(y), unit);\n};\n\nexports.IMLN = function(inumber) {\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit = inumber.substring(inumber.length - 1);\n unit = (unit === 'i' || unit === 'j') ? unit : 'i';\n\n // Return exponential of complex number\n return exports.COMPLEX(Math.log(Math.sqrt(x * x + y * y)), Math.atan(y / x), unit);\n};\n\nexports.IMLOG10 = function(inumber) {\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit = inumber.substring(inumber.length - 1);\n unit = (unit === 'i' || unit === 'j') ? unit : 'i';\n\n // Return exponential of complex number\n return exports.COMPLEX(Math.log(Math.sqrt(x * x + y * y)) / Math.log(10), Math.atan(y / x) / Math.log(10), unit);\n};\n\nexports.IMLOG2 = function(inumber) {\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit = inumber.substring(inumber.length - 1);\n unit = (unit === 'i' || unit === 'j') ? unit : 'i';\n\n // Return exponential of complex number\n return exports.COMPLEX(Math.log(Math.sqrt(x * x + y * y)) / Math.log(2), Math.atan(y / x) / Math.log(2), unit);\n};\n\nexports.IMPOWER = function(inumber, number) {\n number = utils.parseNumber(number);\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n if (utils.anyIsError(number, x, y)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit = inumber.substring(inumber.length - 1);\n unit = (unit === 'i' || unit === 'j') ? unit : 'i';\n\n // Calculate power of modulus\n var p = Math.pow(exports.IMABS(inumber), number);\n\n // Calculate argument\n var t = exports.IMARGUMENT(inumber);\n\n // Return exponential of complex number\n return exports.COMPLEX(p * Math.cos(number * t), p * Math.sin(number * t), unit);\n};\n\nexports.IMPRODUCT = function() {\n // Initialize result\n var result = arguments[0];\n\n if (!arguments.length) {\n return error.value;\n }\n\n // Loop on all numbers\n for (var i = 1; i < arguments.length; i++) {\n // Lookup coefficients of two complex numbers\n var a = exports.IMREAL(result);\n var b = exports.IMAGINARY(result);\n var c = exports.IMREAL(arguments[i]);\n var d = exports.IMAGINARY(arguments[i]);\n\n if (utils.anyIsError(a, b, c, d)) {\n return error.value;\n }\n\n // Complute product of two complex numbers\n result = exports.COMPLEX(a * c - b * d, a * d + b * c);\n }\n\n // Return product of complex numbers\n return result;\n};\n\nexports.IMREAL = function(inumber) {\n if (inumber === undefined || inumber === true || inumber === false) {\n return error.value;\n }\n\n // Return 0 if inumber is equal to 0\n if (inumber === 0 || inumber === '0') {\n return 0;\n }\n\n // Handle special cases\n if (['i', '+i', '1i', '+1i', '-i', '-1i', 'j', '+j', '1j', '+1j', '-j', '-1j'].indexOf(inumber) >= 0) {\n return 0;\n }\n\n // Lookup sign\n var plus = inumber.indexOf('+');\n var minus = inumber.indexOf('-');\n if (plus === 0) {\n plus = inumber.indexOf('+', 1);\n }\n if (minus === 0) {\n minus = inumber.indexOf('-', 1);\n }\n\n // Lookup imaginary unit\n var last = inumber.substring(inumber.length - 1, inumber.length);\n var unit = (last === 'i' || last === 'j');\n\n if (plus >= 0 || minus >= 0) {\n // Return error if imaginary unit is neither i nor j\n if (!unit) {\n return error.num;\n }\n\n // Return real coefficient of complex number\n if (plus >= 0) {\n return (isNaN(inumber.substring(0, plus)) || isNaN(inumber.substring(plus + 1, inumber.length - 1))) ?\n error.num :\n Number(inumber.substring(0, plus));\n } else {\n return (isNaN(inumber.substring(0, minus)) || isNaN(inumber.substring(minus + 1, inumber.length - 1))) ?\n error.num :\n Number(inumber.substring(0, minus));\n }\n } else {\n if (unit) {\n return (isNaN(inumber.substring(0, inumber.length - 1))) ? error.num : 0;\n } else {\n return (isNaN(inumber)) ? error.num : inumber;\n }\n }\n};\n\nexports.IMSEC = function(inumber) {\n // Return error if inumber is a logical value\n if (inumber === true || inumber === false) {\n return error.value;\n }\n\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Return secant of complex number\n return exports.IMDIV('1', exports.IMCOS(inumber));\n};\n\nexports.IMSECH = function(inumber) {\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Return hyperbolic secant of complex number\n return exports.IMDIV('1', exports.IMCOSH(inumber));\n};\n\nexports.IMSIN = function(inumber) {\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit = inumber.substring(inumber.length - 1);\n unit = (unit === 'i' || unit === 'j') ? unit : 'i';\n\n // Return sine of complex number\n return exports.COMPLEX(Math.sin(x) * (Math.exp(y) + Math.exp(-y)) / 2, Math.cos(x) * (Math.exp(y) - Math.exp(-y)) / 2, unit);\n};\n\nexports.IMSINH = function(inumber) {\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit = inumber.substring(inumber.length - 1);\n unit = (unit === 'i' || unit === 'j') ? unit : 'i';\n\n // Return hyperbolic sine of complex number\n return exports.COMPLEX(Math.cos(y) * (Math.exp(x) - Math.exp(-x)) / 2, Math.sin(y) * (Math.exp(x) + Math.exp(-x)) / 2, unit);\n};\n\nexports.IMSQRT = function(inumber) {\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit = inumber.substring(inumber.length - 1);\n unit = (unit === 'i' || unit === 'j') ? unit : 'i';\n\n // Calculate power of modulus\n var s = Math.sqrt(exports.IMABS(inumber));\n\n // Calculate argument\n var t = exports.IMARGUMENT(inumber);\n\n // Return exponential of complex number\n return exports.COMPLEX(s * Math.cos(t / 2), s * Math.sin(t / 2), unit);\n};\n\nexports.IMCSC = function (inumber) {\n // Return error if inumber is a logical value\n if (inumber === true || inumber === false) {\n return error.value;\n }\n\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n // Return error if either coefficient is not a number\n if (utils.anyIsError(x, y)) {\n return error.num;\n }\n\n // Return cosecant of complex number\n return exports.IMDIV('1', exports.IMSIN(inumber));\n};\n\nexports.IMCSCH = function (inumber) {\n // Return error if inumber is a logical value\n if (inumber === true || inumber === false) {\n return error.value;\n }\n\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n // Return error if either coefficient is not a number\n if (utils.anyIsError(x, y)) {\n return error.num;\n }\n\n // Return hyperbolic cosecant of complex number\n return exports.IMDIV('1', exports.IMSINH(inumber));\n};\n\nexports.IMSUB = function(inumber1, inumber2) {\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var a = this.IMREAL(inumber1);\n var b = this.IMAGINARY(inumber1);\n var c = this.IMREAL(inumber2);\n var d = this.IMAGINARY(inumber2);\n\n if (utils.anyIsError(a, b, c, d)) {\n return error.value;\n }\n\n // Lookup imaginary unit\n var unit1 = inumber1.substring(inumber1.length - 1);\n var unit2 = inumber2.substring(inumber2.length - 1);\n var unit = 'i';\n if (unit1 === 'j') {\n unit = 'j';\n } else if (unit2 === 'j') {\n unit = 'j';\n }\n\n // Return _ of two complex numbers\n return this.COMPLEX(a - c, b - d, unit);\n};\n\nexports.IMSUM = function() {\n if (!arguments.length) {\n return error.value;\n }\n var args = utils.flatten(arguments);\n\n // Initialize result\n var result = args[0];\n\n // Loop on all numbers\n for (var i = 1; i < args.length; i++) {\n // Lookup coefficients of two complex numbers\n var a = this.IMREAL(result);\n var b = this.IMAGINARY(result);\n var c = this.IMREAL(args[i]);\n var d = this.IMAGINARY(args[i]);\n\n if (utils.anyIsError(a, b, c, d)) {\n return error.value;\n }\n\n // Complute product of two complex numbers\n result = this.COMPLEX(a + c, b + d);\n }\n\n // Return sum of complex numbers\n return result;\n};\n\nexports.IMTAN = function(inumber) {\n // Return error if inumber is a logical value\n if (inumber === true || inumber === false) {\n return error.value;\n }\n\n // Lookup real and imaginary coefficients using Formula.js [http://formulajs.org]\n var x = exports.IMREAL(inumber);\n var y = exports.IMAGINARY(inumber);\n\n if (utils.anyIsError(x, y)) {\n return error.value;\n }\n\n // Return tangent of complex number\n return this.IMDIV(this.IMSIN(inumber), this.IMCOS(inumber));\n};\n\nexports.OCT2BIN = function(number, places) {\n // Return error if number is not hexadecimal or contains more than ten characters (10 digits)\n if (!/^[0-7]{1,10}$/.test(number)) {\n return error.num;\n }\n\n // Check if number is negative\n var negative = (number.length === 10 && number.substring(0, 1) === '7') ? true : false;\n\n // Convert octal number to decimal\n var decimal = (negative) ? parseInt(number, 8) - 1073741824 : parseInt(number, 8);\n\n // Return error if number is lower than -512 or greater than 511\n if (decimal < -512 || decimal > 511) {\n return error.num;\n }\n\n // Ignore places and return a 10-character binary number if number is negative\n if (negative) {\n return '1' + text.REPT('0', 9 - (512 + decimal).toString(2).length) + (512 + decimal).toString(2);\n }\n\n // Convert decimal number to binary\n var result = decimal.toString(2);\n\n // Return binary number using the minimum number of characters necessary if places is undefined\n if (typeof places === 'undefined') {\n return result;\n } else {\n // Return error if places is nonnumeric\n if (isNaN(places)) {\n return error.value;\n }\n\n // Return error if places is negative\n if (places < 0) {\n return error.num;\n }\n\n // Truncate places in case it is not an integer\n places = Math.floor(places);\n\n // Pad return value with leading 0s (zeros) if necessary (using Underscore.string)\n return (places >= result.length) ? text.REPT('0', places - result.length) + result : error.num;\n }\n};\n\nexports.OCT2DEC = function(number) {\n // Return error if number is not octal or contains more than ten characters (10 digits)\n if (!/^[0-7]{1,10}$/.test(number)) {\n return error.num;\n }\n\n // Convert octal number to decimal\n var decimal = parseInt(number, 8);\n\n // Return decimal number\n return (decimal >= 536870912) ? decimal - 1073741824 : decimal;\n};\n\nexports.OCT2HEX = function(number, places) {\n // Return error if number is not octal or contains more than ten characters (10 digits)\n if (!/^[0-7]{1,10}$/.test(number)) {\n return error.num;\n }\n\n // Convert octal number to decimal\n var decimal = parseInt(number, 8);\n\n // Ignore places and return a 10-character octal number if number is negative\n if (decimal >= 536870912) {\n return 'ff' + (decimal + 3221225472).toString(16);\n }\n\n // Convert decimal number to hexadecimal\n var result = decimal.toString(16);\n\n // Return hexadecimal number using the minimum number of characters necessary if places is undefined\n if (places === undefined) {\n return result;\n } else {\n // Return error if places is nonnumeric\n if (isNaN(places)) {\n return error.value;\n }\n\n // Return error if places is negative\n if (places < 0) {\n return error.num;\n }\n\n // Truncate places in case it is not an integer\n places = Math.floor(places);\n\n // Pad return value with leading 0s (zeros) if necessary (using Underscore.string)\n return (places >= result.length) ? text.REPT('0', places - result.length) + result : error.num;\n }\n};\n","var error = require('./utils/error');\nvar dateTime = require('./date-time');\nvar utils = require('./utils/common');\n\nfunction validDate(d) {\n return d && d.getTime && !isNaN(d.getTime());\n}\n\nfunction ensureDate(d) {\n return (d instanceof Date)?d:new Date(d);\n}\n\nexports.ACCRINT = function(issue, first, settlement, rate, par, frequency, basis) {\n // Return error if either date is invalid\n issue = ensureDate(issue);\n first = ensureDate(first);\n settlement = ensureDate(settlement);\n if (!validDate(issue) || !validDate(first) || !validDate(settlement)) {\n return error.value;\n }\n\n // Return error if either rate or par are lower than or equal to zero\n if (rate <= 0 || par <= 0) {\n return error.num;\n }\n\n // Return error if frequency is neither 1, 2, or 4\n if ([1, 2, 4].indexOf(frequency) === -1) {\n return error.num;\n }\n\n // Return error if basis is neither 0, 1, 2, 3, or 4\n if ([0, 1, 2, 3, 4].indexOf(basis) === -1) {\n return error.num;\n }\n\n // Return error if settlement is before or equal to issue\n if (settlement <= issue) {\n return error.num;\n }\n\n // Set default values\n par = par || 0;\n basis = basis || 0;\n\n // Compute accrued interest\n return par * rate * dateTime.YEARFRAC(issue, settlement, basis);\n};\n\n// TODO\nexports.ACCRINTM = function() {\n throw new Error('ACCRINTM is not implemented');\n};\n\n// TODO\nexports.AMORDEGRC = function() {\n throw new Error('AMORDEGRC is not implemented');\n};\n\n// TODO\nexports.AMORLINC = function() {\n throw new Error('AMORLINC is not implemented');\n};\n\n// TODO\nexports.COUPDAYBS = function() {\n throw new Error('COUPDAYBS is not implemented');\n};\n\n// TODO\nexports.COUPDAYS = function() {\n throw new Error('COUPDAYS is not implemented');\n};\n\n// TODO\nexports.COUPDAYSNC = function() {\n throw new Error('COUPDAYSNC is not implemented');\n};\n\n// TODO\nexports.COUPNCD = function() {\n throw new Error('COUPNCD is not implemented');\n};\n\n// TODO\nexports.COUPNUM = function() {\n throw new Error('COUPNUM is not implemented');\n};\n\n// TODO\nexports.COUPPCD = function() {\n throw new Error('COUPPCD is not implemented');\n};\n\nexports.CUMIPMT = function(rate, periods, value, start, end, type) {\n // Credits: algorithm inspired by Apache OpenOffice\n // Credits: Hannes Stiebitzhofer for the translations of function and variable names\n // Requires exports.FV() and exports.PMT() from exports.js [http://stoic.com/exports/]\n\n rate = utils.parseNumber(rate);\n periods = utils.parseNumber(periods);\n value = utils.parseNumber(value);\n if (utils.anyIsError(rate, periods, value)) {\n return error.value;\n }\n\n // Return error if either rate, periods, or value are lower than or equal to zero\n if (rate <= 0 || periods <= 0 || value <= 0) {\n return error.num;\n }\n\n // Return error if start < 1, end < 1, or start > end\n if (start < 1 || end < 1 || start > end) {\n return error.num;\n }\n\n // Return error if type is neither 0 nor 1\n if (type !== 0 && type !== 1) {\n return error.num;\n }\n\n // Compute cumulative interest\n var payment = exports.PMT(rate, periods, value, 0, type);\n var interest = 0;\n\n if (start === 1) {\n if (type === 0) {\n interest = -value;\n start++;\n }\n }\n\n for (var i = start; i <= end; i++) {\n if (type === 1) {\n interest += exports.FV(rate, i - 2, payment, value, 1) - payment;\n } else {\n interest += exports.FV(rate, i - 1, payment, value, 0);\n }\n }\n interest *= rate;\n\n // Return cumulative interest\n return interest;\n};\n\nexports.CUMPRINC = function(rate, periods, value, start, end, type) {\n // Credits: algorithm inspired by Apache OpenOffice\n // Credits: Hannes Stiebitzhofer for the translations of function and variable names\n\n rate = utils.parseNumber(rate);\n periods = utils.parseNumber(periods);\n value = utils.parseNumber(value);\n if (utils.anyIsError(rate, periods, value)) {\n return error.value;\n }\n\n // Return error if either rate, periods, or value are lower than or equal to zero\n if (rate <= 0 || periods <= 0 || value <= 0) {\n return error.num;\n }\n\n // Return error if start < 1, end < 1, or start > end\n if (start < 1 || end < 1 || start > end) {\n return error.num;\n }\n\n // Return error if type is neither 0 nor 1\n if (type !== 0 && type !== 1) {\n return error.num;\n }\n\n // Compute cumulative principal\n var payment = exports.PMT(rate, periods, value, 0, type);\n var principal = 0;\n if (start === 1) {\n if (type === 0) {\n principal = payment + value * rate;\n } else {\n principal = payment;\n }\n start++;\n }\n for (var i = start; i <= end; i++) {\n if (type > 0) {\n principal += payment - (exports.FV(rate, i - 2, payment, value, 1) - payment) * rate;\n } else {\n principal += payment - exports.FV(rate, i - 1, payment, value, 0) * rate;\n }\n }\n\n // Return cumulative principal\n return principal;\n};\n\nexports.DB = function(cost, salvage, life, period, month) {\n // Initialize month\n month = (month === undefined) ? 12 : month;\n\n cost = utils.parseNumber(cost);\n salvage = utils.parseNumber(salvage);\n life = utils.parseNumber(life);\n period = utils.parseNumber(period);\n month = utils.parseNumber(month);\n if (utils.anyIsError(cost, salvage, life, period, month)) {\n return error.value;\n }\n\n // Return error if any of the parameters is negative\n if (cost < 0 || salvage < 0 || life < 0 || period < 0) {\n return error.num;\n }\n\n // Return error if month is not an integer between 1 and 12\n if ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].indexOf(month) === -1) {\n return error.num;\n }\n\n // Return error if period is greater than life\n if (period > life) {\n return error.num;\n }\n\n // Return 0 (zero) if salvage is greater than or equal to cost\n if (salvage >= cost) {\n return 0;\n }\n\n // Rate is rounded to three decimals places\n var rate = (1 - Math.pow(salvage / cost, 1 / life)).toFixed(3);\n\n // Compute initial depreciation\n var initial = cost * rate * month / 12;\n\n // Compute total depreciation\n var total = initial;\n var current = 0;\n var ceiling = (period === life) ? life - 1 : period;\n for (var i = 2; i <= ceiling; i++) {\n current = (cost - total) * rate;\n total += current;\n }\n\n // Depreciation for the first and last periods are special cases\n if (period === 1) {\n // First period\n return initial;\n } else if (period === life) {\n // Last period\n return (cost - total) * rate;\n } else {\n return current;\n }\n};\n\nexports.DDB = function(cost, salvage, life, period, factor) {\n // Initialize factor\n factor = (factor === undefined) ? 2 : factor;\n\n cost = utils.parseNumber(cost);\n salvage = utils.parseNumber(salvage);\n life = utils.parseNumber(life);\n period = utils.parseNumber(period);\n factor = utils.parseNumber(factor);\n if (utils.anyIsError(cost, salvage, life, period, factor)) {\n return error.value;\n }\n\n // Return error if any of the parameters is negative or if factor is null\n if (cost < 0 || salvage < 0 || life < 0 || period < 0 || factor <= 0) {\n return error.num;\n }\n\n // Return error if period is greater than life\n if (period > life) {\n return error.num;\n }\n\n // Return 0 (zero) if salvage is greater than or equal to cost\n if (salvage >= cost) {\n return 0;\n }\n\n // Compute depreciation\n var total = 0;\n var current = 0;\n for (var i = 1; i <= period; i++) {\n current = Math.min((cost - total) * (factor / life), (cost - salvage - total));\n total += current;\n }\n\n // Return depreciation\n return current;\n};\n\n// TODO\nexports.DISC = function() {\n throw new Error('DISC is not implemented');\n};\n\nexports.DOLLARDE = function(dollar, fraction) {\n // Credits: algorithm inspired by Apache OpenOffice\n\n dollar = utils.parseNumber(dollar);\n fraction = utils.parseNumber(fraction);\n if (utils.anyIsError(dollar, fraction)) {\n return error.value;\n }\n\n // Return error if fraction is negative\n if (fraction < 0) {\n return error.num;\n }\n\n // Return error if fraction is greater than or equal to 0 and less than 1\n if (fraction >= 0 && fraction < 1) {\n return error.div0;\n }\n\n // Truncate fraction if it is not an integer\n fraction = parseInt(fraction, 10);\n\n // Compute integer part\n var result = parseInt(dollar, 10);\n\n // Add decimal part\n result += (dollar % 1) * Math.pow(10, Math.ceil(Math.log(fraction) / Math.LN10)) / fraction;\n\n // Round result\n var power = Math.pow(10, Math.ceil(Math.log(fraction) / Math.LN2) + 1);\n result = Math.round(result * power) / power;\n\n // Return converted dollar price\n return result;\n};\n\nexports.DOLLARFR = function(dollar, fraction) {\n // Credits: algorithm inspired by Apache OpenOffice\n\n dollar = utils.parseNumber(dollar);\n fraction = utils.parseNumber(fraction);\n if (utils.anyIsError(dollar, fraction)) {\n return error.value;\n }\n\n // Return error if fraction is negative\n if (fraction < 0) {\n return error.num;\n }\n\n // Return error if fraction is greater than or equal to 0 and less than 1\n if (fraction >= 0 && fraction < 1) {\n return error.div0;\n }\n\n // Truncate fraction if it is not an integer\n fraction = parseInt(fraction, 10);\n\n // Compute integer part\n var result = parseInt(dollar, 10);\n\n // Add decimal part\n result += (dollar % 1) * Math.pow(10, -Math.ceil(Math.log(fraction) / Math.LN10)) * fraction;\n\n // Return converted dollar price\n return result;\n};\n\n// TODO\nexports.DURATION = function() {\n throw new Error('DURATION is not implemented');\n};\n\nexports.EFFECT = function(rate, periods) {\n rate = utils.parseNumber(rate);\n periods = utils.parseNumber(periods);\n if (utils.anyIsError(rate, periods)) {\n return error.value;\n }\n\n // Return error if rate <=0 or periods < 1\n if (rate <= 0 || periods < 1) {\n return error.num;\n }\n\n // Truncate periods if it is not an integer\n periods = parseInt(periods, 10);\n\n // Return effective annual interest rate\n return Math.pow(1 + rate / periods, periods) - 1;\n};\n\nexports.FV = function(rate, periods, payment, value, type) {\n // Credits: algorithm inspired by Apache OpenOffice\n\n value = value || 0;\n type = type || 0;\n\n rate = utils.parseNumber(rate);\n periods = utils.parseNumber(periods);\n payment = utils.parseNumber(payment);\n value = utils.parseNumber(value);\n type = utils.parseNumber(type);\n if (utils.anyIsError(rate, periods, payment, value, type)) {\n return error.value;\n }\n\n // Return future value\n var result;\n if (rate === 0) {\n result = value + payment * periods;\n } else {\n var term = Math.pow(1 + rate, periods);\n if (type === 1) {\n result = value * term + payment * (1 + rate) * (term - 1) / rate;\n } else {\n result = value * term + payment * (term - 1) / rate;\n }\n }\n return -result;\n};\n\nexports.FVSCHEDULE = function(principal, schedule) {\n principal = utils.parseNumber(principal);\n schedule = utils.parseNumberArray(utils.flatten(schedule));\n if (utils.anyIsError(principal, schedule)) {\n return error.value;\n }\n\n var n = schedule.length;\n var future = principal;\n\n // Apply all interests in schedule\n for (var i = 0; i < n; i++) {\n // Apply scheduled interest\n future *= 1 + schedule[i];\n }\n\n // Return future value\n return future;\n};\n\n// TODO\nexports.INTRATE = function() {\n throw new Error('INTRATE is not implemented');\n};\n\nexports.IPMT = function(rate, period, periods, present, future, type) {\n // Credits: algorithm inspired by Apache OpenOffice\n\n future = future || 0;\n type = type || 0;\n\n rate = utils.parseNumber(rate);\n period = utils.parseNumber(period);\n periods = utils.parseNumber(periods);\n present = utils.parseNumber(present);\n future = utils.parseNumber(future);\n type = utils.parseNumber(type);\n if (utils.anyIsError(rate, period, periods, present, future, type)) {\n return error.value;\n }\n\n // Compute payment\n var payment = exports.PMT(rate, periods, present, future, type);\n\n // Compute interest\n var interest;\n if (period === 1) {\n if (type === 1) {\n interest = 0;\n } else {\n interest = -present;\n }\n } else {\n if (type === 1) {\n interest = exports.FV(rate, period - 2, payment, present, 1) - payment;\n } else {\n interest = exports.FV(rate, period - 1, payment, present, 0);\n }\n }\n\n // Return interest\n return interest * rate;\n};\n\nexports.IRR = function(values, guess) {\n // Credits: algorithm inspired by Apache OpenOffice\n\n guess = guess || 0;\n\n values = utils.parseNumberArray(utils.flatten(values));\n guess = utils.parseNumber(guess);\n if (utils.anyIsError(values, guess)) {\n return error.value;\n }\n\n // Calculates the resulting amount\n var irrResult = function(values, dates, rate) {\n var r = rate + 1;\n var result = values[0];\n for (var i = 1; i < values.length; i++) {\n result += values[i] / Math.pow(r, (dates[i] - dates[0]) / 365);\n }\n return result;\n };\n\n // Calculates the first derivation\n var irrResultDeriv = function(values, dates, rate) {\n var r = rate + 1;\n var result = 0;\n for (var i = 1; i < values.length; i++) {\n var frac = (dates[i] - dates[0]) / 365;\n result -= frac * values[i] / Math.pow(r, frac + 1);\n }\n return result;\n };\n\n // Initialize dates and check that values contains at least one positive value and one negative value\n var dates = [];\n var positive = false;\n var negative = false;\n for (var i = 0; i < values.length; i++) {\n dates[i] = (i === 0) ? 0 : dates[i - 1] + 365;\n if (values[i] > 0) {\n positive = true;\n }\n if (values[i] < 0) {\n negative = true;\n }\n }\n\n // Return error if values does not contain at least one positive value and one negative value\n if (!positive || !negative) {\n return error.num;\n }\n\n // Initialize guess and resultRate\n guess = (guess === undefined) ? 0.1 : guess;\n var resultRate = guess;\n\n // Set maximum epsilon for end of iteration\n var epsMax = 1e-10;\n\n // Implement Newton's method\n var newRate, epsRate, resultValue;\n var contLoop = true;\n do {\n resultValue = irrResult(values, dates, resultRate);\n newRate = resultRate - resultValue / irrResultDeriv(values, dates, resultRate);\n epsRate = Math.abs(newRate - resultRate);\n resultRate = newRate;\n contLoop = (epsRate > epsMax) && (Math.abs(resultValue) > epsMax);\n } while (contLoop);\n\n // Return internal rate of return\n return resultRate;\n};\n\nexports.ISPMT = function(rate, period, periods, value) {\n rate = utils.parseNumber(rate);\n period = utils.parseNumber(period);\n periods = utils.parseNumber(periods);\n value = utils.parseNumber(value);\n if (utils.anyIsError(rate, period, periods, value)) {\n return error.value;\n }\n\n // Return interest\n return value * rate * (period / periods - 1);\n};\n\n// TODO\nexports.MDURATION = function() {\n throw new Error('MDURATION is not implemented');\n};\n\nexports.MIRR = function(values, finance_rate, reinvest_rate) {\n values = utils.parseNumberArray(utils.flatten(values));\n finance_rate = utils.parseNumber(finance_rate);\n reinvest_rate = utils.parseNumber(reinvest_rate);\n if (utils.anyIsError(values, finance_rate, reinvest_rate)) {\n return error.value;\n }\n\n // Initialize number of values\n var n = values.length;\n\n // Lookup payments (negative values) and incomes (positive values)\n var payments = [];\n var incomes = [];\n for (var i = 0; i < n; i++) {\n if (values[i] < 0) {\n payments.push(values[i]);\n } else {\n incomes.push(values[i]);\n }\n }\n\n // Return modified internal rate of return\n var num = -exports.NPV(reinvest_rate, incomes) * Math.pow(1 + reinvest_rate, n - 1);\n var den = exports.NPV(finance_rate, payments) * (1 + finance_rate);\n return Math.pow(num / den, 1 / (n - 1)) - 1;\n};\n\nexports.NOMINAL = function(rate, periods) {\n rate = utils.parseNumber(rate);\n periods = utils.parseNumber(periods);\n if (utils.anyIsError(rate, periods)) {\n return error.value;\n }\n\n // Return error if rate <=0 or periods < 1\n if (rate <= 0 || periods < 1) {\n return error.num;\n }\n\n // Truncate periods if it is not an integer\n periods = parseInt(periods, 10);\n\n // Return nominal annual interest rate\n return (Math.pow(rate + 1, 1 / periods) - 1) * periods;\n};\n\nexports.NPER = function(rate, payment, present, future, type) {\n type = (type === undefined) ? 0 : type;\n future = (future === undefined) ? 0 : future;\n\n rate = utils.parseNumber(rate);\n payment = utils.parseNumber(payment);\n present = utils.parseNumber(present);\n future = utils.parseNumber(future);\n type = utils.parseNumber(type);\n if (utils.anyIsError(rate, payment, present, future, type)) {\n return error.value;\n }\n\n // Return number of periods\n var num = payment * (1 + rate * type) - future * rate;\n var den = (present * rate + payment * (1 + rate * type));\n return Math.log(num / den) / Math.log(1 + rate);\n};\n\nexports.NPV = function() {\n var args = utils.parseNumberArray(utils.flatten(arguments));\n if (args instanceof Error) {\n return args;\n }\n\n // Lookup rate\n var rate = args[0];\n\n // Initialize net present value\n var value = 0;\n\n // Loop on all values\n for (var j = 1; j < args.length; j++) {\n value += args[j] / Math.pow(1 + rate, j);\n }\n\n // Return net present value\n return value;\n};\n\n// TODO\nexports.ODDFPRICE = function() {\n throw new Error('ODDFPRICE is not implemented');\n};\n\n// TODO\nexports.ODDFYIELD = function() {\n throw new Error('ODDFYIELD is not implemented');\n};\n\n// TODO\nexports.ODDLPRICE = function() {\n throw new Error('ODDLPRICE is not implemented');\n};\n\n// TODO\nexports.ODDLYIELD = function() {\n throw new Error('ODDLYIELD is not implemented');\n};\n\nexports.PDURATION = function(rate, present, future) {\n rate = utils.parseNumber(rate);\n present = utils.parseNumber(present);\n future = utils.parseNumber(future);\n if (utils.anyIsError(rate, present, future)) {\n return error.value;\n }\n\n // Return error if rate <=0\n if (rate <= 0) {\n return error.num;\n }\n\n // Return number of periods\n return (Math.log(future) - Math.log(present)) / Math.log(1 + rate);\n};\n\nexports.PMT = function(rate, periods, present, future, type) {\n // Credits: algorithm inspired by Apache OpenOffice\n\n future = future || 0;\n type = type || 0;\n\n rate = utils.parseNumber(rate);\n periods = utils.parseNumber(periods);\n present = utils.parseNumber(present);\n future = utils.parseNumber(future);\n type = utils.parseNumber(type);\n if (utils.anyIsError(rate, periods, present, future, type)) {\n return error.value;\n }\n\n // Return payment\n var result;\n if (rate === 0) {\n result = (present + future) / periods;\n } else {\n var term = Math.pow(1 + rate, periods);\n if (type === 1) {\n result = (future * rate / (term - 1) + present * rate / (1 - 1 / term)) / (1 + rate);\n } else {\n result = future * rate / (term - 1) + present * rate / (1 - 1 / term);\n }\n }\n return -result;\n};\n\nexports.PPMT = function(rate, period, periods, present, future, type) {\n future = future || 0;\n type = type || 0;\n\n rate = utils.parseNumber(rate);\n periods = utils.parseNumber(periods);\n present = utils.parseNumber(present);\n future = utils.parseNumber(future);\n type = utils.parseNumber(type);\n if (utils.anyIsError(rate, periods, present, future, type)) {\n return error.value;\n }\n\n return exports.PMT(rate, periods, present, future, type) - exports.IPMT(rate, period, periods, present, future, type);\n};\n\n// TODO\nexports.PRICE = function() {\n throw new Error('PRICE is not implemented');\n};\n\n// TODO\nexports.PRICEDISC = function() {\n throw new Error('PRICEDISC is not implemented');\n};\n\n// TODO\nexports.PRICEMAT = function() {\n throw new Error('PRICEMAT is not implemented');\n};\n\nexports.PV = function(rate, periods, payment, future, type) {\n future = future || 0;\n type = type || 0;\n\n rate = utils.parseNumber(rate);\n periods = utils.parseNumber(periods);\n payment = utils.parseNumber(payment);\n future = utils.parseNumber(future);\n type = utils.parseNumber(type);\n if (utils.anyIsError(rate, periods, payment, future, type)) {\n return error.value;\n }\n\n // Return present value\n if (rate === 0) {\n return -payment * periods - future;\n } else {\n return (((1 - Math.pow(1 + rate, periods)) / rate) * payment * (1 + rate * type) - future) / Math.pow(1 + rate, periods);\n }\n};\n\nexports.RATE = function(periods, payment, present, future, type, guess) {\n // Credits: rabugento\n\n guess = (guess === undefined) ? 0.01 : guess;\n future = (future === undefined) ? 0 : future;\n type = (type === undefined) ? 0 : type;\n\n periods = utils.parseNumber(periods);\n payment = utils.parseNumber(payment);\n present = utils.parseNumber(present);\n future = utils.parseNumber(future);\n type = utils.parseNumber(type);\n guess = utils.parseNumber(guess);\n if (utils.anyIsError(periods, payment, present, future, type, guess)) {\n return error.value;\n }\n\n // Set maximum epsilon for end of iteration\n var epsMax = 1e-10;\n\n // Set maximum number of iterations\n var iterMax = 50;\n\n // Implement Newton's method\n var y, y0, y1, x0, x1 = 0,\n f = 0,\n i = 0;\n var rate = guess;\n if (Math.abs(rate) < epsMax) {\n y = present * (1 + periods * rate) + payment * (1 + rate * type) * periods + future;\n } else {\n f = Math.exp(periods * Math.log(1 + rate));\n y = present * f + payment * (1 / rate + type) * (f - 1) + future;\n }\n y0 = present + payment * periods + future;\n y1 = present * f + payment * (1 / rate + type) * (f - 1) + future;\n i = x0 = 0;\n x1 = rate;\n while ((Math.abs(y0 - y1) > epsMax) && (i < iterMax)) {\n rate = (y1 * x0 - y0 * x1) / (y1 - y0);\n x0 = x1;\n x1 = rate;\n if (Math.abs(rate) < epsMax) {\n y = present * (1 + periods * rate) + payment * (1 + rate * type) * periods + future;\n } else {\n f = Math.exp(periods * Math.log(1 + rate));\n y = present * f + payment * (1 / rate + type) * (f - 1) + future;\n }\n y0 = y1;\n y1 = y;\n ++i;\n }\n return rate;\n};\n\n// TODO\nexports.RECEIVED = function() {\n throw new Error('RECEIVED is not implemented');\n};\n\nexports.RRI = function(periods, present, future) {\n periods = utils.parseNumber(periods);\n present = utils.parseNumber(present);\n future = utils.parseNumber(future);\n if (utils.anyIsError(periods, present, future)) {\n return error.value;\n }\n\n // Return error if periods or present is equal to 0 (zero)\n if (periods === 0 || present === 0) {\n return error.num;\n }\n\n // Return equivalent interest rate\n return Math.pow(future / present, 1 / periods) - 1;\n};\n\nexports.SLN = function(cost, salvage, life) {\n cost = utils.parseNumber(cost);\n salvage = utils.parseNumber(salvage);\n life = utils.parseNumber(life);\n if (utils.anyIsError(cost, salvage, life)) {\n return error.value;\n }\n\n // Return error if life equal to 0 (zero)\n if (life === 0) {\n return error.num;\n }\n\n // Return straight-line depreciation\n return (cost - salvage) / life;\n};\n\nexports.SYD = function(cost, salvage, life, period) {\n // Return error if any of the parameters is not a number\n cost = utils.parseNumber(cost);\n salvage = utils.parseNumber(salvage);\n life = utils.parseNumber(life);\n period = utils.parseNumber(period);\n if (utils.anyIsError(cost, salvage, life, period)) {\n return error.value;\n }\n\n // Return error if life equal to 0 (zero)\n if (life === 0) {\n return error.num;\n }\n\n // Return error if period is lower than 1 or greater than life\n if (period < 1 || period > life) {\n return error.num;\n }\n\n // Truncate period if it is not an integer\n period = parseInt(period, 10);\n\n // Return straight-line depreciation\n return ((cost - salvage) * (life - period + 1) * 2) / (life * (life + 1));\n};\n\nexports.TBILLEQ = function(settlement, maturity, discount) {\n settlement = utils.parseDate(settlement);\n maturity = utils.parseDate(maturity);\n discount = utils.parseNumber(discount);\n if (utils.anyIsError(settlement, maturity, discount)) {\n return error.value;\n }\n\n // Return error if discount is lower than or equal to zero\n if (discount <= 0) {\n return error.num;\n }\n\n // Return error if settlement is greater than maturity\n if (settlement > maturity) {\n return error.num;\n }\n\n // Return error if maturity is more than one year after settlement\n if (maturity - settlement > 365 * 24 * 60 * 60 * 1000) {\n return error.num;\n }\n\n // Return bond-equivalent yield\n return (365 * discount) / (360 - discount * dateTime.DAYS360(settlement, maturity, false));\n};\n\nexports.TBILLPRICE = function(settlement, maturity, discount) {\n settlement = utils.parseDate(settlement);\n maturity = utils.parseDate(maturity);\n discount = utils.parseNumber(discount);\n if (utils.anyIsError(settlement, maturity, discount)) {\n return error.value;\n }\n\n // Return error if discount is lower than or equal to zero\n if (discount <= 0) {\n return error.num;\n }\n\n // Return error if settlement is greater than maturity\n if (settlement > maturity) {\n return error.num;\n }\n\n // Return error if maturity is more than one year after settlement\n if (maturity - settlement > 365 * 24 * 60 * 60 * 1000) {\n return error.num;\n }\n\n // Return bond-equivalent yield\n return 100 * (1 - discount * dateTime.DAYS360(settlement, maturity, false) / 360);\n};\n\nexports.TBILLYIELD = function(settlement, maturity, price) {\n settlement = utils.parseDate(settlement);\n maturity = utils.parseDate(maturity);\n price = utils.parseNumber(price);\n if (utils.anyIsError(settlement, maturity, price)) {\n return error.value;\n }\n\n // Return error if price is lower than or equal to zero\n if (price <= 0) {\n return error.num;\n }\n\n // Return error if settlement is greater than maturity\n if (settlement > maturity) {\n return error.num;\n }\n\n // Return error if maturity is more than one year after settlement\n if (maturity - settlement > 365 * 24 * 60 * 60 * 1000) {\n return error.num;\n }\n\n // Return bond-equivalent yield\n return (100 - price) * 360 / (price * dateTime.DAYS360(settlement, maturity, false));\n};\n\n// TODO\nexports.VDB = function() {\n throw new Error('VDB is not implemented');\n};\n\n// TODO needs better support for date\n// exports.XIRR = function(values, dates, guess) {\n// // Credits: algorithm inspired by Apache OpenOffice\n//\n// values = utils.parseNumberArray(utils.flatten(values));\n// dates = utils.parseDateArray(utils.flatten(dates));\n// guess = utils.parseNumber(guess);\n//\n// if (utils.anyIsError(values, dates, guess)) {\n// return error.value;\n// }\n//\n// // Calculates the resulting amount\n// var irrResult = function(values, dates, rate) {\n// var r = rate + 1;\n// var result = values[0];\n// for (var i = 1; i < values.length; i++) {\n// result += values[i] / Math.pow(r, dateTime.DAYS(dates[i], dates[0]) / 365);\n// }\n// return result;\n// };\n//\n// // Calculates the first derivation\n// var irrResultDeriv = function(values, dates, rate) {\n// var r = rate + 1;\n// var result = 0;\n// for (var i = 1; i < values.length; i++) {\n// var frac = dateTime.DAYS(dates[i], dates[0]) / 365;\n// result -= frac * values[i] / Math.pow(r, frac + 1);\n// }\n// return result;\n// };\n//\n// // Check that values contains at least one positive value and one negative value\n// var positive = false;\n// var negative = false;\n// for (var i = 0; i < values.length; i++) {\n// if (values[i] > 0) {\n// positive = true;\n// }\n// if (values[i] < 0) {\n// negative = true;\n// }\n// }\n//\n// // Return error if values does not contain at least one positive value and one negative value\n// if (!positive || !negative) {\n// return error.num;\n// }\n//\n// // Initialize guess and resultRate\n// guess = guess || 0.1;\n// var resultRate = guess;\n//\n// // Set maximum epsilon for end of iteration\n// var epsMax = 1e-10;\n//\n// // Implement Newton's method\n// var newRate, epsRate, resultValue;\n// var contLoop = true;\n// do {\n// resultValue = irrResult(values, dates, resultRate);\n// newRate = resultRate - resultValue / irrResultDeriv(values, dates, resultRate);\n// epsRate = Math.abs(newRate - resultRate);\n// resultRate = newRate;\n// contLoop = (epsRate > epsMax) && (Math.abs(resultValue) > epsMax);\n// } while (contLoop);\n//\n// // Return internal rate of return\n// return resultRate;\n// };\n\nexports.XNPV = function(rate, values, dates) {\n rate = utils.parseNumber(rate);\n values = utils.parseNumberArray(utils.flatten(values));\n dates = utils.parseDateArray(utils.flatten(dates));\n if (utils.anyIsError(rate, values, dates)) {\n return error.value;\n }\n\n var result = 0;\n for (var i = 0; i < values.length; i++) {\n result += values[i] / Math.pow(1 + rate, dateTime.DAYS(dates[i], dates[0]) / 365);\n }\n return result;\n};\n\n// TODO\nexports.YIELD = function() {\n throw new Error('YIELD is not implemented');\n};\n\n// TODO\nexports.YIELDDISC = function() {\n throw new Error('YIELDDISC is not implemented');\n};\n\n// TODO\nexports.YIELDMAT = function() {\n throw new Error('YIELDMAT is not implemented');\n};\n","var error = require('./utils/error');\n\n// TODO\nexports.CELL = function() {\n throw new Error('CELL is not implemented');\n};\n\nexports.ERROR = {};\nexports.ERROR.TYPE = function(error_val) {\n switch (error_val) {\n case error.nil: return 1;\n case error.div0: return 2;\n case error.value: return 3;\n case error.ref: return 4;\n case error.name: return 5;\n case error.num: return 6;\n case error.na: return 7;\n case error.data: return 8;\n }\n return error.na;\n};\n\n// TODO\nexports.INFO = function() {\n throw new Error('INFO is not implemented');\n};\n\nexports.ISBLANK = function(value) {\n return value === null;\n};\n\nexports.ISBINARY = function (number) {\n return (/^[01]{1,10}$/).test(number);\n};\n\nexports.ISERR = function(value) {\n return ([error.value, error.ref, error.div0, error.num, error.name, error.nil]).indexOf(value) >= 0 ||\n (typeof value === 'number' && (isNaN(value) || !isFinite(value)));\n};\n\nexports.ISERROR = function(value) {\n return exports.ISERR(value) || value === error.na;\n};\n\nexports.ISEVEN = function(number) {\n return (Math.floor(Math.abs(number)) & 1) ? false : true;\n};\n\n// TODO\nexports.ISFORMULA = function() {\n throw new Error('ISFORMULA is not implemented');\n};\n\nexports.ISLOGICAL = function(value) {\n return value === true || value === false;\n};\n\nexports.ISNA = function(value) {\n return value === error.na;\n};\n\nexports.ISNONTEXT = function(value) {\n return typeof(value) !== 'string';\n};\n\nexports.ISNUMBER = function(value) {\n return typeof(value) === 'number' && !isNaN(value) && isFinite(value);\n};\n\nexports.ISODD = function(number) {\n return (Math.floor(Math.abs(number)) & 1) ? true : false;\n};\n\n// TODO\nexports.ISREF = function() {\n throw new Error('ISREF is not implemented');\n};\n\nexports.ISTEXT = function(value) {\n return typeof(value) === 'string';\n};\n\nexports.N = function(value) {\n if (this.ISNUMBER(value)) {\n return value;\n }\n if (value instanceof Date) {\n return value.getTime();\n }\n if (value === true) {\n return 1;\n }\n if (value === false) {\n return 0;\n }\n if (this.ISERROR(value)) {\n return value;\n }\n return 0;\n};\n\nexports.NA = function() {\n return error.na;\n};\n\n\n// TODO\nexports.SHEET = function() {\n throw new Error('SHEET is not implemented');\n};\n\n// TODO\nexports.SHEETS = function() {\n throw new Error('SHEETS is not implemented');\n};\n\nexports.TYPE = function(value) {\n if (this.ISNUMBER(value)) {\n return 1;\n }\n if (this.ISTEXT(value)) {\n return 2;\n }\n if (this.ISLOGICAL(value)) {\n return 4;\n }\n if (this.ISERROR(value)) {\n return 16;\n }\n if (Array.isArray(value)) {\n return 64;\n }\n};\n","var error = require('./utils/error');\nvar utils = require('./utils/common');\nvar information = require('./information');\n\nexports.AND = function() {\n var args = utils.flatten(arguments);\n var result = true;\n for (var i = 0; i < args.length; i++) {\n if (!args[i]) {\n result = false;\n }\n }\n return result;\n};\n\nexports.CHOOSE = function() {\n if (arguments.length < 2) {\n return error.na;\n }\n\n var index = arguments[0];\n if (index < 1 || index > 254) {\n return error.value;\n }\n\n if (arguments.length < index + 1) {\n return error.value;\n }\n\n return arguments[index];\n};\n\nexports.FALSE = function() {\n return false;\n};\n\nexports.IF = function(test, then_value, otherwise_value) {\n return test ? then_value : otherwise_value;\n};\n\nexports.IFERROR = function(value, valueIfError) {\n if (information.ISERROR(value)) {\n return valueIfError;\n }\n return value;\n};\n\nexports.IFNA = function(value, value_if_na) {\n return value === error.na ? value_if_na : value;\n};\n\nexports.NOT = function(logical) {\n return !logical;\n};\n\nexports.OR = function() {\n var args = utils.flatten(arguments);\n var result = false;\n for (var i = 0; i < args.length; i++) {\n if (args[i]) {\n result = true;\n }\n }\n return result;\n};\n\nexports.TRUE = function() {\n return true;\n};\n\nexports.XOR = function() {\n var args = utils.flatten(arguments);\n var result = 0;\n for (var i = 0; i < args.length; i++) {\n if (args[i]) {\n result++;\n }\n }\n return (Math.floor(Math.abs(result)) & 1) ? true : false;\n};\n\nexports.SWITCH = function () {\n var result;\n\n if (arguments.length > 0) {\n var targetValue = arguments[0];\n var argc = arguments.length - 1;\n var switchCount = Math.floor(argc / 2);\n var switchSatisfied = false;\n var hasDefaultClause = argc % 2 !== 0;\n var defaultClause = argc % 2 === 0 ? null : arguments[arguments.length - 1];\n\n if (switchCount) {\n for (var index = 0; index < switchCount; index++) {\n if (targetValue === arguments[index * 2 + 1]) {\n result = arguments[index * 2 + 2];\n switchSatisfied = true;\n break;\n }\n }\n }\n\n if (!switchSatisfied) {\n result = hasDefaultClause ? defaultClause : error.na;\n }\n } else {\n result = error.value;\n }\n\n return result;\n};\n","var error = require('./utils/error');\nvar utils = require('./utils/common');\n\nexports.MATCH = function(lookupValue, lookupArray, matchType) {\n if (!lookupValue && !lookupArray) {\n return error.na;\n }\n\n if (arguments.length === 2) {\n matchType = 1;\n }\n if (!(lookupArray instanceof Array)) {\n return error.na;\n }\n\n if (matchType !== -1 && matchType !== 0 && matchType !== 1) {\n return error.na;\n }\n var index;\n var indexValue;\n for (var idx = 0; idx < lookupArray.length; idx++) {\n if (matchType === 1) {\n if (lookupArray[idx] === lookupValue) {\n return idx + 1;\n } else if (lookupArray[idx] < lookupValue) {\n if (!indexValue) {\n index = idx + 1;\n indexValue = lookupArray[idx];\n } else if (lookupArray[idx] > indexValue) {\n index = idx + 1;\n indexValue = lookupArray[idx];\n }\n }\n } else if (matchType === 0) {\n if (typeof lookupValue === 'string') {\n lookupValue = lookupValue.replace(/\\?/g, '.');\n if (lookupArray[idx].toLowerCase().match(lookupValue.toLowerCase())) {\n return idx + 1;\n }\n } else {\n if (lookupArray[idx] === lookupValue) {\n return idx + 1;\n }\n }\n } else if (matchType === -1) {\n if (lookupArray[idx] === lookupValue) {\n return idx + 1;\n } else if (lookupArray[idx] > lookupValue) {\n if (!indexValue) {\n index = idx + 1;\n indexValue = lookupArray[idx];\n } else if (lookupArray[idx] < indexValue) {\n index = idx + 1;\n indexValue = lookupArray[idx];\n }\n }\n }\n }\n\n return index ? index : error.na;\n};\n\nexports.VLOOKUP = function (needle, table, index, rangeLookup) {\n if (!needle || !table || !index) {\n return error.na;\n }\n\n rangeLookup = rangeLookup || false;\n for (var i = 0; i < table.length; i++) {\n var row = table[i];\n if ((!rangeLookup && row[0] === needle) ||\n ((row[0] === needle) ||\n (rangeLookup && typeof row[0] === \"string\" && row[0].toLowerCase().indexOf(needle.toLowerCase()) !== -1))) {\n return (index < (row.length + 1) ? row[index - 1] : error.ref);\n }\n }\n\n return error.na;\n};\n\nexports.HLOOKUP = function (needle, table, index, rangeLookup) {\n if (!needle || !table || !index) {\n return error.na;\n }\n\n rangeLookup = rangeLookup || false;\n\n var transposedTable = utils.transpose(table);\n\n for (var i = 0; i < transposedTable.length; i++) {\n var row = transposedTable[i];\n if ((!rangeLookup && row[0] === needle) ||\n ((row[0] === needle) ||\n (rangeLookup && typeof row[0] === \"string\" && row[0].toLowerCase().indexOf(needle.toLowerCase()) !== -1))) {\n return (index < (row.length + 1) ? row[index - 1] : error.ref);\n }\n }\n\n return error.na;\n};\n","var utils = require('./utils/common');\nvar error = require('./utils/error');\nvar statistical = require('./statistical');\nvar information = require('./information');\nvar evalExpression = require('./utils/criteria-eval');\n\nexports.ABS = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var result = Math.abs(number);\n\n return result;\n};\n\nexports.ACOS = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var result = Math.acos(number);\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\nexports.ACOSH = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var result = Math.log(number + Math.sqrt(number * number - 1));\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\nexports.ACOT = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var result = Math.atan(1 / number);\n\n return result;\n};\n\nexports.ACOTH = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var result = 0.5 * Math.log((number + 1) / (number - 1));\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\n//TODO: use options\nexports.AGGREGATE = function(function_num, options, ref1, ref2) {\n function_num = utils.parseNumber(function_num);\n options = utils.parseNumber(function_num);\n if (utils.anyIsError(function_num, options)) {\n return error.value;\n }\n switch (function_num) {\n case 1:\n return statistical.AVERAGE(ref1);\n case 2:\n return statistical.COUNT(ref1);\n case 3:\n return statistical.COUNTA(ref1);\n case 4:\n return statistical.MAX(ref1);\n case 5:\n return statistical.MIN(ref1);\n case 6:\n return exports.PRODUCT(ref1);\n case 7:\n return statistical.STDEV.S(ref1);\n case 8:\n return statistical.STDEV.P(ref1);\n case 9:\n return exports.SUM(ref1);\n case 10:\n return statistical.VAR.S(ref1);\n case 11:\n return statistical.VAR.P(ref1);\n case 12:\n return statistical.MEDIAN(ref1);\n case 13:\n return statistical.MODE.SNGL(ref1);\n case 14:\n return statistical.LARGE(ref1, ref2);\n case 15:\n return statistical.SMALL(ref1, ref2);\n case 16:\n return statistical.PERCENTILE.INC(ref1, ref2);\n case 17:\n return statistical.QUARTILE.INC(ref1, ref2);\n case 18:\n return statistical.PERCENTILE.EXC(ref1, ref2);\n case 19:\n return statistical.QUARTILE.EXC(ref1, ref2);\n }\n};\n\nexports.ARABIC = function(text) {\n // Credits: Rafa? Kukawski\n if (!/^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/.test(text)) {\n return error.value;\n }\n var r = 0;\n text.replace(/[MDLV]|C[MD]?|X[CL]?|I[XV]?/g, function(i) {\n r += {\n M: 1000,\n CM: 900,\n D: 500,\n CD: 400,\n C: 100,\n XC: 90,\n L: 50,\n XL: 40,\n X: 10,\n IX: 9,\n V: 5,\n IV: 4,\n I: 1\n }[i];\n });\n return r;\n};\n\nexports.ASIN = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var result = Math.asin(number);\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\nexports.ASINH = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return Math.log(number + Math.sqrt(number * number + 1));\n};\n\nexports.ATAN = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return Math.atan(number);\n};\n\nexports.ATAN2 = function(number_x, number_y) {\n number_x = utils.parseNumber(number_x);\n number_y = utils.parseNumber(number_y);\n if (utils.anyIsError(number_x, number_y)) {\n return error.value;\n }\n return Math.atan2(number_x, number_y);\n};\n\nexports.ATANH = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var result = Math.log((1 + number) / (1 - number)) / 2;\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\nexports.BASE = function(number, radix, min_length) {\n min_length = min_length || 0;\n\n number = utils.parseNumber(number);\n radix = utils.parseNumber(radix);\n min_length = utils.parseNumber(min_length);\n if (utils.anyIsError(number, radix, min_length)) {\n return error.value;\n }\n min_length = (min_length === undefined) ? 0 : min_length;\n var result = number.toString(radix);\n return new Array(Math.max(min_length + 1 - result.length, 0)).join('0') + result;\n};\n\nexports.CEILING = function(number, significance, mode) {\n significance = (significance === undefined) ? 1 : Math.abs(significance);\n mode = mode || 0;\n\n number = utils.parseNumber(number);\n significance = utils.parseNumber(significance);\n mode = utils.parseNumber(mode);\n if (utils.anyIsError(number, significance, mode)) {\n return error.value;\n }\n if (significance === 0) {\n return 0;\n }\n var precision = -Math.floor(Math.log(significance) / Math.log(10));\n if (number >= 0) {\n return exports.ROUND(Math.ceil(number / significance) * significance, precision);\n } else {\n if (mode === 0) {\n return -exports.ROUND(Math.floor(Math.abs(number) / significance) * significance, precision);\n } else {\n return -exports.ROUND(Math.ceil(Math.abs(number) / significance) * significance, precision);\n }\n }\n};\n\nexports.CEILING.MATH = exports.CEILING;\n\nexports.CEILING.PRECISE = exports.CEILING;\n\nexports.COMBIN = function(number, number_chosen) {\n number = utils.parseNumber(number);\n number_chosen = utils.parseNumber(number_chosen);\n if (utils.anyIsError(number, number_chosen)) {\n return error.value;\n }\n return exports.FACT(number) / (exports.FACT(number_chosen) * exports.FACT(number - number_chosen));\n};\n\nexports.COMBINA = function(number, number_chosen) {\n number = utils.parseNumber(number);\n number_chosen = utils.parseNumber(number_chosen);\n if (utils.anyIsError(number, number_chosen)) {\n return error.value;\n }\n return (number === 0 && number_chosen === 0) ? 1 : exports.COMBIN(number + number_chosen - 1, number - 1);\n};\n\nexports.COS = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return Math.cos(number);\n};\n\nexports.COSH = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return (Math.exp(number) + Math.exp(-number)) / 2;\n};\n\nexports.COT = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return 1 / Math.tan(number);\n};\n\nexports.COTH = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var e2 = Math.exp(2 * number);\n return (e2 + 1) / (e2 - 1);\n};\n\nexports.CSC = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return 1 / Math.sin(number);\n};\n\nexports.CSCH = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return 2 / (Math.exp(number) - Math.exp(-number));\n};\n\nexports.DECIMAL = function(number, radix) {\n if (arguments.length < 1) {\n return error.value;\n }\n\n return parseInt(number, radix);\n};\n\nexports.DEGREES = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return number * 180 / Math.PI;\n};\n\nexports.EVEN = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return exports.CEILING(number, -2, -1);\n};\n\nexports.EXP = function(number) {\n if (arguments.length < 1) {\n return error.na;\n }\n if (typeof number !== 'number' || arguments.length > 1) {\n return error.error;\n }\n\n number = Math.exp(number);\n\n return number;\n};\n\nvar MEMOIZED_FACT = [];\nexports.FACT = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var n = Math.floor(number);\n if (n === 0 || n === 1) {\n return 1;\n } else if (MEMOIZED_FACT[n] > 0) {\n return MEMOIZED_FACT[n];\n } else {\n MEMOIZED_FACT[n] = exports.FACT(n - 1) * n;\n return MEMOIZED_FACT[n];\n }\n};\n\nexports.FACTDOUBLE = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var n = Math.floor(number);\n if (n <= 0) {\n return 1;\n } else {\n return n * exports.FACTDOUBLE(n - 2);\n }\n};\n\nexports.FLOOR = function(number, significance) {\n number = utils.parseNumber(number);\n significance = utils.parseNumber(significance);\n if (utils.anyIsError(number, significance)) {\n return error.value;\n }\n if (significance === 0) {\n return 0;\n }\n\n if (!(number > 0 && significance > 0) && !(number < 0 && significance < 0)) {\n return error.num;\n }\n\n significance = Math.abs(significance);\n var precision = -Math.floor(Math.log(significance) / Math.log(10));\n if (number >= 0) {\n return exports.ROUND(Math.floor(number / significance) * significance, precision);\n } else {\n return -exports.ROUND(Math.ceil(Math.abs(number) / significance), precision);\n }\n};\n\n//TODO: Verify\nexports.FLOOR.MATH = function(number, significance, mode) {\n significance = (significance === undefined) ? 1 : significance;\n mode = (mode === undefined) ? 0 : mode;\n\n number = utils.parseNumber(number);\n significance = utils.parseNumber(significance);\n mode = utils.parseNumber(mode);\n if (utils.anyIsError(number, significance, mode)) {\n return error.value;\n }\n if (significance === 0) {\n return 0;\n }\n\n significance = significance ? Math.abs(significance) : 1;\n var precision = -Math.floor(Math.log(significance) / Math.log(10));\n if (number >= 0) {\n return exports.ROUND(Math.floor(number / significance) * significance, precision);\n } else if (mode === 0 || mode === undefined) {\n return -exports.ROUND(Math.ceil(Math.abs(number) / significance) * significance, precision);\n }\n return -exports.ROUND(Math.floor(Math.abs(number) / significance) * significance, precision);\n};\n\n// Deprecated\nexports.FLOOR.PRECISE = exports.FLOOR.MATH;\n\n// adapted http://rosettacode.org/wiki/Greatest_common_divisor#JavaScript\nexports.GCD = function() {\n var range = utils.parseNumberArray(utils.flatten(arguments));\n if (range instanceof Error) {\n return range;\n }\n var n = range.length;\n var r0 = range[0];\n var x = r0 < 0 ? -r0 : r0;\n for (var i = 1; i < n; i++) {\n var ri = range[i];\n var y = ri < 0 ? -ri : ri;\n while (x && y) {\n if (x > y) {\n x %= y;\n } else {\n y %= x;\n }\n }\n x += y;\n }\n return x;\n};\n\n\nexports.INT = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return Math.floor(number);\n};\n\n//TODO: verify\nexports.ISO = {\n CEILING: exports.CEILING\n};\n\nexports.LCM = function() {\n // Credits: Jonas Raoni Soares Silva\n var o = utils.parseNumberArray(utils.flatten(arguments));\n if (o instanceof Error) {\n return o;\n }\n for (var i, j, n, d, r = 1;\n (n = o.pop()) !== undefined;) {\n while (n > 1) {\n if (n % 2) {\n for (i = 3, j = Math.floor(Math.sqrt(n)); i <= j && n % i; i += 2) {\n //empty\n }\n d = (i <= j) ? i : n;\n } else {\n d = 2;\n }\n for (n /= d, r *= d, i = o.length; i;\n (o[--i] % d) === 0 && (o[i] /= d) === 1 && o.splice(i, 1)) {\n //empty\n }\n }\n }\n return r;\n};\n\nexports.LN = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return Math.log(number);\n};\n\nexports.LN10 = function() {\n return Math.log(10);\n};\n\nexports.LN2 = function() {\n return Math.log(2);\n};\n\nexports.LOG10E = function() {\n return Math.LOG10E;\n};\n\nexports.LOG2E = function() {\n return Math.LOG2E;\n};\n\nexports.LOG = function(number, base) {\n number = utils.parseNumber(number);\n base = utils.parseNumber(base);\n if (utils.anyIsError(number, base)) {\n return error.value;\n }\n base = (base === undefined) ? 10 : base;\n return Math.log(number) / Math.log(base);\n};\n\nexports.LOG10 = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return Math.log(number) / Math.log(10);\n};\n\nexports.MOD = function(dividend, divisor) {\n dividend = utils.parseNumber(dividend);\n divisor = utils.parseNumber(divisor);\n if (utils.anyIsError(dividend, divisor)) {\n return error.value;\n }\n if (divisor === 0) {\n return error.div0;\n }\n var modulus = Math.abs(dividend % divisor);\n return (divisor > 0) ? modulus : -modulus;\n};\n\nexports.MROUND = function(number, multiple) {\n number = utils.parseNumber(number);\n multiple = utils.parseNumber(multiple);\n if (utils.anyIsError(number, multiple)) {\n return error.value;\n }\n if (number * multiple < 0) {\n return error.num;\n }\n\n return Math.round(number / multiple) * multiple;\n};\n\nexports.MULTINOMIAL = function() {\n var args = utils.parseNumberArray(utils.flatten(arguments));\n if (args instanceof Error) {\n return args;\n }\n var sum = 0;\n var divisor = 1;\n for (var i = 0; i < args.length; i++) {\n sum += args[i];\n divisor *= exports.FACT(args[i]);\n }\n return exports.FACT(sum) / divisor;\n};\n\nexports.ODD = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var temp = Math.ceil(Math.abs(number));\n temp = (temp & 1) ? temp : temp + 1;\n return (number > 0) ? temp : -temp;\n};\n\nexports.PI = function() {\n return Math.PI;\n};\n\nexports.E = function() {\n return Math.E;\n};\n\nexports.POWER = function(number, power) {\n number = utils.parseNumber(number);\n power = utils.parseNumber(power);\n if (utils.anyIsError(number, power)) {\n return error.value;\n }\n var result = Math.pow(number, power);\n if (isNaN(result)) {\n return error.num;\n }\n\n return result;\n};\n\nexports.PRODUCT = function() {\n var args = utils.parseNumberArray(utils.flatten(arguments));\n if (args instanceof Error) {\n return args;\n }\n var result = 1;\n for (var i = 0; i < args.length; i++) {\n result *= args[i];\n }\n return result;\n};\n\nexports.QUOTIENT = function(numerator, denominator) {\n numerator = utils.parseNumber(numerator);\n denominator = utils.parseNumber(denominator);\n if (utils.anyIsError(numerator, denominator)) {\n return error.value;\n }\n return parseInt(numerator / denominator, 10);\n};\n\nexports.RADIANS = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return number * Math.PI / 180;\n};\n\nexports.RAND = function() {\n return Math.random();\n};\n\nexports.RANDBETWEEN = function(bottom, top) {\n bottom = utils.parseNumber(bottom);\n top = utils.parseNumber(top);\n if (utils.anyIsError(bottom, top)) {\n return error.value;\n }\n // Creative Commons Attribution 3.0 License\n // Copyright (c) 2012 eqcode\n return bottom + Math.ceil((top - bottom + 1) * Math.random()) - 1;\n};\n\n// TODO\nexports.ROMAN = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n // The MIT License\n // Copyright (c) 2008 Steven Levithan\n var digits = String(number).split('');\n var key = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];\n var roman = '';\n var i = 3;\n while (i--) {\n roman = (key[+digits.pop() + (i * 10)] || '') + roman;\n }\n return new Array(+digits.join('') + 1).join('M') + roman;\n};\n\nexports.ROUND = function(number, digits) {\n number = utils.parseNumber(number);\n digits = utils.parseNumber(digits);\n if (utils.anyIsError(number, digits)) {\n return error.value;\n }\n return Math.round(number * Math.pow(10, digits)) / Math.pow(10, digits);\n};\n\nexports.ROUNDDOWN = function(number, digits) {\n number = utils.parseNumber(number);\n digits = utils.parseNumber(digits);\n if (utils.anyIsError(number, digits)) {\n return error.value;\n }\n var sign = (number > 0) ? 1 : -1;\n return sign * (Math.floor(Math.abs(number) * Math.pow(10, digits))) / Math.pow(10, digits);\n};\n\nexports.ROUNDUP = function(number, digits) {\n number = utils.parseNumber(number);\n digits = utils.parseNumber(digits);\n if (utils.anyIsError(number, digits)) {\n return error.value;\n }\n var sign = (number > 0) ? 1 : -1;\n return sign * (Math.ceil(Math.abs(number) * Math.pow(10, digits))) / Math.pow(10, digits);\n};\n\nexports.SEC = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return 1 / Math.cos(number);\n};\n\nexports.SECH = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return 2 / (Math.exp(number) + Math.exp(-number));\n};\n\nexports.SERIESSUM = function(x, n, m, coefficients) {\n x = utils.parseNumber(x);\n n = utils.parseNumber(n);\n m = utils.parseNumber(m);\n coefficients = utils.parseNumberArray(coefficients);\n if (utils.anyIsError(x, n, m, coefficients)) {\n return error.value;\n }\n var result = coefficients[0] * Math.pow(x, n);\n for (var i = 1; i < coefficients.length; i++) {\n result += coefficients[i] * Math.pow(x, n + i * m);\n }\n return result;\n};\n\nexports.SIGN = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n if (number < 0) {\n return -1;\n } else if (number === 0) {\n return 0;\n } else {\n return 1;\n }\n};\n\nexports.SIN = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return Math.sin(number);\n};\n\nexports.SINH = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return (Math.exp(number) - Math.exp(-number)) / 2;\n};\n\nexports.SQRT = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n if (number < 0) {\n return error.num;\n }\n return Math.sqrt(number);\n};\n\nexports.SQRTPI = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return Math.sqrt(number * Math.PI);\n};\n\nexports.SQRT1_2 = function() {\n return 1 / Math.sqrt(2);\n};\n\nexports.SQRT2 = function() {\n return Math.sqrt(2);\n};\n\nexports.SUBTOTAL = function(function_code, ref1) {\n function_code = utils.parseNumber(function_code);\n if (function_code instanceof Error) {\n return function_code;\n }\n switch (function_code) {\n case 1:\n return statistical.AVERAGE(ref1);\n case 2:\n return statistical.COUNT(ref1);\n case 3:\n return statistical.COUNTA(ref1);\n case 4:\n return statistical.MAX(ref1);\n case 5:\n return statistical.MIN(ref1);\n case 6:\n return exports.PRODUCT(ref1);\n case 7:\n return statistical.STDEV.S(ref1);\n case 8:\n return statistical.STDEV.P(ref1);\n case 9:\n return exports.SUM(ref1);\n case 10:\n return statistical.VAR.S(ref1);\n case 11:\n return statistical.VAR.P(ref1);\n // no hidden values for us\n case 101:\n return statistical.AVERAGE(ref1);\n case 102:\n return statistical.COUNT(ref1);\n case 103:\n return statistical.COUNTA(ref1);\n case 104:\n return statistical.MAX(ref1);\n case 105:\n return statistical.MIN(ref1);\n case 106:\n return exports.PRODUCT(ref1);\n case 107:\n return statistical.STDEV.S(ref1);\n case 108:\n return statistical.STDEV.P(ref1);\n case 109:\n return exports.SUM(ref1);\n case 110:\n return statistical.VAR.S(ref1);\n case 111:\n return statistical.VAR.P(ref1);\n\n }\n};\n\nexports.ADD = function (num1, num2) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n num1 = utils.parseNumber(num1);\n num2 = utils.parseNumber(num2);\n if (utils.anyIsError(num1, num2)) {\n return error.value;\n }\n\n return num1 + num2;\n};\n\nexports.MINUS = function (num1, num2) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n num1 = utils.parseNumber(num1);\n num2 = utils.parseNumber(num2);\n if (utils.anyIsError(num1, num2)) {\n return error.value;\n }\n\n return num1 - num2;\n};\n\nexports.DIVIDE = function (dividend, divisor) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n dividend = utils.parseNumber(dividend);\n divisor = utils.parseNumber(divisor);\n if (utils.anyIsError(dividend, divisor)) {\n return error.value;\n }\n\n if (divisor === 0) {\n return error.div0;\n }\n\n return dividend / divisor;\n};\n\nexports.MULTIPLY = function (factor1, factor2) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n factor1 = utils.parseNumber(factor1);\n factor2 = utils.parseNumber(factor2);\n if (utils.anyIsError(factor1, factor2)) {\n return error.value;\n }\n\n return factor1 * factor2;\n};\n\nexports.GTE = function (num1, num2) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n num1 = utils.parseNumber(num1);\n num2 = utils.parseNumber(num2);\n if (utils.anyIsError(num1, num2)) {\n return error.error;\n }\n\n return num1 >= num2;\n};\n\nexports.LT = function (num1, num2) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n num1 = utils.parseNumber(num1);\n num2 = utils.parseNumber(num2);\n if (utils.anyIsError(num1, num2)) {\n return error.error;\n }\n\n return num1 < num2;\n};\n\n\nexports.LTE = function (num1, num2) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n num1 = utils.parseNumber(num1);\n num2 = utils.parseNumber(num2);\n if (utils.anyIsError(num1, num2)) {\n return error.error;\n }\n\n return num1 <= num2;\n};\n\nexports.EQ = function (value1, value2) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n return value1 === value2;\n};\n\nexports.NE = function (value1, value2) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n return value1 !== value2;\n};\n\nexports.POW = function (base, exponent) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n base = utils.parseNumber(base);\n exponent = utils.parseNumber(exponent);\n if (utils.anyIsError(base, exponent)) {\n return error.error;\n }\n\n return exports.POWER(base, exponent);\n};\n\nexports.SUM = function() {\n var result = 0;\n\n utils.arrayEach(utils.argsToArray(arguments), function(value) {\n if (typeof value === 'number') {\n result += value;\n\n } else if (typeof value === 'string') {\n var parsed = parseFloat(value);\n\n !isNaN(parsed) && (result += parsed);\n\n } else if (Array.isArray(value)) {\n result += exports.SUM.apply(null, value);\n }\n });\n\n return result;\n};\n\nexports.SUMIF = function(range, criteria) {\n range = utils.parseNumberArray(utils.flatten(range));\n\n if (range instanceof Error) {\n return range;\n }\n var result = 0;\n var isWildcard = criteria === void 0 || criteria === '*';\n var tokenizedCriteria = isWildcard ? null : evalExpression.parse(criteria + '');\n\n for (var i = 0; i < range.length; i++) {\n var value = range[i];\n\n if (isWildcard) {\n result += value;\n } else {\n var tokens = [evalExpression.createToken(value, evalExpression.TOKEN_TYPE_LITERAL)].concat(tokenizedCriteria);\n\n result += (evalExpression.compute(tokens) ? value : 0);\n }\n }\n\n return result;\n};\n\nexports.SUMIFS = function() {\n var args = utils.argsToArray(arguments);\n var range = utils.parseNumberArray(utils.flatten(args.shift()));\n\n if (range instanceof Error) {\n return range;\n }\n var criterias = args;\n var n_range_elements = range.length;\n var criteriaLength = criterias.length;\n var result = 0;\n\n for (var i = 0; i < n_range_elements; i++) {\n var value = range[i];\n var isMeetCondition = false;\n\n for (var j = 0; j < criteriaLength; j++) {\n var criteria = criterias[j];\n var isWildcard = criteria === void 0 || criteria === '*';\n var computedResult = false;\n\n if (isWildcard) {\n computedResult = true;\n } else {\n var tokenizedCriteria = evalExpression.parse(criteria + '');\n var tokens = [evalExpression.createToken(value, evalExpression.TOKEN_TYPE_LITERAL)].concat(tokenizedCriteria);\n\n computedResult = evalExpression.compute(tokens);\n }\n\n // Criterias are calculated as AND so any `false` breakes the loop as unmeet condition\n if (!computedResult) {\n isMeetCondition = false;\n break;\n }\n\n isMeetCondition = true;\n }\n\n if (isMeetCondition) {\n result += value;\n }\n }\n\n return result;\n};\n\nexports.SUMPRODUCT = function() {\n if (!arguments || arguments.length === 0) {\n return error.value;\n }\n var arrays = arguments.length + 1;\n var result = 0;\n var product;\n var k;\n var _i;\n var _ij;\n for (var i = 0; i < arguments[0].length; i++) {\n if (!(arguments[0][i] instanceof Array)) {\n product = 1;\n for (k = 1; k < arrays; k++) {\n _i = utils.parseNumber(arguments[k - 1][i]);\n if (_i instanceof Error) {\n return _i;\n }\n product *= _i;\n }\n result += product;\n } else {\n for (var j = 0; j < arguments[0][i].length; j++) {\n product = 1;\n for (k = 1; k < arrays; k++) {\n _ij = utils.parseNumber(arguments[k - 1][i][j]);\n if (_ij instanceof Error) {\n return _ij;\n }\n product *= _ij;\n }\n result += product;\n }\n }\n }\n return result;\n};\n\nexports.SUMSQ = function() {\n var numbers = utils.parseNumberArray(utils.flatten(arguments));\n if (numbers instanceof Error) {\n return numbers;\n }\n var result = 0;\n var length = numbers.length;\n for (var i = 0; i < length; i++) {\n result += (information.ISNUMBER(numbers[i])) ? numbers[i] * numbers[i] : 0;\n }\n return result;\n};\n\nexports.SUMX2MY2 = function(array_x, array_y) {\n array_x = utils.parseNumberArray(utils.flatten(array_x));\n array_y = utils.parseNumberArray(utils.flatten(array_y));\n if (utils.anyIsError(array_x, array_y)) {\n return error.value;\n }\n var result = 0;\n for (var i = 0; i < array_x.length; i++) {\n result += array_x[i] * array_x[i] - array_y[i] * array_y[i];\n }\n return result;\n};\n\nexports.SUMX2PY2 = function(array_x, array_y) {\n array_x = utils.parseNumberArray(utils.flatten(array_x));\n array_y = utils.parseNumberArray(utils.flatten(array_y));\n if (utils.anyIsError(array_x, array_y)) {\n return error.value;\n }\n var result = 0;\n array_x = utils.parseNumberArray(utils.flatten(array_x));\n array_y = utils.parseNumberArray(utils.flatten(array_y));\n for (var i = 0; i < array_x.length; i++) {\n result += array_x[i] * array_x[i] + array_y[i] * array_y[i];\n }\n return result;\n};\n\nexports.SUMXMY2 = function(array_x, array_y) {\n array_x = utils.parseNumberArray(utils.flatten(array_x));\n array_y = utils.parseNumberArray(utils.flatten(array_y));\n if (utils.anyIsError(array_x, array_y)) {\n return error.value;\n }\n var result = 0;\n array_x = utils.flatten(array_x);\n array_y = utils.flatten(array_y);\n for (var i = 0; i < array_x.length; i++) {\n result += Math.pow(array_x[i] - array_y[i], 2);\n }\n return result;\n};\n\nexports.TAN = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return Math.tan(number);\n};\n\nexports.TANH = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n var e2 = Math.exp(2 * number);\n return (e2 - 1) / (e2 + 1);\n};\n\nexports.TRUNC = function(number, digits) {\n digits = (digits === undefined) ? 0 : digits;\n number = utils.parseNumber(number);\n digits = utils.parseNumber(digits);\n if (utils.anyIsError(number, digits)) {\n return error.value;\n }\n var sign = (number > 0) ? 1 : -1;\n return sign * (Math.floor(Math.abs(number) * Math.pow(10, digits))) / Math.pow(10, digits);\n};\n","var utils = require('./utils/common');\nvar error = require('./utils/error');\n\nexports.UNIQUE = function () {\n var result = [];\n for (var i = 0; i < arguments.length; ++i) {\n var hasElement = false;\n var element = arguments[i];\n\n // Check if we've already seen this element.\n for (var j = 0; j < result.length; ++j) {\n hasElement = result[j] === element;\n if (hasElement) { break; }\n }\n\n // If we did not find it, add it to the result.\n if (!hasElement) {\n result.push(element);\n }\n }\n return result;\n};\n\nexports.FLATTEN = utils.flatten;\n\nexports.ARGS2ARRAY = function () {\n return Array.prototype.slice.call(arguments, 0);\n};\n\nexports.REFERENCE = function (context, reference) {\n if (!arguments.length) {\n return error.error;\n }\n try {\n var path = reference.split('.');\n var result = context;\n for (var i = 0; i < path.length; ++i) {\n var step = path[i];\n if (step[step.length - 1] === ']') {\n var opening = step.indexOf('[');\n var index = step.substring(opening + 1, step.length - 1);\n result = result[step.substring(0, opening)][index];\n } else {\n result = result[step];\n }\n }\n return result;\n } catch (error) {}\n};\n\nexports.JOIN = function (array, separator) {\n return array.join(separator);\n};\n\nexports.NUMBERS = function () {\n var possibleNumbers = utils.flatten(arguments);\n return possibleNumbers.filter(function (el) {\n return typeof el === 'number';\n });\n};\n","var mathTrig = require('./math-trig');\nvar text = require('./text');\nvar jStat = require('jstat');\nvar utils = require('./utils/common');\nvar evalExpression = require('./utils/criteria-eval');\nvar error = require('./utils/error');\nvar misc = require('./miscellaneous');\n\nvar SQRT2PI = 2.5066282746310002;\n\nexports.AVEDEV = function() {\n var range = utils.parseNumberArray(utils.flatten(arguments));\n if (range instanceof Error) {\n return range;\n }\n return jStat.sum(jStat(range).subtract(jStat.mean(range)).abs()[0]) / range.length;\n};\n\nexports.AVERAGE = function() {\n var range = utils.numbers(utils.flatten(arguments));\n var n = range.length;\n var sum = 0;\n var count = 0;\n var result;\n\n for (var i = 0; i < n; i++) {\n sum += range[i];\n count += 1;\n }\n result = sum / count;\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\nexports.AVERAGEA = function() {\n var range = utils.flatten(arguments);\n var n = range.length;\n var sum = 0;\n var count = 0;\n var result;\n for (var i = 0; i < n; i++) {\n var el = range[i];\n if (typeof el === 'number') {\n sum += el;\n }\n if (el === true) {\n sum++;\n }\n if (el !== null) {\n count++;\n }\n }\n result = sum / count;\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\nexports.AVERAGEIF = function(range, criteria, average_range) {\n if (arguments.length <= 1) {\n return error.na;\n }\n average_range = average_range || range;\n range = utils.flatten(range);\n average_range = utils.parseNumberArray(utils.flatten(average_range));\n\n if (average_range instanceof Error) {\n return average_range;\n }\n var average_count = 0;\n var result = 0;\n var isWildcard = criteria === void 0 || criteria === '*';\n var tokenizedCriteria = isWildcard ? null : evalExpression.parse(criteria + '');\n\n for (var i = 0; i < range.length; i++) {\n var value = range[i];\n\n if (isWildcard) {\n result += average_range[i];\n average_count++;\n } else {\n var tokens = [evalExpression.createToken(value, evalExpression.TOKEN_TYPE_LITERAL)].concat(tokenizedCriteria);\n\n if (evalExpression.compute(tokens)) {\n result += average_range[i];\n average_count++;\n }\n }\n }\n\n return result / average_count;\n};\n\nexports.AVERAGEIFS = function() {\n // Does not work with multi dimensional ranges yet!\n //http://office.microsoft.com/en-001/excel-help/averageifs-function-HA010047493.aspx\n var args = utils.argsToArray(arguments);\n var criteriaLength = (args.length - 1) / 2;\n var range = utils.flatten(args[0]);\n var count = 0;\n var result = 0;\n\n for (var i = 0; i < range.length; i++) {\n var isMeetCondition = false;\n\n for (var j = 0; j < criteriaLength; j++) {\n var value = args[2 * j + 1][i];\n var criteria = args[2 * j + 2];\n var isWildcard = criteria === void 0 || criteria === '*';\n var computedResult = false;\n\n if (isWildcard) {\n computedResult = true;\n } else {\n var tokenizedCriteria = evalExpression.parse(criteria + '');\n var tokens = [evalExpression.createToken(value, evalExpression.TOKEN_TYPE_LITERAL)].concat(tokenizedCriteria);\n\n computedResult = evalExpression.compute(tokens);\n }\n\n // Criterias are calculated as AND so any `false` breakes the loop as unmeet condition\n if (!computedResult) {\n isMeetCondition = false;\n break;\n }\n\n isMeetCondition = true;\n }\n\n if (isMeetCondition) {\n result += range[i];\n count++;\n }\n }\n\n var average = result / count;\n\n if (isNaN(average)) {\n return 0;\n } else {\n return average;\n }\n};\n\nexports.BETA = {};\n\nexports.BETA.DIST = function(x, alpha, beta, cumulative, A, B) {\n if (arguments.length < 4) {\n return error.value;\n }\n\n A = (A === undefined) ? 0 : A;\n B = (B === undefined) ? 1 : B;\n\n x = utils.parseNumber(x);\n alpha = utils.parseNumber(alpha);\n beta = utils.parseNumber(beta);\n A = utils.parseNumber(A);\n B = utils.parseNumber(B);\n if (utils.anyIsError(x, alpha, beta, A, B)) {\n return error.value;\n }\n\n x = (x - A) / (B - A);\n return (cumulative) ? jStat.beta.cdf(x, alpha, beta) : jStat.beta.pdf(x, alpha, beta);\n};\n\nexports.BETA.INV = function(probability, alpha, beta, A, B) {\n A = (A === undefined) ? 0 : A;\n B = (B === undefined) ? 1 : B;\n\n probability = utils.parseNumber(probability);\n alpha = utils.parseNumber(alpha);\n beta = utils.parseNumber(beta);\n A = utils.parseNumber(A);\n B = utils.parseNumber(B);\n if (utils.anyIsError(probability, alpha, beta, A, B)) {\n return error.value;\n }\n\n return jStat.beta.inv(probability, alpha, beta) * (B - A) + A;\n};\n\nexports.BINOM = {};\n\nexports.BINOM.DIST = function(successes, trials, probability, cumulative) {\n successes = utils.parseNumber(successes);\n trials = utils.parseNumber(trials);\n probability = utils.parseNumber(probability);\n cumulative = utils.parseNumber(cumulative);\n if (utils.anyIsError(successes, trials, probability, cumulative)) {\n return error.value;\n }\n return (cumulative) ? jStat.binomial.cdf(successes, trials, probability) : jStat.binomial.pdf(successes, trials, probability);\n};\n\nexports.BINOM.DIST.RANGE = function(trials, probability, successes, successes2) {\n successes2 = (successes2 === undefined) ? successes : successes2;\n\n trials = utils.parseNumber(trials);\n probability = utils.parseNumber(probability);\n successes = utils.parseNumber(successes);\n successes2 = utils.parseNumber(successes2);\n if (utils.anyIsError(trials, probability, successes, successes2)) {\n return error.value;\n }\n\n var result = 0;\n for (var i = successes; i <= successes2; i++) {\n result += mathTrig.COMBIN(trials, i) * Math.pow(probability, i) * Math.pow(1 - probability, trials - i);\n }\n return result;\n};\n\nexports.BINOM.INV = function(trials, probability, alpha) {\n trials = utils.parseNumber(trials);\n probability = utils.parseNumber(probability);\n alpha = utils.parseNumber(alpha);\n if (utils.anyIsError(trials, probability, alpha)) {\n return error.value;\n }\n\n var x = 0;\n while (x <= trials) {\n if (jStat.binomial.cdf(x, trials, probability) >= alpha) {\n return x;\n }\n x++;\n }\n};\n\nexports.CHISQ = {};\n\nexports.CHISQ.DIST = function(x, k, cumulative) {\n x = utils.parseNumber(x);\n k = utils.parseNumber(k);\n if (utils.anyIsError(x, k)) {\n return error.value;\n }\n\n return (cumulative) ? jStat.chisquare.cdf(x, k) : jStat.chisquare.pdf(x, k);\n};\n\nexports.CHISQ.DIST.RT = function(x, k) {\n if (!x | !k) {\n return error.na;\n }\n\n if (x < 1 || k > Math.pow(10, 10)) {\n return error.num;\n }\n\n if ((typeof x !== 'number') || (typeof k !== 'number')) {\n return error.value;\n }\n\n return 1 - jStat.chisquare.cdf(x, k);\n};\n\nexports.CHISQ.INV = function(probability, k) {\n probability = utils.parseNumber(probability);\n k = utils.parseNumber(k);\n if (utils.anyIsError(probability, k)) {\n return error.value;\n }\n return jStat.chisquare.inv(probability, k);\n};\n\nexports.CHISQ.INV.RT = function(p, k) {\n if (!p | !k) {\n return error.na;\n }\n\n if (p < 0 || p > 1 || k < 1 || k > Math.pow(10, 10)) {\n return error.num;\n }\n\n if ((typeof p !== 'number') || (typeof k !== 'number')) {\n return error.value;\n }\n\n return jStat.chisquare.inv(1.0 - p, k);\n};\n\nexports.CHISQ.TEST = function(observed, expected) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n if ((!(observed instanceof Array)) || (!(expected instanceof Array))) {\n return error.value;\n }\n\n if (observed.length !== expected.length) {\n return error.value;\n }\n\n if (observed[0] && expected[0] &&\n observed[0].length !== expected[0].length) {\n return error.value;\n }\n\n var row = observed.length;\n var tmp, i, j;\n\n // Convert single-dimension array into two-dimension array\n for (i = 0; i < row; i ++) {\n if (!(observed[i] instanceof Array)) {\n tmp = observed[i];\n observed[i] = [];\n observed[i].push(tmp);\n }\n if (!(expected[i] instanceof Array)) {\n tmp = expected[i];\n expected[i] = [];\n expected[i].push(tmp);\n }\n }\n\n var col = observed[0].length;\n var dof = (col === 1) ? row-1 : (row-1)*(col-1);\n var xsqr = 0;\n var Pi =Math.PI;\n\n for (i = 0; i < row; i ++) {\n for (j = 0; j < col; j ++) {\n xsqr += Math.pow((observed[i][j] - expected[i][j]), 2) / expected[i][j];\n }\n }\n\n // Get independency by X square and its degree of freedom\n function ChiSq(xsqr, dof) {\n var p = Math.exp(-0.5 * xsqr);\n if((dof%2) === 1) {\n p = p * Math.sqrt(2 * xsqr/Pi);\n }\n var k = dof;\n while(k >= 2) {\n p = p * xsqr/k;\n k = k - 2;\n }\n var t = p;\n var a = dof;\n while (t > 0.0000000001*p) {\n a = a + 2;\n t = t * xsqr/a;\n p = p + t;\n }\n return 1-p;\n }\n\n return Math.round(ChiSq(xsqr, dof) * 1000000) / 1000000;\n};\n\nexports.COLUMN = function(matrix, index) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n if (index < 0) {\n return error.num;\n }\n\n if (!(matrix instanceof Array) || (typeof index !== 'number')) {\n return error.value;\n }\n\n if (matrix.length === 0) {\n return undefined;\n }\n\n return jStat.col(matrix, index);\n};\n\nexports.COLUMNS = function(matrix) {\n if (arguments.length !== 1) {\n return error.na;\n }\n\n if (!(matrix instanceof Array)) {\n return error.value;\n }\n\n if (matrix.length === 0) {\n return 0;\n }\n\n return jStat.cols(matrix);\n};\n\nexports.CONFIDENCE = {};\n\nexports.CONFIDENCE.NORM = function(alpha, sd, n) {\n alpha = utils.parseNumber(alpha);\n sd = utils.parseNumber(sd);\n n = utils.parseNumber(n);\n if (utils.anyIsError(alpha, sd, n)) {\n return error.value;\n }\n return jStat.normalci(1, alpha, sd, n)[1] - 1;\n};\n\nexports.CONFIDENCE.T = function(alpha, sd, n) {\n alpha = utils.parseNumber(alpha);\n sd = utils.parseNumber(sd);\n n = utils.parseNumber(n);\n if (utils.anyIsError(alpha, sd, n)) {\n return error.value;\n }\n return jStat.tci(1, alpha, sd, n)[1] - 1;\n};\n\nexports.CORREL = function(array1, array2) {\n array1 = utils.parseNumberArray(utils.flatten(array1));\n array2 = utils.parseNumberArray(utils.flatten(array2));\n if (utils.anyIsError(array1, array2)) {\n return error.value;\n }\n return jStat.corrcoeff(array1, array2);\n};\n\nexports.COUNT = function() {\n return utils.numbers(utils.flatten(arguments)).length;\n};\n\nexports.COUNTA = function() {\n var range = utils.flatten(arguments);\n return range.length - exports.COUNTBLANK(range);\n};\n\nexports.COUNTIN = function (range, value) {\n var result = 0;\n\n range = utils.flatten(range);\n\n for (var i = 0; i < range.length; i++) {\n if (range[i] === value) {\n result++;\n }\n }\n return result;\n};\n\n\nexports.COUNTBLANK = function() {\n var range = utils.flatten(arguments);\n var blanks = 0;\n var element;\n for (var i = 0; i < range.length; i++) {\n element = range[i];\n if (element === null || element === '') {\n blanks++;\n }\n }\n return blanks;\n};\n\nexports.COUNTIF = function(range, criteria) {\n range = utils.flatten(range);\n\n var isWildcard = criteria === void 0 || criteria === '*';\n\n if (isWildcard) {\n return range.length;\n }\n\n var matches = 0;\n var tokenizedCriteria = evalExpression.parse(criteria + '');\n\n for (var i = 0; i < range.length; i++) {\n var value = range[i];\n var tokens = [evalExpression.createToken(value, evalExpression.TOKEN_TYPE_LITERAL)].concat(tokenizedCriteria);\n\n if (evalExpression.compute(tokens)) {\n matches++;\n }\n }\n\n return matches;\n};\n\nexports.COUNTIFS = function() {\n var args = utils.argsToArray(arguments);\n var results = new Array(utils.flatten(args[0]).length);\n\n for (var i = 0; i < results.length; i++) {\n results[i] = true;\n }\n for (i = 0; i < args.length; i += 2) {\n var range = utils.flatten(args[i]);\n var criteria = args[i + 1];\n var isWildcard = criteria === void 0 || criteria === '*';\n\n if (!isWildcard) {\n var tokenizedCriteria = evalExpression.parse(criteria + '');\n\n for (var j = 0; j < range.length; j++) {\n var value = range[j];\n var tokens = [evalExpression.createToken(value, evalExpression.TOKEN_TYPE_LITERAL)].concat(tokenizedCriteria);\n\n results[j] = results[j] && evalExpression.compute(tokens);\n }\n }\n }\n var result = 0;\n for (i = 0; i < results.length; i++) {\n if (results[i]) {\n result++;\n }\n }\n\n return result;\n};\n\nexports.COUNTUNIQUE = function () {\n return misc.UNIQUE.apply(null, utils.flatten(arguments)).length;\n};\n\nexports.COVARIANCE = {};\n\nexports.COVARIANCE.P = function(array1, array2) {\n array1 = utils.parseNumberArray(utils.flatten(array1));\n array2 = utils.parseNumberArray(utils.flatten(array2));\n if (utils.anyIsError(array1, array2)) {\n return error.value;\n }\n var mean1 = jStat.mean(array1);\n var mean2 = jStat.mean(array2);\n var result = 0;\n var n = array1.length;\n for (var i = 0; i < n; i++) {\n result += (array1[i] - mean1) * (array2[i] - mean2);\n }\n return result / n;\n};\n\nexports.COVARIANCE.S = function(array1, array2) {\n array1 = utils.parseNumberArray(utils.flatten(array1));\n array2 = utils.parseNumberArray(utils.flatten(array2));\n if (utils.anyIsError(array1, array2)) {\n return error.value;\n }\n return jStat.covariance(array1, array2);\n};\n\nexports.DEVSQ = function() {\n var range = utils.parseNumberArray(utils.flatten(arguments));\n if (range instanceof Error) {\n return range;\n }\n var mean = jStat.mean(range);\n var result = 0;\n for (var i = 0; i < range.length; i++) {\n result += Math.pow((range[i] - mean), 2);\n }\n return result;\n};\n\nexports.EXPON = {};\n\nexports.EXPON.DIST = function(x, lambda, cumulative) {\n x = utils.parseNumber(x);\n lambda = utils.parseNumber(lambda);\n if (utils.anyIsError(x, lambda)) {\n return error.value;\n }\n return (cumulative) ? jStat.exponential.cdf(x, lambda) : jStat.exponential.pdf(x, lambda);\n};\n\nexports.F = {};\n\nexports.F.DIST = function(x, d1, d2, cumulative) {\n x = utils.parseNumber(x);\n d1 = utils.parseNumber(d1);\n d2 = utils.parseNumber(d2);\n if (utils.anyIsError(x, d1, d2)) {\n return error.value;\n }\n return (cumulative) ? jStat.centralF.cdf(x, d1, d2) : jStat.centralF.pdf(x, d1, d2);\n};\n\nexports.F.DIST.RT = function(x, d1, d2) {\n if (arguments.length !== 3) {\n return error.na;\n }\n\n if (x < 0 || d1 < 1 || d2 < 1) {\n return error.num;\n }\n\n if ((typeof x !== 'number') || (typeof d1 !== 'number') || (typeof d2 !== 'number')) {\n return error.value;\n }\n\n return 1 - jStat.centralF.cdf(x, d1, d2);\n};\n\nexports.F.INV = function(probability, d1, d2) {\n probability = utils.parseNumber(probability);\n d1 = utils.parseNumber(d1);\n d2 = utils.parseNumber(d2);\n if (utils.anyIsError(probability, d1, d2)) {\n return error.value;\n }\n if (probability <= 0.0 || probability > 1.0) {\n return error.num;\n }\n\n return jStat.centralF.inv(probability, d1, d2);\n};\n\nexports.F.INV.RT = function(p, d1, d2) {\n if (arguments.length !== 3) {\n return error.na;\n }\n\n if (p < 0 || p > 1 || d1 < 1 || d1 > Math.pow(10, 10) || d2 < 1 || d2 > Math.pow(10, 10)) {\n return error.num;\n }\n\n if ((typeof p !== 'number') || (typeof d1 !== 'number') || (typeof d2 !== 'number')) {\n return error.value;\n }\n\n return jStat.centralF.inv(1.0 - p, d1, d2);\n};\n\nexports.F.TEST = function(array1, array2) {\n if (!array1 || !array2) {\n return error.na;\n }\n\n if (!(array1 instanceof Array) || !(array2 instanceof Array)) {\n return error.na;\n }\n\n if (array1.length < 2 || array2.length < 2) {\n return error.div0;\n }\n\n var sumOfSquares = function(values, x1) {\n var sum = 0;\n for (var i = 0; i < values.length; i++) {\n sum +=Math.pow((values[i] - x1), 2);\n }\n return sum;\n };\n\n var x1 = mathTrig.SUM(array1) / array1.length;\n var x2 = mathTrig.SUM(array2) / array2.length;\n var sum1 = sumOfSquares(array1, x1) / (array1.length - 1);\n var sum2 = sumOfSquares(array2, x2) / (array2.length - 1);\n\n return sum1 / sum2;\n};\n\nexports.FISHER = function(x) {\n x = utils.parseNumber(x);\n if (x instanceof Error) {\n return x;\n }\n return Math.log((1 + x) / (1 - x)) / 2;\n};\n\nexports.FISHERINV = function(y) {\n y = utils.parseNumber(y);\n if (y instanceof Error) {\n return y;\n }\n var e2y = Math.exp(2 * y);\n return (e2y - 1) / (e2y + 1);\n};\n\nexports.FORECAST = function(x, data_y, data_x) {\n x = utils.parseNumber(x);\n data_y = utils.parseNumberArray(utils.flatten(data_y));\n data_x = utils.parseNumberArray(utils.flatten(data_x));\n if (utils.anyIsError(x, data_y, data_x)) {\n return error.value;\n }\n var xmean = jStat.mean(data_x);\n var ymean = jStat.mean(data_y);\n var n = data_x.length;\n var num = 0;\n var den = 0;\n for (var i = 0; i < n; i++) {\n num += (data_x[i] - xmean) * (data_y[i] - ymean);\n den += Math.pow(data_x[i] - xmean, 2);\n }\n var b = num / den;\n var a = ymean - b * xmean;\n return a + b * x;\n};\n\nexports.FREQUENCY = function(data, bins) {\n data = utils.parseNumberArray(utils.flatten(data));\n bins = utils.parseNumberArray(utils.flatten(bins));\n if (utils.anyIsError(data, bins)) {\n return error.value;\n }\n var n = data.length;\n var b = bins.length;\n var r = [];\n for (var i = 0; i <= b; i++) {\n r[i] = 0;\n for (var j = 0; j < n; j++) {\n if (i === 0) {\n if (data[j] <= bins[0]) {\n r[0] += 1;\n }\n } else if (i < b) {\n if (data[j] > bins[i - 1] && data[j] <= bins[i]) {\n r[i] += 1;\n }\n } else if (i === b) {\n if (data[j] > bins[b - 1]) {\n r[b] += 1;\n }\n }\n }\n }\n return r;\n};\n\n\nexports.GAMMA = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n\n if (number === 0) {\n return error.num;\n }\n\n if (parseInt(number, 10) === number && number < 0) {\n return error.num;\n }\n\n return jStat.gammafn(number);\n};\n\nexports.GAMMA.DIST = function(value, alpha, beta, cumulative) {\n if (arguments.length !== 4) {\n return error.na;\n }\n\n if (value < 0 || alpha <= 0 || beta <= 0) {\n return error.value;\n }\n\n if ((typeof value !== 'number') || (typeof alpha !== 'number') || (typeof beta !== 'number')) {\n return error.value;\n }\n\n return cumulative ? jStat.gamma.cdf(value, alpha, beta, true) : jStat.gamma.pdf(value, alpha, beta, false);\n};\n\nexports.GAMMA.INV = function(probability, alpha, beta) {\n if (arguments.length !== 3) {\n return error.na;\n }\n\n if (probability < 0 || probability > 1 || alpha <= 0 || beta <= 0) {\n return error.num;\n }\n\n if ((typeof probability !== 'number') || (typeof alpha !== 'number') || (typeof beta !== 'number')) {\n return error.value;\n }\n\n return jStat.gamma.inv(probability, alpha, beta);\n};\n\nexports.GAMMALN = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return jStat.gammaln(number);\n};\n\nexports.GAMMALN.PRECISE = function(x) {\n if (arguments.length !== 1) {\n return error.na;\n }\n\n if (x <= 0) {\n return error.num;\n }\n\n if (typeof x !== 'number') {\n return error.value;\n }\n\n return jStat.gammaln(x);\n};\n\nexports.GAUSS = function(z) {\n z = utils.parseNumber(z);\n if (z instanceof Error) {\n return z;\n }\n return jStat.normal.cdf(z, 0, 1) - 0.5;\n};\n\nexports.GEOMEAN = function() {\n var args = utils.parseNumberArray(utils.flatten(arguments));\n if (args instanceof Error) {\n return args;\n }\n return jStat.geomean(args);\n};\n\nexports.GROWTH = function(known_y, known_x, new_x, use_const) {\n // Credits: Ilmari Karonen (http://stackoverflow.com/questions/14161990/how-to-implement-growth-function-in-javascript)\n\n known_y = utils.parseNumberArray(known_y);\n if (known_y instanceof Error) {\n return known_y;\n }\n\n // Default values for optional parameters:\n var i;\n if (known_x === undefined) {\n known_x = [];\n for (i = 1; i <= known_y.length; i++) {\n known_x.push(i);\n }\n }\n if (new_x === undefined) {\n new_x = [];\n for (i = 1; i <= known_y.length; i++) {\n new_x.push(i);\n }\n }\n\n known_x = utils.parseNumberArray(known_x);\n new_x = utils.parseNumberArray(new_x);\n if (utils.anyIsError(known_x, new_x)) {\n return error.value;\n }\n\n\n if (use_const === undefined) {\n use_const = true;\n }\n\n // Calculate sums over the data:\n var n = known_y.length;\n var avg_x = 0;\n var avg_y = 0;\n var avg_xy = 0;\n var avg_xx = 0;\n for (i = 0; i < n; i++) {\n var x = known_x[i];\n var y = Math.log(known_y[i]);\n avg_x += x;\n avg_y += y;\n avg_xy += x * y;\n avg_xx += x * x;\n }\n avg_x /= n;\n avg_y /= n;\n avg_xy /= n;\n avg_xx /= n;\n\n // Compute linear regression coefficients:\n var beta;\n var alpha;\n if (use_const) {\n beta = (avg_xy - avg_x * avg_y) / (avg_xx - avg_x * avg_x);\n alpha = avg_y - beta * avg_x;\n } else {\n beta = avg_xy / avg_xx;\n alpha = 0;\n }\n\n // Compute and return result array:\n var new_y = [];\n for (i = 0; i < new_x.length; i++) {\n new_y.push(Math.exp(alpha + beta * new_x[i]));\n }\n return new_y;\n};\n\nexports.HARMEAN = function() {\n var range = utils.parseNumberArray(utils.flatten(arguments));\n if (range instanceof Error) {\n return range;\n }\n var n = range.length;\n var den = 0;\n for (var i = 0; i < n; i++) {\n den += 1 / range[i];\n }\n return n / den;\n};\n\nexports.HYPGEOM = {};\n\nexports.HYPGEOM.DIST = function(x, n, M, N, cumulative) {\n x = utils.parseNumber(x);\n n = utils.parseNumber(n);\n M = utils.parseNumber(M);\n N = utils.parseNumber(N);\n if (utils.anyIsError(x, n, M, N)) {\n return error.value;\n }\n\n function pdf(x, n, M, N) {\n return mathTrig.COMBIN(M, x) * mathTrig.COMBIN(N - M, n - x) / mathTrig.COMBIN(N, n);\n }\n\n function cdf(x, n, M, N) {\n var result = 0;\n for (var i = 0; i <= x; i++) {\n result += pdf(i, n, M, N);\n }\n return result;\n }\n\n return (cumulative) ? cdf(x, n, M, N) : pdf(x, n, M, N);\n};\n\nexports.INTERCEPT = function(known_y, known_x) {\n known_y = utils.parseNumberArray(known_y);\n known_x = utils.parseNumberArray(known_x);\n if (utils.anyIsError(known_y, known_x)) {\n return error.value;\n }\n if (known_y.length !== known_x.length) {\n return error.na;\n }\n return exports.FORECAST(0, known_y, known_x);\n};\n\nexports.KURT = function() {\n var range = utils.parseNumberArray(utils.flatten(arguments));\n if (range instanceof Error) {\n return range;\n }\n var mean = jStat.mean(range);\n var n = range.length;\n var sigma = 0;\n for (var i = 0; i < n; i++) {\n sigma += Math.pow(range[i] - mean, 4);\n }\n sigma = sigma / Math.pow(jStat.stdev(range, true), 4);\n return ((n * (n + 1)) / ((n - 1) * (n - 2) * (n - 3))) * sigma - 3 * (n - 1) * (n - 1) / ((n - 2) * (n - 3));\n};\n\nexports.LARGE = function(range, k) {\n range = utils.parseNumberArray(utils.flatten(range));\n k = utils.parseNumber(k);\n if (utils.anyIsError(range, k)) {\n return range;\n }\n return range.sort(function(a, b) {\n return b - a;\n })[k - 1];\n};\n\nexports.LINEST = function(data_y, data_x) {\n data_y = utils.parseNumberArray(utils.flatten(data_y));\n data_x = utils.parseNumberArray(utils.flatten(data_x));\n if (utils.anyIsError(data_y, data_x)) {\n return error.value;\n }\n var ymean = jStat.mean(data_y);\n var xmean = jStat.mean(data_x);\n var n = data_x.length;\n var num = 0;\n var den = 0;\n for (var i = 0; i < n; i++) {\n num += (data_x[i] - xmean) * (data_y[i] - ymean);\n den += Math.pow(data_x[i] - xmean, 2);\n }\n var m = num / den;\n var b = ymean - m * xmean;\n return [m, b];\n};\n\n// According to Microsoft:\n// http://office.microsoft.com/en-us/starter-help/logest-function-HP010342665.aspx\n// LOGEST returns are based on the following linear model:\n// ln y = x1 ln m1 + ... + xn ln mn + ln b\nexports.LOGEST = function(data_y, data_x) {\n data_y = utils.parseNumberArray(utils.flatten(data_y));\n data_x = utils.parseNumberArray(utils.flatten(data_x));\n if (utils.anyIsError(data_y, data_x)) {\n return error.value;\n }\n for (var i = 0; i < data_y.length; i ++) {\n data_y[i] = Math.log(data_y[i]);\n }\n\n var result = exports.LINEST(data_y, data_x);\n result[0] = Math.round(Math.exp(result[0])*1000000)/1000000;\n result[1] = Math.round(Math.exp(result[1])*1000000)/1000000;\n return result;\n};\n\nexports.LOGNORM = {};\n\nexports.LOGNORM.DIST = function(x, mean, sd, cumulative) {\n x = utils.parseNumber(x);\n mean = utils.parseNumber(mean);\n sd = utils.parseNumber(sd);\n if (utils.anyIsError(x, mean, sd)) {\n return error.value;\n }\n return (cumulative) ? jStat.lognormal.cdf(x, mean, sd) : jStat.lognormal.pdf(x, mean, sd);\n};\n\nexports.LOGNORM.INV = function(probability, mean, sd) {\n probability = utils.parseNumber(probability);\n mean = utils.parseNumber(mean);\n sd = utils.parseNumber(sd);\n if (utils.anyIsError(probability, mean, sd)) {\n return error.value;\n }\n return jStat.lognormal.inv(probability, mean, sd);\n};\n\nexports.MAX = function() {\n var range = utils.numbers(utils.flatten(arguments));\n return (range.length === 0) ? 0 : Math.max.apply(Math, range);\n};\n\nexports.MAXA = function() {\n var range = utils.arrayValuesToNumbers(utils.flatten(arguments));\n return (range.length === 0) ? 0 : Math.max.apply(Math, range);\n};\n\nexports.MEDIAN = function() {\n var range = utils.arrayValuesToNumbers(utils.flatten(arguments));\n var result = jStat.median(range);\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\nexports.MIN = function() {\n var range = utils.numbers(utils.flatten(arguments));\n return (range.length === 0) ? 0 : Math.min.apply(Math, range);\n};\n\nexports.MINA = function() {\n var range = utils.arrayValuesToNumbers(utils.flatten(arguments));\n return (range.length === 0) ? 0 : Math.min.apply(Math, range);\n};\n\nexports.MODE = {};\n\nexports.MODE.MULT = function() {\n // Credits: Roönaän\n var range = utils.parseNumberArray(utils.flatten(arguments));\n if (range instanceof Error) {\n return range;\n }\n var n = range.length;\n var count = {};\n var maxItems = [];\n var max = 0;\n var currentItem;\n\n for (var i = 0; i < n; i++) {\n currentItem = range[i];\n count[currentItem] = count[currentItem] ? count[currentItem] + 1 : 1;\n if (count[currentItem] > max) {\n max = count[currentItem];\n maxItems = [];\n }\n if (count[currentItem] === max) {\n maxItems[maxItems.length] = currentItem;\n }\n }\n return maxItems;\n};\n\nexports.MODE.SNGL = function() {\n var range = utils.parseNumberArray(utils.flatten(arguments));\n if (range instanceof Error) {\n return range;\n }\n return exports.MODE.MULT(range).sort(function(a, b) {\n return a - b;\n })[0];\n};\n\nexports.NEGBINOM = {};\n\nexports.NEGBINOM.DIST = function(k, r, p, cumulative) {\n k = utils.parseNumber(k);\n r = utils.parseNumber(r);\n p = utils.parseNumber(p);\n if (utils.anyIsError(k, r, p)) {\n return error.value;\n }\n return (cumulative) ? jStat.negbin.cdf(k, r, p) : jStat.negbin.pdf(k, r, p);\n};\n\nexports.NORM = {};\n\nexports.NORM.DIST = function(x, mean, sd, cumulative) {\n x = utils.parseNumber(x);\n mean = utils.parseNumber(mean);\n sd = utils.parseNumber(sd);\n if (utils.anyIsError(x, mean, sd)) {\n return error.value;\n }\n if (sd <= 0) {\n return error.num;\n }\n\n // Return normal distribution computed by jStat [http://jstat.org]\n return (cumulative) ? jStat.normal.cdf(x, mean, sd) : jStat.normal.pdf(x, mean, sd);\n};\n\nexports.NORM.INV = function(probability, mean, sd) {\n probability = utils.parseNumber(probability);\n mean = utils.parseNumber(mean);\n sd = utils.parseNumber(sd);\n if (utils.anyIsError(probability, mean, sd)) {\n return error.value;\n }\n return jStat.normal.inv(probability, mean, sd);\n};\n\nexports.NORM.S = {};\n\nexports.NORM.S.DIST = function(z, cumulative) {\n z = utils.parseNumber(z);\n if (z instanceof Error) {\n return error.value;\n }\n return (cumulative) ? jStat.normal.cdf(z, 0, 1) : jStat.normal.pdf(z, 0, 1);\n};\n\nexports.NORM.S.INV = function(probability) {\n probability = utils.parseNumber(probability);\n if (probability instanceof Error) {\n return error.value;\n }\n return jStat.normal.inv(probability, 0, 1);\n};\n\nexports.PEARSON = function(data_x, data_y) {\n data_y = utils.parseNumberArray(utils.flatten(data_y));\n data_x = utils.parseNumberArray(utils.flatten(data_x));\n if (utils.anyIsError(data_y, data_x)) {\n return error.value;\n }\n var xmean = jStat.mean(data_x);\n var ymean = jStat.mean(data_y);\n var n = data_x.length;\n var num = 0;\n var den1 = 0;\n var den2 = 0;\n for (var i = 0; i < n; i++) {\n num += (data_x[i] - xmean) * (data_y[i] - ymean);\n den1 += Math.pow(data_x[i] - xmean, 2);\n den2 += Math.pow(data_y[i] - ymean, 2);\n }\n return num / Math.sqrt(den1 * den2);\n};\n\nexports.PERCENTILE = {};\n\nexports.PERCENTILE.EXC = function(array, k) {\n array = utils.parseNumberArray(utils.flatten(array));\n k = utils.parseNumber(k);\n if (utils.anyIsError(array, k)) {\n return error.value;\n }\n array = array.sort(function(a, b) {\n {\n return a - b;\n }\n });\n var n = array.length;\n if (k < 1 / (n + 1) || k > 1 - 1 / (n + 1)) {\n return error.num;\n }\n var l = k * (n + 1) - 1;\n var fl = Math.floor(l);\n return utils.cleanFloat((l === fl) ? array[l] : array[fl] + (l - fl) * (array[fl + 1] - array[fl]));\n};\n\nexports.PERCENTILE.INC = function(array, k) {\n array = utils.parseNumberArray(utils.flatten(array));\n k = utils.parseNumber(k);\n if (utils.anyIsError(array, k)) {\n return error.value;\n }\n array = array.sort(function(a, b) {\n return a - b;\n });\n var n = array.length;\n var l = k * (n - 1);\n var fl = Math.floor(l);\n return utils.cleanFloat((l === fl) ? array[l] : array[fl] + (l - fl) * (array[fl + 1] - array[fl]));\n};\n\nexports.PERCENTRANK = {};\n\nexports.PERCENTRANK.EXC = function(array, x, significance) {\n significance = (significance === undefined) ? 3 : significance;\n array = utils.parseNumberArray(utils.flatten(array));\n x = utils.parseNumber(x);\n significance = utils.parseNumber(significance);\n if (utils.anyIsError(array, x, significance)) {\n return error.value;\n }\n array = array.sort(function(a, b) {\n return a - b;\n });\n var uniques = misc.UNIQUE.apply(null, array);\n var n = array.length;\n var m = uniques.length;\n var power = Math.pow(10, significance);\n var result = 0;\n var match = false;\n var i = 0;\n while (!match && i < m) {\n if (x === uniques[i]) {\n result = (array.indexOf(uniques[i]) + 1) / (n + 1);\n match = true;\n } else if (x >= uniques[i] && (x < uniques[i + 1] || i === m - 1)) {\n result = (array.indexOf(uniques[i]) + 1 + (x - uniques[i]) / (uniques[i + 1] - uniques[i])) / (n + 1);\n match = true;\n }\n i++;\n }\n return Math.floor(result * power) / power;\n};\n\nexports.PERCENTRANK.INC = function(array, x, significance) {\n significance = (significance === undefined) ? 3 : significance;\n array = utils.parseNumberArray(utils.flatten(array));\n x = utils.parseNumber(x);\n significance = utils.parseNumber(significance);\n if (utils.anyIsError(array, x, significance)) {\n return error.value;\n }\n array = array.sort(function(a, b) {\n return a - b;\n });\n var uniques = misc.UNIQUE.apply(null, array);\n var n = array.length;\n var m = uniques.length;\n var power = Math.pow(10, significance);\n var result = 0;\n var match = false;\n var i = 0;\n while (!match && i < m) {\n if (x === uniques[i]) {\n result = array.indexOf(uniques[i]) / (n - 1);\n match = true;\n } else if (x >= uniques[i] && (x < uniques[i + 1] || i === m - 1)) {\n result = (array.indexOf(uniques[i]) + (x - uniques[i]) / (uniques[i + 1] - uniques[i])) / (n - 1);\n match = true;\n }\n i++;\n }\n return Math.floor(result * power) / power;\n};\n\nexports.PERMUT = function(number, number_chosen) {\n number = utils.parseNumber(number);\n number_chosen = utils.parseNumber(number_chosen);\n if (utils.anyIsError(number, number_chosen)) {\n return error.value;\n }\n return mathTrig.FACT(number) / mathTrig.FACT(number - number_chosen);\n};\n\nexports.PERMUTATIONA = function(number, number_chosen) {\n number = utils.parseNumber(number);\n number_chosen = utils.parseNumber(number_chosen);\n if (utils.anyIsError(number, number_chosen)) {\n return error.value;\n }\n return Math.pow(number, number_chosen);\n};\n\nexports.PHI = function(x) {\n x = utils.parseNumber(x);\n if (x instanceof Error) {\n return error.value;\n }\n return Math.exp(-0.5 * x * x) / SQRT2PI;\n};\n\nexports.POISSON = {};\n\nexports.POISSON.DIST = function(x, mean, cumulative) {\n x = utils.parseNumber(x);\n mean = utils.parseNumber(mean);\n if (utils.anyIsError(x, mean)) {\n return error.value;\n }\n return (cumulative) ? jStat.poisson.cdf(x, mean) : jStat.poisson.pdf(x, mean);\n};\n\nexports.PROB = function(range, probability, lower, upper) {\n if (lower === undefined) {\n return 0;\n }\n upper = (upper === undefined) ? lower : upper;\n\n range = utils.parseNumberArray(utils.flatten(range));\n probability = utils.parseNumberArray(utils.flatten(probability));\n lower = utils.parseNumber(lower);\n upper = utils.parseNumber(upper);\n if (utils.anyIsError(range, probability, lower, upper)) {\n return error.value;\n }\n\n if (lower === upper) {\n return (range.indexOf(lower) >= 0) ? probability[range.indexOf(lower)] : 0;\n }\n\n var sorted = range.sort(function(a, b) {\n return a - b;\n });\n var n = sorted.length;\n var result = 0;\n for (var i = 0; i < n; i++) {\n if (sorted[i] >= lower && sorted[i] <= upper) {\n result += probability[range.indexOf(sorted[i])];\n }\n }\n return result;\n};\n\nexports.QUARTILE = {};\n\nexports.QUARTILE.EXC = function(range, quart) {\n range = utils.parseNumberArray(utils.flatten(range));\n quart = utils.parseNumber(quart);\n if (utils.anyIsError(range, quart)) {\n return error.value;\n }\n switch (quart) {\n case 1:\n return exports.PERCENTILE.EXC(range, 0.25);\n case 2:\n return exports.PERCENTILE.EXC(range, 0.5);\n case 3:\n return exports.PERCENTILE.EXC(range, 0.75);\n default:\n return error.num;\n }\n};\n\nexports.QUARTILE.INC = function(range, quart) {\n range = utils.parseNumberArray(utils.flatten(range));\n quart = utils.parseNumber(quart);\n if (utils.anyIsError(range, quart)) {\n return error.value;\n }\n switch (quart) {\n case 1:\n return exports.PERCENTILE.INC(range, 0.25);\n case 2:\n return exports.PERCENTILE.INC(range, 0.5);\n case 3:\n return exports.PERCENTILE.INC(range, 0.75);\n default:\n return error.num;\n }\n};\n\nexports.RANK = {};\n\nexports.RANK.AVG = function(number, range, order) {\n number = utils.parseNumber(number);\n range = utils.parseNumberArray(utils.flatten(range));\n if (utils.anyIsError(number, range)) {\n return error.value;\n }\n range = utils.flatten(range);\n order = order || false;\n var sort = (order) ? function(a, b) {\n return a - b;\n } : function(a, b) {\n return b - a;\n };\n range = range.sort(sort);\n\n var length = range.length;\n var count = 0;\n for (var i = 0; i < length; i++) {\n if (range[i] === number) {\n count++;\n }\n }\n\n return (count > 1) ? (2 * range.indexOf(number) + count + 1) / 2 : range.indexOf(number) + 1;\n};\n\nexports.RANK.EQ = function(number, range, order) {\n number = utils.parseNumber(number);\n range = utils.parseNumberArray(utils.flatten(range));\n if (utils.anyIsError(number, range)) {\n return error.value;\n }\n order = order || false;\n var sort = (order) ? function(a, b) {\n return a - b;\n } : function(a, b) {\n return b - a;\n };\n range = range.sort(sort);\n return range.indexOf(number) + 1;\n};\n\nexports.ROW = function(matrix, index) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n if (index < 0) {\n return error.num;\n }\n\n if (!(matrix instanceof Array) || (typeof index !== 'number')) {\n return error.value;\n }\n\n if (matrix.length === 0) {\n return undefined;\n }\n\n return jStat.row(matrix, index);\n};\n\nexports.ROWS = function(matrix) {\n if (arguments.length !== 1) {\n return error.na;\n }\n\n if (!(matrix instanceof Array)) {\n return error.value;\n }\n\n if (matrix.length === 0) {\n return 0;\n }\n\n return jStat.rows(matrix);\n};\n\nexports.RSQ = function(data_x, data_y) { // no need to flatten here, PEARSON will take care of that\n data_x = utils.parseNumberArray(utils.flatten(data_x));\n data_y = utils.parseNumberArray(utils.flatten(data_y));\n if (utils.anyIsError(data_x, data_y)) {\n return error.value;\n }\n return Math.pow(exports.PEARSON(data_x, data_y), 2);\n};\n\nexports.SKEW = function() {\n var range = utils.parseNumberArray(utils.flatten(arguments));\n if (range instanceof Error) {\n return range;\n }\n var mean = jStat.mean(range);\n var n = range.length;\n var sigma = 0;\n for (var i = 0; i < n; i++) {\n sigma += Math.pow(range[i] - mean, 3);\n }\n return n * sigma / ((n - 1) * (n - 2) * Math.pow(jStat.stdev(range, true), 3));\n};\n\nexports.SKEW.P = function() {\n var range = utils.parseNumberArray(utils.flatten(arguments));\n if (range instanceof Error) {\n return range;\n }\n var mean = jStat.mean(range);\n var n = range.length;\n var m2 = 0;\n var m3 = 0;\n for (var i = 0; i < n; i++) {\n m3 += Math.pow(range[i] - mean, 3);\n m2 += Math.pow(range[i] - mean, 2);\n }\n m3 = m3 / n;\n m2 = m2 / n;\n return m3 / Math.pow(m2, 3 / 2);\n};\n\nexports.SLOPE = function(data_y, data_x) {\n data_y = utils.parseNumberArray(utils.flatten(data_y));\n data_x = utils.parseNumberArray(utils.flatten(data_x));\n if (utils.anyIsError(data_y, data_x)) {\n return error.value;\n }\n var xmean = jStat.mean(data_x);\n var ymean = jStat.mean(data_y);\n var n = data_x.length;\n var num = 0;\n var den = 0;\n for (var i = 0; i < n; i++) {\n num += (data_x[i] - xmean) * (data_y[i] - ymean);\n den += Math.pow(data_x[i] - xmean, 2);\n }\n return num / den;\n};\n\nexports.SMALL = function(range, k) {\n range = utils.parseNumberArray(utils.flatten(range));\n k = utils.parseNumber(k);\n if (utils.anyIsError(range, k)) {\n return range;\n }\n return range.sort(function(a, b) {\n return a - b;\n })[k - 1];\n};\n\nexports.STANDARDIZE = function(x, mean, sd) {\n x = utils.parseNumber(x);\n mean = utils.parseNumber(mean);\n sd = utils.parseNumber(sd);\n if (utils.anyIsError(x, mean, sd)) {\n return error.value;\n }\n return (x - mean) / sd;\n};\n\nexports.STDEV = {};\n\nexports.STDEV.P = function() {\n var v = exports.VAR.P.apply(this, arguments);\n var result = Math.sqrt(v);\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\nexports.STDEV.S = function() {\n var v = exports.VAR.S.apply(this, arguments);\n var result = Math.sqrt(v);\n\n return result;\n};\n\nexports.STDEVA = function() {\n var v = exports.VARA.apply(this, arguments);\n var result = Math.sqrt(v);\n\n return result;\n};\n\nexports.STDEVPA = function() {\n var v = exports.VARPA.apply(this, arguments);\n var result = Math.sqrt(v);\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\n\nexports.STEYX = function(data_y, data_x) {\n data_y = utils.parseNumberArray(utils.flatten(data_y));\n data_x = utils.parseNumberArray(utils.flatten(data_x));\n if (utils.anyIsError(data_y, data_x)) {\n return error.value;\n }\n var xmean = jStat.mean(data_x);\n var ymean = jStat.mean(data_y);\n var n = data_x.length;\n var lft = 0;\n var num = 0;\n var den = 0;\n for (var i = 0; i < n; i++) {\n lft += Math.pow(data_y[i] - ymean, 2);\n num += (data_x[i] - xmean) * (data_y[i] - ymean);\n den += Math.pow(data_x[i] - xmean, 2);\n }\n return Math.sqrt((lft - num * num / den) / (n - 2));\n};\n\nexports.TRANSPOSE = function(matrix) {\n if (!matrix) {\n return error.na;\n }\n return jStat.transpose(matrix);\n};\n\nexports.T = text.T;\n\nexports.T.DIST = function(x, df, cumulative) {\n x = utils.parseNumber(x);\n df = utils.parseNumber(df);\n if (utils.anyIsError(x, df)) {\n return error.value;\n }\n return (cumulative) ? jStat.studentt.cdf(x, df) : jStat.studentt.pdf(x, df);\n};\n\nexports.T.DIST['2T'] = function(x, df) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n if (x < 0 || df < 1) {\n return error.num;\n }\n\n if ((typeof x !== 'number') || (typeof df !== 'number')) {\n return error.value;\n }\n\n return (1 - jStat.studentt.cdf(x , df)) * 2;\n};\n\nexports.T.DIST.RT = function(x, df) {\n if (arguments.length !== 2) {\n return error.na;\n }\n\n if (x < 0 || df < 1) {\n return error.num;\n }\n\n if ((typeof x !== 'number') || (typeof df !== 'number')) {\n return error.value;\n }\n\n return 1 - jStat.studentt.cdf(x , df);\n};\n\nexports.T.INV = function(probability, df) {\n probability = utils.parseNumber(probability);\n df = utils.parseNumber(df);\n if (utils.anyIsError(probability, df)) {\n return error.value;\n }\n return jStat.studentt.inv(probability, df);\n};\n\nexports.T.INV['2T'] = function(probability, df) {\n probability = utils.parseNumber(probability);\n df = utils.parseNumber(df);\n if (probability <= 0 || probability > 1 || df < 1) {\n return error.num;\n }\n if (utils.anyIsError(probability, df)) {\n return error.value;\n }\n return Math.abs(jStat.studentt.inv(probability/2, df));\n};\n\n// The algorithm can be found here:\n// http://www.chem.uoa.gr/applets/AppletTtest/Appl_Ttest2.html\nexports.T.TEST = function(data_x, data_y) {\n data_x = utils.parseNumberArray(utils.flatten(data_x));\n data_y = utils.parseNumberArray(utils.flatten(data_y));\n if (utils.anyIsError(data_x, data_y)) {\n return error.value;\n }\n\n var mean_x = jStat.mean(data_x);\n var mean_y = jStat.mean(data_y);\n var s_x = 0;\n var s_y = 0;\n var i;\n\n for (i = 0; i < data_x.length; i++) {\n s_x += Math.pow(data_x[i] - mean_x, 2);\n }\n for (i = 0; i < data_y.length; i++) {\n s_y += Math.pow(data_y[i] - mean_y, 2);\n }\n\n s_x = s_x / (data_x.length-1);\n s_y = s_y / (data_y.length-1);\n\n var t = Math.abs(mean_x - mean_y) / Math.sqrt(s_x/data_x.length + s_y/data_y.length);\n\n return exports.T.DIST['2T'](t, data_x.length+data_y.length-2);\n};\n\nexports.TREND = function(data_y, data_x, new_data_x) {\n data_y = utils.parseNumberArray(utils.flatten(data_y));\n data_x = utils.parseNumberArray(utils.flatten(data_x));\n new_data_x = utils.parseNumberArray(utils.flatten(new_data_x));\n if (utils.anyIsError(data_y, data_x, new_data_x)) {\n return error.value;\n }\n var linest = exports.LINEST(data_y, data_x);\n var m = linest[0];\n var b = linest[1];\n var result = [];\n\n new_data_x.forEach(function(x) {\n result.push(m * x + b);\n });\n\n return result;\n};\n\nexports.TRIMMEAN = function(range, percent) {\n range = utils.parseNumberArray(utils.flatten(range));\n percent = utils.parseNumber(percent);\n if (utils.anyIsError(range, percent)) {\n return error.value;\n }\n var trim = mathTrig.FLOOR(range.length * percent, 2) / 2;\n return jStat.mean(utils.initial(utils.rest(range.sort(function(a, b) {\n return a - b;\n }), trim), trim));\n};\n\nexports.VAR = {};\n\nexports.VAR.P = function() {\n var range = utils.numbers(utils.flatten(arguments));\n var n = range.length;\n var sigma = 0;\n var mean = exports.AVERAGE(range);\n var result;\n for (var i = 0; i < n; i++) {\n sigma += Math.pow(range[i] - mean, 2);\n }\n result = sigma / n;\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\nexports.VAR.S = function() {\n var range = utils.numbers(utils.flatten(arguments));\n var n = range.length;\n var sigma = 0;\n var mean = exports.AVERAGE(range);\n for (var i = 0; i < n; i++) {\n sigma += Math.pow(range[i] - mean, 2);\n }\n return sigma / (n - 1);\n};\n\nexports.VARA = function() {\n var range = utils.flatten(arguments);\n var n = range.length;\n var sigma = 0;\n var count = 0;\n var mean = exports.AVERAGEA(range);\n for (var i = 0; i < n; i++) {\n var el = range[i];\n if (typeof el === 'number') {\n sigma += Math.pow(el - mean, 2);\n } else if (el === true) {\n sigma += Math.pow(1 - mean, 2);\n } else {\n sigma += Math.pow(0 - mean, 2);\n }\n\n if (el !== null) {\n count++;\n }\n }\n return sigma / (count - 1);\n};\n\nexports.VARPA = function() {\n var range = utils.flatten(arguments);\n var n = range.length;\n var sigma = 0;\n var count = 0;\n var mean = exports.AVERAGEA(range);\n var result;\n for (var i = 0; i < n; i++) {\n var el = range[i];\n if (typeof el === 'number') {\n sigma += Math.pow(el - mean, 2);\n } else if (el === true) {\n sigma += Math.pow(1 - mean, 2);\n } else {\n sigma += Math.pow(0 - mean, 2);\n }\n\n if (el !== null) {\n count++;\n }\n }\n result = sigma / count;\n\n if (isNaN(result)) {\n result = error.num;\n }\n\n return result;\n};\n\nexports.WEIBULL = {};\n\nexports.WEIBULL.DIST = function(x, alpha, beta, cumulative) {\n x = utils.parseNumber(x);\n alpha = utils.parseNumber(alpha);\n beta = utils.parseNumber(beta);\n if (utils.anyIsError(x, alpha, beta)) {\n return error.value;\n }\n return (cumulative) ? 1 - Math.exp(-Math.pow(x / beta, alpha)) : Math.pow(x, alpha - 1) * Math.exp(-Math.pow(x / beta, alpha)) * alpha / Math.pow(beta, alpha);\n};\n\nexports.Z = {};\n\nexports.Z.TEST = function(range, x, sd) {\n range = utils.parseNumberArray(utils.flatten(range));\n x = utils.parseNumber(x);\n if (utils.anyIsError(range, x)) {\n return error.value;\n }\n\n sd = sd || exports.STDEV.S(range);\n var n = range.length;\n return 1 - exports.NORM.S.DIST((exports.AVERAGE(range) - x) / (sd / Math.sqrt(n)), true);\n};\n","var utils = require('./utils/common');\nvar error = require('./utils/error');\n\n//TODO\nexports.ASC = function() {\n throw new Error('ASC is not implemented');\n};\n\n//TODO\nexports.BAHTTEXT = function() {\n throw new Error('BAHTTEXT is not implemented');\n};\n\nexports.CHAR = function(number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return String.fromCharCode(number);\n};\n\nexports.CLEAN = function(text) {\n text = text || '';\n var re = /[\\0-\\x1F]/g;\n return text.replace(re, \"\");\n};\n\nexports.CODE = function(text) {\n text = text || '';\n var result = text.charCodeAt(0);\n\n if (isNaN(result)) {\n result = error.na;\n }\n return result;\n};\n\nexports.CONCATENATE = function() {\n var args = utils.flatten(arguments);\n\n var trueFound = 0;\n while ((trueFound = args.indexOf(true)) > -1) {\n args[trueFound] = 'TRUE';\n }\n\n var falseFound = 0;\n while ((falseFound = args.indexOf(false)) > -1) {\n args[falseFound] = 'FALSE';\n }\n\n return args.join('');\n};\n\n//TODO\nexports.DBCS = function() {\n throw new Error('DBCS is not implemented');\n};\n\n//TODO\nexports.DOLLAR = function() {\n throw new Error('DOLLAR is not implemented');\n};\n\nexports.EXACT = function(text1, text2) {\n if (arguments.length !== 2) {\n return error.na;\n }\n return text1 === text2;\n};\n\nexports.FIND = function(find_text, within_text, position) {\n if (arguments.length < 2) {\n return error.na;\n }\n position = (position === undefined) ? 0 : position;\n return within_text ? within_text.indexOf(find_text, position - 1) + 1 : null;\n};\n\n//TODO\nexports.FIXED = function() {\n throw new Error('FIXED is not implemented');\n};\n\nexports.HTML2TEXT = function (value) {\n var result = '';\n\n if (value) {\n if (value instanceof Array) {\n value.forEach(function (line) {\n if (result !== '') {\n result += '\\n';\n }\n result += (line.replace(/<(?:.|\\n)*?>/gm, ''));\n });\n } else {\n result = value.replace(/<(?:.|\\n)*?>/gm, '');\n }\n }\n\n return result;\n};\n\nexports.LEFT = function(text, number) {\n number = (number === undefined) ? 1 : number;\n number = utils.parseNumber(number);\n if (number instanceof Error || typeof text !== 'string') {\n return error.value;\n }\n return text ? text.substring(0, number) : null;\n};\n\nexports.LEN = function(text) {\n if (arguments.length === 0) {\n return error.error;\n }\n\n if (typeof text === 'string') {\n return text ? text.length : 0;\n }\n\n if (text.length) {\n return text.length;\n }\n\n return error.value;\n};\n\nexports.LOWER = function(text) {\n if (typeof text !== 'string') {\n return error.value;\n }\n return text ? text.toLowerCase() : text;\n};\n\nexports.MID = function(text, start, number) {\n start = utils.parseNumber(start);\n number = utils.parseNumber(number);\n if (utils.anyIsError(start, number) || typeof text !== 'string') {\n return number;\n }\n\n var begin = start - 1;\n var end = begin + number;\n\n return text.substring(begin, end);\n};\n\n// TODO\nexports.NUMBERVALUE = function (text, decimal_separator, group_separator) {\n decimal_separator = (typeof decimal_separator === 'undefined') ? '.' : decimal_separator;\n group_separator = (typeof group_separator === 'undefined') ? ',' : group_separator;\n return Number(text.replace(decimal_separator, '.').replace(group_separator, ''));\n};\n\n// TODO\nexports.PRONETIC = function() {\n throw new Error('PRONETIC is not implemented');\n};\n\nexports.PROPER = function(text) {\n if (text === undefined || text.length === 0) {\n return error.value;\n }\n if (text === true) {\n text = 'TRUE';\n }\n if (text === false) {\n text = 'FALSE';\n }\n if (isNaN(text) && typeof text === 'number') {\n return error.value;\n }\n if (typeof text === 'number') {\n text = '' + text;\n }\n\n return text.replace(/\\w\\S*/g, function(txt) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n });\n};\n\nexports.REGEXEXTRACT = function (text, regular_expression) {\n if (arguments.length < 2) {\n return error.na;\n }\n var match = text.match(new RegExp(regular_expression));\n return match ? (match[match.length > 1 ? match.length - 1 : 0]) : null;\n};\n\nexports.REGEXMATCH = function (text, regular_expression, full) {\n if (arguments.length < 2) {\n return error.na;\n }\n var match = text.match(new RegExp(regular_expression));\n return full ? match : !!match;\n};\n\nexports.REGEXREPLACE = function (text, regular_expression, replacement) {\n if (arguments.length < 3) {\n return error.na;\n }\n return text.replace(new RegExp(regular_expression), replacement);\n};\n\nexports.REPLACE = function(text, position, length, new_text) {\n position = utils.parseNumber(position);\n length = utils.parseNumber(length);\n if (utils.anyIsError(position, length) ||\n typeof text !== 'string' ||\n typeof new_text !== 'string') {\n return error.value;\n }\n return text.substr(0, position - 1) + new_text + text.substr(position - 1 + length);\n};\n\nexports.REPT = function(text, number) {\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return new Array(number + 1).join(text);\n};\n\nexports.RIGHT = function(text, number) {\n number = (number === undefined) ? 1 : number;\n number = utils.parseNumber(number);\n if (number instanceof Error) {\n return number;\n }\n return text ? text.substring(text.length - number) : error.na;\n};\n\nexports.SEARCH = function(find_text, within_text, position) {\n var foundAt;\n if (typeof find_text !== 'string' || typeof within_text !== 'string') {\n return error.value;\n }\n position = (position === undefined) ? 0 : position;\n foundAt = within_text.toLowerCase().indexOf(find_text.toLowerCase(), position - 1)+1;\n return (foundAt === 0)?error.value:foundAt;\n};\n\nexports.SPLIT = function (text, separator) {\n return text.split(separator);\n};\n\nexports.SUBSTITUTE = function(text, old_text, new_text, occurrence) {\n if (arguments.length < 2) {\n return error.na;\n }\n if (!text || !old_text || !new_text) {\n return text;\n } else if (occurrence === undefined) {\n return text.replace(new RegExp(old_text, 'g'), new_text);\n } else {\n var index = 0;\n var i = 0;\n while (text.indexOf(old_text, index) > 0) {\n index = text.indexOf(old_text, index + 1);\n i++;\n if (i === occurrence) {\n return text.substring(0, index) + new_text + text.substring(index + old_text.length);\n }\n }\n }\n};\n\nexports.T = function(value) {\n return (typeof value === \"string\") ? value : '';\n};\n\n// TODO incomplete implementation\nexports.TEXT = function() {\n throw new Error('TEXT is not implemented');\n};\n\nexports.TRIM = function(text) {\n if (typeof text !== 'string') {\n return error.value;\n }\n return text.replace(/ +/g, ' ').trim();\n};\n\nexports.UNICHAR = exports.CHAR;\n\nexports.UNICODE = exports.CODE;\n\nexports.UPPER = function(text) {\n if (typeof text !== 'string') {\n return error.value;\n }\n return text.toUpperCase();\n};\n\n//TODO\nexports.VALUE = function() {\n throw new Error('VALUE is not implemented');\n};\n","var error = require('./error');\n\nexports.flattenShallow = function(array) {\n if (!array || !array.reduce) {\n return array;\n }\n\n return array.reduce(function(a, b) {\n var aIsArray = Array.isArray(a);\n var bIsArray = Array.isArray(b);\n\n if (aIsArray && bIsArray ) {\n return a.concat(b);\n }\n if (aIsArray) {\n a.push(b);\n\n return a;\n }\n if (bIsArray) {\n return [a].concat(b);\n }\n\n return [a, b];\n });\n};\n\nexports.isFlat = function(array) {\n if (!array) {\n return false;\n }\n\n for (var i = 0; i < array.length; ++i) {\n if (Array.isArray(array[i])) {\n return false;\n }\n }\n\n return true;\n};\n\nexports.flatten = function() {\n var result = exports.argsToArray.apply(null, arguments);\n\n while (!exports.isFlat(result)) {\n result = exports.flattenShallow(result);\n }\n\n return result;\n};\n\nexports.argsToArray = function(args) {\n var result = [];\n\n exports.arrayEach(args, function(value) {\n result.push(value);\n });\n\n return result;\n};\n\nexports.numbers = function() {\n var possibleNumbers = this.flatten.apply(null, arguments);\n return possibleNumbers.filter(function(el) {\n return typeof el === 'number';\n });\n};\n\nexports.cleanFloat = function(number) {\n var power = 1e14;\n return Math.round(number * power) / power;\n};\n\nexports.parseBool = function(bool) {\n if (typeof bool === 'boolean') {\n return bool;\n }\n\n if (bool instanceof Error) {\n return bool;\n }\n\n if (typeof bool === 'number') {\n return bool !== 0;\n }\n\n if (typeof bool === 'string') {\n var up = bool.toUpperCase();\n if (up === 'TRUE') {\n return true;\n }\n\n if (up === 'FALSE') {\n return false;\n }\n }\n\n if (bool instanceof Date && !isNaN(bool)) {\n return true;\n }\n\n return error.value;\n};\n\nexports.parseNumber = function(string) {\n if (string === undefined || string === '') {\n return error.value;\n }\n if (!isNaN(string)) {\n return parseFloat(string);\n }\n\n return error.value;\n};\n\nexports.parseNumberArray = function(arr) {\n var len;\n\n if (!arr || (len = arr.length) === 0) {\n return error.value;\n }\n\n var parsed;\n\n while (len--) {\n parsed = exports.parseNumber(arr[len]);\n if (parsed === error.value) {\n return parsed;\n }\n arr[len] = parsed;\n }\n\n return arr;\n};\n\nexports.parseMatrix = function(matrix) {\n var n;\n\n if (!matrix || (n = matrix.length) === 0) {\n return error.value;\n }\n var pnarr;\n\n for (var i = 0; i < matrix.length; i++) {\n pnarr = exports.parseNumberArray(matrix[i]);\n matrix[i] = pnarr;\n\n if (pnarr instanceof Error) {\n return pnarr;\n }\n }\n\n return matrix;\n};\n\nvar d1900 = new Date(Date.UTC(1900, 0, 1));\nexports.parseDate = function(date) {\n if (!isNaN(date)) {\n if (date instanceof Date) {\n return new Date(date);\n }\n var d = parseInt(date, 10);\n if (d < 0) {\n return error.num;\n }\n if (d <= 60) {\n return new Date(d1900.getTime() + (d - 1) * 86400000);\n }\n return new Date(d1900.getTime() + (d - 2) * 86400000);\n }\n if (typeof date === 'string') {\n date = new Date(date);\n if (!isNaN(date)) {\n return date;\n }\n }\n return error.value;\n};\n\nexports.parseDateArray = function(arr) {\n var len = arr.length;\n var parsed;\n while (len--) {\n parsed = this.parseDate(arr[len]);\n if (parsed === error.value) {\n return parsed;\n }\n arr[len] = parsed;\n }\n return arr;\n};\n\nexports.anyIsError = function() {\n var n = arguments.length;\n while (n--) {\n if (arguments[n] instanceof Error) {\n return true;\n }\n }\n return false;\n};\n\nexports.arrayValuesToNumbers = function(arr) {\n var n = arr.length;\n var el;\n while (n--) {\n el = arr[n];\n if (typeof el === 'number') {\n continue;\n }\n if (el === true) {\n arr[n] = 1;\n continue;\n }\n if (el === false) {\n arr[n] = 0;\n continue;\n }\n if (typeof el === 'string') {\n var number = this.parseNumber(el);\n if (number instanceof Error) {\n arr[n] = 0;\n } else {\n arr[n] = number;\n }\n }\n }\n return arr;\n};\n\nexports.rest = function(array, idx) {\n idx = idx || 1;\n if (!array || typeof array.slice !== 'function') {\n return array;\n }\n return array.slice(idx);\n};\n\nexports.initial = function(array, idx) {\n idx = idx || 1;\n if (!array || typeof array.slice !== 'function') {\n return array;\n }\n return array.slice(0, array.length - idx);\n};\n\nexports.arrayEach = function(array, iteratee) {\n var index = -1, length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n\n return array;\n};\n\nexports.transpose = function(matrix) {\n if(!matrix) {\n return error.value;\n }\n\n return matrix[0].map(function(col, i) {\n return matrix.map(function(row) {\n return row[i];\n });\n });\n};\n","var defaultOperator = '=';\nvar validSymbols = ['>', '>=', '<', '<=', '=', '<>'];\nvar TOKEN_TYPE_OPERATOR = 'operator';\nvar TOKEN_TYPE_LITERAL = 'literal';\nvar SUPPORTED_TOKENS = [TOKEN_TYPE_OPERATOR, TOKEN_TYPE_LITERAL];\n\nexports.TOKEN_TYPE_OPERATOR = TOKEN_TYPE_OPERATOR;\nexports.TOKEN_TYPE_LITERAL = TOKEN_TYPE_LITERAL;\n\n/**\n * Create token which describe passed symbol/value.\n *\n * @param {String} value Value/Symbol to describe.\n * @param {String} type Type of the token 'operator' or 'literal'.\n * @return {Object}\n */\nfunction createToken(value, type) {\n if (SUPPORTED_TOKENS.indexOf(type) === -1) {\n throw new Error('Unsupported token type: ' + type);\n }\n\n return {\n value: value,\n type: type,\n };\n}\n\n/**\n * Tries to cast numeric values to their type passed as a string.\n *\n * @param {*} value\n * @return {*}\n */\nfunction castValueToCorrectType(value) {\n if (typeof value !== 'string') {\n return value;\n }\n\n if (/^\\d+(\\.\\d+)?$/.test(value)) {\n value = value.indexOf('.') === -1 ? parseInt(value, 10) : parseFloat(value);\n }\n\n return value;\n}\n\n/**\n * Generate stream of tokens from passed expression.\n *\n * @param {String} expression\n * @return {String[]}\n */\nfunction tokenizeExpression(expression) {\n var expressionLength = expression.length;\n var tokens = [];\n var cursorIndex = 0;\n var processedValue = '';\n var processedSymbol = '';\n\n while (cursorIndex < expressionLength) {\n var char = expression.charAt(cursorIndex);\n\n switch (char) {\n case '>':\n case '<':\n case '=':\n processedSymbol = processedSymbol + char;\n\n if (processedValue.length > 0) {\n tokens.push(processedValue);\n processedValue = '';\n }\n break;\n default:\n if (processedSymbol.length > 0) {\n tokens.push(processedSymbol);\n processedSymbol = '';\n }\n\n processedValue = processedValue + char;\n break;\n }\n cursorIndex++;\n }\n\n if (processedValue.length > 0) {\n tokens.push(processedValue);\n }\n if (processedSymbol.length > 0) {\n tokens.push(processedSymbol);\n }\n\n return tokens;\n};\n\n/**\n * Analyze and convert tokens to an object which describes their meaning.\n *\n * @param {String[]} tokens\n * @return {Object[]}\n */\nfunction analyzeTokens(tokens) {\n var literalValue = '';\n var analyzedTokens = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (i === 0 && validSymbols.indexOf(token) >= 0) {\n analyzedTokens.push(createToken(token, TOKEN_TYPE_OPERATOR));\n } else {\n literalValue += token;\n }\n }\n\n if (literalValue.length > 0) {\n analyzedTokens.push(createToken(castValueToCorrectType(literalValue), TOKEN_TYPE_LITERAL));\n }\n\n if (analyzedTokens.length > 0 && analyzedTokens[0].type !== TOKEN_TYPE_OPERATOR) {\n analyzedTokens.unshift(createToken(defaultOperator, TOKEN_TYPE_OPERATOR));\n }\n\n return analyzedTokens;\n};\n\n/**\n * Compute/Evaluate an expression passed as an array of tokens.\n *\n * @param {Object[]} tokens\n * @return {Boolean}\n */\nfunction computeExpression(tokens) {\n var values = [];\n var operator;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n switch (token.type) {\n case TOKEN_TYPE_OPERATOR:\n operator = token.value;\n break;\n case TOKEN_TYPE_LITERAL:\n values.push(token.value);\n break;\n }\n }\n\n return evaluate(values, operator);\n};\n\n/**\n * Evaluate values based on passed math operator.\n *\n * @param {*} values\n * @param {String} operator\n * @return {Boolean}\n */\nfunction evaluate(values, operator) {\n var result = false;\n\n switch (operator) {\n case '>':\n result = values[0] > values[1];\n break;\n case '>=':\n result = values[0] >= values[1];\n break;\n case '<':\n result = values[0] < values[1];\n break;\n case '<=':\n result = values[0] <= values[1];\n break;\n case '=':\n result = values[0] == values[1];\n break;\n case '<>':\n result = values[0] != values[1];\n break;\n }\n\n return result;\n}\n\nexports.parse = function(expression) {\n return analyzeTokens(tokenizeExpression(expression));\n};\nexports.createToken = createToken;\nexports.compute = computeExpression;\n","exports.nil = new Error('#NULL!');\nexports.div0 = new Error('#DIV/0!');\nexports.value = new Error('#VALUE!');\nexports.ref = new Error('#REF!');\nexports.name = new Error('#NAME?');\nexports.num = new Error('#NUM!');\nexports.na = new Error('#N/A');\nexports.error = new Error('#ERROR!');\nexports.data = new Error('#GETTING_DATA');\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport var SeverityLevel;\r\n(function (SeverityLevel) {\r\n SeverityLevel[SeverityLevel[\"Verbose\"] = 0] = \"Verbose\";\r\n SeverityLevel[SeverityLevel[\"Information\"] = 1] = \"Information\";\r\n SeverityLevel[SeverityLevel[\"Warning\"] = 2] = \"Warning\";\r\n SeverityLevel[SeverityLevel[\"Error\"] = 3] = \"Error\";\r\n SeverityLevel[SeverityLevel[\"Critical\"] = 4] = \"Critical\";\r\n})(SeverityLevel || (SeverityLevel = {}));\r\n//# sourceMappingURL=SeverityLevel.js.map","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n var defaultEle = document.createElement('div');\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0];\n\n // ========================== Order ==========================\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n });\n\n // =========================== DOM ===========================\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n appendedRef.current = true;\n }\n function cleanup() {\n var _ele$parentElement;\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getTargetScrollBarSize(document.body).width;\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n if (!canUseDom() || !getContainer) {\n return null;\n }\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n var mergedRender = shouldRender || open;\n\n // ========================= Warning =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n }\n\n // ====================== Should Render ======================\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]);\n\n // ======================== Container ========================\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer);\n\n // Tell component that we check this in effect which is safe to be `null`\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n // ========================= Locker ==========================\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n // =========================== Ref ===========================\n var childRef = null;\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n var mergedRef = useComposeRef(childRef, ref);\n\n // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n }\n\n // Render inline\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\nexport default Portal;","import Portal from \"./Portal\";\nimport { inlineMock } from \"./mock\";\nexport { inlineMock };\nexport default Portal;","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_<T>(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted<T, ES5ObjectState | ES5ArrayState>\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted<AnyObject, ES5ObjectState>\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted<AnyObject, ES5ArrayState>\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ProxyType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_<T>(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted<T, ES5ObjectState | ES5ArrayState> {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted<any, ImmerState>[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude<T, Nothing>`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import { current, isDraft } from 'immer'\r\nimport { createSelector } from 'reselect'\r\n\r\n/**\r\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\r\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\r\n * the selector will act on the current draft value, instead of returning a cached value\r\n * that might be possibly outdated if the draft has been modified since.\r\n * @public\r\n */\r\nexport const createDraftSafeSelector: typeof createSelector = (\r\n ...args: unknown[]\r\n) => {\r\n const selector = (createSelector as any)(...args)\r\n const wrappedSelector = (value: unknown, ...rest: unknown[]) =>\r\n selector(isDraft(value) ? current(value) : value, ...rest)\r\n return wrappedSelector as any\r\n}\r\n","import type { Action, ActionCreator, StoreEnhancer } from 'redux'\r\nimport { compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface DevToolsEnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator<any>[] | { [key: string]: ActionCreator<any> }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\r\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\r\n * functions.\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n /**\r\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n * - `false` - will handle also circular references.\r\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n * For each of them you can indicate if to include (by setting as `true`).\r\n * For `function` key you can also specify a custom function which handles serialization.\r\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n */\r\n options?:\r\n | undefined\r\n | boolean\r\n | {\r\n date?: true\r\n regex?: true\r\n undefined?: true\r\n error?: true\r\n symbol?: true\r\n map?: true\r\n set?: true\r\n function?: true | ((fn: (...args: any[]) => any) => string)\r\n }\r\n /**\r\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\r\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\r\n * key. So you can deserialize it back while importing or persisting data.\r\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\r\n */\r\n replacer?: (key: string, value: unknown) => any\r\n /**\r\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\r\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\r\n * as an example on how to serialize special data types and get them back.\r\n */\r\n reviver?: (key: string, value: unknown) => any\r\n /**\r\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\r\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\r\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\r\n */\r\n immutable?: any\r\n /**\r\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\r\n */\r\n refs?: any\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: <A extends Action>(action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: <S>(state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsDenylist instead.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsAllowlist instead.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsDenylist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsAllowlist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\r\n */\r\n predicate?: <S, A extends Action>(state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | (<A extends Action>(action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\ntype Compose = typeof compose\r\n\r\ninterface ComposeWithDevTools {\r\n (options: DevToolsEnhancerOptions): Compose\r\n <StoreExt>(...funcs: StoreEnhancer<StoreExt>[]): StoreEnhancer<StoreExt>\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: ComposeWithDevTools =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function () {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, arguments as any as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: DevToolsEnhancerOptions): StoreEnhancer<any>\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function () {\r\n return function (noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * prototype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = Object.getPrototypeOf(value)\r\n if (proto === null) return true\r\n\r\n let baseProto = proto\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto)\r\n }\r\n\r\n return proto === baseProto\r\n}\r\n","import type { Action } from 'redux'\r\nimport type {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny,\r\n} from './tsHelpers'\r\nimport { hasMatchFunction } from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction<P> =\r\n | ((...args: any[]) => { payload: P })\r\n | ((...args: any[]) => { payload: P; meta: any })\r\n | ((...args: any[]) => { payload: P; error: any })\r\n | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n PA extends PrepareAction<any> | void,\r\n T extends string = string\r\n> = PA extends PrepareAction<infer P>\r\n ? ActionCreatorWithPreparedPayload<\r\n Parameters<PA>,\r\n P,\r\n T,\r\n ReturnType<PA> extends {\r\n error: infer E\r\n }\r\n ? E\r\n : never,\r\n ReturnType<PA> extends {\r\n meta: infer M\r\n }\r\n ? M\r\n : never\r\n >\r\n : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\nexport interface BaseActionCreator<P, T extends string, M = never, E = never> {\r\n type: T\r\n match: (action: Action<unknown>) => action is PayloadAction<P, T, M, E>\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n Args extends unknown[],\r\n P,\r\n T extends string = string,\r\n E = never,\r\n M = never\r\n> extends BaseActionCreator<P, T, M, E> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\r\n (...args: Args): PayloadAction<P, T, M, E>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload<P, T extends string = string>\r\n extends BaseActionCreator<P, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\r\n (payload?: P): PayloadAction<P, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload<T extends string = string>\r\n extends BaseActionCreator<undefined, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\r\n (noArgument: void): PayloadAction<undefined, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload<P, T extends string = string>\r\n extends BaseActionCreator<P, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\r\n (payload: P): PayloadAction<P, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n T extends string = string\r\n> extends BaseActionCreator<unknown, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\r\n <PT extends unknown>(payload: PT): PayloadAction<PT, T>\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n P = void,\r\n T extends string = string,\r\n PA extends PrepareAction<P> | void = void\r\n> = IfPrepareActionMethodProvided<\r\n PA,\r\n _ActionCreatorWithPreparedPayload<PA, T>,\r\n // else\r\n IsAny<\r\n P,\r\n ActionCreatorWithPayload<any, T>,\r\n IsUnknownOrNonInferrable<\r\n P,\r\n ActionCreatorWithNonInferrablePayload<T>,\r\n // else\r\n IfVoid<\r\n P,\r\n ActionCreatorWithoutPayload<T>,\r\n // else\r\n IfMaybeUndefined<\r\n P,\r\n ActionCreatorWithOptionalPayload<P, T>,\r\n // else\r\n ActionCreatorWithPayload<P, T>\r\n >\r\n >\r\n >\r\n >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<P = void, T extends string = string>(\r\n type: T\r\n): PayloadActionCreator<P, T>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction<any>,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error }),\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action<unknown>): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\n/**\r\n * Returns true if value is a plain object with a `type` property.\r\n */\r\nexport function isAction(action: unknown): action is Action<unknown> {\r\n return isPlainObject(action) && 'type' in action\r\n}\r\n\r\n/**\r\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\r\n */\r\nexport function isActionCreator(\r\n action: unknown\r\n): action is BaseActionCreator<unknown, string> & Function {\r\n return (\r\n typeof action === 'function' &&\r\n 'type' in action &&\r\n // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\r\n hasMatchFunction(action as any)\r\n )\r\n}\r\n\r\n/**\r\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\r\n */\r\nexport function isFSA(action: unknown): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isAction(action) &&\r\n typeof action.type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType<T extends string>(\r\n actionCreator: PayloadActionCreator<any, T>\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction<any> | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import createNextState, { isDraftable } from 'immer'\r\nimport type { Middleware, StoreEnhancer } from 'redux'\r\n\r\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\r\n let elapsed = 0\r\n return {\r\n measureTime<T>(fn: () => T): T {\r\n const started = Date.now()\r\n try {\r\n return fn()\r\n } finally {\r\n const finished = Date.now()\r\n elapsed += finished - started\r\n }\r\n },\r\n warnIfExceeded() {\r\n if (elapsed > maxDelay) {\r\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \r\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\r\nIt is disabled in production builds, so you don't need to worry about that.`)\r\n }\r\n },\r\n }\r\n}\r\n\r\nexport function delay(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms))\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class MiddlewareArray<\r\n Middlewares extends Middleware<any, any>[]\r\n> extends Array<Middlewares[number]> {\r\n constructor(...items: Middlewares)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, MiddlewareArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return MiddlewareArray as any\r\n }\r\n\r\n concat<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n\r\n concat<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new MiddlewareArray(...arr[0].concat(this))\r\n }\r\n return new MiddlewareArray(...arr.concat(this))\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class EnhancerArray<\r\n Enhancers extends StoreEnhancer<any, any>[]\r\n> extends Array<Enhancers[number]> {\r\n constructor(...items: Enhancers)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, EnhancerArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return EnhancerArray as any\r\n }\r\n\r\n concat<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n\r\n concat<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new EnhancerArray(...arr[0].concat(this))\r\n }\r\n return new EnhancerArray(...arr.concat(this))\r\n }\r\n}\r\n\r\nexport function freezeDraftable<T>(val: T) {\r\n return isDraftable(val) ? createNextState(val, () => {}) : val\r\n}\r\n","import type { Middleware, AnyAction } from 'redux'\r\nimport type { ThunkMiddleware } from 'redux-thunk'\r\nimport thunkMiddleware from 'redux-thunk'\r\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'\r\n/* PROD_START_REMOVE_UMD */\r\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'\r\n/* PROD_STOP_REMOVE_UMD */\r\n\r\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'\r\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'\r\nimport type { ExcludeFromTuple } from './tsHelpers'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions<E = any> {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware<S, AnyAction, E>\r\n : ThunkMiddleware<S, AnyAction>\r\n\r\nexport type CurriedGetDefaultMiddleware<S = any> = <\r\n O extends Partial<GetDefaultMiddlewareOptions> = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options?: O\r\n) => MiddlewareArray<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n S = any\r\n>(): CurriedGetDefaultMiddleware<S> {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options)\r\n }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n *\r\n * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`\r\n * to access a pre-typed `getDefaultMiddleware` instead.\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial<GetDefaultMiddlewareOptions> = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options: O = {} as O\r\n): MiddlewareArray<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true,\r\n actionCreatorCheck = true,\r\n } = options\r\n\r\n let middlewareArray = new MiddlewareArray<Middleware[]>()\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n if (actionCreatorCheck) {\r\n let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(actionCreatorCheck)) {\r\n actionCreatorOptions = actionCreatorCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createActionCreatorInvariantMiddleware(actionCreatorOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import type {\r\n Reducer,\r\n ReducersMapObject,\r\n Middleware,\r\n Action,\r\n AnyAction,\r\n StoreEnhancer,\r\n Store,\r\n Dispatch,\r\n PreloadedState,\r\n CombinedState,\r\n} from 'redux'\r\nimport { createStore, compose, applyMiddleware, combineReducers } from 'redux'\r\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension'\r\nimport { composeWithDevTools } from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport type {\r\n ThunkMiddlewareFor,\r\n CurriedGetDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nimport { curryGetDefaultMiddleware } from './getDefaultMiddleware'\r\nimport type {\r\n NoInfer,\r\n ExtractDispatchExtensions,\r\n ExtractStoreExtensions,\r\n ExtractStateExtensions,\r\n} from './tsHelpers'\r\nimport { EnhancerArray } from './utils'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback<E extends Enhancers = Enhancers> = (\r\n defaultEnhancers: EnhancerArray<[StoreEnhancer<{}, {}>]>\r\n) => E\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = Middlewares<S>,\r\n E extends Enhancers = Enhancers\r\n> {\r\n /**\r\n * A single reducer function that will be used as the root reducer, or an\r\n * object of slice reducers that will be passed to `combineReducers()`.\r\n */\r\n reducer: Reducer<S, A> | ReducersMapObject<S, A>\r\n\r\n /**\r\n * An array of Redux middleware to install. If not supplied, defaults to\r\n * the set of middleware returned by `getDefaultMiddleware()`.\r\n *\r\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\r\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\r\n */\r\n middleware?: ((getDefaultMiddleware: CurriedGetDefaultMiddleware<S>) => M) | M\r\n\r\n /**\r\n * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n *\r\n * Additional configuration can be done by passing Redux DevTools options\r\n */\r\n devTools?: boolean | DevToolsOptions\r\n\r\n /**\r\n * The initial state, same as Redux's createStore.\r\n * You may optionally specify it to hydrate the state\r\n * from the server in universal apps, or to restore a previously serialized\r\n * user session. If you use `combineReducers()` to produce the root reducer\r\n * function (either directly or indirectly by passing an object as `reducer`),\r\n * this must be an object with the same shape as the reducer map keys.\r\n */\r\n /*\r\n Not 100% correct but the best approximation we can get:\r\n - if S is a `CombinedState` applying a second `CombinedState` on it does not change anything.\r\n - if it is not, there could be two cases:\r\n - `ReducersMapObject<S, A>` is being passed in. In this case, we will call `combineReducers` on it and `CombinedState<S>` is correct\r\n - `Reducer<S, A>` is being passed in. In this case, actually `CombinedState<S>` is wrong and `S` would be correct.\r\n As we cannot distinguish between those two cases without adding another generic parameter,\r\n we just make the pragmatic assumption that the latter almost never happens.\r\n */\r\n preloadedState?: PreloadedState<CombinedState<NoInfer<S>>>\r\n\r\n /**\r\n * The store enhancers to apply. See Redux's `createStore()`.\r\n * All enhancers will be included before the DevTools Extension enhancer.\r\n * If you need to customize the order of enhancers, supply a callback\r\n * function that will receive the original array (ie, `[applyMiddleware]`),\r\n * and should return a new array (such as `[applyMiddleware, offline]`).\r\n * If you only need to add middleware, you can use the `middleware` parameter instead.\r\n */\r\n enhancers?: E | ConfigureEnhancersCallback<E>\r\n}\r\n\r\ntype Middlewares<S> = ReadonlyArray<Middleware<{}, S>>\r\n\r\ntype Enhancers = ReadonlyArray<StoreEnhancer>\r\n\r\nexport interface ToolkitStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = Middlewares<S>\r\n> extends Store<S, A> {\r\n /**\r\n * The `dispatch` method of your store, enhanced by all its middlewares.\r\n *\r\n * @inheritdoc\r\n */\r\n dispatch: ExtractDispatchExtensions<M> & Dispatch<A>\r\n}\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport type EnhancedStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = Middlewares<S>,\r\n E extends Enhancers = Enhancers\r\n> = ToolkitStore<S & ExtractStateExtensions<E>, A, M> &\r\n ExtractStoreExtensions<E>\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param options The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = [ThunkMiddlewareFor<S>],\r\n E extends Enhancers = [StoreEnhancer]\r\n>(options: ConfigureStoreOptions<S, A, M, E>): EnhancedStore<S, A, M, E> {\r\n const curriedGetDefaultMiddleware = curryGetDefaultMiddleware<S>()\r\n\r\n const {\r\n reducer = undefined,\r\n middleware = curriedGetDefaultMiddleware(),\r\n devTools = true,\r\n preloadedState = undefined,\r\n enhancers = undefined,\r\n } = options || {}\r\n\r\n let rootReducer: Reducer<S, A>\r\n\r\n if (typeof reducer === 'function') {\r\n rootReducer = reducer\r\n } else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer) as unknown as Reducer<S, A>\r\n } else {\r\n throw new Error(\r\n '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n )\r\n }\r\n\r\n let finalMiddleware = middleware\r\n if (typeof finalMiddleware === 'function') {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware)\r\n\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\r\n 'when using a middleware builder function, an array of middleware must be returned'\r\n )\r\n }\r\n }\r\n if (\r\n !IS_PRODUCTION &&\r\n finalMiddleware.some((item: any) => typeof item !== 'function')\r\n ) {\r\n throw new Error(\r\n 'each middleware provided to configureStore must be a function'\r\n )\r\n }\r\n\r\n const middlewareEnhancer: StoreEnhancer = applyMiddleware(...finalMiddleware)\r\n\r\n let finalCompose = compose\r\n\r\n if (devTools) {\r\n finalCompose = composeWithDevTools({\r\n // Enable capture of stack traces for dispatched Redux actions\r\n trace: !IS_PRODUCTION,\r\n ...(typeof devTools === 'object' && devTools),\r\n })\r\n }\r\n\r\n const defaultEnhancers = new EnhancerArray(middlewareEnhancer)\r\n let storeEnhancers: Enhancers = defaultEnhancers\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(defaultEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as StoreEnhancer<any>\r\n\r\n return createStore(rootReducer, preloadedState, composedEnhancer)\r\n}\r\n","import type { Action, AnyAction } from 'redux'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n} from './createReducer'\r\nimport type { TypeGuard } from './tsHelpers'\r\n\r\nexport interface TypedActionCreator<Type extends string> {\r\n (...args: any[]): Action<Type>\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder<State> {\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase<ActionCreator extends TypedActionCreator<string>>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer<State, ReturnType<ActionCreator>>\r\n ): ActionReducerMapBuilder<State>\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase<Type extends string, A extends Action<Type>>(\r\n type: Type,\r\n reducer: CaseReducer<State, A>\r\n ): ActionReducerMapBuilder<State>\r\n\r\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;\r\n\r\ntype PendingAction = ReturnType<GenericAsyncThunk[\"pending\"]>;\r\ntype RejectedAction = ReturnType<GenericAsyncThunk[\"rejected\"]>;\r\ntype FulfilledAction = ReturnType<GenericAsyncThunk[\"fulfilled\"]>;\r\n\r\nconst initialState: Record<string, string> = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher<FulfilledAction>(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n});\r\n```\r\n */\r\n addMatcher<A>(\r\n matcher: TypeGuard<A> | ((action: any) => boolean),\r\n reducer: CaseReducer<State, A extends AnyAction ? A : A & AnyAction>\r\n ): Omit<ActionReducerMapBuilder<State>, 'addCase'>\r\n\r\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n})\r\n```\r\n */\r\n addDefaultCase(reducer: CaseReducer<State, AnyAction>): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback<S>(\r\n builderCallback: (builder: ActionReducerMapBuilder<S>) => void\r\n): [\r\n CaseReducers<S, any>,\r\n ActionMatcherDescriptionCollection<S>,\r\n CaseReducer<S, AnyAction> | undefined\r\n] {\r\n const actionsMap: CaseReducers<S, any> = {}\r\n const actionMatchers: ActionMatcherDescriptionCollection<S> = []\r\n let defaultCaseReducer: CaseReducer<S, AnyAction> | undefined\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator<any>,\r\n reducer: CaseReducer<S>\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n /*\r\n to keep the definition by the user in line with actual behavior,\r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n )\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (!type) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with an empty action type'\r\n )\r\n }\r\n if (type in actionsMap) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n },\r\n addMatcher<A>(\r\n matcher: TypeGuard<A>,\r\n reducer: CaseReducer<S, A extends AnyAction ? A : A & AnyAction>\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n actionMatchers.push({ matcher, reducer })\r\n return builder\r\n },\r\n addDefaultCase(reducer: CaseReducer<S, AnyAction>) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error('`builder.addDefaultCase` can only be called once')\r\n }\r\n }\r\n defaultCaseReducer = reducer\r\n return builder\r\n },\r\n }\r\n builderCallback(builder)\r\n return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import type { AnyAction, Reducer } from 'redux'\r\nimport { createNextState } from '.'\r\nimport type {\r\n ActionCreatorWithoutPayload,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ReducerWithInitialState,\r\n} from './createReducer'\r\nimport { createReducer, NotFunction } from './createReducer'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator<P> = PayloadActionCreator<P>\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer<State>\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions<CaseReducers, Name>\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers<CaseReducers>\r\n\r\n /**\r\n * Provides access to the initial state value given to the slice.\r\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n */\r\n getInitialState: () => State\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers<State> = SliceCaseReducers<State>,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n */\r\n initialState: State | (() => State)\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers<State, CR>\r\n\r\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * \r\n * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction<number>('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n})\r\n```\r\n */\r\n extraReducers?:\r\n | CaseReducers<NoInfer<State>, any>\r\n | ((builder: ActionReducerMapBuilder<NoInfer<State>>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare<State, Action extends PayloadAction> = {\r\n reducer: CaseReducer<State, Action>\r\n prepare: PrepareAction<Action['payload']>\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers<State> = {\r\n [K: string]:\r\n | CaseReducer<State, PayloadAction<any>>\r\n | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>\r\n}\r\n\r\ntype SliceActionType<\r\n SliceName extends string,\r\n ActionName extends keyof any\r\n> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions<\r\n CaseReducers extends SliceCaseReducers<any>,\r\n SliceName extends string\r\n> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare<\r\n CaseReducers[Type],\r\n SliceActionType<SliceName, Type>\r\n >\r\n : ActionCreatorForCaseReducer<\r\n CaseReducers[Type],\r\n SliceActionType<SliceName, Type>\r\n >\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n CR extends { prepare: any },\r\n Type extends string\r\n> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer<CR, Type extends string> = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator<P, Type>\r\n : ActionCreatorWithoutPayload<Type>\r\n : ActionCreatorWithoutPayload<Type>\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers<S>\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit<A, 'type'>\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers<State>,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions<State, CaseReducers, Name>\r\n): Slice<State, CaseReducers, Name> {\r\n const { name } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (options.initialState === undefined) {\r\n console.error(\r\n 'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`'\r\n )\r\n }\r\n }\r\n\r\n const initialState =\r\n typeof options.initialState == 'function'\r\n ? options.initialState\r\n : freezeDraftable(options.initialState)\r\n\r\n const reducers = options.reducers || {}\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record<string, CaseReducer> = {}\r\n const sliceCaseReducersByType: Record<string, CaseReducer> = {}\r\n const actionCreators: Record<string, Function> = {}\r\n\r\n reducerNames.forEach((reducerName) => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer<State, any>\r\n let prepareCallback: PrepareAction<any> | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n function buildReducer() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof options.extraReducers === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\"\r\n )\r\n }\r\n }\r\n }\r\n const [\r\n extraReducers = {},\r\n actionMatchers = [],\r\n defaultCaseReducer = undefined,\r\n ] =\r\n typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : [options.extraReducers]\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n\r\n return createReducer(initialState, (builder) => {\r\n for (let key in finalCaseReducers) {\r\n builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>)\r\n }\r\n for (let m of actionMatchers) {\r\n builder.addMatcher(m.matcher, m.reducer)\r\n }\r\n if (defaultCaseReducer) {\r\n builder.addDefaultCase(defaultCaseReducer)\r\n }\r\n })\r\n }\r\n\r\n let _reducer: ReducerWithInitialState<State>\r\n\r\n return {\r\n name,\r\n reducer(state, action) {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer(state, action)\r\n },\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any,\r\n getInitialState() {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer.getInitialState()\r\n },\r\n }\r\n}\r\n","import type { Draft } from 'immer'\r\nimport createNextState, { isDraft, isDraftable } from 'immer'\r\nimport type { AnyAction, Action, Reducer } from 'redux'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions<T extends keyof any = string> = Record<T, Action>\r\n\r\n/**\r\n * @deprecated use `TypeGuard` instead\r\n */\r\nexport interface ActionMatcher<A extends AnyAction> {\r\n (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription<S, A extends AnyAction> = {\r\n matcher: ActionMatcher<A>\r\n reducer: CaseReducer<S, NoInfer<A>>\r\n}\r\n\r\nexport type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<\r\n ActionMatcherDescription<S, any>\r\n>\r\n\r\nexport type ActionMatcherDescriptionCollection<S> = Array<\r\n ActionMatcherDescription<S, any>\r\n>\r\n\r\n/**\r\n * A *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer<S = any, A extends Action = AnyAction> = (\r\n state: Draft<S>,\r\n action: A\r\n) => NoInfer<S> | void | Draft<NoInfer<S>>\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers<S, AS extends Actions> = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void\r\n}\r\n\r\nexport type NotFunction<T> = T extends Function ? never : T\r\n\r\nfunction isStateFunction<S>(x: unknown): x is () => S {\r\n return typeof x === 'function'\r\n}\r\n\r\nexport type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {\r\n getInitialState: () => S\r\n}\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AnyAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction<number>(\"increment\");\r\nconst decrement = createAction<number>(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: AnyAction\r\n): action is PayloadAction<number> {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer<S extends NotFunction<any>>(\r\n initialState: S | (() => S),\r\n builderCallback: (builder: ActionReducerMapBuilder<S>) => void\r\n): ReducerWithInitialState<S>\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n * All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n\r\n// Alternately, use a \"lazy initializer\" to provide the initial state\r\n// (works with either form of createReducer)\r\nconst initialState = () => 0\r\nconst counterReducer = createReducer(initialState, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n [increment]: (state, action) => state + action.payload,\r\n [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n S extends NotFunction<any>,\r\n CR extends CaseReducers<S, any> = CaseReducers<S, any>\r\n>(\r\n initialState: S | (() => S),\r\n actionsMap: CR,\r\n actionMatchers?: ActionMatcherDescriptionCollection<S>,\r\n defaultCaseReducer?: CaseReducer<S>\r\n): ReducerWithInitialState<S>\r\n\r\nexport function createReducer<S extends NotFunction<any>>(\r\n initialState: S | (() => S),\r\n mapOrBuilderCallback:\r\n | CaseReducers<S, any>\r\n | ((builder: ActionReducerMapBuilder<S>) => void),\r\n actionMatchers: ReadonlyActionMatcherDescriptionCollection<S> = [],\r\n defaultCaseReducer?: CaseReducer<S>\r\n): ReducerWithInitialState<S> {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof mapOrBuilderCallback === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\"\r\n )\r\n }\r\n }\r\n }\r\n\r\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n // Ensure the initial state gets frozen either way (if draftable)\r\n let getInitialState: () => S\r\n if (isStateFunction(initialState)) {\r\n getInitialState = () => freezeDraftable(initialState())\r\n } else {\r\n const frozenInitialState = freezeDraftable(initialState)\r\n getInitialState = () => frozenInitialState\r\n }\r\n\r\n function reducer(state = getInitialState(), action: any): S {\r\n let caseReducers = [\r\n actionsMap[action.type],\r\n ...finalActionMatchers\r\n .filter(({ matcher }) => matcher(action))\r\n .map(({ reducer }) => reducer),\r\n ]\r\n if (caseReducers.filter((cr) => !!cr).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer]\r\n }\r\n\r\n return caseReducers.reduce((previousState, caseReducer): S => {\r\n if (caseReducer) {\r\n if (isDraft(previousState)) {\r\n // If it's already a draft, we must already be inside a `createNextState` call,\r\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n const draft = previousState as Draft<S> // We can assume this is already a draft\r\n const result = caseReducer(draft, action)\r\n\r\n if (result === undefined) {\r\n return previousState\r\n }\r\n\r\n return result as S\r\n } else if (!isDraftable(previousState)) {\r\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n // return the caseReducer func and not wrap it with produce.\r\n const result = caseReducer(previousState as any, action)\r\n\r\n if (result === undefined) {\r\n if (previousState === null) {\r\n return previousState\r\n }\r\n throw Error(\r\n 'A case reducer on a non-draftable value must not return undefined'\r\n )\r\n }\r\n\r\n return result as S\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\r\n // than an Immutable<S>, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(previousState, (draft: Draft<S>) => {\r\n return caseReducer(draft, action)\r\n })\r\n }\r\n }\r\n\r\n return previousState\r\n }, state)\r\n }\r\n\r\n reducer.getInitialState = getInitialState\r\n\r\n return reducer as ReducerWithInitialState<S>\r\n}\r\n","import createNextState, { isDraft } from 'immer'\r\nimport type { EntityState, PreventAny } from './models'\r\nimport type { PayloadAction } from '../createAction'\r\nimport { isFSA } from '../createAction'\r\nimport { IsAny } from '../tsHelpers'\r\n\r\nexport function createSingleArgumentStateOperator<V>(\r\n mutator: (state: EntityState<V>) => void\r\n) {\r\n const operator = createStateOperator((_: undefined, state: EntityState<V>) =>\r\n mutator(state)\r\n )\r\n\r\n return function operation<S extends EntityState<V>>(\r\n state: PreventAny<S, V>\r\n ): S {\r\n return operator(state as S, undefined)\r\n }\r\n}\r\n\r\nexport function createStateOperator<V, R>(\r\n mutator: (arg: R, state: EntityState<V>) => void\r\n) {\r\n return function operation<S extends EntityState<V>>(\r\n state: S,\r\n arg: R | PayloadAction<R>\r\n ): S {\r\n function isPayloadActionArgument(\r\n arg: R | PayloadAction<R>\r\n ): arg is PayloadAction<R> {\r\n return isFSA(arg)\r\n }\r\n\r\n const runMutator = (draft: EntityState<V>) => {\r\n if (isPayloadActionArgument(arg)) {\r\n mutator(arg.payload, draft)\r\n } else {\r\n mutator(arg, draft)\r\n }\r\n }\r\n\r\n if (isDraft(state)) {\r\n // we must already be inside a `createNextState` call, likely because\r\n // this is being wrapped in `createReducer` or `createSlice`.\r\n // It's safe to just pass the draft to the mutator.\r\n runMutator(state)\r\n\r\n // since it's a draft, we'll just return it\r\n return state\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\r\n // than an Immutable<S>, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(state, runMutator)\r\n }\r\n }\r\n}\r\n","import type { EntityState, IdSelector, Update, EntityId } from './models'\r\n\r\nexport function selectIdValue<T>(entity: T, selectId: IdSelector<T>) {\r\n const key = selectId(entity)\r\n\r\n if (process.env.NODE_ENV !== 'production' && key === undefined) {\r\n console.warn(\r\n 'The entity passed to the `selectId` implementation returned undefined.',\r\n 'You should probably provide your own `selectId` implementation.',\r\n 'The entity that was passed:',\r\n entity,\r\n 'The `selectId` implementation:',\r\n selectId.toString()\r\n )\r\n }\r\n\r\n return key\r\n}\r\n\r\nexport function ensureEntitiesArray<T>(\r\n entities: readonly T[] | Record<EntityId, T>\r\n): readonly T[] {\r\n if (!Array.isArray(entities)) {\r\n entities = Object.values(entities)\r\n }\r\n\r\n return entities\r\n}\r\n\r\nexport function splitAddedUpdatedEntities<T>(\r\n newEntities: readonly T[] | Record<EntityId, T>,\r\n selectId: IdSelector<T>,\r\n state: EntityState<T>\r\n): [T[], Update<T>[]] {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n const added: T[] = []\r\n const updated: Update<T>[] = []\r\n\r\n for (const entity of newEntities) {\r\n const id = selectIdValue(entity, selectId)\r\n if (id in state.entities) {\r\n updated.push({ id, changes: entity })\r\n } else {\r\n added.push(entity)\r\n }\r\n }\r\n return [added, updated]\r\n}\r\n","import type {\r\n EntityState,\r\n EntityStateAdapter,\r\n IdSelector,\r\n Update,\r\n EntityId,\r\n} from './models'\r\nimport {\r\n createStateOperator,\r\n createSingleArgumentStateOperator,\r\n} from './state_adapter'\r\nimport {\r\n selectIdValue,\r\n ensureEntitiesArray,\r\n splitAddedUpdatedEntities,\r\n} from './utils'\r\n\r\nexport function createUnsortedStateAdapter<T>(\r\n selectId: IdSelector<T>\r\n): EntityStateAdapter<T> {\r\n type R = EntityState<T>\r\n\r\n function addOneMutably(entity: T, state: R): void {\r\n const key = selectIdValue(entity, selectId)\r\n\r\n if (key in state.entities) {\r\n return\r\n }\r\n\r\n state.ids.push(key)\r\n state.entities[key] = entity\r\n }\r\n\r\n function addManyMutably(\r\n newEntities: readonly T[] | Record<EntityId, T>,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n for (const entity of newEntities) {\r\n addOneMutably(entity, state)\r\n }\r\n }\r\n\r\n function setOneMutably(entity: T, state: R): void {\r\n const key = selectIdValue(entity, selectId)\r\n if (!(key in state.entities)) {\r\n state.ids.push(key)\r\n }\r\n state.entities[key] = entity\r\n }\r\n\r\n function setManyMutably(\r\n newEntities: readonly T[] | Record<EntityId, T>,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n for (const entity of newEntities) {\r\n setOneMutably(entity, state)\r\n }\r\n }\r\n\r\n function setAllMutably(\r\n newEntities: readonly T[] | Record<EntityId, T>,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n state.ids = []\r\n state.entities = {}\r\n\r\n addManyMutably(newEntities, state)\r\n }\r\n\r\n function removeOneMutably(key: EntityId, state: R): void {\r\n return removeManyMutably([key], state)\r\n }\r\n\r\n function removeManyMutably(keys: readonly EntityId[], state: R): void {\r\n let didMutate = false\r\n\r\n keys.forEach((key) => {\r\n if (key in state.entities) {\r\n delete state.entities[key]\r\n didMutate = true\r\n }\r\n })\r\n\r\n if (didMutate) {\r\n state.ids = state.ids.filter((id) => id in state.entities)\r\n }\r\n }\r\n\r\n function removeAllMutably(state: R): void {\r\n Object.assign(state, {\r\n ids: [],\r\n entities: {},\r\n })\r\n }\r\n\r\n function takeNewKey(\r\n keys: { [id: string]: EntityId },\r\n update: Update<T>,\r\n state: R\r\n ): boolean {\r\n const original = state.entities[update.id]\r\n const updated: T = Object.assign({}, original, update.changes)\r\n const newKey = selectIdValue(updated, selectId)\r\n const hasNewKey = newKey !== update.id\r\n\r\n if (hasNewKey) {\r\n keys[update.id] = newKey\r\n delete state.entities[update.id]\r\n }\r\n\r\n state.entities[newKey] = updated\r\n\r\n return hasNewKey\r\n }\r\n\r\n function updateOneMutably(update: Update<T>, state: R): void {\r\n return updateManyMutably([update], state)\r\n }\r\n\r\n function updateManyMutably(\r\n updates: ReadonlyArray<Update<T>>,\r\n state: R\r\n ): void {\r\n const newKeys: { [id: string]: EntityId } = {}\r\n\r\n const updatesPerEntity: { [id: string]: Update<T> } = {}\r\n\r\n updates.forEach((update) => {\r\n // Only apply updates to entities that currently exist\r\n if (update.id in state.entities) {\r\n // If there are multiple updates to one entity, merge them together\r\n updatesPerEntity[update.id] = {\r\n id: update.id,\r\n // Spreads ignore falsy values, so this works even if there isn't\r\n // an existing update already at this key\r\n changes: {\r\n ...(updatesPerEntity[update.id]\r\n ? updatesPerEntity[update.id].changes\r\n : null),\r\n ...update.changes,\r\n },\r\n }\r\n }\r\n })\r\n\r\n updates = Object.values(updatesPerEntity)\r\n\r\n const didMutateEntities = updates.length > 0\r\n\r\n if (didMutateEntities) {\r\n const didMutateIds =\r\n updates.filter((update) => takeNewKey(newKeys, update, state)).length >\r\n 0\r\n\r\n if (didMutateIds) {\r\n state.ids = Object.keys(state.entities)\r\n }\r\n }\r\n }\r\n\r\n function upsertOneMutably(entity: T, state: R): void {\r\n return upsertManyMutably([entity], state)\r\n }\r\n\r\n function upsertManyMutably(\r\n newEntities: readonly T[] | Record<EntityId, T>,\r\n state: R\r\n ): void {\r\n const [added, updated] = splitAddedUpdatedEntities<T>(\r\n newEntities,\r\n selectId,\r\n state\r\n )\r\n\r\n updateManyMutably(updated, state)\r\n addManyMutably(added, state)\r\n }\r\n\r\n return {\r\n removeAll: createSingleArgumentStateOperator(removeAllMutably),\r\n addOne: createStateOperator(addOneMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n upsertMany: createStateOperator(upsertManyMutably),\r\n removeOne: createStateOperator(removeOneMutably),\r\n removeMany: createStateOperator(removeManyMutably),\r\n }\r\n}\r\n","import type {\r\n EntityDefinition,\r\n Comparer,\r\n IdSelector,\r\n EntityAdapter,\r\n} from './models'\r\nimport { createInitialStateFactory } from './entity_state'\r\nimport { createSelectorsFactory } from './state_selectors'\r\nimport { createSortedStateAdapter } from './sorted_state_adapter'\r\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter'\r\n\r\n/**\r\n *\r\n * @param options\r\n *\r\n * @public\r\n */\r\nexport function createEntityAdapter<T>(\r\n options: {\r\n selectId?: IdSelector<T>\r\n sortComparer?: false | Comparer<T>\r\n } = {}\r\n): EntityAdapter<T> {\r\n const { selectId, sortComparer }: EntityDefinition<T> = {\r\n sortComparer: false,\r\n selectId: (instance: any) => instance.id,\r\n ...options,\r\n }\r\n\r\n const stateFactory = createInitialStateFactory<T>()\r\n const selectorsFactory = createSelectorsFactory<T>()\r\n const stateAdapter = sortComparer\r\n ? createSortedStateAdapter(selectId, sortComparer)\r\n : createUnsortedStateAdapter(selectId)\r\n\r\n return {\r\n selectId,\r\n sortComparer,\r\n ...stateFactory,\r\n ...selectorsFactory,\r\n ...stateAdapter,\r\n }\r\n}\r\n","import type { EntityState } from './models'\r\n\r\nexport function getInitialEntityState<V>(): EntityState<V> {\r\n return {\r\n ids: [],\r\n entities: {},\r\n }\r\n}\r\n\r\nexport function createInitialStateFactory<V>() {\r\n function getInitialState(): EntityState<V>\r\n function getInitialState<S extends object>(\r\n additionalState: S\r\n ): EntityState<V> & S\r\n function getInitialState(additionalState: any = {}): any {\r\n return Object.assign(getInitialEntityState(), additionalState)\r\n }\r\n\r\n return { getInitialState }\r\n}\r\n","import type { Selector } from 'reselect'\r\nimport { createDraftSafeSelector } from '../createDraftSafeSelector'\r\nimport type {\r\n EntityState,\r\n EntitySelectors,\r\n Dictionary,\r\n EntityId,\r\n} from './models'\r\n\r\nexport function createSelectorsFactory<T>() {\r\n function getSelectors(): EntitySelectors<T, EntityState<T>>\r\n function getSelectors<V>(\r\n selectState: (state: V) => EntityState<T>\r\n ): EntitySelectors<T, V>\r\n function getSelectors<V>(\r\n selectState?: (state: V) => EntityState<T>\r\n ): EntitySelectors<T, any> {\r\n const selectIds = (state: EntityState<T>) => state.ids\r\n\r\n const selectEntities = (state: EntityState<T>) => state.entities\r\n\r\n const selectAll = createDraftSafeSelector(\r\n selectIds,\r\n selectEntities,\r\n (ids, entities): T[] => ids.map((id) => entities[id]!)\r\n )\r\n\r\n const selectId = (_: unknown, id: EntityId) => id\r\n\r\n const selectById = (entities: Dictionary<T>, id: EntityId) => entities[id]\r\n\r\n const selectTotal = createDraftSafeSelector(selectIds, (ids) => ids.length)\r\n\r\n if (!selectState) {\r\n return {\r\n selectIds,\r\n selectEntities,\r\n selectAll,\r\n selectTotal,\r\n selectById: createDraftSafeSelector(\r\n selectEntities,\r\n selectId,\r\n selectById\r\n ),\r\n }\r\n }\r\n\r\n const selectGlobalizedEntities = createDraftSafeSelector(\r\n selectState as Selector<V, EntityState<T>>,\r\n selectEntities\r\n )\r\n\r\n return {\r\n selectIds: createDraftSafeSelector(selectState, selectIds),\r\n selectEntities: selectGlobalizedEntities,\r\n selectAll: createDraftSafeSelector(selectState, selectAll),\r\n selectTotal: createDraftSafeSelector(selectState, selectTotal),\r\n selectById: createDraftSafeSelector(\r\n selectGlobalizedEntities,\r\n selectId,\r\n selectById\r\n ),\r\n }\r\n }\r\n\r\n return { getSelectors }\r\n}\r\n","import type {\r\n EntityState,\r\n IdSelector,\r\n Comparer,\r\n EntityStateAdapter,\r\n Update,\r\n EntityId,\r\n} from './models'\r\nimport { createStateOperator } from './state_adapter'\r\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter'\r\nimport {\r\n selectIdValue,\r\n ensureEntitiesArray,\r\n splitAddedUpdatedEntities,\r\n} from './utils'\r\n\r\nexport function createSortedStateAdapter<T>(\r\n selectId: IdSelector<T>,\r\n sort: Comparer<T>\r\n): EntityStateAdapter<T> {\r\n type R = EntityState<T>\r\n\r\n const { removeOne, removeMany, removeAll } =\r\n createUnsortedStateAdapter(selectId)\r\n\r\n function addOneMutably(entity: T, state: R): void {\r\n return addManyMutably([entity], state)\r\n }\r\n\r\n function addManyMutably(\r\n newEntities: readonly T[] | Record<EntityId, T>,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n const models = newEntities.filter(\r\n (model) => !(selectIdValue(model, selectId) in state.entities)\r\n )\r\n\r\n if (models.length !== 0) {\r\n merge(models, state)\r\n }\r\n }\r\n\r\n function setOneMutably(entity: T, state: R): void {\r\n return setManyMutably([entity], state)\r\n }\r\n\r\n function setManyMutably(\r\n newEntities: readonly T[] | Record<EntityId, T>,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n if (newEntities.length !== 0) {\r\n merge(newEntities, state)\r\n }\r\n }\r\n\r\n function setAllMutably(\r\n newEntities: readonly T[] | Record<EntityId, T>,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n state.entities = {}\r\n state.ids = []\r\n\r\n addManyMutably(newEntities, state)\r\n }\r\n\r\n function updateOneMutably(update: Update<T>, state: R): void {\r\n return updateManyMutably([update], state)\r\n }\r\n\r\n function updateManyMutably(\r\n updates: ReadonlyArray<Update<T>>,\r\n state: R\r\n ): void {\r\n let appliedUpdates = false\r\n\r\n for (let update of updates) {\r\n const entity = state.entities[update.id]\r\n if (!entity) {\r\n continue\r\n }\r\n\r\n appliedUpdates = true\r\n\r\n Object.assign(entity, update.changes)\r\n const newId = selectId(entity)\r\n if (update.id !== newId) {\r\n delete state.entities[update.id]\r\n state.entities[newId] = entity\r\n }\r\n }\r\n\r\n if (appliedUpdates) {\r\n resortEntities(state)\r\n }\r\n }\r\n\r\n function upsertOneMutably(entity: T, state: R): void {\r\n return upsertManyMutably([entity], state)\r\n }\r\n\r\n function upsertManyMutably(\r\n newEntities: readonly T[] | Record<EntityId, T>,\r\n state: R\r\n ): void {\r\n const [added, updated] = splitAddedUpdatedEntities<T>(\r\n newEntities,\r\n selectId,\r\n state\r\n )\r\n\r\n updateManyMutably(updated, state)\r\n addManyMutably(added, state)\r\n }\r\n\r\n function areArraysEqual(a: readonly unknown[], b: readonly unknown[]) {\r\n if (a.length !== b.length) {\r\n return false\r\n }\r\n\r\n for (let i = 0; i < a.length && i < b.length; i++) {\r\n if (a[i] === b[i]) {\r\n continue\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n function merge(models: readonly T[], state: R): void {\r\n // Insert/overwrite all new/updated\r\n models.forEach((model) => {\r\n state.entities[selectId(model)] = model\r\n })\r\n\r\n resortEntities(state)\r\n }\r\n\r\n function resortEntities(state: R) {\r\n const allEntities = Object.values(state.entities) as T[]\r\n allEntities.sort(sort)\r\n\r\n const newSortedIds = allEntities.map(selectId)\r\n const { ids } = state\r\n\r\n if (!areArraysEqual(ids, newSortedIds)) {\r\n state.ids = newSortedIds\r\n }\r\n }\r\n\r\n return {\r\n removeOne,\r\n removeMany,\r\n removeAll,\r\n addOne: createStateOperator(addOneMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertMany: createStateOperator(upsertManyMutably),\r\n }\r\n}\r\n","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\r\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\r\n// optimize the gzip compression for this alphabet.\r\nlet urlAlphabet =\r\n 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\r\n\r\n/**\r\n *\r\n * @public\r\n */\r\nexport let nanoid = (size = 21) => {\r\n let id = ''\r\n // A compact alternative for `for (var i = 0; i < step; i++)`.\r\n let i = size\r\n while (i--) {\r\n // `| 0` is more compact and faster than `Math.floor()`.\r\n id += urlAlphabet[(Math.random() * 64) | 0]\r\n }\r\n return id\r\n}\r\n","import type { Dispatch, AnyAction } from 'redux'\r\nimport type {\r\n PayloadAction,\r\n ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown } from './tsHelpers'\r\nimport { nanoid } from './nanoid'\r\n\r\n// @ts-ignore we need the import of these types due to a bundling issue.\r\ntype _Keep = PayloadAction | ActionCreatorWithPreparedPayload<any, unknown>\r\n\r\nexport type BaseThunkAPI<\r\n S,\r\n E,\r\n D extends Dispatch = Dispatch,\r\n RejectedValue = unknown,\r\n RejectedMeta = unknown,\r\n FulfilledMeta = unknown\r\n> = {\r\n dispatch: D\r\n getState: () => S\r\n extra: E\r\n requestId: string\r\n signal: AbortSignal\r\n abort: (reason?: string) => void\r\n rejectWithValue: IsUnknown<\r\n RejectedMeta,\r\n (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>,\r\n (\r\n value: RejectedValue,\r\n meta: RejectedMeta\r\n ) => RejectWithValue<RejectedValue, RejectedMeta>\r\n >\r\n fulfillWithValue: IsUnknown<\r\n FulfilledMeta,\r\n <FulfilledValue>(value: FulfilledValue) => FulfilledValue,\r\n <FulfilledValue>(\r\n value: FulfilledValue,\r\n meta: FulfilledMeta\r\n ) => FulfillWithMeta<FulfilledValue, FulfilledMeta>\r\n >\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SerializedError {\r\n name?: string\r\n message?: string\r\n stack?: string\r\n code?: string\r\n}\r\n\r\nconst commonProperties: Array<keyof SerializedError> = [\r\n 'name',\r\n 'message',\r\n 'stack',\r\n 'code',\r\n]\r\n\r\nclass RejectWithValue<Payload, RejectedMeta> {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'RejectWithValue'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: RejectedMeta\r\n ) {}\r\n}\r\n\r\nclass FulfillWithMeta<Payload, FulfilledMeta> {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'FulfillWithMeta'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: FulfilledMeta\r\n ) {}\r\n}\r\n\r\n/**\r\n * Serializes an error into a plain object.\r\n * Reworked from https://github.com/sindresorhus/serialize-error\r\n *\r\n * @public\r\n */\r\nexport const miniSerializeError = (value: any): SerializedError => {\r\n if (typeof value === 'object' && value !== null) {\r\n const simpleError: SerializedError = {}\r\n for (const property of commonProperties) {\r\n if (typeof value[property] === 'string') {\r\n simpleError[property] = value[property]\r\n }\r\n }\r\n\r\n return simpleError\r\n }\r\n\r\n return { message: String(value) }\r\n}\r\n\r\ntype AsyncThunkConfig = {\r\n state?: unknown\r\n dispatch?: Dispatch\r\n extra?: unknown\r\n rejectValue?: unknown\r\n serializedErrorType?: unknown\r\n pendingMeta?: unknown\r\n fulfilledMeta?: unknown\r\n rejectedMeta?: unknown\r\n}\r\n\r\ntype GetState<ThunkApiConfig> = ThunkApiConfig extends {\r\n state: infer State\r\n}\r\n ? State\r\n : unknown\r\ntype GetExtra<ThunkApiConfig> = ThunkApiConfig extends { extra: infer Extra }\r\n ? Extra\r\n : unknown\r\ntype GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {\r\n dispatch: infer Dispatch\r\n}\r\n ? FallbackIfUnknown<\r\n Dispatch,\r\n ThunkDispatch<\r\n GetState<ThunkApiConfig>,\r\n GetExtra<ThunkApiConfig>,\r\n AnyAction\r\n >\r\n >\r\n : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, AnyAction>\r\n\r\nexport type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<\r\n GetState<ThunkApiConfig>,\r\n GetExtra<ThunkApiConfig>,\r\n GetDispatch<ThunkApiConfig>,\r\n GetRejectValue<ThunkApiConfig>,\r\n GetRejectedMeta<ThunkApiConfig>,\r\n GetFulfilledMeta<ThunkApiConfig>\r\n>\r\n\r\ntype GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {\r\n rejectValue: infer RejectValue\r\n}\r\n ? RejectValue\r\n : unknown\r\n\r\ntype GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n pendingMeta: infer PendingMeta\r\n}\r\n ? PendingMeta\r\n : unknown\r\n\r\ntype GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n fulfilledMeta: infer FulfilledMeta\r\n}\r\n ? FulfilledMeta\r\n : unknown\r\n\r\ntype GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n rejectedMeta: infer RejectedMeta\r\n}\r\n ? RejectedMeta\r\n : unknown\r\n\r\ntype GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {\r\n serializedErrorType: infer GetSerializedErrorType\r\n}\r\n ? GetSerializedErrorType\r\n : SerializedError\r\n\r\ntype MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never)\r\n\r\n/**\r\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreatorReturnValue<\r\n Returned,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = MaybePromise<\r\n | IsUnknown<\r\n GetFulfilledMeta<ThunkApiConfig>,\r\n Returned,\r\n FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>\r\n >\r\n | RejectWithValue<\r\n GetRejectValue<ThunkApiConfig>,\r\n GetRejectedMeta<ThunkApiConfig>\r\n >\r\n>\r\n/**\r\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = (\r\n arg: ThunkArg,\r\n thunkAPI: GetThunkAPI<ThunkApiConfig>\r\n) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>\r\n\r\n/**\r\n * A ThunkAction created by `createAsyncThunk`.\r\n * Dispatching it returns a Promise for either a\r\n * fulfilled or rejected action.\r\n * Also, the returned value contains an `abort()` method\r\n * that allows the asyncAction to be cancelled from the outside.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkAction<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = (\r\n dispatch: GetDispatch<ThunkApiConfig>,\r\n getState: () => GetState<ThunkApiConfig>,\r\n extra: GetExtra<ThunkApiConfig>\r\n) => Promise<\r\n | ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>>\r\n | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>\r\n> & {\r\n abort: (reason?: string) => void\r\n requestId: string\r\n arg: ThunkArg\r\n unwrap: () => Promise<Returned>\r\n}\r\n\r\ntype AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = IsAny<\r\n ThunkArg,\r\n // any handling\r\n (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\r\n // unknown handling\r\n unknown extends ThunkArg\r\n ? (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument not specified or specified as void or undefined\r\n : [ThunkArg] extends [void] | [undefined]\r\n ? () => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains void\r\n : [void] extends [ThunkArg] // make optional\r\n ? (arg?: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains undefined\r\n : [undefined] extends [ThunkArg]\r\n ? WithStrictNullChecks<\r\n // with strict nullChecks: make optional\r\n (\r\n arg?: ThunkArg\r\n ) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\r\n // without strict null checks this will match everything, so don't make it optional\r\n (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>\r\n > // default case: normal argument\r\n : (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>\r\n>\r\n\r\n/**\r\n * Options object for `createAsyncThunk`.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkOptions<\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = {\r\n /**\r\n * A method to control whether the asyncThunk should be executed. Has access to the\r\n * `arg`, `api.getState()` and `api.extra` arguments.\r\n *\r\n * @returns `false` if it should be skipped\r\n */\r\n condition?(\r\n arg: ThunkArg,\r\n api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n ): MaybePromise<boolean | undefined>\r\n /**\r\n * If `condition` returns `false`, the asyncThunk will be skipped.\r\n * This option allows you to control whether a `rejected` action with `meta.condition == false`\r\n * will be dispatched or not.\r\n *\r\n * @default `false`\r\n */\r\n dispatchConditionRejection?: boolean\r\n\r\n serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>\r\n\r\n /**\r\n * A function to use when generating the `requestId` for the request sequence.\r\n *\r\n * @default `nanoid`\r\n */\r\n idGenerator?: (arg: ThunkArg) => string\r\n} & IsUnknown<\r\n GetPendingMeta<ThunkApiConfig>,\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n *\r\n * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\r\n * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\r\n */\r\n getPendingMeta?(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n ): GetPendingMeta<ThunkApiConfig>\r\n },\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n */\r\n getPendingMeta(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n ): GetPendingMeta<ThunkApiConfig>\r\n }\r\n>\r\n\r\nexport type AsyncThunkPendingActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [string, ThunkArg, GetPendingMeta<ThunkApiConfig>?],\r\n undefined,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'pending'\r\n } & GetPendingMeta<ThunkApiConfig>\r\n>\r\n\r\nexport type AsyncThunkRejectedActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [\r\n Error | null,\r\n string,\r\n ThunkArg,\r\n GetRejectValue<ThunkApiConfig>?,\r\n GetRejectedMeta<ThunkApiConfig>?\r\n ],\r\n GetRejectValue<ThunkApiConfig> | undefined,\r\n string,\r\n GetSerializedErrorType<ThunkApiConfig>,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'rejected'\r\n aborted: boolean\r\n condition: boolean\r\n } & (\r\n | ({ rejectedWithValue: false } & {\r\n [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined\r\n })\r\n | ({ rejectedWithValue: true } & GetRejectedMeta<ThunkApiConfig>)\r\n )\r\n>\r\n\r\nexport type AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [Returned, string, ThunkArg, GetFulfilledMeta<ThunkApiConfig>?],\r\n Returned,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'fulfilled'\r\n } & GetFulfilledMeta<ThunkApiConfig>\r\n>\r\n\r\n/**\r\n * A type describing the return value of `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {\r\n pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>\r\n rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>\r\n fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >\r\n typePrefix: string\r\n}\r\n\r\ntype OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<\r\n NewConfig & Omit<OldConfig, keyof NewConfig>\r\n>\r\n\r\ntype CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = {\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n // separate signature without `AsyncThunkConfig` for better inference\r\n <Returned, ThunkArg = void>(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n CurriedThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>\r\n ): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>\r\n\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >,\r\n options?: AsyncThunkOptions<\r\n ThunkArg,\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >\r\n ): AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >\r\n\r\n withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >\r\n}\r\n\r\nexport const createAsyncThunk = (() => {\r\n function createAsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n >(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>\r\n ): AsyncThunk<Returned, ThunkArg, ThunkApiConfig> {\r\n type RejectedValue = GetRejectValue<ThunkApiConfig>\r\n type PendingMeta = GetPendingMeta<ThunkApiConfig>\r\n type FulfilledMeta = GetFulfilledMeta<ThunkApiConfig>\r\n type RejectedMeta = GetRejectedMeta<ThunkApiConfig>\r\n\r\n const fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n > = createAction(\r\n typePrefix + '/fulfilled',\r\n (\r\n payload: Returned,\r\n requestId: string,\r\n arg: ThunkArg,\r\n meta?: FulfilledMeta\r\n ) => ({\r\n payload,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'fulfilled' as const,\r\n },\r\n })\r\n )\r\n\r\n const pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig> =\r\n createAction(\r\n typePrefix + '/pending',\r\n (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\r\n payload: undefined,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'pending' as const,\r\n },\r\n })\r\n )\r\n\r\n const rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> =\r\n createAction(\r\n typePrefix + '/rejected',\r\n (\r\n error: Error | null,\r\n requestId: string,\r\n arg: ThunkArg,\r\n payload?: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => ({\r\n payload,\r\n error: ((options && options.serializeError) || miniSerializeError)(\r\n error || 'Rejected'\r\n ) as GetSerializedErrorType<ThunkApiConfig>,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: 'rejected' as const,\r\n aborted: error?.name === 'AbortError',\r\n condition: error?.name === 'ConditionError',\r\n },\r\n })\r\n )\r\n\r\n let displayedWarning = false\r\n\r\n const AC =\r\n typeof AbortController !== 'undefined'\r\n ? AbortController\r\n : class implements AbortController {\r\n signal = {\r\n aborted: false,\r\n addEventListener() {},\r\n dispatchEvent() {\r\n return false\r\n },\r\n onabort() {},\r\n removeEventListener() {},\r\n reason: undefined,\r\n throwIfAborted() {},\r\n }\r\n abort() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!displayedWarning) {\r\n displayedWarning = true\r\n console.info(\r\n `This platform does not implement AbortController. \r\nIf you want to use the AbortController to react to \\`abort\\` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.`\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n function actionCreator(\r\n arg: ThunkArg\r\n ): AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> {\r\n return (dispatch, getState, extra) => {\r\n const requestId = options?.idGenerator\r\n ? options.idGenerator(arg)\r\n : nanoid()\r\n\r\n const abortController = new AC()\r\n let abortReason: string | undefined\r\n\r\n let started = false\r\n function abort(reason?: string) {\r\n abortReason = reason\r\n abortController.abort()\r\n }\r\n\r\n const promise = (async function () {\r\n let finalAction: ReturnType<typeof fulfilled | typeof rejected>\r\n try {\r\n let conditionResult = options?.condition?.(arg, { getState, extra })\r\n if (isThenable(conditionResult)) {\r\n conditionResult = await conditionResult\r\n }\r\n\r\n if (conditionResult === false || abortController.signal.aborted) {\r\n // eslint-disable-next-line no-throw-literal\r\n throw {\r\n name: 'ConditionError',\r\n message: 'Aborted due to condition callback returning false.',\r\n }\r\n }\r\n started = true\r\n\r\n const abortedPromise = new Promise<never>((_, reject) =>\r\n abortController.signal.addEventListener('abort', () =>\r\n reject({\r\n name: 'AbortError',\r\n message: abortReason || 'Aborted',\r\n })\r\n )\r\n )\r\n dispatch(\r\n pending(\r\n requestId,\r\n arg,\r\n options?.getPendingMeta?.(\r\n { requestId, arg },\r\n { getState, extra }\r\n )\r\n )\r\n )\r\n finalAction = await Promise.race([\r\n abortedPromise,\r\n Promise.resolve(\r\n payloadCreator(arg, {\r\n dispatch,\r\n getState,\r\n extra,\r\n requestId,\r\n signal: abortController.signal,\r\n abort,\r\n rejectWithValue: ((\r\n value: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => {\r\n return new RejectWithValue(value, meta)\r\n }) as any,\r\n fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\r\n return new FulfillWithMeta(value, meta)\r\n }) as any,\r\n })\r\n ).then((result) => {\r\n if (result instanceof RejectWithValue) {\r\n throw result\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta)\r\n }\r\n return fulfilled(result as any, requestId, arg)\r\n }),\r\n ])\r\n } catch (err) {\r\n finalAction =\r\n err instanceof RejectWithValue\r\n ? rejected(null, requestId, arg, err.payload, err.meta)\r\n : rejected(err as any, requestId, arg)\r\n }\r\n // We dispatch the result action _after_ the catch, to avoid having any errors\r\n // here get swallowed by the try/catch block,\r\n // per https://twitter.com/dan_abramov/status/770914221638942720\r\n // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\r\n\r\n const skipDispatch =\r\n options &&\r\n !options.dispatchConditionRejection &&\r\n rejected.match(finalAction) &&\r\n (finalAction as any).meta.condition\r\n\r\n if (!skipDispatch) {\r\n dispatch(finalAction)\r\n }\r\n return finalAction\r\n })()\r\n return Object.assign(promise as Promise<any>, {\r\n abort,\r\n requestId,\r\n arg,\r\n unwrap() {\r\n return promise.then<any>(unwrapResult)\r\n },\r\n })\r\n }\r\n }\r\n\r\n return Object.assign(\r\n actionCreator as AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n {\r\n pending,\r\n rejected,\r\n fulfilled,\r\n typePrefix,\r\n }\r\n )\r\n }\r\n createAsyncThunk.withTypes = () => createAsyncThunk\r\n\r\n return createAsyncThunk as CreateAsyncThunk<AsyncThunkConfig>\r\n})()\r\n\r\ninterface UnwrappableAction {\r\n payload: any\r\n meta?: any\r\n error?: any\r\n}\r\n\r\ntype UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<\r\n T,\r\n { error: any }\r\n>['payload']\r\n\r\n/**\r\n * @public\r\n */\r\nexport function unwrapResult<R extends UnwrappableAction>(\r\n action: R\r\n): UnwrappedActionPayload<R> {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload\r\n }\r\n if (action.error) {\r\n throw action.error\r\n }\r\n return action.payload\r\n}\r\n\r\ntype WithStrictNullChecks<True, False> = undefined extends boolean\r\n ? False\r\n : True\r\n\r\nfunction isThenable(value: any): value is PromiseLike<any> {\r\n return (\r\n value !== null &&\r\n typeof value === 'object' &&\r\n typeof value.then === 'function'\r\n )\r\n}\r\n","import type { Dispatch, AnyAction, MiddlewareAPI } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport { createAction, isAction } from '../createAction'\r\nimport { nanoid } from '../nanoid'\r\n\r\nimport type {\r\n ListenerMiddleware,\r\n ListenerMiddlewareInstance,\r\n AddListenerOverloads,\r\n AnyListenerPredicate,\r\n CreateListenerMiddlewareOptions,\r\n TypedAddListener,\r\n TypedCreateListenerEntry,\r\n FallbackAddListenerOptions,\r\n ListenerEntry,\r\n ListenerErrorHandler,\r\n UnsubscribeListener,\r\n TakePattern,\r\n ListenerErrorInfo,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n TypedRemoveListener,\r\n TaskResult,\r\n AbortSignalWithReason,\r\n UnsubscribeListenerOptions,\r\n ForkOptions,\r\n} from './types'\r\nimport {\r\n abortControllerWithReason,\r\n addAbortSignalListener,\r\n assertFunction,\r\n catchRejection,\r\n} from './utils'\r\nimport {\r\n listenerCancelled,\r\n listenerCompleted,\r\n TaskAbortError,\r\n taskCancelled,\r\n taskCompleted,\r\n} from './exceptions'\r\nimport {\r\n runTask,\r\n validateActive,\r\n createPause,\r\n createDelay,\r\n raceWithSignal,\r\n} from './task'\r\nexport { TaskAbortError } from './exceptions'\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './types'\r\n\r\n//Overly-aggressive byte-shaving\r\nconst { assign } = Object\r\n/**\r\n * @internal\r\n */\r\nconst INTERNAL_NIL_TOKEN = {} as const\r\n\r\nconst alm = 'listenerMiddleware' as const\r\n\r\nconst createFork = (\r\n parentAbortSignal: AbortSignalWithReason<unknown>,\r\n parentBlockingPromises: Promise<any>[]\r\n) => {\r\n const linkControllers = (controller: AbortController) =>\r\n addAbortSignalListener(parentAbortSignal, () =>\r\n abortControllerWithReason(controller, parentAbortSignal.reason)\r\n )\r\n\r\n return <T>(\r\n taskExecutor: ForkedTaskExecutor<T>,\r\n opts?: ForkOptions\r\n ): ForkedTask<T> => {\r\n assertFunction(taskExecutor, 'taskExecutor')\r\n const childAbortController = new AbortController()\r\n\r\n linkControllers(childAbortController)\r\n\r\n const result = runTask<T>(\r\n async (): Promise<T> => {\r\n validateActive(parentAbortSignal)\r\n validateActive(childAbortController.signal)\r\n const result = (await taskExecutor({\r\n pause: createPause(childAbortController.signal),\r\n delay: createDelay(childAbortController.signal),\r\n signal: childAbortController.signal,\r\n })) as T\r\n validateActive(childAbortController.signal)\r\n return result\r\n },\r\n () => abortControllerWithReason(childAbortController, taskCompleted)\r\n )\r\n\r\n if (opts?.autoJoin) {\r\n parentBlockingPromises.push(result)\r\n }\r\n\r\n return {\r\n result: createPause<TaskResult<T>>(parentAbortSignal)(result),\r\n cancel() {\r\n abortControllerWithReason(childAbortController, taskCancelled)\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst createTakePattern = <S>(\r\n startListening: AddListenerOverloads<\r\n UnsubscribeListener,\r\n S,\r\n Dispatch<AnyAction>\r\n >,\r\n signal: AbortSignal\r\n): TakePattern<S> => {\r\n /**\r\n * A function that takes a ListenerPredicate and an optional timeout,\r\n * and resolves when either the predicate returns `true` based on an action\r\n * state combination or when the timeout expires.\r\n * If the parent listener is canceled while waiting, this will throw a\r\n * TaskAbortError.\r\n */\r\n const take = async <P extends AnyListenerPredicate<S>>(\r\n predicate: P,\r\n timeout: number | undefined\r\n ) => {\r\n validateActive(signal)\r\n\r\n // Placeholder unsubscribe function until the listener is added\r\n let unsubscribe: UnsubscribeListener = () => {}\r\n\r\n const tuplePromise = new Promise<[AnyAction, S, S]>((resolve, reject) => {\r\n // Inside the Promise, we synchronously add the listener.\r\n let stopListening = startListening({\r\n predicate: predicate as any,\r\n effect: (action, listenerApi): void => {\r\n // One-shot listener that cleans up as soon as the predicate passes\r\n listenerApi.unsubscribe()\r\n // Resolve the promise with the same arguments the predicate saw\r\n resolve([\r\n action,\r\n listenerApi.getState(),\r\n listenerApi.getOriginalState(),\r\n ])\r\n },\r\n })\r\n unsubscribe = () => {\r\n stopListening()\r\n reject()\r\n }\r\n })\r\n\r\n const promises: (Promise<null> | Promise<[AnyAction, S, S]>)[] = [\r\n tuplePromise,\r\n ]\r\n\r\n if (timeout != null) {\r\n promises.push(\r\n new Promise<null>((resolve) => setTimeout(resolve, timeout, null))\r\n )\r\n }\r\n\r\n try {\r\n const output = await raceWithSignal(signal, Promise.race(promises))\r\n\r\n validateActive(signal)\r\n return output\r\n } finally {\r\n // Always clean up the listener\r\n unsubscribe()\r\n }\r\n }\r\n\r\n return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) =>\r\n catchRejection(take(predicate, timeout))) as TakePattern<S>\r\n}\r\n\r\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\r\n let { type, actionCreator, matcher, predicate, effect } = options\r\n\r\n if (type) {\r\n predicate = createAction(type).match\r\n } else if (actionCreator) {\r\n type = actionCreator!.type\r\n predicate = actionCreator.match\r\n } else if (matcher) {\r\n predicate = matcher\r\n } else if (predicate) {\r\n // pass\r\n } else {\r\n throw new Error(\r\n 'Creating or removing a listener requires one of the known fields for matching an action'\r\n )\r\n }\r\n\r\n assertFunction(effect, 'options.listener')\r\n\r\n return { predicate, type, effect }\r\n}\r\n\r\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\r\nexport const createListenerEntry: TypedCreateListenerEntry<unknown> = (\r\n options: FallbackAddListenerOptions\r\n) => {\r\n const { type, predicate, effect } = getListenerEntryPropsFrom(options)\r\n\r\n const id = nanoid()\r\n const entry: ListenerEntry<unknown> = {\r\n id,\r\n effect,\r\n type,\r\n predicate,\r\n pending: new Set<AbortController>(),\r\n unsubscribe: () => {\r\n throw new Error('Unsubscribe not initialized')\r\n },\r\n }\r\n\r\n return entry\r\n}\r\n\r\nconst cancelActiveListeners = (\r\n entry: ListenerEntry<unknown, Dispatch<AnyAction>>\r\n) => {\r\n entry.pending.forEach((controller) => {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n })\r\n}\r\n\r\nconst createClearListenerMiddleware = (\r\n listenerMap: Map<string, ListenerEntry>\r\n) => {\r\n return () => {\r\n listenerMap.forEach(cancelActiveListeners)\r\n\r\n listenerMap.clear()\r\n }\r\n}\r\n\r\n/**\r\n * Safely reports errors to the `errorHandler` provided.\r\n * Errors that occur inside `errorHandler` are notified in a new task.\r\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\r\n * @param errorHandler\r\n * @param errorToNotify\r\n */\r\nconst safelyNotifyError = (\r\n errorHandler: ListenerErrorHandler,\r\n errorToNotify: unknown,\r\n errorInfo: ListenerErrorInfo\r\n): void => {\r\n try {\r\n errorHandler(errorToNotify, errorInfo)\r\n } catch (errorHandlerError) {\r\n // We cannot let an error raised here block the listener queue.\r\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\r\n setTimeout(() => {\r\n throw errorHandlerError\r\n }, 0)\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const addListener = createAction(\r\n `${alm}/add`\r\n) as TypedAddListener<unknown>\r\n\r\n/**\r\n * @public\r\n */\r\nexport const clearAllListeners = createAction(`${alm}/removeAll`)\r\n\r\n/**\r\n * @public\r\n */\r\nexport const removeListener = createAction(\r\n `${alm}/remove`\r\n) as TypedRemoveListener<unknown>\r\n\r\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\r\n console.error(`${alm}/error`, ...args)\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport function createListenerMiddleware<\r\n S = unknown,\r\n D extends Dispatch<AnyAction> = ThunkDispatch<S, unknown, AnyAction>,\r\n ExtraArgument = unknown\r\n>(middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {}) {\r\n const listenerMap = new Map<string, ListenerEntry>()\r\n const { extra, onError = defaultErrorHandler } = middlewareOptions\r\n\r\n assertFunction(onError, 'onError')\r\n\r\n const insertEntry = (entry: ListenerEntry) => {\r\n entry.unsubscribe = () => listenerMap.delete(entry!.id)\r\n\r\n listenerMap.set(entry.id, entry)\r\n return (cancelOptions?: UnsubscribeListenerOptions) => {\r\n entry.unsubscribe()\r\n if (cancelOptions?.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n }\r\n\r\n const findListenerEntry = (\r\n comparator: (entry: ListenerEntry) => boolean\r\n ): ListenerEntry | undefined => {\r\n for (const entry of Array.from(listenerMap.values())) {\r\n if (comparator(entry)) {\r\n return entry\r\n }\r\n }\r\n\r\n return undefined\r\n }\r\n\r\n const startListening = (options: FallbackAddListenerOptions) => {\r\n let entry = findListenerEntry(\r\n (existingEntry) => existingEntry.effect === options.effect\r\n )\r\n\r\n if (!entry) {\r\n entry = createListenerEntry(options as any)\r\n }\r\n\r\n return insertEntry(entry)\r\n }\r\n\r\n const stopListening = (\r\n options: FallbackAddListenerOptions & UnsubscribeListenerOptions\r\n ): boolean => {\r\n const { type, effect, predicate } = getListenerEntryPropsFrom(options)\r\n\r\n const entry = findListenerEntry((entry) => {\r\n const matchPredicateOrType =\r\n typeof type === 'string'\r\n ? entry.type === type\r\n : entry.predicate === predicate\r\n\r\n return matchPredicateOrType && entry.effect === effect\r\n })\r\n\r\n if (entry) {\r\n entry.unsubscribe()\r\n if (options.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n\r\n return !!entry\r\n }\r\n\r\n const notifyListener = async (\r\n entry: ListenerEntry<unknown, Dispatch<AnyAction>>,\r\n action: AnyAction,\r\n api: MiddlewareAPI,\r\n getOriginalState: () => S\r\n ) => {\r\n const internalTaskController = new AbortController()\r\n const take = createTakePattern(\r\n startListening,\r\n internalTaskController.signal\r\n )\r\n const autoJoinPromises: Promise<any>[] = []\r\n\r\n try {\r\n entry.pending.add(internalTaskController)\r\n await Promise.resolve(\r\n entry.effect(\r\n action,\r\n // Use assign() rather than ... to avoid extra helper functions added to bundle\r\n assign({}, api, {\r\n getOriginalState,\r\n condition: (\r\n predicate: AnyListenerPredicate<any>,\r\n timeout?: number\r\n ) => take(predicate, timeout).then(Boolean),\r\n take,\r\n delay: createDelay(internalTaskController.signal),\r\n pause: createPause<any>(internalTaskController.signal),\r\n extra,\r\n signal: internalTaskController.signal,\r\n fork: createFork(internalTaskController.signal, autoJoinPromises),\r\n unsubscribe: entry.unsubscribe,\r\n subscribe: () => {\r\n listenerMap.set(entry.id, entry)\r\n },\r\n cancelActiveListeners: () => {\r\n entry.pending.forEach((controller, _, set) => {\r\n if (controller !== internalTaskController) {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n set.delete(controller)\r\n }\r\n })\r\n },\r\n })\r\n )\r\n )\r\n } catch (listenerError) {\r\n if (!(listenerError instanceof TaskAbortError)) {\r\n safelyNotifyError(onError, listenerError, {\r\n raisedBy: 'effect',\r\n })\r\n }\r\n } finally {\r\n await Promise.allSettled(autoJoinPromises)\r\n\r\n abortControllerWithReason(internalTaskController, listenerCompleted) // Notify that the task has completed\r\n entry.pending.delete(internalTaskController)\r\n }\r\n }\r\n\r\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap)\r\n\r\n const middleware: ListenerMiddleware<S, D, ExtraArgument> =\r\n (api) => (next) => (action) => {\r\n if (!isAction(action)) {\r\n // we only want to notify listeners for action objects\r\n return next(action)\r\n }\r\n\r\n if (addListener.match(action)) {\r\n return startListening(action.payload)\r\n }\r\n\r\n if (clearAllListeners.match(action)) {\r\n clearListenerMiddleware()\r\n return\r\n }\r\n\r\n if (removeListener.match(action)) {\r\n return stopListening(action.payload)\r\n }\r\n\r\n // Need to get this state _before_ the reducer processes the action\r\n let originalState: S | typeof INTERNAL_NIL_TOKEN = api.getState()\r\n\r\n // `getOriginalState` can only be called synchronously.\r\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\r\n const getOriginalState = (): S => {\r\n if (originalState === INTERNAL_NIL_TOKEN) {\r\n throw new Error(\r\n `${alm}: getOriginalState can only be called synchronously`\r\n )\r\n }\r\n\r\n return originalState as S\r\n }\r\n\r\n let result: unknown\r\n\r\n try {\r\n // Actually forward the action to the reducer before we handle listeners\r\n result = next(action)\r\n\r\n if (listenerMap.size > 0) {\r\n let currentState = api.getState()\r\n // Work around ESBuild+TS transpilation issue\r\n const listenerEntries = Array.from(listenerMap.values())\r\n for (let entry of listenerEntries) {\r\n let runListener = false\r\n\r\n try {\r\n runListener = entry.predicate(action, currentState, originalState)\r\n } catch (predicateError) {\r\n runListener = false\r\n\r\n safelyNotifyError(onError, predicateError, {\r\n raisedBy: 'predicate',\r\n })\r\n }\r\n\r\n if (!runListener) {\r\n continue\r\n }\r\n\r\n notifyListener(entry, action, api, getOriginalState)\r\n }\r\n }\r\n } finally {\r\n // Remove `originalState` store from this scope.\r\n originalState = INTERNAL_NIL_TOKEN\r\n }\r\n\r\n return result\r\n }\r\n\r\n return {\r\n middleware,\r\n startListening,\r\n stopListening,\r\n clearListeners: clearListenerMiddleware,\r\n } as ListenerMiddlewareInstance<S, D, ExtraArgument>\r\n}\r\n","import { TaskAbortError } from './exceptions'\r\nimport type { AbortSignalWithReason, TaskResult } from './types'\r\nimport { addAbortSignalListener, catchRejection, noop } from './utils'\r\n\r\n/**\r\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\r\n * @param signal\r\n * @param reason\r\n * @see {TaskAbortError}\r\n */\r\nexport const validateActive = (signal: AbortSignal): void => {\r\n if (signal.aborted) {\r\n throw new TaskAbortError((signal as AbortSignalWithReason<string>).reason)\r\n }\r\n}\r\n\r\n/**\r\n * Generates a race between the promise(s) and the AbortSignal\r\n * This avoids `Promise.race()`-related memory leaks:\r\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\r\n */\r\nexport function raceWithSignal<T>(\r\n signal: AbortSignalWithReason<string>,\r\n promise: Promise<T>\r\n): Promise<T> {\r\n let cleanup = noop\r\n return new Promise<T>((resolve, reject) => {\r\n const notifyRejection = () => reject(new TaskAbortError(signal.reason))\r\n\r\n if (signal.aborted) {\r\n notifyRejection()\r\n return\r\n }\r\n\r\n cleanup = addAbortSignalListener(signal, notifyRejection)\r\n promise.finally(() => cleanup()).then(resolve, reject)\r\n }).finally(() => {\r\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\r\n cleanup = noop\r\n })\r\n}\r\n\r\n/**\r\n * Runs a task and returns promise that resolves to {@link TaskResult}.\r\n * Second argument is an optional `cleanUp` function that always runs after task.\r\n *\r\n * **Note:** `runTask` runs the executor in the next microtask.\r\n * @returns\r\n */\r\nexport const runTask = async <T>(\r\n task: () => Promise<T>,\r\n cleanUp?: () => void\r\n): Promise<TaskResult<T>> => {\r\n try {\r\n await Promise.resolve()\r\n const value = await task()\r\n return {\r\n status: 'ok',\r\n value,\r\n }\r\n } catch (error: any) {\r\n return {\r\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\r\n error,\r\n }\r\n } finally {\r\n cleanUp?.()\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and a promise returns another promise that resolves\r\n * as soon the input promise is provided or rejects as soon as\r\n * `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createPause = <T>(signal: AbortSignal) => {\r\n return (promise: Promise<T>): Promise<T> => {\r\n return catchRejection(\r\n raceWithSignal(signal, promise).then((output) => {\r\n validateActive(signal)\r\n return output\r\n })\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\r\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createDelay = (signal: AbortSignal) => {\r\n const pause = createPause<void>(signal)\r\n return (timeoutMs: number): Promise<void> => {\r\n return pause(new Promise<void>((resolve) => setTimeout(resolve, timeoutMs)))\r\n }\r\n}\r\n","import type { StoreEnhancer } from 'redux'\r\n\r\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch'\r\n\r\nexport const prepareAutoBatched =\r\n <T>() =>\r\n (payload: T): { payload: T; meta: unknown } => ({\r\n payload,\r\n meta: { [SHOULD_AUTOBATCH]: true },\r\n })\r\n\r\n// TODO Remove this in 2.0\r\n// Copied from https://github.com/feross/queue-microtask\r\nlet promise: Promise<any>\r\nconst queueMicrotaskShim =\r\n typeof queueMicrotask === 'function'\r\n ? queueMicrotask.bind(\r\n typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : globalThis\r\n )\r\n : // reuse resolved promise, and allocate it lazily\r\n (cb: () => void) =>\r\n (promise || (promise = Promise.resolve())).then(cb).catch((err: any) =>\r\n setTimeout(() => {\r\n throw err\r\n }, 0)\r\n )\r\n\r\nconst createQueueWithTimer = (timeout: number) => {\r\n return (notify: () => void) => {\r\n setTimeout(notify, timeout)\r\n }\r\n}\r\n\r\n// requestAnimationFrame won't exist in SSR environments.\r\n// Fall back to a vague approximation just to keep from erroring.\r\nconst rAF =\r\n typeof window !== 'undefined' && window.requestAnimationFrame\r\n ? window.requestAnimationFrame\r\n : createQueueWithTimer(10)\r\n\r\nexport type AutoBatchOptions =\r\n | { type: 'tick' }\r\n | { type: 'timer'; timeout: number }\r\n | { type: 'raf' }\r\n | { type: 'callback'; queueNotification: (notify: () => void) => void }\r\n\r\n/**\r\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\r\n * notifying subscribers until either the queued callback executes or the\r\n * next \"standard-priority\" action is dispatched.\r\n *\r\n * This allows dispatching multiple \"low-priority\" actions in a row with only\r\n * a single subscriber notification to the UI after the sequence of actions\r\n * is finished, thus improving UI re-render performance.\r\n *\r\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\r\n * This can be added to `action.meta` manually, or by using the\r\n * `prepareAutoBatched` helper.\r\n *\r\n * By default, it will queue a notification for the end of the event loop tick.\r\n * However, you can pass several other options to configure the behavior:\r\n * - `{type: 'tick'}: queues using `queueMicrotask` (default)\r\n * - `{type: 'timer, timeout: number}`: queues using `setTimeout`\r\n * - `{type: 'raf'}`: queues using `requestAnimationFrame`\r\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}: lets you provide your own callback\r\n *\r\n *\r\n */\r\nexport const autoBatchEnhancer =\r\n (options: AutoBatchOptions = { type: 'raf' }): StoreEnhancer =>\r\n (next) =>\r\n (...args) => {\r\n const store = next(...args)\r\n\r\n let notifying = true\r\n let shouldNotifyAtEndOfTick = false\r\n let notificationQueued = false\r\n\r\n const listeners = new Set<() => void>()\r\n\r\n const queueCallback =\r\n options.type === 'tick'\r\n ? queueMicrotaskShim\r\n : options.type === 'raf'\r\n ? rAF\r\n : options.type === 'callback'\r\n ? options.queueNotification\r\n : createQueueWithTimer(options.timeout)\r\n\r\n const notifyListeners = () => {\r\n // We're running at the end of the event loop tick.\r\n // Run the real listener callbacks to actually update the UI.\r\n notificationQueued = false\r\n if (shouldNotifyAtEndOfTick) {\r\n shouldNotifyAtEndOfTick = false\r\n listeners.forEach((l) => l())\r\n }\r\n }\r\n\r\n return Object.assign({}, store, {\r\n // Override the base `store.subscribe` method to keep original listeners\r\n // from running if we're delaying notifications\r\n subscribe(listener: () => void) {\r\n // Each wrapped listener will only call the real listener if\r\n // the `notifying` flag is currently active when it's called.\r\n // This lets the base store work as normal, while the actual UI\r\n // update becomes controlled by this enhancer.\r\n const wrappedListener: typeof listener = () => notifying && listener()\r\n const unsubscribe = store.subscribe(wrappedListener)\r\n listeners.add(listener)\r\n return () => {\r\n unsubscribe()\r\n listeners.delete(listener)\r\n }\r\n },\r\n // Override the base `store.dispatch` method so that we can check actions\r\n // for the `shouldAutoBatch` flag and determine if batching is active\r\n dispatch(action: any) {\r\n try {\r\n // If the action does _not_ have the `shouldAutoBatch` flag,\r\n // we resume/continue normal notify-after-each-dispatch behavior\r\n notifying = !action?.meta?.[SHOULD_AUTOBATCH]\r\n // If a `notifyListeners` microtask was queued, you can't cancel it.\r\n // Instead, we set a flag so that it's a no-op when it does run\r\n shouldNotifyAtEndOfTick = !notifying\r\n if (shouldNotifyAtEndOfTick) {\r\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\r\n // a microtask to notify listeners at the end of the event loop tick.\r\n // Make sure we only enqueue this _once_ per tick.\r\n if (!notificationQueued) {\r\n notificationQueued = true\r\n queueCallback(notifyListeners)\r\n }\r\n }\r\n // Go ahead and process the action as usual, including reducers.\r\n // If normal notification behavior is enabled, the store will notify\r\n // all of its own listeners, and the wrapper callbacks above will\r\n // see `notifying` is true and pass on to the real listener callbacks.\r\n // If we're \"batching\" behavior, then the wrapped callbacks will\r\n // bail out, causing the base store notification behavior to be no-ops.\r\n return store.dispatch(action)\r\n } finally {\r\n // Assume we're back to normal behavior after each action\r\n notifying = true\r\n }\r\n },\r\n })\r\n }\r\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\nexport {\r\n default as createNextState,\r\n current,\r\n freeze,\r\n original,\r\n isDraft,\r\n} from 'immer'\r\nexport type { Draft } from 'immer'\r\nexport { createSelector } from 'reselect'\r\nexport type {\r\n Selector,\r\n OutputParametricSelector,\r\n OutputSelector,\r\n ParametricSelector,\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments. In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n // js\r\n configureStore,\r\n} from './configureStore'\r\nexport type {\r\n // types\r\n ConfigureEnhancersCallback,\r\n ConfigureStoreOptions,\r\n EnhancedStore,\r\n} from './configureStore'\r\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension'\r\nexport {\r\n // js\r\n createAction,\r\n getType,\r\n isAction,\r\n isActionCreator,\r\n isFSA as isFluxStandardAction,\r\n} from './createAction'\r\nexport type {\r\n // types\r\n PayloadAction,\r\n PayloadActionCreator,\r\n ActionCreatorWithNonInferrablePayload,\r\n ActionCreatorWithOptionalPayload,\r\n ActionCreatorWithPayload,\r\n ActionCreatorWithoutPayload,\r\n ActionCreatorWithPreparedPayload,\r\n PrepareAction,\r\n} from './createAction'\r\nexport {\r\n // js\r\n createReducer,\r\n} from './createReducer'\r\nexport type {\r\n // types\r\n Actions,\r\n CaseReducer,\r\n CaseReducers,\r\n} from './createReducer'\r\nexport {\r\n // js\r\n createSlice,\r\n} from './createSlice'\r\n\r\nexport type {\r\n // types\r\n CreateSliceOptions,\r\n Slice,\r\n CaseReducerActions,\r\n SliceCaseReducers,\r\n ValidateSliceCaseReducers,\r\n CaseReducerWithPrepare,\r\n SliceActionCreator,\r\n} from './createSlice'\r\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nexport {\r\n // js\r\n createImmutableStateInvariantMiddleware,\r\n isImmutableDefault,\r\n} from './immutableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n ImmutableStateInvariantMiddlewareOptions,\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n createSerializableStateInvariantMiddleware,\r\n findNonSerializableValue,\r\n isPlain,\r\n} from './serializableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n SerializableStateInvariantMiddlewareOptions,\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n getDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nexport type {\r\n // types\r\n ActionReducerMapBuilder,\r\n} from './mapBuilders'\r\nexport { MiddlewareArray, EnhancerArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport type {\r\n Dictionary,\r\n EntityState,\r\n EntityAdapter,\r\n EntitySelectors,\r\n EntityStateAdapter,\r\n EntityId,\r\n Update,\r\n IdSelector,\r\n Comparer,\r\n} from './entities/models'\r\n\r\nexport {\r\n createAsyncThunk,\r\n unwrapResult,\r\n miniSerializeError,\r\n} from './createAsyncThunk'\r\nexport type {\r\n AsyncThunk,\r\n AsyncThunkOptions,\r\n AsyncThunkAction,\r\n AsyncThunkPayloadCreatorReturnValue,\r\n AsyncThunkPayloadCreator,\r\n SerializedError,\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n // js\r\n isAllOf,\r\n isAnyOf,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n isAsyncThunkAction,\r\n isRejectedWithValue,\r\n} from './matchers'\r\nexport type {\r\n // types\r\n ActionMatchingAllOf,\r\n ActionMatchingAnyOf,\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './listenerMiddleware/index'\r\nexport type { AnyListenerPredicate } from './listenerMiddleware/types'\r\n\r\nexport {\r\n createListenerMiddleware,\r\n addListener,\r\n removeListener,\r\n clearAllListeners,\r\n TaskAbortError,\r\n} from './listenerMiddleware/index'\r\n\r\nexport {\r\n SHOULD_AUTOBATCH,\r\n prepareAutoBatched,\r\n autoBatchEnhancer,\r\n} from './autoBatchEnhancer'\r\nexport type { AutoBatchOptions } from './autoBatchEnhancer'\r\n\r\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions } from './tsHelpers'\r\n","(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n}((function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n 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 }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n var Emitter = /*#__PURE__*/function () {\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n Object.defineProperty(this, 'listeners', {\n value: {},\n writable: true,\n configurable: true\n });\n }\n\n _createClass(Emitter, [{\n key: \"addEventListener\",\n value: function addEventListener(type, callback, options) {\n if (!(type in this.listeners)) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push({\n callback: callback,\n options: options\n });\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type, callback) {\n if (!(type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[type];\n\n for (var i = 0, l = stack.length; i < l; i++) {\n if (stack[i].callback === callback) {\n stack.splice(i, 1);\n return;\n }\n }\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (!(event.type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[event.type];\n var stackToCall = stack.slice();\n\n for (var i = 0, l = stackToCall.length; i < l; i++) {\n var listener = stackToCall[i];\n\n try {\n listener.callback.call(this, event);\n } catch (e) {\n Promise.resolve().then(function () {\n throw e;\n });\n }\n\n if (listener.options && listener.options.once) {\n this.removeEventListener(event.type, listener.callback);\n }\n }\n\n return !event.defaultPrevented;\n }\n }]);\n\n return Emitter;\n }();\n\n var AbortSignal = /*#__PURE__*/function (_Emitter) {\n _inherits(AbortSignal, _Emitter);\n\n var _super = _createSuper(AbortSignal);\n\n function AbortSignal() {\n var _this;\n\n _classCallCheck(this, AbortSignal);\n\n _this = _super.call(this); // Some versions of babel does not transpile super() correctly for IE <= 10, if the parent\n // constructor has failed to run, then \"this.listeners\" will still be undefined and then we call\n // the parent constructor directly instead as a workaround. For general details, see babel bug:\n // https://github.com/babel/babel/issues/3041\n // This hack was added as a fix for the issue described here:\n // https://github.com/Financial-Times/polyfill-library/pull/59#issuecomment-477558042\n\n if (!_this.listeners) {\n Emitter.call(_assertThisInitialized(_this));\n } // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController().signal) to be [] for compat with the native impl\n\n\n Object.defineProperty(_assertThisInitialized(_this), 'aborted', {\n value: false,\n writable: true,\n configurable: true\n });\n Object.defineProperty(_assertThisInitialized(_this), 'onabort', {\n value: null,\n writable: true,\n configurable: true\n });\n return _this;\n }\n\n _createClass(AbortSignal, [{\n key: \"toString\",\n value: function toString() {\n return '[object AbortSignal]';\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (event.type === 'abort') {\n this.aborted = true;\n\n if (typeof this.onabort === 'function') {\n this.onabort.call(this, event);\n }\n }\n\n _get(_getPrototypeOf(AbortSignal.prototype), \"dispatchEvent\", this).call(this, event);\n }\n }]);\n\n return AbortSignal;\n }(Emitter);\n var AbortController = /*#__PURE__*/function () {\n function AbortController() {\n _classCallCheck(this, AbortController);\n\n // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController()) to be [] for compat with the native impl\n Object.defineProperty(this, 'signal', {\n value: new AbortSignal(),\n writable: true,\n configurable: true\n });\n }\n\n _createClass(AbortController, [{\n key: \"abort\",\n value: function abort() {\n var event;\n\n try {\n event = new Event('abort');\n } catch (e) {\n if (typeof document !== 'undefined') {\n if (!document.createEvent) {\n // For Internet Explorer 8:\n event = document.createEventObject();\n event.type = 'abort';\n } else {\n // For Internet Explorer 11:\n event = document.createEvent('Event');\n event.initEvent('abort', false, false);\n }\n } else {\n // Fallback where document isn't available:\n event = {\n type: 'abort',\n bubbles: false,\n cancelable: false\n };\n }\n }\n\n this.signal.dispatchEvent(event);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return '[object AbortController]';\n }\n }]);\n\n return AbortController;\n }();\n\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n // These are necessary to make sure that we get correct output for:\n // Object.prototype.toString.call(new AbortController())\n AbortController.prototype[Symbol.toStringTag] = 'AbortController';\n AbortSignal.prototype[Symbol.toStringTag] = 'AbortSignal';\n }\n\n function polyfillNeeded(self) {\n if (self.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL) {\n console.log('__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill');\n return true;\n } // Note that the \"unfetch\" minimal fetch polyfill defines fetch() without\n // defining window.Request, and this polyfill need to work on top of unfetch\n // so the below feature detection needs the !self.AbortController part.\n // The Request.prototype check is also needed because Safari versions 11.1.2\n // up to and including 12.1.x has a window.AbortController present but still\n // does NOT correctly implement abortable fetch:\n // https://bugs.webkit.org/show_bug.cgi?id=174980#c2\n\n\n return typeof self.Request === 'function' && !self.Request.prototype.hasOwnProperty('signal') || !self.AbortController;\n }\n\n /**\n * Note: the \"fetch.Request\" default value is available for fetch imported from\n * the \"node-fetch\" package and not in browsers. This is OK since browsers\n * will be importing umd-polyfill.js from that path \"self\" is passed the\n * decorator so the default value will not be used (because browsers that define\n * fetch also has Request). One quirky setup where self.fetch exists but\n * self.Request does not is when the \"unfetch\" minimal fetch polyfill is used\n * on top of IE11; for this case the browser will try to use the fetch.Request\n * default value which in turn will be undefined but then then \"if (Request)\"\n * will ensure that you get a patched fetch but still no Request (as expected).\n * @param {fetch, Request = fetch.Request}\n * @returns {fetch: abortableFetch, Request: AbortableRequest}\n */\n\n function abortableFetchDecorator(patchTargets) {\n if ('function' === typeof patchTargets) {\n patchTargets = {\n fetch: patchTargets\n };\n }\n\n var _patchTargets = patchTargets,\n fetch = _patchTargets.fetch,\n _patchTargets$Request = _patchTargets.Request,\n NativeRequest = _patchTargets$Request === void 0 ? fetch.Request : _patchTargets$Request,\n NativeAbortController = _patchTargets.AbortController,\n _patchTargets$__FORCE = _patchTargets.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,\n __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL = _patchTargets$__FORCE === void 0 ? false : _patchTargets$__FORCE;\n\n if (!polyfillNeeded({\n fetch: fetch,\n Request: NativeRequest,\n AbortController: NativeAbortController,\n __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL: __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL\n })) {\n return {\n fetch: fetch,\n Request: Request\n };\n }\n\n var Request = NativeRequest; // Note that the \"unfetch\" minimal fetch polyfill defines fetch() without\n // defining window.Request, and this polyfill need to work on top of unfetch\n // hence we only patch it if it's available. Also we don't patch it if signal\n // is already available on the Request prototype because in this case support\n // is present and the patching below can cause a crash since it assigns to\n // request.signal which is technically a read-only property. This latter error\n // happens when you run the main5.js node-fetch example in the repo\n // \"abortcontroller-polyfill-examples\". The exact error is:\n // request.signal = init.signal;\n // ^\n // TypeError: Cannot set property signal of #<Request> which has only a getter\n\n if (Request && !Request.prototype.hasOwnProperty('signal') || __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL) {\n Request = function Request(input, init) {\n var signal;\n\n if (init && init.signal) {\n signal = init.signal; // Never pass init.signal to the native Request implementation when the polyfill has\n // been installed because if we're running on top of a browser with a\n // working native AbortController (i.e. the polyfill was installed due to\n // __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL being set), then passing our\n // fake AbortSignal to the native fetch will trigger:\n // TypeError: Failed to construct 'Request': member signal is not of type AbortSignal.\n\n delete init.signal;\n }\n\n var request = new NativeRequest(input, init);\n\n if (signal) {\n Object.defineProperty(request, 'signal', {\n writable: false,\n enumerable: false,\n configurable: true,\n value: signal\n });\n }\n\n return request;\n };\n\n Request.prototype = NativeRequest.prototype;\n }\n\n var realFetch = fetch;\n\n var abortableFetch = function abortableFetch(input, init) {\n var signal = Request && Request.prototype.isPrototypeOf(input) ? input.signal : init ? init.signal : undefined;\n\n if (signal) {\n var abortError;\n\n try {\n abortError = new DOMException('Aborted', 'AbortError');\n } catch (err) {\n // IE 11 does not support calling the DOMException constructor, use a\n // regular error object on it instead.\n abortError = new Error('Aborted');\n abortError.name = 'AbortError';\n } // Return early if already aborted, thus avoiding making an HTTP request\n\n\n if (signal.aborted) {\n return Promise.reject(abortError);\n } // Turn an event into a promise, reject it once `abort` is dispatched\n\n\n var cancellation = new Promise(function (_, reject) {\n signal.addEventListener('abort', function () {\n return reject(abortError);\n }, {\n once: true\n });\n });\n\n if (init && init.signal) {\n // Never pass .signal to the native implementation when the polyfill has\n // been installed because if we're running on top of a browser with a\n // working native AbortController (i.e. the polyfill was installed due to\n // __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL being set), then passing our\n // fake AbortSignal to the native fetch will trigger:\n // TypeError: Failed to execute 'fetch' on 'Window': member signal is not of type AbortSignal.\n delete init.signal;\n } // Return the fastest promise (don't need to wait for request to finish)\n\n\n return Promise.race([cancellation, realFetch(input, init)]);\n }\n\n return realFetch(input, init);\n };\n\n return {\n fetch: abortableFetch,\n Request: Request\n };\n }\n\n (function (self) {\n\n if (!polyfillNeeded(self)) {\n return;\n }\n\n if (!self.fetch) {\n console.warn('fetch() is not available, cannot install abortcontroller-polyfill');\n return;\n }\n\n var _abortableFetch = abortableFetchDecorator(self),\n fetch = _abortableFetch.fetch,\n Request = _abortableFetch.Request;\n\n self.fetch = fetch;\n self.Request = Request;\n Object.defineProperty(self, 'AbortController', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: AbortController\n });\n Object.defineProperty(self, 'AbortSignal', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: AbortSignal\n });\n })(typeof self !== 'undefined' ? self : global);\n\n})));\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nfunction isThenable(thing) {\n return !!(thing && !!thing.then);\n}\nvar ActionButton = function ActionButton(props) {\n var clickedRef = React.useRef(false);\n var ref = React.useRef(null);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n loading = _useState2[0],\n setLoading = _useState2[1];\n var close = props.close;\n var onInternalClose = function onInternalClose() {\n close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n };\n React.useEffect(function () {\n var timeoutId = null;\n if (props.autoFocus) {\n timeoutId = setTimeout(function () {\n var _a;\n (_a = ref.current) === null || _a === void 0 ? void 0 : _a.focus();\n });\n }\n return function () {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, []);\n var handlePromiseOnOk = function handlePromiseOnOk(returnValueOfOnOk) {\n if (!isThenable(returnValueOfOnOk)) {\n return;\n }\n setLoading(true);\n returnValueOfOnOk.then(function () {\n setLoading(false, true);\n onInternalClose.apply(void 0, arguments);\n clickedRef.current = false;\n }, function (e) {\n // See: https://github.com/ant-design/ant-design/issues/6183\n setLoading(false, true);\n clickedRef.current = false;\n return Promise.reject(e);\n });\n };\n var onClick = function onClick(e) {\n var actionFn = props.actionFn;\n if (clickedRef.current) {\n return;\n }\n clickedRef.current = true;\n if (!actionFn) {\n onInternalClose();\n return;\n }\n var returnValueOfOnOk;\n if (props.emitEvent) {\n returnValueOfOnOk = actionFn(e);\n if (props.quitOnNullishReturnValue && !isThenable(returnValueOfOnOk)) {\n clickedRef.current = false;\n onInternalClose(e);\n return;\n }\n } else if (actionFn.length) {\n returnValueOfOnOk = actionFn(close);\n // https://github.com/ant-design/ant-design/issues/23358\n clickedRef.current = false;\n } else {\n returnValueOfOnOk = actionFn();\n if (!returnValueOfOnOk) {\n onInternalClose();\n return;\n }\n }\n handlePromiseOnOk(returnValueOfOnOk);\n };\n var type = props.type,\n children = props.children,\n prefixCls = props.prefixCls,\n buttonProps = props.buttonProps;\n return /*#__PURE__*/React.createElement(Button, _extends({}, convertLegacyProps(type), {\n onClick: onClick,\n loading: loading,\n prefixCls: prefixCls\n }, buttonProps, {\n ref: ref\n }), children);\n};\nexport default ActionButton;","import { tuple } from './type';\nexport var PresetStatusColorTypes = tuple('success', 'processing', 'error', 'default', 'warning');\n// eslint-disable-next-line import/prefer-default-export\nexport var PresetColorTypes = tuple('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');","export default function getDataOrAriaProps(props) {\n return Object.keys(props).reduce(function (prev, key) {\n if ((key.startsWith('data-') || key.startsWith('aria-') || key === 'role') && !key.startsWith('data-__')) {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}","export var getRenderPropValue = function getRenderPropValue(propValue) {\n if (!propValue) {\n return null;\n }\n if (typeof propValue === 'function') {\n return propValue();\n }\n return propValue;\n};","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { detectFlexGapSupported } from '../styleChecker';\nexport default (function () {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n flexible = _React$useState2[0],\n setFlexible = _React$useState2[1];\n React.useEffect(function () {\n setFlexible(detectFlexGapSupported());\n }, []);\n return flexible;\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useForceUpdate() {\n var _React$useReducer = React.useReducer(function (x) {\n return x + 1;\n }, 0),\n _React$useReducer2 = _slicedToArray(_React$useReducer, 2),\n forceUpdate = _React$useReducer2[1];\n return forceUpdate;\n}","import { tuple } from './type';\n// ================== Collapse Motion ==================\nvar getCollapsedHeight = function getCollapsedHeight() {\n return {\n height: 0,\n opacity: 0\n };\n};\nvar getRealHeight = function getRealHeight(node) {\n var scrollHeight = node.scrollHeight;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\nvar getCurrentHeight = function getCurrentHeight(node) {\n return {\n height: node ? node.offsetHeight : 0\n };\n};\nvar skipOpacityTransition = function skipOpacityTransition(_, event) {\n return (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\n};\nvar collapseMotion = {\n motionName: 'ant-motion-collapse',\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n};\nvar SelectPlacements = tuple('bottomLeft', 'bottomRight', 'topLeft', 'topRight');\nvar getTransitionDirection = function getTransitionDirection(placement) {\n if (placement !== undefined && (placement === 'topLeft' || placement === 'topRight')) {\n return \"slide-down\";\n }\n return \"slide-up\";\n};\nvar getTransitionName = function getTransitionName(rootPrefixCls, motion, transitionName) {\n if (transitionName !== undefined) {\n return transitionName;\n }\n return \"\".concat(rootPrefixCls, \"-\").concat(motion);\n};\nexport { getTransitionName, getTransitionDirection };\nexport default collapseMotion;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { placements } from \"rc-tooltip/es/placements\";\nvar autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nvar autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nvar targetOffset = [0, 0];\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n return _extends(_extends({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\nexport default function getPlacements(config) {\n var _config$arrowWidth = config.arrowWidth,\n arrowWidth = _config$arrowWidth === void 0 ? 4 : _config$arrowWidth,\n _config$horizontalArr = config.horizontalArrowShift,\n horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr,\n _config$verticalArrow = config.verticalArrowShift,\n verticalArrowShift = _config$verticalArrow === void 0 ? 8 : _config$verticalArrow,\n autoAdjustOverflow = config.autoAdjustOverflow,\n arrowPointAtCenter = config.arrowPointAtCenter;\n var placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(function (key) {\n placementMap[key] = arrowPointAtCenter ? _extends(_extends({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset: targetOffset\n }) : _extends(_extends({}, placements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","import * as React from 'react';\nvar isValidElement = React.isValidElement;\nexport { isValidElement };\nexport function isFragment(child) {\n return child && isValidElement(child) && child.type === React.Fragment;\n}\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element)) {\n return replacement;\n }\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport var responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport var responsiveMap = {\n xs: '(max-width: 575px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n xxl: '(min-width: 1600px)'\n};\nvar subscribers = new Map();\nvar subUid = -1;\nvar screens = {};\nvar responsiveObserve = {\n matchHandlers: {},\n dispatch: function dispatch(pointMap) {\n screens = pointMap;\n subscribers.forEach(function (func) {\n return func(screens);\n });\n return subscribers.size >= 1;\n },\n subscribe: function subscribe(func) {\n if (!subscribers.size) this.register();\n subUid += 1;\n subscribers.set(subUid, func);\n func(screens);\n return subUid;\n },\n unsubscribe: function unsubscribe(token) {\n subscribers[\"delete\"](token);\n if (!subscribers.size) this.unregister();\n },\n unregister: function unregister() {\n var _this = this;\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n var handler = _this.matchHandlers[matchMediaQuery];\n handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n });\n subscribers.clear();\n },\n register: function register() {\n var _this2 = this;\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n var listener = function listener(_ref) {\n var matches = _ref.matches;\n _this2.dispatch(_extends(_extends({}, screens), _defineProperty({}, screen, matches)));\n };\n var mql = window.matchMedia(matchMediaQuery);\n mql.addListener(listener);\n _this2.matchHandlers[matchMediaQuery] = {\n mql: mql,\n listener: listener\n };\n listener(mql);\n });\n }\n};\nexport default responsiveObserve;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport { tuple } from './type';\nvar InputStatuses = tuple('warning', 'error', '');\nexport function getStatusClassNames(prefixCls, status, hasFeedback) {\n return classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-status-success\"), status === 'success'), \"\".concat(prefixCls, \"-status-warning\"), status === 'warning'), \"\".concat(prefixCls, \"-status-error\"), status === 'error'), \"\".concat(prefixCls, \"-status-validating\"), status === 'validating'), \"\".concat(prefixCls, \"-has-feedback\"), hasFeedback));\n}\nexport var getMergedStatus = function getMergedStatus(contextStatus, customStatus) {\n return customStatus || contextStatus;\n};","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nexport var canUseDocElement = function canUseDocElement() {\n return canUseDom() && window.document.documentElement;\n};\nexport { isStyleSupport };\nvar flexGapSupported;\nexport var detectFlexGapSupported = function detectFlexGapSupported() {\n if (!canUseDocElement()) {\n return false;\n }\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n // create flex container with row-gap set\n var flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n document.body.removeChild(flex);\n return flexGapSupported;\n};","// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args;\n};\nexport var tupleNum = function tupleNum() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return args;\n};","import raf from \"rc-util/es/raf\";\nvar id = 0;\nvar ids = {};\n// Support call raf with delay specified frame\nexport default function wrapperRaf(callback) {\n var delayFrames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var myId = id++;\n var restFrames = delayFrames;\n function internalCallback() {\n restFrames -= 1;\n if (restFrames <= 0) {\n callback();\n delete ids[myId];\n } else {\n ids[myId] = raf(internalCallback);\n }\n }\n ids[myId] = raf(internalCallback);\n return myId;\n}\nwrapperRaf.cancel = function cancel(pid) {\n if (pid === undefined) return;\n raf.cancel(ids[pid]);\n delete ids[pid];\n};\nwrapperRaf.ids = ids; // export this for test usage","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { ConfigConsumer, ConfigContext } from '../config-provider';\nimport raf from './raf';\nimport { cloneElement } from './reactNode';\nvar styleForPseudo;\n// Where el is the DOM element you'd like to test for visibility\nfunction isHidden(element) {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n return !element || element.offsetParent === null || element.hidden;\n}\nfunction getValidateContainer(nodeRoot) {\n if (nodeRoot instanceof Document) {\n return nodeRoot.body;\n }\n return Array.from(nodeRoot.childNodes).find(function (ele) {\n return (ele === null || ele === void 0 ? void 0 : ele.nodeType) === Node.ELEMENT_NODE;\n });\n}\nfunction isNotGrey(color) {\n // eslint-disable-next-line no-useless-escape\n var match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\d.]*)?\\)/);\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n return true;\n}\nvar Wave = /*#__PURE__*/function (_React$Component) {\n _inherits(Wave, _React$Component);\n var _super = _createSuper(Wave);\n function Wave() {\n var _this;\n _classCallCheck(this, Wave);\n _this = _super.apply(this, arguments);\n _this.containerRef = /*#__PURE__*/React.createRef();\n _this.animationStart = false;\n _this.destroyed = false;\n _this.onClick = function (node, waveColor) {\n var _a, _b;\n var _this$props = _this.props,\n insertExtraNode = _this$props.insertExtraNode,\n disabled = _this$props.disabled;\n if (disabled || !node || isHidden(node) || node.className.includes('-leave')) {\n return;\n }\n _this.extraNode = document.createElement('div');\n var _assertThisInitialize = _assertThisInitialized(_this),\n extraNode = _assertThisInitialize.extraNode;\n var getPrefixCls = _this.context.getPrefixCls;\n extraNode.className = \"\".concat(getPrefixCls(''), \"-click-animating-node\");\n var attributeName = _this.getAttributeName();\n node.setAttribute(attributeName, 'true');\n // Not white or transparent or grey\n if (waveColor && waveColor !== '#fff' && waveColor !== '#ffffff' && waveColor !== 'rgb(255, 255, 255)' && waveColor !== 'rgba(255, 255, 255, 1)' && isNotGrey(waveColor) && !/rgba\\((?:\\d*, ){3}0\\)/.test(waveColor) &&\n // any transparent rgba color\n waveColor !== 'transparent') {\n extraNode.style.borderColor = waveColor;\n var nodeRoot = ((_a = node.getRootNode) === null || _a === void 0 ? void 0 : _a.call(node)) || node.ownerDocument;\n var nodeBody = (_b = getValidateContainer(nodeRoot)) !== null && _b !== void 0 ? _b : nodeRoot;\n styleForPseudo = updateCSS(\"\\n [\".concat(getPrefixCls(''), \"-click-animating-without-extra-node='true']::after, .\").concat(getPrefixCls(''), \"-click-animating-node {\\n --antd-wave-shadow-color: \").concat(waveColor, \";\\n }\"), 'antd-wave', {\n csp: _this.csp,\n attachTo: nodeBody\n });\n }\n if (insertExtraNode) {\n node.appendChild(extraNode);\n }\n ['transition', 'animation'].forEach(function (name) {\n node.addEventListener(\"\".concat(name, \"start\"), _this.onTransitionStart);\n node.addEventListener(\"\".concat(name, \"end\"), _this.onTransitionEnd);\n });\n };\n _this.onTransitionStart = function (e) {\n if (_this.destroyed) {\n return;\n }\n var node = _this.containerRef.current;\n if (!e || e.target !== node || _this.animationStart) {\n return;\n }\n _this.resetEffect(node);\n };\n _this.onTransitionEnd = function (e) {\n if (!e || e.animationName !== 'fadeEffect') {\n return;\n }\n _this.resetEffect(e.target);\n };\n _this.bindAnimationEvent = function (node) {\n if (!node || !node.getAttribute || node.getAttribute('disabled') || node.className.includes('disabled')) {\n return;\n }\n var onClick = function onClick(e) {\n // Fix radio button click twice\n if (e.target.tagName === 'INPUT' || isHidden(e.target)) {\n return;\n }\n _this.resetEffect(node);\n // Get wave color from target\n var waveColor = getComputedStyle(node).getPropertyValue('border-top-color') ||\n // Firefox Compatible\n getComputedStyle(node).getPropertyValue('border-color') || getComputedStyle(node).getPropertyValue('background-color');\n _this.clickWaveTimeoutId = window.setTimeout(function () {\n return _this.onClick(node, waveColor);\n }, 0);\n raf.cancel(_this.animationStartId);\n _this.animationStart = true;\n // Render to trigger transition event cost 3 frames. Let's delay 10 frames to reset this.\n _this.animationStartId = raf(function () {\n _this.animationStart = false;\n }, 10);\n };\n node.addEventListener('click', onClick, true);\n return {\n cancel: function cancel() {\n node.removeEventListener('click', onClick, true);\n }\n };\n };\n _this.renderWave = function (_ref) {\n var csp = _ref.csp;\n var children = _this.props.children;\n _this.csp = csp;\n if (! /*#__PURE__*/React.isValidElement(children)) return children;\n var ref = _this.containerRef;\n if (supportRef(children)) {\n ref = composeRef(children.ref, _this.containerRef);\n }\n return cloneElement(children, {\n ref: ref\n });\n };\n return _this;\n }\n _createClass(Wave, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n var node = this.containerRef.current;\n if (!node || node.nodeType !== 1) {\n return;\n }\n this.instance = this.bindAnimationEvent(node);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.instance) {\n this.instance.cancel();\n }\n if (this.clickWaveTimeoutId) {\n clearTimeout(this.clickWaveTimeoutId);\n }\n this.destroyed = true;\n }\n }, {\n key: \"getAttributeName\",\n value: function getAttributeName() {\n var getPrefixCls = this.context.getPrefixCls;\n var insertExtraNode = this.props.insertExtraNode;\n return insertExtraNode ? \"\".concat(getPrefixCls(''), \"-click-animating\") : \"\".concat(getPrefixCls(''), \"-click-animating-without-extra-node\");\n }\n }, {\n key: \"resetEffect\",\n value: function resetEffect(node) {\n var _this2 = this;\n if (!node || node === this.extraNode || !(node instanceof Element)) {\n return;\n }\n var insertExtraNode = this.props.insertExtraNode;\n var attributeName = this.getAttributeName();\n node.setAttribute(attributeName, 'false'); // edge has bug on `removeAttribute` #14466\n if (styleForPseudo) {\n styleForPseudo.innerHTML = '';\n }\n if (insertExtraNode && this.extraNode && node.contains(this.extraNode)) {\n node.removeChild(this.extraNode);\n }\n ['transition', 'animation'].forEach(function (name) {\n node.removeEventListener(\"\".concat(name, \"start\"), _this2.onTransitionStart);\n node.removeEventListener(\"\".concat(name, \"end\"), _this2.onTransitionEnd);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderWave);\n }\n }]);\n return Wave;\n}(React.Component);\nWave.contextType = ConfigContext;\nexport default Wave;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport Alert from '.';\nvar ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n _inherits(ErrorBoundary, _React$Component);\n var _super = _createSuper(ErrorBoundary);\n function ErrorBoundary() {\n var _this;\n _classCallCheck(this, ErrorBoundary);\n _this = _super.apply(this, arguments);\n _this.state = {\n error: undefined,\n info: {\n componentStack: ''\n }\n };\n return _this;\n }\n _createClass(ErrorBoundary, [{\n key: \"componentDidCatch\",\n value: function componentDidCatch(error, info) {\n this.setState({\n error: error,\n info: info\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n message = _this$props.message,\n description = _this$props.description,\n children = _this$props.children;\n var _this$state = this.state,\n error = _this$state.error,\n info = _this$state.info;\n var componentStack = info && info.componentStack ? info.componentStack : null;\n var errorMessage = typeof message === 'undefined' ? (error || '').toString() : message;\n var errorDescription = typeof description === 'undefined' ? componentStack : description;\n if (error) {\n return /*#__PURE__*/React.createElement(Alert, {\n type: \"error\",\n message: errorMessage,\n description: /*#__PURE__*/React.createElement(\"pre\", null, errorDescription)\n });\n }\n return children;\n }\n }]);\n return ErrorBoundary;\n}(React.Component);\nexport default ErrorBoundary;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport getDataOrAriaProps from '../_util/getDataOrAriaProps';\nimport { replaceElement } from '../_util/reactNode';\nimport ErrorBoundary from './ErrorBoundary';\nvar iconMapFilled = {\n success: CheckCircleFilled,\n info: InfoCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled\n};\nvar iconMapOutlined = {\n success: CheckCircleOutlined,\n info: InfoCircleOutlined,\n error: CloseCircleOutlined,\n warning: ExclamationCircleOutlined\n};\nvar IconNode = function IconNode(props) {\n var description = props.description,\n icon = props.icon,\n prefixCls = props.prefixCls,\n type = props.type;\n var iconType = (description ? iconMapOutlined : iconMapFilled)[type] || null;\n if (icon) {\n return replaceElement(icon, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icon), function () {\n return {\n className: classNames(\"\".concat(prefixCls, \"-icon\"), _defineProperty({}, icon.props.className, icon.props.className))\n };\n });\n }\n return /*#__PURE__*/React.createElement(iconType, {\n className: \"\".concat(prefixCls, \"-icon\")\n });\n};\nvar CloseIcon = function CloseIcon(props) {\n var isClosable = props.isClosable,\n closeText = props.closeText,\n prefixCls = props.prefixCls,\n closeIcon = props.closeIcon,\n handleClose = props.handleClose;\n return isClosable ? ( /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: handleClose,\n className: \"\".concat(prefixCls, \"-close-icon\"),\n tabIndex: 0\n }, closeText ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-text\")\n }, closeText) : closeIcon)) : null;\n};\nvar Alert = function Alert(_a) {\n var description = _a.description,\n customizePrefixCls = _a.prefixCls,\n message = _a.message,\n banner = _a.banner,\n _a$className = _a.className,\n className = _a$className === void 0 ? '' : _a$className,\n style = _a.style,\n onMouseEnter = _a.onMouseEnter,\n onMouseLeave = _a.onMouseLeave,\n onClick = _a.onClick,\n afterClose = _a.afterClose,\n showIcon = _a.showIcon,\n closable = _a.closable,\n closeText = _a.closeText,\n _a$closeIcon = _a.closeIcon,\n closeIcon = _a$closeIcon === void 0 ? /*#__PURE__*/React.createElement(CloseOutlined, null) : _a$closeIcon,\n action = _a.action,\n props = __rest(_a, [\"description\", \"prefixCls\", \"message\", \"banner\", \"className\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"afterClose\", \"showIcon\", \"closable\", \"closeText\", \"closeIcon\", \"action\"]);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n closed = _React$useState2[0],\n setClosed = _React$useState2[1];\n var ref = React.useRef();\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('alert', customizePrefixCls);\n var handleClose = function handleClose(e) {\n var _a;\n setClosed(true);\n (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props, e);\n };\n var getType = function getType() {\n var type = props.type;\n if (type !== undefined) {\n return type;\n }\n // banner 模式默认为警告\n return banner ? 'warning' : 'info';\n };\n // closeable when closeText is assigned\n var isClosable = closeText ? true : closable;\n var type = getType();\n // banner 模式默认有 Icon\n var isShowIcon = banner && showIcon === undefined ? true : showIcon;\n var alertCls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(type), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-with-description\"), !!description), \"\".concat(prefixCls, \"-no-icon\"), !isShowIcon), \"\".concat(prefixCls, \"-banner\"), !!banner), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var dataOrAriaProps = getDataOrAriaProps(props);\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: !closed,\n motionName: \"\".concat(prefixCls, \"-motion\"),\n motionAppear: false,\n motionEnter: false,\n onLeaveStart: function onLeaveStart(node) {\n return {\n maxHeight: node.offsetHeight\n };\n },\n onLeaveEnd: afterClose\n }, function (_ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n \"data-show\": !closed,\n className: classNames(alertCls, motionClassName),\n style: _extends(_extends({}, style), motionStyle),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n role: \"alert\"\n }, dataOrAriaProps), isShowIcon ? ( /*#__PURE__*/React.createElement(IconNode, {\n description: description,\n icon: props.icon,\n prefixCls: prefixCls,\n type: type\n })) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, message ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, message) : null, description ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description) : null), action ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-action\")\n }, action) : null, /*#__PURE__*/React.createElement(CloseIcon, {\n isClosable: !!isClosable,\n closeText: closeText,\n prefixCls: prefixCls,\n closeIcon: closeIcon,\n handleClose: handleClose\n }));\n });\n};\nAlert.ErrorBoundary = ErrorBoundary;\nexport default Alert;","import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext('default');\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nexport default SizeContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport { responsiveArray } from '../_util/responsiveObserve';\nimport warning from '../_util/warning';\nimport SizeContext from './SizeContext';\nvar InternalAvatar = function InternalAvatar(props, ref) {\n var groupSize = React.useContext(SizeContext);\n var _React$useState = React.useState(1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n scale = _React$useState2[0],\n setScale = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n mounted = _React$useState4[0],\n setMounted = _React$useState4[1];\n var _React$useState5 = React.useState(true),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n isImgExist = _React$useState6[0],\n setIsImgExist = _React$useState6[1];\n var avatarNodeRef = React.useRef(null);\n var avatarChildrenRef = React.useRef(null);\n var avatarNodeMergeRef = composeRef(ref, avatarNodeRef);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var setScaleParam = function setScaleParam() {\n if (!avatarChildrenRef.current || !avatarNodeRef.current) {\n return;\n }\n var childrenWidth = avatarChildrenRef.current.offsetWidth; // offsetWidth avoid affecting be transform scale\n var nodeWidth = avatarNodeRef.current.offsetWidth;\n // denominator is 0 is no meaning\n if (childrenWidth !== 0 && nodeWidth !== 0) {\n var _props$gap = props.gap,\n gap = _props$gap === void 0 ? 4 : _props$gap;\n if (gap * 2 < nodeWidth) {\n setScale(nodeWidth - gap * 2 < childrenWidth ? (nodeWidth - gap * 2) / childrenWidth : 1);\n }\n }\n };\n React.useEffect(function () {\n setMounted(true);\n }, []);\n React.useEffect(function () {\n setIsImgExist(true);\n setScale(1);\n }, [props.src]);\n React.useEffect(function () {\n setScaleParam();\n }, [props.gap]);\n var handleImgLoadError = function handleImgLoadError() {\n var onError = props.onError;\n var errorFlag = onError ? onError() : undefined;\n if (errorFlag !== false) {\n setIsImgExist(false);\n }\n };\n var customizePrefixCls = props.prefixCls,\n _props$shape = props.shape,\n shape = _props$shape === void 0 ? 'circle' : _props$shape,\n _props$size = props.size,\n customSize = _props$size === void 0 ? 'default' : _props$size,\n src = props.src,\n srcSet = props.srcSet,\n icon = props.icon,\n className = props.className,\n alt = props.alt,\n draggable = props.draggable,\n children = props.children,\n crossOrigin = props.crossOrigin,\n others = __rest(props, [\"prefixCls\", \"shape\", \"size\", \"src\", \"srcSet\", \"icon\", \"className\", \"alt\", \"draggable\", \"children\", \"crossOrigin\"]);\n var size = customSize === 'default' ? groupSize : customSize;\n var needResponsive = Object.keys(_typeof(size) === 'object' ? size || {} : {}).some(function (key) {\n return ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].includes(key);\n });\n var screens = useBreakpoint(needResponsive);\n var responsiveSizeStyle = React.useMemo(function () {\n if (_typeof(size) !== 'object') {\n return {};\n }\n var currentBreakpoint = responsiveArray.find(function (screen) {\n return screens[screen];\n });\n var currentSize = size[currentBreakpoint];\n return currentSize ? {\n width: currentSize,\n height: currentSize,\n lineHeight: \"\".concat(currentSize, \"px\"),\n fontSize: icon ? currentSize / 2 : 18\n } : {};\n }, [screens, size]);\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Avatar', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\")) : void 0;\n var prefixCls = getPrefixCls('avatar', customizePrefixCls);\n var sizeCls = classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-lg\"), size === 'large'), \"\".concat(prefixCls, \"-sm\"), size === 'small'));\n var hasImageElement = /*#__PURE__*/React.isValidElement(src);\n var classString = classNames(prefixCls, sizeCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(shape), !!shape), \"\".concat(prefixCls, \"-image\"), hasImageElement || src && isImgExist), \"\".concat(prefixCls, \"-icon\"), !!icon), className);\n var sizeStyle = typeof size === 'number' ? {\n width: size,\n height: size,\n lineHeight: \"\".concat(size, \"px\"),\n fontSize: icon ? size / 2 : 18\n } : {};\n var childrenToRender;\n if (typeof src === 'string' && isImgExist) {\n childrenToRender = /*#__PURE__*/React.createElement(\"img\", {\n src: src,\n draggable: draggable,\n srcSet: srcSet,\n onError: handleImgLoadError,\n alt: alt,\n crossOrigin: crossOrigin\n });\n } else if (hasImageElement) {\n childrenToRender = src;\n } else if (icon) {\n childrenToRender = icon;\n } else if (mounted || scale !== 1) {\n var transformString = \"scale(\".concat(scale, \") translateX(-50%)\");\n var childrenStyle = {\n msTransform: transformString,\n WebkitTransform: transformString,\n transform: transformString\n };\n var sizeChildrenStyle = typeof size === 'number' ? {\n lineHeight: \"\".concat(size, \"px\")\n } : {};\n childrenToRender = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: setScaleParam\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-string\"),\n ref: avatarChildrenRef,\n style: _extends(_extends({}, sizeChildrenStyle), childrenStyle)\n }, children));\n } else {\n childrenToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-string\"),\n style: {\n opacity: 0\n },\n ref: avatarChildrenRef\n }, children);\n }\n // The event is triggered twice from bubbling up the DOM tree.\n // see https://codesandbox.io/s/kind-snow-9lidz\n delete others.onError;\n delete others.gap;\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, others, {\n style: _extends(_extends(_extends({}, sizeStyle), responsiveSizeStyle), others.style),\n className: classString,\n ref: avatarNodeMergeRef\n }), childrenToRender);\n};\nvar Avatar = /*#__PURE__*/React.forwardRef(InternalAvatar);\nif (process.env.NODE_ENV !== 'production') {\n Avatar.displayName = 'Avatar';\n}\nexport default Avatar;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Popover from '../popover';\nimport { cloneElement } from '../_util/reactNode';\nimport Avatar from './avatar';\nimport { SizeContextProvider } from './SizeContext';\nvar Group = function Group(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n maxCount = props.maxCount,\n maxStyle = props.maxStyle,\n size = props.size;\n var prefixCls = getPrefixCls('avatar-group', customizePrefixCls);\n var cls = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var children = props.children,\n _props$maxPopoverPlac = props.maxPopoverPlacement,\n maxPopoverPlacement = _props$maxPopoverPlac === void 0 ? 'top' : _props$maxPopoverPlac,\n _props$maxPopoverTrig = props.maxPopoverTrigger,\n maxPopoverTrigger = _props$maxPopoverTrig === void 0 ? 'hover' : _props$maxPopoverTrig;\n var childrenWithProps = toArray(children).map(function (child, index) {\n return cloneElement(child, {\n key: \"avatar-key-\".concat(index)\n });\n });\n var numOfChildren = childrenWithProps.length;\n if (maxCount && maxCount < numOfChildren) {\n var childrenShow = childrenWithProps.slice(0, maxCount);\n var childrenHidden = childrenWithProps.slice(maxCount, numOfChildren);\n childrenShow.push( /*#__PURE__*/React.createElement(Popover, {\n key: \"avatar-popover-key\",\n content: childrenHidden,\n trigger: maxPopoverTrigger,\n placement: maxPopoverPlacement,\n overlayClassName: \"\".concat(prefixCls, \"-popover\")\n }, /*#__PURE__*/React.createElement(Avatar, {\n style: maxStyle\n }, \"+\".concat(numOfChildren - maxCount))));\n return /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: props.style\n }, childrenShow));\n }\n return /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: props.style\n }, childrenWithProps));\n};\nexport default Group;","import InternalAvatar from './avatar';\nimport Group from './group';\nexport { Group };\nvar Avatar = InternalAvatar;\nAvatar.Group = Group;\nexport default Avatar;","import { PresetColorTypes } from '../_util/colors';\n// eslint-disable-next-line import/prefer-default-export\nexport function isPresetColor(color) {\n return PresetColorTypes.includes(color);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { isPresetColor } from './utils';\nvar Ribbon = function Ribbon(_ref) {\n var className = _ref.className,\n customizePrefixCls = _ref.prefixCls,\n style = _ref.style,\n color = _ref.color,\n children = _ref.children,\n text = _ref.text,\n _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'end' : _ref$placement;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('ribbon', customizePrefixCls);\n var colorInPreset = isPresetColor(color);\n var ribbonCls = classNames(prefixCls, \"\".concat(prefixCls, \"-placement-\").concat(placement), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-color-\").concat(color), colorInPreset), className);\n var colorStyle = {};\n var cornerColorStyle = {};\n if (color && !colorInPreset) {\n colorStyle.background = color;\n cornerColorStyle.color = color;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-wrapper\")\n }, children, /*#__PURE__*/React.createElement(\"div\", {\n className: ribbonCls,\n style: _extends(_extends({}, colorStyle), style)\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-text\")\n }, text), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-corner\"),\n style: cornerColorStyle\n })));\n};\nexport default Ribbon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nfunction UnitNumber(_ref) {\n var prefixCls = _ref.prefixCls,\n value = _ref.value,\n current = _ref.current,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? 0 : _ref$offset;\n var style;\n if (offset) {\n style = {\n position: 'absolute',\n top: \"\".concat(offset, \"00%\"),\n left: 0\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n style: style,\n className: classNames(\"\".concat(prefixCls, \"-only-unit\"), {\n current: current\n })\n }, value);\n}\nfunction getOffset(start, end, unit) {\n var index = start;\n var offset = 0;\n while ((index + 10) % 10 !== end) {\n index += unit;\n offset += unit;\n }\n return offset;\n}\nexport default function SingleNumber(props) {\n var prefixCls = props.prefixCls,\n originCount = props.count,\n originValue = props.value;\n var value = Number(originValue);\n var count = Math.abs(originCount);\n var _React$useState = React.useState(value),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevValue = _React$useState2[0],\n setPrevValue = _React$useState2[1];\n var _React$useState3 = React.useState(count),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevCount = _React$useState4[0],\n setPrevCount = _React$useState4[1];\n // ============================= Events =============================\n var onTransitionEnd = function onTransitionEnd() {\n setPrevValue(value);\n setPrevCount(count);\n };\n // Fallback if transition event not support\n React.useEffect(function () {\n var timeout = setTimeout(function () {\n onTransitionEnd();\n }, 1000);\n return function () {\n clearTimeout(timeout);\n };\n }, [value]);\n // ============================= Render =============================\n // Render unit list\n var unitNodes;\n var offsetStyle;\n if (prevValue === value || Number.isNaN(value) || Number.isNaN(prevValue)) {\n // Nothing to change\n unitNodes = [/*#__PURE__*/React.createElement(UnitNumber, _extends({}, props, {\n key: value,\n current: true\n }))];\n offsetStyle = {\n transition: 'none'\n };\n } else {\n unitNodes = [];\n // Fill basic number units\n var end = value + 10;\n var unitNumberList = [];\n for (var index = value; index <= end; index += 1) {\n unitNumberList.push(index);\n }\n // Fill with number unit nodes\n var prevIndex = unitNumberList.findIndex(function (n) {\n return n % 10 === prevValue;\n });\n unitNodes = unitNumberList.map(function (n, index) {\n var singleUnit = n % 10;\n return /*#__PURE__*/React.createElement(UnitNumber, _extends({}, props, {\n key: n,\n value: singleUnit,\n offset: index - prevIndex,\n current: index === prevIndex\n }));\n });\n // Calculate container offset value\n var unit = prevCount < count ? 1 : -1;\n offsetStyle = {\n transform: \"translateY(\".concat(-getOffset(prevValue, value, unit), \"00%)\")\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-only\"),\n style: offsetStyle,\n onTransitionEnd: onTransitionEnd\n }, unitNodes);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { cloneElement } from '../_util/reactNode';\nimport SingleNumber from './SingleNumber';\nvar ScrollNumber = function ScrollNumber(_a) {\n var customizePrefixCls = _a.prefixCls,\n count = _a.count,\n className = _a.className,\n motionClassName = _a.motionClassName,\n style = _a.style,\n title = _a.title,\n show = _a.show,\n _a$component = _a.component,\n component = _a$component === void 0 ? 'sup' : _a$component,\n children = _a.children,\n restProps = __rest(_a, [\"prefixCls\", \"count\", \"className\", \"motionClassName\", \"style\", \"title\", \"show\", \"component\", \"children\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('scroll-number', customizePrefixCls);\n // ============================ Render ============================\n var newProps = _extends(_extends({}, restProps), {\n 'data-show': show,\n style: style,\n className: classNames(prefixCls, className, motionClassName),\n title: title\n });\n // Only integer need motion\n var numberNodes = count;\n if (count && Number(count) % 1 === 0) {\n var numberList = String(count).split('');\n numberNodes = numberList.map(function (num, i) {\n return /*#__PURE__*/React.createElement(SingleNumber, {\n prefixCls: prefixCls,\n count: Number(count),\n value: num,\n // eslint-disable-next-line react/no-array-index-key\n key: numberList.length - i\n });\n });\n }\n // allow specify the border\n // mock border-color by box-shadow for compatible with old usage:\n // <Badge count={4} style={{ backgroundColor: '#fff', color: '#999', borderColor: '#d9d9d9' }} />\n if (style && style.borderColor) {\n newProps.style = _extends(_extends({}, style), {\n boxShadow: \"0 0 0 1px \".concat(style.borderColor, \" inset\")\n });\n }\n if (children) {\n return cloneElement(children, function (oriProps) {\n return {\n className: classNames(\"\".concat(prefixCls, \"-custom-component\"), oriProps === null || oriProps === void 0 ? void 0 : oriProps.className, motionClassName)\n };\n });\n }\n return /*#__PURE__*/React.createElement(component, newProps, numberNodes);\n};\nexport default ScrollNumber;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nimport { useMemo, useRef } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { cloneElement } from '../_util/reactNode';\nimport Ribbon from './Ribbon';\nimport ScrollNumber from './ScrollNumber';\nimport { isPresetColor } from './utils';\nvar Badge = function Badge(_a) {\n var customizePrefixCls = _a.prefixCls,\n customizeScrollNumberPrefixCls = _a.scrollNumberPrefixCls,\n children = _a.children,\n status = _a.status,\n text = _a.text,\n color = _a.color,\n _a$count = _a.count,\n count = _a$count === void 0 ? null : _a$count,\n _a$overflowCount = _a.overflowCount,\n overflowCount = _a$overflowCount === void 0 ? 99 : _a$overflowCount,\n _a$dot = _a.dot,\n dot = _a$dot === void 0 ? false : _a$dot,\n _a$size = _a.size,\n size = _a$size === void 0 ? 'default' : _a$size,\n title = _a.title,\n offset = _a.offset,\n style = _a.style,\n className = _a.className,\n _a$showZero = _a.showZero,\n showZero = _a$showZero === void 0 ? false : _a$showZero,\n restProps = __rest(_a, [\"prefixCls\", \"scrollNumberPrefixCls\", \"children\", \"status\", \"text\", \"color\", \"count\", \"overflowCount\", \"dot\", \"size\", \"title\", \"offset\", \"style\", \"className\", \"showZero\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('badge', customizePrefixCls);\n // ================================ Misc ================================\n var numberedDisplayCount = count > overflowCount ? \"\".concat(overflowCount, \"+\") : count;\n var isZero = numberedDisplayCount === '0' || numberedDisplayCount === 0;\n var ignoreCount = count === null || isZero && !showZero;\n var hasStatus = (status !== null && status !== undefined || color !== null && color !== undefined) && ignoreCount;\n var showAsDot = dot && !isZero;\n var mergedCount = showAsDot ? '' : numberedDisplayCount;\n var isHidden = useMemo(function () {\n var isEmpty = mergedCount === null || mergedCount === undefined || mergedCount === '';\n return (isEmpty || isZero && !showZero) && !showAsDot;\n }, [mergedCount, isZero, showZero, showAsDot]);\n // Count should be cache in case hidden change it\n var countRef = useRef(count);\n if (!isHidden) {\n countRef.current = count;\n }\n var livingCount = countRef.current;\n // We need cache count since remove motion should not change count display\n var displayCountRef = useRef(mergedCount);\n if (!isHidden) {\n displayCountRef.current = mergedCount;\n }\n var displayCount = displayCountRef.current;\n // We will cache the dot status to avoid shaking on leaved motion\n var isDotRef = useRef(showAsDot);\n if (!isHidden) {\n isDotRef.current = showAsDot;\n }\n // =============================== Styles ===============================\n var mergedStyle = useMemo(function () {\n if (!offset) {\n return _extends({}, style);\n }\n var offsetStyle = {\n marginTop: offset[1]\n };\n if (direction === 'rtl') {\n offsetStyle.left = parseInt(offset[0], 10);\n } else {\n offsetStyle.right = -parseInt(offset[0], 10);\n }\n return _extends(_extends({}, offsetStyle), style);\n }, [direction, offset, style]);\n // =============================== Render ===============================\n // >>> Title\n var titleNode = title !== null && title !== void 0 ? title : typeof livingCount === 'string' || typeof livingCount === 'number' ? livingCount : undefined;\n // >>> Status Text\n var statusTextNode = isHidden || !text ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-status-text\")\n }, text);\n // >>> Display Component\n var displayNode = !livingCount || _typeof(livingCount) !== 'object' ? undefined : cloneElement(livingCount, function (oriProps) {\n return {\n style: _extends(_extends({}, mergedStyle), oriProps.style)\n };\n });\n // Shared styles\n var statusCls = classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-status-dot\"), hasStatus), \"\".concat(prefixCls, \"-status-\").concat(status), !!status), \"\".concat(prefixCls, \"-status-\").concat(color), isPresetColor(color)));\n var statusStyle = {};\n if (color && !isPresetColor(color)) {\n statusStyle.background = color;\n }\n var badgeClassName = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-status\"), hasStatus), \"\".concat(prefixCls, \"-not-a-wrapper\"), !children), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n // <Badge status=\"success\" />\n if (!children && hasStatus) {\n var statusTextColor = mergedStyle.color;\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, restProps, {\n className: badgeClassName,\n style: mergedStyle\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: statusCls,\n style: statusStyle\n }), text && ( /*#__PURE__*/React.createElement(\"span\", {\n style: {\n color: statusTextColor\n },\n className: \"\".concat(prefixCls, \"-status-text\")\n }, text)));\n }\n // <Badge status=\"success\" count={<Icon type=\"xxx\" />}></Badge>\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, restProps, {\n className: badgeClassName\n }), children, /*#__PURE__*/React.createElement(CSSMotion, {\n visible: !isHidden,\n motionName: \"\".concat(prefixCls, \"-zoom\"),\n motionAppear: false,\n motionDeadline: 1000\n }, function (_ref) {\n var motionClassName = _ref.className;\n var scrollNumberPrefixCls = getPrefixCls('scroll-number', customizeScrollNumberPrefixCls);\n var isDot = isDotRef.current;\n var scrollNumberCls = classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-dot\"), isDot), \"\".concat(prefixCls, \"-count\"), !isDot), \"\".concat(prefixCls, \"-count-sm\"), size === 'small'), \"\".concat(prefixCls, \"-multiple-words\"), !isDot && displayCount && displayCount.toString().length > 1), \"\".concat(prefixCls, \"-status-\").concat(status), !!status), \"\".concat(prefixCls, \"-status-\").concat(color), isPresetColor(color)));\n var scrollNumberStyle = _extends({}, mergedStyle);\n if (color && !isPresetColor(color)) {\n scrollNumberStyle = scrollNumberStyle || {};\n scrollNumberStyle.background = color;\n }\n return /*#__PURE__*/React.createElement(ScrollNumber, {\n prefixCls: scrollNumberPrefixCls,\n show: !isHidden,\n motionClassName: motionClassName,\n className: scrollNumberCls,\n count: displayCount,\n title: titleNode,\n style: scrollNumberStyle,\n key: \"scrollNumber\"\n }, displayNode);\n }), statusTextNode);\n};\nBadge.Ribbon = Ribbon;\nexport default Badge;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nexport var GroupSizeContext = /*#__PURE__*/React.createContext(undefined);\nvar ButtonGroup = function ButtonGroup(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var customizePrefixCls = props.prefixCls,\n size = props.size,\n className = props.className,\n others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n var prefixCls = getPrefixCls('btn-group', customizePrefixCls);\n // large => lg\n // small => sm\n var sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n case 'middle':\n case undefined:\n break;\n default:\n process.env.NODE_ENV !== \"production\" ? warning(!size, 'Button.Group', 'Invalid prop `size`.') : void 0;\n }\n var classes = classNames(prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(GroupSizeContext.Provider, {\n value: size\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classes\n })));\n};\nexport default ButtonGroup;","import LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport CSSMotion from 'rc-motion';\nimport React from 'react';\nvar getCollapsedWidth = function getCollapsedWidth() {\n return {\n width: 0,\n opacity: 0,\n transform: 'scale(0)'\n };\n};\nvar getRealWidth = function getRealWidth(node) {\n return {\n width: node.scrollWidth,\n opacity: 1,\n transform: 'scale(1)'\n };\n};\nvar LoadingIcon = function LoadingIcon(_ref) {\n var prefixCls = _ref.prefixCls,\n loading = _ref.loading,\n existIcon = _ref.existIcon;\n var visible = !!loading;\n if (existIcon) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-loading-icon\")\n }, /*#__PURE__*/React.createElement(LoadingOutlined, null));\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n // We do not really use this motionName\n motionName: \"\".concat(prefixCls, \"-loading-icon-motion\"),\n removeOnLeave: true,\n onAppearStart: getCollapsedWidth,\n onAppearActive: getRealWidth,\n onEnterStart: getCollapsedWidth,\n onEnterActive: getRealWidth,\n onLeaveStart: getRealWidth,\n onLeaveActive: getCollapsedWidth\n }, function (_ref2, ref) {\n var className = _ref2.className,\n style = _ref2.style;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-loading-icon\"),\n style: style,\n ref: ref\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: className\n }));\n });\n};\nexport default LoadingIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n/* eslint-disable react/button-has-type */\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { useCompactItemContext } from '../space/Compact';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nimport { tuple } from '../_util/type';\nimport warning from '../_util/warning';\nimport Wave from '../_util/wave';\nimport Group, { GroupSizeContext } from './button-group';\nimport LoadingIcon from './LoadingIcon';\nvar rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nvar isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nfunction isString(str) {\n return typeof str === 'string';\n}\nfunction isUnBorderedButtonType(type) {\n return type === 'text' || type === 'link';\n}\n// Insert one space between two chinese characters automatically.\nfunction insertSpace(child, needInserted) {\n // Check the child if is undefined or null.\n if (child === null || child === undefined) {\n return;\n }\n var SPACE = needInserted ? ' ' : '';\n // strictNullChecks oops.\n if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n return cloneElement(child, {\n children: child.props.children.split('').join(SPACE)\n });\n }\n if (typeof child === 'string') {\n return isTwoCNChar(child) ? /*#__PURE__*/React.createElement(\"span\", null, child.split('').join(SPACE)) : /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n if (isFragment(child)) {\n return /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n return child;\n}\nfunction spaceChildren(children, needInserted) {\n var isPrevChildPure = false;\n var childList = [];\n React.Children.forEach(children, function (child) {\n var type = _typeof(child);\n var isCurrentChildPure = type === 'string' || type === 'number';\n if (isPrevChildPure && isCurrentChildPure) {\n var lastIndex = childList.length - 1;\n var lastChild = childList[lastIndex];\n childList[lastIndex] = \"\".concat(lastChild).concat(child);\n } else {\n childList.push(child);\n }\n isPrevChildPure = isCurrentChildPure;\n });\n // Pass to React.Children.map to auto fill key\n return React.Children.map(childList, function (child) {\n return insertSpace(child, needInserted);\n });\n}\nvar ButtonTypes = tuple('default', 'primary', 'ghost', 'dashed', 'link', 'text');\nvar ButtonShapes = tuple('default', 'circle', 'round');\nvar ButtonHTMLTypes = tuple('submit', 'button', 'reset');\nexport function convertLegacyProps(type) {\n if (type === 'danger') {\n return {\n danger: true\n };\n }\n return {\n type: type\n };\n}\nvar InternalButton = function InternalButton(props, ref) {\n var _classNames;\n var _props$loading = props.loading,\n loading = _props$loading === void 0 ? false : _props$loading,\n customizePrefixCls = props.prefixCls,\n _props$type = props.type,\n type = _props$type === void 0 ? 'default' : _props$type,\n danger = props.danger,\n _props$shape = props.shape,\n shape = _props$shape === void 0 ? 'default' : _props$shape,\n customizeSize = props.size,\n customDisabled = props.disabled,\n className = props.className,\n children = props.children,\n icon = props.icon,\n _props$ghost = props.ghost,\n ghost = _props$ghost === void 0 ? false : _props$ghost,\n _props$block = props.block,\n block = _props$block === void 0 ? false : _props$block,\n _props$htmlType = props.htmlType,\n htmlType = _props$htmlType === void 0 ? 'button' : _props$htmlType,\n rest = __rest(props, [\"loading\", \"prefixCls\", \"type\", \"danger\", \"shape\", \"size\", \"disabled\", \"className\", \"children\", \"icon\", \"ghost\", \"block\", \"htmlType\"]);\n var size = React.useContext(SizeContext);\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var groupSize = React.useContext(GroupSizeContext);\n var _React$useState = React.useState(!!loading),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerLoading = _React$useState2[0],\n setLoading = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n hasTwoCNChar = _React$useState4[0],\n setHasTwoCNChar = _React$useState4[1];\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n autoInsertSpaceInButton = _React$useContext.autoInsertSpaceInButton,\n direction = _React$useContext.direction;\n var buttonRef = ref || /*#__PURE__*/React.createRef();\n var isNeedInserted = function isNeedInserted() {\n return React.Children.count(children) === 1 && !icon && !isUnBorderedButtonType(type);\n };\n var fixTwoCNChar = function fixTwoCNChar() {\n // Fix for HOC usage like <FormatMessage />\n if (!buttonRef || !buttonRef.current || autoInsertSpaceInButton === false) {\n return;\n }\n var buttonText = buttonRef.current.textContent;\n if (isNeedInserted() && isTwoCNChar(buttonText)) {\n if (!hasTwoCNChar) {\n setHasTwoCNChar(true);\n }\n } else if (hasTwoCNChar) {\n setHasTwoCNChar(false);\n }\n };\n // =============== Update Loading ===============\n var loadingOrDelay = typeof loading === 'boolean' ? loading : (loading === null || loading === void 0 ? void 0 : loading.delay) || true;\n React.useEffect(function () {\n var delayTimer = null;\n if (typeof loadingOrDelay === 'number') {\n delayTimer = window.setTimeout(function () {\n delayTimer = null;\n setLoading(loadingOrDelay);\n }, loadingOrDelay);\n } else {\n setLoading(loadingOrDelay);\n }\n return function () {\n if (delayTimer) {\n // in order to not perform a React state update on an unmounted component\n // and clear timer after 'loadingOrDelay' updated.\n window.clearTimeout(delayTimer);\n delayTimer = null;\n }\n };\n }, [loadingOrDelay]);\n React.useEffect(fixTwoCNChar, [buttonRef]);\n var handleClick = function handleClick(e) {\n var onClick = props.onClick;\n // https://github.com/ant-design/ant-design/issues/30207\n if (innerLoading || mergedDisabled) {\n e.preventDefault();\n return;\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Button', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\")) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(ghost && isUnBorderedButtonType(type)), 'Button', \"`link` or `text` button can't be a `ghost` button.\") : void 0;\n var prefixCls = getPrefixCls('btn', customizePrefixCls);\n var autoInsertSpace = autoInsertSpaceInButton !== false;\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var sizeClassNameMap = {\n large: 'lg',\n small: 'sm',\n middle: undefined\n };\n var sizeFullname = compactSize || groupSize || customizeSize || size;\n var sizeCls = sizeFullname ? sizeClassNameMap[sizeFullname] || '' : '';\n var iconType = innerLoading ? 'loading' : icon;\n var linkButtonRestProps = omit(rest, ['navigate']);\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(shape), shape !== 'default' && shape), \"\".concat(prefixCls, \"-\").concat(type), type), \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), \"\".concat(prefixCls, \"-icon-only\"), !children && children !== 0 && !!iconType), \"\".concat(prefixCls, \"-background-ghost\"), ghost && !isUnBorderedButtonType(type)), \"\".concat(prefixCls, \"-loading\"), innerLoading), \"\".concat(prefixCls, \"-two-chinese-chars\"), hasTwoCNChar && autoInsertSpace && !innerLoading), \"\".concat(prefixCls, \"-block\"), block), \"\".concat(prefixCls, \"-dangerous\"), !!danger), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), linkButtonRestProps.href !== undefined && mergedDisabled)), compactItemClassnames, className);\n var iconNode = icon && !innerLoading ? icon : ( /*#__PURE__*/React.createElement(LoadingIcon, {\n existIcon: !!icon,\n prefixCls: prefixCls,\n loading: !!innerLoading\n }));\n var kids = children || children === 0 ? spaceChildren(children, isNeedInserted() && autoInsertSpace) : null;\n if (linkButtonRestProps.href !== undefined) {\n return /*#__PURE__*/React.createElement(\"a\", _extends({}, linkButtonRestProps, {\n className: classes,\n onClick: handleClick,\n ref: buttonRef\n }), iconNode, kids);\n }\n var buttonNode = /*#__PURE__*/React.createElement(\"button\", _extends({}, rest, {\n type: htmlType,\n className: classes,\n onClick: handleClick,\n disabled: mergedDisabled,\n ref: buttonRef\n }), iconNode, kids);\n if (isUnBorderedButtonType(type)) {\n return buttonNode;\n }\n return /*#__PURE__*/React.createElement(Wave, {\n disabled: !!innerLoading\n }, buttonNode);\n};\nvar Button = /*#__PURE__*/React.forwardRef(InternalButton);\nif (process.env.NODE_ENV !== 'production') {\n Button.displayName = 'Button';\n}\nButton.Group = Group;\nButton.__ANT_BUTTON = true;\nexport default Button;","import Button from './button';\nexport default Button;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Checkbox from './Checkbox';\nexport var GroupContext = /*#__PURE__*/React.createContext(null);\nvar InternalCheckboxGroup = function InternalCheckboxGroup(_a, ref) {\n var defaultValue = _a.defaultValue,\n children = _a.children,\n _a$options = _a.options,\n options = _a$options === void 0 ? [] : _a$options,\n customizePrefixCls = _a.prefixCls,\n className = _a.className,\n style = _a.style,\n onChange = _a.onChange,\n restProps = __rest(_a, [\"defaultValue\", \"children\", \"options\", \"prefixCls\", \"className\", \"style\", \"onChange\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useState = React.useState(restProps.value || defaultValue || []),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n registeredValues = _React$useState4[0],\n setRegisteredValues = _React$useState4[1];\n React.useEffect(function () {\n if ('value' in restProps) {\n setValue(restProps.value || []);\n }\n }, [restProps.value]);\n var getOptions = function getOptions() {\n return options.map(function (option) {\n if (typeof option === 'string' || typeof option === 'number') {\n return {\n label: option,\n value: option\n };\n }\n return option;\n });\n };\n var cancelValue = function cancelValue(val) {\n setRegisteredValues(function (prevValues) {\n return prevValues.filter(function (v) {\n return v !== val;\n });\n });\n };\n var registerValue = function registerValue(val) {\n setRegisteredValues(function (prevValues) {\n return [].concat(_toConsumableArray(prevValues), [val]);\n });\n };\n var toggleOption = function toggleOption(option) {\n var optionIndex = value.indexOf(option.value);\n var newValue = _toConsumableArray(value);\n if (optionIndex === -1) {\n newValue.push(option.value);\n } else {\n newValue.splice(optionIndex, 1);\n }\n if (!('value' in restProps)) {\n setValue(newValue);\n }\n var opts = getOptions();\n onChange === null || onChange === void 0 ? void 0 : onChange(newValue.filter(function (val) {\n return registeredValues.includes(val);\n }).sort(function (a, b) {\n var indexA = opts.findIndex(function (opt) {\n return opt.value === a;\n });\n var indexB = opts.findIndex(function (opt) {\n return opt.value === b;\n });\n return indexA - indexB;\n }));\n };\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var domProps = omit(restProps, ['value', 'disabled']);\n if (options && options.length > 0) {\n children = getOptions().map(function (option) {\n return /*#__PURE__*/React.createElement(Checkbox, {\n prefixCls: prefixCls,\n key: option.value.toString(),\n disabled: 'disabled' in option ? option.disabled : restProps.disabled,\n value: option.value,\n checked: value.includes(option.value),\n onChange: option.onChange,\n className: \"\".concat(groupPrefixCls, \"-item\"),\n style: option.style\n }, option.label);\n });\n }\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n var context = {\n toggleOption: toggleOption,\n value: value,\n disabled: restProps.disabled,\n name: restProps.name,\n // https://github.com/ant-design/ant-design/issues/16376\n registerValue: registerValue,\n cancelValue: cancelValue\n };\n var classString = classNames(groupPrefixCls, _defineProperty({}, \"\".concat(groupPrefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString,\n style: style\n }, domProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(GroupContext.Provider, {\n value: context\n }, children));\n};\nvar CheckboxGroup = /*#__PURE__*/React.forwardRef(InternalCheckboxGroup);\nexport default /*#__PURE__*/React.memo(CheckboxGroup);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nimport warning from '../_util/warning';\nimport { GroupContext } from './Group';\nimport DisabledContext from '../config-provider/DisabledContext';\nvar InternalCheckbox = function InternalCheckbox(_a, ref) {\n var _b;\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n children = _a.children,\n _a$indeterminate = _a.indeterminate,\n indeterminate = _a$indeterminate === void 0 ? false : _a$indeterminate,\n style = _a.style,\n onMouseEnter = _a.onMouseEnter,\n onMouseLeave = _a.onMouseLeave,\n _a$skipGroup = _a.skipGroup,\n skipGroup = _a$skipGroup === void 0 ? false : _a$skipGroup,\n disabled = _a.disabled,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"children\", \"indeterminate\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"skipGroup\", \"disabled\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var checkboxGroup = React.useContext(GroupContext);\n var _useContext = useContext(FormItemInputContext),\n isFormItemInput = _useContext.isFormItemInput;\n var contextDisabled = useContext(DisabledContext);\n var mergedDisabled = (_b = (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.disabled) || disabled) !== null && _b !== void 0 ? _b : contextDisabled;\n var prevValue = React.useRef(restProps.value);\n React.useEffect(function () {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n process.env.NODE_ENV !== \"production\" ? warning('checked' in restProps || !!checkboxGroup || !('value' in restProps), 'Checkbox', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n }, []);\n React.useEffect(function () {\n if (skipGroup) {\n return;\n }\n if (restProps.value !== prevValue.current) {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(prevValue.current);\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n prevValue.current = restProps.value;\n }\n return function () {\n return checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(restProps.value);\n };\n }, [restProps.value]);\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n var checkboxProps = _extends({}, restProps);\n if (checkboxGroup && !skipGroup) {\n checkboxProps.onChange = function () {\n if (restProps.onChange) {\n restProps.onChange.apply(restProps, arguments);\n }\n if (checkboxGroup.toggleOption) {\n checkboxGroup.toggleOption({\n label: children,\n value: restProps.value\n });\n }\n };\n checkboxProps.name = checkboxGroup.name;\n checkboxProps.checked = checkboxGroup.value.includes(restProps.value);\n }\n var classString = classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-wrapper\"), true), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-wrapper-checked\"), checkboxProps.checked), \"\".concat(prefixCls, \"-wrapper-disabled\"), mergedDisabled), \"\".concat(prefixCls, \"-wrapper-in-form-item\"), isFormItemInput), className);\n var checkboxClass = classNames(_defineProperty({}, \"\".concat(prefixCls, \"-indeterminate\"), indeterminate));\n var ariaChecked = indeterminate ? 'mixed' : undefined;\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n React.createElement(\"label\", {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, _extends({\n \"aria-checked\": ariaChecked\n }, checkboxProps, {\n prefixCls: prefixCls,\n className: checkboxClass,\n disabled: mergedDisabled,\n ref: ref\n })), children !== undefined && /*#__PURE__*/React.createElement(\"span\", null, children))\n );\n};\nvar Checkbox = /*#__PURE__*/React.forwardRef(InternalCheckbox);\nif (process.env.NODE_ENV !== 'production') {\n Checkbox.displayName = 'Checkbox';\n}\nexport default Checkbox;","import InternalCheckbox from './Checkbox';\nimport Group from './Group';\nvar Checkbox = InternalCheckbox;\nCheckbox.Group = Group;\nCheckbox.__ANT_CHECKBOX = true;\nexport default Checkbox;","import { Col } from '../grid';\nexport default Col;","import * as React from 'react';\nvar DisabledContext = /*#__PURE__*/React.createContext(false);\nexport var DisabledContextProvider = function DisabledContextProvider(_ref) {\n var children = _ref.children,\n disabled = _ref.disabled;\n var originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n }, children);\n};\nexport default DisabledContext;","import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nexport default SizeContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nvar defaultGetPrefixCls = function defaultGetPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"ant-\".concat(suffixCls) : 'ant';\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will case circular dependency.\nexport var ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: defaultGetPrefixCls\n});\nexport var ConfigConsumer = ConfigContext.Consumer;\n/** @deprecated Use hooks instead. This is a legacy function */\nexport function withConfigConsumer(config) {\n return function withConfigConsumerFunc(Component) {\n // Wrap with ConfigConsumer. Since we need compatible with react 15, be care when using ref methods\n var SFC = function SFC(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (configProps) {\n var basicPrefixCls = config.prefixCls;\n var getPrefixCls = configProps.getPrefixCls;\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(basicPrefixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(Component, _extends({}, configProps, props, {\n prefixCls: prefixCls\n }));\n });\n };\n var cons = Component.constructor;\n var name = cons && cons.displayName || Component.name || 'Component';\n if (process.env.NODE_ENV !== 'production') {\n SFC.displayName = \"withConfigConsumer(\".concat(name, \")\");\n }\n return SFC;\n };\n}","import * as React from 'react';\nimport { ConfigConsumer } from '.';\nimport Empty from '../empty';\nvar defaultRenderEmpty = function defaultRenderEmpty(componentName) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('empty');\n switch (componentName) {\n case 'Table':\n case 'List':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE\n });\n case 'Select':\n case 'TreeSelect':\n case 'Cascader':\n case 'Transfer':\n case 'Mentions':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n className: \"\".concat(prefix, \"-small\")\n });\n /* istanbul ignore next */\n default:\n // Should never hit if we take all the component into consider.\n return /*#__PURE__*/React.createElement(Empty, null);\n }\n });\n};\nexport default defaultRenderEmpty;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport var ANT_MARK = 'internalMark';\nvar LocaleProvider = function LocaleProvider(props) {\n var _props$locale = props.locale,\n locale = _props$locale === void 0 ? {} : _props$locale,\n children = props.children,\n _ANT_MARK__ = props._ANT_MARK__;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n }\n React.useEffect(function () {\n changeConfirmLocale(locale && locale.Modal);\n return function () {\n changeConfirmLocale();\n };\n }, [locale]);\n var getMemoizedContextValue = React.useMemo(function () {\n return _extends(_extends({}, locale), {\n exist: true\n });\n }, [locale]);\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: getMemoizedContextValue\n }, children);\n};\nexport default LocaleProvider;","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nvar dynamicStyleMark = \"-ant-\".concat(Date.now(), \"-\").concat(Math.random());\nexport function getStyle(globalPrefixCls, theme) {\n var variables = {};\n var formatColor = function formatColor(color, updater) {\n var clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n var fillColor = function fillColor(colorVal, type) {\n var baseColor = new TinyColor(colorVal);\n var colorPalettes = generate(baseColor.toRgbString());\n variables[\"\".concat(type, \"-color\")] = formatColor(baseColor);\n variables[\"\".concat(type, \"-color-disabled\")] = colorPalettes[1];\n variables[\"\".concat(type, \"-color-hover\")] = colorPalettes[4];\n variables[\"\".concat(type, \"-color-active\")] = colorPalettes[6];\n variables[\"\".concat(type, \"-color-outline\")] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[\"\".concat(type, \"-color-deprecated-bg\")] = colorPalettes[0];\n variables[\"\".concat(type, \"-color-deprecated-border\")] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n var primaryColor = new TinyColor(theme.primaryColor);\n var primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach(function (color, index) {\n variables[\"primary-\".concat(index + 1)] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, function (c) {\n return c.lighten(35);\n });\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, function (c) {\n return c.lighten(20);\n });\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, function (c) {\n return c.tint(20);\n });\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, function (c) {\n return c.tint(50);\n });\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.12);\n });\n var primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.3);\n });\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, function (c) {\n return c.darken(2);\n });\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n var cssList = Object.keys(variables).map(function (key) {\n return \"--\".concat(globalPrefixCls, \"-\").concat(key, \": \").concat(variables[key], \";\");\n });\n return \"\\n :root {\\n \".concat(cssList.join('\\n'), \"\\n }\\n \").trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n var style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, \"\".concat(dynamicStyleMark, \"-dynamic-theme\"));\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport { merge } from \"rc-util/es/utils/set\";\nimport ValidateMessagesContext from '../form/validateMessagesContext';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport message from '../message';\nimport notification from '../notification';\nimport { ConfigConsumer, ConfigContext } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nexport { ConfigContext, ConfigConsumer };\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n// These props is used by `useContext` directly in sub component\nvar PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form'];\nexport var defaultPrefixCls = 'ant';\nexport var defaultIconPrefixCls = 'anticon';\nvar globalPrefixCls;\nvar globalIconPrefixCls;\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\nvar setGlobalConfig = function setGlobalConfig(_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n theme = _ref.theme;\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n if (theme) {\n registerTheme(getGlobalPrefixCls(), theme);\n }\n};\nexport var globalConfig = function globalConfig() {\n return {\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"\".concat(getGlobalPrefixCls(), \"-\").concat(suffixCls) : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: function getRootPrefixCls(rootPrefixCls, customizePrefixCls) {\n // Customize rootPrefixCls is first priority\n if (rootPrefixCls) {\n return rootPrefixCls;\n }\n // If Global prefixCls provided, use this\n if (globalPrefixCls) {\n return globalPrefixCls;\n }\n // [Legacy] If customize prefixCls provided, we cut it to get the prefixCls\n if (customizePrefixCls && customizePrefixCls.includes('-')) {\n return customizePrefixCls.replace(/^(.*)-[^-]*$/, '$1');\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n }\n };\n};\nvar ProviderChildren = function ProviderChildren(props) {\n var children = props.children,\n csp = props.csp,\n autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n form = props.form,\n locale = props.locale,\n componentSize = props.componentSize,\n direction = props.direction,\n space = props.space,\n virtual = props.virtual,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n legacyLocale = props.legacyLocale,\n parentContext = props.parentContext,\n iconPrefixCls = props.iconPrefixCls,\n componentDisabled = props.componentDisabled;\n var getPrefixCls = React.useCallback(function (suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n var config = _extends(_extends({}, parentContext), {\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction: direction,\n space: space,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n getPrefixCls: getPrefixCls\n });\n // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n PASSED_PROPS.forEach(function (propName) {\n var propValue = props[propName];\n if (propValue) {\n config[propName] = propValue;\n }\n });\n // https://github.com/ant-design/ant-design/issues/27617\n var memoedConfig = useMemo(function () {\n return config;\n }, config, function (prevConfig, currentConfig) {\n var prevKeys = Object.keys(prevConfig);\n var currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(function (key) {\n return prevConfig[key] !== currentConfig[key];\n });\n });\n var memoIconContextValue = React.useMemo(function () {\n return {\n prefixCls: iconPrefixCls,\n csp: csp\n };\n }, [iconPrefixCls, csp]);\n var childNode = children;\n var validateMessages = React.useMemo(function () {\n var _a, _b, _c, _d;\n return merge(((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || {}, ((_c = (_b = memoedConfig.locale) === null || _b === void 0 ? void 0 : _b.Form) === null || _c === void 0 ? void 0 : _c.defaultValidateMessages) || {}, ((_d = memoedConfig.form) === null || _d === void 0 ? void 0 : _d.validateMessages) || {}, (form === null || form === void 0 ? void 0 : form.validateMessages) || {});\n }, [memoedConfig, form === null || form === void 0 ? void 0 : form.validateMessages]);\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(ValidateMessagesContext.Provider, {\n value: validateMessages\n }, children);\n }\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\nvar ConfigProvider = function ConfigProvider(props) {\n React.useEffect(function () {\n if (props.direction) {\n message.config({\n rtl: props.direction === 'rtl'\n });\n notification.config({\n rtl: props.direction === 'rtl'\n });\n }\n }, [props.direction]);\n return /*#__PURE__*/React.createElement(LocaleReceiver, null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ProviderChildren, _extends({\n parentContext: context,\n legacyLocale: legacyLocale\n }, props));\n });\n });\n};\n/** @private internal Usage. do not use in your production */\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nexport default ConfigProvider;","import moment from 'moment';\nimport { noteOnce } from \"rc-util/es/warning\";\nvar generateConfig = {\n // get\n getNow: function getNow() {\n return moment();\n },\n getFixedDate: function getFixedDate(string) {\n return moment(string, 'YYYY-MM-DD');\n },\n getEndDate: function getEndDate(date) {\n var clone = date.clone();\n return clone.endOf('month');\n },\n getWeekDay: function getWeekDay(date) {\n var clone = date.clone().locale('en_US');\n return clone.weekday() + clone.localeData().firstDayOfWeek();\n },\n getYear: function getYear(date) {\n return date.year();\n },\n getMonth: function getMonth(date) {\n return date.month();\n },\n getDate: function getDate(date) {\n return date.date();\n },\n getHour: function getHour(date) {\n return date.hour();\n },\n getMinute: function getMinute(date) {\n return date.minute();\n },\n getSecond: function getSecond(date) {\n return date.second();\n },\n // set\n addYear: function addYear(date, diff) {\n var clone = date.clone();\n return clone.add(diff, 'year');\n },\n addMonth: function addMonth(date, diff) {\n var clone = date.clone();\n return clone.add(diff, 'month');\n },\n addDate: function addDate(date, diff) {\n var clone = date.clone();\n return clone.add(diff, 'day');\n },\n setYear: function setYear(date, year) {\n var clone = date.clone();\n return clone.year(year);\n },\n setMonth: function setMonth(date, month) {\n var clone = date.clone();\n return clone.month(month);\n },\n setDate: function setDate(date, num) {\n var clone = date.clone();\n return clone.date(num);\n },\n setHour: function setHour(date, hour) {\n var clone = date.clone();\n return clone.hour(hour);\n },\n setMinute: function setMinute(date, minute) {\n var clone = date.clone();\n return clone.minute(minute);\n },\n setSecond: function setSecond(date, second) {\n var clone = date.clone();\n return clone.second(second);\n },\n // Compare\n isAfter: function isAfter(date1, date2) {\n return date1.isAfter(date2);\n },\n isValidate: function isValidate(date) {\n return date.isValid();\n },\n locale: {\n getWeekFirstDay: function getWeekFirstDay(locale) {\n var date = moment().locale(locale);\n return date.localeData().firstDayOfWeek();\n },\n getWeekFirstDate: function getWeekFirstDate(locale, date) {\n var clone = date.clone();\n var result = clone.locale(locale);\n return result.weekday(0);\n },\n getWeek: function getWeek(locale, date) {\n var clone = date.clone();\n var result = clone.locale(locale);\n return result.week();\n },\n getShortWeekDays: function getShortWeekDays(locale) {\n var date = moment().locale(locale);\n return date.localeData().weekdaysMin();\n },\n getShortMonths: function getShortMonths(locale) {\n var date = moment().locale(locale);\n return date.localeData().monthsShort();\n },\n format: function format(locale, date, _format) {\n var clone = date.clone();\n var result = clone.locale(locale);\n return result.format(_format);\n },\n parse: function parse(locale, text, formats) {\n var fallbackFormatList = [];\n for (var i = 0; i < formats.length; i += 1) {\n var format = formats[i];\n var formatText = text;\n if (format.includes('wo') || format.includes('Wo')) {\n format = format.replace(/wo/g, 'w').replace(/Wo/g, 'W');\n var matchFormat = format.match(/[-YyMmDdHhSsWwGg]+/g);\n var matchText = formatText.match(/[-\\d]+/g);\n if (matchFormat && matchText) {\n format = matchFormat.join('');\n formatText = matchText.join('');\n } else {\n fallbackFormatList.push(format.replace(/o/g, ''));\n }\n }\n var date = moment(formatText, format, locale, true);\n if (date.isValid()) {\n return date;\n }\n }\n // Fallback to fuzzy matching, this should always not reach match or need fire a issue\n for (var _i = 0; _i < fallbackFormatList.length; _i += 1) {\n var _date = moment(text, fallbackFormatList[_i], locale, false);\n /* istanbul ignore next */\n if (_date.isValid()) {\n noteOnce(false, 'Not match any format strictly and fallback to fuzzy match. Please help to fire a issue about this.');\n return _date;\n }\n }\n return null;\n }\n }\n};\nexport default generateConfig;","// This icon file is generated automatically.\nvar SwapRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z\" } }] }, \"name\": \"swap-right\", \"theme\": \"outlined\" };\nexport default SwapRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SwapRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwapRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar SwapRightOutlined = function SwapRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: SwapRightOutlinedSvg\n }));\n};\nSwapRightOutlined.displayName = 'SwapRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(SwapRightOutlined);","import * as React from 'react';\nvar PanelContext = /*#__PURE__*/React.createContext({});\nexport default PanelContext;","import * as React from 'react';\nimport PanelContext from '../PanelContext';\nvar HIDDEN_STYLE = {\n visibility: 'hidden'\n};\nfunction Header(_ref) {\n var prefixCls = _ref.prefixCls,\n _ref$prevIcon = _ref.prevIcon,\n prevIcon = _ref$prevIcon === void 0 ? \"\\u2039\" : _ref$prevIcon,\n _ref$nextIcon = _ref.nextIcon,\n nextIcon = _ref$nextIcon === void 0 ? \"\\u203A\" : _ref$nextIcon,\n _ref$superPrevIcon = _ref.superPrevIcon,\n superPrevIcon = _ref$superPrevIcon === void 0 ? \"\\xAB\" : _ref$superPrevIcon,\n _ref$superNextIcon = _ref.superNextIcon,\n superNextIcon = _ref$superNextIcon === void 0 ? \"\\xBB\" : _ref$superNextIcon,\n onSuperPrev = _ref.onSuperPrev,\n onSuperNext = _ref.onSuperNext,\n onPrev = _ref.onPrev,\n onNext = _ref.onNext,\n children = _ref.children;\n var _React$useContext = React.useContext(PanelContext),\n hideNextBtn = _React$useContext.hideNextBtn,\n hidePrevBtn = _React$useContext.hidePrevBtn;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: prefixCls\n }, onSuperPrev && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onSuperPrev,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-super-prev-btn\"),\n style: hidePrevBtn ? HIDDEN_STYLE : {}\n }, superPrevIcon), onPrev && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onPrev,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-prev-btn\"),\n style: hidePrevBtn ? HIDDEN_STYLE : {}\n }, prevIcon), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-view\")\n }, children), onNext && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onNext,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-next-btn\"),\n style: hideNextBtn ? HIDDEN_STYLE : {}\n }, nextIcon), onSuperNext && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onSuperNext,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-super-next-btn\"),\n style: hideNextBtn ? HIDDEN_STYLE : {}\n }, superNextIcon));\n}\nexport default Header;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from '../Header';\nimport { DECADE_DISTANCE_COUNT } from '.';\nimport PanelContext from '../../PanelContext';\nfunction DecadeHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n onPrevDecades = props.onPrevDecades,\n onNextDecades = props.onNextDecades;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n var endYear = startYear + DECADE_DISTANCE_COUNT - 1;\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevDecades,\n onSuperNext: onNextDecades\n }), startYear, \"-\", endYear);\n}\nexport default DecadeHeader;","export function setTime(generateConfig, date, hour, minute, second) {\n var nextTime = generateConfig.setHour(date, hour);\n nextTime = generateConfig.setMinute(nextTime, minute);\n nextTime = generateConfig.setSecond(nextTime, second);\n return nextTime;\n}\nexport function setDateTime(generateConfig, date, defaultDate) {\n if (!defaultDate) {\n return date;\n }\n var newDate = date;\n newDate = generateConfig.setHour(newDate, generateConfig.getHour(defaultDate));\n newDate = generateConfig.setMinute(newDate, generateConfig.getMinute(defaultDate));\n newDate = generateConfig.setSecond(newDate, generateConfig.getSecond(defaultDate));\n return newDate;\n}\nexport function getLowerBoundTime(hour, minute, second, hourStep, minuteStep, secondStep) {\n var lowerBoundHour = Math.floor(hour / hourStep) * hourStep;\n if (lowerBoundHour < hour) {\n return [lowerBoundHour, 60 - minuteStep, 60 - secondStep];\n }\n var lowerBoundMinute = Math.floor(minute / minuteStep) * minuteStep;\n if (lowerBoundMinute < minute) {\n return [lowerBoundHour, lowerBoundMinute, 60 - secondStep];\n }\n var lowerBoundSecond = Math.floor(second / secondStep) * secondStep;\n return [lowerBoundHour, lowerBoundMinute, lowerBoundSecond];\n}\nexport function getLastDay(generateConfig, date) {\n var year = generateConfig.getYear(date);\n var month = generateConfig.getMonth(date) + 1;\n var endDate = generateConfig.getEndDate(generateConfig.getFixedDate(\"\".concat(year, \"-\").concat(month, \"-01\")));\n var lastDay = generateConfig.getDate(endDate);\n var monthShow = month < 10 ? \"0\".concat(month) : \"\".concat(month);\n return \"\".concat(year, \"-\").concat(monthShow, \"-\").concat(lastDay);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport PanelContext from '../PanelContext';\nimport { getLastDay } from '../utils/timeUtil';\nimport { getCellDateDisabled } from '../utils/dateUtil';\nexport default function PanelBody(_ref) {\n var prefixCls = _ref.prefixCls,\n disabledDate = _ref.disabledDate,\n onSelect = _ref.onSelect,\n picker = _ref.picker,\n rowNum = _ref.rowNum,\n colNum = _ref.colNum,\n prefixColumn = _ref.prefixColumn,\n rowClassName = _ref.rowClassName,\n baseDate = _ref.baseDate,\n getCellClassName = _ref.getCellClassName,\n getCellText = _ref.getCellText,\n getCellNode = _ref.getCellNode,\n getCellDate = _ref.getCellDate,\n generateConfig = _ref.generateConfig,\n titleCell = _ref.titleCell,\n headerCells = _ref.headerCells;\n var _React$useContext = React.useContext(PanelContext),\n onDateMouseEnter = _React$useContext.onDateMouseEnter,\n onDateMouseLeave = _React$useContext.onDateMouseLeave,\n mode = _React$useContext.mode;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n // =============================== Body ===============================\n var rows = [];\n for (var i = 0; i < rowNum; i += 1) {\n var row = [];\n var rowStartDate = void 0;\n var _loop = function _loop() {\n var _objectSpread2;\n var offset = i * colNum + j;\n var currentDate = getCellDate(baseDate, offset);\n var disabled = getCellDateDisabled({\n cellDate: currentDate,\n mode: mode,\n disabledDate: disabledDate,\n generateConfig: generateConfig\n });\n if (j === 0) {\n rowStartDate = currentDate;\n if (prefixColumn) {\n row.push(prefixColumn(rowStartDate));\n }\n }\n var title = titleCell && titleCell(currentDate);\n row.push( /*#__PURE__*/React.createElement(\"td\", {\n key: j,\n title: title,\n className: classNames(cellPrefixCls, _objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-disabled\"), disabled), _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-start\"), getCellText(currentDate) === 1 || picker === 'year' && Number(title) % 10 === 0), _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-end\"), title === getLastDay(generateConfig, currentDate) || picker === 'year' && Number(title) % 10 === 9), _objectSpread2), getCellClassName(currentDate))),\n onClick: function onClick() {\n if (!disabled) {\n onSelect(currentDate);\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (!disabled && onDateMouseEnter) {\n onDateMouseEnter(currentDate);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!disabled && onDateMouseLeave) {\n onDateMouseLeave(currentDate);\n }\n }\n }, getCellNode ? getCellNode(currentDate) : /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, getCellText(currentDate))));\n };\n for (var j = 0; j < colNum; j += 1) {\n _loop();\n }\n rows.push( /*#__PURE__*/React.createElement(\"tr\", {\n key: i,\n className: rowClassName && rowClassName(rowStartDate)\n }, row));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\")\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, headerCells && /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, headerCells)), /*#__PURE__*/React.createElement(\"tbody\", null, rows)));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF } from '.';\nimport PanelBody from '../PanelBody';\nexport var DECADE_COL_COUNT = 3;\nvar DECADE_ROW_COUNT = 4;\nfunction DecadeBody(props) {\n var DECADE_UNIT_DIFF_DES = DECADE_UNIT_DIFF - 1;\n var prefixCls = props.prefixCls,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var yearNumber = generateConfig.getYear(viewDate);\n var decadeYearNumber = Math.floor(yearNumber / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n var startDecadeYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n var endDecadeYear = startDecadeYear + DECADE_DISTANCE_COUNT - 1;\n var baseDecadeYear = generateConfig.setYear(viewDate, startDecadeYear - Math.ceil((DECADE_COL_COUNT * DECADE_ROW_COUNT * DECADE_UNIT_DIFF - DECADE_DISTANCE_COUNT) / 2));\n var getCellClassName = function getCellClassName(date) {\n var _ref;\n var startDecadeNumber = generateConfig.getYear(date);\n var endDecadeNumber = startDecadeNumber + DECADE_UNIT_DIFF_DES;\n return _ref = {}, _defineProperty(_ref, \"\".concat(cellPrefixCls, \"-in-view\"), startDecadeYear <= startDecadeNumber && endDecadeNumber <= endDecadeYear), _defineProperty(_ref, \"\".concat(cellPrefixCls, \"-selected\"), startDecadeNumber === decadeYearNumber), _ref;\n };\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: DECADE_ROW_COUNT,\n colNum: DECADE_COL_COUNT,\n baseDate: baseDecadeYear,\n getCellText: function getCellText(date) {\n var startDecadeNumber = generateConfig.getYear(date);\n return \"\".concat(startDecadeNumber, \"-\").concat(startDecadeNumber + DECADE_UNIT_DIFF_DES);\n },\n getCellClassName: getCellClassName,\n getCellDate: function getCellDate(date, offset) {\n return generateConfig.addYear(date, offset * DECADE_UNIT_DIFF);\n }\n }));\n}\nexport default DecadeBody;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nvar scrollIds = new Map();\n/** Trigger when element is visible in view */\nexport function waitElementReady(element, callback) {\n var id;\n function tryOrNextFrame() {\n if (isVisible(element)) {\n callback();\n } else {\n id = raf(function () {\n tryOrNextFrame();\n });\n }\n }\n tryOrNextFrame();\n return function () {\n raf.cancel(id);\n };\n}\n/* eslint-disable no-param-reassign */\nexport function scrollTo(element, to, duration) {\n if (scrollIds.get(element)) {\n cancelAnimationFrame(scrollIds.get(element));\n }\n // jump to target if duration zero\n if (duration <= 0) {\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop = to;\n }));\n return;\n }\n var difference = to - element.scrollTop;\n var perTick = difference / duration * 10;\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop += perTick;\n if (element.scrollTop !== to) {\n scrollTo(element, to, duration - 10);\n }\n }));\n}\nexport function createKeyDownHandler(event, _ref) {\n var onLeftRight = _ref.onLeftRight,\n onCtrlLeftRight = _ref.onCtrlLeftRight,\n onUpDown = _ref.onUpDown,\n onPageUpDown = _ref.onPageUpDown,\n onEnter = _ref.onEnter;\n var which = event.which,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n switch (which) {\n case KeyCode.LEFT:\n if (ctrlKey || metaKey) {\n if (onCtrlLeftRight) {\n onCtrlLeftRight(-1);\n return true;\n }\n } else if (onLeftRight) {\n onLeftRight(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.RIGHT:\n if (ctrlKey || metaKey) {\n if (onCtrlLeftRight) {\n onCtrlLeftRight(1);\n return true;\n }\n } else if (onLeftRight) {\n onLeftRight(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.UP:\n if (onUpDown) {\n onUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.DOWN:\n if (onUpDown) {\n onUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.PAGE_UP:\n if (onPageUpDown) {\n onPageUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.PAGE_DOWN:\n if (onPageUpDown) {\n onPageUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.ENTER:\n if (onEnter) {\n onEnter();\n return true;\n }\n /* istanbul ignore next */\n break;\n }\n return false;\n}\n// ===================== Format =====================\nexport function getDefaultFormat(format, picker, showTime, use12Hours) {\n var mergedFormat = format;\n if (!mergedFormat) {\n switch (picker) {\n case 'time':\n mergedFormat = use12Hours ? 'hh:mm:ss a' : 'HH:mm:ss';\n break;\n case 'week':\n mergedFormat = 'gggg-wo';\n break;\n case 'month':\n mergedFormat = 'YYYY-MM';\n break;\n case 'quarter':\n mergedFormat = 'YYYY-[Q]Q';\n break;\n case 'year':\n mergedFormat = 'YYYY';\n break;\n default:\n mergedFormat = showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';\n }\n }\n return mergedFormat;\n}\nexport function getInputSize(picker, format, generateConfig) {\n var defaultSize = picker === 'time' ? 8 : 10;\n var length = typeof format === 'function' ? format(generateConfig.getNow()).length : format.length;\n return Math.max(defaultSize, length) + 2;\n}\nvar globalClickFunc = null;\nvar clickCallbacks = new Set();\nexport function addGlobalMouseDownEvent(callback) {\n if (!globalClickFunc && typeof window !== 'undefined' && window.addEventListener) {\n globalClickFunc = function globalClickFunc(e) {\n // Clone a new list to avoid repeat trigger events\n _toConsumableArray(clickCallbacks).forEach(function (queueFunc) {\n queueFunc(e);\n });\n };\n window.addEventListener('mousedown', globalClickFunc);\n }\n clickCallbacks.add(callback);\n return function () {\n clickCallbacks.delete(callback);\n if (clickCallbacks.size === 0) {\n window.removeEventListener('mousedown', globalClickFunc);\n globalClickFunc = null;\n }\n };\n}\nexport function getTargetFromEvent(e) {\n var target = e.target;\n // get target if in shadow dom\n if (e.composed && target.shadowRoot) {\n var _e$composedPath;\n return ((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath.call(e)[0]) || target;\n }\n return target;\n}\n// ====================== Mode ======================\nvar getYearNextMode = function getYearNextMode(next) {\n if (next === 'month' || next === 'date') {\n return 'year';\n }\n return next;\n};\nvar getMonthNextMode = function getMonthNextMode(next) {\n if (next === 'date') {\n return 'month';\n }\n return next;\n};\nvar getQuarterNextMode = function getQuarterNextMode(next) {\n if (next === 'month' || next === 'date') {\n return 'quarter';\n }\n return next;\n};\nvar getWeekNextMode = function getWeekNextMode(next) {\n if (next === 'date') {\n return 'week';\n }\n return next;\n};\nexport var PickerModeMap = {\n year: getYearNextMode,\n month: getMonthNextMode,\n quarter: getQuarterNextMode,\n week: getWeekNextMode,\n time: null,\n date: null\n};\nexport function elementsContains(elements, target) {\n return elements.some(function (ele) {\n return ele && ele.contains(target);\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport DecadeHeader from './DecadeHeader';\nimport DecadeBody, { DECADE_COL_COUNT } from './DecadeBody';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nexport var DECADE_UNIT_DIFF = 10;\nexport var DECADE_DISTANCE_COUNT = DECADE_UNIT_DIFF * 10;\nfunction DecadePanel(props) {\n var prefixCls = props.prefixCls,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n operationRef = props.operationRef,\n onSelect = props.onSelect,\n onPanelChange = props.onPanelChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-decade-panel\");\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT), 'key');\n },\n onUpDown: function onUpDown(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF * DECADE_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange('year', viewDate);\n }\n });\n }\n };\n // ==================== View Operation ====================\n var onDecadesChange = function onDecadesChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n var onInternalSelect = function onInternalSelect(date) {\n onSelect(date, 'mouse');\n onPanelChange('year', date);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(DecadeHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevDecades: function onPrevDecades() {\n onDecadesChange(-1);\n },\n onNextDecades: function onNextDecades() {\n onDecadesChange(1);\n }\n })), /*#__PURE__*/React.createElement(DecadeBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: onInternalSelect\n })));\n}\nexport default DecadePanel;","import { DECADE_UNIT_DIFF } from '../panels/DecadePanel/index';\nexport var WEEK_DAY_COUNT = 7;\nexport function isNullEqual(value1, value2) {\n if (!value1 && !value2) {\n return true;\n }\n if (!value1 || !value2) {\n return false;\n }\n return undefined;\n}\nexport function isSameDecade(generateConfig, decade1, decade2) {\n var equal = isNullEqual(decade1, decade2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n var num1 = Math.floor(generateConfig.getYear(decade1) / 10);\n var num2 = Math.floor(generateConfig.getYear(decade2) / 10);\n return num1 === num2;\n}\nexport function isSameYear(generateConfig, year1, year2) {\n var equal = isNullEqual(year1, year2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getYear(year1) === generateConfig.getYear(year2);\n}\nexport function getQuarter(generateConfig, date) {\n var quota = Math.floor(generateConfig.getMonth(date) / 3);\n return quota + 1;\n}\nexport function isSameQuarter(generateConfig, quarter1, quarter2) {\n var equal = isNullEqual(quarter1, quarter2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, quarter1, quarter2) && getQuarter(generateConfig, quarter1) === getQuarter(generateConfig, quarter2);\n}\nexport function isSameMonth(generateConfig, month1, month2) {\n var equal = isNullEqual(month1, month2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, month1, month2) && generateConfig.getMonth(month1) === generateConfig.getMonth(month2);\n}\nexport function isSameDate(generateConfig, date1, date2) {\n var equal = isNullEqual(date1, date2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getYear(date1) === generateConfig.getYear(date2) && generateConfig.getMonth(date1) === generateConfig.getMonth(date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);\n}\nexport function isSameTime(generateConfig, time1, time2) {\n var equal = isNullEqual(time1, time2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getHour(time1) === generateConfig.getHour(time2) && generateConfig.getMinute(time1) === generateConfig.getMinute(time2) && generateConfig.getSecond(time1) === generateConfig.getSecond(time2);\n}\nexport function isSameWeek(generateConfig, locale, date1, date2) {\n var equal = isNullEqual(date1, date2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, date1, date2) && generateConfig.locale.getWeek(locale, date1) === generateConfig.locale.getWeek(locale, date2);\n}\nexport function isEqual(generateConfig, value1, value2) {\n return isSameDate(generateConfig, value1, value2) && isSameTime(generateConfig, value1, value2);\n}\n/** Between in date but not equal of date */\nexport function isInRange(generateConfig, startDate, endDate, current) {\n if (!startDate || !endDate || !current) {\n return false;\n }\n return !isSameDate(generateConfig, startDate, current) && !isSameDate(generateConfig, endDate, current) && generateConfig.isAfter(current, startDate) && generateConfig.isAfter(endDate, current);\n}\nexport function getWeekStartDate(locale, generateConfig, value) {\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale);\n var monthStartDate = generateConfig.setDate(value, 1);\n var startDateWeekDay = generateConfig.getWeekDay(monthStartDate);\n var alignStartDate = generateConfig.addDate(monthStartDate, weekFirstDay - startDateWeekDay);\n if (generateConfig.getMonth(alignStartDate) === generateConfig.getMonth(value) && generateConfig.getDate(alignStartDate) > 1) {\n alignStartDate = generateConfig.addDate(alignStartDate, -7);\n }\n return alignStartDate;\n}\nexport function getClosingViewDate(viewDate, picker, generateConfig) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n switch (picker) {\n case 'year':\n return generateConfig.addYear(viewDate, offset * 10);\n case 'quarter':\n case 'month':\n return generateConfig.addYear(viewDate, offset);\n default:\n return generateConfig.addMonth(viewDate, offset);\n }\n}\nexport function formatValue(value, _ref) {\n var generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n format = _ref.format;\n return typeof format === 'function' ? format(value) : generateConfig.locale.format(locale.locale, value, format);\n}\nexport function parseValue(value, _ref2) {\n var generateConfig = _ref2.generateConfig,\n locale = _ref2.locale,\n formatList = _ref2.formatList;\n if (!value || typeof formatList[0] === 'function') {\n return null;\n }\n return generateConfig.locale.parse(locale.locale, value, formatList);\n}\n// eslint-disable-next-line consistent-return\nexport function getCellDateDisabled(_ref3) {\n var cellDate = _ref3.cellDate,\n mode = _ref3.mode,\n disabledDate = _ref3.disabledDate,\n generateConfig = _ref3.generateConfig;\n if (!disabledDate) return false;\n // Whether cellDate is disabled in range\n var getDisabledFromRange = function getDisabledFromRange(currentMode, start, end) {\n var current = start;\n while (current <= end) {\n var date = void 0;\n switch (currentMode) {\n case 'date':\n {\n date = generateConfig.setDate(cellDate, current);\n if (!disabledDate(date)) {\n return false;\n }\n break;\n }\n case 'month':\n {\n date = generateConfig.setMonth(cellDate, current);\n if (!getCellDateDisabled({\n cellDate: date,\n mode: 'month',\n generateConfig: generateConfig,\n disabledDate: disabledDate\n })) {\n return false;\n }\n break;\n }\n case 'year':\n {\n date = generateConfig.setYear(cellDate, current);\n if (!getCellDateDisabled({\n cellDate: date,\n mode: 'year',\n generateConfig: generateConfig,\n disabledDate: disabledDate\n })) {\n return false;\n }\n break;\n }\n }\n current += 1;\n }\n return true;\n };\n switch (mode) {\n case 'date':\n case 'week':\n {\n return disabledDate(cellDate);\n }\n case 'month':\n {\n var startDate = 1;\n var endDate = generateConfig.getDate(generateConfig.getEndDate(cellDate));\n return getDisabledFromRange('date', startDate, endDate);\n }\n case 'quarter':\n {\n var startMonth = Math.floor(generateConfig.getMonth(cellDate) / 3) * 3;\n var endMonth = startMonth + 2;\n return getDisabledFromRange('month', startMonth, endMonth);\n }\n case 'year':\n {\n return getDisabledFromRange('month', 0, 11);\n }\n case 'decade':\n {\n var year = generateConfig.getYear(cellDate);\n var startYear = Math.floor(year / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n var endYear = startYear + DECADE_UNIT_DIFF - 1;\n return getDisabledFromRange('year', startYear, endYear);\n }\n }\n}","import * as React from 'react';\nimport Header from '../Header';\nimport PanelContext from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nfunction TimeHeader(props) {\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value,\n format = props.format;\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, {\n prefixCls: headerPrefixCls\n }, value ? formatValue(value, {\n locale: locale,\n format: format,\n generateConfig: generateConfig\n }) : \"\\xA0\");\n}\nexport default TimeHeader;","export function leftPad(str, length) {\n var fill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n var current = String(str);\n while (current.length < length) {\n current = \"\".concat(fill).concat(str);\n }\n return current;\n}\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args;\n};\nexport function toArray(val) {\n if (val === null || val === undefined) {\n return [];\n }\n return Array.isArray(val) ? val : [val];\n}\nexport default function getDataOrAriaProps(props) {\n var retProps = {};\n Object.keys(props).forEach(function (key) {\n if ((key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role' || key === 'name') && key.substr(0, 7) !== 'data-__') {\n retProps[key] = props[key];\n }\n });\n return retProps;\n}\nexport function getValue(values, index) {\n return values ? values[index] : null;\n}\nexport function updateValues(values, value, index) {\n var newValues = [getValue(values, 0), getValue(values, 1)];\n newValues[index] = typeof value === 'function' ? value(newValues[index]) : value;\n if (!newValues[0] && !newValues[1]) {\n return null;\n }\n return newValues;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { useRef, useLayoutEffect } from 'react';\nimport classNames from 'classnames';\nimport { scrollTo, waitElementReady } from '../../utils/uiUtil';\nimport PanelContext from '../../PanelContext';\nfunction TimeUnitColumn(props) {\n var prefixCls = props.prefixCls,\n units = props.units,\n onSelect = props.onSelect,\n value = props.value,\n active = props.active,\n hideDisabledOptions = props.hideDisabledOptions;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var _React$useContext = React.useContext(PanelContext),\n open = _React$useContext.open;\n var ulRef = useRef(null);\n var liRefs = useRef(new Map());\n var scrollRef = useRef();\n // `useLayoutEffect` here to avoid blink by duration is 0\n useLayoutEffect(function () {\n var li = liRefs.current.get(value);\n if (li && open !== false) {\n scrollTo(ulRef.current, li.offsetTop, 120);\n }\n }, [value]);\n useLayoutEffect(function () {\n if (open) {\n var li = liRefs.current.get(value);\n if (li) {\n scrollRef.current = waitElementReady(li, function () {\n scrollTo(ulRef.current, li.offsetTop, 0);\n });\n }\n }\n return function () {\n var _scrollRef$current;\n (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.call(scrollRef);\n };\n }, [open]);\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(\"\".concat(prefixCls, \"-column\"), _defineProperty({}, \"\".concat(prefixCls, \"-column-active\"), active)),\n ref: ulRef,\n style: {\n position: 'relative'\n }\n }, units.map(function (unit) {\n var _classNames2;\n if (hideDisabledOptions && unit.disabled) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n key: unit.value,\n ref: function ref(element) {\n liRefs.current.set(unit.value, element);\n },\n className: classNames(cellPrefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(cellPrefixCls, \"-disabled\"), unit.disabled), _defineProperty(_classNames2, \"\".concat(cellPrefixCls, \"-selected\"), value === unit.value), _classNames2)),\n onClick: function onClick() {\n if (unit.disabled) {\n return;\n }\n onSelect(unit.value);\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, unit.label));\n }));\n}\nexport default TimeUnitColumn;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport useTimeSelection from '../../hooks/useTimeSelection';\nimport { leftPad } from '../../utils/miscUtil';\nimport TimeUnitColumn from './TimeUnitColumn';\nfunction shouldUnitsUpdate(prevUnits, nextUnits) {\n if (prevUnits.length !== nextUnits.length) return true;\n // if any unit's disabled status is different, the units should be re-evaluted\n for (var i = 0; i < prevUnits.length; i += 1) {\n if (prevUnits[i].disabled !== nextUnits[i].disabled) return true;\n }\n return false;\n}\nfunction generateUnits(start, end, step, disabledUnits) {\n var units = [];\n var integerStep = step >= 1 ? step | 0 : 1;\n for (var i = start; i <= end; i += integerStep) {\n units.push({\n label: leftPad(i, 2),\n value: i,\n disabled: (disabledUnits || []).includes(i)\n });\n }\n return units;\n}\nfunction TimeBody(props) {\n var generateConfig = props.generateConfig,\n prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n activeColumnIndex = props.activeColumnIndex,\n value = props.value,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n use12Hours = props.use12Hours,\n _props$hourStep = props.hourStep,\n hourStep = _props$hourStep === void 0 ? 1 : _props$hourStep,\n _props$minuteStep = props.minuteStep,\n minuteStep = _props$minuteStep === void 0 ? 1 : _props$minuteStep,\n _props$secondStep = props.secondStep,\n secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep,\n disabledHours = props.disabledHours,\n disabledMinutes = props.disabledMinutes,\n disabledSeconds = props.disabledSeconds,\n disabledTime = props.disabledTime,\n hideDisabledOptions = props.hideDisabledOptions,\n onSelect = props.onSelect;\n // Misc\n var columns = [];\n var contentPrefixCls = \"\".concat(prefixCls, \"-content\");\n var columnPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var isPM;\n var originHour = value ? generateConfig.getHour(value) : -1;\n var hour = originHour;\n var minute = value ? generateConfig.getMinute(value) : -1;\n var second = value ? generateConfig.getSecond(value) : -1;\n // Disabled Time\n var now = generateConfig.getNow();\n var _React$useMemo = React.useMemo(function () {\n if (disabledTime) {\n var disabledConfig = disabledTime(now);\n return [disabledConfig.disabledHours, disabledConfig.disabledMinutes, disabledConfig.disabledSeconds];\n }\n return [disabledHours, disabledMinutes, disabledSeconds];\n }, [disabledHours, disabledMinutes, disabledSeconds, disabledTime, now]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 3),\n mergedDisabledHours = _React$useMemo2[0],\n mergedDisabledMinutes = _React$useMemo2[1],\n mergedDisabledSeconds = _React$useMemo2[2];\n // ========================= Unit =========================\n var rawHours = generateUnits(0, 23, hourStep, mergedDisabledHours && mergedDisabledHours());\n var memorizedRawHours = useMemo(function () {\n return rawHours;\n }, rawHours, shouldUnitsUpdate);\n // Should additional logic to handle 12 hours\n if (use12Hours) {\n isPM = hour >= 12; // -1 means should display AM\n hour %= 12;\n }\n var _React$useMemo3 = React.useMemo(function () {\n if (!use12Hours) {\n return [false, false];\n }\n var AMPMDisabled = [true, true];\n memorizedRawHours.forEach(function (_ref) {\n var disabled = _ref.disabled,\n hourValue = _ref.value;\n if (disabled) return;\n if (hourValue >= 12) {\n AMPMDisabled[1] = false;\n } else {\n AMPMDisabled[0] = false;\n }\n });\n return AMPMDisabled;\n }, [use12Hours, memorizedRawHours]),\n _React$useMemo4 = _slicedToArray(_React$useMemo3, 2),\n AMDisabled = _React$useMemo4[0],\n PMDisabled = _React$useMemo4[1];\n var hours = React.useMemo(function () {\n if (!use12Hours) return memorizedRawHours;\n return memorizedRawHours.filter(isPM ? function (hourMeta) {\n return hourMeta.value >= 12;\n } : function (hourMeta) {\n return hourMeta.value < 12;\n }).map(function (hourMeta) {\n var hourValue = hourMeta.value % 12;\n var hourLabel = hourValue === 0 ? '12' : leftPad(hourValue, 2);\n return _objectSpread(_objectSpread({}, hourMeta), {}, {\n label: hourLabel,\n value: hourValue\n });\n });\n }, [use12Hours, isPM, memorizedRawHours]);\n var minutes = generateUnits(0, 59, minuteStep, mergedDisabledMinutes && mergedDisabledMinutes(originHour));\n var seconds = generateUnits(0, 59, secondStep, mergedDisabledSeconds && mergedDisabledSeconds(originHour, minute));\n // Set Time\n var setTime = useTimeSelection({\n value: value,\n generateConfig: generateConfig,\n disabledMinutes: mergedDisabledMinutes,\n disabledSeconds: mergedDisabledSeconds,\n minutes: minutes,\n seconds: seconds,\n use12Hours: use12Hours\n });\n // ====================== Operations ======================\n operationRef.current = {\n onUpDown: function onUpDown(diff) {\n var column = columns[activeColumnIndex];\n if (column) {\n var valueIndex = column.units.findIndex(function (unit) {\n return unit.value === column.value;\n });\n var unitLen = column.units.length;\n for (var i = 1; i < unitLen; i += 1) {\n var nextUnit = column.units[(valueIndex + diff * i + unitLen) % unitLen];\n if (nextUnit.disabled !== true) {\n column.onSelect(nextUnit.value);\n break;\n }\n }\n }\n }\n };\n // ======================== Render ========================\n function addColumnNode(condition, node, columnValue, units, onColumnSelect) {\n if (condition !== false) {\n columns.push({\n node: /*#__PURE__*/React.cloneElement(node, {\n prefixCls: columnPrefixCls,\n value: columnValue,\n active: activeColumnIndex === columns.length,\n onSelect: onColumnSelect,\n units: units,\n hideDisabledOptions: hideDisabledOptions\n }),\n onSelect: onColumnSelect,\n value: columnValue,\n units: units\n });\n }\n }\n // Hour\n addColumnNode(showHour, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"hour\"\n }), hour, hours, function (num) {\n onSelect(setTime(isPM, num, minute, second), 'mouse');\n });\n // Minute\n addColumnNode(showMinute, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"minute\"\n }), minute, minutes, function (num) {\n onSelect(setTime(isPM, hour, num, second), 'mouse');\n });\n // Second\n addColumnNode(showSecond, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"second\"\n }), second, seconds, function (num) {\n onSelect(setTime(isPM, hour, minute, num), 'mouse');\n });\n // 12 Hours\n var PMIndex = -1;\n if (typeof isPM === 'boolean') {\n PMIndex = isPM ? 1 : 0;\n }\n addColumnNode(use12Hours === true, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"12hours\"\n }), PMIndex, [{\n label: 'AM',\n value: 0,\n disabled: AMDisabled\n }, {\n label: 'PM',\n value: 1,\n disabled: PMDisabled\n }], function (num) {\n onSelect(setTime(!!num, hour, minute, second), 'mouse');\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: contentPrefixCls\n }, columns.map(function (_ref2) {\n var node = _ref2.node;\n return node;\n }));\n}\nexport default TimeBody;","import { setTime as utilSetTime } from '../utils/timeUtil';\nexport default function useTimeSelection(_ref) {\n var value = _ref.value,\n generateConfig = _ref.generateConfig,\n disabledMinutes = _ref.disabledMinutes,\n disabledSeconds = _ref.disabledSeconds,\n minutes = _ref.minutes,\n seconds = _ref.seconds,\n use12Hours = _ref.use12Hours;\n var setTime = function setTime(isNewPM, newHour, newMinute, newSecond) {\n var newDate = value || generateConfig.getNow();\n var mergedHour = Math.max(0, newHour);\n var mergedMinute = Math.max(0, newMinute);\n var mergedSecond = Math.max(0, newSecond);\n var newDisabledMinutes = disabledMinutes && disabledMinutes(mergedHour);\n if (newDisabledMinutes === null || newDisabledMinutes === void 0 ? void 0 : newDisabledMinutes.includes(mergedMinute)) {\n // find the first available minute in minutes\n var availableMinute = minutes.find(function (i) {\n return !newDisabledMinutes.includes(i.value);\n });\n if (availableMinute) {\n mergedMinute = availableMinute.value;\n } else {\n return null;\n }\n }\n var newDisabledSeconds = disabledSeconds && disabledSeconds(mergedHour, mergedMinute);\n if (newDisabledSeconds === null || newDisabledSeconds === void 0 ? void 0 : newDisabledSeconds.includes(mergedSecond)) {\n // find the first available second in seconds\n var availableSecond = seconds.find(function (i) {\n return !newDisabledSeconds.includes(i.value);\n });\n if (availableSecond) {\n mergedSecond = availableSecond.value;\n } else {\n return null;\n }\n }\n newDate = utilSetTime(generateConfig, newDate, !use12Hours || !isNewPM ? mergedHour : mergedHour + 12, mergedMinute, mergedSecond);\n return newDate;\n };\n return setTime;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport TimeHeader from './TimeHeader';\nimport TimeBody from './TimeBody';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nvar countBoolean = function countBoolean(boolList) {\n return boolList.filter(function (bool) {\n return bool !== false;\n }).length;\n};\nfunction TimePanel(props) {\n var generateConfig = props.generateConfig,\n _props$format = props.format,\n format = _props$format === void 0 ? 'HH:mm:ss' : _props$format,\n prefixCls = props.prefixCls,\n active = props.active,\n operationRef = props.operationRef,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n _props$use12Hours = props.use12Hours,\n use12Hours = _props$use12Hours === void 0 ? false : _props$use12Hours,\n onSelect = props.onSelect,\n value = props.value;\n var panelPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var bodyOperationRef = React.useRef();\n // ======================= Keyboard =======================\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeColumnIndex = _React$useState2[0],\n setActiveColumnIndex = _React$useState2[1];\n var columnsCount = countBoolean([showHour, showMinute, showSecond, use12Hours]);\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n setActiveColumnIndex((activeColumnIndex + diff + columnsCount) % columnsCount);\n },\n onUpDown: function onUpDown(diff) {\n if (activeColumnIndex === -1) {\n setActiveColumnIndex(0);\n } else if (bodyOperationRef.current) {\n bodyOperationRef.current.onUpDown(diff);\n }\n },\n onEnter: function onEnter() {\n onSelect(value || generateConfig.getNow(), 'key');\n setActiveColumnIndex(-1);\n }\n });\n },\n onBlur: function onBlur() {\n setActiveColumnIndex(-1);\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), active))\n }, /*#__PURE__*/React.createElement(TimeHeader, _extends({}, props, {\n format: format,\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(TimeBody, _extends({}, props, {\n prefixCls: prefixCls,\n activeColumnIndex: activeColumnIndex,\n operationRef: bodyOperationRef\n })));\n}\nexport default TimePanel;","import * as React from 'react';\nvar RangeContext = /*#__PURE__*/React.createContext({});\nexport default RangeContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isInRange } from '../utils/dateUtil';\nimport { getValue } from '../utils/miscUtil';\nexport default function useCellClassName(_ref) {\n var cellPrefixCls = _ref.cellPrefixCls,\n generateConfig = _ref.generateConfig,\n rangedValue = _ref.rangedValue,\n hoverRangedValue = _ref.hoverRangedValue,\n isInView = _ref.isInView,\n isSameCell = _ref.isSameCell,\n offsetCell = _ref.offsetCell,\n today = _ref.today,\n value = _ref.value;\n function getClassName(currentDate) {\n var _ref2;\n var prevDate = offsetCell(currentDate, -1);\n var nextDate = offsetCell(currentDate, 1);\n var rangeStart = getValue(rangedValue, 0);\n var rangeEnd = getValue(rangedValue, 1);\n var hoverStart = getValue(hoverRangedValue, 0);\n var hoverEnd = getValue(hoverRangedValue, 1);\n var isRangeHovered = isInRange(generateConfig, hoverStart, hoverEnd, currentDate);\n function isRangeStart(date) {\n return isSameCell(rangeStart, date);\n }\n function isRangeEnd(date) {\n return isSameCell(rangeEnd, date);\n }\n var isHoverStart = isSameCell(hoverStart, currentDate);\n var isHoverEnd = isSameCell(hoverEnd, currentDate);\n var isHoverEdgeStart = (isRangeHovered || isHoverEnd) && (!isInView(prevDate) || isRangeEnd(prevDate));\n var isHoverEdgeEnd = (isRangeHovered || isHoverStart) && (!isInView(nextDate) || isRangeStart(nextDate));\n return _ref2 = {}, _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-in-view\"), isInView(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-in-range\"), isInRange(generateConfig, rangeStart, rangeEnd, currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start\"), isRangeStart(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end\"), isRangeEnd(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start-single\"), isRangeStart(currentDate) && !rangeEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end-single\"), isRangeEnd(currentDate) && !rangeStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start-near-hover\"), isRangeStart(currentDate) && (isSameCell(prevDate, hoverStart) || isInRange(generateConfig, hoverStart, hoverEnd, prevDate))), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end-near-hover\"), isRangeEnd(currentDate) && (isSameCell(nextDate, hoverEnd) || isInRange(generateConfig, hoverStart, hoverEnd, nextDate))), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover\"), isRangeHovered), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-start\"), isHoverStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-end\"), isHoverEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-start\"), isHoverEdgeStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-end\"), isHoverEdgeEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-start-near-range\"), isHoverEdgeStart && isSameCell(prevDate, rangeEnd)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-end-near-range\"), isHoverEdgeEnd && isSameCell(nextDate, rangeStart)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-today\"), isSameCell(today, currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-selected\"), isSameCell(value, currentDate)), _ref2;\n }\n return getClassName;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { WEEK_DAY_COUNT, getWeekStartDate, isSameDate, isSameMonth, formatValue } from '../../utils/dateUtil';\nimport RangeContext from '../../RangeContext';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport PanelBody from '../PanelBody';\nfunction DateBody(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n prefixColumn = props.prefixColumn,\n locale = props.locale,\n rowCount = props.rowCount,\n viewDate = props.viewDate,\n value = props.value,\n dateRender = props.dateRender;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var baseDate = getWeekStartDate(locale.locale, generateConfig, viewDate);\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale.locale);\n var today = generateConfig.getNow();\n // ============================== Header ==============================\n var headerCells = [];\n var weekDaysLocale = locale.shortWeekDays || (generateConfig.locale.getShortWeekDays ? generateConfig.locale.getShortWeekDays(locale.locale) : []);\n if (prefixColumn) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: \"empty\",\n \"aria-label\": \"empty cell\"\n }));\n }\n for (var i = 0; i < WEEK_DAY_COUNT; i += 1) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: i\n }, weekDaysLocale[(i + weekFirstDay) % WEEK_DAY_COUNT]));\n }\n // =============================== Body ===============================\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n today: today,\n value: value,\n generateConfig: generateConfig,\n rangedValue: prefixColumn ? null : rangedValue,\n hoverRangedValue: prefixColumn ? null : hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameDate(generateConfig, current, target);\n },\n isInView: function isInView(date) {\n return isSameMonth(generateConfig, date, viewDate);\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addDate(date, offset);\n }\n });\n var getCellNode = dateRender ? function (date) {\n return dateRender(date, today);\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: rowCount,\n colNum: WEEK_DAY_COUNT,\n baseDate: baseDate,\n getCellNode: getCellNode,\n getCellText: generateConfig.getDate,\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addDate,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-MM-DD',\n generateConfig: generateConfig\n });\n },\n headerCells: headerCells\n }));\n}\nexport default DateBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from '../Header';\nimport PanelContext from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nfunction DateHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextMonth = props.onNextMonth,\n onPrevMonth = props.onPrevMonth,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick,\n onMonthClick = props.onMonthClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var month = generateConfig.getMonth(viewDate);\n // =================== Month & Year ===================\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"year\",\n onClick: onYearClick,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n var monthNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"month\",\n onClick: onMonthClick,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-month-btn\")\n }, locale.monthFormat ? formatValue(viewDate, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[month]);\n var monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onPrev: onPrevMonth,\n onNext: onNextMonth,\n onSuperNext: onNextYear\n }), monthYearNodes);\n}\nexport default DateHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport DateBody from './DateBody';\nimport DateHeader from './DateHeader';\nimport { WEEK_DAY_COUNT } from '../../utils/dateUtil';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nvar DATE_ROW_COUNT = 6;\nfunction DatePanel(props) {\n var prefixCls = props.prefixCls,\n _props$panelName = props.panelName,\n panelName = _props$panelName === void 0 ? 'date' : _props$panelName,\n keyboardConfig = props.keyboardConfig,\n active = props.active,\n operationRef = props.operationRef,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onViewDateChange = props.onViewDateChange,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-\").concat(panelName, \"-panel\");\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, _objectSpread({\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addDate(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addDate(value || viewDate, diff * WEEK_DAY_COUNT), 'key');\n },\n onPageUpDown: function onPageUpDown(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n }\n }, keyboardConfig));\n }\n };\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n var onMonthChange = function onMonthChange(diff) {\n var newDate = generateConfig.addMonth(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), active))\n }, /*#__PURE__*/React.createElement(DateHeader, _extends({}, props, {\n prefixCls: prefixCls,\n value: value,\n viewDate: viewDate\n // View Operation\n ,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onPrevMonth: function onPrevMonth() {\n onMonthChange(-1);\n },\n onNextMonth: function onNextMonth() {\n onMonthChange(1);\n },\n onMonthClick: function onMonthClick() {\n onPanelChange('month', viewDate);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(DateBody, _extends({}, props, {\n onSelect: function onSelect(date) {\n return _onSelect(date, 'mouse');\n },\n prefixCls: prefixCls,\n value: value,\n viewDate: viewDate,\n rowCount: DATE_ROW_COUNT\n })));\n}\nexport default DatePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport DatePanel from '../DatePanel';\nimport TimePanel from '../TimePanel';\nimport { tuple } from '../../utils/miscUtil';\nimport { setDateTime as setTime } from '../../utils/timeUtil';\nvar ACTIVE_PANEL = tuple('date', 'time');\nfunction DatetimePanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n generateConfig = props.generateConfig,\n value = props.value,\n defaultValue = props.defaultValue,\n disabledTime = props.disabledTime,\n showTime = props.showTime,\n onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-datetime-panel\");\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activePanel = _React$useState2[0],\n setActivePanel = _React$useState2[1];\n var dateOperationRef = React.useRef({});\n var timeOperationRef = React.useRef({});\n var timeProps = _typeof(showTime) === 'object' ? _objectSpread({}, showTime) : {};\n // ======================= Keyboard =======================\n function getNextActive(offset) {\n var activeIndex = ACTIVE_PANEL.indexOf(activePanel) + offset;\n var nextActivePanel = ACTIVE_PANEL[activeIndex] || null;\n return nextActivePanel;\n }\n var onBlur = function onBlur(e) {\n if (timeOperationRef.current.onBlur) {\n timeOperationRef.current.onBlur(e);\n }\n setActivePanel(null);\n };\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n // Switch active panel\n if (event.which === KeyCode.TAB) {\n var nextActivePanel = getNextActive(event.shiftKey ? -1 : 1);\n setActivePanel(nextActivePanel);\n if (nextActivePanel) {\n event.preventDefault();\n }\n return true;\n }\n // Operate on current active panel\n if (activePanel) {\n var ref = activePanel === 'date' ? dateOperationRef : timeOperationRef;\n if (ref.current && ref.current.onKeyDown) {\n ref.current.onKeyDown(event);\n }\n return true;\n }\n // Switch first active panel if operate without panel\n if ([KeyCode.LEFT, KeyCode.RIGHT, KeyCode.UP, KeyCode.DOWN].includes(event.which)) {\n setActivePanel('date');\n return true;\n }\n return false;\n },\n onBlur: onBlur,\n onClose: onBlur\n };\n // ======================== Events ========================\n var onInternalSelect = function onInternalSelect(date, source) {\n var selectedDate = date;\n if (source === 'date' && !value && timeProps.defaultValue) {\n // Date with time defaultValue\n selectedDate = generateConfig.setHour(selectedDate, generateConfig.getHour(timeProps.defaultValue));\n selectedDate = generateConfig.setMinute(selectedDate, generateConfig.getMinute(timeProps.defaultValue));\n selectedDate = generateConfig.setSecond(selectedDate, generateConfig.getSecond(timeProps.defaultValue));\n } else if (source === 'time' && !value && defaultValue) {\n selectedDate = generateConfig.setYear(selectedDate, generateConfig.getYear(defaultValue));\n selectedDate = generateConfig.setMonth(selectedDate, generateConfig.getMonth(defaultValue));\n selectedDate = generateConfig.setDate(selectedDate, generateConfig.getDate(defaultValue));\n }\n if (onSelect) {\n onSelect(selectedDate, 'mouse');\n }\n };\n // ======================== Render ========================\n var disabledTimes = disabledTime ? disabledTime(value || null) : {};\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), activePanel))\n }, /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n operationRef: dateOperationRef,\n active: activePanel === 'date',\n onSelect: function onSelect(date) {\n onInternalSelect(setTime(generateConfig, date, !value && _typeof(showTime) === 'object' ? showTime.defaultValue : null), 'date');\n }\n })), /*#__PURE__*/React.createElement(TimePanel, _extends({}, props, {\n format: undefined\n }, timeProps, disabledTimes, {\n disabledTime: null,\n defaultValue: undefined,\n operationRef: timeOperationRef,\n active: activePanel === 'time',\n onSelect: function onSelect(date) {\n onInternalSelect(date, 'time');\n }\n })));\n}\nexport default DatetimePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport DatePanel from '../DatePanel';\nimport { isSameWeek } from '../../utils/dateUtil';\nfunction WeekPanel(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value;\n // Render additional column\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var prefixColumn = function prefixColumn(date) {\n return /*#__PURE__*/React.createElement(\"td\", {\n key: \"week\",\n className: classNames(cellPrefixCls, \"\".concat(cellPrefixCls, \"-week\"))\n }, generateConfig.locale.getWeek(locale.locale, date));\n };\n // Add row className\n var rowPrefixCls = \"\".concat(prefixCls, \"-week-panel-row\");\n var rowClassName = function rowClassName(date) {\n return classNames(rowPrefixCls, _defineProperty({}, \"\".concat(rowPrefixCls, \"-selected\"), isSameWeek(generateConfig, locale.locale, value, date)));\n };\n return /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n panelName: \"week\",\n prefixColumn: prefixColumn,\n rowClassName: rowClassName,\n keyboardConfig: {\n onLeftRight: null\n }\n }));\n}\nexport default WeekPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from '../Header';\nimport PanelContext from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nfunction MonthHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onSuperNext: onNextYear\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onYearClick,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n })));\n}\nexport default MonthHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { formatValue, isSameMonth } from '../../utils/dateUtil';\nimport RangeContext from '../../RangeContext';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport PanelBody from '../PanelBody';\nexport var MONTH_COL_COUNT = 3;\nvar MONTH_ROW_COUNT = 4;\nfunction MonthBody(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n value = props.value,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig,\n monthCellRender = props.monthCellRender;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameMonth(generateConfig, current, target);\n },\n isInView: function isInView() {\n return true;\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addMonth(date, offset);\n }\n });\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var baseMonth = generateConfig.setMonth(viewDate, 0);\n var getCellNode = monthCellRender ? function (date) {\n return monthCellRender(date, locale);\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: MONTH_ROW_COUNT,\n colNum: MONTH_COL_COUNT,\n baseDate: baseMonth,\n getCellNode: getCellNode,\n getCellText: function getCellText(date) {\n return locale.monthFormat ? formatValue(date, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[generateConfig.getMonth(date)];\n },\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addMonth,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-MM',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default MonthBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport MonthHeader from './MonthHeader';\nimport MonthBody, { MONTH_COL_COUNT } from './MonthBody';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nfunction MonthPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-month-panel\");\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff * MONTH_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange('date', value || viewDate);\n }\n });\n }\n };\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(MonthHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(MonthBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n _onSelect(date, 'mouse');\n onPanelChange('date', date);\n }\n })));\n}\nexport default MonthPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from '../Header';\nimport PanelContext from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nfunction QuarterHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onSuperNext: onNextYear\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onYearClick,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n })));\n}\nexport default QuarterHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { formatValue, isSameQuarter } from '../../utils/dateUtil';\nimport RangeContext from '../../RangeContext';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport PanelBody from '../PanelBody';\nexport var QUARTER_COL_COUNT = 4;\nvar QUARTER_ROW_COUNT = 1;\nfunction QuarterBody(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n value = props.value,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameQuarter(generateConfig, current, target);\n },\n isInView: function isInView() {\n return true;\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n }\n });\n var baseQuarter = generateConfig.setDate(generateConfig.setMonth(viewDate, 0), 1);\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: QUARTER_ROW_COUNT,\n colNum: QUARTER_COL_COUNT,\n baseDate: baseQuarter,\n getCellText: function getCellText(date) {\n return formatValue(date, {\n locale: locale,\n format: locale.quarterFormat || '[Q]Q',\n generateConfig: generateConfig\n });\n },\n getCellClassName: getCellClassName,\n getCellDate: function getCellDate(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n },\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-[Q]Q',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default QuarterBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport QuarterHeader from './QuarterHeader';\nimport QuarterBody from './QuarterBody';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nfunction QuarterPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-quarter-panel\");\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff * 3), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n }\n });\n }\n };\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(QuarterHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(QuarterBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n _onSelect(date, 'mouse');\n }\n })));\n}\nexport default QuarterPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from '../Header';\nimport { YEAR_DECADE_COUNT } from '.';\nimport PanelContext from '../../PanelContext';\nfunction YearHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n onPrevDecade = props.onPrevDecade,\n onNextDecade = props.onNextDecade,\n onDecadeClick = props.onDecadeClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n var endYear = startYear + YEAR_DECADE_COUNT - 1;\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevDecade,\n onSuperNext: onNextDecade\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onDecadeClick,\n className: \"\".concat(prefixCls, \"-decade-btn\")\n }, startYear, \"-\", endYear));\n}\nexport default YearHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { YEAR_DECADE_COUNT } from '.';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport { formatValue, isSameYear } from '../../utils/dateUtil';\nimport RangeContext from '../../RangeContext';\nimport PanelBody from '../PanelBody';\nexport var YEAR_COL_COUNT = 3;\nvar YEAR_ROW_COUNT = 4;\nfunction YearBody(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n viewDate = props.viewDate,\n locale = props.locale,\n generateConfig = props.generateConfig;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var yearPrefixCls = \"\".concat(prefixCls, \"-cell\");\n // =============================== Year ===============================\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n var endYear = startYear + YEAR_DECADE_COUNT - 1;\n var baseYear = generateConfig.setYear(viewDate, startYear - Math.ceil((YEAR_COL_COUNT * YEAR_ROW_COUNT - YEAR_DECADE_COUNT) / 2));\n var isInView = function isInView(date) {\n var currentYearNumber = generateConfig.getYear(date);\n return startYear <= currentYearNumber && currentYearNumber <= endYear;\n };\n var getCellClassName = useCellClassName({\n cellPrefixCls: yearPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameYear(generateConfig, current, target);\n },\n isInView: isInView,\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addYear(date, offset);\n }\n });\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: YEAR_ROW_COUNT,\n colNum: YEAR_COL_COUNT,\n baseDate: baseYear,\n getCellText: generateConfig.getYear,\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addYear,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default YearBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport YearHeader from './YearHeader';\nimport YearBody, { YEAR_COL_COUNT } from './YearBody';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nexport var YEAR_DECADE_COUNT = 10;\nfunction YearPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n sourceMode = props.sourceMode,\n _onSelect = props.onSelect,\n onPanelChange = props.onPanelChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-year-panel\");\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_DECADE_COUNT), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange(sourceMode === 'date' ? 'date' : 'month', value || viewDate);\n }\n });\n }\n };\n // ==================== View Operation ====================\n var onDecadeChange = function onDecadeChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff * 10);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(YearHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevDecade: function onPrevDecade() {\n onDecadeChange(-1);\n },\n onNextDecade: function onNextDecade() {\n onDecadeChange(1);\n },\n onDecadeClick: function onDecadeClick() {\n onPanelChange('decade', viewDate);\n }\n })), /*#__PURE__*/React.createElement(YearBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n onPanelChange(sourceMode === 'date' ? 'date' : 'month', date);\n _onSelect(date, 'mouse');\n }\n })));\n}\nexport default YearPanel;","import * as React from 'react';\nexport default function getExtraFooter(prefixCls, mode, renderExtraFooter) {\n if (!renderExtraFooter) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer-extra\")\n }, renderExtraFooter(mode));\n}","import * as React from 'react';\nexport default function getRanges(_ref) {\n var prefixCls = _ref.prefixCls,\n _ref$rangeList = _ref.rangeList,\n rangeList = _ref$rangeList === void 0 ? [] : _ref$rangeList,\n _ref$components = _ref.components,\n components = _ref$components === void 0 ? {} : _ref$components,\n needConfirmButton = _ref.needConfirmButton,\n onNow = _ref.onNow,\n onOk = _ref.onOk,\n okDisabled = _ref.okDisabled,\n showNow = _ref.showNow,\n locale = _ref.locale;\n var presetNode;\n var okNode;\n if (rangeList.length) {\n var Item = components.rangeItem || 'span';\n presetNode = /*#__PURE__*/React.createElement(React.Fragment, null, rangeList.map(function (_ref2) {\n var label = _ref2.label,\n onClick = _ref2.onClick,\n onMouseEnter = _ref2.onMouseEnter,\n onMouseLeave = _ref2.onMouseLeave;\n return /*#__PURE__*/React.createElement(\"li\", {\n key: label,\n className: \"\".concat(prefixCls, \"-preset\")\n }, /*#__PURE__*/React.createElement(Item, {\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, label));\n }));\n }\n if (needConfirmButton) {\n var Button = components.button || 'button';\n if (onNow && !presetNode && showNow !== false) {\n presetNode = /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-now\")\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-now-btn\"),\n onClick: onNow\n }, locale.now));\n }\n okNode = needConfirmButton && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-ok\")\n }, /*#__PURE__*/React.createElement(Button, {\n disabled: okDisabled,\n onClick: onOk\n }, locale.ok));\n }\n if (!presetNode && !okNode) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-ranges\")\n }, presetNode, okNode);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Logic:\n * When `mode` === `picker`,\n * click will trigger `onSelect` (if value changed trigger `onChange` also).\n * Panel change will not trigger `onSelect` but trigger `onPanelChange`\n */\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TimePanel from './panels/TimePanel';\nimport DatetimePanel from './panels/DatetimePanel';\nimport DatePanel from './panels/DatePanel';\nimport WeekPanel from './panels/WeekPanel';\nimport MonthPanel from './panels/MonthPanel';\nimport QuarterPanel from './panels/QuarterPanel';\nimport YearPanel from './panels/YearPanel';\nimport DecadePanel from './panels/DecadePanel';\nimport { WEEK_DAY_COUNT, isEqual } from './utils/dateUtil';\nimport PanelContext from './PanelContext';\nimport { PickerModeMap } from './utils/uiUtil';\nimport { MONTH_COL_COUNT } from './panels/MonthPanel/MonthBody';\nimport RangeContext from './RangeContext';\nimport getExtraFooter from './utils/getExtraFooter';\nimport getRanges from './utils/getRanges';\nimport { getLowerBoundTime, setDateTime, setTime } from './utils/timeUtil';\n// Calendar picker type\nvar CALENDAR_PANEL_MODE = ['date', 'month'];\nfunction PickerPanel(props) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,\n className = props.className,\n style = props.style,\n locale = props.locale,\n generateConfig = props.generateConfig,\n value = props.value,\n defaultValue = props.defaultValue,\n pickerValue = props.pickerValue,\n defaultPickerValue = props.defaultPickerValue,\n disabledDate = props.disabledDate,\n mode = props.mode,\n _props$picker = props.picker,\n picker = _props$picker === void 0 ? 'date' : _props$picker,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n showNow = props.showNow,\n showTime = props.showTime,\n showToday = props.showToday,\n renderExtraFooter = props.renderExtraFooter,\n hideHeader = props.hideHeader,\n onSelect = props.onSelect,\n onChange = props.onChange,\n onPanelChange = props.onPanelChange,\n onMouseDown = props.onMouseDown,\n onPickerValueChange = props.onPickerValueChange,\n _onOk = props.onOk,\n components = props.components,\n direction = props.direction,\n _props$hourStep = props.hourStep,\n hourStep = _props$hourStep === void 0 ? 1 : _props$hourStep,\n _props$minuteStep = props.minuteStep,\n minuteStep = _props$minuteStep === void 0 ? 1 : _props$minuteStep,\n _props$secondStep = props.secondStep,\n secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep;\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n var isHourStepValid = 24 % hourStep === 0;\n var isMinuteStepValid = 60 % minuteStep === 0;\n var isSecondStepValid = 60 % secondStep === 0;\n if (process.env.NODE_ENV !== 'production') {\n warning(!value || generateConfig.isValidate(value), 'Invalidate date pass to `value`.');\n warning(!value || generateConfig.isValidate(value), 'Invalidate date pass to `defaultValue`.');\n warning(isHourStepValid, \"`hourStep` \".concat(hourStep, \" is invalid. It should be a factor of 24.\"));\n warning(isMinuteStepValid, \"`minuteStep` \".concat(minuteStep, \" is invalid. It should be a factor of 60.\"));\n warning(isSecondStepValid, \"`secondStep` \".concat(secondStep, \" is invalid. It should be a factor of 60.\"));\n }\n // ============================ State =============================\n var panelContext = React.useContext(PanelContext);\n var operationRef = panelContext.operationRef,\n panelDivRef = panelContext.panelRef,\n onContextSelect = panelContext.onSelect,\n hideRanges = panelContext.hideRanges,\n defaultOpenValue = panelContext.defaultOpenValue;\n var _React$useContext = React.useContext(RangeContext),\n inRange = _React$useContext.inRange,\n panelPosition = _React$useContext.panelPosition,\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var panelRef = React.useRef({});\n // Handle init logic\n var initRef = React.useRef(true);\n // Value\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue,\n postState: function postState(val) {\n if (!val && defaultOpenValue && picker === 'time') {\n return defaultOpenValue;\n }\n return val;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n // View date control\n var _useMergedState3 = useMergedState(null, {\n value: pickerValue,\n defaultValue: defaultPickerValue || mergedValue,\n postState: function postState(date) {\n var now = generateConfig.getNow();\n if (!date) {\n return now;\n }\n // When value is null and set showTime\n if (!mergedValue && showTime) {\n var defaultDateObject = _typeof(showTime) === 'object' ? showTime.defaultValue : defaultValue;\n return setDateTime(generateConfig, Array.isArray(date) ? date[0] : date, defaultDateObject || now);\n }\n return Array.isArray(date) ? date[0] : date;\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n viewDate = _useMergedState4[0],\n setInnerViewDate = _useMergedState4[1];\n var setViewDate = function setViewDate(date) {\n setInnerViewDate(date);\n if (onPickerValueChange) {\n onPickerValueChange(date);\n }\n };\n // Panel control\n var getInternalNextMode = function getInternalNextMode(nextMode) {\n var getNextMode = PickerModeMap[picker];\n if (getNextMode) {\n return getNextMode(nextMode);\n }\n return nextMode;\n };\n // Save panel is changed from which panel\n var _useMergedState5 = useMergedState(function () {\n if (picker === 'time') {\n return 'time';\n }\n return getInternalNextMode('date');\n }, {\n value: mode\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedMode = _useMergedState6[0],\n setInnerMode = _useMergedState6[1];\n React.useEffect(function () {\n setInnerMode(picker);\n }, [picker]);\n var _React$useState = React.useState(function () {\n return mergedMode;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n sourceMode = _React$useState2[0],\n setSourceMode = _React$useState2[1];\n var onInternalPanelChange = function onInternalPanelChange(newMode, viewValue) {\n var nextMode = getInternalNextMode(newMode || mergedMode);\n setSourceMode(mergedMode);\n setInnerMode(nextMode);\n if (onPanelChange && (mergedMode !== nextMode || isEqual(generateConfig, viewDate, viewDate))) {\n onPanelChange(viewValue, nextMode);\n }\n };\n var triggerSelect = function triggerSelect(date, type) {\n var forceTriggerSelect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (mergedMode === picker || forceTriggerSelect) {\n setInnerValue(date);\n if (onSelect) {\n onSelect(date);\n }\n if (onContextSelect) {\n onContextSelect(date, type);\n }\n if (onChange && !isEqual(generateConfig, date, mergedValue) && !(disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date))) {\n onChange(date);\n }\n }\n };\n var isSelectable = function isSelectable(key) {\n if (CALENDAR_PANEL_MODE.includes(mergedMode)) {\n var date;\n var operationFnc;\n var isDateMode = mergedMode === 'date';\n if (key === KeyCode.PAGE_UP || key === KeyCode.PAGE_DOWN) {\n operationFnc = isDateMode ? generateConfig.addMonth : generateConfig.addYear;\n } else {\n operationFnc = isDateMode ? generateConfig.addDate : generateConfig.addMonth;\n }\n switch (key) {\n case KeyCode.LEFT:\n case KeyCode.PAGE_UP:\n date = operationFnc(viewDate, -1);\n break;\n case KeyCode.RIGHT:\n case KeyCode.PAGE_DOWN:\n date = operationFnc(viewDate, 1);\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n date = operationFnc(viewDate, Number(\"\".concat(key === KeyCode.UP ? '-' : '').concat(isDateMode ? WEEK_DAY_COUNT : MONTH_COL_COUNT)));\n break;\n }\n if (date) {\n return !(disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date));\n }\n }\n return true;\n };\n // ========================= Interactive ==========================\n var onInternalKeyDown = function onInternalKeyDown(e) {\n if (panelRef.current && panelRef.current.onKeyDown) {\n var selectable = true;\n var which = e.which;\n if ([KeyCode.LEFT, KeyCode.RIGHT, KeyCode.UP, KeyCode.DOWN, KeyCode.PAGE_UP, KeyCode.PAGE_DOWN, KeyCode.ENTER].includes(which)) {\n e.preventDefault();\n if (which !== KeyCode.ENTER && tabIndex === 0) {\n selectable = isSelectable(which);\n }\n }\n // Cannot use keyboard to select disabled date\n if (selectable) {\n return panelRef.current.onKeyDown(e);\n }\n }\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Panel not correct handle keyDown event. Please help to fire issue about this.');\n return false;\n }\n /* eslint-enable no-lone-blocks */\n };\n\n var onInternalBlur = function onInternalBlur(e) {\n if (panelRef.current && panelRef.current.onBlur) {\n panelRef.current.onBlur(e);\n }\n };\n if (operationRef && panelPosition !== 'right') {\n operationRef.current = {\n onKeyDown: onInternalKeyDown,\n onClose: function onClose() {\n if (panelRef.current && panelRef.current.onClose) {\n panelRef.current.onClose();\n }\n }\n };\n }\n // ============================ Effect ============================\n React.useEffect(function () {\n if (value && !initRef.current) {\n setInnerViewDate(value);\n }\n }, [value]);\n React.useEffect(function () {\n initRef.current = false;\n }, []);\n // ============================ Panels ============================\n var panelNode;\n var pickerProps = _objectSpread(_objectSpread({}, props), {}, {\n operationRef: panelRef,\n prefixCls: prefixCls,\n viewDate: viewDate,\n value: mergedValue,\n onViewDateChange: setViewDate,\n sourceMode: sourceMode,\n onPanelChange: onInternalPanelChange,\n disabledDate: disabledDate\n });\n delete pickerProps.onChange;\n delete pickerProps.onSelect;\n switch (mergedMode) {\n case 'decade':\n panelNode = /*#__PURE__*/React.createElement(DecadePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'year':\n panelNode = /*#__PURE__*/React.createElement(YearPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'month':\n panelNode = /*#__PURE__*/React.createElement(MonthPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'quarter':\n panelNode = /*#__PURE__*/React.createElement(QuarterPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'week':\n panelNode = /*#__PURE__*/React.createElement(WeekPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'time':\n delete pickerProps.showTime;\n panelNode = /*#__PURE__*/React.createElement(TimePanel, _extends({}, pickerProps, _typeof(showTime) === 'object' ? showTime : null, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n default:\n if (showTime) {\n panelNode = /*#__PURE__*/React.createElement(DatetimePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n } else {\n panelNode = /*#__PURE__*/React.createElement(DatePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n }\n }\n // ============================ Footer ============================\n var extraFooter;\n var rangesNode;\n var onNow = function onNow() {\n var now = generateConfig.getNow();\n var lowerBoundTime = getLowerBoundTime(generateConfig.getHour(now), generateConfig.getMinute(now), generateConfig.getSecond(now), isHourStepValid ? hourStep : 1, isMinuteStepValid ? minuteStep : 1, isSecondStepValid ? secondStep : 1);\n var adjustedNow = setTime(generateConfig, now, lowerBoundTime[0],\n // hour\n lowerBoundTime[1],\n // minute\n lowerBoundTime[2]);\n triggerSelect(adjustedNow, 'submit');\n };\n if (!hideRanges) {\n extraFooter = getExtraFooter(prefixCls, mergedMode, renderExtraFooter);\n rangesNode = getRanges({\n prefixCls: prefixCls,\n components: components,\n needConfirmButton: needConfirmButton,\n okDisabled: !mergedValue || disabledDate && disabledDate(mergedValue),\n locale: locale,\n showNow: showNow,\n onNow: needConfirmButton && onNow,\n onOk: function onOk() {\n if (mergedValue) {\n triggerSelect(mergedValue, 'submit', true);\n if (_onOk) {\n _onOk(mergedValue);\n }\n }\n }\n });\n }\n var todayNode;\n if (showToday && mergedMode === 'date' && picker === 'date' && !showTime) {\n var now = generateConfig.getNow();\n var todayCls = \"\".concat(prefixCls, \"-today-btn\");\n var disabled = disabledDate && disabledDate(now);\n todayNode = /*#__PURE__*/React.createElement(\"a\", {\n className: classNames(todayCls, disabled && \"\".concat(todayCls, \"-disabled\")),\n \"aria-disabled\": disabled,\n onClick: function onClick() {\n if (!disabled) {\n triggerSelect(now, 'mouse', true);\n }\n }\n }, locale.today);\n }\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: _objectSpread(_objectSpread({}, panelContext), {}, {\n mode: mergedMode,\n hideHeader: 'hideHeader' in props ? hideHeader : panelContext.hideHeader,\n hidePrevBtn: inRange && panelPosition === 'right',\n hideNextBtn: inRange && panelPosition === 'left'\n })\n }, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: tabIndex,\n className: classNames(\"\".concat(prefixCls, \"-panel\"), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-has-range\"), rangedValue && rangedValue[0] && rangedValue[1]), _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-has-range-hover\"), hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1]), _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-rtl\"), direction === 'rtl'), _classNames)),\n style: style,\n onKeyDown: onInternalKeyDown,\n onBlur: onInternalBlur,\n onMouseDown: onMouseDown,\n ref: panelDivRef\n }, panelNode, extraFooter || rangesNode || todayNode ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraFooter, rangesNode, todayNode) : null));\n}\nexport default PickerPanel;\n/* eslint-enable */","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Trigger from 'rc-trigger';\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n }\n};\nfunction PickerTrigger(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n popupElement = _ref.popupElement,\n popupStyle = _ref.popupStyle,\n visible = _ref.visible,\n dropdownClassName = _ref.dropdownClassName,\n dropdownAlign = _ref.dropdownAlign,\n transitionName = _ref.transitionName,\n getPopupContainer = _ref.getPopupContainer,\n children = _ref.children,\n range = _ref.range,\n popupPlacement = _ref.popupPlacement,\n direction = _ref.direction;\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var getPopupPlacement = function getPopupPlacement() {\n if (popupPlacement !== undefined) {\n return popupPlacement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n return /*#__PURE__*/React.createElement(Trigger, {\n showAction: [],\n hideAction: [],\n popupPlacement: getPopupPlacement(),\n builtinPlacements: BUILT_IN_PLACEMENTS,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: transitionName,\n popup: popupElement,\n popupAlign: dropdownAlign,\n popupVisible: visible,\n popupClassName: classNames(dropdownClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"-range\"), range), _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"-rtl\"), direction === 'rtl'), _classNames)),\n popupStyle: popupStyle,\n getPopupContainer: getPopupContainer\n }, children);\n}\nexport default PickerTrigger;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { addGlobalMouseDownEvent, getTargetFromEvent } from '../utils/uiUtil';\nexport default function usePickerInput(_ref) {\n var open = _ref.open,\n value = _ref.value,\n isClickOutside = _ref.isClickOutside,\n triggerOpen = _ref.triggerOpen,\n forwardKeyDown = _ref.forwardKeyDown,\n _onKeyDown = _ref.onKeyDown,\n blurToCancel = _ref.blurToCancel,\n onSubmit = _ref.onSubmit,\n onCancel = _ref.onCancel,\n _onFocus = _ref.onFocus,\n _onBlur = _ref.onBlur,\n currentFocusedKey = _ref.currentFocusedKey,\n _ref$key = _ref.key,\n key = _ref$key === void 0 ? 'start' : _ref$key;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n typing = _useState2[0],\n setTyping = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n var delayBlurTimer = useRef();\n /**\n * We will prevent blur to handle open event when user click outside,\n * since this will repeat trigger `onOpenChange` event.\n */\n var preventBlurRef = useRef(false);\n var valueChangedRef = useRef(false);\n var preventDefaultRef = useRef(false);\n var inputProps = {\n onMouseDown: function onMouseDown() {\n setTyping(true);\n triggerOpen(true);\n },\n onKeyDown: function onKeyDown(e) {\n var preventDefault = function preventDefault() {\n preventDefaultRef.current = true;\n };\n _onKeyDown(e, preventDefault);\n if (preventDefaultRef.current) return;\n switch (e.which) {\n case KeyCode.ENTER:\n {\n if (!open) {\n triggerOpen(true);\n } else if (onSubmit() !== false) {\n setTyping(true);\n }\n e.preventDefault();\n return;\n }\n case KeyCode.TAB:\n {\n if (typing && open && !e.shiftKey) {\n setTyping(false);\n e.preventDefault();\n } else if (!typing && open) {\n if (!forwardKeyDown(e) && e.shiftKey) {\n setTyping(true);\n e.preventDefault();\n }\n }\n return;\n }\n case KeyCode.ESC:\n {\n setTyping(true);\n onCancel();\n return;\n }\n }\n if (!open && ![KeyCode.SHIFT].includes(e.which)) {\n triggerOpen(true);\n } else if (!typing) {\n // Let popup panel handle keyboard\n forwardKeyDown(e);\n }\n },\n onFocus: function onFocus(e) {\n setTyping(true);\n setFocused(true);\n if (currentFocusedKey) {\n currentFocusedKey.current = key;\n }\n clearTimeout(delayBlurTimer.current);\n if (_onFocus) {\n _onFocus(e);\n }\n },\n onBlur: function onBlur(e) {\n if (preventBlurRef.current || !isClickOutside(document.activeElement)) {\n preventBlurRef.current = false;\n return;\n }\n if (blurToCancel) {\n setTimeout(function () {\n var _document = document,\n activeElement = _document.activeElement;\n while (activeElement && activeElement.shadowRoot) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n if (isClickOutside(activeElement)) {\n onCancel();\n }\n }, 0);\n } else if (open) {\n triggerOpen(false);\n if (valueChangedRef.current) {\n onSubmit();\n }\n }\n setFocused(false);\n if (currentFocusedKey) {\n currentFocusedKey.current = '';\n // Delay to prevent 'range' focus transitions from firing resulting in incorrect out-of-focus events\n delayBlurTimer.current = setTimeout(function () {\n // Prevent the 'blur' event from firing when there is currently a focused input\n if (currentFocusedKey.current) {\n return;\n }\n _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);\n }, 100);\n } else {\n _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);\n }\n }\n };\n // check if value changed\n useEffect(function () {\n valueChangedRef.current = false;\n }, [open]);\n useEffect(function () {\n valueChangedRef.current = true;\n }, [value]);\n // Global click handler\n useEffect(function () {\n return addGlobalMouseDownEvent(function (e) {\n var target = getTargetFromEvent(e);\n var clickedOutside = isClickOutside(target);\n if (open) {\n if (!clickedOutside) {\n preventBlurRef.current = true;\n // Always set back in case `onBlur` prevented by user\n requestAnimationFrame(function () {\n preventBlurRef.current = false;\n });\n } else if (!focused || clickedOutside) {\n triggerOpen(false);\n }\n } else if (focused && !clickedOutside) {\n preventBlurRef.current = true;\n }\n });\n });\n useEffect(function () {\n return function () {\n return clearTimeout(delayBlurTimer.current);\n };\n }, []);\n return [inputProps, {\n focused: focused,\n typing: typing\n }];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useTextValueMapping(_ref) {\n var valueTexts = _ref.valueTexts,\n onTextChange = _ref.onTextChange;\n var _React$useState = React.useState(''),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n text = _React$useState2[0],\n setInnerText = _React$useState2[1];\n var valueTextsRef = React.useRef([]);\n valueTextsRef.current = valueTexts;\n function triggerTextChange(value) {\n setInnerText(value);\n onTextChange(value);\n }\n function resetText() {\n setInnerText(valueTextsRef.current[0]);\n }\n React.useEffect(function () {\n if (valueTexts.every(function (valText) {\n return valText !== text;\n })) {\n resetText();\n }\n }, [valueTexts.join('||')]);\n return [text, triggerTextChange, resetText];\n}","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport shallowEqual from \"rc-util/es/isEqual\";\nimport { formatValue, isEqual } from '../utils/dateUtil';\nexport default function useValueTexts(value, _ref) {\n var formatList = _ref.formatList,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale;\n return useMemo(function () {\n if (!value) {\n return [[''], ''];\n }\n // We will convert data format back to first format\n var firstValueText = '';\n var fullValueTexts = [];\n for (var i = 0; i < formatList.length; i += 1) {\n var format = formatList[i];\n var formatStr = formatValue(value, {\n generateConfig: generateConfig,\n locale: locale,\n format: format\n });\n fullValueTexts.push(formatStr);\n if (i === 0) {\n firstValueText = formatStr;\n }\n }\n return [fullValueTexts, firstValueText];\n }, [value, formatList, locale], function (prev, next) {\n return (\n // Not Same Date\n !isEqual(generateConfig, prev[0], next[0]) ||\n // Not Same format\n !shallowEqual(prev[1], next[1], true) ||\n // Not Same locale\n !shallowEqual(prev[2], next[2], true)\n );\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport useValueTexts from './useValueTexts';\nexport default function useHoverValue(valueText, _ref) {\n var formatList = _ref.formatList,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale;\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n internalSetValue = _useState2[1];\n var raf = useRef(null);\n function setValue(val) {\n var immediately = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n cancelAnimationFrame(raf.current);\n if (immediately) {\n internalSetValue(val);\n return;\n }\n raf.current = requestAnimationFrame(function () {\n internalSetValue(val);\n });\n }\n var _useValueTexts = useValueTexts(value, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n firstText = _useValueTexts2[1];\n function onEnter(date) {\n setValue(date);\n }\n function onLeave() {\n var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n setValue(null, immediately);\n }\n useEffect(function () {\n onLeave(true);\n }, [valueText]);\n useEffect(function () {\n return function () {\n return cancelAnimationFrame(raf.current);\n };\n }, []);\n return [firstText, onEnter, onLeave];\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Removed:\n * - getCalendarContainer: use `getPopupContainer` instead\n * - onOk\n *\n * New Feature:\n * - picker\n * - allowEmpty\n * - selectable\n *\n * Tips: Should add faq about `datetime` mode with `defaultValue`\n */\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport PickerPanel from './PickerPanel';\nimport PickerTrigger from './PickerTrigger';\nimport { formatValue, isEqual, parseValue } from './utils/dateUtil';\nimport getDataOrAriaProps, { toArray } from './utils/miscUtil';\nimport PanelContext from './PanelContext';\nimport { getDefaultFormat, getInputSize, elementsContains } from './utils/uiUtil';\nimport usePickerInput from './hooks/usePickerInput';\nimport useTextValueMapping from './hooks/useTextValueMapping';\nimport useValueTexts from './hooks/useValueTexts';\nimport useHoverValue from './hooks/useHoverValue';\nimport { legacyPropsWarning } from './utils/warnUtil';\nfunction InnerPicker(props) {\n var _classNames2;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,\n id = props.id,\n tabIndex = props.tabIndex,\n style = props.style,\n className = props.className,\n dropdownClassName = props.dropdownClassName,\n dropdownAlign = props.dropdownAlign,\n popupStyle = props.popupStyle,\n transitionName = props.transitionName,\n generateConfig = props.generateConfig,\n locale = props.locale,\n inputReadOnly = props.inputReadOnly,\n allowClear = props.allowClear,\n autoFocus = props.autoFocus,\n showTime = props.showTime,\n _props$picker = props.picker,\n picker = _props$picker === void 0 ? 'date' : _props$picker,\n format = props.format,\n use12Hours = props.use12Hours,\n value = props.value,\n defaultValue = props.defaultValue,\n open = props.open,\n defaultOpen = props.defaultOpen,\n defaultOpenValue = props.defaultOpenValue,\n suffixIcon = props.suffixIcon,\n clearIcon = props.clearIcon,\n disabled = props.disabled,\n disabledDate = props.disabledDate,\n placeholder = props.placeholder,\n getPopupContainer = props.getPopupContainer,\n pickerRef = props.pickerRef,\n panelRender = props.panelRender,\n onChange = props.onChange,\n onOpenChange = props.onOpenChange,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onMouseDown = props.onMouseDown,\n onMouseUp = props.onMouseUp,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onContextMenu = props.onContextMenu,\n onClick = props.onClick,\n _onKeyDown = props.onKeyDown,\n _onSelect = props.onSelect,\n direction = props.direction,\n _props$autoComplete = props.autoComplete,\n autoComplete = _props$autoComplete === void 0 ? 'off' : _props$autoComplete,\n inputRender = props.inputRender;\n var inputRef = React.useRef(null);\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n legacyPropsWarning(props);\n }\n // ============================= State =============================\n var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours));\n // Panel ref\n var panelDivRef = React.useRef(null);\n var inputDivRef = React.useRef(null);\n var containerRef = React.useRef(null);\n // Real value\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n // Selected value\n var _React$useState = React.useState(mergedValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n selectedValue = _React$useState2[0],\n setSelectedValue = _React$useState2[1];\n // Operation ref\n var operationRef = React.useRef(null);\n // Open\n var _useMergedState3 = useMergedState(false, {\n value: open,\n defaultValue: defaultOpen,\n postState: function postState(postOpen) {\n return disabled ? false : postOpen;\n },\n onChange: function onChange(newOpen) {\n if (onOpenChange) {\n onOpenChange(newOpen);\n }\n if (!newOpen && operationRef.current && operationRef.current.onClose) {\n operationRef.current.onClose();\n }\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedOpen = _useMergedState4[0],\n triggerInnerOpen = _useMergedState4[1];\n // ============================= Text ==============================\n var _useValueTexts = useValueTexts(selectedValue, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n valueTexts = _useValueTexts2[0],\n firstValueText = _useValueTexts2[1];\n var _useTextValueMapping = useTextValueMapping({\n valueTexts: valueTexts,\n onTextChange: function onTextChange(newText) {\n var inputDate = parseValue(newText, {\n locale: locale,\n formatList: formatList,\n generateConfig: generateConfig\n });\n if (inputDate && (!disabledDate || !disabledDate(inputDate))) {\n setSelectedValue(inputDate);\n }\n }\n }),\n _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n text = _useTextValueMapping2[0],\n triggerTextChange = _useTextValueMapping2[1],\n resetText = _useTextValueMapping2[2];\n // ============================ Trigger ============================\n var triggerChange = function triggerChange(newValue) {\n setSelectedValue(newValue);\n setInnerValue(newValue);\n if (onChange && !isEqual(generateConfig, mergedValue, newValue)) {\n onChange(newValue, newValue ? formatValue(newValue, {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '');\n }\n };\n var triggerOpen = function triggerOpen(newOpen) {\n if (disabled && newOpen) {\n return;\n }\n triggerInnerOpen(newOpen);\n };\n var forwardKeyDown = function forwardKeyDown(e) {\n if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n // Let popup panel handle keyboard\n return operationRef.current.onKeyDown(e);\n }\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n return false;\n }\n };\n var onInternalClick = function onInternalClick() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, args);\n if (inputRef.current) {\n inputRef.current.focus();\n triggerOpen(true);\n }\n };\n // ============================= Input =============================\n var _usePickerInput = usePickerInput({\n blurToCancel: needConfirmButton,\n open: mergedOpen,\n value: text,\n triggerOpen: triggerOpen,\n forwardKeyDown: forwardKeyDown,\n isClickOutside: function isClickOutside(target) {\n return !elementsContains([panelDivRef.current, inputDivRef.current, containerRef.current], target);\n },\n onSubmit: function onSubmit() {\n if (\n // When user typing disabledDate with keyboard and enter, this value will be empty\n !selectedValue ||\n // Normal disabled check\n disabledDate && disabledDate(selectedValue)) {\n return false;\n }\n triggerChange(selectedValue);\n triggerOpen(false);\n resetText();\n return true;\n },\n onCancel: function onCancel() {\n triggerOpen(false);\n setSelectedValue(mergedValue);\n resetText();\n },\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n },\n onFocus: onFocus,\n onBlur: onBlur\n }),\n _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n inputProps = _usePickerInput2[0],\n _usePickerInput2$ = _usePickerInput2[1],\n focused = _usePickerInput2$.focused,\n typing = _usePickerInput2$.typing;\n // ============================= Sync ==============================\n // Close should sync back with text value\n React.useEffect(function () {\n if (!mergedOpen) {\n setSelectedValue(mergedValue);\n if (!valueTexts.length || valueTexts[0] === '') {\n triggerTextChange('');\n } else if (firstValueText !== text) {\n resetText();\n }\n }\n }, [mergedOpen, valueTexts]);\n // Change picker should sync back with text value\n React.useEffect(function () {\n if (!mergedOpen) {\n resetText();\n }\n }, [picker]);\n // Sync innerValue with control mode\n React.useEffect(function () {\n // Sync select value\n setSelectedValue(mergedValue);\n }, [mergedValue]);\n // ============================ Private ============================\n if (pickerRef) {\n pickerRef.current = {\n focus: function focus() {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n },\n blur: function blur() {\n if (inputRef.current) {\n inputRef.current.blur();\n }\n }\n };\n }\n var _useHoverValue = useHoverValue(text, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n hoverValue = _useHoverValue2[0],\n onEnter = _useHoverValue2[1],\n onLeave = _useHoverValue2[2];\n // ============================= Panel =============================\n var panelProps = _objectSpread(_objectSpread({}, props), {}, {\n className: undefined,\n style: undefined,\n pickerValue: undefined,\n onPickerValueChange: undefined,\n onChange: null\n });\n var panelNode = /*#__PURE__*/React.createElement(PickerPanel, _extends({}, panelProps, {\n generateConfig: generateConfig,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), !typing)),\n value: selectedValue,\n locale: locale,\n tabIndex: -1,\n onSelect: function onSelect(date) {\n _onSelect === null || _onSelect === void 0 ? void 0 : _onSelect(date);\n setSelectedValue(date);\n },\n direction: direction,\n onPanelChange: function onPanelChange(viewDate, mode) {\n var onPanelChange = props.onPanelChange;\n onLeave(true);\n onPanelChange === null || onPanelChange === void 0 ? void 0 : onPanelChange(viewDate, mode);\n }\n }));\n if (panelRender) {\n panelNode = panelRender(panelNode);\n }\n var panel = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-container\"),\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n }, panelNode);\n var suffixNode;\n if (suffixIcon) {\n suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, suffixIcon);\n }\n var clearNode;\n if (allowClear && mergedValue && !disabled) {\n clearNode = /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n onMouseUp: function onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n triggerChange(null);\n triggerOpen(false);\n },\n className: \"\".concat(prefixCls, \"-clear\"),\n role: \"button\"\n }, clearIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-clear-btn\")\n }));\n }\n var mergedInputProps = _objectSpread(_objectSpread(_objectSpread({\n id: id,\n tabIndex: tabIndex,\n disabled: disabled,\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !typing,\n value: hoverValue || text,\n onChange: function onChange(e) {\n triggerTextChange(e.target.value);\n },\n autoFocus: autoFocus,\n placeholder: placeholder,\n ref: inputRef,\n title: text\n }, inputProps), {}, {\n size: getInputSize(picker, formatList[0], generateConfig)\n }, getDataOrAriaProps(props)), {}, {\n autoComplete: autoComplete\n });\n var inputNode = inputRender ? inputRender(mergedInputProps) : /*#__PURE__*/React.createElement(\"input\", mergedInputProps);\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n warning(!defaultOpenValue, '`defaultOpenValue` may confuse user for the current value status. Please use `defaultValue` instead.');\n }\n // ============================ Return =============================\n var onContextSelect = function onContextSelect(date, type) {\n if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n // triggerChange will also update selected values\n triggerChange(date);\n triggerOpen(false);\n }\n };\n var popupPlacement = direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: {\n operationRef: operationRef,\n hideHeader: picker === 'time',\n panelRef: panelDivRef,\n onSelect: onContextSelect,\n open: mergedOpen,\n defaultOpenValue: defaultOpenValue,\n onDateMouseEnter: onEnter,\n onDateMouseLeave: onLeave\n }\n }, /*#__PURE__*/React.createElement(PickerTrigger, {\n visible: mergedOpen,\n popupElement: panel,\n popupStyle: popupStyle,\n prefixCls: prefixCls,\n dropdownClassName: dropdownClassName,\n dropdownAlign: dropdownAlign,\n getPopupContainer: getPopupContainer,\n transitionName: transitionName,\n popupPlacement: popupPlacement,\n direction: direction\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n style: style,\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onContextMenu: onContextMenu,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), _defineProperty({}, \"\".concat(prefixCls, \"-input-placeholder\"), !!hoverValue)),\n ref: inputDivRef\n }, inputNode, suffixNode, clearNode))));\n}\n// Wrap with class component to enable pass generic with instance method\nvar Picker = /*#__PURE__*/function (_React$Component) {\n _inherits(Picker, _React$Component);\n var _super = _createSuper(Picker);\n function Picker() {\n var _this;\n _classCallCheck(this, Picker);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.pickerRef = /*#__PURE__*/React.createRef();\n _this.focus = function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.focus();\n }\n };\n _this.blur = function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.blur();\n }\n };\n return _this;\n }\n _createClass(Picker, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(InnerPicker, _extends({}, this.props, {\n pickerRef: this.pickerRef\n }));\n }\n }]);\n return Picker;\n}(React.Component);\nexport default Picker;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { getValue, updateValues } from '../utils/miscUtil';\nimport { getClosingViewDate, isSameYear, isSameMonth, isSameDecade } from '../utils/dateUtil';\nfunction getStartEndDistance(startDate, endDate, picker, generateConfig) {\n var startNext = getClosingViewDate(startDate, picker, generateConfig, 1);\n function getDistance(compareFunc) {\n if (compareFunc(startDate, endDate)) {\n return 'same';\n }\n if (compareFunc(startNext, endDate)) {\n return 'closing';\n }\n return 'far';\n }\n switch (picker) {\n case 'year':\n return getDistance(function (start, end) {\n return isSameDecade(generateConfig, start, end);\n });\n case 'quarter':\n case 'month':\n return getDistance(function (start, end) {\n return isSameYear(generateConfig, start, end);\n });\n default:\n return getDistance(function (start, end) {\n return isSameMonth(generateConfig, start, end);\n });\n }\n}\nfunction getRangeViewDate(values, index, picker, generateConfig) {\n var startDate = getValue(values, 0);\n var endDate = getValue(values, 1);\n if (index === 0) {\n return startDate;\n }\n if (startDate && endDate) {\n var distance = getStartEndDistance(startDate, endDate, picker, generateConfig);\n switch (distance) {\n case 'same':\n return startDate;\n case 'closing':\n return startDate;\n default:\n return getClosingViewDate(endDate, picker, generateConfig, -1);\n }\n }\n return startDate;\n}\nexport default function useRangeViewDates(_ref) {\n var values = _ref.values,\n picker = _ref.picker,\n defaultDates = _ref.defaultDates,\n generateConfig = _ref.generateConfig;\n var _React$useState = React.useState(function () {\n return [getValue(defaultDates, 0), getValue(defaultDates, 1)];\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n defaultViewDates = _React$useState2[0],\n setDefaultViewDates = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n viewDates = _React$useState4[0],\n setInternalViewDates = _React$useState4[1];\n var startDate = getValue(values, 0);\n var endDate = getValue(values, 1);\n function getViewDate(index) {\n // If set default view date, use it\n if (defaultViewDates[index]) {\n return defaultViewDates[index];\n }\n return getValue(viewDates, index) || getRangeViewDate(values, index, picker, generateConfig) || startDate || endDate || generateConfig.getNow();\n }\n function setViewDate(viewDate, index) {\n if (viewDate) {\n var newViewDates = updateValues(viewDates, viewDate, index);\n // Set view date will clean up default one\n setDefaultViewDates(\n // Should always be an array\n updateValues(defaultViewDates, null, index) || [null, null]);\n // Reset another one when not have value\n var anotherIndex = (index + 1) % 2;\n if (!getValue(values, anotherIndex)) {\n newViewDates = updateValues(newViewDates, viewDate, anotherIndex);\n }\n setInternalViewDates(newViewDates);\n } else if (startDate || endDate) {\n // Reset all when has values when `viewDate` is `null` which means from open trigger\n setInternalViewDates(null);\n }\n }\n return [getViewDate, setViewDate];\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport PickerTrigger from './PickerTrigger';\nimport PickerPanel from './PickerPanel';\nimport usePickerInput from './hooks/usePickerInput';\nimport getDataOrAriaProps, { toArray, getValue, updateValues } from './utils/miscUtil';\nimport { getDefaultFormat, getInputSize, elementsContains } from './utils/uiUtil';\nimport PanelContext from './PanelContext';\nimport { isEqual, getClosingViewDate, isSameDate, isSameWeek, isSameQuarter, formatValue, parseValue } from './utils/dateUtil';\nimport useValueTexts from './hooks/useValueTexts';\nimport useTextValueMapping from './hooks/useTextValueMapping';\nimport RangeContext from './RangeContext';\nimport useRangeDisabled from './hooks/useRangeDisabled';\nimport getExtraFooter from './utils/getExtraFooter';\nimport getRanges from './utils/getRanges';\nimport useRangeViewDates from './hooks/useRangeViewDates';\nimport useHoverValue from './hooks/useHoverValue';\nimport { legacyPropsWarning } from './utils/warnUtil';\nfunction reorderValues(values, generateConfig) {\n if (values && values[0] && values[1] && generateConfig.isAfter(values[0], values[1])) {\n return [values[1], values[0]];\n }\n return values;\n}\nfunction canValueTrigger(value, index, disabled, allowEmpty) {\n if (value) {\n return true;\n }\n if (allowEmpty && allowEmpty[index]) {\n return true;\n }\n if (disabled[(index + 1) % 2]) {\n return true;\n }\n return false;\n}\nfunction InnerRangePicker(props) {\n var _classNames2, _classNames3, _classNames4;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,\n id = props.id,\n style = props.style,\n className = props.className,\n popupStyle = props.popupStyle,\n dropdownClassName = props.dropdownClassName,\n transitionName = props.transitionName,\n dropdownAlign = props.dropdownAlign,\n getPopupContainer = props.getPopupContainer,\n generateConfig = props.generateConfig,\n locale = props.locale,\n placeholder = props.placeholder,\n autoFocus = props.autoFocus,\n disabled = props.disabled,\n format = props.format,\n _props$picker = props.picker,\n picker = _props$picker === void 0 ? 'date' : _props$picker,\n showTime = props.showTime,\n use12Hours = props.use12Hours,\n _props$separator = props.separator,\n separator = _props$separator === void 0 ? '~' : _props$separator,\n value = props.value,\n defaultValue = props.defaultValue,\n defaultPickerValue = props.defaultPickerValue,\n open = props.open,\n defaultOpen = props.defaultOpen,\n disabledDate = props.disabledDate,\n _disabledTime = props.disabledTime,\n dateRender = props.dateRender,\n panelRender = props.panelRender,\n ranges = props.ranges,\n allowEmpty = props.allowEmpty,\n allowClear = props.allowClear,\n suffixIcon = props.suffixIcon,\n clearIcon = props.clearIcon,\n pickerRef = props.pickerRef,\n inputReadOnly = props.inputReadOnly,\n mode = props.mode,\n renderExtraFooter = props.renderExtraFooter,\n onChange = props.onChange,\n onOpenChange = props.onOpenChange,\n onPanelChange = props.onPanelChange,\n onCalendarChange = props.onCalendarChange,\n _onFocus = props.onFocus,\n onBlur = props.onBlur,\n onMouseDown = props.onMouseDown,\n onMouseUp = props.onMouseUp,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n _onOk = props.onOk,\n _onKeyDown = props.onKeyDown,\n components = props.components,\n order = props.order,\n direction = props.direction,\n activePickerIndex = props.activePickerIndex,\n _props$autoComplete = props.autoComplete,\n autoComplete = _props$autoComplete === void 0 ? 'off' : _props$autoComplete;\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n // We record opened status here in case repeat open with picker\n var openRecordsRef = useRef({});\n var containerRef = useRef(null);\n var panelDivRef = useRef(null);\n var startInputDivRef = useRef(null);\n var endInputDivRef = useRef(null);\n var separatorRef = useRef(null);\n var startInputRef = useRef(null);\n var endInputRef = useRef(null);\n var arrowRef = useRef(null);\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n legacyPropsWarning(props);\n }\n // ============================= Misc ==============================\n var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours));\n // Active picker\n var _useMergedState = useMergedState(0, {\n value: activePickerIndex\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedActivePickerIndex = _useMergedState2[0],\n setMergedActivePickerIndex = _useMergedState2[1];\n // Operation ref\n var operationRef = useRef(null);\n var mergedDisabled = React.useMemo(function () {\n if (Array.isArray(disabled)) {\n return disabled;\n }\n return [disabled || false, disabled || false];\n }, [disabled]);\n // ============================= Value =============================\n var _useMergedState3 = useMergedState(null, {\n value: value,\n defaultValue: defaultValue,\n postState: function postState(values) {\n return picker === 'time' && !order ? values : reorderValues(values, generateConfig);\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedValue = _useMergedState4[0],\n setInnerValue = _useMergedState4[1];\n // =========================== View Date ===========================\n // Config view panel\n var _useRangeViewDates = useRangeViewDates({\n values: mergedValue,\n picker: picker,\n defaultDates: defaultPickerValue,\n generateConfig: generateConfig\n }),\n _useRangeViewDates2 = _slicedToArray(_useRangeViewDates, 2),\n getViewDate = _useRangeViewDates2[0],\n setViewDate = _useRangeViewDates2[1];\n // ========================= Select Values =========================\n var _useMergedState5 = useMergedState(mergedValue, {\n postState: function postState(values) {\n var postValues = values;\n if (mergedDisabled[0] && mergedDisabled[1]) {\n return postValues;\n }\n // Fill disabled unit\n for (var i = 0; i < 2; i += 1) {\n if (mergedDisabled[i] && !postValues && !getValue(postValues, i) && !getValue(allowEmpty, i)) {\n postValues = updateValues(postValues, generateConfig.getNow(), i);\n }\n }\n return postValues;\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n selectedValue = _useMergedState6[0],\n setSelectedValue = _useMergedState6[1];\n // ============================= Modes =============================\n var _useMergedState7 = useMergedState([picker, picker], {\n value: mode\n }),\n _useMergedState8 = _slicedToArray(_useMergedState7, 2),\n mergedModes = _useMergedState8[0],\n setInnerModes = _useMergedState8[1];\n useEffect(function () {\n setInnerModes([picker, picker]);\n }, [picker]);\n var triggerModesChange = function triggerModesChange(modes, values) {\n setInnerModes(modes);\n if (onPanelChange) {\n onPanelChange(values, modes);\n }\n };\n // ========================= Disable Date ==========================\n var _useRangeDisabled = useRangeDisabled({\n picker: picker,\n selectedValue: selectedValue,\n locale: locale,\n disabled: mergedDisabled,\n disabledDate: disabledDate,\n generateConfig: generateConfig\n }, openRecordsRef.current[1], openRecordsRef.current[0]),\n _useRangeDisabled2 = _slicedToArray(_useRangeDisabled, 2),\n disabledStartDate = _useRangeDisabled2[0],\n disabledEndDate = _useRangeDisabled2[1];\n // ============================= Open ==============================\n var _useMergedState9 = useMergedState(false, {\n value: open,\n defaultValue: defaultOpen,\n postState: function postState(postOpen) {\n return mergedDisabled[mergedActivePickerIndex] ? false : postOpen;\n },\n onChange: function onChange(newOpen) {\n if (onOpenChange) {\n onOpenChange(newOpen);\n }\n if (!newOpen && operationRef.current && operationRef.current.onClose) {\n operationRef.current.onClose();\n }\n }\n }),\n _useMergedState10 = _slicedToArray(_useMergedState9, 2),\n mergedOpen = _useMergedState10[0],\n triggerInnerOpen = _useMergedState10[1];\n var startOpen = mergedOpen && mergedActivePickerIndex === 0;\n var endOpen = mergedOpen && mergedActivePickerIndex === 1;\n // ============================= Popup =============================\n // Popup min width\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n popupMinWidth = _useState2[0],\n setPopupMinWidth = _useState2[1];\n useEffect(function () {\n if (!mergedOpen && containerRef.current) {\n setPopupMinWidth(containerRef.current.offsetWidth);\n }\n }, [mergedOpen]);\n // ============================ Trigger ============================\n var triggerRef = React.useRef();\n function _triggerOpen(newOpen, index) {\n if (newOpen) {\n clearTimeout(triggerRef.current);\n openRecordsRef.current[index] = true;\n setMergedActivePickerIndex(index);\n triggerInnerOpen(newOpen);\n // Open to reset view date\n if (!mergedOpen) {\n setViewDate(null, index);\n }\n } else if (mergedActivePickerIndex === index) {\n triggerInnerOpen(newOpen);\n // Clean up async\n // This makes ref not quick refresh in case user open another input with blur trigger\n var openRecords = openRecordsRef.current;\n triggerRef.current = setTimeout(function () {\n if (openRecords === openRecordsRef.current) {\n openRecordsRef.current = {};\n }\n });\n }\n }\n function triggerOpenAndFocus(index) {\n _triggerOpen(true, index);\n // Use setTimeout to make sure panel DOM exists\n setTimeout(function () {\n var inputRef = [startInputRef, endInputRef][index];\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }, 0);\n }\n function triggerChange(newValue, sourceIndex) {\n var values = newValue;\n var startValue = getValue(values, 0);\n var endValue = getValue(values, 1);\n // >>>>> Format start & end values\n if (startValue && endValue && generateConfig.isAfter(startValue, endValue)) {\n if (\n // WeekPicker only compare week\n picker === 'week' && !isSameWeek(generateConfig, locale.locale, startValue, endValue) ||\n // QuotaPicker only compare week\n picker === 'quarter' && !isSameQuarter(generateConfig, startValue, endValue) ||\n // Other non-TimePicker compare date\n picker !== 'week' && picker !== 'quarter' && picker !== 'time' && !isSameDate(generateConfig, startValue, endValue)) {\n // Clean up end date when start date is after end date\n if (sourceIndex === 0) {\n values = [startValue, null];\n endValue = null;\n } else {\n startValue = null;\n values = [null, endValue];\n }\n // Clean up cache since invalidate\n openRecordsRef.current = _defineProperty({}, sourceIndex, true);\n } else if (picker !== 'time' || order !== false) {\n // Reorder when in same date\n values = reorderValues(values, generateConfig);\n }\n }\n setSelectedValue(values);\n var startStr = values && values[0] ? formatValue(values[0], {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '';\n var endStr = values && values[1] ? formatValue(values[1], {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '';\n if (onCalendarChange) {\n var info = {\n range: sourceIndex === 0 ? 'start' : 'end'\n };\n onCalendarChange(values, [startStr, endStr], info);\n }\n // >>>>> Trigger `onChange` event\n var canStartValueTrigger = canValueTrigger(startValue, 0, mergedDisabled, allowEmpty);\n var canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled, allowEmpty);\n var canTrigger = values === null || canStartValueTrigger && canEndValueTrigger;\n if (canTrigger) {\n // Trigger onChange only when value is validate\n setInnerValue(values);\n if (onChange && (!isEqual(generateConfig, getValue(mergedValue, 0), startValue) || !isEqual(generateConfig, getValue(mergedValue, 1), endValue))) {\n onChange(values, [startStr, endStr]);\n }\n }\n // >>>>> Open picker when\n // Always open another picker if possible\n var nextOpenIndex = null;\n if (sourceIndex === 0 && !mergedDisabled[1]) {\n nextOpenIndex = 1;\n } else if (sourceIndex === 1 && !mergedDisabled[0]) {\n nextOpenIndex = 0;\n }\n if (nextOpenIndex !== null && nextOpenIndex !== mergedActivePickerIndex && (!openRecordsRef.current[nextOpenIndex] || !getValue(values, nextOpenIndex)) && getValue(values, sourceIndex)) {\n // Delay to focus to avoid input blur trigger expired selectedValues\n triggerOpenAndFocus(nextOpenIndex);\n } else {\n _triggerOpen(false, sourceIndex);\n }\n }\n var forwardKeyDown = function forwardKeyDown(e) {\n if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n // Let popup panel handle keyboard\n return operationRef.current.onKeyDown(e);\n }\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n return false;\n }\n };\n // ============================= Text ==============================\n var sharedTextHooksProps = {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n };\n var _useValueTexts = useValueTexts(getValue(selectedValue, 0), sharedTextHooksProps),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n startValueTexts = _useValueTexts2[0],\n firstStartValueText = _useValueTexts2[1];\n var _useValueTexts3 = useValueTexts(getValue(selectedValue, 1), sharedTextHooksProps),\n _useValueTexts4 = _slicedToArray(_useValueTexts3, 2),\n endValueTexts = _useValueTexts4[0],\n firstEndValueText = _useValueTexts4[1];\n var _onTextChange = function onTextChange(newText, index) {\n var inputDate = parseValue(newText, {\n locale: locale,\n formatList: formatList,\n generateConfig: generateConfig\n });\n var disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;\n if (inputDate && !disabledFunc(inputDate)) {\n setSelectedValue(updateValues(selectedValue, inputDate, index));\n setViewDate(inputDate, index);\n }\n };\n var _useTextValueMapping = useTextValueMapping({\n valueTexts: startValueTexts,\n onTextChange: function onTextChange(newText) {\n return _onTextChange(newText, 0);\n }\n }),\n _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n startText = _useTextValueMapping2[0],\n triggerStartTextChange = _useTextValueMapping2[1],\n resetStartText = _useTextValueMapping2[2];\n var _useTextValueMapping3 = useTextValueMapping({\n valueTexts: endValueTexts,\n onTextChange: function onTextChange(newText) {\n return _onTextChange(newText, 1);\n }\n }),\n _useTextValueMapping4 = _slicedToArray(_useTextValueMapping3, 3),\n endText = _useTextValueMapping4[0],\n triggerEndTextChange = _useTextValueMapping4[1],\n resetEndText = _useTextValueMapping4[2];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n rangeHoverValue = _useState4[0],\n setRangeHoverValue = _useState4[1];\n // ========================== Hover Range ==========================\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n hoverRangedValue = _useState6[0],\n setHoverRangedValue = _useState6[1];\n var _useHoverValue = useHoverValue(startText, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n startHoverValue = _useHoverValue2[0],\n onStartEnter = _useHoverValue2[1],\n onStartLeave = _useHoverValue2[2];\n var _useHoverValue3 = useHoverValue(endText, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue4 = _slicedToArray(_useHoverValue3, 3),\n endHoverValue = _useHoverValue4[0],\n onEndEnter = _useHoverValue4[1],\n onEndLeave = _useHoverValue4[2];\n var onDateMouseEnter = function onDateMouseEnter(date) {\n setHoverRangedValue(updateValues(selectedValue, date, mergedActivePickerIndex));\n if (mergedActivePickerIndex === 0) {\n onStartEnter(date);\n } else {\n onEndEnter(date);\n }\n };\n var onDateMouseLeave = function onDateMouseLeave() {\n setHoverRangedValue(updateValues(selectedValue, null, mergedActivePickerIndex));\n if (mergedActivePickerIndex === 0) {\n onStartLeave();\n } else {\n onEndLeave();\n }\n };\n // ============================= Input =============================\n var getSharedInputHookProps = function getSharedInputHookProps(index, resetText) {\n return {\n blurToCancel: needConfirmButton,\n forwardKeyDown: forwardKeyDown,\n onBlur: onBlur,\n isClickOutside: function isClickOutside(target) {\n return !elementsContains([panelDivRef.current, startInputDivRef.current, endInputDivRef.current, containerRef.current], target);\n },\n onFocus: function onFocus(e) {\n setMergedActivePickerIndex(index);\n if (_onFocus) {\n _onFocus(e);\n }\n },\n triggerOpen: function triggerOpen(newOpen) {\n _triggerOpen(newOpen, index);\n },\n onSubmit: function onSubmit() {\n if (\n // When user typing disabledDate with keyboard and enter, this value will be empty\n !selectedValue ||\n // Normal disabled check\n disabledDate && disabledDate(selectedValue[index])) {\n return false;\n }\n triggerChange(selectedValue, index);\n resetText();\n },\n onCancel: function onCancel() {\n _triggerOpen(false, index);\n setSelectedValue(mergedValue);\n resetText();\n }\n };\n };\n var currentFocusedKey = useRef('');\n var _usePickerInput = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(0, resetStartText)), {}, {\n open: startOpen,\n value: startText,\n currentFocusedKey: currentFocusedKey,\n key: 'start',\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n }\n })),\n _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n startInputProps = _usePickerInput2[0],\n _usePickerInput2$ = _usePickerInput2[1],\n startFocused = _usePickerInput2$.focused,\n startTyping = _usePickerInput2$.typing;\n var _usePickerInput3 = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(1, resetEndText)), {}, {\n open: endOpen,\n value: endText,\n currentFocusedKey: currentFocusedKey,\n key: 'end',\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n }\n })),\n _usePickerInput4 = _slicedToArray(_usePickerInput3, 2),\n endInputProps = _usePickerInput4[0],\n _usePickerInput4$ = _usePickerInput4[1],\n endFocused = _usePickerInput4$.focused,\n endTyping = _usePickerInput4$.typing;\n // ========================== Click Picker ==========================\n var onPickerClick = function onPickerClick(e) {\n // When click inside the picker & outside the picker's input elements\n // the panel should still be opened\n if (onClick) {\n onClick(e);\n }\n if (!mergedOpen && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n if (!mergedDisabled[0]) {\n triggerOpenAndFocus(0);\n } else if (!mergedDisabled[1]) {\n triggerOpenAndFocus(1);\n }\n }\n };\n var onPickerMouseDown = function onPickerMouseDown(e) {\n // shouldn't affect input elements if picker is active\n if (onMouseDown) {\n onMouseDown(e);\n }\n if (mergedOpen && (startFocused || endFocused) && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n e.preventDefault();\n }\n };\n // ============================= Sync ==============================\n // Close should sync back with text value\n var startStr = mergedValue && mergedValue[0] ? formatValue(mergedValue[0], {\n locale: locale,\n format: 'YYYYMMDDHHmmss',\n generateConfig: generateConfig\n }) : '';\n var endStr = mergedValue && mergedValue[1] ? formatValue(mergedValue[1], {\n locale: locale,\n format: 'YYYYMMDDHHmmss',\n generateConfig: generateConfig\n }) : '';\n useEffect(function () {\n if (!mergedOpen) {\n setSelectedValue(mergedValue);\n if (!startValueTexts.length || startValueTexts[0] === '') {\n triggerStartTextChange('');\n } else if (firstStartValueText !== startText) {\n resetStartText();\n }\n if (!endValueTexts.length || endValueTexts[0] === '') {\n triggerEndTextChange('');\n } else if (firstEndValueText !== endText) {\n resetEndText();\n }\n }\n }, [mergedOpen, startValueTexts, endValueTexts]);\n // Sync innerValue with control mode\n useEffect(function () {\n setSelectedValue(mergedValue);\n }, [startStr, endStr]);\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n if (value && Array.isArray(disabled) && (getValue(disabled, 0) && !getValue(value, 0) || getValue(disabled, 1) && !getValue(value, 1))) {\n warning(false, '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.');\n }\n }\n // ============================ Private ============================\n if (pickerRef) {\n pickerRef.current = {\n focus: function focus() {\n if (startInputRef.current) {\n startInputRef.current.focus();\n }\n },\n blur: function blur() {\n if (startInputRef.current) {\n startInputRef.current.blur();\n }\n if (endInputRef.current) {\n endInputRef.current.blur();\n }\n }\n };\n }\n // ============================ Ranges =============================\n var rangeLabels = Object.keys(ranges || {});\n var rangeList = rangeLabels.map(function (label) {\n var range = ranges[label];\n var newValues = typeof range === 'function' ? range() : range;\n return {\n label: label,\n onClick: function onClick() {\n triggerChange(newValues, null);\n _triggerOpen(false, mergedActivePickerIndex);\n },\n onMouseEnter: function onMouseEnter() {\n setRangeHoverValue(newValues);\n },\n onMouseLeave: function onMouseLeave() {\n setRangeHoverValue(null);\n }\n };\n });\n // ============================= Panel =============================\n function renderPanel() {\n var panelPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var panelProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var panelHoverRangedValue = null;\n if (mergedOpen && hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1] && generateConfig.isAfter(hoverRangedValue[1], hoverRangedValue[0])) {\n panelHoverRangedValue = hoverRangedValue;\n }\n var panelShowTime = showTime;\n if (showTime && _typeof(showTime) === 'object' && showTime.defaultValue) {\n var timeDefaultValues = showTime.defaultValue;\n panelShowTime = _objectSpread(_objectSpread({}, showTime), {}, {\n defaultValue: getValue(timeDefaultValues, mergedActivePickerIndex) || undefined\n });\n }\n var panelDateRender = null;\n if (dateRender) {\n panelDateRender = function panelDateRender(date, today) {\n return dateRender(date, today, {\n range: mergedActivePickerIndex ? 'end' : 'start'\n });\n };\n }\n return /*#__PURE__*/React.createElement(RangeContext.Provider, {\n value: {\n inRange: true,\n panelPosition: panelPosition,\n rangedValue: rangeHoverValue || selectedValue,\n hoverRangedValue: panelHoverRangedValue\n }\n }, /*#__PURE__*/React.createElement(PickerPanel, _extends({}, props, panelProps, {\n dateRender: panelDateRender,\n showTime: panelShowTime,\n mode: mergedModes[mergedActivePickerIndex],\n generateConfig: generateConfig,\n style: undefined,\n direction: direction,\n disabledDate: mergedActivePickerIndex === 0 ? disabledStartDate : disabledEndDate,\n disabledTime: function disabledTime(date) {\n if (_disabledTime) {\n return _disabledTime(date, mergedActivePickerIndex === 0 ? 'start' : 'end');\n }\n return false;\n },\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), mergedActivePickerIndex === 0 ? !startTyping : !endTyping)),\n value: getValue(selectedValue, mergedActivePickerIndex),\n locale: locale,\n tabIndex: -1,\n onPanelChange: function onPanelChange(date, newMode) {\n // clear hover value when panel change\n if (mergedActivePickerIndex === 0) {\n onStartLeave(true);\n }\n if (mergedActivePickerIndex === 1) {\n onEndLeave(true);\n }\n triggerModesChange(updateValues(mergedModes, newMode, mergedActivePickerIndex), updateValues(selectedValue, date, mergedActivePickerIndex));\n var viewDate = date;\n if (panelPosition === 'right' && mergedModes[mergedActivePickerIndex] === newMode) {\n viewDate = getClosingViewDate(viewDate, newMode, generateConfig, -1);\n }\n setViewDate(viewDate, mergedActivePickerIndex);\n },\n onOk: null,\n onSelect: undefined,\n onChange: undefined,\n defaultValue: mergedActivePickerIndex === 0 ? getValue(selectedValue, 1) : getValue(selectedValue, 0)\n })));\n }\n var arrowLeft = 0;\n var panelLeft = 0;\n if (mergedActivePickerIndex && startInputDivRef.current && separatorRef.current && panelDivRef.current) {\n // Arrow offset\n arrowLeft = startInputDivRef.current.offsetWidth + separatorRef.current.offsetWidth;\n // If panelWidth - arrowWidth - arrowMarginLeft < arrowLeft, panel should move to right side.\n // If arrowOffsetLeft > arrowLeft, arrowMarginLeft = arrowOffsetLeft - arrowLeft\n var arrowMarginLeft = arrowRef.current.offsetLeft > arrowLeft ? arrowRef.current.offsetLeft - arrowLeft : arrowRef.current.offsetLeft;\n if (panelDivRef.current.offsetWidth && arrowRef.current.offsetWidth && arrowLeft > panelDivRef.current.offsetWidth - arrowRef.current.offsetWidth - (direction === 'rtl' ? 0 : arrowMarginLeft)) {\n panelLeft = arrowLeft;\n }\n }\n var arrowPositionStyle = direction === 'rtl' ? {\n right: arrowLeft\n } : {\n left: arrowLeft\n };\n function renderPanels() {\n var panels;\n var extraNode = getExtraFooter(prefixCls, mergedModes[mergedActivePickerIndex], renderExtraFooter);\n var rangesNode = getRanges({\n prefixCls: prefixCls,\n components: components,\n needConfirmButton: needConfirmButton,\n okDisabled: !getValue(selectedValue, mergedActivePickerIndex) || disabledDate && disabledDate(selectedValue[mergedActivePickerIndex]),\n locale: locale,\n rangeList: rangeList,\n onOk: function onOk() {\n if (getValue(selectedValue, mergedActivePickerIndex)) {\n // triggerChangeOld(selectedValue);\n triggerChange(selectedValue, mergedActivePickerIndex);\n if (_onOk) {\n _onOk(selectedValue);\n }\n }\n }\n });\n if (picker !== 'time' && !showTime) {\n var viewDate = getViewDate(mergedActivePickerIndex);\n var nextViewDate = getClosingViewDate(viewDate, picker, generateConfig);\n var currentMode = mergedModes[mergedActivePickerIndex];\n var showDoublePanel = currentMode === picker;\n var leftPanel = renderPanel(showDoublePanel ? 'left' : false, {\n pickerValue: viewDate,\n onPickerValueChange: function onPickerValueChange(newViewDate) {\n setViewDate(newViewDate, mergedActivePickerIndex);\n }\n });\n var rightPanel = renderPanel('right', {\n pickerValue: nextViewDate,\n onPickerValueChange: function onPickerValueChange(newViewDate) {\n setViewDate(getClosingViewDate(newViewDate, picker, generateConfig, -1), mergedActivePickerIndex);\n }\n });\n if (direction === 'rtl') {\n panels = /*#__PURE__*/React.createElement(React.Fragment, null, rightPanel, showDoublePanel && leftPanel);\n } else {\n panels = /*#__PURE__*/React.createElement(React.Fragment, null, leftPanel, showDoublePanel && rightPanel);\n }\n } else {\n panels = renderPanel();\n }\n var mergedNodes = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panels\")\n }, panels), (extraNode || rangesNode) && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraNode, rangesNode));\n if (panelRender) {\n mergedNodes = panelRender(mergedNodes);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-container\"),\n style: {\n marginLeft: panelLeft\n },\n ref: panelDivRef,\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n }, mergedNodes);\n }\n var rangePanel = /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-range-wrapper\"), \"\".concat(prefixCls, \"-\").concat(picker, \"-range-wrapper\")),\n style: {\n minWidth: popupMinWidth\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: \"\".concat(prefixCls, \"-range-arrow\"),\n style: arrowPositionStyle\n }), renderPanels());\n // ============================= Icons =============================\n var suffixNode;\n if (suffixIcon) {\n suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, suffixIcon);\n }\n var clearNode;\n if (allowClear && (getValue(mergedValue, 0) && !mergedDisabled[0] || getValue(mergedValue, 1) && !mergedDisabled[1])) {\n clearNode = /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n onMouseUp: function onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n var values = mergedValue;\n if (!mergedDisabled[0]) {\n values = updateValues(values, null, 0);\n }\n if (!mergedDisabled[1]) {\n values = updateValues(values, null, 1);\n }\n triggerChange(values, null);\n _triggerOpen(false, mergedActivePickerIndex);\n },\n className: \"\".concat(prefixCls, \"-clear\")\n }, clearIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-clear-btn\")\n }));\n }\n var inputSharedProps = {\n size: getInputSize(picker, formatList[0], generateConfig)\n };\n var activeBarLeft = 0;\n var activeBarWidth = 0;\n if (startInputDivRef.current && endInputDivRef.current && separatorRef.current) {\n if (mergedActivePickerIndex === 0) {\n activeBarWidth = startInputDivRef.current.offsetWidth;\n } else {\n activeBarLeft = arrowLeft;\n activeBarWidth = endInputDivRef.current.offsetWidth;\n }\n }\n var activeBarPositionStyle = direction === 'rtl' ? {\n right: activeBarLeft\n } : {\n left: activeBarLeft\n };\n // ============================ Return =============================\n var onContextSelect = function onContextSelect(date, type) {\n var values = updateValues(selectedValue, date, mergedActivePickerIndex);\n if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n // triggerChange will also update selected values\n triggerChange(values, mergedActivePickerIndex);\n // clear hover value style\n if (mergedActivePickerIndex === 0) {\n onStartLeave();\n } else {\n onEndLeave();\n }\n } else {\n setSelectedValue(values);\n }\n };\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: {\n operationRef: operationRef,\n hideHeader: picker === 'time',\n onDateMouseEnter: onDateMouseEnter,\n onDateMouseLeave: onDateMouseLeave,\n hideRanges: true,\n onSelect: onContextSelect,\n open: mergedOpen\n }\n }, /*#__PURE__*/React.createElement(PickerTrigger, {\n visible: mergedOpen,\n popupElement: rangePanel,\n popupStyle: popupStyle,\n prefixCls: prefixCls,\n dropdownClassName: dropdownClassName,\n dropdownAlign: dropdownAlign,\n getPopupContainer: getPopupContainer,\n transitionName: transitionName,\n range: true,\n direction: direction\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: containerRef,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-range\"), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), mergedDisabled[0] && mergedDisabled[1]), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mergedActivePickerIndex === 0 ? startFocused : endFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n style: style,\n onClick: onPickerClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onPickerMouseDown,\n onMouseUp: onMouseUp\n }, getDataOrAriaProps(props)), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 0), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-placeholder\"), !!startHoverValue), _classNames3)),\n ref: startInputDivRef\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n id: id,\n disabled: mergedDisabled[0],\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !startTyping,\n value: startHoverValue || startText,\n onChange: function onChange(e) {\n triggerStartTextChange(e.target.value);\n },\n autoFocus: autoFocus,\n placeholder: getValue(placeholder, 0) || '',\n ref: startInputRef\n }, startInputProps, inputSharedProps, {\n autoComplete: autoComplete\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-range-separator\"),\n ref: separatorRef\n }, separator), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames4 = {}, _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 1), _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-placeholder\"), !!endHoverValue), _classNames4)),\n ref: endInputDivRef\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n disabled: mergedDisabled[1],\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !endTyping,\n value: endHoverValue || endText,\n onChange: function onChange(e) {\n triggerEndTextChange(e.target.value);\n },\n placeholder: getValue(placeholder, 1) || '',\n ref: endInputRef\n }, endInputProps, inputSharedProps, {\n autoComplete: autoComplete\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-active-bar\"),\n style: _objectSpread(_objectSpread({}, activeBarPositionStyle), {}, {\n width: activeBarWidth,\n position: 'absolute'\n })\n }), suffixNode, clearNode)));\n}\n// Wrap with class component to enable pass generic with instance method\nvar RangePicker = /*#__PURE__*/function (_React$Component) {\n _inherits(RangePicker, _React$Component);\n var _super = _createSuper(RangePicker);\n function RangePicker() {\n var _this;\n _classCallCheck(this, RangePicker);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.pickerRef = /*#__PURE__*/React.createRef();\n _this.focus = function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.focus();\n }\n };\n _this.blur = function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.blur();\n }\n };\n return _this;\n }\n _createClass(RangePicker, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(InnerRangePicker, _extends({}, this.props, {\n pickerRef: this.pickerRef\n }));\n }\n }]);\n return RangePicker;\n}(React.Component);\nexport default RangePicker;","import * as React from 'react';\nimport { getValue } from '../utils/miscUtil';\nimport { isSameDate, getQuarter } from '../utils/dateUtil';\nexport default function useRangeDisabled(_ref, disabledStart, disabledEnd) {\n var picker = _ref.picker,\n locale = _ref.locale,\n selectedValue = _ref.selectedValue,\n disabledDate = _ref.disabledDate,\n disabled = _ref.disabled,\n generateConfig = _ref.generateConfig;\n var startDate = getValue(selectedValue, 0);\n var endDate = getValue(selectedValue, 1);\n function weekFirstDate(date) {\n return generateConfig.locale.getWeekFirstDate(locale.locale, date);\n }\n function monthNumber(date) {\n var year = generateConfig.getYear(date);\n var month = generateConfig.getMonth(date);\n return year * 100 + month;\n }\n function quarterNumber(date) {\n var year = generateConfig.getYear(date);\n var quarter = getQuarter(generateConfig, date);\n return year * 10 + quarter;\n }\n var disabledStartDate = React.useCallback(function (date) {\n if (disabledDate && disabledDate(date)) {\n return true;\n }\n // Disabled range\n if (disabled[1] && endDate) {\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);\n }\n // Disabled part\n if (disabledStart && endDate) {\n switch (picker) {\n case 'quarter':\n return quarterNumber(date) > quarterNumber(endDate);\n case 'month':\n return monthNumber(date) > monthNumber(endDate);\n case 'week':\n return weekFirstDate(date) > weekFirstDate(endDate);\n default:\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);\n }\n }\n return false;\n }, [disabledDate, disabled[1], endDate, disabledStart]);\n var disabledEndDate = React.useCallback(function (date) {\n if (disabledDate && disabledDate(date)) {\n return true;\n }\n // Disabled range\n if (disabled[0] && startDate) {\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(startDate, date);\n }\n // Disabled part\n if (disabledEnd && startDate) {\n switch (picker) {\n case 'quarter':\n return quarterNumber(date) < quarterNumber(startDate);\n case 'month':\n return monthNumber(date) < monthNumber(startDate);\n case 'week':\n return weekFirstDate(date) < weekFirstDate(startDate);\n default:\n return !isSameDate(generateConfig, date, startDate) && generateConfig.isAfter(startDate, date);\n }\n }\n return false;\n }, [disabledDate, disabled[0], startDate, disabledEnd]);\n return [disabledStartDate, disabledEndDate];\n}","import Picker from './Picker';\nimport PickerPanel from './PickerPanel';\nimport RangePicker from './RangePicker';\nexport { PickerPanel, RangePicker };\nexport default Picker;","export function getPlaceholder(picker, locale, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.yearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.quarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.monthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.weekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.placeholder;\n }\n return locale.lang.placeholder;\n}\nexport function getRangePlaceholder(picker, locale, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.rangeYearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.rangeQuarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.rangeMonthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.rangeWeekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.rangePlaceholder;\n }\n return locale.lang.rangePlaceholder;\n}\nexport function transPlacement2DropdownAlign(direction, placement) {\n var overflow = {\n adjustX: 1,\n adjustY: 1\n };\n switch (placement) {\n case 'bottomLeft':\n {\n return {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: overflow\n };\n }\n case 'bottomRight':\n {\n return {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: overflow\n };\n }\n case 'topLeft':\n {\n return {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: overflow\n };\n }\n case 'topRight':\n {\n return {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: overflow\n };\n }\n default:\n {\n return {\n points: direction === 'rtl' ? ['tr', 'br'] : ['tl', 'bl'],\n offset: [0, 4],\n overflow: overflow\n };\n }\n }\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport SwapRightOutlined from \"@ant-design/icons/es/icons/SwapRightOutlined\";\nimport classNames from 'classnames';\nimport { RangePicker as RCRangePicker } from 'rc-picker';\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } from 'react';\nimport { Components, getTimeProps } from '.';\nimport { ConfigContext } from '../../config-provider';\nimport DisabledContext from '../../config-provider/DisabledContext';\nimport SizeContext from '../../config-provider/SizeContext';\nimport { FormItemInputContext } from '../../form/context';\nimport { useCompactItemContext } from '../../space/Compact';\nimport LocaleReceiver from '../../locale-provider/LocaleReceiver';\nimport { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';\nimport enUS from '../locale/en_US';\nimport { getRangePlaceholder, transPlacement2DropdownAlign } from '../util';\nimport warning from '../../_util/warning';\nexport default function generateRangePicker(generateConfig) {\n var RangePicker = /*#__PURE__*/forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n customGetPopupContainer = props.getPopupContainer,\n className = props.className,\n placement = props.placement,\n customizeSize = props.size,\n customDisabled = props.disabled,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n placeholder = props.placeholder,\n popupClassName = props.popupClassName,\n dropdownClassName = props.dropdownClassName,\n customStatus = props.status,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"className\", \"placement\", \"size\", \"disabled\", \"bordered\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"status\"]);\n var innerRef = React.useRef(null);\n var _useContext = useContext(ConfigContext),\n getPrefixCls = _useContext.getPrefixCls,\n direction = _useContext.direction,\n getPopupContainer = _useContext.getPopupContainer;\n var prefixCls = getPrefixCls('picker', customizePrefixCls);\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var format = props.format,\n showTime = props.showTime,\n picker = props.picker;\n var rootPrefixCls = getPrefixCls();\n var additionalOverrideProps = {};\n additionalOverrideProps = _extends(_extends(_extends({}, additionalOverrideProps), showTime ? getTimeProps(_extends({\n format: format,\n picker: picker\n }, showTime)) : {}), picker === 'time' ? getTimeProps(_extends(_extends({\n format: format\n }, props), {\n picker: picker\n })) : {});\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'RangePicker', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.') : void 0;\n // ===================== Size =====================\n var size = React.useContext(SizeContext);\n var mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== FormItemInput =====================\n var formItemContext = useContext(FormItemInputContext);\n var hasFeedback = formItemContext.hasFeedback,\n contextStatus = formItemContext.status,\n feedbackIcon = formItemContext.feedbackIcon;\n var suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, picker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur: function blur() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"DatePicker\",\n defaultLocale: enUS\n }, function (contextLocale) {\n var locale = _extends(_extends({}, contextLocale), props.locale);\n return /*#__PURE__*/React.createElement(RCRangePicker, _extends({\n separator: /*#__PURE__*/React.createElement(\"span\", {\n \"aria-label\": \"to\",\n className: \"\".concat(prefixCls, \"-separator\")\n }, /*#__PURE__*/React.createElement(SwapRightOutlined, null)),\n disabled: mergedDisabled,\n ref: innerRef,\n dropdownAlign: transPlacement2DropdownAlign(direction, placement),\n placeholder: getRangePlaceholder(picker, locale, placeholder),\n suffixIcon: suffixNode,\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-prev-icon\")\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-next-icon\")\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-super-prev-icon\")\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-super-next-icon\")\n }),\n allowClear: true,\n transitionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n }, restProps, additionalOverrideProps, {\n className: classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), \"\".concat(prefixCls, \"-borderless\"), !bordered), getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), compactItemClassnames, className),\n locale: locale.lang,\n prefixCls: prefixCls,\n getPopupContainer: customGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: Components,\n direction: direction,\n dropdownClassName: popupClassName || dropdownClassName\n }));\n });\n });\n return RangePicker;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RCPicker from 'rc-picker';\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } from 'react';\nimport { useCompactItemContext } from '../../space/Compact';\nimport { Components, getTimeProps } from '.';\nimport { ConfigContext } from '../../config-provider';\nimport DisabledContext from '../../config-provider/DisabledContext';\nimport SizeContext from '../../config-provider/SizeContext';\nimport { FormItemInputContext } from '../../form/context';\nimport LocaleReceiver from '../../locale-provider/LocaleReceiver';\nimport { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';\nimport warning from '../../_util/warning';\nimport enUS from '../locale/en_US';\nimport { getPlaceholder, transPlacement2DropdownAlign } from '../util';\nexport default function generatePicker(generateConfig) {\n function getPicker(picker, displayName) {\n var Picker = /*#__PURE__*/forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n customizeGetPopupContainer = props.getPopupContainer,\n className = props.className,\n customizeSize = props.size,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n placement = props.placement,\n placeholder = props.placeholder,\n popupClassName = props.popupClassName,\n dropdownClassName = props.dropdownClassName,\n customDisabled = props.disabled,\n customStatus = props.status,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"className\", \"size\", \"bordered\", \"placement\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"disabled\", \"status\"]);\n var _useContext = useContext(ConfigContext),\n getPrefixCls = _useContext.getPrefixCls,\n direction = _useContext.direction,\n getPopupContainer = _useContext.getPopupContainer;\n var prefixCls = getPrefixCls('picker', customizePrefixCls);\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var innerRef = React.useRef(null);\n var format = props.format,\n showTime = props.showTime;\n useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur: function blur() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n var additionalProps = {\n showToday: true\n };\n var additionalOverrideProps = {};\n if (picker) {\n additionalOverrideProps.picker = picker;\n }\n var mergedPicker = picker || props.picker;\n additionalOverrideProps = _extends(_extends(_extends({}, additionalOverrideProps), showTime ? getTimeProps(_extends({\n format: format,\n picker: mergedPicker\n }, showTime)) : {}), mergedPicker === 'time' ? getTimeProps(_extends(_extends({\n format: format\n }, props), {\n picker: mergedPicker\n })) : {});\n var rootPrefixCls = getPrefixCls();\n // =================== Warning =====================\n process.env.NODE_ENV !== \"production\" ? warning(picker !== 'quarter', displayName, \"DatePicker.\".concat(displayName, \" is legacy usage. Please use DatePicker[picker='\").concat(picker, \"'] directly.\")) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, mergedPicker === 'time' ? 'TimePicker' : 'DatePicker', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.') : void 0;\n // ===================== Size =====================\n var size = React.useContext(SizeContext);\n var mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== FormItemInput =====================\n var formItemContext = useContext(FormItemInputContext);\n var hasFeedback = formItemContext.hasFeedback,\n contextStatus = formItemContext.status,\n feedbackIcon = formItemContext.feedbackIcon;\n var suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, mergedPicker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"DatePicker\",\n defaultLocale: enUS\n }, function (contextLocale) {\n var locale = _extends(_extends({}, contextLocale), props.locale);\n return /*#__PURE__*/React.createElement(RCPicker, _extends({\n ref: innerRef,\n placeholder: getPlaceholder(mergedPicker, locale, placeholder),\n suffixIcon: suffixNode,\n dropdownAlign: transPlacement2DropdownAlign(direction, placement),\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-prev-icon\")\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-next-icon\")\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-super-prev-icon\")\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-super-next-icon\")\n }),\n allowClear: true,\n transitionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n }, additionalProps, restProps, additionalOverrideProps, {\n locale: locale.lang,\n className: classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), \"\".concat(prefixCls, \"-borderless\"), !bordered), getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), compactItemClassnames, className),\n prefixCls: prefixCls,\n getPopupContainer: customizeGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: Components,\n direction: direction,\n disabled: mergedDisabled,\n dropdownClassName: popupClassName || dropdownClassName\n }));\n });\n });\n if (displayName) {\n Picker.displayName = displayName;\n }\n return Picker;\n }\n var DatePicker = getPicker();\n var WeekPicker = getPicker('week', 'WeekPicker');\n var MonthPicker = getPicker('month', 'MonthPicker');\n var YearPicker = getPicker('year', 'YearPicker');\n var TimePicker = getPicker('time', 'TimePicker');\n var QuarterPicker = getPicker('quarter', 'QuarterPicker');\n return {\n DatePicker: DatePicker,\n WeekPicker: WeekPicker,\n MonthPicker: MonthPicker,\n YearPicker: YearPicker,\n TimePicker: TimePicker,\n QuarterPicker: QuarterPicker\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { tuple } from '../../_util/type';\nimport PickerButton from '../PickerButton';\nimport PickerTag from '../PickerTag';\nimport generateRangePicker from './generateRangePicker';\nimport generateSinglePicker from './generateSinglePicker';\nexport var Components = {\n button: PickerButton,\n rangeItem: PickerTag\n};\nfunction toArray(list) {\n if (!list) {\n return [];\n }\n return Array.isArray(list) ? list : [list];\n}\nexport function getTimeProps(props) {\n var format = props.format,\n picker = props.picker,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n use12Hours = props.use12Hours;\n var firstFormat = toArray(format)[0];\n var showTimeObj = _extends({}, props);\n if (firstFormat && typeof firstFormat === 'string') {\n if (!firstFormat.includes('s') && showSecond === undefined) {\n showTimeObj.showSecond = false;\n }\n if (!firstFormat.includes('m') && showMinute === undefined) {\n showTimeObj.showMinute = false;\n }\n if (!firstFormat.includes('H') && !firstFormat.includes('h') && showHour === undefined) {\n showTimeObj.showHour = false;\n }\n if ((firstFormat.includes('a') || firstFormat.includes('A')) && use12Hours === undefined) {\n showTimeObj.use12Hours = true;\n }\n }\n if (picker === 'time') {\n return showTimeObj;\n }\n if (typeof firstFormat === 'function') {\n // format of showTime should use default when format is custom format function\n delete showTimeObj.format;\n }\n return {\n showTime: showTimeObj\n };\n}\nvar DataPickerPlacements = tuple('bottomLeft', 'bottomRight', 'topLeft', 'topRight');\nfunction generatePicker(generateConfig) {\n // =========================== Picker ===========================\n var _generateSinglePicker = generateSinglePicker(generateConfig),\n DatePicker = _generateSinglePicker.DatePicker,\n WeekPicker = _generateSinglePicker.WeekPicker,\n MonthPicker = _generateSinglePicker.MonthPicker,\n YearPicker = _generateSinglePicker.YearPicker,\n TimePicker = _generateSinglePicker.TimePicker,\n QuarterPicker = _generateSinglePicker.QuarterPicker;\n // ======================== Range Picker ========================\n var RangePicker = generateRangePicker(generateConfig);\n var MergedDatePicker = DatePicker;\n MergedDatePicker.WeekPicker = WeekPicker;\n MergedDatePicker.MonthPicker = MonthPicker;\n MergedDatePicker.YearPicker = YearPicker;\n MergedDatePicker.RangePicker = RangePicker;\n MergedDatePicker.TimePicker = TimePicker;\n MergedDatePicker.QuarterPicker = QuarterPicker;\n return MergedDatePicker;\n}\nexport default generatePicker;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Button from '../button';\nexport default function PickerButton(props) {\n return /*#__PURE__*/React.createElement(Button, _extends({\n size: \"small\",\n type: \"primary\"\n }, props));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Tag from '../tag';\nexport default function PickerTag(props) {\n return /*#__PURE__*/React.createElement(Tag, _extends({\n color: \"blue\"\n }, props));\n}","import momentGenerateConfig from \"rc-picker/es/generate/moment\";\nimport generatePicker from './generatePicker';\nvar DatePicker = generatePicker(momentGenerateConfig);\nexport default DatePicker;","var locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'OK',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nvar locale = {\n lang: _extends({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","var DescriptionsItem = function DescriptionsItem(_ref) {\n var children = _ref.children;\n return children;\n};\nexport default DescriptionsItem;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nfunction notEmpty(val) {\n return val !== undefined && val !== null;\n}\nvar Cell = function Cell(_ref) {\n var itemPrefixCls = _ref.itemPrefixCls,\n component = _ref.component,\n span = _ref.span,\n className = _ref.className,\n style = _ref.style,\n labelStyle = _ref.labelStyle,\n contentStyle = _ref.contentStyle,\n bordered = _ref.bordered,\n label = _ref.label,\n content = _ref.content,\n colon = _ref.colon;\n var Component = component;\n if (bordered) {\n return /*#__PURE__*/React.createElement(Component, {\n className: classNames(_defineProperty(_defineProperty({}, \"\".concat(itemPrefixCls, \"-item-label\"), notEmpty(label)), \"\".concat(itemPrefixCls, \"-item-content\"), notEmpty(content)), className),\n style: style,\n colSpan: span\n }, notEmpty(label) && /*#__PURE__*/React.createElement(\"span\", {\n style: labelStyle\n }, label), notEmpty(content) && /*#__PURE__*/React.createElement(\"span\", {\n style: contentStyle\n }, content));\n }\n return /*#__PURE__*/React.createElement(Component, {\n className: classNames(\"\".concat(itemPrefixCls, \"-item\"), className),\n style: style,\n colSpan: span\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(itemPrefixCls, \"-item-container\")\n }, (label || label === 0) && ( /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(itemPrefixCls, \"-item-label\"), _defineProperty({}, \"\".concat(itemPrefixCls, \"-item-no-colon\"), !colon)),\n style: labelStyle\n }, label)), (content || content === 0) && ( /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(itemPrefixCls, \"-item-content\")),\n style: contentStyle\n }, content))));\n};\nexport default Cell;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { DescriptionsContext } from '.';\nimport Cell from './Cell';\nfunction renderCells(items, _ref, _ref2) {\n var colon = _ref.colon,\n prefixCls = _ref.prefixCls,\n bordered = _ref.bordered;\n var component = _ref2.component,\n type = _ref2.type,\n showLabel = _ref2.showLabel,\n showContent = _ref2.showContent,\n rootLabelStyle = _ref2.labelStyle,\n rootContentStyle = _ref2.contentStyle;\n return items.map(function (_ref3, index) {\n var _ref3$props = _ref3.props,\n label = _ref3$props.label,\n children = _ref3$props.children,\n _ref3$props$prefixCls = _ref3$props.prefixCls,\n itemPrefixCls = _ref3$props$prefixCls === void 0 ? prefixCls : _ref3$props$prefixCls,\n className = _ref3$props.className,\n style = _ref3$props.style,\n labelStyle = _ref3$props.labelStyle,\n contentStyle = _ref3$props.contentStyle,\n _ref3$props$span = _ref3$props.span,\n span = _ref3$props$span === void 0 ? 1 : _ref3$props$span,\n key = _ref3.key;\n if (typeof component === 'string') {\n return /*#__PURE__*/React.createElement(Cell, {\n key: \"\".concat(type, \"-\").concat(key || index),\n className: className,\n style: style,\n labelStyle: _extends(_extends({}, rootLabelStyle), labelStyle),\n contentStyle: _extends(_extends({}, rootContentStyle), contentStyle),\n span: span,\n colon: colon,\n component: component,\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n label: showLabel ? label : null,\n content: showContent ? children : null\n });\n }\n return [/*#__PURE__*/React.createElement(Cell, {\n key: \"label-\".concat(key || index),\n className: className,\n style: _extends(_extends(_extends({}, rootLabelStyle), style), labelStyle),\n span: 1,\n colon: colon,\n component: component[0],\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n label: label\n }), /*#__PURE__*/React.createElement(Cell, {\n key: \"content-\".concat(key || index),\n className: className,\n style: _extends(_extends(_extends({}, rootContentStyle), style), contentStyle),\n span: span * 2 - 1,\n component: component[1],\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n content: children\n })];\n });\n}\nvar Row = function Row(props) {\n var descContext = React.useContext(DescriptionsContext);\n var prefixCls = props.prefixCls,\n vertical = props.vertical,\n row = props.row,\n index = props.index,\n bordered = props.bordered;\n if (vertical) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"tr\", {\n key: \"label-\".concat(index),\n className: \"\".concat(prefixCls, \"-row\")\n }, renderCells(row, props, _extends({\n component: 'th',\n type: 'label',\n showLabel: true\n }, descContext))), /*#__PURE__*/React.createElement(\"tr\", {\n key: \"content-\".concat(index),\n className: \"\".concat(prefixCls, \"-row\")\n }, renderCells(row, props, _extends({\n component: 'td',\n type: 'content',\n showContent: true\n }, descContext))));\n }\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: index,\n className: \"\".concat(prefixCls, \"-row\")\n }, renderCells(row, props, _extends({\n component: bordered ? ['th', 'td'] : 'td',\n type: 'item',\n showLabel: true,\n showContent: true\n }, descContext)));\n};\nexport default Row;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/no-array-index-key */\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { cloneElement } from '../_util/reactNode';\nimport ResponsiveObserve, { responsiveArray } from '../_util/responsiveObserve';\nimport warning from '../_util/warning';\nimport DescriptionsItem from './Item';\nimport Row from './Row';\nexport var DescriptionsContext = /*#__PURE__*/React.createContext({});\nvar DEFAULT_COLUMN_MAP = {\n xxl: 3,\n xl: 3,\n lg: 3,\n md: 3,\n sm: 2,\n xs: 1\n};\nfunction getColumn(column, screens) {\n if (typeof column === 'number') {\n return column;\n }\n if (_typeof(column) === 'object') {\n for (var i = 0; i < responsiveArray.length; i++) {\n var breakpoint = responsiveArray[i];\n if (screens[breakpoint] && column[breakpoint] !== undefined) {\n return column[breakpoint] || DEFAULT_COLUMN_MAP[breakpoint];\n }\n }\n }\n return 3;\n}\nfunction getFilledItem(node, span, rowRestCol) {\n var clone = node;\n if (span === undefined || span > rowRestCol) {\n clone = cloneElement(node, {\n span: rowRestCol\n });\n process.env.NODE_ENV !== \"production\" ? warning(span === undefined, 'Descriptions', 'Sum of column `span` in a line not match `column` of Descriptions.') : void 0;\n }\n return clone;\n}\nfunction getRows(children, column) {\n var childNodes = toArray(children).filter(function (n) {\n return n;\n });\n var rows = [];\n var tmpRow = [];\n var rowRestCol = column;\n childNodes.forEach(function (node, index) {\n var _a;\n var span = (_a = node.props) === null || _a === void 0 ? void 0 : _a.span;\n var mergedSpan = span || 1;\n // Additional handle last one\n if (index === childNodes.length - 1) {\n tmpRow.push(getFilledItem(node, span, rowRestCol));\n rows.push(tmpRow);\n return;\n }\n if (mergedSpan < rowRestCol) {\n rowRestCol -= mergedSpan;\n tmpRow.push(node);\n } else {\n tmpRow.push(getFilledItem(node, mergedSpan, rowRestCol));\n rows.push(tmpRow);\n rowRestCol = column;\n tmpRow = [];\n }\n });\n return rows;\n}\nfunction Descriptions(_ref) {\n var customizePrefixCls = _ref.prefixCls,\n title = _ref.title,\n extra = _ref.extra,\n _ref$column = _ref.column,\n column = _ref$column === void 0 ? DEFAULT_COLUMN_MAP : _ref$column,\n _ref$colon = _ref.colon,\n colon = _ref$colon === void 0 ? true : _ref$colon,\n bordered = _ref.bordered,\n layout = _ref.layout,\n children = _ref.children,\n className = _ref.className,\n style = _ref.style,\n size = _ref.size,\n labelStyle = _ref.labelStyle,\n contentStyle = _ref.contentStyle;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('descriptions', customizePrefixCls);\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n screens = _React$useState2[0],\n setScreens = _React$useState2[1];\n var mergedColumn = getColumn(column, screens);\n // Responsive\n React.useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (newScreens) {\n if (_typeof(column) !== 'object') {\n return;\n }\n setScreens(newScreens);\n });\n return function () {\n ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n // Children\n var rows = getRows(children, mergedColumn);\n var contextValue = React.useMemo(function () {\n return {\n labelStyle: labelStyle,\n contentStyle: contentStyle\n };\n }, [labelStyle, contentStyle]);\n return /*#__PURE__*/React.createElement(DescriptionsContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(size), size && size !== 'default'), \"\".concat(prefixCls, \"-bordered\"), !!bordered), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className),\n style: style\n }, (title || extra) && ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-view\")\n }, /*#__PURE__*/React.createElement(\"table\", null, /*#__PURE__*/React.createElement(\"tbody\", null, rows.map(function (row, index) {\n return /*#__PURE__*/React.createElement(Row, {\n key: index,\n index: index,\n colon: colon,\n prefixCls: prefixCls,\n vertical: layout === 'vertical',\n bordered: bordered,\n row: row\n });\n }))))));\n}\nDescriptions.Item = DescriptionsItem;\nexport default Descriptions;","import * as React from 'react';\nvar DrawerContext = /*#__PURE__*/React.createContext(null);\nexport default DrawerContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar DrawerPanel = function DrawerPanel(props) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n containerRef = props.containerRef,\n id = props.id,\n onMouseEnter = props.onMouseEnter,\n onMouseOver = props.onMouseOver,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp;\n var eventHandlers = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp\n };\n // =============================== Render ===============================\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", _extends({\n id: id,\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: _objectSpread({}, style),\n \"aria-modal\": \"true\",\n role: \"dialog\",\n ref: containerRef\n }, eventHandlers), children));\n};\nif (process.env.NODE_ENV !== 'production') {\n DrawerPanel.displayName = 'DrawerPanel';\n}\nexport default DrawerPanel;","import warning from \"rc-util/es/warning\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nexport function parseWidthHeight(value) {\n if (typeof value === 'string' && String(Number(value)) === value) {\n warning(false, 'Invalid value type of `width` or `height` which should be number type instead.');\n return Number(value);\n }\n return value;\n}\nexport function warnCheck(props) {\n warning(!('wrapperClassName' in props), \"'wrapperClassName' is removed. Please use 'rootClassName' instead.\");\n warning(canUseDom() || !props.open, \"Drawer with 'open' in SSR is not work since no place to createPortal. Please move to 'useEffect' instead.\");\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport DrawerContext from './context';\nimport DrawerPanel from './DrawerPanel';\nimport { parseWidthHeight } from './util';\nvar sentinelStyle = {\n width: 0,\n height: 0,\n overflow: 'hidden',\n outline: 'none',\n position: 'absolute'\n};\nfunction DrawerPopup(props, ref) {\n var _ref, _pushConfig$distance, _pushConfig, _classNames;\n var prefixCls = props.prefixCls,\n open = props.open,\n placement = props.placement,\n inline = props.inline,\n push = props.push,\n forceRender = props.forceRender,\n autoFocus = props.autoFocus,\n keyboard = props.keyboard,\n rootClassName = props.rootClassName,\n rootStyle = props.rootStyle,\n zIndex = props.zIndex,\n className = props.className,\n id = props.id,\n style = props.style,\n motion = props.motion,\n width = props.width,\n height = props.height,\n children = props.children,\n contentWrapperStyle = props.contentWrapperStyle,\n mask = props.mask,\n maskClosable = props.maskClosable,\n maskMotion = props.maskMotion,\n maskClassName = props.maskClassName,\n maskStyle = props.maskStyle,\n afterOpenChange = props.afterOpenChange,\n onClose = props.onClose,\n onMouseEnter = props.onMouseEnter,\n onMouseOver = props.onMouseOver,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp;\n // ================================ Refs ================================\n var panelRef = React.useRef();\n var sentinelStartRef = React.useRef();\n var sentinelEndRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return panelRef.current;\n });\n var onPanelKeyDown = function onPanelKeyDown(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n switch (keyCode) {\n // Tab active\n case KeyCode.TAB:\n {\n if (keyCode === KeyCode.TAB) {\n if (!shiftKey && document.activeElement === sentinelEndRef.current) {\n var _sentinelStartRef$cur;\n (_sentinelStartRef$cur = sentinelStartRef.current) === null || _sentinelStartRef$cur === void 0 ? void 0 : _sentinelStartRef$cur.focus({\n preventScroll: true\n });\n } else if (shiftKey && document.activeElement === sentinelStartRef.current) {\n var _sentinelEndRef$curre;\n (_sentinelEndRef$curre = sentinelEndRef.current) === null || _sentinelEndRef$curre === void 0 ? void 0 : _sentinelEndRef$curre.focus({\n preventScroll: true\n });\n }\n }\n break;\n }\n // Close\n case KeyCode.ESC:\n {\n if (onClose && keyboard) {\n event.stopPropagation();\n onClose(event);\n }\n break;\n }\n }\n };\n // ========================== Control ===========================\n // Auto Focus\n React.useEffect(function () {\n if (open && autoFocus) {\n var _panelRef$current;\n (_panelRef$current = panelRef.current) === null || _panelRef$current === void 0 ? void 0 : _panelRef$current.focus({\n preventScroll: true\n });\n }\n }, [open]);\n // ============================ Push ============================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n pushed = _React$useState2[0],\n setPushed = _React$useState2[1];\n var parentContext = React.useContext(DrawerContext);\n // Merge push distance\n var pushConfig;\n if (push === false) {\n pushConfig = {\n distance: 0\n };\n } else if (push === true) {\n pushConfig = {};\n } else {\n pushConfig = push || {};\n }\n var pushDistance = (_ref = (_pushConfig$distance = (_pushConfig = pushConfig) === null || _pushConfig === void 0 ? void 0 : _pushConfig.distance) !== null && _pushConfig$distance !== void 0 ? _pushConfig$distance : parentContext === null || parentContext === void 0 ? void 0 : parentContext.pushDistance) !== null && _ref !== void 0 ? _ref : 180;\n var mergedContext = React.useMemo(function () {\n return {\n pushDistance: pushDistance,\n push: function push() {\n setPushed(true);\n },\n pull: function pull() {\n setPushed(false);\n }\n };\n }, [pushDistance]);\n // ========================= ScrollLock =========================\n // Tell parent to push\n React.useEffect(function () {\n if (open) {\n var _parentContext$push;\n parentContext === null || parentContext === void 0 ? void 0 : (_parentContext$push = parentContext.push) === null || _parentContext$push === void 0 ? void 0 : _parentContext$push.call(parentContext);\n } else {\n var _parentContext$pull;\n parentContext === null || parentContext === void 0 ? void 0 : (_parentContext$pull = parentContext.pull) === null || _parentContext$pull === void 0 ? void 0 : _parentContext$pull.call(parentContext);\n }\n }, [open]);\n // Clean up\n React.useEffect(function () {\n return function () {\n var _parentContext$pull2;\n parentContext === null || parentContext === void 0 ? void 0 : (_parentContext$pull2 = parentContext.pull) === null || _parentContext$pull2 === void 0 ? void 0 : _parentContext$pull2.call(parentContext);\n };\n }, []);\n // ============================ Mask ============================\n var maskNode = mask && /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: \"mask\"\n }, maskMotion, {\n visible: open\n }), function (_ref2, maskRef) {\n var motionMaskClassName = _ref2.className,\n motionMaskStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-mask\"), motionMaskClassName, maskClassName),\n style: _objectSpread(_objectSpread({}, motionMaskStyle), maskStyle),\n onClick: maskClosable && open ? onClose : undefined,\n ref: maskRef\n });\n });\n // =========================== Panel ============================\n var motionProps = typeof motion === 'function' ? motion(placement) : motion;\n var wrapperStyle = {};\n if (pushed && pushDistance) {\n switch (placement) {\n case 'top':\n wrapperStyle.transform = \"translateY(\".concat(pushDistance, \"px)\");\n break;\n case 'bottom':\n wrapperStyle.transform = \"translateY(\".concat(-pushDistance, \"px)\");\n break;\n case 'left':\n wrapperStyle.transform = \"translateX(\".concat(pushDistance, \"px)\");\n break;\n default:\n wrapperStyle.transform = \"translateX(\".concat(-pushDistance, \"px)\");\n break;\n }\n }\n if (placement === 'left' || placement === 'right') {\n wrapperStyle.width = parseWidthHeight(width);\n } else {\n wrapperStyle.height = parseWidthHeight(height);\n }\n var eventHandlers = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp\n };\n var panelNode = /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: \"panel\"\n }, motionProps, {\n visible: open,\n forceRender: forceRender,\n onVisibleChanged: function onVisibleChanged(nextVisible) {\n afterOpenChange === null || afterOpenChange === void 0 ? void 0 : afterOpenChange(nextVisible);\n },\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-content-wrapper-hidden\")\n }), function (_ref3, motionRef) {\n var motionClassName = _ref3.className,\n motionStyle = _ref3.style;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-content-wrapper\"), motionClassName),\n style: _objectSpread(_objectSpread(_objectSpread({}, wrapperStyle), motionStyle), contentWrapperStyle)\n }, pickAttrs(props, {\n data: true\n })), /*#__PURE__*/React.createElement(DrawerPanel, _extends({\n id: id,\n containerRef: motionRef,\n prefixCls: prefixCls,\n className: className,\n style: style\n }, eventHandlers), children));\n });\n // =========================== Render ===========================\n var containerStyle = _objectSpread({}, rootStyle);\n if (zIndex) {\n containerStyle.zIndex = zIndex;\n }\n return /*#__PURE__*/React.createElement(DrawerContext.Provider, {\n value: mergedContext\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(placement), rootClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline\"), inline), _classNames)),\n style: containerStyle,\n tabIndex: -1,\n ref: panelRef,\n onKeyDown: onPanelKeyDown\n }, maskNode, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStartRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\",\n \"data-sentinel\": \"start\"\n }), panelNode, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEndRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\",\n \"data-sentinel\": \"end\"\n })));\n}\nvar RefDrawerPopup = /*#__PURE__*/React.forwardRef(DrawerPopup);\nif (process.env.NODE_ENV !== 'production') {\n RefDrawerPopup.displayName = 'DrawerPopup';\n}\nexport default RefDrawerPopup;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Portal from '@rc-component/portal';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport DrawerPopup from './DrawerPopup';\nimport { warnCheck } from './util';\nvar Drawer = function Drawer(props) {\n var _props$open = props.open,\n open = _props$open === void 0 ? false : _props$open,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-drawer' : _props$prefixCls,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n _props$width = props.width,\n width = _props$width === void 0 ? 378 : _props$width,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n getContainer = props.getContainer,\n forceRender = props.forceRender,\n afterOpenChange = props.afterOpenChange,\n destroyOnClose = props.destroyOnClose,\n onMouseEnter = props.onMouseEnter,\n onMouseOver = props.onMouseOver,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n // ============================= Warn =============================\n if (process.env.NODE_ENV !== 'production') {\n warnCheck(props);\n }\n // ============================= Open =============================\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n mounted = _React$useState4[0],\n setMounted = _React$useState4[1];\n useLayoutEffect(function () {\n setMounted(true);\n }, []);\n var mergedOpen = mounted ? open : false;\n // ============================ Focus =============================\n var panelRef = React.useRef();\n var lastActiveRef = React.useRef();\n useLayoutEffect(function () {\n if (mergedOpen) {\n lastActiveRef.current = document.activeElement;\n }\n }, [mergedOpen]);\n // ============================= Open =============================\n var internalAfterOpenChange = function internalAfterOpenChange(nextVisible) {\n var _panelRef$current;\n setAnimatedVisible(nextVisible);\n afterOpenChange === null || afterOpenChange === void 0 ? void 0 : afterOpenChange(nextVisible);\n if (!nextVisible && lastActiveRef.current && !((_panelRef$current = panelRef.current) === null || _panelRef$current === void 0 ? void 0 : _panelRef$current.contains(lastActiveRef.current))) {\n var _lastActiveRef$curren;\n (_lastActiveRef$curren = lastActiveRef.current) === null || _lastActiveRef$curren === void 0 ? void 0 : _lastActiveRef$curren.focus({\n preventScroll: true\n });\n }\n };\n // ============================ Render ============================\n if (!forceRender && !animatedVisible && !mergedOpen && destroyOnClose) {\n return null;\n }\n var eventHandlers = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp\n };\n var drawerPopupProps = _objectSpread(_objectSpread({}, props), {}, {\n open: mergedOpen,\n prefixCls: prefixCls,\n placement: placement,\n autoFocus: autoFocus,\n keyboard: keyboard,\n width: width,\n mask: mask,\n maskClosable: maskClosable,\n inline: getContainer === false,\n afterOpenChange: internalAfterOpenChange,\n ref: panelRef\n }, eventHandlers);\n return /*#__PURE__*/React.createElement(Portal, {\n open: mergedOpen || forceRender || animatedVisible,\n autoDestroy: false,\n getContainer: getContainer,\n autoLock: mask && (mergedOpen || animatedVisible)\n }, /*#__PURE__*/React.createElement(DrawerPopup, drawerPopupProps));\n};\nif (process.env.NODE_ENV !== 'production') {\n Drawer.displayName = 'Drawer';\n}\nexport default Drawer;","// export this package's api\nimport Drawer from './Drawer';\nexport default Drawer;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport RcDrawer from 'rc-drawer';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { NoFormStyle } from '../form/context';\nimport { getTransitionName } from '../_util/motion';\nimport { tuple } from '../_util/type';\nimport warning from '../_util/warning';\nimport { NoCompactStyle } from '../space/Compact';\nvar SizeTypes = tuple('default', 'large');\nvar defaultPushState = {\n distance: 180\n};\nfunction Drawer(props) {\n var width = props.width,\n height = props.height,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? true : _props$closable,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n _props$push = props.push,\n push = _props$push === void 0 ? defaultPushState : _props$push,\n _props$closeIcon = props.closeIcon,\n closeIcon = _props$closeIcon === void 0 ? /*#__PURE__*/React.createElement(CloseOutlined, null) : _props$closeIcon,\n bodyStyle = props.bodyStyle,\n drawerStyle = props.drawerStyle,\n className = props.className,\n visible = props.visible,\n open = props.open,\n children = props.children,\n style = props.style,\n title = props.title,\n headerStyle = props.headerStyle,\n onClose = props.onClose,\n footer = props.footer,\n footerStyle = props.footerStyle,\n customizePrefixCls = props.prefixCls,\n customizeGetContainer = props.getContainer,\n extra = props.extra,\n afterVisibleChange = props.afterVisibleChange,\n _afterOpenChange = props.afterOpenChange,\n rest = __rest(props, [\"width\", \"height\", \"size\", \"closable\", \"mask\", \"push\", \"closeIcon\", \"bodyStyle\", \"drawerStyle\", \"className\", \"visible\", \"open\", \"children\", \"style\", \"title\", \"headerStyle\", \"onClose\", \"footer\", \"footerStyle\", \"prefixCls\", \"getContainer\", \"extra\", \"afterVisibleChange\", \"afterOpenChange\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('drawer', customizePrefixCls);\n var getContainer =\n // 有可能为 false,所以不能直接判断\n customizeGetContainer === undefined && getPopupContainer ? function () {\n return getPopupContainer(document.body);\n } : customizeGetContainer;\n var closeIconNode = closable && ( /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onClose,\n \"aria-label\": \"Close\",\n className: \"\".concat(prefixCls, \"-close\")\n }, closeIcon));\n [['visible', 'open'], ['afterVisibleChange', 'afterOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Drawer', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version, please use `\").concat(newName, \"` instead.\")) : void 0;\n });\n function renderHeader() {\n if (!title && !closable) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-header\"), _defineProperty({}, \"\".concat(prefixCls, \"-header-close-only\"), closable && !title && !extra)),\n style: headerStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header-title\")\n }, closeIconNode, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, title)), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra));\n }\n function renderFooter() {\n if (!footer) {\n return null;\n }\n var footerClassName = \"\".concat(prefixCls, \"-footer\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: footerClassName,\n style: footerStyle\n }, footer);\n }\n var drawerClassName = classNames(_defineProperty({\n 'no-mask': !mask\n }, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n // ============================ Size ============================\n var mergedWidth = React.useMemo(function () {\n return width !== null && width !== void 0 ? width : size === 'large' ? 736 : 378;\n }, [width, size]);\n var mergedHeight = React.useMemo(function () {\n return height !== null && height !== void 0 ? height : size === 'large' ? 736 : 378;\n }, [height, size]);\n // =========================== Motion ===========================\n var maskMotion = {\n motionName: getTransitionName(prefixCls, 'mask-motion'),\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n motionDeadline: 500\n };\n var panelMotion = function panelMotion(motionPlacement) {\n return {\n motionName: getTransitionName(prefixCls, \"panel-motion-\".concat(motionPlacement)),\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n motionDeadline: 500\n };\n };\n // =========================== Render ===========================\n return /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, /*#__PURE__*/React.createElement(RcDrawer, _extends({\n prefixCls: prefixCls,\n onClose: onClose\n }, rest, {\n open: open !== null && open !== void 0 ? open : visible,\n mask: mask,\n push: push,\n width: mergedWidth,\n height: mergedHeight,\n rootClassName: drawerClassName,\n getContainer: getContainer,\n afterOpenChange: function afterOpenChange(isOpen) {\n _afterOpenChange === null || _afterOpenChange === void 0 ? void 0 : _afterOpenChange(isOpen);\n afterVisibleChange === null || afterVisibleChange === void 0 ? void 0 : afterVisibleChange(isOpen);\n },\n maskMotion: maskMotion,\n motion: panelMotion,\n rootStyle: style\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-wrapper-body\"),\n style: _extends({}, drawerStyle)\n }, renderHeader(), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, children), renderFooter()))));\n}\nif (process.env.NODE_ENV !== 'production') {\n Drawer.displayName = 'Drawer';\n}\nexport default Drawer;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nvar ESC = KeyCode.ESC,\n TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n var visible = _ref.visible,\n setTriggerVisible = _ref.setTriggerVisible,\n triggerRef = _ref.triggerRef,\n onVisibleChange = _ref.onVisibleChange,\n autoFocus = _ref.autoFocus;\n var focusMenuRef = React.useRef(false);\n\n var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n if (visible && triggerRef.current) {\n var _triggerRef$current, _triggerRef$current$t, _triggerRef$current$t2, _triggerRef$current$t3;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$t = _triggerRef$current.triggerRef) === null || _triggerRef$current$t === void 0 ? void 0 : (_triggerRef$current$t2 = _triggerRef$current$t.current) === null || _triggerRef$current$t2 === void 0 ? void 0 : (_triggerRef$current$t3 = _triggerRef$current$t2.focus) === null || _triggerRef$current$t3 === void 0 ? void 0 : _triggerRef$current$t3.call(_triggerRef$current$t2);\n setTriggerVisible(false);\n\n if (typeof onVisibleChange === 'function') {\n onVisibleChange(false);\n }\n }\n };\n\n var focusMenu = function focusMenu() {\n var _triggerRef$current2, _triggerRef$current2$, _triggerRef$current2$2, _triggerRef$current2$3;\n\n var elements = getFocusNodeList((_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.popupRef) === null || _triggerRef$current2$ === void 0 ? void 0 : (_triggerRef$current2$2 = _triggerRef$current2$.current) === null || _triggerRef$current2$2 === void 0 ? void 0 : (_triggerRef$current2$3 = _triggerRef$current2$2.getElement) === null || _triggerRef$current2$3 === void 0 ? void 0 : _triggerRef$current2$3.call(_triggerRef$current2$2));\n var firstElement = elements[0];\n\n if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus) {\n firstElement.focus();\n focusMenuRef.current = true;\n return true;\n }\n\n return false;\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n switch (event.keyCode) {\n case ESC:\n handleCloseMenuAndReturnFocus();\n break;\n\n case TAB:\n {\n var focusResult = false;\n\n if (!focusMenuRef.current) {\n focusResult = focusMenu();\n }\n\n if (focusResult) {\n event.preventDefault();\n } else {\n handleCloseMenuAndReturnFocus();\n }\n\n break;\n }\n }\n };\n\n React.useEffect(function () {\n if (visible) {\n window.addEventListener('keydown', handleKeyDown);\n\n if (autoFocus) {\n // FIXME: hack with raf\n raf(focusMenu, 3);\n }\n\n return function () {\n window.removeEventListener('keydown', handleKeyDown);\n focusMenuRef.current = false;\n };\n }\n\n return function () {\n focusMenuRef.current = false;\n };\n }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\", \"autoFocus\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport Placements from './placements';\nimport useAccessibility from './hooks/useAccessibility';\n\nfunction Dropdown(props, ref) {\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n autoFocus = props.autoFocus,\n otherProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n useAccessibility({\n visible: mergedVisible,\n setTriggerVisible: setTriggerVisible,\n triggerRef: triggerRef,\n onVisibleChange: props.onVisibleChange,\n autoFocus: autoFocus\n });\n\n var getOverlayElement = function getOverlayElement() {\n var overlay = props.overlay;\n var overlayElement;\n\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n\n return overlayElement;\n };\n\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n setTriggerVisible(false);\n\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n };\n\n var onVisibleChange = function onVisibleChange(newVisible) {\n var onVisibleChangeProp = props.onVisibleChange;\n setTriggerVisible(newVisible);\n\n if (typeof onVisibleChangeProp === 'function') {\n onVisibleChangeProp(newVisible);\n }\n };\n\n var getMenuElement = function getMenuElement() {\n var overlayElement = getOverlayElement();\n return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), overlayElement);\n };\n\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n var overlay = props.overlay;\n\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n\n return getMenuElement();\n };\n\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n };\n\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n\n return \"\".concat(prefixCls, \"-open\");\n };\n\n var renderChildren = function renderChildren() {\n var children = props.children;\n var childrenProps = children.props ? children.props : {};\n var childClassName = classNames(childrenProps.className, getOpenClassName());\n return mergedVisible && children ? /*#__PURE__*/React.cloneElement(children, {\n className: childClassName\n }) : children;\n };\n\n var triggerHideAction = hideAction;\n\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _objectSpread(_objectSpread({\n builtinPlacements: placements\n }, otherProps), {}, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: onVisibleChange,\n onPopupClick: onClick,\n getPopupContainer: getPopupContainer\n }), renderChildren());\n}\n\nexport default /*#__PURE__*/React.forwardRef(Dropdown);","import Dropdown from './Dropdown';\nexport default Dropdown;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport { useCompactItemContext } from '../space/Compact';\nimport Dropdown from './dropdown';\nimport Space from '../space';\nvar DropdownButton = function DropdownButton(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var customizePrefixCls = props.prefixCls,\n _props$type = props.type,\n type = _props$type === void 0 ? 'default' : _props$type,\n danger = props.danger,\n disabled = props.disabled,\n loading = props.loading,\n onClick = props.onClick,\n htmlType = props.htmlType,\n children = props.children,\n className = props.className,\n menu = props.menu,\n arrow = props.arrow,\n autoFocus = props.autoFocus,\n overlay = props.overlay,\n trigger = props.trigger,\n align = props.align,\n visible = props.visible,\n open = props.open,\n onVisibleChange = props.onVisibleChange,\n onOpenChange = props.onOpenChange,\n placement = props.placement,\n getPopupContainer = props.getPopupContainer,\n href = props.href,\n _props$icon = props.icon,\n icon = _props$icon === void 0 ? /*#__PURE__*/React.createElement(EllipsisOutlined, null) : _props$icon,\n title = props.title,\n _props$buttonsRender = props.buttonsRender,\n buttonsRender = _props$buttonsRender === void 0 ? function (buttons) {\n return buttons;\n } : _props$buttonsRender,\n mouseEnterDelay = props.mouseEnterDelay,\n mouseLeaveDelay = props.mouseLeaveDelay,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n destroyPopupOnHide = props.destroyPopupOnHide,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"danger\", \"disabled\", \"loading\", \"onClick\", \"htmlType\", \"children\", \"className\", \"menu\", \"arrow\", \"autoFocus\", \"overlay\", \"trigger\", \"align\", \"visible\", \"open\", \"onVisibleChange\", \"onOpenChange\", \"placement\", \"getPopupContainer\", \"href\", \"icon\", \"title\", \"buttonsRender\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayClassName\", \"overlayStyle\", \"destroyPopupOnHide\"]);\n var prefixCls = getPrefixCls('dropdown-button', customizePrefixCls);\n var dropdownProps = {\n menu: menu,\n arrow: arrow,\n autoFocus: autoFocus,\n align: align,\n disabled: disabled,\n trigger: disabled ? [] : trigger,\n onOpenChange: onOpenChange || onVisibleChange,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayClassName: overlayClassName,\n overlayStyle: overlayStyle,\n destroyPopupOnHide: destroyPopupOnHide\n };\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var classes = classNames(prefixCls, compactItemClassnames, className);\n if ('overlay' in props) {\n dropdownProps.overlay = overlay;\n }\n if ('open' in props) {\n dropdownProps.open = open;\n } else if ('visible' in props) {\n dropdownProps.open = visible;\n }\n if ('placement' in props) {\n dropdownProps.placement = placement;\n } else {\n dropdownProps.placement = direction === 'rtl' ? 'bottomLeft' : 'bottomRight';\n }\n var leftButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n disabled: disabled,\n loading: loading,\n onClick: onClick,\n htmlType: htmlType,\n href: href,\n title: title\n }, children);\n var rightButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n icon: icon\n });\n var _buttonsRender = buttonsRender([leftButton, rightButton]),\n _buttonsRender2 = _slicedToArray(_buttonsRender, 2),\n leftButtonToRender = _buttonsRender2[0],\n rightButtonToRender = _buttonsRender2[1];\n return /*#__PURE__*/React.createElement(Space.Compact, _extends({\n className: classes,\n size: compactSize,\n block: true\n }, restProps), leftButtonToRender, /*#__PURE__*/React.createElement(Dropdown, _extends({}, dropdownProps), rightButtonToRender));\n};\nDropdownButton.__ANT_BUTTON = true;\nexport default DropdownButton;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcDropdown from 'rc-dropdown';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport Menu from '../menu';\nimport { ConfigContext } from '../config-provider';\nimport { OverrideProvider } from '../menu/OverrideContext';\nimport getPlacements from '../_util/placements';\nimport { cloneElement } from '../_util/reactNode';\nimport { tuple } from '../_util/type';\nimport warning from '../_util/warning';\nimport DropdownButton from './dropdown-button';\nimport { NoCompactStyle } from '../space/Compact';\nvar Placements = tuple('topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight', 'top', 'bottom');\nvar Dropdown = function Dropdown(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Dropdown', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version, please use `\").concat(newName, \"` instead.\")) : void 0;\n });\n process.env.NODE_ENV !== \"production\" ? warning(!('overlay' in props), 'Dropdown', '`overlay` is deprecated. Please use `menu` instead.') : void 0;\n }\n var getTransitionName = function getTransitionName() {\n var rootPrefixCls = getPrefixCls();\n var _props$placement = props.placement,\n placement = _props$placement === void 0 ? '' : _props$placement,\n transitionName = props.transitionName;\n if (transitionName !== undefined) {\n return transitionName;\n }\n if (placement.includes('top')) {\n return \"\".concat(rootPrefixCls, \"-slide-down\");\n }\n return \"\".concat(rootPrefixCls, \"-slide-up\");\n };\n var getPlacement = function getPlacement() {\n var placement = props.placement;\n if (!placement) {\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n }\n if (placement.includes('Center')) {\n var newPlacement = placement.slice(0, placement.indexOf('Center'));\n process.env.NODE_ENV !== \"production\" ? warning(!placement.includes('Center'), 'Dropdown', \"You are using '\".concat(placement, \"' placement in Dropdown, which is deprecated. Try to use '\").concat(newPlacement, \"' instead.\")) : void 0;\n return newPlacement;\n }\n return placement;\n };\n var menu = props.menu,\n arrow = props.arrow,\n customizePrefixCls = props.prefixCls,\n children = props.children,\n trigger = props.trigger,\n disabled = props.disabled,\n dropdownRender = props.dropdownRender,\n getPopupContainer = props.getPopupContainer,\n overlayClassName = props.overlayClassName,\n visible = props.visible,\n open = props.open,\n onVisibleChange = props.onVisibleChange,\n onOpenChange = props.onOpenChange,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.15 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n _props$autoAdjustOver = props.autoAdjustOverflow,\n autoAdjustOverflow = _props$autoAdjustOver === void 0 ? true : _props$autoAdjustOver;\n var prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n var child = React.Children.only(children);\n var dropdownTrigger = cloneElement(child, {\n className: classNames(\"\".concat(prefixCls, \"-trigger\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), child.props.className),\n disabled: disabled\n });\n var triggerActions = disabled ? [] : trigger;\n var alignPoint;\n if (triggerActions && triggerActions.includes('contextMenu')) {\n alignPoint = true;\n }\n // =========================== Visible ============================\n var _useMergedState = useMergedState(false, {\n value: open !== undefined ? open : visible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpen = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n var onInnerOpenChange = useEvent(function (nextOpen) {\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(nextOpen);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);\n setOpen(nextOpen);\n });\n // =========================== Overlay ============================\n var overlayClassNameCustomized = classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'));\n var builtinPlacements = getPlacements({\n arrowPointAtCenter: _typeof(arrow) === 'object' && arrow.pointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n var onMenuClick = React.useCallback(function () {\n setOpen(false);\n }, []);\n var renderOverlay = function renderOverlay() {\n // rc-dropdown already can process the function of overlay, but we have check logic here.\n // So we need render the element to check and pass back to rc-dropdown.\n var overlay = props.overlay;\n var overlayNode;\n if (menu === null || menu === void 0 ? void 0 : menu.items) {\n overlayNode = /*#__PURE__*/React.createElement(Menu, _extends({}, menu));\n } else if (typeof overlay === 'function') {\n overlayNode = overlay();\n } else {\n overlayNode = overlay;\n }\n if (dropdownRender) {\n overlayNode = dropdownRender(overlayNode);\n }\n overlayNode = React.Children.only(typeof overlayNode === 'string' ? /*#__PURE__*/React.createElement(\"span\", null, overlayNode) : overlayNode);\n return /*#__PURE__*/React.createElement(OverrideProvider, {\n prefixCls: \"\".concat(prefixCls, \"-menu\"),\n expandIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-menu-submenu-arrow\")\n }, /*#__PURE__*/React.createElement(RightOutlined, {\n className: \"\".concat(prefixCls, \"-menu-submenu-arrow-icon\")\n })),\n mode: \"vertical\",\n selectable: false,\n onClick: onMenuClick,\n validator: function validator(_ref3) {\n var mode = _ref3.mode;\n // Warning if use other mode\n process.env.NODE_ENV !== \"production\" ? warning(!mode || mode === 'vertical', 'Dropdown', \"mode=\\\"\".concat(mode, \"\\\" is not supported for Dropdown's Menu.\")) : void 0;\n }\n }, /*#__PURE__*/React.createElement(NoCompactStyle, null, overlayNode));\n };\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(RcDropdown, _extends({\n alignPoint: alignPoint\n }, props, {\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n visible: mergedOpen,\n builtinPlacements: builtinPlacements,\n arrow: !!arrow,\n overlayClassName: overlayClassNameCustomized,\n prefixCls: prefixCls,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n transitionName: getTransitionName(),\n trigger: triggerActions,\n overlay: renderOverlay,\n placement: getPlacement(),\n onVisibleChange: onInnerOpenChange\n }), dropdownTrigger);\n};\nDropdown.Button = DropdownButton;\nexport default Dropdown;","import Dropdown from './dropdown';\nexport default Dropdown;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar Empty = function Empty() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('empty-img-default');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"184\",\n height: \"152\",\n viewBox: \"0 0 184 152\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(24 31.67)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"67.797\",\n cy: \"106.89\",\n rx: \"67.797\",\n ry: \"12.668\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-1\"),\n d: \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-2\"),\n d: \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n transform: \"translate(13.56)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-3\"),\n d: \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-4\"),\n d: \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-5\"),\n d: \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n transform: \"translate(149.65 15.383)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: \"20.654\",\n cy: \"3.167\",\n rx: \"2.849\",\n ry: \"2.815\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n }))));\n};\nexport default Empty;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar Simple = function Simple() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('empty-img-simple');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"64\",\n height: \"41\",\n viewBox: \"0 0 64 41\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 1)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"32\",\n cy: \"33\",\n rx: \"32\",\n ry: \"7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n className: \"\".concat(prefixCls, \"-path\")\n }))));\n};\nexport default Simple;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nvar defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nvar simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\nvar Empty = function Empty(_a) {\n var className = _a.className,\n customizePrefixCls = _a.prefixCls,\n _a$image = _a.image,\n image = _a$image === void 0 ? defaultEmptyImg : _a$image,\n description = _a.description,\n children = _a.children,\n imageStyle = _a.imageStyle,\n restProps = __rest(_a, [\"className\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Empty\"\n }, function (contextLocale) {\n var prefixCls = getPrefixCls('empty', customizePrefixCls);\n var des = typeof description !== 'undefined' ? description : contextLocale.description;\n var alt = typeof des === 'string' ? des : 'empty';\n var imageNode = null;\n if (typeof image === 'string') {\n imageNode = /*#__PURE__*/React.createElement(\"img\", {\n alt: alt,\n src: image\n });\n } else {\n imageNode = image;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-normal\"), image === simpleEmptyImg), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className)\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-image\"),\n style: imageStyle\n }, imageNode), des && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, children));\n });\n};\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nexport default Empty;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nexport var FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: function itemRef() {}\n});\nexport var NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nexport var FormProvider = function FormProvider(props) {\n var providerProps = omit(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(RcFormProvider, _extends({}, providerProps));\n};\nexport var FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});\nexport var FormItemInputContext = /*#__PURE__*/React.createContext({});\nexport var NoFormStyle = function NoFormStyle(_ref) {\n var children = _ref.children,\n status = _ref.status,\n override = _ref.override;\n var formItemInputContext = useContext(FormItemInputContext);\n var newFormItemInputContext = useMemo(function () {\n var newContext = _extends({}, formItemInputContext);\n if (override) {\n delete newContext.isFormItemInput;\n }\n if (status) {\n delete newContext.status;\n delete newContext.hasFeedback;\n delete newContext.feedbackIcon;\n }\n return newContext;\n }, [status, override, formItemInputContext]);\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: newFormItemInputContext\n }, children);\n};","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useDebounce(value) {\n var _React$useState = React.useState(value),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n cacheValue = _React$useState2[0],\n setCacheValue = _React$useState2[1];\n React.useEffect(function () {\n var timeout = setTimeout(function () {\n setCacheValue(value);\n }, value.length ? 0 : 10);\n return function () {\n clearTimeout(timeout);\n };\n }, [value]);\n return cacheValue;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport collapseMotion from '../_util/motion';\nimport { FormItemPrefixContext } from './context';\nimport useDebounce from './hooks/useDebounce';\nvar EMPTY_LIST = [];\nfunction toErrorEntity(error, errorStatus, prefix) {\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n return {\n key: typeof error === 'string' ? error : \"\".concat(prefix, \"-\").concat(index),\n error: error,\n errorStatus: errorStatus\n };\n}\nexport default function ErrorList(_ref) {\n var help = _ref.help,\n helpStatus = _ref.helpStatus,\n _ref$errors = _ref.errors,\n errors = _ref$errors === void 0 ? EMPTY_LIST : _ref$errors,\n _ref$warnings = _ref.warnings,\n warnings = _ref$warnings === void 0 ? EMPTY_LIST : _ref$warnings,\n rootClassName = _ref.className,\n fieldId = _ref.fieldId,\n onVisibleChanged = _ref.onVisibleChanged;\n var _React$useContext = React.useContext(FormItemPrefixContext),\n prefixCls = _React$useContext.prefixCls;\n var _React$useContext2 = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext2.getPrefixCls;\n var baseClassName = \"\".concat(prefixCls, \"-item-explain\");\n var rootPrefixCls = getPrefixCls();\n // We have to debounce here again since somewhere use ErrorList directly still need no shaking\n // ref: https://github.com/ant-design/ant-design/issues/36336\n var debounceErrors = useDebounce(errors);\n var debounceWarnings = useDebounce(warnings);\n var fullKeyList = React.useMemo(function () {\n if (help !== undefined && help !== null) {\n return [toErrorEntity(help, helpStatus, 'help')];\n }\n return [].concat(_toConsumableArray(debounceErrors.map(function (error, index) {\n return toErrorEntity(error, 'error', 'error', index);\n })), _toConsumableArray(debounceWarnings.map(function (warning, index) {\n return toErrorEntity(warning, 'warning', 'warning', index);\n })));\n }, [help, helpStatus, debounceErrors, debounceWarnings]);\n var helpProps = {};\n if (fieldId) {\n helpProps.id = \"\".concat(fieldId, \"_help\");\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n motionDeadline: collapseMotion.motionDeadline,\n motionName: \"\".concat(rootPrefixCls, \"-show-help\"),\n visible: !!fullKeyList.length,\n onVisibleChanged: onVisibleChanged\n }, function (holderProps) {\n var holderClassName = holderProps.className,\n holderStyle = holderProps.style;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, helpProps, {\n className: classNames(baseClassName, holderClassName, rootClassName),\n style: holderStyle,\n role: \"alert\"\n }), /*#__PURE__*/React.createElement(CSSMotionList, _extends({\n keys: fullKeyList\n }, collapseMotion, {\n motionName: \"\".concat(rootPrefixCls, \"-show-help-item\"),\n component: false\n }), function (itemProps) {\n var key = itemProps.key,\n error = itemProps.error,\n errorStatus = itemProps.errorStatus,\n itemClassName = itemProps.className,\n itemStyle = itemProps.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(itemClassName, _defineProperty({}, \"\".concat(baseClassName, \"-\").concat(errorStatus), errorStatus)),\n style: itemStyle\n }, error);\n }));\n });\n}","// Compute what scrolling needs to be done on required scrolling boxes for target to be in view\n\n// The type names here are named after the spec to make it easier to find more information around what they mean:\n// To reduce churn and reduce things that need be maintained things from the official TS DOM library is used here\n// https://drafts.csswg.org/cssom-view/\n\n// For a definition on what is \"block flow direction\" exactly, check this: https://drafts.csswg.org/css-writing-modes-4/#block-flow-direction\n\n// add support for visualViewport object currently implemented in chrome\ninterface visualViewport {\n height: number\n width: number\n}\n\ntype ScrollLogicalPosition = 'start' | 'center' | 'end' | 'nearest'\n// This new option is tracked in this PR, which is the most likely candidate at the time: https://github.com/w3c/csswg-drafts/pull/1805\ntype ScrollMode = 'always' | 'if-needed'\n// New option that skips auto-scrolling all nodes with overflow: hidden set\n// See FF implementation: https://hg.mozilla.org/integration/fx-team/rev/c48c3ec05012#l7.18\ntype SkipOverflowHiddenElements = boolean\n\ninterface Options {\n block?: ScrollLogicalPosition\n inline?: ScrollLogicalPosition\n scrollMode?: ScrollMode\n boundary?: CustomScrollBoundary\n skipOverflowHiddenElements?: SkipOverflowHiddenElements\n}\n\n// Custom behavior, not in any spec\ntype CustomScrollBoundaryCallback = (parent: Element) => boolean\ntype CustomScrollBoundary = Element | CustomScrollBoundaryCallback | null\ninterface CustomScrollAction {\n el: Element\n top: number\n left: number\n}\n\n// @TODO better shadowdom test, 11 = document fragment\nfunction isElement(el: any): el is Element {\n return typeof el === 'object' && el != null && el.nodeType === 1\n}\n\nfunction canOverflow(\n overflow: string | null,\n skipOverflowHiddenElements?: boolean\n) {\n if (skipOverflowHiddenElements && overflow === 'hidden') {\n return false\n }\n\n return overflow !== 'visible' && overflow !== 'clip'\n}\n\nfunction getFrameElement(el: Element) {\n if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n return null\n }\n\n try {\n return el.ownerDocument.defaultView.frameElement\n } catch (e) {\n return null\n }\n}\n\nfunction isHiddenByFrame(el: Element): boolean {\n const frame = getFrameElement(el)\n if (!frame) {\n return false\n }\n\n return (\n frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth\n )\n}\n\nfunction isScrollable(el: Element, skipOverflowHiddenElements?: boolean) {\n if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n const style = getComputedStyle(el, null)\n return (\n canOverflow(style.overflowY, skipOverflowHiddenElements) ||\n canOverflow(style.overflowX, skipOverflowHiddenElements) ||\n isHiddenByFrame(el)\n )\n }\n\n return false\n}\n/**\n * Find out which edge to align against when logical scroll position is \"nearest\"\n * Interesting fact: \"nearest\" works similarily to \"if-needed\", if the element is fully visible it will not scroll it\n *\n * Legends:\n * ┌────────┐ ┏ ━ ━ ━ ┓\n * │ target │ frame\n * └────────┘ ┗ ━ ━ ━ ┛\n */\nfunction alignNearest(\n scrollingEdgeStart: number,\n scrollingEdgeEnd: number,\n scrollingSize: number,\n scrollingBorderStart: number,\n scrollingBorderEnd: number,\n elementEdgeStart: number,\n elementEdgeEnd: number,\n elementSize: number\n) {\n /**\n * If element edge A and element edge B are both outside scrolling box edge A and scrolling box edge B\n *\n * ┌──┐\n * ┏━│━━│━┓\n * │ │\n * ┃ │ │ ┃ do nothing\n * │ │\n * ┗━│━━│━┛\n * └──┘\n *\n * If element edge C and element edge D are both outside scrolling box edge C and scrolling box edge D\n *\n * ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐\n * │┃ ┃│ do nothing\n * └───────────┘\n * ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart < scrollingEdgeStart &&\n elementEdgeEnd > scrollingEdgeEnd) ||\n (elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd)\n ) {\n return 0\n }\n\n /**\n * If element edge A is outside scrolling box edge A and element height is less than scrolling box height\n *\n * ┌──┐\n * ┏━│━━│━┓ ┏━┌━━┐━┓\n * └──┘ │ │\n * from ┃ ┃ to ┃ └──┘ ┃\n *\n * ┗━ ━━ ━┛ ┗━ ━━ ━┛\n *\n * If element edge B is outside scrolling box edge B and element height is greater than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━┌━━┐━┓\n * │ │\n * from ┃ ┌──┐ ┃ to ┃ │ │ ┃\n * │ │ │ │\n * ┗━│━━│━┛ ┗━│━━│━┛\n * │ │ └──┘\n * │ │\n * └──┘\n *\n * If element edge C is outside scrolling box edge C and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * │ ┃ │ ┃ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * ┃ │ ┃ │ ┃ ┃ │\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize) ||\n (elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize)\n ) {\n return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart\n }\n\n /**\n * If element edge B is outside scrolling box edge B and element height is less than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━ ━━ ━┓\n *\n * from ┃ ┃ to ┃ ┌──┐ ┃\n * ┌──┐ │ │\n * ┗━│━━│━┛ ┗━└━━┘━┛\n * └──┘\n *\n * If element edge A is outside scrolling box edge A and element height is greater than scrolling box height\n *\n * ┌──┐\n * │ │\n * │ │ ┌──┐\n * ┏━│━━│━┓ ┏━│━━│━┓\n * │ │ │ │\n * from ┃ └──┘ ┃ to ┃ │ │ ┃\n * │ │\n * ┗━ ━━ ━┛ ┗━└━━┘━┛\n *\n * If element edge C is outside scrolling box edge C and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * │ ┃ │ ┃ │ ┃ ┃\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * ┃ │ ┃ │ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n */\n if (\n (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize) ||\n (elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize)\n ) {\n return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd\n }\n\n return 0\n}\n\nexport default (target: Element, options: Options): CustomScrollAction[] => {\n //TODO: remove this hack when microbundle will support typescript >= 4.0\n const windowWithViewport = (window as unknown) as Window & {\n visualViewport: visualViewport\n }\n\n const {\n scrollMode,\n block,\n inline,\n boundary,\n skipOverflowHiddenElements,\n } = options\n // Allow using a callback to check the boundary\n // The default behavior is to check if the current target matches the boundary element or not\n // If undefined it'll check that target is never undefined (can happen as we recurse up the tree)\n const checkBoundary =\n typeof boundary === 'function' ? boundary : (node: any) => node !== boundary\n\n if (!isElement(target)) {\n throw new TypeError('Invalid target')\n }\n\n // Used to handle the top most element that can be scrolled\n const scrollingElement = document.scrollingElement || document.documentElement\n\n // Collect all the scrolling boxes, as defined in the spec: https://drafts.csswg.org/cssom-view/#scrolling-box\n const frames: Element[] = []\n let cursor: Element | null = target\n while (isElement(cursor) && checkBoundary(cursor)) {\n // Move cursor to parent\n cursor = cursor.parentElement\n\n // Stop when we reach the viewport\n if (cursor === scrollingElement) {\n frames.push(cursor)\n break\n }\n\n // Skip document.body if it's not the scrollingElement and documentElement isn't independently scrollable\n if (\n cursor != null &&\n cursor === document.body &&\n isScrollable(cursor) &&\n !isScrollable(document.documentElement)\n ) {\n continue\n }\n\n // Now we check if the element is scrollable, this code only runs if the loop haven't already hit the viewport or a custom boundary\n if (cursor != null && isScrollable(cursor, skipOverflowHiddenElements)) {\n frames.push(cursor)\n }\n }\n\n // Support pinch-zooming properly, making sure elements scroll into the visual viewport\n // Browsers that don't support visualViewport will report the layout viewport dimensions on document.documentElement.clientWidth/Height\n // and viewport dimensions on window.innerWidth/Height\n // https://www.quirksmode.org/mobile/viewports2.html\n // https://bokand.github.io/viewport/index.html\n const viewportWidth = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.width\n : innerWidth\n const viewportHeight = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.height\n : innerHeight\n\n // Newer browsers supports scroll[X|Y], page[X|Y]Offset is\n const viewportX = window.scrollX || pageXOffset\n const viewportY = window.scrollY || pageYOffset\n\n const {\n height: targetHeight,\n width: targetWidth,\n top: targetTop,\n right: targetRight,\n bottom: targetBottom,\n left: targetLeft,\n } = target.getBoundingClientRect()\n\n // These values mutate as we loop through and generate scroll coordinates\n let targetBlock: number =\n block === 'start' || block === 'nearest'\n ? targetTop\n : block === 'end'\n ? targetBottom\n : targetTop + targetHeight / 2 // block === 'center\n let targetInline: number =\n inline === 'center'\n ? targetLeft + targetWidth / 2\n : inline === 'end'\n ? targetRight\n : targetLeft // inline === 'start || inline === 'nearest\n\n // Collect new scroll positions\n const computations: CustomScrollAction[] = []\n // In chrome there's no longer a difference between caching the `frames.length` to a var or not, so we don't in this case (size > speed anyways)\n for (let index = 0; index < frames.length; index++) {\n const frame = frames[index]\n\n // @TODO add a shouldScroll hook here that allows userland code to take control\n\n const {\n height,\n width,\n top,\n right,\n bottom,\n left,\n } = frame.getBoundingClientRect()\n\n // If the element is already visible we can end it here\n // @TODO targetBlock and targetInline should be taken into account to be compliant with https://github.com/w3c/csswg-drafts/pull/1805/files#diff-3c17f0e43c20f8ecf89419d49e7ef5e0R1333\n if (\n scrollMode === 'if-needed' &&\n targetTop >= 0 &&\n targetLeft >= 0 &&\n targetBottom <= viewportHeight &&\n targetRight <= viewportWidth &&\n targetTop >= top &&\n targetBottom <= bottom &&\n targetLeft >= left &&\n targetRight <= right\n ) {\n // Break the loop and return the computations for things that are not fully visible\n return computations\n }\n\n const frameStyle = getComputedStyle(frame)\n const borderLeft = parseInt(frameStyle.borderLeftWidth as string, 10)\n const borderTop = parseInt(frameStyle.borderTopWidth as string, 10)\n const borderRight = parseInt(frameStyle.borderRightWidth as string, 10)\n const borderBottom = parseInt(frameStyle.borderBottomWidth as string, 10)\n\n let blockScroll: number = 0\n let inlineScroll: number = 0\n\n // The property existance checks for offfset[Width|Height] is because only HTMLElement objects have them, but any Element might pass by here\n // @TODO find out if the \"as HTMLElement\" overrides can be dropped\n const scrollbarWidth =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth -\n (frame as HTMLElement).clientWidth -\n borderLeft -\n borderRight\n : 0\n const scrollbarHeight =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight -\n (frame as HTMLElement).clientHeight -\n borderTop -\n borderBottom\n : 0\n\n if (scrollingElement === frame) {\n // Handle viewport logic (document.documentElement or document.body)\n\n if (block === 'start') {\n blockScroll = targetBlock\n } else if (block === 'end') {\n blockScroll = targetBlock - viewportHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n viewportY,\n viewportY + viewportHeight,\n viewportHeight,\n borderTop,\n borderBottom,\n viewportY + targetBlock,\n viewportY + targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - viewportHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline\n } else if (inline === 'center') {\n inlineScroll = targetInline - viewportWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - viewportWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n viewportX,\n viewportX + viewportWidth,\n viewportWidth,\n borderLeft,\n borderRight,\n viewportX + targetInline,\n viewportX + targetInline + targetWidth,\n targetWidth\n )\n }\n\n // Apply scroll position offsets and ensure they are within bounds\n // @TODO add more test cases to cover this 100%\n blockScroll = Math.max(0, blockScroll + viewportY)\n inlineScroll = Math.max(0, inlineScroll + viewportX)\n } else {\n // Handle each scrolling frame that might exist between the target and the viewport\n\n if (block === 'start') {\n blockScroll = targetBlock - top - borderTop\n } else if (block === 'end') {\n blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n top,\n bottom,\n height,\n borderTop,\n borderBottom + scrollbarHeight,\n targetBlock,\n targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline - left - borderLeft\n } else if (inline === 'center') {\n inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - right + borderRight + scrollbarWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n left,\n right,\n width,\n borderLeft,\n borderRight + scrollbarWidth,\n targetInline,\n targetInline + targetWidth,\n targetWidth\n )\n }\n\n const { scrollLeft, scrollTop } = frame\n // Ensure scroll coordinates are not out of bounds while applying scroll offsets\n blockScroll = Math.max(\n 0,\n Math.min(\n scrollTop + blockScroll,\n frame.scrollHeight - height + scrollbarHeight\n )\n )\n inlineScroll = Math.max(\n 0,\n Math.min(\n scrollLeft + inlineScroll,\n frame.scrollWidth - width + scrollbarWidth\n )\n )\n\n // Cache the offset so that parent frames can scroll this into view correctly\n targetBlock += scrollTop - blockScroll\n targetInline += scrollLeft - inlineScroll\n }\n\n computations.push({ el: frame, top: blockScroll, left: inlineScroll })\n }\n\n return computations\n}\n","import compute from 'compute-scroll-into-view';\n\nfunction isOptionsObject(options) {\n return options === Object(options) && Object.keys(options).length !== 0;\n}\n\nfunction defaultBehavior(actions, behavior) {\n if (behavior === void 0) {\n behavior = 'auto';\n }\n\n var canSmoothScroll = ('scrollBehavior' in document.body.style);\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n\n if (el.scroll && canSmoothScroll) {\n el.scroll({\n top: top,\n left: left,\n behavior: behavior\n });\n } else {\n el.scrollTop = top;\n el.scrollLeft = left;\n }\n });\n}\n\nfunction getOptions(options) {\n if (options === false) {\n return {\n block: 'end',\n inline: 'nearest'\n };\n }\n\n if (isOptionsObject(options)) {\n return options;\n }\n\n return {\n block: 'start',\n inline: 'nearest'\n };\n}\n\nfunction scrollIntoView(target, options) {\n var targetIsDetached = !target.ownerDocument.documentElement.contains(target);\n\n if (isOptionsObject(options) && typeof options.behavior === 'function') {\n return options.behavior(targetIsDetached ? [] : compute(target, options));\n }\n\n if (targetIsDetached) {\n return;\n }\n\n var computeOptions = getOptions(options);\n return defaultBehavior(compute(target, computeOptions), computeOptions.behavior);\n}\n\nexport default scrollIntoView;","// form item name black list. in form ,you can use form.id get the form item element.\n// use object hasOwnProperty will get better performance if black list is longer.\nvar formItemNameBlackList = ['parentNode'];\n// default form item id prefix.\nvar defaultItemNamePrefixCls = 'form_item';\nexport function toArray(candidate) {\n if (candidate === undefined || candidate === false) return [];\n return Array.isArray(candidate) ? candidate : [candidate];\n}\nexport function getFieldId(namePath, formName) {\n if (!namePath.length) return undefined;\n var mergedId = namePath.join('_');\n if (formName) {\n return \"\".concat(formName, \"_\").concat(mergedId);\n }\n var isIllegalName = formItemNameBlackList.includes(mergedId);\n return isIllegalName ? \"\".concat(defaultItemNamePrefixCls, \"_\").concat(mergedId) : mergedId;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useForm as useRcForm } from 'rc-field-form';\nimport * as React from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { getFieldId, toArray } from '../util';\nfunction toNamePathStr(name) {\n var namePath = toArray(name);\n return namePath.join('_');\n}\nexport default function useForm(form) {\n var _useRcForm = useRcForm(),\n _useRcForm2 = _slicedToArray(_useRcForm, 1),\n rcForm = _useRcForm2[0];\n var itemsRef = React.useRef({});\n var wrapForm = React.useMemo(function () {\n return form !== null && form !== void 0 ? form : _extends(_extends({}, rcForm), {\n __INTERNAL__: {\n itemRef: function itemRef(name) {\n return function (node) {\n var namePathStr = toNamePathStr(name);\n if (node) {\n itemsRef.current[namePathStr] = node;\n } else {\n delete itemsRef.current[namePathStr];\n }\n };\n }\n },\n scrollToField: function scrollToField(name) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var namePath = toArray(name);\n var fieldId = getFieldId(namePath, wrapForm.__INTERNAL__.name);\n var node = fieldId ? document.getElementById(fieldId) : null;\n if (node) {\n scrollIntoView(node, _extends({\n scrollMode: 'if-needed',\n block: 'nearest'\n }, options));\n }\n },\n getFieldInstance: function getFieldInstance(name) {\n var namePathStr = toNamePathStr(name);\n return itemsRef.current[namePathStr];\n }\n });\n }, [form, rcForm]);\n return [wrapForm];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport FieldForm, { List, useWatch } from 'rc-field-form';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext, { DisabledContextProvider } from '../config-provider/DisabledContext';\nimport SizeContext, { SizeContextProvider } from '../config-provider/SizeContext';\nimport { FormContext, FormProvider } from './context';\nimport ValidateMessagesContext from './validateMessagesContext';\nimport useForm from './hooks/useForm';\nvar InternalForm = function InternalForm(props, ref) {\n var contextSize = React.useContext(SizeContext);\n var contextDisabled = React.useContext(DisabledContext);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n contextForm = _React$useContext.form;\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n _props$size = props.size,\n size = _props$size === void 0 ? contextSize : _props$size,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? contextDisabled : _props$disabled,\n form = props.form,\n colon = props.colon,\n labelAlign = props.labelAlign,\n labelWrap = props.labelWrap,\n labelCol = props.labelCol,\n wrapperCol = props.wrapperCol,\n hideRequiredMark = props.hideRequiredMark,\n _props$layout = props.layout,\n layout = _props$layout === void 0 ? 'horizontal' : _props$layout,\n scrollToFirstError = props.scrollToFirstError,\n requiredMark = props.requiredMark,\n onFinishFailed = props.onFinishFailed,\n name = props.name,\n restFormProps = __rest(props, [\"prefixCls\", \"className\", \"size\", \"disabled\", \"form\", \"colon\", \"labelAlign\", \"labelWrap\", \"labelCol\", \"wrapperCol\", \"hideRequiredMark\", \"layout\", \"scrollToFirstError\", \"requiredMark\", \"onFinishFailed\", \"name\"]);\n var contextValidateMessages = React.useContext(ValidateMessagesContext);\n var mergedRequiredMark = useMemo(function () {\n if (requiredMark !== undefined) {\n return requiredMark;\n }\n if (contextForm && contextForm.requiredMark !== undefined) {\n return contextForm.requiredMark;\n }\n if (hideRequiredMark) {\n return false;\n }\n return true;\n }, [hideRequiredMark, requiredMark, contextForm]);\n var mergedColon = colon !== null && colon !== void 0 ? colon : contextForm === null || contextForm === void 0 ? void 0 : contextForm.colon;\n var prefixCls = getPrefixCls('form', customizePrefixCls);\n var formClassName = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(layout), true), \"\".concat(prefixCls, \"-hide-required-mark\"), mergedRequiredMark === false), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-\").concat(size), size), className);\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n wrapForm = _useForm2[0];\n var __INTERNAL__ = wrapForm.__INTERNAL__;\n __INTERNAL__.name = name;\n var formContextValue = useMemo(function () {\n return {\n name: name,\n labelAlign: labelAlign,\n labelCol: labelCol,\n labelWrap: labelWrap,\n wrapperCol: wrapperCol,\n vertical: layout === 'vertical',\n colon: mergedColon,\n requiredMark: mergedRequiredMark,\n itemRef: __INTERNAL__.itemRef,\n form: wrapForm\n };\n }, [name, labelAlign, labelCol, wrapperCol, layout, mergedColon, mergedRequiredMark, wrapForm]);\n React.useImperativeHandle(ref, function () {\n return wrapForm;\n });\n var onInternalFinishFailed = function onInternalFinishFailed(errorInfo) {\n onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errorInfo);\n var defaultScrollToFirstError = {\n block: 'nearest'\n };\n if (scrollToFirstError && errorInfo.errorFields.length) {\n if (_typeof(scrollToFirstError) === 'object') {\n defaultScrollToFirstError = scrollToFirstError;\n }\n wrapForm.scrollToField(errorInfo.errorFields[0].name, defaultScrollToFirstError);\n }\n };\n return /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: disabled\n }, /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(FormProvider, _extends({}, {\n // This is not list in API, we pass with spread\n validateMessages: contextValidateMessages\n }), /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: formContextValue\n }, /*#__PURE__*/React.createElement(FieldForm, _extends({\n id: name\n }, restFormProps, {\n name: name,\n onFinishFailed: onInternalFinishFailed,\n form: wrapForm,\n className: formClassName\n }))))));\n};\nvar Form = /*#__PURE__*/React.forwardRef(InternalForm);\nexport { useForm, List, useWatch };\nexport default Form;","import { useContext } from 'react';\nimport { FormItemInputContext } from '../context';\nimport warning from '../../_util/warning';\nvar useFormItemStatus = function useFormItemStatus() {\n var _useContext = useContext(FormItemInputContext),\n status = _useContext.status;\n process.env.NODE_ENV !== \"production\" ? warning(status !== undefined, 'Form.Item', \"Form.Item.useStatus should be used under Form.Item component. For more information: \".concat(window.location.protocol, \"//\").concat(window.location.host, \"/components/form-cn/#Form.Item.useStatus\")) : void 0;\n return {\n status: status\n };\n};\nexport default useFormItemStatus;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport QuestionCircleOutlined from \"@ant-design/icons/es/icons/QuestionCircleOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Col from '../grid/col';\nimport { useLocaleReceiver } from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport Tooltip from '../tooltip';\nimport { FormContext } from './context';\nfunction toTooltipProps(tooltip) {\n if (!tooltip) {\n return null;\n }\n if (_typeof(tooltip) === 'object' && ! /*#__PURE__*/React.isValidElement(tooltip)) {\n return tooltip;\n }\n return {\n title: tooltip\n };\n}\nvar FormItemLabel = function FormItemLabel(_ref) {\n var prefixCls = _ref.prefixCls,\n label = _ref.label,\n htmlFor = _ref.htmlFor,\n labelCol = _ref.labelCol,\n labelAlign = _ref.labelAlign,\n colon = _ref.colon,\n required = _ref.required,\n requiredMark = _ref.requiredMark,\n tooltip = _ref.tooltip;\n var _useLocaleReceiver = useLocaleReceiver('Form'),\n _useLocaleReceiver2 = _slicedToArray(_useLocaleReceiver, 1),\n formLocale = _useLocaleReceiver2[0];\n if (!label) return null;\n return /*#__PURE__*/React.createElement(FormContext.Consumer, {\n key: \"label\"\n }, function (_ref2) {\n var vertical = _ref2.vertical,\n contextLabelAlign = _ref2.labelAlign,\n contextLabelCol = _ref2.labelCol,\n labelWrap = _ref2.labelWrap,\n contextColon = _ref2.colon;\n var _a;\n var mergedLabelCol = labelCol || contextLabelCol || {};\n var mergedLabelAlign = labelAlign || contextLabelAlign;\n var labelClsBasic = \"\".concat(prefixCls, \"-item-label\");\n var labelColClassName = classNames(labelClsBasic, mergedLabelAlign === 'left' && \"\".concat(labelClsBasic, \"-left\"), mergedLabelCol.className, _defineProperty({}, \"\".concat(labelClsBasic, \"-wrap\"), !!labelWrap));\n var labelChildren = label;\n // Keep label is original where there should have no colon\n var computedColon = colon === true || contextColon !== false && colon !== false;\n var haveColon = computedColon && !vertical;\n // Remove duplicated user input colon\n if (haveColon && typeof label === 'string' && label.trim() !== '') {\n labelChildren = label.replace(/[:|:]\\s*$/, '');\n }\n // Tooltip\n var tooltipProps = toTooltipProps(tooltip);\n if (tooltipProps) {\n var _tooltipProps$icon = tooltipProps.icon,\n icon = _tooltipProps$icon === void 0 ? /*#__PURE__*/React.createElement(QuestionCircleOutlined, null) : _tooltipProps$icon,\n restTooltipProps = __rest(tooltipProps, [\"icon\"]);\n var tooltipNode = /*#__PURE__*/React.createElement(Tooltip, _extends({}, restTooltipProps), /*#__PURE__*/React.cloneElement(icon, {\n className: \"\".concat(prefixCls, \"-item-tooltip\"),\n title: ''\n }));\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, tooltipNode);\n }\n // Add required mark if optional\n if (requiredMark === 'optional' && !required) {\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-optional\"),\n title: \"\"\n }, (formLocale === null || formLocale === void 0 ? void 0 : formLocale.optional) || ((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.optional)));\n }\n var labelClassName = classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-item-required\"), required), \"\".concat(prefixCls, \"-item-required-mark-optional\"), requiredMark === 'optional'), \"\".concat(prefixCls, \"-item-no-colon\"), !computedColon));\n return /*#__PURE__*/React.createElement(Col, _extends({}, mergedLabelCol, {\n className: labelColClassName\n }), /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: htmlFor,\n className: labelClassName,\n title: typeof label === 'string' ? label : ''\n }, labelChildren));\n });\n};\nexport default FormItemLabel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Col from '../grid/col';\nimport { FormContext, FormItemPrefixContext } from './context';\nimport ErrorList from './ErrorList';\nvar FormItemInput = function FormItemInput(props) {\n var prefixCls = props.prefixCls,\n status = props.status,\n wrapperCol = props.wrapperCol,\n children = props.children,\n errors = props.errors,\n warnings = props.warnings,\n formItemRender = props._internalItemRender,\n extra = props.extra,\n help = props.help,\n fieldId = props.fieldId,\n marginBottom = props.marginBottom,\n onErrorVisibleChanged = props.onErrorVisibleChanged;\n var baseClassName = \"\".concat(prefixCls, \"-item\");\n var formContext = React.useContext(FormContext);\n var mergedWrapperCol = wrapperCol || formContext.wrapperCol || {};\n var className = classNames(\"\".concat(baseClassName, \"-control\"), mergedWrapperCol.className);\n // Pass to sub FormItem should not with col info\n var subFormContext = React.useMemo(function () {\n return _extends({}, formContext);\n }, [formContext]);\n delete subFormContext.labelCol;\n delete subFormContext.wrapperCol;\n var inputDom = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(baseClassName, \"-control-input\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(baseClassName, \"-control-input-content\")\n }, children));\n var formItemContext = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n status: status\n };\n }, [prefixCls, status]);\n var errorListDom = marginBottom !== null || errors.length || warnings.length ? ( /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'flex',\n flexWrap: 'nowrap'\n }\n }, /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: formItemContext\n }, /*#__PURE__*/React.createElement(ErrorList, {\n fieldId: fieldId,\n errors: errors,\n warnings: warnings,\n help: help,\n helpStatus: status,\n className: \"\".concat(baseClassName, \"-explain-connected\"),\n onVisibleChanged: onErrorVisibleChanged\n })), !!marginBottom && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: 0,\n height: marginBottom\n }\n }))) : null;\n var extraProps = {};\n if (fieldId) {\n extraProps.id = \"\".concat(fieldId, \"_extra\");\n }\n // If extra = 0, && will goes wrong\n // 0&&error -> 0\n var extraDom = extra ? ( /*#__PURE__*/React.createElement(\"div\", _extends({}, extraProps, {\n className: \"\".concat(baseClassName, \"-extra\")\n }), extra)) : null;\n var dom = formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? formItemRender.render(props, {\n input: inputDom,\n errorList: errorListDom,\n extra: extraDom\n }) : ( /*#__PURE__*/React.createElement(React.Fragment, null, inputDom, errorListDom, extraDom));\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: subFormContext\n }, /*#__PURE__*/React.createElement(Col, _extends({}, mergedWrapperCol, {\n className: className\n }), dom));\n};\nexport default FormItemInput;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport omit from \"rc-util/es/omit\";\nimport { Row } from '../../grid';\nimport FormItemLabel from '../FormItemLabel';\nimport FormItemInput from '../FormItemInput';\nimport { FormContext, FormItemInputContext, NoStyleItemContext } from '../context';\nimport useDebounce from '../hooks/useDebounce';\nvar iconMap = {\n success: CheckCircleFilled,\n warning: ExclamationCircleFilled,\n error: CloseCircleFilled,\n validating: LoadingOutlined\n};\nexport default function ItemHolder(props) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n help = props.help,\n errors = props.errors,\n warnings = props.warnings,\n validateStatus = props.validateStatus,\n meta = props.meta,\n hasFeedback = props.hasFeedback,\n hidden = props.hidden,\n children = props.children,\n fieldId = props.fieldId,\n isRequired = props.isRequired,\n onSubItemMetaChange = props.onSubItemMetaChange,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"help\", \"errors\", \"warnings\", \"validateStatus\", \"meta\", \"hasFeedback\", \"hidden\", \"children\", \"fieldId\", \"isRequired\", \"onSubItemMetaChange\"]);\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n var _React$useContext = React.useContext(FormContext),\n requiredMark = _React$useContext.requiredMark;\n // ======================== Margin ========================\n var itemRef = React.useRef(null);\n var debounceErrors = useDebounce(errors);\n var debounceWarnings = useDebounce(warnings);\n var hasHelp = help !== undefined && help !== null;\n var hasError = !!(hasHelp || errors.length || warnings.length);\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n marginBottom = _React$useState2[0],\n setMarginBottom = _React$useState2[1];\n useLayoutEffect(function () {\n if (hasError && itemRef.current) {\n var itemStyle = getComputedStyle(itemRef.current);\n setMarginBottom(parseInt(itemStyle.marginBottom, 10));\n }\n }, [hasError]);\n var onErrorVisibleChanged = function onErrorVisibleChanged(nextVisible) {\n if (!nextVisible) {\n setMarginBottom(null);\n }\n };\n // ======================== Status ========================\n var mergedValidateStatus = '';\n if (validateStatus !== undefined) {\n mergedValidateStatus = validateStatus;\n } else if (meta.validating) {\n mergedValidateStatus = 'validating';\n } else if (debounceErrors.length) {\n mergedValidateStatus = 'error';\n } else if (debounceWarnings.length) {\n mergedValidateStatus = 'warning';\n } else if (meta.touched) {\n mergedValidateStatus = 'success';\n }\n var formItemStatusContext = React.useMemo(function () {\n var feedbackIcon;\n if (hasFeedback) {\n var IconNode = mergedValidateStatus && iconMap[mergedValidateStatus];\n feedbackIcon = IconNode ? ( /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(itemPrefixCls, \"-feedback-icon\"), \"\".concat(itemPrefixCls, \"-feedback-icon-\").concat(mergedValidateStatus))\n }, /*#__PURE__*/React.createElement(IconNode, null))) : null;\n }\n return {\n status: mergedValidateStatus,\n hasFeedback: hasFeedback,\n feedbackIcon: feedbackIcon,\n isFormItemInput: true\n };\n }, [mergedValidateStatus, hasFeedback]);\n // ======================== Render ========================\n var itemClassName = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, itemPrefixCls, true), \"\".concat(itemPrefixCls, \"-with-help\"), hasHelp || debounceErrors.length || debounceWarnings.length), \"\".concat(className), !!className), \"\".concat(itemPrefixCls, \"-has-feedback\"), mergedValidateStatus && hasFeedback), \"\".concat(itemPrefixCls, \"-has-success\"), mergedValidateStatus === 'success'), \"\".concat(itemPrefixCls, \"-has-warning\"), mergedValidateStatus === 'warning'), \"\".concat(itemPrefixCls, \"-has-error\"), mergedValidateStatus === 'error'), \"\".concat(itemPrefixCls, \"-is-validating\"), mergedValidateStatus === 'validating'), \"\".concat(itemPrefixCls, \"-hidden\"), hidden);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(itemClassName),\n style: style,\n ref: itemRef\n }, /*#__PURE__*/React.createElement(Row, _extends({\n className: \"\".concat(itemPrefixCls, \"-row\")\n }, omit(restProps, ['_internalItemRender', 'colon', 'dependencies', 'extra', 'fieldKey', 'getValueFromEvent', 'getValueProps', 'htmlFor', 'id', 'initialValue', 'isListField', 'label', 'labelAlign', 'labelCol', 'labelWrap', 'messageVariables', 'name', 'normalize', 'noStyle', 'preserve', 'required', 'requiredMark', 'rules', 'shouldUpdate', 'trigger', 'tooltip', 'validateFirst', 'validateTrigger', 'valuePropName', 'wrapperCol'])), /*#__PURE__*/React.createElement(FormItemLabel, _extends({\n htmlFor: fieldId,\n required: isRequired,\n requiredMark: requiredMark\n }, props, {\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(FormItemInput, _extends({}, props, meta, {\n errors: debounceErrors,\n warnings: debounceWarnings,\n prefixCls: prefixCls,\n status: mergedValidateStatus,\n help: help,\n marginBottom: marginBottom,\n onErrorVisibleChanged: onErrorVisibleChanged\n }), /*#__PURE__*/React.createElement(NoStyleItemContext.Provider, {\n value: onSubItemMetaChange\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: formItemStatusContext\n }, children)))), !!marginBottom && ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(itemPrefixCls, \"-margin-offset\"),\n style: {\n marginBottom: -marginBottom\n }\n })));\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { Field, FieldContext, ListContext } from 'rc-field-form';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useFormItemStatus from '../hooks/useFormItemStatus';\nimport { ConfigContext } from '../../config-provider';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nimport { tuple } from '../../_util/type';\nimport warning from '../../_util/warning';\nimport { FormContext, NoStyleItemContext } from '../context';\nimport useFrameState from '../hooks/useFrameState';\nimport useItemRef from '../hooks/useItemRef';\nimport { getFieldId, toArray } from '../util';\nimport ItemHolder from './ItemHolder';\nvar NAME_SPLIT = '__SPLIT__';\nvar ValidateStatuses = tuple('success', 'warning', 'error', 'validating', '');\nvar MemoInput = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (prev, next) {\n return prev.value === next.value && prev.update === next.update && prev.childProps.length === next.childProps.length && prev.childProps.every(function (value, index) {\n return value === next.childProps[index];\n });\n});\nfunction hasValidName(name) {\n if (name === null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', '`null` is passed as `name` property') : void 0;\n }\n return !(name === undefined || name === null);\n}\nfunction genEmptyMeta() {\n return {\n errors: [],\n warnings: [],\n touched: false,\n validating: false,\n validated: false,\n name: []\n };\n}\nfunction InternalFormItem(props) {\n var name = props.name,\n noStyle = props.noStyle,\n dependencies = props.dependencies,\n customizePrefixCls = props.prefixCls,\n shouldUpdate = props.shouldUpdate,\n rules = props.rules,\n children = props.children,\n required = props.required,\n label = props.label,\n messageVariables = props.messageVariables,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? 'onChange' : _props$trigger,\n validateTrigger = props.validateTrigger,\n hidden = props.hidden;\n var _useContext = useContext(ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var _useContext2 = useContext(FormContext),\n formName = _useContext2.name;\n var isRenderProps = typeof children === 'function';\n var notifyParentMetaChange = useContext(NoStyleItemContext);\n var _useContext3 = useContext(FieldContext),\n contextValidateTrigger = _useContext3.validateTrigger;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : contextValidateTrigger;\n var hasName = hasValidName(name);\n var prefixCls = getPrefixCls('form', customizePrefixCls);\n // ========================= MISC =========================\n // Get `noStyle` required info\n var listContext = React.useContext(ListContext);\n var fieldKeyPathRef = React.useRef();\n // ======================== Errors ========================\n // >>>>> Collect sub field errors\n var _useFrameState = useFrameState({}),\n _useFrameState2 = _slicedToArray(_useFrameState, 2),\n subFieldErrors = _useFrameState2[0],\n setSubFieldErrors = _useFrameState2[1];\n // >>>>> Current field errors\n var _useState = useState(function () {\n return genEmptyMeta();\n }),\n _useState2 = _slicedToArray(_useState, 2),\n meta = _useState2[0],\n setMeta = _useState2[1];\n var onMetaChange = function onMetaChange(nextMeta) {\n // This keyInfo is not correct when field is removed\n // Since origin keyManager no longer keep the origin key anymore\n // Which means we need cache origin one and reuse when removed\n var keyInfo = listContext === null || listContext === void 0 ? void 0 : listContext.getKey(nextMeta.name);\n // Destroy will reset all the meta\n setMeta(nextMeta.destroy ? genEmptyMeta() : nextMeta, true);\n // Bump to parent since noStyle\n if (noStyle && notifyParentMetaChange) {\n var namePath = nextMeta.name;\n if (!nextMeta.destroy) {\n if (keyInfo !== undefined) {\n var _keyInfo = _slicedToArray(keyInfo, 2),\n fieldKey = _keyInfo[0],\n restPath = _keyInfo[1];\n namePath = [fieldKey].concat(_toConsumableArray(restPath));\n fieldKeyPathRef.current = namePath;\n }\n } else {\n // Use origin cache data\n namePath = fieldKeyPathRef.current || namePath;\n }\n notifyParentMetaChange(nextMeta, namePath);\n }\n };\n // >>>>> Collect noStyle Field error to the top FormItem\n var onSubItemMetaChange = function onSubItemMetaChange(subMeta, uniqueKeys) {\n // Only `noStyle` sub item will trigger\n setSubFieldErrors(function (prevSubFieldErrors) {\n var clone = _extends({}, prevSubFieldErrors);\n // name: ['user', 1] + key: [4] = ['user', 4]\n var mergedNamePath = [].concat(_toConsumableArray(subMeta.name.slice(0, -1)), _toConsumableArray(uniqueKeys));\n var mergedNameKey = mergedNamePath.join(NAME_SPLIT);\n if (subMeta.destroy) {\n // Remove\n delete clone[mergedNameKey];\n } else {\n // Update\n clone[mergedNameKey] = subMeta;\n }\n return clone;\n });\n };\n // >>>>> Get merged errors\n var _React$useMemo = React.useMemo(function () {\n var errorList = _toConsumableArray(meta.errors);\n var warningList = _toConsumableArray(meta.warnings);\n Object.values(subFieldErrors).forEach(function (subFieldError) {\n errorList.push.apply(errorList, _toConsumableArray(subFieldError.errors || []));\n warningList.push.apply(warningList, _toConsumableArray(subFieldError.warnings || []));\n });\n return [errorList, warningList];\n }, [subFieldErrors, meta.errors, meta.warnings]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n mergedErrors = _React$useMemo2[0],\n mergedWarnings = _React$useMemo2[1];\n // ===================== Children Ref =====================\n var getItemRef = useItemRef();\n // ======================== Render ========================\n function renderLayout(baseChildren, fieldId, isRequired) {\n if (noStyle && !hidden) {\n return baseChildren;\n }\n return /*#__PURE__*/React.createElement(ItemHolder, _extends({\n key: \"row\"\n }, props, {\n prefixCls: prefixCls,\n fieldId: fieldId,\n isRequired: isRequired,\n errors: mergedErrors,\n warnings: mergedWarnings,\n meta: meta,\n onSubItemMetaChange: onSubItemMetaChange\n }), baseChildren);\n }\n if (!hasName && !isRenderProps && !dependencies) {\n return renderLayout(children);\n }\n var variables = {};\n if (typeof label === 'string') {\n variables.label = label;\n } else if (name) {\n variables.label = String(name);\n }\n if (messageVariables) {\n variables = _extends(_extends({}, variables), messageVariables);\n }\n // >>>>> With Field\n return /*#__PURE__*/React.createElement(Field, _extends({}, props, {\n messageVariables: variables,\n trigger: trigger,\n validateTrigger: mergedValidateTrigger,\n onMetaChange: onMetaChange\n }), function (control, renderMeta, context) {\n var mergedName = toArray(name).length && renderMeta ? renderMeta.name : [];\n var fieldId = getFieldId(mergedName, formName);\n var isRequired = required !== undefined ? required : !!(rules && rules.some(function (rule) {\n if (rule && _typeof(rule) === 'object' && rule.required && !rule.warningOnly) {\n return true;\n }\n if (typeof rule === 'function') {\n var ruleEntity = rule(context);\n return ruleEntity && ruleEntity.required && !ruleEntity.warningOnly;\n }\n return false;\n }));\n // ======================= Children =======================\n var mergedControl = _extends({}, control);\n var childNode = null;\n process.env.NODE_ENV !== \"production\" ? warning(!(shouldUpdate && dependencies), 'Form.Item', \"`shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.\") : void 0;\n if (Array.isArray(children) && hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', 'A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item.') : void 0;\n childNode = children;\n } else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {\n process.env.NODE_ENV !== \"production\" ? warning(!!(shouldUpdate || dependencies), 'Form.Item', 'A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!hasName, 'Form.Item', 'A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.') : void 0;\n } else if (dependencies && !isRenderProps && !hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', 'Must set `name` or use a render function when `dependencies` is set.') : void 0;\n } else if (isValidElement(children)) {\n process.env.NODE_ENV !== \"production\" ? warning(children.props.defaultValue === undefined, 'Form.Item', '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.') : void 0;\n var childProps = _extends(_extends({}, children.props), mergedControl);\n if (!childProps.id) {\n childProps.id = fieldId;\n }\n if (props.help || mergedErrors.length > 0 || mergedWarnings.length > 0 || props.extra) {\n var describedbyArr = [];\n if (props.help || mergedErrors.length > 0) {\n describedbyArr.push(\"\".concat(fieldId, \"_help\"));\n }\n if (props.extra) {\n describedbyArr.push(\"\".concat(fieldId, \"_extra\"));\n }\n childProps['aria-describedby'] = describedbyArr.join(' ');\n }\n if (mergedErrors.length > 0) {\n childProps['aria-invalid'] = 'true';\n }\n if (isRequired) {\n childProps['aria-required'] = 'true';\n }\n if (supportRef(children)) {\n childProps.ref = getItemRef(mergedName, children);\n }\n // We should keep user origin event handler\n var triggers = new Set([].concat(_toConsumableArray(toArray(trigger)), _toConsumableArray(toArray(mergedValidateTrigger))));\n triggers.forEach(function (eventName) {\n childProps[eventName] = function () {\n var _a2, _c2;\n var _a, _b, _c;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_a = mergedControl[eventName]) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [mergedControl].concat(args));\n (_c = (_b = children.props)[eventName]) === null || _c === void 0 ? void 0 : (_c2 = _c).call.apply(_c2, [_b].concat(args));\n };\n });\n // List of props that need to be watched for changes -> if changes are detected in MemoInput -> rerender\n var watchingChildProps = [childProps['aria-required'], childProps['aria-invalid'], childProps['aria-describedby']];\n childNode = /*#__PURE__*/React.createElement(MemoInput, {\n value: mergedControl[props.valuePropName || 'value'],\n update: children,\n childProps: watchingChildProps\n }, cloneElement(children, childProps));\n } else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {\n childNode = children(context);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(!mergedName.length, 'Form.Item', '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.') : void 0;\n childNode = children;\n }\n return renderLayout(childNode, fieldId, isRequired);\n });\n}\nvar FormItem = InternalFormItem;\nFormItem.useStatus = useFormItemStatus;\nexport default FormItem;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nexport default function useFrameState(defaultValue) {\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n var frameRef = useRef(null);\n var batchRef = useRef([]);\n var destroyRef = useRef(false);\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n raf.cancel(frameRef.current);\n frameRef.current = null;\n };\n }, []);\n function setFrameValue(updater) {\n if (destroyRef.current) {\n return;\n }\n if (frameRef.current === null) {\n batchRef.current = [];\n frameRef.current = raf(function () {\n frameRef.current = null;\n setValue(function (prevValue) {\n var current = prevValue;\n batchRef.current.forEach(function (func) {\n current = func(current);\n });\n return current;\n });\n });\n }\n batchRef.current.push(updater);\n }\n return [value, setFrameValue];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { FormContext } from '../context';\nexport default function useItemRef() {\n var _React$useContext = React.useContext(FormContext),\n itemRef = _React$useContext.itemRef;\n var cacheRef = React.useRef({});\n function getRef(name, children) {\n var childrenRef = children && _typeof(children) === 'object' && children.ref;\n var nameStr = name.join('_');\n if (cacheRef.current.name !== nameStr || cacheRef.current.originRef !== childrenRef) {\n cacheRef.current.name = nameStr;\n cacheRef.current.originRef = childrenRef;\n cacheRef.current.ref = composeRef(itemRef(name), childrenRef);\n }\n return cacheRef.current.ref;\n }\n return getRef;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { List } from 'rc-field-form';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nimport { FormItemPrefixContext } from './context';\nvar FormList = function FormList(_a) {\n var customizePrefixCls = _a.prefixCls,\n children = _a.children,\n props = __rest(_a, [\"prefixCls\", \"children\"]);\n process.env.NODE_ENV !== \"production\" ? warning(!!props.name, 'Form.List', 'Miss `name` prop.') : void 0;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('form', customizePrefixCls);\n var contextValue = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n status: 'error'\n };\n }, [prefixCls]);\n return /*#__PURE__*/React.createElement(List, _extends({}, props), function (fields, operation, meta) {\n return /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: contextValue\n }, children(fields.map(function (field) {\n return _extends(_extends({}, field), {\n fieldKey: field.key\n });\n }), operation, {\n errors: meta.errors,\n warnings: meta.warnings\n }));\n });\n};\nexport default FormList;","import warning from '../_util/warning';\nimport { FormProvider } from './context';\nimport ErrorList from './ErrorList';\nimport InternalForm, { useForm, useWatch } from './Form';\nimport Item from './FormItem';\nimport List from './FormList';\nimport useFormInstance from './hooks/useFormInstance';\nvar Form = InternalForm;\nForm.Item = Item;\nForm.List = List;\nForm.ErrorList = ErrorList;\nForm.useForm = useForm;\nForm.useFormInstance = useFormInstance;\nForm.useWatch = useWatch;\nForm.Provider = FormProvider;\nForm.create = function () {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form', 'antd v4 removed `Form.create`. Please remove or use `@ant-design/compatible` instead.') : void 0;\n};\nexport default Form;","import { useContext } from 'react';\nimport { FormContext } from '../context';\nexport default function useFormInstance() {\n var _useContext = useContext(FormContext),\n form = _useContext.form;\n return form;\n}","import { createContext } from 'react';\n// ZombieJ: We export single file here since\n// ConfigProvider use this which will make loop deps\n// to import whole `rc-field-form`\nexport default /*#__PURE__*/createContext(undefined);","import { createContext } from 'react';\nvar RowContext = /*#__PURE__*/createContext({});\nexport default RowContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport RowContext from './RowContext';\nfunction parseFlex(flex) {\n if (typeof flex === 'number') {\n return \"\".concat(flex, \" \").concat(flex, \" auto\");\n }\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return \"0 0 \".concat(flex);\n }\n return flex;\n}\nvar sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nvar Col = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useContext2 = React.useContext(RowContext),\n gutter = _React$useContext2.gutter,\n wrap = _React$useContext2.wrap,\n supportFlexGap = _React$useContext2.supportFlexGap;\n var customizePrefixCls = props.prefixCls,\n span = props.span,\n order = props.order,\n offset = props.offset,\n push = props.push,\n pull = props.pull,\n className = props.className,\n children = props.children,\n flex = props.flex,\n style = props.style,\n others = __rest(props, [\"prefixCls\", \"span\", \"order\", \"offset\", \"push\", \"pull\", \"className\", \"children\", \"flex\", \"style\"]);\n var prefixCls = getPrefixCls('col', customizePrefixCls);\n var sizeClassObj = {};\n sizes.forEach(function (size) {\n var sizeProps = {};\n var propSize = props[size];\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (_typeof(propSize) === 'object') {\n sizeProps = propSize || {};\n }\n delete others[size];\n sizeClassObj = _extends(_extends({}, sizeClassObj), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(size, \"-\").concat(sizeProps.span), sizeProps.span !== undefined), \"\".concat(prefixCls, \"-\").concat(size, \"-order-\").concat(sizeProps.order), sizeProps.order || sizeProps.order === 0), \"\".concat(prefixCls, \"-\").concat(size, \"-offset-\").concat(sizeProps.offset), sizeProps.offset || sizeProps.offset === 0), \"\".concat(prefixCls, \"-\").concat(size, \"-push-\").concat(sizeProps.push), sizeProps.push || sizeProps.push === 0), \"\".concat(prefixCls, \"-\").concat(size, \"-pull-\").concat(sizeProps.pull), sizeProps.pull || sizeProps.pull === 0), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'));\n });\n var classes = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(span), span !== undefined), \"\".concat(prefixCls, \"-order-\").concat(order), order), \"\".concat(prefixCls, \"-offset-\").concat(offset), offset), \"\".concat(prefixCls, \"-push-\").concat(push), push), \"\".concat(prefixCls, \"-pull-\").concat(pull), pull), className, sizeClassObj);\n var mergedStyle = {};\n // Horizontal gutter use padding\n if (gutter && gutter[0] > 0) {\n var horizontalGutter = gutter[0] / 2;\n mergedStyle.paddingLeft = horizontalGutter;\n mergedStyle.paddingRight = horizontalGutter;\n }\n // Vertical gutter use padding when gap not support\n if (gutter && gutter[1] > 0 && !supportFlexGap) {\n var verticalGutter = gutter[1] / 2;\n mergedStyle.paddingTop = verticalGutter;\n mergedStyle.paddingBottom = verticalGutter;\n }\n if (flex) {\n mergedStyle.flex = parseFlex(flex);\n // Hack for Firefox to avoid size issue\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n if (wrap === false && !mergedStyle.minWidth) {\n mergedStyle.minWidth = 0;\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n style: _extends(_extends({}, mergedStyle), style),\n className: classes,\n ref: ref\n }), children);\n});\nif (process.env.NODE_ENV !== 'production') {\n Col.displayName = 'Col';\n}\nexport default Col;","import { useEffect, useRef } from 'react';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\nfunction useBreakpoint() {\n var refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var screensRef = useRef({});\n var forceUpdate = useForceUpdate();\n useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (supportScreens) {\n screensRef.current = supportScreens;\n if (refreshOnChange) {\n forceUpdate();\n }\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n return screensRef.current;\n}\nexport default useBreakpoint;","import Col from './col';\nimport useInternalBreakpoint from './hooks/useBreakpoint';\nimport Row from './row';\n// Do not export params\nfunction useBreakpoint() {\n return useInternalBreakpoint();\n}\nexport { Row, Col };\nexport default {\n useBreakpoint: useBreakpoint\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport ResponsiveObserve, { responsiveArray } from '../_util/responsiveObserve';\nimport { tuple } from '../_util/type';\nimport RowContext from './RowContext';\nvar RowAligns = tuple('top', 'middle', 'bottom', 'stretch');\nvar RowJustify = tuple('start', 'end', 'center', 'space-around', 'space-between', 'space-evenly');\nfunction useMergePropByScreen(oriProp, screen) {\n var _React$useState = React.useState(typeof oriProp === 'string' ? oriProp : ''),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prop = _React$useState2[0],\n setProp = _React$useState2[1];\n var clacMergeAlignOrJustify = function clacMergeAlignOrJustify() {\n if (typeof oriProp === 'string') {\n setProp(oriProp);\n }\n if (_typeof(oriProp) !== 'object') {\n return;\n }\n for (var i = 0; i < responsiveArray.length; i++) {\n var breakpoint = responsiveArray[i];\n // if do not match, do nothing\n if (!screen[breakpoint]) continue;\n var curVal = oriProp[breakpoint];\n if (curVal !== undefined) {\n setProp(curVal);\n return;\n }\n }\n };\n React.useEffect(function () {\n clacMergeAlignOrJustify();\n }, [JSON.stringify(oriProp), screen]);\n return prop;\n}\nvar Row = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n justify = props.justify,\n align = props.align,\n className = props.className,\n style = props.style,\n children = props.children,\n _props$gutter = props.gutter,\n gutter = _props$gutter === void 0 ? 0 : _props$gutter,\n wrap = props.wrap,\n others = __rest(props, [\"prefixCls\", \"justify\", \"align\", \"className\", \"style\", \"children\", \"gutter\", \"wrap\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useState3 = React.useState({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n screens = _React$useState4[0],\n setScreens = _React$useState4[1];\n // to save screens info when responsiveObserve callback had been call\n var _React$useState5 = React.useState({\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false\n }),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n curScreens = _React$useState6[0],\n setCurScreens = _React$useState6[1];\n // ================================== calc reponsive data ==================================\n var mergeAlign = useMergePropByScreen(align, curScreens);\n var mergeJustify = useMergePropByScreen(justify, curScreens);\n var supportFlexGap = useFlexGapSupport();\n var gutterRef = React.useRef(gutter);\n // ================================== Effect ==================================\n React.useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (screen) {\n setCurScreens(screen);\n var currentGutter = gutterRef.current || 0;\n if (!Array.isArray(currentGutter) && _typeof(currentGutter) === 'object' || Array.isArray(currentGutter) && (_typeof(currentGutter[0]) === 'object' || _typeof(currentGutter[1]) === 'object')) {\n setScreens(screen);\n }\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n // ================================== Render ==================================\n var getGutter = function getGutter() {\n var results = [undefined, undefined];\n var normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];\n normalizedGutter.forEach(function (g, index) {\n if (_typeof(g) === 'object') {\n for (var i = 0; i < responsiveArray.length; i++) {\n var breakpoint = responsiveArray[i];\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g;\n }\n });\n return results;\n };\n var prefixCls = getPrefixCls('row', customizePrefixCls);\n var gutters = getGutter();\n var classes = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-no-wrap\"), wrap === false), \"\".concat(prefixCls, \"-\").concat(mergeJustify), mergeJustify), \"\".concat(prefixCls, \"-\").concat(mergeAlign), mergeAlign), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n // Add gutter related style\n var rowStyle = {};\n var horizontalGutter = gutters[0] != null && gutters[0] > 0 ? gutters[0] / -2 : undefined;\n var verticalGutter = gutters[1] != null && gutters[1] > 0 ? gutters[1] / -2 : undefined;\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter;\n rowStyle.marginRight = horizontalGutter;\n }\n if (supportFlexGap) {\n // Set gap direct if flex gap support\n var _gutters = _slicedToArray(gutters, 2);\n rowStyle.rowGap = _gutters[1];\n } else if (verticalGutter) {\n rowStyle.marginTop = verticalGutter;\n rowStyle.marginBottom = verticalGutter;\n }\n // \"gutters\" is a new array in each rendering phase, it'll make 'React.useMemo' effectless.\n // So we deconstruct \"gutters\" variable here.\n var _gutters2 = _slicedToArray(gutters, 2),\n gutterH = _gutters2[0],\n gutterV = _gutters2[1];\n var rowContext = React.useMemo(function () {\n return {\n gutter: [gutterH, gutterV],\n wrap: wrap,\n supportFlexGap: supportFlexGap\n };\n }, [gutterH, gutterV, wrap, supportFlexGap]);\n return /*#__PURE__*/React.createElement(RowContext.Provider, {\n value: rowContext\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classes,\n style: _extends(_extends({}, rowStyle), style),\n ref: ref\n }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Row.displayName = 'Row';\n}\nexport default Row;","// This icon file is generated automatically.\nvar UpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z\" } }] }, \"name\": \"up\", \"theme\": \"outlined\" };\nexport default UpOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport UpOutlinedSvg from \"@ant-design/icons-svg/es/asn/UpOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar UpOutlined = function UpOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: UpOutlinedSvg\n }));\n};\nUpOutlined.displayName = 'UpOutlined';\nexport default /*#__PURE__*/React.forwardRef(UpOutlined);","export function supportBigInt() {\n return typeof BigInt === 'function';\n}","import { supportBigInt } from './supportUtil';\n/**\n * Format string number to readable number\n */\nexport function trimNumber(numStr) {\n var str = numStr.trim();\n var negative = str.startsWith('-');\n if (negative) {\n str = str.slice(1);\n }\n str = str\n // Remove decimal 0. `1.000` => `1.`, `1.100` => `1.1`\n .replace(/(\\.\\d*[^0])0*$/, '$1')\n // Remove useless decimal. `1.` => `1`\n .replace(/\\.0*$/, '')\n // Remove integer 0. `0001` => `1`, 000.1' => `.1`\n .replace(/^0+/, '');\n if (str.startsWith('.')) {\n str = \"0\".concat(str);\n }\n var trimStr = str || '0';\n var splitNumber = trimStr.split('.');\n var integerStr = splitNumber[0] || '0';\n var decimalStr = splitNumber[1] || '0';\n if (integerStr === '0' && decimalStr === '0') {\n negative = false;\n }\n var negativeStr = negative ? '-' : '';\n return {\n negative: negative,\n negativeStr: negativeStr,\n trimStr: trimStr,\n integerStr: integerStr,\n decimalStr: decimalStr,\n fullStr: \"\".concat(negativeStr).concat(trimStr)\n };\n}\nexport function isE(number) {\n var str = String(number);\n return !Number.isNaN(Number(str)) && str.includes('e');\n}\n/**\n * [Legacy] Convert 1e-9 to 0.000000001.\n * This may lose some precision if user really want 1e-9.\n */\nexport function getNumberPrecision(number) {\n var numStr = String(number);\n if (isE(number)) {\n var precision = Number(numStr.slice(numStr.indexOf('e-') + 2));\n var decimalMatch = numStr.match(/\\.(\\d+)/);\n if (decimalMatch === null || decimalMatch === void 0 ? void 0 : decimalMatch[1]) {\n precision += decimalMatch[1].length;\n }\n return precision;\n }\n return numStr.includes('.') && validateNumber(numStr) ? numStr.length - numStr.indexOf('.') - 1 : 0;\n}\n/**\n * Convert number (includes scientific notation) to -xxx.yyy format\n */\nexport function num2str(number) {\n var numStr = String(number);\n if (isE(number)) {\n if (number > Number.MAX_SAFE_INTEGER) {\n return String(supportBigInt() ? BigInt(number).toString() : Number.MAX_SAFE_INTEGER);\n }\n if (number < Number.MIN_SAFE_INTEGER) {\n return String(supportBigInt() ? BigInt(number).toString() : Number.MIN_SAFE_INTEGER);\n }\n numStr = number.toFixed(getNumberPrecision(numStr));\n }\n return trimNumber(numStr).fullStr;\n}\nexport function validateNumber(num) {\n if (typeof num === 'number') {\n return !Number.isNaN(num);\n }\n // Empty\n if (!num) {\n return false;\n }\n return (\n // Normal type: 11.28\n /^\\s*-?\\d+(\\.\\d+)?\\s*$/.test(num) ||\n // Pre-number: 1.\n /^\\s*-?\\d+\\.\\s*$/.test(num) ||\n // Post-number: .1\n /^\\s*-?\\.\\d+\\s*$/.test(num)\n );\n}\nexport function getDecupleSteps(step) {\n var stepStr = typeof step === 'number' ? num2str(step) : trimNumber(step).fullStr;\n var hasPoint = stepStr.includes('.');\n if (!hasPoint) {\n return step + '0';\n }\n return trimNumber(stepStr.replace(/(\\d)\\.(\\d)/g, '$1$2.')).fullStr;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n/* eslint-disable max-classes-per-file */\nimport { getNumberPrecision, isE, num2str, trimNumber, validateNumber } from './numberUtil';\nimport { supportBigInt } from './supportUtil';\n/**\n * We can remove this when IE not support anymore\n */\nexport var NumberDecimal = /*#__PURE__*/function () {\n function NumberDecimal(value) {\n _classCallCheck(this, NumberDecimal);\n this.origin = '';\n this.number = void 0;\n this.empty = void 0;\n if (!value && value !== 0 || !String(value).trim()) {\n this.empty = true;\n return;\n }\n this.origin = String(value);\n this.number = Number(value);\n }\n _createClass(NumberDecimal, [{\n key: \"negate\",\n value: function negate() {\n return new NumberDecimal(-this.toNumber());\n }\n }, {\n key: \"add\",\n value: function add(value) {\n if (this.isInvalidate()) {\n return new NumberDecimal(value);\n }\n var target = Number(value);\n if (Number.isNaN(target)) {\n return this;\n }\n var number = this.number + target;\n // [Legacy] Back to safe integer\n if (number > Number.MAX_SAFE_INTEGER) {\n return new NumberDecimal(Number.MAX_SAFE_INTEGER);\n }\n if (number < Number.MIN_SAFE_INTEGER) {\n return new NumberDecimal(Number.MIN_SAFE_INTEGER);\n }\n var maxPrecision = Math.max(getNumberPrecision(this.number), getNumberPrecision(target));\n return new NumberDecimal(number.toFixed(maxPrecision));\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.empty;\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.number);\n }\n }, {\n key: \"isInvalidate\",\n value: function isInvalidate() {\n return this.isEmpty() || this.isNaN();\n }\n }, {\n key: \"equals\",\n value: function equals(target) {\n return this.toNumber() === (target === null || target === void 0 ? void 0 : target.toNumber());\n }\n }, {\n key: \"lessEquals\",\n value: function lessEquals(target) {\n return this.add(target.negate().toString()).toNumber() <= 0;\n }\n }, {\n key: \"toNumber\",\n value: function toNumber() {\n return this.number;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!safe) {\n return this.origin;\n }\n if (this.isInvalidate()) {\n return '';\n }\n return num2str(this.number);\n }\n }]);\n return NumberDecimal;\n}();\nexport var BigIntDecimal = /*#__PURE__*/function () {\n /** BigInt will convert `0009` to `9`. We need record the len of decimal */\n\n function BigIntDecimal(value) {\n _classCallCheck(this, BigIntDecimal);\n this.origin = '';\n this.negative = void 0;\n this.integer = void 0;\n this.decimal = void 0;\n this.decimalLen = void 0;\n this.empty = void 0;\n this.nan = void 0;\n if (!value && value !== 0 || !String(value).trim()) {\n this.empty = true;\n return;\n }\n this.origin = String(value);\n // Act like Number convert\n if (value === '-') {\n this.nan = true;\n return;\n }\n var mergedValue = value;\n // We need convert back to Number since it require `toFixed` to handle this\n if (isE(mergedValue)) {\n mergedValue = Number(mergedValue);\n }\n mergedValue = typeof mergedValue === 'string' ? mergedValue : num2str(mergedValue);\n if (validateNumber(mergedValue)) {\n var trimRet = trimNumber(mergedValue);\n this.negative = trimRet.negative;\n var numbers = trimRet.trimStr.split('.');\n this.integer = BigInt(numbers[0]);\n var decimalStr = numbers[1] || '0';\n this.decimal = BigInt(decimalStr);\n this.decimalLen = decimalStr.length;\n } else {\n this.nan = true;\n }\n }\n _createClass(BigIntDecimal, [{\n key: \"getMark\",\n value: function getMark() {\n return this.negative ? '-' : '';\n }\n }, {\n key: \"getIntegerStr\",\n value: function getIntegerStr() {\n return this.integer.toString();\n }\n }, {\n key: \"getDecimalStr\",\n value: function getDecimalStr() {\n return this.decimal.toString().padStart(this.decimalLen, '0');\n }\n /**\n * Align BigIntDecimal with same decimal length. e.g. 12.3 + 5 = 1230000\n * This is used for add function only.\n */\n }, {\n key: \"alignDecimal\",\n value: function alignDecimal(decimalLength) {\n var str = \"\".concat(this.getMark()).concat(this.getIntegerStr()).concat(this.getDecimalStr().padEnd(decimalLength, '0'));\n return BigInt(str);\n }\n }, {\n key: \"negate\",\n value: function negate() {\n var clone = new BigIntDecimal(this.toString());\n clone.negative = !clone.negative;\n return clone;\n }\n }, {\n key: \"add\",\n value: function add(value) {\n if (this.isInvalidate()) {\n return new BigIntDecimal(value);\n }\n var offset = new BigIntDecimal(value);\n if (offset.isInvalidate()) {\n return this;\n }\n var maxDecimalLength = Math.max(this.getDecimalStr().length, offset.getDecimalStr().length);\n var myAlignedDecimal = this.alignDecimal(maxDecimalLength);\n var offsetAlignedDecimal = offset.alignDecimal(maxDecimalLength);\n var valueStr = (myAlignedDecimal + offsetAlignedDecimal).toString();\n // We need fill string length back to `maxDecimalLength` to avoid parser failed\n var _trimNumber = trimNumber(valueStr),\n negativeStr = _trimNumber.negativeStr,\n trimStr = _trimNumber.trimStr;\n var hydrateValueStr = \"\".concat(negativeStr).concat(trimStr.padStart(maxDecimalLength + 1, '0'));\n return new BigIntDecimal(\"\".concat(hydrateValueStr.slice(0, -maxDecimalLength), \".\").concat(hydrateValueStr.slice(-maxDecimalLength)));\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.empty;\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return this.nan;\n }\n }, {\n key: \"isInvalidate\",\n value: function isInvalidate() {\n return this.isEmpty() || this.isNaN();\n }\n }, {\n key: \"equals\",\n value: function equals(target) {\n return this.toString() === (target === null || target === void 0 ? void 0 : target.toString());\n }\n }, {\n key: \"lessEquals\",\n value: function lessEquals(target) {\n return this.add(target.negate().toString()).toNumber() <= 0;\n }\n }, {\n key: \"toNumber\",\n value: function toNumber() {\n if (this.isNaN()) {\n return NaN;\n }\n return Number(this.toString());\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!safe) {\n return this.origin;\n }\n if (this.isInvalidate()) {\n return '';\n }\n return trimNumber(\"\".concat(this.getMark()).concat(this.getIntegerStr(), \".\").concat(this.getDecimalStr())).fullStr;\n }\n }]);\n return BigIntDecimal;\n}();\nexport default function getMiniDecimal(value) {\n // We use BigInt here.\n // Will fallback to Number if not support.\n if (supportBigInt()) {\n return new BigIntDecimal(value);\n }\n return new NumberDecimal(value);\n}\n/**\n * Align the logic of toFixed to around like 1.5 => 2.\n * If set `cutOnly`, will just remove the over decimal part.\n */\nexport function toFixed(numStr, separatorStr, precision) {\n var cutOnly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (numStr === '') {\n return '';\n }\n var _trimNumber2 = trimNumber(numStr),\n negativeStr = _trimNumber2.negativeStr,\n integerStr = _trimNumber2.integerStr,\n decimalStr = _trimNumber2.decimalStr;\n var precisionDecimalStr = \"\".concat(separatorStr).concat(decimalStr);\n var numberWithoutDecimal = \"\".concat(negativeStr).concat(integerStr);\n if (precision >= 0) {\n // We will get last + 1 number to check if need advanced number\n var advancedNum = Number(decimalStr[precision]);\n if (advancedNum >= 5 && !cutOnly) {\n var advancedDecimal = getMiniDecimal(numStr).add(\"\".concat(negativeStr, \"0.\").concat('0'.repeat(precision)).concat(10 - advancedNum));\n return toFixed(advancedDecimal.toString(), separatorStr, precision, cutOnly);\n }\n if (precision === 0) {\n return numberWithoutDecimal;\n }\n return \"\".concat(numberWithoutDecimal).concat(separatorStr).concat(decimalStr.padEnd(precision, '0').slice(0, precision));\n }\n if (precisionDecimalStr === '.0') {\n return numberWithoutDecimal;\n }\n return \"\".concat(numberWithoutDecimal).concat(precisionDecimalStr);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint-disable react/no-unknown-property */\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport isMobile from \"rc-util/es/isMobile\";\n/**\n * When click and hold on a button - the speed of auto changing the value.\n */\nvar STEP_INTERVAL = 200;\n/**\n * When click and hold on a button - the delay before auto changing the value.\n */\nvar STEP_DELAY = 600;\nexport default function StepHandler(_ref) {\n var prefixCls = _ref.prefixCls,\n upNode = _ref.upNode,\n downNode = _ref.downNode,\n upDisabled = _ref.upDisabled,\n downDisabled = _ref.downDisabled,\n onStep = _ref.onStep;\n // ======================== Step ========================\n var stepTimeoutRef = React.useRef();\n var onStepRef = React.useRef();\n onStepRef.current = onStep;\n // We will interval update step when hold mouse down\n var onStepMouseDown = function onStepMouseDown(e, up) {\n e.preventDefault();\n onStepRef.current(up);\n // Loop step for interval\n function loopStep() {\n onStepRef.current(up);\n stepTimeoutRef.current = setTimeout(loopStep, STEP_INTERVAL);\n }\n // First time press will wait some time to trigger loop step update\n stepTimeoutRef.current = setTimeout(loopStep, STEP_DELAY);\n };\n var onStopStep = function onStopStep() {\n clearTimeout(stepTimeoutRef.current);\n };\n React.useEffect(function () {\n return onStopStep;\n }, []);\n // ======================= Render =======================\n if (isMobile()) {\n return null;\n }\n var handlerClassName = \"\".concat(prefixCls, \"-handler\");\n var upClassName = classNames(handlerClassName, \"\".concat(handlerClassName, \"-up\"), _defineProperty({}, \"\".concat(handlerClassName, \"-up-disabled\"), upDisabled));\n var downClassName = classNames(handlerClassName, \"\".concat(handlerClassName, \"-down\"), _defineProperty({}, \"\".concat(handlerClassName, \"-down-disabled\"), downDisabled));\n var sharedHandlerProps = {\n unselectable: 'on',\n role: 'button',\n onMouseUp: onStopStep,\n onMouseLeave: onStopStep\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(handlerClassName, \"-wrap\")\n }, /*#__PURE__*/React.createElement(\"span\", _extends({}, sharedHandlerProps, {\n onMouseDown: function onMouseDown(e) {\n onStepMouseDown(e, true);\n },\n \"aria-label\": \"Increase Value\",\n \"aria-disabled\": upDisabled,\n className: upClassName\n }), upNode || /*#__PURE__*/React.createElement(\"span\", {\n unselectable: \"on\",\n className: \"\".concat(prefixCls, \"-handler-up-inner\")\n })), /*#__PURE__*/React.createElement(\"span\", _extends({}, sharedHandlerProps, {\n onMouseDown: function onMouseDown(e) {\n onStepMouseDown(e, false);\n },\n \"aria-label\": \"Decrease Value\",\n \"aria-disabled\": downDisabled,\n className: downClassName\n }), downNode || /*#__PURE__*/React.createElement(\"span\", {\n unselectable: \"on\",\n className: \"\".concat(prefixCls, \"-handler-down-inner\")\n })));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"min\", \"max\", \"step\", \"defaultValue\", \"value\", \"disabled\", \"readOnly\", \"upHandler\", \"downHandler\", \"keyboard\", \"controls\", \"stringMode\", \"parser\", \"formatter\", \"precision\", \"decimalSeparator\", \"onChange\", \"onInput\", \"onPressEnter\", \"onStep\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { useLayoutUpdateEffect } from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport getMiniDecimal, { toFixed } from './utils/MiniDecimal';\nimport StepHandler from './StepHandler';\nimport { getNumberPrecision, num2str, getDecupleSteps, validateNumber } from './utils/numberUtil';\nimport useCursor from './hooks/useCursor';\nimport useFrame from './hooks/useFrame';\n/**\n * We support `stringMode` which need handle correct type when user call in onChange\n * format max or min value\n * 1. if isInvalid return null\n * 2. if precision is undefined, return decimal\n * 3. format with precision\n * I. if max > 0, round down with precision. Example: max= 3.5, precision=0 afterFormat: 3\n * II. if max < 0, round up with precision. Example: max= -3.5, precision=0 afterFormat: -4\n * III. if min > 0, round up with precision. Example: min= 3.5, precision=0 afterFormat: 4\n * IV. if min < 0, round down with precision. Example: max= -3.5, precision=0 afterFormat: -3\n */\nvar getDecimalValue = function getDecimalValue(stringMode, decimalValue) {\n if (stringMode || decimalValue.isEmpty()) {\n return decimalValue.toString();\n }\n return decimalValue.toNumber();\n};\nvar getDecimalIfValidate = function getDecimalIfValidate(value) {\n var decimal = getMiniDecimal(value);\n return decimal.isInvalidate() ? null : decimal;\n};\nvar InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-input-number' : _props$prefixCls,\n className = props.className,\n style = props.style,\n min = props.min,\n max = props.max,\n _props$step = props.step,\n step = _props$step === void 0 ? 1 : _props$step,\n defaultValue = props.defaultValue,\n value = props.value,\n disabled = props.disabled,\n readOnly = props.readOnly,\n upHandler = props.upHandler,\n downHandler = props.downHandler,\n keyboard = props.keyboard,\n _props$controls = props.controls,\n controls = _props$controls === void 0 ? true : _props$controls,\n stringMode = props.stringMode,\n parser = props.parser,\n formatter = props.formatter,\n precision = props.precision,\n decimalSeparator = props.decimalSeparator,\n onChange = props.onChange,\n onInput = props.onInput,\n onPressEnter = props.onPressEnter,\n onStep = props.onStep,\n inputProps = _objectWithoutProperties(props, _excluded);\n var inputClassName = \"\".concat(prefixCls, \"-input\");\n var inputRef = React.useRef(null);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focus = _React$useState2[0],\n setFocus = _React$useState2[1];\n var userTypingRef = React.useRef(false);\n var compositionRef = React.useRef(false);\n var shiftKeyRef = React.useRef(false);\n // ============================ Value =============================\n // Real value control\n var _React$useState3 = React.useState(function () {\n return getMiniDecimal(value !== null && value !== void 0 ? value : defaultValue);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n decimalValue = _React$useState4[0],\n setDecimalValue = _React$useState4[1];\n function setUncontrolledDecimalValue(newDecimal) {\n if (value === undefined) {\n setDecimalValue(newDecimal);\n }\n }\n // ====================== Parser & Formatter ======================\n /**\n * `precision` is used for formatter & onChange.\n * It will auto generate by `value` & `step`.\n * But it will not block user typing.\n *\n * Note: Auto generate `precision` is used for legacy logic.\n * We should remove this since we already support high precision with BigInt.\n *\n * @param number Provide which number should calculate precision\n * @param userTyping Change by user typing\n */\n var getPrecision = React.useCallback(function (numStr, userTyping) {\n if (userTyping) {\n return undefined;\n }\n if (precision >= 0) {\n return precision;\n }\n return Math.max(getNumberPrecision(numStr), getNumberPrecision(step));\n }, [precision, step]);\n // >>> Parser\n var mergedParser = React.useCallback(function (num) {\n var numStr = String(num);\n if (parser) {\n return parser(numStr);\n }\n var parsedStr = numStr;\n if (decimalSeparator) {\n parsedStr = parsedStr.replace(decimalSeparator, '.');\n }\n // [Legacy] We still support auto convert `$ 123,456` to `123456`\n return parsedStr.replace(/[^\\w.-]+/g, '');\n }, [parser, decimalSeparator]);\n // >>> Formatter\n var inputValueRef = React.useRef('');\n var mergedFormatter = React.useCallback(function (number, userTyping) {\n if (formatter) {\n return formatter(number, {\n userTyping: userTyping,\n input: String(inputValueRef.current)\n });\n }\n var str = typeof number === 'number' ? num2str(number) : number;\n // User typing will not auto format with precision directly\n if (!userTyping) {\n var mergedPrecision = getPrecision(str, userTyping);\n if (validateNumber(str) && (decimalSeparator || mergedPrecision >= 0)) {\n // Separator\n var separatorStr = decimalSeparator || '.';\n str = toFixed(str, separatorStr, mergedPrecision);\n }\n }\n return str;\n }, [formatter, getPrecision, decimalSeparator]);\n // ========================== InputValue ==========================\n /**\n * Input text value control\n *\n * User can not update input content directly. It update with follow rules by priority:\n * 1. controlled `value` changed\n * * [SPECIAL] Typing like `1.` should not immediately convert to `1`\n * 2. User typing with format (not precision)\n * 3. Blur or Enter trigger revalidate\n */\n var _React$useState5 = React.useState(function () {\n var initValue = defaultValue !== null && defaultValue !== void 0 ? defaultValue : value;\n if (decimalValue.isInvalidate() && ['string', 'number'].includes(_typeof(initValue))) {\n return Number.isNaN(initValue) ? '' : initValue;\n }\n return mergedFormatter(decimalValue.toString(), false);\n }),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n inputValue = _React$useState6[0],\n setInternalInputValue = _React$useState6[1];\n inputValueRef.current = inputValue;\n // Should always be string\n function setInputValue(newValue, userTyping) {\n setInternalInputValue(mergedFormatter(\n // Invalidate number is sometime passed by external control, we should let it go\n // Otherwise is controlled by internal interactive logic which check by userTyping\n // You can ref 'show limited value when input is not focused' test for more info.\n newValue.isInvalidate() ? newValue.toString(false) : newValue.toString(!userTyping), userTyping));\n }\n // >>> Max & Min limit\n var maxDecimal = React.useMemo(function () {\n return getDecimalIfValidate(max);\n }, [max, precision]);\n var minDecimal = React.useMemo(function () {\n return getDecimalIfValidate(min);\n }, [min, precision]);\n var upDisabled = React.useMemo(function () {\n if (!maxDecimal || !decimalValue || decimalValue.isInvalidate()) {\n return false;\n }\n return maxDecimal.lessEquals(decimalValue);\n }, [maxDecimal, decimalValue]);\n var downDisabled = React.useMemo(function () {\n if (!minDecimal || !decimalValue || decimalValue.isInvalidate()) {\n return false;\n }\n return decimalValue.lessEquals(minDecimal);\n }, [minDecimal, decimalValue]);\n // Cursor controller\n var _useCursor = useCursor(inputRef.current, focus),\n _useCursor2 = _slicedToArray(_useCursor, 2),\n recordCursor = _useCursor2[0],\n restoreCursor = _useCursor2[1];\n // ============================= Data =============================\n /**\n * Find target value closet within range.\n * e.g. [11, 28]:\n * 3 => 11\n * 23 => 23\n * 99 => 28\n */\n var getRangeValue = function getRangeValue(target) {\n // target > max\n if (maxDecimal && !target.lessEquals(maxDecimal)) {\n return maxDecimal;\n }\n // target < min\n if (minDecimal && !minDecimal.lessEquals(target)) {\n return minDecimal;\n }\n return null;\n };\n /**\n * Check value is in [min, max] range\n */\n var isInRange = function isInRange(target) {\n return !getRangeValue(target);\n };\n /**\n * Trigger `onChange` if value validated and not equals of origin.\n * Return the value that re-align in range.\n */\n var triggerValueUpdate = function triggerValueUpdate(newValue, userTyping) {\n var updateValue = newValue;\n var isRangeValidate = isInRange(updateValue) || updateValue.isEmpty();\n // Skip align value when trigger value is empty.\n // We just trigger onChange(null)\n // This should not block user typing\n if (!updateValue.isEmpty() && !userTyping) {\n // Revert value in range if needed\n updateValue = getRangeValue(updateValue) || updateValue;\n isRangeValidate = true;\n }\n if (!readOnly && !disabled && isRangeValidate) {\n var numStr = updateValue.toString();\n var mergedPrecision = getPrecision(numStr, userTyping);\n if (mergedPrecision >= 0) {\n updateValue = getMiniDecimal(toFixed(numStr, '.', mergedPrecision));\n // When to fixed. The value may out of min & max range.\n // 4 in [0, 3.8] => 3.8 => 4 (toFixed)\n if (!isInRange(updateValue)) {\n updateValue = getMiniDecimal(toFixed(numStr, '.', mergedPrecision, true));\n }\n }\n // Trigger event\n if (!updateValue.equals(decimalValue)) {\n setUncontrolledDecimalValue(updateValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(updateValue.isEmpty() ? null : getDecimalValue(stringMode, updateValue));\n // Reformat input if value is not controlled\n if (value === undefined) {\n setInputValue(updateValue, userTyping);\n }\n }\n return updateValue;\n }\n return decimalValue;\n };\n // ========================== User Input ==========================\n var onNextPromise = useFrame();\n // >>> Collect input value\n var collectInputValue = function collectInputValue(inputStr) {\n recordCursor();\n // Update inputValue incase input can not parse as number\n setInternalInputValue(inputStr);\n // Parse number\n if (!compositionRef.current) {\n var finalValue = mergedParser(inputStr);\n var finalDecimal = getMiniDecimal(finalValue);\n if (!finalDecimal.isNaN()) {\n triggerValueUpdate(finalDecimal, true);\n }\n }\n // Trigger onInput later to let user customize value if they want do handle something after onChange\n onInput === null || onInput === void 0 ? void 0 : onInput(inputStr);\n // optimize for chinese input experience\n // https://github.com/ant-design/ant-design/issues/8196\n onNextPromise(function () {\n var nextInputStr = inputStr;\n if (!parser) {\n nextInputStr = inputStr.replace(/。/g, '.');\n }\n if (nextInputStr !== inputStr) {\n collectInputValue(nextInputStr);\n }\n });\n };\n // >>> Composition\n var onCompositionStart = function onCompositionStart() {\n compositionRef.current = true;\n };\n var onCompositionEnd = function onCompositionEnd() {\n compositionRef.current = false;\n collectInputValue(inputRef.current.value);\n };\n // >>> Input\n var onInternalInput = function onInternalInput(e) {\n collectInputValue(e.target.value);\n };\n // ============================= Step =============================\n var onInternalStep = function onInternalStep(up) {\n var _inputRef$current;\n // Ignore step since out of range\n if (up && upDisabled || !up && downDisabled) {\n return;\n }\n // Clear typing status since it may caused by up & down key.\n // We should sync with input value.\n userTypingRef.current = false;\n var stepDecimal = getMiniDecimal(shiftKeyRef.current ? getDecupleSteps(step) : step);\n if (!up) {\n stepDecimal = stepDecimal.negate();\n }\n var target = (decimalValue || getMiniDecimal(0)).add(stepDecimal.toString());\n var updatedValue = triggerValueUpdate(target, false);\n onStep === null || onStep === void 0 ? void 0 : onStep(getDecimalValue(stringMode, updatedValue), {\n offset: shiftKeyRef.current ? getDecupleSteps(step) : step,\n type: up ? 'up' : 'down'\n });\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n };\n // ============================ Flush =============================\n /**\n * Flush current input content to trigger value change & re-formatter input if needed\n */\n var flushInputValue = function flushInputValue(userTyping) {\n var parsedValue = getMiniDecimal(mergedParser(inputValue));\n var formatValue = parsedValue;\n if (!parsedValue.isNaN()) {\n // Only validate value or empty value can be re-fill to inputValue\n // Reassign the formatValue within ranged of trigger control\n formatValue = triggerValueUpdate(parsedValue, userTyping);\n } else {\n formatValue = decimalValue;\n }\n if (value !== undefined) {\n // Reset back with controlled value first\n setInputValue(decimalValue, false);\n } else if (!formatValue.isNaN()) {\n // Reset input back since no validate value\n setInputValue(formatValue, false);\n }\n };\n // Solve the issue of the event triggering sequence when entering numbers in chinese input (Safari)\n var onBeforeInput = function onBeforeInput() {\n userTypingRef.current = true;\n };\n var onKeyDown = function onKeyDown(event) {\n var which = event.which,\n shiftKey = event.shiftKey;\n userTypingRef.current = true;\n if (shiftKey) {\n shiftKeyRef.current = true;\n } else {\n shiftKeyRef.current = false;\n }\n if (which === KeyCode.ENTER) {\n if (!compositionRef.current) {\n userTypingRef.current = false;\n }\n flushInputValue(false);\n onPressEnter === null || onPressEnter === void 0 ? void 0 : onPressEnter(event);\n }\n if (keyboard === false) {\n return;\n }\n // Do step\n if (!compositionRef.current && [KeyCode.UP, KeyCode.DOWN].includes(which)) {\n onInternalStep(KeyCode.UP === which);\n event.preventDefault();\n }\n };\n var onKeyUp = function onKeyUp() {\n userTypingRef.current = false;\n shiftKeyRef.current = false;\n };\n // >>> Focus & Blur\n var onBlur = function onBlur() {\n flushInputValue(false);\n setFocus(false);\n userTypingRef.current = false;\n };\n // ========================== Controlled ==========================\n // Input by precision\n useLayoutUpdateEffect(function () {\n if (!decimalValue.isInvalidate()) {\n setInputValue(decimalValue, false);\n }\n }, [precision]);\n // Input by value\n useLayoutUpdateEffect(function () {\n var newValue = getMiniDecimal(value);\n setDecimalValue(newValue);\n var currentParsedValue = getMiniDecimal(mergedParser(inputValue));\n // When user typing from `1.2` to `1.`, we should not convert to `1` immediately.\n // But let it go if user set `formatter`\n if (!newValue.equals(currentParsedValue) || !userTypingRef.current || formatter) {\n // Update value as effect\n setInputValue(newValue, userTypingRef.current);\n }\n }, [value]);\n // ============================ Cursor ============================\n useLayoutUpdateEffect(function () {\n if (formatter) {\n restoreCursor();\n }\n }, [inputValue]);\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focus), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-readonly\"), readOnly), _defineProperty(_classNames, \"\".concat(prefixCls, \"-not-a-number\"), decimalValue.isNaN()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-out-of-range\"), !decimalValue.isInvalidate() && !isInRange(decimalValue)), _classNames)),\n style: style,\n onFocus: function onFocus() {\n setFocus(true);\n },\n onBlur: onBlur,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onCompositionStart: onCompositionStart,\n onCompositionEnd: onCompositionEnd,\n onBeforeInput: onBeforeInput\n }, controls && /*#__PURE__*/React.createElement(StepHandler, {\n prefixCls: prefixCls,\n upNode: upHandler,\n downNode: downHandler,\n upDisabled: upDisabled,\n downDisabled: downDisabled,\n onStep: onInternalStep\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(inputClassName, \"-wrap\")\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n autoComplete: \"off\",\n role: \"spinbutton\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": decimalValue.isInvalidate() ? null : decimalValue.toString(),\n step: step\n }, inputProps, {\n ref: composeRef(inputRef, ref),\n className: inputClassName,\n value: inputValue,\n onChange: onInternalInput,\n disabled: disabled,\n readOnly: readOnly\n }))));\n});\nInputNumber.displayName = 'InputNumber';\nexport default InputNumber;","import { useRef } from 'react';\nimport warning from \"rc-util/es/warning\";\n/**\n * Keep input cursor in the correct position if possible.\n * Is this necessary since we have `formatter` which may mass the content?\n */\nexport default function useCursor(input, focused) {\n var selectionRef = useRef(null);\n function recordCursor() {\n // Record position\n try {\n var start = input.selectionStart,\n end = input.selectionEnd,\n value = input.value;\n var beforeTxt = value.substring(0, start);\n var afterTxt = value.substring(end);\n selectionRef.current = {\n start: start,\n end: end,\n value: value,\n beforeTxt: beforeTxt,\n afterTxt: afterTxt\n };\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n }\n /**\n * Restore logic:\n * 1. back string same\n * 2. start string same\n */\n function restoreCursor() {\n if (input && selectionRef.current && focused) {\n try {\n var value = input.value;\n var _selectionRef$current = selectionRef.current,\n beforeTxt = _selectionRef$current.beforeTxt,\n afterTxt = _selectionRef$current.afterTxt,\n start = _selectionRef$current.start;\n var startPos = value.length;\n if (value.endsWith(afterTxt)) {\n startPos = value.length - selectionRef.current.afterTxt.length;\n } else if (value.startsWith(beforeTxt)) {\n startPos = beforeTxt.length;\n } else {\n var beforeLastChar = beforeTxt[start - 1];\n var newIndex = value.indexOf(beforeLastChar, start - 1);\n if (newIndex !== -1) {\n startPos = newIndex + 1;\n }\n }\n input.setSelectionRange(startPos, startPos);\n } catch (e) {\n warning(false, \"Something warning of cursor restore. Please fire issue about this: \".concat(e.message));\n }\n }\n }\n return [recordCursor, restoreCursor];\n}","import { useRef, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\n/**\n * Always trigger latest once when call multiple time\n */\nexport default (function () {\n var idRef = useRef(0);\n var cleanUp = function cleanUp() {\n raf.cancel(idRef.current);\n };\n useEffect(function () {\n return cleanUp;\n }, []);\n return function (callback) {\n cleanUp();\n idRef.current = raf(function () {\n callback();\n });\n };\n});","import InputNumber from './InputNumber';\nexport default InputNumber;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport UpOutlined from \"@ant-design/icons/es/icons/UpOutlined\";\nimport classNames from 'classnames';\nimport RcInputNumber from 'rc-input-number';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport { NoCompactStyle, useCompactItemContext } from '../space/Compact';\nimport { cloneElement } from '../_util/reactNode';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nvar InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focused = _React$useState2[0],\n setFocus = _React$useState2[1];\n var inputRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return inputRef.current;\n });\n var className = props.className,\n customizeSize = props.size,\n customDisabled = props.disabled,\n customizePrefixCls = props.prefixCls,\n addonBefore = props.addonBefore,\n addonAfter = props.addonAfter,\n prefix = props.prefix,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n readOnly = props.readOnly,\n customStatus = props.status,\n controls = props.controls,\n others = __rest(props, [\"className\", \"size\", \"disabled\", \"prefixCls\", \"addonBefore\", \"addonAfter\", \"prefix\", \"bordered\", \"readOnly\", \"status\", \"controls\"]);\n var prefixCls = getPrefixCls('input-number', customizePrefixCls);\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var upIcon = /*#__PURE__*/React.createElement(UpOutlined, {\n className: \"\".concat(prefixCls, \"-handler-up-inner\")\n });\n var downIcon = /*#__PURE__*/React.createElement(DownOutlined, {\n className: \"\".concat(prefixCls, \"-handler-down-inner\")\n });\n var controlsTemp = typeof controls === 'boolean' ? controls : undefined;\n if (_typeof(controls) === 'object') {\n upIcon = typeof controls.upIcon === 'undefined' ? upIcon : ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-handler-up-inner\")\n }, controls.upIcon));\n downIcon = typeof controls.downIcon === 'undefined' ? downIcon : ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-handler-down-inner\")\n }, controls.downIcon));\n }\n var _useContext = useContext(FormItemInputContext),\n hasFeedback = _useContext.hasFeedback,\n contextStatus = _useContext.status,\n isFormItemInput = _useContext.isFormItemInput,\n feedbackIcon = _useContext.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n var mergeSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var inputNumberClass = classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-lg\"), mergeSize === 'large'), \"\".concat(prefixCls, \"-sm\"), mergeSize === 'small'), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-borderless\"), !bordered), \"\".concat(prefixCls, \"-in-form-item\"), isFormItemInput), getStatusClassNames(prefixCls, mergedStatus), compactItemClassnames, className);\n var element = /*#__PURE__*/React.createElement(RcInputNumber, _extends({\n ref: inputRef,\n disabled: mergedDisabled,\n className: inputNumberClass,\n upHandler: upIcon,\n downHandler: downIcon,\n prefixCls: prefixCls,\n readOnly: readOnly,\n controls: controlsTemp\n }, others));\n if (prefix != null || hasFeedback) {\n var affixWrapperCls = classNames(\"\".concat(prefixCls, \"-affix-wrapper\"), getStatusClassNames(\"\".concat(prefixCls, \"-affix-wrapper\"), mergedStatus, hasFeedback), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-affix-wrapper-focused\"), focused), \"\".concat(prefixCls, \"-affix-wrapper-disabled\"), props.disabled), \"\".concat(prefixCls, \"-affix-wrapper-sm\"), size === 'small'), \"\".concat(prefixCls, \"-affix-wrapper-lg\"), size === 'large'), \"\".concat(prefixCls, \"-affix-wrapper-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-affix-wrapper-readonly\"), readOnly), \"\".concat(prefixCls, \"-affix-wrapper-borderless\"), !bordered), \"\".concat(className), !(addonBefore || addonAfter) && className));\n element = /*#__PURE__*/React.createElement(\"div\", {\n className: affixWrapperCls,\n style: props.style,\n onMouseUp: function onMouseUp() {\n return inputRef.current.focus();\n }\n }, prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-prefix\")\n }, prefix), cloneElement(element, {\n style: null,\n value: props.value,\n onFocus: function onFocus(event) {\n var _a;\n setFocus(true);\n (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, event);\n },\n onBlur: function onBlur(event) {\n var _a;\n setFocus(false);\n (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);\n }\n }), hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, feedbackIcon));\n }\n if (addonBefore != null || addonAfter != null) {\n var wrapperClassName = \"\".concat(prefixCls, \"-group\");\n var addonClassName = \"\".concat(wrapperClassName, \"-addon\");\n var addonBeforeNode = addonBefore ? ( /*#__PURE__*/React.createElement(\"div\", {\n className: addonClassName\n }, addonBefore)) : null;\n var addonAfterNode = addonAfter ? /*#__PURE__*/React.createElement(\"div\", {\n className: addonClassName\n }, addonAfter) : null;\n var mergedWrapperClassName = classNames(\"\".concat(prefixCls, \"-wrapper\"), wrapperClassName, _defineProperty({}, \"\".concat(wrapperClassName, \"-rtl\"), direction === 'rtl'));\n var mergedGroupClassName = classNames(\"\".concat(prefixCls, \"-group-wrapper\"), _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-group-wrapper-sm\"), size === 'small'), \"\".concat(prefixCls, \"-group-wrapper-lg\"), size === 'large'), \"\".concat(prefixCls, \"-group-wrapper-rtl\"), direction === 'rtl'), getStatusClassNames(\"\".concat(prefixCls, \"-group-wrapper\"), mergedStatus, hasFeedback), className);\n element = /*#__PURE__*/React.createElement(\"div\", {\n className: mergedGroupClassName,\n style: props.style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: mergedWrapperClassName\n }, addonBeforeNode && ( /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, addonBeforeNode))), cloneElement(element, {\n style: null,\n disabled: mergedDisabled\n }), addonAfterNode && ( /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, addonAfterNode)))));\n }\n return element;\n});\nexport default InputNumber;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RcInput from 'rc-input';\nimport { composeRef } from \"rc-util/es/ref\";\nimport React, { forwardRef, useContext, useEffect, useRef } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport { NoCompactStyle, useCompactItemContext } from '../space/Compact';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport { hasPrefixSuffix } from './utils';\nexport function fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n return String(value);\n}\nexport function resolveOnChange(target, e, onChange, targetValue) {\n if (!onChange) {\n return;\n }\n var event = e;\n if (e.type === 'click') {\n // Clone a new target for event.\n // Avoid the following usage, the setQuery method gets the original value.\n //\n // const [query, setQuery] = React.useState('');\n // <Input\n // allowClear\n // value={query}\n // onChange={(e)=> {\n // setQuery((prevStatus) => e.target.value);\n // }}\n // />\n var currentTarget = target.cloneNode(true);\n // click clear icon\n event = Object.create(e, {\n target: {\n value: currentTarget\n },\n currentTarget: {\n value: currentTarget\n }\n });\n currentTarget.value = '';\n onChange(event);\n return;\n }\n // Trigger by composition event, this means we need force change the input value\n if (targetValue !== undefined) {\n event = Object.create(e, {\n target: {\n value: target\n },\n currentTarget: {\n value: target\n }\n });\n target.value = targetValue;\n onChange(event);\n return;\n }\n onChange(event);\n}\nexport function triggerFocus(element, option) {\n if (!element) {\n return;\n }\n element.focus(option);\n // Selection content\n var _ref = option || {},\n cursor = _ref.cursor;\n if (cursor) {\n var len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n break;\n }\n }\n}\nvar Input = /*#__PURE__*/forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n customStatus = props.status,\n customSize = props.size,\n customDisabled = props.disabled,\n onBlur = props.onBlur,\n onFocus = props.onFocus,\n suffix = props.suffix,\n allowClear = props.allowClear,\n addonAfter = props.addonAfter,\n addonBefore = props.addonBefore,\n className = props.className,\n onChange = props.onChange,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"status\", \"size\", \"disabled\", \"onBlur\", \"onFocus\", \"suffix\", \"allowClear\", \"addonAfter\", \"addonBefore\", \"className\", \"onChange\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n input = _React$useContext.input;\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n var inputRef = useRef(null);\n // ===================== Compact Item =====================\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n // ===================== Size =====================\n var size = React.useContext(SizeContext);\n var mergedSize = compactSize || customSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n var _useContext = useContext(FormItemInputContext),\n contextStatus = _useContext.status,\n hasFeedback = _useContext.hasFeedback,\n feedbackIcon = _useContext.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Focus warning =====================\n var inputHasPrefixSuffix = hasPrefixSuffix(props) || !!hasFeedback;\n var prevHasPrefixSuffix = useRef(inputHasPrefixSuffix);\n useEffect(function () {\n var _a;\n if (inputHasPrefixSuffix && !prevHasPrefixSuffix.current) {\n process.env.NODE_ENV !== \"production\" ? warning(document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input), 'Input', \"When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ\") : void 0;\n }\n prevHasPrefixSuffix.current = inputHasPrefixSuffix;\n }, [inputHasPrefixSuffix]);\n // ===================== Remove Password value =====================\n var removePasswordTimeout = useRemovePasswordTimeout(inputRef, true);\n var handleBlur = function handleBlur(e) {\n removePasswordTimeout();\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var handleFocus = function handleFocus(e) {\n removePasswordTimeout();\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n var handleChange = function handleChange(e) {\n removePasswordTimeout();\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n };\n var suffixNode = (hasFeedback || suffix) && ( /*#__PURE__*/React.createElement(React.Fragment, null, suffix, hasFeedback && feedbackIcon));\n // Allow clear\n var mergedAllowClear;\n if (_typeof(allowClear) === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n };\n }\n return /*#__PURE__*/React.createElement(RcInput, _extends({\n ref: composeRef(ref, inputRef),\n prefixCls: prefixCls,\n autoComplete: input === null || input === void 0 ? void 0 : input.autoComplete\n }, rest, {\n disabled: mergedDisabled || undefined,\n onBlur: handleBlur,\n onFocus: handleFocus,\n suffix: suffixNode,\n allowClear: mergedAllowClear,\n className: classNames(className, compactItemClassnames),\n onChange: handleChange,\n addonAfter: addonAfter && ( /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonAfter))),\n addonBefore: addonBefore && ( /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonBefore))),\n inputClassName: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-borderless\"), !bordered), !inputHasPrefixSuffix && getStatusClassNames(prefixCls, mergedStatus)),\n affixWrapperClassName: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-affix-wrapper-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-affix-wrapper-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-affix-wrapper-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-affix-wrapper-borderless\"), !bordered), getStatusClassNames(\"\".concat(prefixCls, \"-affix-wrapper\"), mergedStatus, hasFeedback)),\n wrapperClassName: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-group-rtl\"), direction === 'rtl')),\n groupClassName: classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-group-wrapper-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-group-wrapper-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-group-wrapper-rtl\"), direction === 'rtl'), getStatusClassNames(\"\".concat(prefixCls, \"-group-wrapper\"), mergedStatus, hasFeedback))\n }));\n});\nexport default Input;","// eslint-disable-next-line import/prefer-default-export\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { FormItemInputContext } from '../form/context';\nimport { cloneElement } from '../_util/reactNode';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { tuple } from '../_util/type';\nvar ClearableInputType = tuple('text', 'input');\nfunction hasAddon(props) {\n return !!(props.addonBefore || props.addonAfter);\n}\nvar ClearableLabeledInput = /*#__PURE__*/function (_React$Component) {\n _inherits(ClearableLabeledInput, _React$Component);\n var _super = _createSuper(ClearableLabeledInput);\n function ClearableLabeledInput() {\n _classCallCheck(this, ClearableLabeledInput);\n return _super.apply(this, arguments);\n }\n _createClass(ClearableLabeledInput, [{\n key: \"renderClearIcon\",\n value: function renderClearIcon(prefixCls) {\n var _this$props = this.props,\n value = _this$props.value,\n disabled = _this$props.disabled,\n readOnly = _this$props.readOnly,\n handleReset = _this$props.handleReset,\n suffix = _this$props.suffix;\n var needClear = !disabled && !readOnly && value;\n var className = \"\".concat(prefixCls, \"-clear-icon\");\n return /*#__PURE__*/React.createElement(CloseCircleFilled, {\n onClick: handleReset,\n // Do not trigger onBlur when clear input\n // https://github.com/ant-design/ant-design/issues/31200\n onMouseDown: function onMouseDown(e) {\n return e.preventDefault();\n },\n className: classNames(_defineProperty(_defineProperty({}, \"\".concat(className, \"-hidden\"), !needClear), \"\".concat(className, \"-has-suffix\"), !!suffix), className),\n role: \"button\"\n });\n }\n }, {\n key: \"renderTextAreaWithClearIcon\",\n value: function renderTextAreaWithClearIcon(prefixCls, element, statusContext) {\n var _this$props2 = this.props,\n value = _this$props2.value,\n allowClear = _this$props2.allowClear,\n className = _this$props2.className,\n focused = _this$props2.focused,\n style = _this$props2.style,\n direction = _this$props2.direction,\n bordered = _this$props2.bordered,\n hidden = _this$props2.hidden,\n customStatus = _this$props2.status;\n var contextStatus = statusContext.status,\n hasFeedback = statusContext.hasFeedback;\n if (!allowClear) {\n return cloneElement(element, {\n value: value\n });\n }\n var affixWrapperCls = classNames(\"\".concat(prefixCls, \"-affix-wrapper\"), \"\".concat(prefixCls, \"-affix-wrapper-textarea-with-clear-btn\"), getStatusClassNames(\"\".concat(prefixCls, \"-affix-wrapper\"), getMergedStatus(contextStatus, customStatus), hasFeedback), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-affix-wrapper-focused\"), focused), \"\".concat(prefixCls, \"-affix-wrapper-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-affix-wrapper-borderless\"), !bordered), \"\".concat(className), !hasAddon(this.props) && className));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: affixWrapperCls,\n style: style,\n hidden: hidden\n }, cloneElement(element, {\n style: null,\n value: value\n }), this.renderClearIcon(prefixCls));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n return /*#__PURE__*/React.createElement(FormItemInputContext.Consumer, null, function (statusContext) {\n var _this$props3 = _this.props,\n prefixCls = _this$props3.prefixCls,\n inputType = _this$props3.inputType,\n element = _this$props3.element;\n if (inputType === ClearableInputType[0]) {\n return _this.renderTextAreaWithClearIcon(prefixCls, element, statusContext);\n }\n });\n }\n }]);\n return ClearableLabeledInput;\n}(React.Component);\nexport default ClearableLabeledInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcTextArea from 'rc-textarea';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext } from '../form/context';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport ClearableLabeledInput from './ClearableLabeledInput';\nimport { fixControlledValue, resolveOnChange, triggerFocus } from './Input';\nfunction fixEmojiLength(value, maxLength) {\n return _toConsumableArray(value || '').slice(0, maxLength).join('');\n}\nfunction setTriggerValue(isCursorInEnd, preValue, triggerValue, maxLength) {\n var newTriggerValue = triggerValue;\n if (isCursorInEnd) {\n // 光标在尾部,直接截断\n newTriggerValue = fixEmojiLength(triggerValue, maxLength);\n } else if (_toConsumableArray(preValue || '').length < triggerValue.length && _toConsumableArray(triggerValue || '').length > maxLength) {\n // 光标在中间,如果最后的值超过最大值,则采用原先的值\n newTriggerValue = preValue;\n }\n return newTriggerValue;\n}\nvar TextArea = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? true : _a$bordered,\n _a$showCount = _a.showCount,\n showCount = _a$showCount === void 0 ? false : _a$showCount,\n maxLength = _a.maxLength,\n className = _a.className,\n style = _a.style,\n customizeSize = _a.size,\n customDisabled = _a.disabled,\n onCompositionStart = _a.onCompositionStart,\n onCompositionEnd = _a.onCompositionEnd,\n onChange = _a.onChange,\n onFocus = _a.onFocus,\n onBlur = _a.onBlur,\n customStatus = _a.status,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"showCount\", \"maxLength\", \"className\", \"style\", \"size\", \"disabled\", \"onCompositionStart\", \"onCompositionEnd\", \"onChange\", \"onFocus\", \"onBlur\", \"status\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var _React$useContext2 = React.useContext(FormItemInputContext),\n contextStatus = _React$useContext2.status,\n hasFeedback = _React$useContext2.hasFeedback,\n isFormItemInput = _React$useContext2.isFormItemInput,\n feedbackIcon = _React$useContext2.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n var innerRef = React.useRef(null);\n var clearableInputRef = React.useRef(null);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n compositing = _React$useState2[0],\n setCompositing = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n focused = _React$useState4[0],\n setFocused = _React$useState4[1];\n var oldCompositionValueRef = React.useRef();\n var oldSelectionStartRef = React.useRef(0);\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var hidden = props.hidden;\n var handleSetValue = function handleSetValue(val, callback) {\n if (props.value === undefined) {\n setValue(val);\n callback === null || callback === void 0 ? void 0 : callback();\n }\n };\n // =========================== Value Update ===========================\n // Max length value\n var hasMaxLength = Number(maxLength) > 0;\n var onInternalCompositionStart = function onInternalCompositionStart(e) {\n setCompositing(true);\n // 拼音输入前保存一份旧值\n oldCompositionValueRef.current = value;\n // 保存旧的光标位置\n oldSelectionStartRef.current = e.currentTarget.selectionStart;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n var onInternalCompositionEnd = function onInternalCompositionEnd(e) {\n var _a;\n setCompositing(false);\n var triggerValue = e.currentTarget.value;\n if (hasMaxLength) {\n var isCursorInEnd = oldSelectionStartRef.current >= maxLength + 1 || oldSelectionStartRef.current === ((_a = oldCompositionValueRef.current) === null || _a === void 0 ? void 0 : _a.length);\n triggerValue = setTriggerValue(isCursorInEnd, oldCompositionValueRef.current, triggerValue, maxLength);\n }\n // Patch composition onChange when value changed\n if (triggerValue !== value) {\n handleSetValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n }\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n var handleChange = function handleChange(e) {\n var triggerValue = e.target.value;\n if (!compositing && hasMaxLength) {\n // 1. 复制粘贴超过maxlength的情况 2.未超过maxlength的情况\n var isCursorInEnd = e.target.selectionStart >= maxLength + 1 || e.target.selectionStart === triggerValue.length || !e.target.selectionStart;\n triggerValue = setTriggerValue(isCursorInEnd, value, triggerValue, maxLength);\n }\n handleSetValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n };\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n React.useEffect(function () {\n setFocused(function (prev) {\n return !mergedDisabled && prev;\n });\n }, [mergedDisabled]);\n // ============================== Reset ===============================\n var handleReset = function handleReset(e) {\n var _a, _b, _c;\n handleSetValue('');\n (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n resolveOnChange((_c = (_b = innerRef.current) === null || _b === void 0 ? void 0 : _b.resizableTextArea) === null || _c === void 0 ? void 0 : _c.textArea, e, onChange);\n };\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n React.useImperativeHandle(ref, function () {\n var _a;\n return {\n resizableTextArea: (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea,\n focus: function focus(option) {\n var _a, _b;\n triggerFocus((_b = (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea) === null || _b === void 0 ? void 0 : _b.textArea, option);\n },\n blur: function blur() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n var textArea = /*#__PURE__*/React.createElement(RcTextArea, _extends({}, omit(props, ['allowClear']), {\n disabled: mergedDisabled,\n className: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-borderless\"), !bordered), className, className && !showCount), \"\".concat(prefixCls, \"-sm\"), size === 'small' || customizeSize === 'small'), \"\".concat(prefixCls, \"-lg\"), size === 'large' || customizeSize === 'large'), getStatusClassNames(prefixCls, mergedStatus)),\n style: showCount ? {\n resize: style === null || style === void 0 ? void 0 : style.resize\n } : style,\n prefixCls: prefixCls,\n onCompositionStart: onInternalCompositionStart,\n onChange: handleChange,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onCompositionEnd: onInternalCompositionEnd,\n ref: innerRef\n }));\n var val = fixControlledValue(value);\n if (!compositing && hasMaxLength && (props.value === null || props.value === undefined)) {\n // fix #27612 将value转为数组进行截取,解决 '😂'.length === 2 等emoji表情导致的截取乱码的问题\n val = fixEmojiLength(val, maxLength);\n }\n // TextArea\n var textareaNode = /*#__PURE__*/React.createElement(ClearableLabeledInput, _extends({\n disabled: mergedDisabled,\n focused: focused\n }, props, {\n prefixCls: prefixCls,\n direction: direction,\n inputType: \"text\",\n value: val,\n element: textArea,\n handleReset: handleReset,\n ref: clearableInputRef,\n bordered: bordered,\n status: customStatus,\n style: showCount ? undefined : style\n }));\n // Only show text area wrapper when needed\n if (showCount || hasFeedback) {\n var valueLength = _toConsumableArray(val).length;\n var dataCount = '';\n if (_typeof(showCount) === 'object') {\n dataCount = showCount.formatter({\n value: val,\n count: valueLength,\n maxLength: maxLength\n });\n } else {\n dataCount = \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(maxLength) : '');\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n hidden: hidden,\n className: classNames(\"\".concat(prefixCls, \"-textarea\"), _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-textarea-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-textarea-show-count\"), showCount), \"\".concat(prefixCls, \"-textarea-in-form-item\"), isFormItemInput), getStatusClassNames(\"\".concat(prefixCls, \"-textarea\"), mergedStatus, hasFeedback), className),\n style: style,\n \"data-count\": dataCount\n }, textareaNode, hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-textarea-suffix\")\n }, feedbackIcon));\n }\n return textareaNode;\n});\nexport default TextArea;","import { useEffect, useRef } from 'react';\nexport default function useRemovePasswordTimeout(inputRef, triggerOnMount) {\n var removePasswordTimeoutRef = useRef([]);\n var removePasswordTimeout = function removePasswordTimeout() {\n removePasswordTimeoutRef.current.push(setTimeout(function () {\n var _a, _b, _c, _d;\n if (((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.input.getAttribute('type')) === 'password' && ((_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.input.hasAttribute('value'))) {\n (_d = inputRef.current) === null || _d === void 0 ? void 0 : _d.input.removeAttribute('value');\n }\n }));\n };\n useEffect(function () {\n if (triggerOnMount) {\n removePasswordTimeout();\n }\n return function () {\n return removePasswordTimeoutRef.current.forEach(function (timer) {\n if (timer) {\n clearTimeout(timer);\n }\n });\n };\n }, []);\n return removePasswordTimeout;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nvar Group = function Group(props) {\n var _useContext = useContext(ConfigContext),\n getPrefixCls = _useContext.getPrefixCls,\n direction = _useContext.direction;\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className;\n var prefixCls = getPrefixCls('input-group', customizePrefixCls);\n var cls = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-lg\"), props.size === 'large'), \"\".concat(prefixCls, \"-sm\"), props.size === 'small'), \"\".concat(prefixCls, \"-compact\"), props.compact), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var formItemContext = useContext(FormItemInputContext);\n var groupFormItemContext = useMemo(function () {\n return _extends(_extends({}, formItemContext), {\n isFormItemInput: false\n });\n }, [formItemContext]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: cls,\n style: props.style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onFocus: props.onFocus,\n onBlur: props.onBlur\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: groupFormItemContext\n }, props.children));\n};\nexport default Group;","// This icon file is generated automatically.\nvar EyeInvisibleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z\" } }] }, \"name\": \"eye-invisible\", \"theme\": \"outlined\" };\nexport default EyeInvisibleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EyeInvisibleOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeInvisibleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EyeInvisibleOutlined = function EyeInvisibleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EyeInvisibleOutlinedSvg\n }));\n};\nEyeInvisibleOutlined.displayName = 'EyeInvisibleOutlined';\nexport default /*#__PURE__*/React.forwardRef(EyeInvisibleOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport EyeInvisibleOutlined from \"@ant-design/icons/es/icons/EyeInvisibleOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { ConfigConsumer } from '../config-provider';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport Input from './Input';\nvar defaultIconRender = function defaultIconRender(visible) {\n return visible ? /*#__PURE__*/React.createElement(EyeOutlined, null) : /*#__PURE__*/React.createElement(EyeInvisibleOutlined, null);\n};\nvar ActionMap = {\n click: 'onClick',\n hover: 'onMouseOver'\n};\nvar Password = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visibilityTogg = props.visibilityToggle,\n visibilityToggle = _props$visibilityTogg === void 0 ? true : _props$visibilityTogg;\n var visibilityControlled = _typeof(visibilityToggle) === 'object' && visibilityToggle.visible !== undefined;\n var _useState = useState(function () {\n return visibilityControlled ? visibilityToggle.visible : false;\n }),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n var inputRef = useRef(null);\n React.useEffect(function () {\n if (visibilityControlled) {\n setVisible(visibilityToggle.visible);\n }\n }, [visibilityControlled, visibilityToggle]);\n // Remove Password value\n var removePasswordTimeout = useRemovePasswordTimeout(inputRef);\n var onVisibleChange = function onVisibleChange() {\n var disabled = props.disabled;\n if (disabled) {\n return;\n }\n if (visible) {\n removePasswordTimeout();\n }\n setVisible(function (prevState) {\n var _a;\n var newState = !prevState;\n if (_typeof(visibilityToggle) === 'object') {\n (_a = visibilityToggle.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(visibilityToggle, newState);\n }\n return newState;\n });\n };\n var getIcon = function getIcon(prefixCls) {\n var _props$action = props.action,\n action = _props$action === void 0 ? 'click' : _props$action,\n _props$iconRender = props.iconRender,\n iconRender = _props$iconRender === void 0 ? defaultIconRender : _props$iconRender;\n var iconTrigger = ActionMap[action] || '';\n var icon = iconRender(visible);\n var iconProps = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, iconTrigger, onVisibleChange), \"className\", \"\".concat(prefixCls, \"-icon\")), \"key\", 'passwordIcon'), \"onMouseDown\", function onMouseDown(e) {\n // Prevent focused state lost\n // https://github.com/ant-design/ant-design/issues/15173\n e.preventDefault();\n }), \"onMouseUp\", function onMouseUp(e) {\n // Prevent caret position change\n // https://github.com/ant-design/ant-design/issues/23524\n e.preventDefault();\n });\n return /*#__PURE__*/React.cloneElement( /*#__PURE__*/React.isValidElement(icon) ? icon : /*#__PURE__*/React.createElement(\"span\", null, icon), iconProps);\n };\n var renderPassword = function renderPassword(_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var className = props.className,\n customizePrefixCls = props.prefixCls,\n customizeInputPrefixCls = props.inputPrefixCls,\n size = props.size,\n restProps = __rest(props, [\"className\", \"prefixCls\", \"inputPrefixCls\", \"size\"]);\n var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n var prefixCls = getPrefixCls('input-password', customizePrefixCls);\n var suffixIcon = visibilityToggle && getIcon(prefixCls);\n var inputClassName = classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(size), !!size));\n var omittedProps = _extends(_extends({}, omit(restProps, ['suffix', 'iconRender', 'visibilityToggle'])), {\n type: visible ? 'text' : 'password',\n className: inputClassName,\n prefixCls: inputPrefixCls,\n suffix: suffixIcon\n });\n if (size) {\n omittedProps.size = size;\n }\n return /*#__PURE__*/React.createElement(Input, _extends({\n ref: composeRef(ref, inputRef)\n }, omittedProps));\n };\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, renderPassword);\n});\nif (process.env.NODE_ENV !== 'production') {\n Password.displayName = 'Password';\n}\nexport default Password;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport { useCompactItemContext } from '../space/Compact';\nimport { cloneElement } from '../_util/reactNode';\nimport Input from './Input';\nvar Search = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n customizeInputPrefixCls = props.inputPrefixCls,\n className = props.className,\n customizeSize = props.size,\n suffix = props.suffix,\n _props$enterButton = props.enterButton,\n enterButton = _props$enterButton === void 0 ? false : _props$enterButton,\n addonAfter = props.addonAfter,\n loading = props.loading,\n disabled = props.disabled,\n customOnSearch = props.onSearch,\n customOnChange = props.onChange,\n onCompositionStart = props.onCompositionStart,\n onCompositionEnd = props.onCompositionEnd,\n restProps = __rest(props, [\"prefixCls\", \"inputPrefixCls\", \"className\", \"size\", \"suffix\", \"enterButton\", \"addonAfter\", \"loading\", \"disabled\", \"onSearch\", \"onChange\", \"onCompositionStart\", \"onCompositionEnd\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var contextSize = React.useContext(SizeContext);\n var composedRef = React.useRef(false);\n var prefixCls = getPrefixCls('input-search', customizePrefixCls);\n var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize;\n var size = compactSize || customizeSize || contextSize;\n var inputRef = React.useRef(null);\n var onChange = function onChange(e) {\n if (e && e.target && e.type === 'click' && customOnSearch) {\n customOnSearch(e.target.value, e);\n }\n if (customOnChange) {\n customOnChange(e);\n }\n };\n var onMouseDown = function onMouseDown(e) {\n var _a;\n if (document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input)) {\n e.preventDefault();\n }\n };\n var onSearch = function onSearch(e) {\n var _a, _b;\n if (customOnSearch) {\n customOnSearch((_b = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.value, e);\n }\n };\n var onPressEnter = function onPressEnter(e) {\n if (composedRef.current || loading) {\n return;\n }\n onSearch(e);\n };\n var searchIcon = typeof enterButton === 'boolean' ? /*#__PURE__*/React.createElement(SearchOutlined, null) : null;\n var btnClassName = \"\".concat(prefixCls, \"-button\");\n var button;\n var enterButtonAsElement = enterButton || {};\n var isAntdButton = enterButtonAsElement.type && enterButtonAsElement.type.__ANT_BUTTON === true;\n if (isAntdButton || enterButtonAsElement.type === 'button') {\n button = cloneElement(enterButtonAsElement, _extends({\n onMouseDown: onMouseDown,\n onClick: function onClick(e) {\n var _a, _b;\n (_b = (_a = enterButtonAsElement === null || enterButtonAsElement === void 0 ? void 0 : enterButtonAsElement.props) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n onSearch(e);\n },\n key: 'enterButton'\n }, isAntdButton ? {\n className: btnClassName,\n size: size\n } : {}));\n } else {\n button = /*#__PURE__*/React.createElement(Button, {\n className: btnClassName,\n type: enterButton ? 'primary' : undefined,\n size: size,\n disabled: disabled,\n key: \"enterButton\",\n onMouseDown: onMouseDown,\n onClick: onSearch,\n loading: loading,\n icon: searchIcon\n }, enterButton);\n }\n if (addonAfter) {\n button = [button, cloneElement(addonAfter, {\n key: 'addonAfter'\n })];\n }\n var cls = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-\").concat(size), !!size), \"\".concat(prefixCls, \"-with-button\"), !!enterButton), className);\n var handleOnCompositionStart = function handleOnCompositionStart(e) {\n composedRef.current = true;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n var handleOnCompositionEnd = function handleOnCompositionEnd(e) {\n composedRef.current = false;\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n return /*#__PURE__*/React.createElement(Input, _extends({\n ref: composeRef(inputRef, ref),\n onPressEnter: onPressEnter\n }, restProps, {\n size: size,\n onCompositionStart: handleOnCompositionStart,\n onCompositionEnd: handleOnCompositionEnd,\n prefixCls: inputPrefixCls,\n addonAfter: button,\n suffix: suffix,\n onChange: onChange,\n className: cls,\n disabled: disabled\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Search.displayName = 'Search';\n}\nexport default Search;","import Group from './Group';\nimport InternalInput from './Input';\nimport Password from './Password';\nimport Search from './Search';\nimport TextArea from './TextArea';\nvar Input = InternalInput;\nInput.Group = Group;\nInput.Search = Search;\nInput.TextArea = TextArea;\nInput.Password = Password;\nexport default Input;","// This icon file is generated automatically.\nvar BarsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"bars\", \"theme\": \"outlined\" };\nexport default BarsOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport BarsOutlinedSvg from \"@ant-design/icons-svg/es/asn/BarsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar BarsOutlined = function BarsOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: BarsOutlinedSvg\n }));\n};\nBarsOutlined.displayName = 'BarsOutlined';\nexport default /*#__PURE__*/React.forwardRef(BarsOutlined);","var isNumeric = function isNumeric(value) {\n return !isNaN(parseFloat(value)) && isFinite(value);\n};\nexport default isNumeric;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport BarsOutlined from \"@ant-design/icons/es/icons/BarsOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport isNumeric from '../_util/isNumeric';\nimport { LayoutContext } from './layout';\nvar dimensionMaxMap = {\n xs: '479.98px',\n sm: '575.98px',\n md: '767.98px',\n lg: '991.98px',\n xl: '1199.98px',\n xxl: '1599.98px'\n};\nexport var SiderContext = /*#__PURE__*/React.createContext({});\nvar generateId = function () {\n var i = 0;\n return function () {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n i += 1;\n return \"\".concat(prefix).concat(i);\n };\n}();\nvar Sider = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n trigger = _a.trigger,\n children = _a.children,\n _a$defaultCollapsed = _a.defaultCollapsed,\n defaultCollapsed = _a$defaultCollapsed === void 0 ? false : _a$defaultCollapsed,\n _a$theme = _a.theme,\n theme = _a$theme === void 0 ? 'dark' : _a$theme,\n _a$style = _a.style,\n style = _a$style === void 0 ? {} : _a$style,\n _a$collapsible = _a.collapsible,\n collapsible = _a$collapsible === void 0 ? false : _a$collapsible,\n _a$reverseArrow = _a.reverseArrow,\n reverseArrow = _a$reverseArrow === void 0 ? false : _a$reverseArrow,\n _a$width = _a.width,\n width = _a$width === void 0 ? 200 : _a$width,\n _a$collapsedWidth = _a.collapsedWidth,\n collapsedWidth = _a$collapsedWidth === void 0 ? 80 : _a$collapsedWidth,\n zeroWidthTriggerStyle = _a.zeroWidthTriggerStyle,\n breakpoint = _a.breakpoint,\n onCollapse = _a.onCollapse,\n onBreakpoint = _a.onBreakpoint,\n props = __rest(_a, [\"prefixCls\", \"className\", \"trigger\", \"children\", \"defaultCollapsed\", \"theme\", \"style\", \"collapsible\", \"reverseArrow\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\", \"breakpoint\", \"onCollapse\", \"onBreakpoint\"]);\n var _useContext = useContext(LayoutContext),\n siderHook = _useContext.siderHook;\n var _useState = useState('collapsed' in props ? props.collapsed : defaultCollapsed),\n _useState2 = _slicedToArray(_useState, 2),\n collapsed = _useState2[0],\n setCollapsed = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n below = _useState4[0],\n setBelow = _useState4[1];\n useEffect(function () {\n if ('collapsed' in props) {\n setCollapsed(props.collapsed);\n }\n }, [props.collapsed]);\n var handleSetCollapsed = function handleSetCollapsed(value, type) {\n if (!('collapsed' in props)) {\n setCollapsed(value);\n }\n onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(value, type);\n };\n // ========================= Responsive =========================\n var responsiveHandlerRef = useRef();\n responsiveHandlerRef.current = function (mql) {\n setBelow(mql.matches);\n onBreakpoint === null || onBreakpoint === void 0 ? void 0 : onBreakpoint(mql.matches);\n if (collapsed !== mql.matches) {\n handleSetCollapsed(mql.matches, 'responsive');\n }\n };\n useEffect(function () {\n function responsiveHandler(mql) {\n return responsiveHandlerRef.current(mql);\n }\n var mql;\n if (typeof window !== 'undefined') {\n var _window = window,\n matchMedia = _window.matchMedia;\n if (matchMedia && breakpoint && breakpoint in dimensionMaxMap) {\n mql = matchMedia(\"(max-width: \".concat(dimensionMaxMap[breakpoint], \")\"));\n try {\n mql.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql.addListener(responsiveHandler);\n }\n responsiveHandler(mql);\n }\n }\n return function () {\n try {\n mql === null || mql === void 0 ? void 0 : mql.removeEventListener('change', responsiveHandler);\n } catch (error) {\n mql === null || mql === void 0 ? void 0 : mql.removeListener(responsiveHandler);\n }\n };\n }, [breakpoint]); // in order to accept dynamic 'breakpoint' property, we need to add 'breakpoint' into dependency array.\n useEffect(function () {\n var uniqueId = generateId('ant-sider-');\n siderHook.addSider(uniqueId);\n return function () {\n return siderHook.removeSider(uniqueId);\n };\n }, []);\n var toggle = function toggle() {\n handleSetCollapsed(!collapsed, 'clickTrigger');\n };\n var _useContext2 = useContext(ConfigContext),\n getPrefixCls = _useContext2.getPrefixCls;\n var renderSider = function renderSider() {\n var prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n var divProps = omit(props, ['collapsed']);\n var rawWidth = collapsed ? collapsedWidth : width;\n // use \"px\" as fallback unit for width\n var siderWidth = isNumeric(rawWidth) ? \"\".concat(rawWidth, \"px\") : String(rawWidth);\n // special trigger when collapsedWidth == 0\n var zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? ( /*#__PURE__*/React.createElement(\"span\", {\n onClick: toggle,\n className: classNames(\"\".concat(prefixCls, \"-zero-width-trigger\"), \"\".concat(prefixCls, \"-zero-width-trigger-\").concat(reverseArrow ? 'right' : 'left')),\n style: zeroWidthTriggerStyle\n }, trigger || /*#__PURE__*/React.createElement(BarsOutlined, null))) : null;\n var iconObj = {\n expanded: reverseArrow ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null),\n collapsed: reverseArrow ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n };\n var status = collapsed ? 'collapsed' : 'expanded';\n var defaultTrigger = iconObj[status];\n var triggerDom = trigger !== null ? zeroWidthTrigger || ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-trigger\"),\n onClick: toggle,\n style: {\n width: siderWidth\n }\n }, trigger || defaultTrigger)) : null;\n var divStyle = _extends(_extends({}, style), {\n flex: \"0 0 \".concat(siderWidth),\n maxWidth: siderWidth,\n minWidth: siderWidth,\n width: siderWidth\n });\n var siderCls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(theme), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-collapsed\"), !!collapsed), \"\".concat(prefixCls, \"-has-trigger\"), collapsible && trigger !== null && !zeroWidthTrigger), \"\".concat(prefixCls, \"-below\"), !!below), \"\".concat(prefixCls, \"-zero-width\"), parseFloat(siderWidth) === 0), className);\n return /*#__PURE__*/React.createElement(\"aside\", _extends({\n className: siderCls\n }, divProps, {\n style: divStyle,\n ref: ref\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-children\")\n }, children), collapsible || below && zeroWidthTrigger ? triggerDom : null);\n };\n var contextValue = React.useMemo(function () {\n return {\n siderCollapsed: collapsed\n };\n }, [collapsed]);\n return /*#__PURE__*/React.createElement(SiderContext.Provider, {\n value: contextValue\n }, renderSider());\n});\nif (process.env.NODE_ENV !== 'production') {\n Sider.displayName = 'Sider';\n}\nexport default Sider;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nexport var LayoutContext = /*#__PURE__*/React.createContext({\n siderHook: {\n addSider: function addSider() {\n return null;\n },\n removeSider: function removeSider() {\n return null;\n }\n }\n});\nfunction generator(_ref) {\n var suffixCls = _ref.suffixCls,\n tagName = _ref.tagName,\n displayName = _ref.displayName;\n return function (BasicComponent) {\n var Adapter = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(suffixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(BasicComponent, _extends({\n ref: ref,\n prefixCls: prefixCls,\n tagName: tagName\n }, props));\n });\n if (process.env.NODE_ENV !== 'production') {\n Adapter.displayName = displayName;\n }\n return Adapter;\n };\n}\nvar Basic = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n tagName = props.tagName,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"tagName\"]);\n var classString = classNames(prefixCls, className);\n return /*#__PURE__*/React.createElement(tagName, _extends(_extends({\n className: classString\n }, others), {\n ref: ref\n }), children);\n});\nvar BasicLayout = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext2 = React.useContext(ConfigContext),\n direction = _React$useContext2.direction;\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n siders = _React$useState2[0],\n setSiders = _React$useState2[1];\n var prefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n hasSider = props.hasSider,\n Tag = props.tagName,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"hasSider\", \"tagName\"]);\n var classString = classNames(prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-has-sider\"), typeof hasSider === 'boolean' ? hasSider : siders.length > 0), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var contextValue = React.useMemo(function () {\n return {\n siderHook: {\n addSider: function addSider(id) {\n setSiders(function (prev) {\n return [].concat(_toConsumableArray(prev), [id]);\n });\n },\n removeSider: function removeSider(id) {\n setSiders(function (prev) {\n return prev.filter(function (currentId) {\n return currentId !== id;\n });\n });\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(LayoutContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Tag, _extends({\n ref: ref,\n className: classString\n }, others), children));\n});\nvar Layout = generator({\n suffixCls: 'layout',\n tagName: 'section',\n displayName: 'Layout'\n})(BasicLayout);\nvar Header = generator({\n suffixCls: 'layout-header',\n tagName: 'header',\n displayName: 'Header'\n})(Basic);\nvar Footer = generator({\n suffixCls: 'layout-footer',\n tagName: 'footer',\n displayName: 'Footer'\n})(Basic);\nvar Content = generator({\n suffixCls: 'layout-content',\n tagName: 'main',\n displayName: 'Content'\n})(Basic);\nexport { Header, Footer, Content };\nexport default Layout;","import locale from '../locale/default';\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './default';\nvar LocaleReceiver = function LocaleReceiver(props) {\n var _props$componentName = props.componentName,\n componentName = _props$componentName === void 0 ? 'global' : _props$componentName,\n defaultLocale = props.defaultLocale,\n children = props.children;\n var antLocale = React.useContext(LocaleContext);\n var getLocale = React.useMemo(function () {\n var _a;\n var locale = defaultLocale || defaultLocaleData[componentName];\n var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return _extends(_extends({}, locale instanceof Function ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n var getLocaleCode = React.useMemo(function () {\n var localeCode = antLocale && antLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if (antLocale && antLocale.exist && !localeCode) {\n return defaultLocaleData.locale;\n }\n return localeCode;\n }, [antLocale]);\n return children(getLocale, getLocaleCode, antLocale);\n};\nexport default LocaleReceiver;\nexport var useLocaleReceiver = function useLocaleReceiver(componentName, defaultLocale) {\n var antLocale = React.useContext(LocaleContext);\n var getLocale = React.useMemo(function () {\n var _a;\n var locale = defaultLocale || defaultLocaleData[componentName];\n var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n return [getLocale];\n};","import { createContext } from 'react';\nvar LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","import enUS from '../../date-picker/locale/en_US';\nexport default enUS;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nvar typeTemplate = '${label} is not a valid ${type}';\nvar localeValues = {\n locale: 'en',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n \"default\": 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n \"enum\": '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n }\n};\nexport default localeValues;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nvar OverrideContext = /*#__PURE__*/React.createContext(null);\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport var OverrideProvider = function OverrideProvider(_a) {\n var children = _a.children,\n restProps = __rest(_a, [\"children\"]);\n var override = React.useContext(OverrideContext);\n var context = React.useMemo(function () {\n return _extends(_extends({}, override), restProps);\n }, [override, restProps.prefixCls,\n // restProps.expandIcon, Not mark as deps since this is a ReactNode\n restProps.mode, restProps.selectable\n // restProps.validator, Not mark as deps since this is a function\n ]);\n\n return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: context\n }, children);\n};\nexport default OverrideContext;","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n if (uuid === undefined) {\n return null;\n }\n return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n\n/**\n * Get `data-menu-id`\n */\nexport function useMenuId(eventKey) {\n var id = React.useContext(IdContext);\n return getMenuId(id, eventKey);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\nfunction mergeProps(origin, target) {\n var clone = _objectSpread({}, origin);\n Object.keys(target).forEach(function (key) {\n var value = target[key];\n if (value !== undefined) {\n clone[key] = value;\n }\n });\n return clone;\n}\nexport default function InheritableContextProvider(_ref) {\n var children = _ref.children,\n locked = _ref.locked,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var context = React.useContext(MenuContext);\n var inheritableContext = useMemo(function () {\n return mergeProps(context, restProps);\n }, [context, restProps], function (prev, next) {\n return !locked && (prev[0] !== next[0] || !isEqual(prev[1], next[1], true));\n });\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: inheritableContext\n }, children);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\n\n// ========================= Path Register =========================\n\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n return React.useContext(PathRegisterContext);\n}\n\n// ========================= Path Tracker ==========================\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n var parentKeyPath = React.useContext(PathTrackerContext);\n return React.useMemo(function () {\n return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n }, [parentKeyPath, eventKey]);\n}\n\n// =========================== Path User ===========================\n\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport { getMenuId } from \"../context/IdContext\";\n\n// destruct to reduce minify size\nvar LEFT = KeyCode.LEFT,\n RIGHT = KeyCode.RIGHT,\n UP = KeyCode.UP,\n DOWN = KeyCode.DOWN,\n ENTER = KeyCode.ENTER,\n ESC = KeyCode.ESC,\n HOME = KeyCode.HOME,\n END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n var _inline, _horizontal, _vertical, _offsets;\n var prev = 'prev';\n var next = 'next';\n var children = 'children';\n var parent = 'parent';\n\n // Inline enter is special that we use unique operation\n if (mode === 'inline' && which === ENTER) {\n return {\n inlineTrigger: true\n };\n }\n var inline = (_inline = {}, _defineProperty(_inline, UP, prev), _defineProperty(_inline, DOWN, next), _inline);\n var horizontal = (_horizontal = {}, _defineProperty(_horizontal, LEFT, isRtl ? next : prev), _defineProperty(_horizontal, RIGHT, isRtl ? prev : next), _defineProperty(_horizontal, DOWN, children), _defineProperty(_horizontal, ENTER, children), _horizontal);\n var vertical = (_vertical = {}, _defineProperty(_vertical, UP, prev), _defineProperty(_vertical, DOWN, next), _defineProperty(_vertical, ENTER, children), _defineProperty(_vertical, ESC, parent), _defineProperty(_vertical, LEFT, isRtl ? children : parent), _defineProperty(_vertical, RIGHT, isRtl ? parent : children), _vertical);\n var offsets = {\n inline: inline,\n horizontal: horizontal,\n vertical: vertical,\n inlineSub: inline,\n horizontalSub: vertical,\n verticalSub: vertical\n };\n var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n switch (type) {\n case prev:\n return {\n offset: -1,\n sibling: true\n };\n case next:\n return {\n offset: 1,\n sibling: true\n };\n case parent:\n return {\n offset: -1,\n sibling: false\n };\n case children:\n return {\n offset: 1,\n sibling: false\n };\n default:\n return null;\n }\n}\nfunction findContainerUL(element) {\n var current = element;\n while (current) {\n if (current.getAttribute('data-menu-list')) {\n return current;\n }\n current = current.parentElement;\n }\n\n // Normally should not reach this line\n /* istanbul ignore next */\n return null;\n}\n\n/**\n * Find focused element within element set provided\n */\nfunction getFocusElement(activeElement, elements) {\n var current = activeElement || document.activeElement;\n while (current) {\n if (elements.has(current)) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n}\n\n/**\n * Get focusable elements from the element set under provided container\n */\nfunction getFocusableElements(container, elements) {\n var list = getFocusNodeList(container, true);\n return list.filter(function (ele) {\n return elements.has(ele);\n });\n}\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n // Key on the menu item will not get validate parent container\n if (!parentQueryContainer) {\n return null;\n }\n\n // List current level menu item elements\n var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);\n\n // Find next focus index\n var count = sameLevelFocusableMenuElementList.length;\n var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n return focusMenuElement === ele;\n });\n if (offset < 0) {\n if (focusIndex === -1) {\n focusIndex = count - 1;\n } else {\n focusIndex -= 1;\n }\n } else if (offset > 0) {\n focusIndex += 1;\n }\n focusIndex = (focusIndex + count) % count;\n\n // Focus menu item\n return sameLevelFocusableMenuElementList[focusIndex];\n}\nexport default function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n var rafRef = React.useRef();\n var activeRef = React.useRef();\n activeRef.current = activeKey;\n var cleanRaf = function cleanRaf() {\n raf.cancel(rafRef.current);\n };\n React.useEffect(function () {\n return function () {\n cleanRaf();\n };\n }, []);\n return function (e) {\n var which = e.which;\n if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n // Convert key to elements\n var elements;\n var key2element;\n var element2key;\n\n // >>> Wrap as function since we use raf for some case\n var refreshElements = function refreshElements() {\n elements = new Set();\n key2element = new Map();\n element2key = new Map();\n var keys = getKeys();\n keys.forEach(function (key) {\n var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n if (element) {\n elements.add(element);\n element2key.set(element, key);\n key2element.set(key, element);\n }\n });\n return elements;\n };\n refreshElements();\n\n // First we should find current focused MenuItem/SubMenu element\n var activeElement = key2element.get(activeKey);\n var focusMenuElement = getFocusElement(activeElement, elements);\n var focusMenuKey = element2key.get(focusMenuElement);\n var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);\n\n // Some mode do not have fully arrow operation like inline\n if (!offsetObj && which !== HOME && which !== END) {\n return;\n }\n\n // Arrow prevent default to avoid page scroll\n if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n e.preventDefault();\n }\n var tryFocus = function tryFocus(menuElement) {\n if (menuElement) {\n var focusTargetElement = menuElement;\n\n // Focus to link instead of menu item if possible\n var link = menuElement.querySelector('a');\n if (link !== null && link !== void 0 && link.getAttribute('href')) {\n focusTargetElement = link;\n }\n var targetKey = element2key.get(menuElement);\n triggerActiveKey(targetKey);\n\n /**\n * Do not `useEffect` here since `tryFocus` may trigger async\n * which makes React sync update the `activeKey`\n * that force render before `useRef` set the next activeKey\n */\n cleanRaf();\n rafRef.current = raf(function () {\n if (activeRef.current === targetKey) {\n focusTargetElement.focus();\n }\n });\n }\n };\n if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n // ========================== Sibling ==========================\n // Find walkable focus menu element container\n var parentQueryContainer;\n if (!focusMenuElement || mode === 'inline') {\n parentQueryContainer = containerRef.current;\n } else {\n parentQueryContainer = findContainerUL(focusMenuElement);\n }\n\n // Get next focus element\n var targetElement;\n var focusableElements = getFocusableElements(parentQueryContainer, elements);\n if (which === HOME) {\n targetElement = focusableElements[0];\n } else if (which === END) {\n targetElement = focusableElements[focusableElements.length - 1];\n } else {\n targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n }\n // Focus menu item\n tryFocus(targetElement);\n\n // ======================= InlineTrigger =======================\n } else if (offsetObj.inlineTrigger) {\n // Inline trigger no need switch to sub menu item\n triggerAccessibilityOpen(focusMenuKey);\n // =========================== Level ===========================\n } else if (offsetObj.offset > 0) {\n triggerAccessibilityOpen(focusMenuKey, true);\n cleanRaf();\n rafRef.current = raf(function () {\n // Async should resync elements\n refreshElements();\n var controlId = focusMenuElement.getAttribute('aria-controls');\n var subQueryContainer = document.getElementById(controlId);\n\n // Get sub focusable menu item\n var targetElement = getNextFocusElement(subQueryContainer, elements);\n\n // Focus menu item\n tryFocus(targetElement);\n }, 5);\n } else if (offsetObj.offset < 0) {\n var keyPath = getKeyPath(focusMenuKey, true);\n var parentKey = keyPath[keyPath.length - 2];\n var parentMenuElement = key2element.get(parentKey);\n\n // Focus menu item\n triggerAccessibilityOpen(parentKey, false);\n tryFocus(parentMenuElement);\n }\n }\n\n // Pass origin key down event\n originOnKeyDown === null || originOnKeyDown === void 0 ? void 0 : originOnKeyDown(e);\n };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from \"../utils/timeUtil\";\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\nvar getPathStr = function getPathStr(keyPath) {\n return keyPath.join(PATH_SPLIT);\n};\nvar getPathKeys = function getPathKeys(keyPathStr) {\n return keyPathStr.split(PATH_SPLIT);\n};\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n internalForceUpdate = _React$useState2[1];\n var key2pathRef = useRef(new Map());\n var path2keyRef = useRef(new Map());\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n overflowKeys = _React$useState4[0],\n setOverflowKeys = _React$useState4[1];\n var updateRef = useRef(0);\n var destroyRef = useRef(false);\n var forceUpdate = function forceUpdate() {\n if (!destroyRef.current) {\n internalForceUpdate({});\n }\n };\n var registerPath = useCallback(function (key, keyPath) {\n // Warning for invalidate or duplicated `key`\n if (process.env.NODE_ENV !== 'production') {\n warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n }\n\n // Fill map\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.set(connectedPath, key);\n key2pathRef.current.set(key, connectedPath);\n updateRef.current += 1;\n var id = updateRef.current;\n nextSlice(function () {\n if (id === updateRef.current) {\n forceUpdate();\n }\n });\n }, []);\n var unregisterPath = useCallback(function (key, keyPath) {\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.delete(connectedPath);\n key2pathRef.current.delete(key);\n }, []);\n var refreshOverflowKeys = useCallback(function (keys) {\n setOverflowKeys(keys);\n }, []);\n var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n var fullPath = key2pathRef.current.get(eventKey) || '';\n var keys = getPathKeys(fullPath);\n if (includeOverflow && overflowKeys.includes(keys[0])) {\n keys.unshift(OVERFLOW_KEY);\n }\n return keys;\n }, [overflowKeys]);\n var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n return pathKeys.some(function (pathKey) {\n var pathKeyList = getKeyPath(pathKey, true);\n return pathKeyList.includes(eventKey);\n });\n }, [getKeyPath]);\n var getKeys = function getKeys() {\n var keys = _toConsumableArray(key2pathRef.current.keys());\n if (overflowKeys.length) {\n keys.push(OVERFLOW_KEY);\n }\n return keys;\n };\n\n /**\n * Find current key related child path keys\n */\n var getSubPathKeys = useCallback(function (key) {\n var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n var pathKeys = new Set();\n _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n if (pathKey.startsWith(connectedPath)) {\n pathKeys.add(path2keyRef.current.get(pathKey));\n }\n });\n return pathKeys;\n }, []);\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return {\n // Register\n registerPath: registerPath,\n unregisterPath: unregisterPath,\n refreshOverflowKeys: refreshOverflowKeys,\n // Util\n isSubPathKey: isSubPathKey,\n getKeyPath: getKeyPath,\n getKeys: getKeys,\n getSubPathKeys: getSubPathKeys\n };\n}","export function nextSlice(callback) {\n /* istanbul ignore next */\n Promise.resolve().then(callback);\n}","import * as React from 'react';\n\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\nexport default function useMemoCallback(func) {\n var funRef = React.useRef(func);\n funRef.current = func;\n var callback = React.useCallback(function () {\n var _funRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n }, []);\n return func ? callback : undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n var _useMergedState = useMergedState(id, {\n value: id\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n uuid = _useMergedState2[0],\n setUUID = _useMergedState2[1];\n React.useEffect(function () {\n internalId += 1;\n var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n setUUID(\"rc-menu-uuid-\".concat(newId));\n }, []);\n return uuid;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n var _React$useContext = React.useContext(MenuContext),\n activeKey = _React$useContext.activeKey,\n onActive = _React$useContext.onActive,\n onInactive = _React$useContext.onInactive;\n var ret = {\n active: activeKey === eventKey\n };\n\n // Skip when disabled\n if (!disabled) {\n ret.onMouseEnter = function (domEvent) {\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n onActive(eventKey);\n };\n ret.onMouseLeave = function (domEvent) {\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n onInactive(eventKey);\n };\n }\n return ret;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useDirectionStyle(level) {\n var _React$useContext = React.useContext(MenuContext),\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl,\n inlineIndent = _React$useContext.inlineIndent;\n if (mode !== 'inline') {\n return null;\n }\n var len = level;\n return rtl ? {\n paddingRight: len * inlineIndent\n } : {\n paddingLeft: len * inlineIndent\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n var icon = _ref.icon,\n props = _ref.props,\n children = _ref.children;\n var iconNode;\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n } else {\n // Compatible for origin definition\n iconNode = icon;\n }\n return iconNode || children || null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\nexport function warnItemProp(_ref) {\n var item = _ref.item,\n restInfo = _objectWithoutProperties(_ref, _excluded);\n Object.defineProperty(restInfo, 'item', {\n get: function get() {\n warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n return item;\n }\n });\n return restInfo;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n _excluded3 = [\"active\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useMenuId } from \"./context/IdContext\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useActive from \"./hooks/useActive\";\nimport useDirectionStyle from \"./hooks/useDirectionStyle\";\nimport Icon from \"./Icon\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n// Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(LegacyMenuItem, _React$Component);\n var _super = _createSuper(LegacyMenuItem);\n function LegacyMenuItem() {\n _classCallCheck(this, LegacyMenuItem);\n return _super.apply(this, arguments);\n }\n _createClass(LegacyMenuItem, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n title = _this$props.title,\n attribute = _this$props.attribute,\n elementRef = _this$props.elementRef,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n // Here the props are eventually passed to the DOM element.\n // React does not recognize non-standard attributes.\n // Therefore, remove the props that is not used here.\n // ref: https://github.com/ant-design/ant-design/issues/41395\n var passedProps = omit(restProps, ['eventKey', 'popupClassName', 'popupOffset', 'onTitleClick']);\n warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n title: typeof title === 'string' ? title : undefined\n }, passedProps, {\n ref: elementRef\n }));\n }\n }]);\n return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\nvar InternalMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var style = props.style,\n className = props.className,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n itemIcon = props.itemIcon,\n children = props.children,\n role = props.role,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded2);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n onItemClick = _React$useContext.onItemClick,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n contextItemIcon = _React$useContext.itemIcon,\n selectedKeys = _React$useContext.selectedKeys,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n var itemCls = \"\".concat(prefixCls, \"-item\");\n var legacyMenuItemRef = React.useRef();\n var elementRef = React.useRef();\n var mergedDisabled = contextDisabled || disabled;\n var mergedEleRef = useComposeRef(ref, elementRef);\n var connectedKeys = useFullPath(eventKey);\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'MenuItem should not leave undefined `key`.');\n }\n\n // ============================= Info =============================\n var getEventInfo = function getEventInfo(e) {\n return {\n key: eventKey,\n // Note: For legacy code is reversed which not like other antd component\n keyPath: _toConsumableArray(connectedKeys).reverse(),\n item: legacyMenuItemRef.current,\n domEvent: e\n };\n };\n\n // ============================= Icon =============================\n var mergedItemIcon = itemIcon || contextItemIcon;\n\n // ============================ Active ============================\n var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded3);\n\n // ============================ Select ============================\n var selected = selectedKeys.includes(eventKey);\n\n // ======================== DirectionStyle ========================\n var directionStyle = useDirectionStyle(connectedKeys.length);\n\n // ============================ Events ============================\n var onInternalClick = function onInternalClick(e) {\n if (mergedDisabled) {\n return;\n }\n var info = getEventInfo(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n };\n var onInternalKeyDown = function onInternalKeyDown(e) {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n if (e.which === KeyCode.ENTER) {\n var info = getEventInfo(e);\n\n // Legacy. Key will also trigger click event\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus(e) {\n onActive(eventKey);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n\n // ============================ Render ============================\n var optionRoleProps = {};\n if (props.role === 'option') {\n optionRoleProps['aria-selected'] = selected;\n }\n var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n ref: legacyMenuItemRef,\n elementRef: mergedEleRef,\n role: role === null ? 'none' : role || 'menuitem',\n tabIndex: disabled ? null : -1,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n }, restProps, activeProps, optionRoleProps, {\n component: \"li\",\n \"aria-disabled\": disabled,\n style: _objectSpread(_objectSpread({}, directionStyle), style),\n className: classNames(itemCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(itemCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(itemCls, \"-selected\"), selected), _defineProperty(_classNames, \"\".concat(itemCls, \"-disabled\"), mergedDisabled), _classNames), className),\n onClick: onInternalClick,\n onKeyDown: onInternalKeyDown,\n onFocus: onInternalFocus\n }), children, /*#__PURE__*/React.createElement(Icon, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n isSelected: selected\n }),\n icon: mergedItemIcon\n }));\n if (_internalRenderMenuItem) {\n renderNode = _internalRenderMenuItem(renderNode, props, {\n selected: selected\n });\n }\n return renderNode;\n});\nfunction MenuItem(props, ref) {\n var eventKey = props.eventKey;\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n var connectedKeyPath = useFullPath(eventKey);\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n if (measure) {\n return null;\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(InternalMenuItem, _extends({}, props, {\n ref: ref\n }));\n}\nexport default /*#__PURE__*/React.forwardRef(MenuItem);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"../context/MenuContext\";\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className),\n role: \"menu\"\n }, restProps, {\n \"data-menu-list\": true,\n ref: ref\n }), children);\n};\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { Divider, MenuItem, MenuItemGroup, SubMenu } from '..';\nexport function parseChildren(children, keyPath) {\n return toArray(children).map(function (child, index) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n var _eventKey, _child$props;\n var key = child.key;\n var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;\n var emptyKey = eventKey === null || eventKey === undefined;\n if (emptyKey) {\n eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n }\n var cloneProps = {\n key: eventKey,\n eventKey: eventKey\n };\n if (process.env.NODE_ENV !== 'production' && emptyKey) {\n cloneProps.warnKey = true;\n }\n return /*#__PURE__*/React.cloneElement(child, cloneProps);\n }\n return child;\n });\n}\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _ref = opt,\n label = _ref.label,\n children = _ref.children,\n key = _ref.key,\n type = _ref.type,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(MenuItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(Divider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\nexport function parseItems(children, items, keyPath) {\n var childNodes = children;\n if (items) {\n childNodes = convertItemsToNodes(items);\n }\n return parseChildren(childNodes, keyPath);\n}","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n if (motion) {\n return motion;\n }\n if (defaultMotions) {\n return defaultMotions[mode] || defaultMotions.other;\n }\n return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from \"../context/MenuContext\";\nimport { placements, placementsRtl } from \"../placements\";\nimport { getMotion } from \"../utils/motionUtil\";\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n var prefixCls = _ref.prefixCls,\n visible = _ref.visible,\n children = _ref.children,\n popup = _ref.popup,\n popupClassName = _ref.popupClassName,\n popupOffset = _ref.popupOffset,\n disabled = _ref.disabled,\n mode = _ref.mode,\n onVisibleChange = _ref.onVisibleChange;\n var _React$useContext = React.useContext(MenuContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n rtl = _React$useContext.rtl,\n subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n builtinPlacements = _React$useContext.builtinPlacements,\n triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n rootClassName = _React$useContext.rootClassName,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerVisible = _React$useState2[0],\n setInnerVisible = _React$useState2[1];\n var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n var popupPlacement = popupPlacementMap[mode];\n var targetMotion = getMotion(mode, motion, defaultMotions);\n var targetMotionRef = React.useRef(targetMotion);\n if (mode !== 'inline') {\n /**\n * PopupTrigger is only used for vertical and horizontal types.\n * When collapsed is unfolded, the inline animation will destroy the vertical animation.\n */\n targetMotionRef.current = targetMotion;\n }\n var mergedMotion = _objectSpread(_objectSpread({}, targetMotionRef.current), {}, {\n leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: true\n });\n\n // Delay to change visible\n var visibleRef = React.useRef();\n React.useEffect(function () {\n visibleRef.current = raf(function () {\n setInnerVisible(visible);\n });\n return function () {\n raf.cancel(visibleRef.current);\n };\n }, [visible]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n stretch: mode === 'horizontal' ? 'minWidth' : null,\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: innerVisible,\n popup: popup,\n popupAlign: popupOffset && {\n offset: popupOffset\n },\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: onVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion\n }, children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/motionUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport SubMenuList from \"./SubMenuList\";\nexport default function InlineSubMenuList(_ref) {\n var id = _ref.id,\n open = _ref.open,\n keyPath = _ref.keyPath,\n children = _ref.children;\n var fixedMode = 'inline';\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions,\n mode = _React$useContext.mode;\n\n // Always use latest mode check\n var sameModeRef = React.useRef(false);\n sameModeRef.current = mode === fixedMode;\n\n // We record `destroy` mark here since when mode change from `inline` to others.\n // The inline list should remove when motion end.\n var _React$useState = React.useState(!sameModeRef.current),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n destroy = _React$useState2[0],\n setDestroy = _React$useState2[1];\n var mergedOpen = sameModeRef.current ? open : false;\n\n // ================================= Effect =================================\n // Reset destroy state when mode change back\n React.useEffect(function () {\n if (sameModeRef.current) {\n setDestroy(false);\n }\n }, [mode]);\n\n // ================================= Render =================================\n var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions));\n\n // No need appear since nest inlineCollapse changed\n if (keyPath.length > 1) {\n mergedMotion.motionAppear = false;\n }\n\n // Hide inline list when mode changed and motion end\n var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n mergedMotion.onVisibleChanged = function (newVisible) {\n if (!sameModeRef.current && !newVisible) {\n setDestroy(true);\n }\n return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n };\n if (destroy) {\n return null;\n }\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n mode: fixedMode,\n locked: !sameModeRef.current\n }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: mergedOpen\n }, mergedMotion, {\n forceRender: forceSubMenuRender,\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(SubMenuList, {\n id: id,\n className: motionClassName,\n style: motionStyle\n }, children);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from \"./SubMenuList\";\nimport { parseChildren } from \"../utils/nodeUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport useMemoCallback from \"../hooks/useMemoCallback\";\nimport PopupTrigger from \"./PopupTrigger\";\nimport Icon from \"../Icon\";\nimport useActive from \"../hooks/useActive\";\nimport { warnItemProp } from \"../utils/warnUtil\";\nimport useDirectionStyle from \"../hooks/useDirectionStyle\";\nimport InlineSubMenuList from \"./InlineSubMenuList\";\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from \"../context/PathContext\";\nimport { useMenuId } from \"../context/IdContext\";\nimport PrivateContext from \"../context/PrivateContext\";\nvar InternalSubMenu = function InternalSubMenu(props) {\n var _classNames;\n var style = props.style,\n className = props.className,\n title = props.title,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n internalPopupClose = props.internalPopupClose,\n children = props.children,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n popupClassName = props.popupClassName,\n popupOffset = props.popupOffset,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onTitleClick = props.onTitleClick,\n onTitleMouseEnter = props.onTitleMouseEnter,\n onTitleMouseLeave = props.onTitleMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n openKeys = _React$useContext.openKeys,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n activeKey = _React$useContext.activeKey,\n selectedKeys = _React$useContext.selectedKeys,\n contextItemIcon = _React$useContext.itemIcon,\n contextExpandIcon = _React$useContext.expandIcon,\n onItemClick = _React$useContext.onItemClick,\n onOpenChange = _React$useContext.onOpenChange,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n var _React$useContext3 = React.useContext(PathUserContext),\n isSubPathKey = _React$useContext3.isSubPathKey;\n var connectedPath = useFullPath();\n var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n var mergedDisabled = contextDisabled || disabled;\n var elementRef = React.useRef();\n var popupRef = React.useRef();\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'SubMenu should not leave undefined `key`.');\n }\n\n // ================================ Icon ================================\n var mergedItemIcon = itemIcon || contextItemIcon;\n var mergedExpandIcon = expandIcon || contextExpandIcon;\n\n // ================================ Open ================================\n var originOpen = openKeys.includes(eventKey);\n var open = !overflowDisabled && originOpen;\n\n // =============================== Select ===============================\n var childrenSelected = isSubPathKey(selectedKeys, eventKey);\n\n // =============================== Active ===============================\n var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded2);\n\n // Fallback of active check to avoid hover on menu title or disabled item\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n childrenActive = _React$useState2[0],\n setChildrenActive = _React$useState2[1];\n var triggerChildrenActive = function triggerChildrenActive(newActive) {\n if (!mergedDisabled) {\n setChildrenActive(newActive);\n }\n };\n var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n triggerChildrenActive(true);\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n triggerChildrenActive(false);\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var mergedActive = React.useMemo(function () {\n if (active) {\n return active;\n }\n if (mode !== 'inline') {\n return childrenActive || isSubPathKey([activeKey], eventKey);\n }\n return false;\n }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);\n\n // ========================== DirectionStyle ==========================\n var directionStyle = useDirectionStyle(connectedPath.length);\n\n // =============================== Events ===============================\n // >>>> Title click\n var onInternalTitleClick = function onInternalTitleClick(e) {\n // Skip if disabled\n if (mergedDisabled) {\n return;\n }\n onTitleClick === null || onTitleClick === void 0 ? void 0 : onTitleClick({\n key: eventKey,\n domEvent: e\n });\n\n // Trigger open by click when mode is `inline`\n if (mode === 'inline') {\n onOpenChange(eventKey, !originOpen);\n }\n };\n\n // >>>> Context for children click\n var onMergedItemClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n });\n\n // >>>>> Visible change\n var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n if (mode !== 'inline') {\n onOpenChange(eventKey, newVisible);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus() {\n onActive(eventKey);\n };\n\n // =============================== Render ===============================\n var popupId = domDataId && \"\".concat(domDataId, \"-popup\");\n\n // >>>>> Title\n var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"menuitem\",\n style: directionStyle,\n className: \"\".concat(subMenuPrefixCls, \"-title\"),\n tabIndex: mergedDisabled ? null : -1,\n ref: elementRef,\n title: typeof title === 'string' ? title : null,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n \"aria-expanded\": open,\n \"aria-haspopup\": true,\n \"aria-controls\": popupId,\n \"aria-disabled\": mergedDisabled,\n onClick: onInternalTitleClick,\n onFocus: onInternalFocus\n }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n icon: mode !== 'horizontal' ? mergedExpandIcon : null,\n props: _objectSpread(_objectSpread({}, props), {}, {\n isOpen: open,\n // [Legacy] Not sure why need this mark\n isSubMenu: true\n })\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n })));\n\n // Cache mode if it change to `inline` which do not have popup motion\n var triggerModeRef = React.useRef(mode);\n if (mode !== 'inline' && connectedPath.length > 1) {\n triggerModeRef.current = 'vertical';\n } else {\n triggerModeRef.current = mode;\n }\n if (!overflowDisabled) {\n var triggerMode = triggerModeRef.current;\n\n // Still wrap with Trigger here since we need avoid react re-mount dom node\n // Which makes motion failed\n titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n mode: triggerMode,\n prefixCls: subMenuPrefixCls,\n visible: !internalPopupClose && open && mode !== 'inline',\n popupClassName: popupClassName,\n popupOffset: popupOffset,\n popup: /*#__PURE__*/React.createElement(MenuContextProvider\n // Special handle of horizontal mode\n , {\n mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n }, /*#__PURE__*/React.createElement(SubMenuList, {\n id: popupId,\n ref: popupRef\n }, children)),\n disabled: mergedDisabled,\n onVisibleChange: onPopupVisibleChange\n }, titleNode);\n }\n\n // >>>>> List node\n var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n role: \"none\"\n }, restProps, {\n component: \"li\",\n style: style,\n className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled), _classNames)),\n onMouseEnter: onInternalMouseEnter,\n onMouseLeave: onInternalMouseLeave\n }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n id: popupId,\n open: open,\n keyPath: connectedPath\n }, children));\n if (_internalRenderSubMenuItem) {\n listNode = _internalRenderSubMenuItem(listNode, props, {\n selected: childrenSelected,\n active: mergedActive,\n open: open,\n disabled: mergedDisabled\n });\n }\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n onItemClick: onMergedItemClick,\n mode: mode === 'horizontal' ? 'vertical' : mode,\n itemIcon: mergedItemIcon,\n expandIcon: mergedExpandIcon\n }, listNode);\n};\nexport default function SubMenu(props) {\n var eventKey = props.eventKey,\n children = props.children;\n var connectedKeyPath = useFullPath(eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n var renderNode;\n\n // ======================== Render ========================\n if (measure) {\n renderNode = childList;\n } else {\n renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, props, childList);\n }\n return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n value: connectedKeyPath\n }, renderNode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport { flushSync } from 'react-dom';\nimport isEqual from \"rc-util/es/isEqual\";\nimport { getMenuId, IdContext } from \"./context/IdContext\";\nimport MenuContextProvider from \"./context/MenuContext\";\nimport { PathRegisterContext, PathUserContext } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useAccessibility from \"./hooks/useAccessibility\";\nimport useKeyRecords, { OVERFLOW_KEY } from \"./hooks/useKeyRecords\";\nimport useMemoCallback from \"./hooks/useMemoCallback\";\nimport useUUID from \"./hooks/useUUID\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport { parseItems } from \"./utils/nodeUtil\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n\n// optimize for render\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _childList$, _classNames;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,\n rootClassName = _ref.rootClassName,\n style = _ref.style,\n className = _ref.className,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n items = _ref.items,\n children = _ref.children,\n direction = _ref.direction,\n id = _ref.id,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,\n inlineCollapsed = _ref.inlineCollapsed,\n disabled = _ref.disabled,\n disabledOverflow = _ref.disabledOverflow,\n _ref$subMenuOpenDelay = _ref.subMenuOpenDelay,\n subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,\n _ref$subMenuCloseDela = _ref.subMenuCloseDelay,\n subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,\n forceSubMenuRender = _ref.forceSubMenuRender,\n defaultOpenKeys = _ref.defaultOpenKeys,\n openKeys = _ref.openKeys,\n activeKey = _ref.activeKey,\n defaultActiveFirst = _ref.defaultActiveFirst,\n _ref$selectable = _ref.selectable,\n selectable = _ref$selectable === void 0 ? true : _ref$selectable,\n _ref$multiple = _ref.multiple,\n multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n defaultSelectedKeys = _ref.defaultSelectedKeys,\n selectedKeys = _ref.selectedKeys,\n onSelect = _ref.onSelect,\n onDeselect = _ref.onDeselect,\n _ref$inlineIndent = _ref.inlineIndent,\n inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,\n motion = _ref.motion,\n defaultMotions = _ref.defaultMotions,\n _ref$triggerSubMenuAc = _ref.triggerSubMenuAction,\n triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,\n builtinPlacements = _ref.builtinPlacements,\n itemIcon = _ref.itemIcon,\n expandIcon = _ref.expandIcon,\n _ref$overflowedIndica = _ref.overflowedIndicator,\n overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,\n overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,\n getPopupContainer = _ref.getPopupContainer,\n onClick = _ref.onClick,\n onOpenChange = _ref.onOpenChange,\n onKeyDown = _ref.onKeyDown,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName,\n _internalRenderMenuItem = _ref._internalRenderMenuItem,\n _internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var childList = React.useMemo(function () {\n return parseItems(children, items, EMPTY_LIST);\n }, [children, items]);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mounted = _React$useState2[0],\n setMounted = _React$useState2[1];\n var containerRef = React.useRef();\n var uuid = useUUID(id);\n var isRtl = direction === 'rtl';\n\n // ========================= Warn =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n }\n\n // ========================= Open =========================\n var _useMergedState = useMergedState(defaultOpenKeys, {\n value: openKeys,\n postState: function postState(keys) {\n return keys || EMPTY_LIST;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpenKeys = _useMergedState2[0],\n setMergedOpenKeys = _useMergedState2[1];\n\n // React 18 will merge mouse event which means we open key will not sync\n // ref: https://github.com/ant-design/ant-design/issues/38818\n var triggerOpenKeys = function triggerOpenKeys(keys) {\n var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n function doUpdate() {\n setMergedOpenKeys(keys);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(keys);\n }\n if (forceFlush) {\n flushSync(doUpdate);\n } else {\n doUpdate();\n }\n };\n\n // >>>>> Cache & Reset open keys when inlineCollapsed changed\n var _React$useState3 = React.useState(mergedOpenKeys),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n inlineCacheOpenKeys = _React$useState4[0],\n setInlineCacheOpenKeys = _React$useState4[1];\n var mountRef = React.useRef(false);\n\n // ========================= Mode =========================\n var _React$useMemo = React.useMemo(function () {\n if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n return ['vertical', inlineCollapsed];\n }\n return [mode, false];\n }, [mode, inlineCollapsed]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n mergedMode = _React$useMemo2[0],\n mergedInlineCollapsed = _React$useMemo2[1];\n var isInlineMode = mergedMode === 'inline';\n var _React$useState5 = React.useState(mergedMode),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n internalMode = _React$useState6[0],\n setInternalMode = _React$useState6[1];\n var _React$useState7 = React.useState(mergedInlineCollapsed),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalInlineCollapsed = _React$useState8[0],\n setInternalInlineCollapsed = _React$useState8[1];\n React.useEffect(function () {\n setInternalMode(mergedMode);\n setInternalInlineCollapsed(mergedInlineCollapsed);\n if (!mountRef.current) {\n return;\n }\n // Synchronously update MergedOpenKeys\n if (isInlineMode) {\n setMergedOpenKeys(inlineCacheOpenKeys);\n } else {\n // Trigger open event in case its in control\n triggerOpenKeys(EMPTY_LIST);\n }\n }, [mergedMode, mergedInlineCollapsed]);\n\n // ====================== Responsive ======================\n var _React$useState9 = React.useState(0),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n lastVisibleIndex = _React$useState10[0],\n setLastVisibleIndex = _React$useState10[1];\n var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;\n\n // Cache\n React.useEffect(function () {\n if (isInlineMode) {\n setInlineCacheOpenKeys(mergedOpenKeys);\n }\n }, [mergedOpenKeys]);\n React.useEffect(function () {\n mountRef.current = true;\n return function () {\n mountRef.current = false;\n };\n }, []);\n\n // ========================= Path =========================\n var _useKeyRecords = useKeyRecords(),\n registerPath = _useKeyRecords.registerPath,\n unregisterPath = _useKeyRecords.unregisterPath,\n refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n isSubPathKey = _useKeyRecords.isSubPathKey,\n getKeyPath = _useKeyRecords.getKeyPath,\n getKeys = _useKeyRecords.getKeys,\n getSubPathKeys = _useKeyRecords.getSubPathKeys;\n var registerPathContext = React.useMemo(function () {\n return {\n registerPath: registerPath,\n unregisterPath: unregisterPath\n };\n }, [registerPath, unregisterPath]);\n var pathUserContext = React.useMemo(function () {\n return {\n isSubPathKey: isSubPathKey\n };\n }, [isSubPathKey]);\n React.useEffect(function () {\n refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n return child.key;\n }));\n }, [lastVisibleIndex, allVisible]);\n\n // ======================== Active ========================\n var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n value: activeKey\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedActiveKey = _useMergedState4[0],\n setMergedActiveKey = _useMergedState4[1];\n var onActive = useMemoCallback(function (key) {\n setMergedActiveKey(key);\n });\n var onInactive = useMemoCallback(function () {\n setMergedActiveKey(undefined);\n });\n useImperativeHandle(ref, function () {\n return {\n list: containerRef.current,\n focus: function focus(options) {\n var _childList$find;\n var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : (_childList$find = childList.find(function (node) {\n return !node.props.disabled;\n })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n if (shouldFocusKey) {\n var _containerRef$current, _containerRef$current2, _containerRef$current3;\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.querySelector(\"li[data-menu-id='\".concat(getMenuId(uuid, shouldFocusKey), \"']\"))) === null || _containerRef$current2 === void 0 ? void 0 : (_containerRef$current3 = _containerRef$current2.focus) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.call(_containerRef$current2, options);\n }\n }\n };\n });\n\n // ======================== Select ========================\n // >>>>> Select keys\n var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n value: selectedKeys,\n // Legacy convert key to array\n postState: function postState(keys) {\n if (Array.isArray(keys)) {\n return keys;\n }\n if (keys === null || keys === undefined) {\n return EMPTY_LIST;\n }\n return [keys];\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedSelectKeys = _useMergedState6[0],\n setMergedSelectKeys = _useMergedState6[1];\n\n // >>>>> Trigger select\n var triggerSelection = function triggerSelection(info) {\n if (selectable) {\n // Insert or Remove\n var targetKey = info.key;\n var exist = mergedSelectKeys.includes(targetKey);\n var newSelectKeys;\n if (multiple) {\n if (exist) {\n newSelectKeys = mergedSelectKeys.filter(function (key) {\n return key !== targetKey;\n });\n } else {\n newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n }\n } else {\n newSelectKeys = [targetKey];\n }\n setMergedSelectKeys(newSelectKeys);\n\n // Trigger event\n var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n selectedKeys: newSelectKeys\n });\n if (exist) {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectInfo);\n } else {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectInfo);\n }\n }\n\n // Whatever selectable, always close it\n if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {\n triggerOpenKeys(EMPTY_LIST);\n }\n };\n\n // ========================= Open =========================\n /**\n * Click for item. SubMenu do not have selection status\n */\n var onInternalClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n triggerSelection(info);\n });\n var onInternalOpenChange = useMemoCallback(function (key, open) {\n var newOpenKeys = mergedOpenKeys.filter(function (k) {\n return k !== key;\n });\n if (open) {\n newOpenKeys.push(key);\n } else if (internalMode !== 'inline') {\n // We need find all related popup to close\n var subPathKeys = getSubPathKeys(key);\n newOpenKeys = newOpenKeys.filter(function (k) {\n return !subPathKeys.has(k);\n });\n }\n if (!isEqual(mergedOpenKeys, newOpenKeys, true)) {\n triggerOpenKeys(newOpenKeys, true);\n }\n });\n var getInternalPopupContainer = useMemoCallback(getPopupContainer);\n\n // ==================== Accessibility =====================\n var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n onInternalOpenChange(key, nextOpen);\n };\n var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);\n\n // ======================== Effect ========================\n React.useEffect(function () {\n setMounted(true);\n }, []);\n\n // ======================= Context ========================\n var privateContext = React.useMemo(function () {\n return {\n _internalRenderMenuItem: _internalRenderMenuItem,\n _internalRenderSubMenuItem: _internalRenderSubMenuItem\n };\n }, [_internalRenderMenuItem, _internalRenderSubMenuItem]);\n\n // ======================== Render ========================\n\n // >>>>> Children\n var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :\n // Need wrap for overflow dropdown that do not response for open\n childList.map(function (child, index) {\n return (\n /*#__PURE__*/\n // Always wrap provider to avoid sub node re-mount\n React.createElement(MenuContextProvider, {\n key: child.key,\n overflowDisabled: index > lastVisibleIndex\n }, child)\n );\n });\n\n // >>>>> Container\n var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n id: id,\n ref: containerRef,\n prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n component: \"ul\",\n itemComponent: MenuItem,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(internalMode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline-collapsed\"), internalInlineCollapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), isRtl), _classNames), rootClassName),\n dir: direction,\n style: style,\n role: \"menu\",\n tabIndex: tabIndex,\n data: wrappedChildList,\n renderRawItem: function renderRawItem(node) {\n return node;\n },\n renderRawRest: function renderRawRest(omitItems) {\n // We use origin list since wrapped list use context to prevent open\n var len = omitItems.length;\n var originOmitItems = len ? childList.slice(-len) : null;\n return /*#__PURE__*/React.createElement(SubMenu, {\n eventKey: OVERFLOW_KEY,\n title: overflowedIndicator,\n disabled: allVisible,\n internalPopupClose: len === 0,\n popupClassName: overflowedIndicatorPopupClassName\n }, originOmitItems);\n },\n maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n ssr: \"full\",\n \"data-menu-list\": true,\n onVisibleChange: function onVisibleChange(newLastIndex) {\n setLastVisibleIndex(newLastIndex);\n },\n onKeyDown: onInternalKeyDown\n }, restProps));\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n value: privateContext\n }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n value: uuid\n }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n mode: internalMode,\n openKeys: mergedOpenKeys,\n rtl: isRtl\n // Disabled\n ,\n disabled: disabled\n // Motion\n ,\n motion: mounted ? motion : null,\n defaultMotions: mounted ? defaultMotions : null\n // Active\n ,\n activeKey: mergedActiveKey,\n onActive: onActive,\n onInactive: onInactive\n // Selection\n ,\n selectedKeys: mergedSelectKeys\n // Level\n ,\n inlineIndent: inlineIndent\n // Popup\n ,\n subMenuOpenDelay: subMenuOpenDelay,\n subMenuCloseDelay: subMenuCloseDelay,\n forceSubMenuRender: forceSubMenuRender,\n builtinPlacements: builtinPlacements,\n triggerSubMenuAction: triggerSubMenuAction,\n getPopupContainer: getInternalPopupContainer\n // Icon\n ,\n itemIcon: itemIcon,\n expandIcon: expandIcon\n // Events\n ,\n onItemClick: onInternalClick,\n onOpenChange: onInternalOpenChange\n }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n value: pathUserContext\n }, container), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'none'\n },\n \"aria-hidden\": true\n }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n value: registerPathContext\n }, childList)))));\n});\nexport default Menu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"],\n _excluded2 = [\"children\"];\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { parseChildren } from \"./utils/nodeUtil\";\nvar InternalMenuItemGroup = function InternalMenuItemGroup(_ref) {\n var className = _ref.className,\n title = _ref.title,\n eventKey = _ref.eventKey,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n role: \"presentation\"\n }, restProps, {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n className: classNames(groupPrefixCls, className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n role: \"presentation\",\n className: \"\".concat(groupPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title), /*#__PURE__*/React.createElement(\"ul\", {\n role: \"group\",\n className: \"\".concat(groupPrefixCls, \"-list\")\n }, children));\n};\nexport default function MenuItemGroup(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutProperties(_ref2, _excluded2);\n var connectedKeyPath = useFullPath(props.eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n var measure = useMeasure();\n if (measure) {\n return childList;\n }\n return /*#__PURE__*/React.createElement(InternalMenuItemGroup, omit(props, ['warnKey']), childList);\n}","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useMeasure } from \"./context/PathContext\";\nexport default function Divider(_ref) {\n var className = _ref.className,\n style = _ref.style;\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var measure = useMeasure();\n if (measure) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n style: style\n });\n}","import Menu from \"./Menu\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport MenuItemGroup from \"./MenuItemGroup\";\nimport { useFullPath } from \"./context/PathContext\";\nimport Divider from \"./Divider\";\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, /** @private Only used for antd internal. Do not use in your production. */\nuseFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport { Divider } from 'rc-menu';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar MenuDivider = function MenuDivider(_a) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n dashed = _a.dashed,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"dashed\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('menu', customizePrefixCls);\n var classString = classNames(_defineProperty({}, \"\".concat(prefixCls, \"-item-divider-dashed\"), !!dashed), className);\n return /*#__PURE__*/React.createElement(Divider, _extends({\n className: classString\n }, restProps));\n};\nexport default MenuDivider;","import { createContext } from 'react';\nvar MenuContext = /*#__PURE__*/createContext({\n prefixCls: '',\n firstLevel: true,\n inlineCollapsed: false\n});\nexport default MenuContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { SiderContext } from '../layout/Sider';\nimport Tooltip from '../tooltip';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nvar MenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuItem, _React$Component);\n var _super = _createSuper(MenuItem);\n function MenuItem() {\n var _this;\n _classCallCheck(this, MenuItem);\n _this = _super.apply(this, arguments);\n _this.renderItem = function (_ref) {\n var siderCollapsed = _ref.siderCollapsed;\n var _a;\n var _this$context = _this.context,\n prefixCls = _this$context.prefixCls,\n firstLevel = _this$context.firstLevel,\n inlineCollapsed = _this$context.inlineCollapsed,\n direction = _this$context.direction,\n disableMenuItemTitleTooltip = _this$context.disableMenuItemTitleTooltip;\n var _this$props = _this.props,\n className = _this$props.className,\n children = _this$props.children;\n var _b = _this.props,\n title = _b.title,\n icon = _b.icon,\n danger = _b.danger,\n rest = __rest(_b, [\"title\", \"icon\", \"danger\"]);\n var tooltipTitle = title;\n if (typeof title === 'undefined') {\n tooltipTitle = firstLevel ? children : '';\n } else if (title === false) {\n tooltipTitle = '';\n }\n var tooltipProps = {\n title: tooltipTitle\n };\n if (!siderCollapsed && !inlineCollapsed) {\n tooltipProps.title = null;\n // Reset `open` to fix control mode tooltip display not correct\n // ref: https://github.com/ant-design/ant-design/issues/16742\n tooltipProps.open = false;\n }\n var childrenLength = toArray(children).length;\n var returnNode = /*#__PURE__*/React.createElement(Item, _extends({}, rest, {\n className: classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-item-danger\"), danger), \"\".concat(prefixCls, \"-item-only-child\"), (icon ? childrenLength + 1 : childrenLength) === 1), className),\n title: typeof title === 'string' ? title : undefined\n }), cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', \"\".concat(prefixCls, \"-item-icon\"))\n }), _this.renderItemChildren(inlineCollapsed));\n if (!disableMenuItemTitleTooltip) {\n returnNode = /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltipProps, {\n placement: direction === 'rtl' ? 'left' : 'right',\n overlayClassName: \"\".concat(prefixCls, \"-inline-collapsed-tooltip\")\n }), returnNode);\n }\n return returnNode;\n };\n return _this;\n }\n _createClass(MenuItem, [{\n key: \"renderItemChildren\",\n value: function renderItemChildren(inlineCollapsed) {\n var _this$context2 = this.context,\n prefixCls = _this$context2.prefixCls,\n firstLevel = _this$context2.firstLevel;\n var _this$props2 = this.props,\n icon = _this$props2.icon,\n children = _this$props2.children;\n var wrapNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, children);\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n if (!icon || isValidElement(children) && children.type === 'span') {\n if (children && inlineCollapsed && firstLevel && typeof children === 'string') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inline-collapsed-noicon\")\n }, children.charAt(0));\n }\n }\n return wrapNode;\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, this.renderItem);\n }\n }]);\n return MenuItem;\n}(React.Component);\nexport { MenuItem as default };\nMenuItem.contextType = MenuContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport { SubMenu as RcSubMenu, useFullPath } from 'rc-menu';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nfunction SubMenu(props) {\n var _a;\n var popupClassName = props.popupClassName,\n icon = props.icon,\n title = props.title,\n theme = props.theme;\n var context = React.useContext(MenuContext);\n var prefixCls = context.prefixCls,\n inlineCollapsed = context.inlineCollapsed,\n antdMenuTheme = context.antdMenuTheme;\n var parentPath = useFullPath();\n var titleNode;\n if (!icon) {\n titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inline-collapsed-noicon\")\n }, title.charAt(0))) : ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, title));\n } else {\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n var titleIsSpan = isValidElement(title) && title.type === 'span';\n titleNode = /*#__PURE__*/React.createElement(React.Fragment, null, cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', \"\".concat(prefixCls, \"-item-icon\"))\n }), titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, title));\n }\n var contextValue = React.useMemo(function () {\n return _extends(_extends({}, context), {\n firstLevel: false\n });\n }, [context]);\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcSubMenu, _extends({}, omit(props, ['icon']), {\n title: titleNode,\n popupClassName: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(theme || antdMenuTheme), popupClassName)\n })));\n}\nexport default SubMenu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { ItemGroup } from 'rc-menu';\nimport * as React from 'react';\nimport MenuDivider from '../MenuDivider';\nimport MenuItem from '../MenuItem';\nimport SubMenu from '../SubMenu';\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _a = opt,\n label = _a.label,\n children = _a.children,\n key = _a.key,\n type = _a.type,\n restProps = __rest(_a, [\"label\", \"children\", \"key\", \"type\"]);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(ItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(MenuDivider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\n// FIXME: Move logic here in v5\n/**\n * We simply convert `items` to ReactNode for reuse origin component logic. But we need move all the\n * logic from component into this hooks when in v5\n */\nexport default function useItems(items) {\n return React.useMemo(function () {\n if (!items) {\n return items;\n }\n return convertItemsToNodes(items);\n }, [items]);\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport RcMenu, { ItemGroup } from 'rc-menu';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { SiderContext } from '../layout/Sider';\nimport collapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport useItems from './hooks/useItems';\nimport MenuContext from './MenuContext';\nimport MenuDivider from './MenuDivider';\nimport Item from './MenuItem';\nimport OverrideContext from './OverrideContext';\nimport SubMenu from './SubMenu';\nvar InternalMenu = /*#__PURE__*/forwardRef(function (props, ref) {\n var _a;\n var override = React.useContext(OverrideContext) || {};\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n getPopupContainer = _React$useContext.getPopupContainer,\n direction = _React$useContext.direction;\n var rootPrefixCls = getPrefixCls();\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n _props$theme = props.theme,\n theme = _props$theme === void 0 ? 'light' : _props$theme,\n expandIcon = props.expandIcon,\n _internalDisableMenuItemTitleTooltip = props._internalDisableMenuItemTitleTooltip,\n inlineCollapsed = props.inlineCollapsed,\n siderCollapsed = props.siderCollapsed,\n items = props.items,\n children = props.children,\n mode = props.mode,\n selectable = props.selectable,\n onClick = props.onClick,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"theme\", \"expandIcon\", \"_internalDisableMenuItemTitleTooltip\", \"inlineCollapsed\", \"siderCollapsed\", \"items\", \"children\", \"mode\", \"selectable\", \"onClick\"]);\n var passedProps = omit(restProps, ['collapsedWidth']);\n // ========================= Items ===========================\n var mergedChildren = useItems(items) || children;\n // ======================== Warning ==========================\n process.env.NODE_ENV !== \"production\" ? warning(!('inlineCollapsed' in props && mode !== 'inline'), 'Menu', '`inlineCollapsed` should only be used when `mode` is inline.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(props.siderCollapsed !== undefined && 'inlineCollapsed' in props), 'Menu', '`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning('items' in props && !children, 'Menu', '`children` will be removed in next major version. Please use `items` instead.') : void 0;\n (_a = override.validator) === null || _a === void 0 ? void 0 : _a.call(override, {\n mode: mode\n });\n // ========================== Click ==========================\n // Tell dropdown that item clicked\n var onItemClick = useEvent(function () {\n var _a;\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, arguments);\n (_a = override === null || override === void 0 ? void 0 : override.onClick) === null || _a === void 0 ? void 0 : _a.call(override);\n });\n // ========================== Mode ===========================\n var mergedMode = override.mode || mode;\n // ======================= Selectable ========================\n var mergedSelectable = selectable !== null && selectable !== void 0 ? selectable : override.selectable;\n // ======================== Collapsed ========================\n // Inline Collapsed\n var mergedInlineCollapsed = React.useMemo(function () {\n if (siderCollapsed !== undefined) {\n return siderCollapsed;\n }\n return inlineCollapsed;\n }, [inlineCollapsed, siderCollapsed]);\n var defaultMotions = {\n horizontal: {\n motionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n },\n inline: collapseMotion,\n other: {\n motionName: \"\".concat(rootPrefixCls, \"-zoom-big\")\n }\n };\n var prefixCls = getPrefixCls('menu', customizePrefixCls || override.prefixCls);\n var menuClassName = classNames(\"\".concat(prefixCls, \"-\").concat(theme), className);\n // ====================== Expand Icon ========================\n var mergedExpandIcon;\n if (typeof expandIcon === 'function') {\n mergedExpandIcon = expandIcon;\n } else {\n mergedExpandIcon = cloneElement(expandIcon || override.expandIcon, {\n className: \"\".concat(prefixCls, \"-submenu-expand-icon\")\n });\n }\n // ======================== Context ==========================\n var contextValue = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n inlineCollapsed: mergedInlineCollapsed || false,\n antdMenuTheme: theme,\n direction: direction,\n firstLevel: true,\n disableMenuItemTitleTooltip: _internalDisableMenuItemTitleTooltip\n };\n }, [prefixCls, mergedInlineCollapsed, theme, direction, _internalDisableMenuItemTitleTooltip]);\n // ========================= Render ==========================\n return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcMenu, _extends({\n getPopupContainer: getPopupContainer,\n overflowedIndicator: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n overflowedIndicatorPopupClassName: \"\".concat(prefixCls, \"-\").concat(theme),\n mode: mergedMode,\n selectable: mergedSelectable,\n onClick: onItemClick\n }, passedProps, {\n inlineCollapsed: mergedInlineCollapsed,\n className: menuClassName,\n prefixCls: prefixCls,\n direction: direction,\n defaultMotions: defaultMotions,\n expandIcon: mergedExpandIcon,\n ref: ref\n }), mergedChildren)));\n});\n// We should keep this as ref-able\nvar Menu = /*#__PURE__*/function (_React$Component) {\n _inherits(Menu, _React$Component);\n var _super = _createSuper(Menu);\n function Menu() {\n var _this;\n _classCallCheck(this, Menu);\n _this = _super.apply(this, arguments);\n _this.focus = function (options) {\n var _a;\n (_a = _this.menu) === null || _a === void 0 ? void 0 : _a.focus(options);\n };\n return _this;\n }\n _createClass(Menu, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalMenu, _extends({\n ref: function ref(node) {\n _this2.menu = node;\n }\n }, _this2.props, context));\n });\n }\n }]);\n return Menu;\n}(React.Component);\nMenu.Divider = MenuDivider;\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.ItemGroup = ItemGroup;\nexport default Menu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport RCNotification from 'rc-notification';\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport createUseMessage from './hooks/useMessage';\nvar messageInstance;\nvar defaultDuration = 3;\nvar defaultTop;\nvar key = 1;\nvar localPrefixCls = '';\nvar transitionName = 'move-up';\nvar hasTransitionName = false;\nvar getContainer;\nvar maxCount;\nvar rtl = false;\nexport function getKeyThenIncreaseKey() {\n return key++;\n}\nfunction setMessageConfig(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n if (options.prefixCls !== undefined) {\n localPrefixCls = options.prefixCls;\n }\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n messageInstance = null; // delete messageInstance for new getContainer\n }\n\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n hasTransitionName = true;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n}\nfunction getRCNotificationInstance(args, callback) {\n var customizePrefixCls = args.prefixCls,\n getContextPopupContainer = args.getPopupContainer;\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getRootPrefixCls = _globalConfig.getRootPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n var prefixCls = getPrefixCls('message', customizePrefixCls || localPrefixCls);\n var rootPrefixCls = getRootPrefixCls(args.rootPrefixCls, prefixCls);\n var iconPrefixCls = getIconPrefixCls();\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: messageInstance\n });\n return;\n }\n var instanceConfig = {\n prefixCls: prefixCls,\n transitionName: hasTransitionName ? transitionName : \"\".concat(rootPrefixCls, \"-\").concat(transitionName),\n style: {\n top: defaultTop\n },\n getContainer: getContainer || getContextPopupContainer,\n maxCount: maxCount\n };\n RCNotification.newInstance(instanceConfig, function (instance) {\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: messageInstance\n });\n return;\n }\n messageInstance = instance;\n if (process.env.NODE_ENV === 'test') {\n messageInstance.config = instanceConfig;\n }\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: instance\n });\n });\n}\nvar typeToIcon = {\n info: InfoCircleFilled,\n success: CheckCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled,\n loading: LoadingOutlined\n};\nexport var typeList = Object.keys(typeToIcon);\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n var duration = args.duration !== undefined ? args.duration : defaultDuration;\n var IconComponent = typeToIcon[args.type];\n var messageClass = classNames(\"\".concat(prefixCls, \"-custom-content\"), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(args.type), args.type), \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n return {\n key: args.key,\n duration: duration,\n style: args.style || {},\n className: args.className,\n content: ( /*#__PURE__*/React.createElement(ConfigProvider, {\n iconPrefixCls: iconPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: messageClass\n }, args.icon || IconComponent && /*#__PURE__*/React.createElement(IconComponent, null), /*#__PURE__*/React.createElement(\"span\", null, args.content)))),\n onClose: args.onClose,\n onClick: args.onClick\n };\n}\nfunction notice(args) {\n var target = args.key || getKeyThenIncreaseKey();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getRCNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls, iconPrefixCls));\n });\n });\n var result = function result() {\n var _a;\n if (messageInstance) {\n messageInstance.removeNotice(target);\n (_a = args.onClose) === null || _a === void 0 ? void 0 : _a.call(args);\n }\n };\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n result.promise = closePromise;\n return result;\n}\nfunction isArgsProps(content) {\n return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\nvar api = {\n open: notice,\n config: setMessageConfig,\n destroy: function destroy(messageKey) {\n if (messageInstance) {\n if (messageKey) {\n var _messageInstance = messageInstance,\n removeNotice = _messageInstance.removeNotice;\n removeNotice(messageKey);\n } else {\n var _messageInstance2 = messageInstance,\n destroy = _messageInstance2.destroy;\n destroy();\n messageInstance = null;\n }\n }\n }\n};\nexport function attachTypeApi(originalApi, type) {\n originalApi[type] = function (content, duration, onClose) {\n if (isArgsProps(content)) {\n return originalApi.open(_extends(_extends({}, content), {\n type: type\n }));\n }\n if (typeof duration === 'function') {\n onClose = duration;\n duration = undefined;\n }\n return originalApi.open({\n content: content,\n duration: duration,\n type: type,\n onClose: onClose\n });\n };\n}\ntypeList.forEach(function (type) {\n return attachTypeApi(api, type);\n});\napi.warn = api.warning;\napi.useMessage = createUseMessage(getRCNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nexport var getInstance = function getInstance() {\n return process.env.NODE_ENV === 'test' ? messageInstance : null;\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport * as React from 'react';\nimport { attachTypeApi, getKeyThenIncreaseKey, typeList } from '..';\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseMessage(getRcNotificationInstance, getRCNoticeProps) {\n var useMessage = function useMessage() {\n // We can only get content by render\n var getPrefixCls;\n var getPopupContainer;\n // We create a proxy to handle delay created instance\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('message', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var target = args.key || getKeyThenIncreaseKey();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getRcNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls,\n rootPrefixCls: rootPrefixCls,\n getPopupContainer: getPopupContainer\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls));\n });\n });\n var result = function result() {\n if (innerInstance) {\n innerInstance.removeNotice(target);\n }\n };\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n result.promise = closePromise;\n return result;\n }\n // Fill functions\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n typeList.forEach(function (type) {\n return attachTypeApi(hookApiRef.current, type);\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n getPopupContainer = context.getPopupContainer;\n return holder;\n })];\n };\n return useMessage;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction getUseId() {\n // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`\n var fullClone = _objectSpread({}, React);\n return fullClone.useId;\n}\nvar uuid = 0;\n\n/** @private Note only worked in develop env. Not work in production. */\nexport function resetUuid() {\n if (process.env.NODE_ENV !== 'production') {\n uuid = 0;\n }\n}\nvar useOriginId = getUseId();\nexport default useOriginId ?\n// Use React `useId`\nfunction useId(id) {\n var reactId = useOriginId();\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n return reactId;\n} :\n// Use compatible of `useId`\nfunction useCompatId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState('ssr-id'),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n var nextId = uuid;\n uuid += 1;\n setInnerId(\"rc_unique_\".concat(nextId));\n }, []);\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n\n // Return react native id or inner id\n return innerId;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n visible = props.visible,\n maskProps = props.maskProps,\n motionName = props.motionName;\n return /*#__PURE__*/React.createElement(CSSMotion, {\n key: \"mask\",\n visible: visible,\n motionName: motionName,\n leavedClassName: \"\".concat(prefixCls, \"-mask-hidden\")\n }, function (_ref, ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n style: _objectSpread(_objectSpread({}, motionStyle), style),\n className: classNames(\"\".concat(prefixCls, \"-mask\"), motionClassName)\n }, maskProps));\n });\n}","// =============================== Motion ===============================\nexport function getMotionName(prefixCls, transitionName, animationName) {\n var motionName = transitionName;\n if (!motionName && animationName) {\n motionName = \"\".concat(prefixCls, \"-\").concat(animationName);\n }\n return motionName;\n}\n// =============================== Offset ===============================\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n ret = d.body[method];\n }\n }\n return ret;\n}\nexport function offset(el) {\n var rect = el.getBoundingClientRect();\n var pos = {\n left: rect.left,\n top: rect.top\n };\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n pos.top += getScroll(w, true);\n return pos;\n}","import * as React from 'react';\nexport default /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, _ref2) {\n var shouldUpdate = _ref2.shouldUpdate;\n return !shouldUpdate;\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport MemoChildren from './MemoChildren';\nvar sentinelStyle = {\n width: 0,\n height: 0,\n overflow: 'hidden',\n outline: 'none'\n};\nvar Panel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n title = props.title,\n ariaId = props.ariaId,\n footer = props.footer,\n closable = props.closable,\n closeIcon = props.closeIcon,\n onClose = props.onClose,\n children = props.children,\n bodyStyle = props.bodyStyle,\n bodyProps = props.bodyProps,\n modalRender = props.modalRender,\n onMouseDown = props.onMouseDown,\n onMouseUp = props.onMouseUp,\n holderRef = props.holderRef,\n visible = props.visible,\n forceRender = props.forceRender,\n width = props.width,\n height = props.height;\n // ================================= Refs =================================\n var sentinelStartRef = useRef();\n var sentinelEndRef = useRef();\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _sentinelStartRef$cur;\n (_sentinelStartRef$cur = sentinelStartRef.current) === null || _sentinelStartRef$cur === void 0 ? void 0 : _sentinelStartRef$cur.focus();\n },\n changeActive: function changeActive(next) {\n var _document = document,\n activeElement = _document.activeElement;\n if (next && activeElement === sentinelEndRef.current) {\n sentinelStartRef.current.focus();\n } else if (!next && activeElement === sentinelStartRef.current) {\n sentinelEndRef.current.focus();\n }\n }\n };\n });\n // ================================ Style =================================\n var contentStyle = {};\n if (width !== undefined) {\n contentStyle.width = width;\n }\n if (height !== undefined) {\n contentStyle.height = height;\n }\n // ================================ Render ================================\n var footerNode;\n if (footer) {\n footerNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer);\n }\n var headerNode;\n if (title) {\n headerNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\"),\n id: ariaId\n }, title));\n }\n var closer;\n if (closable) {\n closer = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onClose,\n \"aria-label\": \"Close\",\n className: \"\".concat(prefixCls, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }));\n }\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, closer, headerNode, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, bodyProps), children), footerNode);\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"dialog-element\",\n role: \"dialog\",\n \"aria-labelledby\": title ? ariaId : null,\n \"aria-modal\": \"true\",\n ref: holderRef,\n style: _objectSpread(_objectSpread({}, style), contentStyle),\n className: classNames(prefixCls, className),\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp\n }, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStartRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }), /*#__PURE__*/React.createElement(MemoChildren, {\n shouldUpdate: visible || forceRender\n }, modalRender ? modalRender(content) : content), /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEndRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Panel.displayName = 'Panel';\n}\nexport default Panel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { offset } from '../../util';\nimport Panel from './Panel';\nvar Content = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n title = props.title,\n style = props.style,\n className = props.className,\n visible = props.visible,\n forceRender = props.forceRender,\n destroyOnClose = props.destroyOnClose,\n motionName = props.motionName,\n ariaId = props.ariaId,\n onVisibleChanged = props.onVisibleChanged,\n mousePosition = props.mousePosition;\n var dialogRef = useRef();\n // ============================= Style ==============================\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n transformOrigin = _React$useState2[0],\n setTransformOrigin = _React$useState2[1];\n var contentStyle = {};\n if (transformOrigin) {\n contentStyle.transformOrigin = transformOrigin;\n }\n function onPrepare() {\n var elementOffset = offset(dialogRef.current);\n setTransformOrigin(mousePosition ? \"\".concat(mousePosition.x - elementOffset.left, \"px \").concat(mousePosition.y - elementOffset.top, \"px\") : '');\n }\n // ============================= Render =============================\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n onVisibleChanged: onVisibleChanged,\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n forceRender: forceRender,\n motionName: motionName,\n removeOnLeave: destroyOnClose,\n ref: dialogRef\n }, function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(Panel, _extends({}, props, {\n ref: ref,\n title: title,\n ariaId: ariaId,\n prefixCls: prefixCls,\n holderRef: motionRef,\n style: _objectSpread(_objectSpread(_objectSpread({}, motionStyle), style), contentStyle),\n className: classNames(className, motionClassName)\n }));\n });\n});\nContent.displayName = 'Content';\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Mask from './Mask';\nimport { getMotionName } from '../util';\nimport Content from './Content';\nexport default function Dialog(props) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dialog' : _props$prefixCls,\n zIndex = props.zIndex,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? false : _props$visible,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n _props$focusTriggerAf = props.focusTriggerAfterClose,\n focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n wrapStyle = props.wrapStyle,\n wrapClassName = props.wrapClassName,\n wrapProps = props.wrapProps,\n onClose = props.onClose,\n afterClose = props.afterClose,\n transitionName = props.transitionName,\n animation = props.animation,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? true : _props$closable,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n maskStyle = props.maskStyle,\n maskProps = props.maskProps,\n rootClassName = props.rootClassName;\n var lastOutSideActiveElementRef = useRef();\n var wrapperRef = useRef();\n var contentRef = useRef();\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n // ========================== Init ==========================\n var ariaId = useId();\n function saveLastOutSideActiveElementRef() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n lastOutSideActiveElementRef.current = document.activeElement;\n }\n }\n function focusDialogContent() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n var _contentRef$current;\n (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.focus();\n }\n }\n // ========================= Events =========================\n function onDialogVisibleChanged(newVisible) {\n // Try to focus\n if (newVisible) {\n focusDialogContent();\n } else {\n // Clean up scroll bar & focus back\n setAnimatedVisible(false);\n if (mask && lastOutSideActiveElementRef.current && focusTriggerAfterClose) {\n try {\n lastOutSideActiveElementRef.current.focus({\n preventScroll: true\n });\n } catch (e) {\n // Do nothing\n }\n lastOutSideActiveElementRef.current = null;\n }\n // Trigger afterClose only when change visible from true to false\n if (animatedVisible) {\n afterClose === null || afterClose === void 0 ? void 0 : afterClose();\n }\n }\n }\n function onInternalClose(e) {\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n }\n // >>> Content\n var contentClickRef = useRef(false);\n var contentTimeoutRef = useRef();\n // We need record content click incase content popup out of dialog\n var onContentMouseDown = function onContentMouseDown() {\n clearTimeout(contentTimeoutRef.current);\n contentClickRef.current = true;\n };\n var onContentMouseUp = function onContentMouseUp() {\n contentTimeoutRef.current = setTimeout(function () {\n contentClickRef.current = false;\n });\n };\n // >>> Wrapper\n // Close only when element not on dialog\n var onWrapperClick = null;\n if (maskClosable) {\n onWrapperClick = function onWrapperClick(e) {\n if (contentClickRef.current) {\n contentClickRef.current = false;\n } else if (wrapperRef.current === e.target) {\n onInternalClose(e);\n }\n };\n }\n function onWrapperKeyDown(e) {\n if (keyboard && e.keyCode === KeyCode.ESC) {\n e.stopPropagation();\n onInternalClose(e);\n return;\n }\n // keep focus inside dialog\n if (visible) {\n if (e.keyCode === KeyCode.TAB) {\n contentRef.current.changeActive(!e.shiftKey);\n }\n }\n }\n // ========================= Effect =========================\n useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n saveLastOutSideActiveElementRef();\n }\n }, [visible]);\n // Remove direct should also check the scroll bar update\n useEffect(function () {\n return function () {\n clearTimeout(contentTimeoutRef.current);\n };\n }, []);\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-root\"), rootClassName)\n }, pickAttrs(props, {\n data: true\n })), /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n visible: mask && visible,\n motionName: getMotionName(prefixCls, maskTransitionName, maskAnimation),\n style: _objectSpread({\n zIndex: zIndex\n }, maskStyle),\n maskProps: maskProps\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n tabIndex: -1,\n onKeyDown: onWrapperKeyDown,\n className: classNames(\"\".concat(prefixCls, \"-wrap\"), wrapClassName),\n ref: wrapperRef,\n onClick: onWrapperClick,\n style: _objectSpread(_objectSpread({\n zIndex: zIndex\n }, wrapStyle), {}, {\n display: !animatedVisible ? 'none' : null\n })\n }, wrapProps), /*#__PURE__*/React.createElement(Content, _extends({}, props, {\n onMouseDown: onContentMouseDown,\n onMouseUp: onContentMouseUp,\n ref: contentRef,\n closable: closable,\n ariaId: ariaId,\n prefixCls: prefixCls,\n visible: visible && animatedVisible,\n onClose: onInternalClose,\n onVisibleChanged: onDialogVisibleChanged,\n motionName: getMotionName(prefixCls, transitionName, animation)\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Portal from '@rc-component/portal';\nimport Dialog from './Dialog';\n// fix issue #10656\n/*\n * getContainer remarks\n * Custom container should not be return, because in the Portal component, it will remove the\n * return container element here, if the custom container is the only child of it's component,\n * like issue #10656, It will has a conflict with removeChild method in react-dom.\n * So here should add a child (div element) to custom container.\n * */\nvar DialogWrap = function DialogWrap(props) {\n var visible = props.visible,\n getContainer = props.getContainer,\n forceRender = props.forceRender,\n _props$destroyOnClose = props.destroyOnClose,\n destroyOnClose = _props$destroyOnClose === void 0 ? false : _props$destroyOnClose,\n _afterClose = props.afterClose;\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n React.useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n }\n }, [visible]);\n // // 渲染在当前 dom 里;\n // if (getContainer === false) {\n // return (\n // <Dialog\n // {...props}\n // getOpenCount={() => 2} // 不对 body 做任何操作。。\n // />\n // );\n // }\n // Destroy on close will remove wrapped div\n if (!forceRender && destroyOnClose && !animatedVisible) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Portal, {\n open: visible || forceRender || animatedVisible,\n autoDestroy: false,\n getContainer: getContainer,\n autoLock: visible || animatedVisible\n }, /*#__PURE__*/React.createElement(Dialog, _extends({}, props, {\n destroyOnClose: destroyOnClose,\n afterClose: function afterClose() {\n _afterClose === null || _afterClose === void 0 ? void 0 : _afterClose();\n setAnimatedVisible(false);\n }\n })));\n};\nDialogWrap.displayName = 'Dialog';\nexport default DialogWrap;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport Dialog from 'rc-dialog';\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nimport { ConfigContext } from '../config-provider';\nimport { NoFormStyle } from '../form/context';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { NoCompactStyle } from '../space/Compact';\nimport { getTransitionName } from '../_util/motion';\nimport { canUseDocElement } from '../_util/styleChecker';\nimport warning from '../_util/warning';\nimport { getConfirmLocale } from './locale';\nvar mousePosition;\n// ref: https://github.com/ant-design/ant-design/issues/15795\nvar getClickPosition = function getClickPosition(e) {\n mousePosition = {\n x: e.pageX,\n y: e.pageY\n };\n // 100ms 内发生过点击事件,则从点击位置动画展示\n // 否则直接 zoom 展示\n // 这样可以兼容非点击方式展开\n setTimeout(function () {\n mousePosition = null;\n }, 100);\n};\n// 只有点击事件支持从鼠标位置动画展开\nif (canUseDocElement()) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\nvar Modal = function Modal(props) {\n var _a;\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var handleCancel = function handleCancel(e) {\n var onCancel = props.onCancel;\n onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);\n };\n var handleOk = function handleOk(e) {\n var onOk = props.onOk;\n onOk === null || onOk === void 0 ? void 0 : onOk(e);\n };\n process.env.NODE_ENV !== \"production\" ? warning(!('visible' in props), 'Modal', \"`visible` will be removed in next major version, please use `open` instead.\") : void 0;\n var customizePrefixCls = props.prefixCls,\n footer = props.footer,\n visible = props.visible,\n _props$open = props.open,\n open = _props$open === void 0 ? false : _props$open,\n wrapClassName = props.wrapClassName,\n centered = props.centered,\n getContainer = props.getContainer,\n closeIcon = props.closeIcon,\n _props$focusTriggerAf = props.focusTriggerAfterClose,\n focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n _props$width = props.width,\n width = _props$width === void 0 ? 520 : _props$width,\n restProps = __rest(props, [\"prefixCls\", \"footer\", \"visible\", \"open\", \"wrapClassName\", \"centered\", \"getContainer\", \"closeIcon\", \"focusTriggerAfterClose\", \"width\"]);\n var prefixCls = getPrefixCls('modal', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var defaultFooter = /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: getConfirmLocale()\n }, function (contextLocale) {\n var okText = props.okText,\n _props$okType = props.okType,\n okType = _props$okType === void 0 ? 'primary' : _props$okType,\n cancelText = props.cancelText,\n _props$confirmLoading = props.confirmLoading,\n confirmLoading = _props$confirmLoading === void 0 ? false : _props$confirmLoading;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, _extends({\n onClick: handleCancel\n }, props.cancelButtonProps), cancelText || contextLocale.cancelText), /*#__PURE__*/React.createElement(Button, _extends({}, convertLegacyProps(okType), {\n loading: confirmLoading,\n onClick: handleOk\n }, props.okButtonProps), okText !== null && okText !== void 0 ? okText : contextLocale.okText));\n });\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }));\n var wrapClassNameExtended = classNames(wrapClassName, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-centered\"), !!centered), \"\".concat(prefixCls, \"-wrap-rtl\"), direction === 'rtl'));\n return /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, /*#__PURE__*/React.createElement(Dialog, _extends({\n width: width\n }, restProps, {\n getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,\n prefixCls: prefixCls,\n wrapClassName: wrapClassNameExtended,\n footer: footer === undefined ? defaultFooter : footer,\n visible: open || visible,\n mousePosition: (_a = restProps.mousePosition) !== null && _a !== void 0 ? _a : mousePosition,\n onClose: handleCancel,\n closeIcon: closeIconToRender,\n focusTriggerAfterClose: focusTriggerAfterClose,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName)\n }))));\n};\nexport default Modal;","import DialogWrap from './DialogWrap';\nimport Panel from './Dialog/Content/Panel';\nexport { Panel };\nexport default DialogWrap;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport ConfigProvider from '../config-provider';\nimport ActionButton from '../_util/ActionButton';\nimport { getTransitionName } from '../_util/motion';\nimport warning from '../_util/warning';\nimport Dialog from './Modal';\nvar ConfirmDialog = function ConfirmDialog(props) {\n var icon = props.icon,\n onCancel = props.onCancel,\n onOk = props.onOk,\n close = props.close,\n zIndex = props.zIndex,\n afterClose = props.afterClose,\n visible = props.visible,\n open = props.open,\n keyboard = props.keyboard,\n centered = props.centered,\n getContainer = props.getContainer,\n maskStyle = props.maskStyle,\n okText = props.okText,\n okButtonProps = props.okButtonProps,\n cancelText = props.cancelText,\n cancelButtonProps = props.cancelButtonProps,\n direction = props.direction,\n prefixCls = props.prefixCls,\n wrapClassName = props.wrapClassName,\n rootPrefixCls = props.rootPrefixCls,\n iconPrefixCls = props.iconPrefixCls,\n bodyStyle = props.bodyStyle,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? false : _props$closable,\n closeIcon = props.closeIcon,\n modalRender = props.modalRender,\n focusTriggerAfterClose = props.focusTriggerAfterClose;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Modal', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\")) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(visible === undefined, 'Modal', \"`visible` is deprecated, please use `open` instead.\") : void 0;\n }\n // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon\n var okType = props.okType || 'primary';\n var contentPrefixCls = \"\".concat(prefixCls, \"-confirm\");\n // 默认为 true,保持向下兼容\n var okCancel = 'okCancel' in props ? props.okCancel : true;\n var width = props.width || 416;\n var style = props.style || {};\n var mask = props.mask === undefined ? true : props.mask;\n // 默认为 false,保持旧版默认行为\n var maskClosable = props.maskClosable === undefined ? false : props.maskClosable;\n var autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';\n var classString = classNames(contentPrefixCls, \"\".concat(contentPrefixCls, \"-\").concat(props.type), _defineProperty({}, \"\".concat(contentPrefixCls, \"-rtl\"), direction === 'rtl'), props.className);\n var cancelButton = okCancel && ( /*#__PURE__*/React.createElement(ActionButton, {\n actionFn: onCancel,\n close: close,\n autoFocus: autoFocusButton === 'cancel',\n buttonProps: cancelButtonProps,\n prefixCls: \"\".concat(rootPrefixCls, \"-btn\")\n }, cancelText));\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n direction: direction\n }, /*#__PURE__*/React.createElement(Dialog, {\n prefixCls: prefixCls,\n className: classString,\n wrapClassName: classNames(_defineProperty({}, \"\".concat(contentPrefixCls, \"-centered\"), !!props.centered), wrapClassName),\n onCancel: function onCancel() {\n return close === null || close === void 0 ? void 0 : close({\n triggerCancel: true\n });\n },\n open: open || visible,\n title: \"\",\n footer: \"\",\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName),\n mask: mask,\n maskClosable: maskClosable,\n maskStyle: maskStyle,\n style: style,\n bodyStyle: bodyStyle,\n width: width,\n zIndex: zIndex,\n afterClose: afterClose,\n keyboard: keyboard,\n centered: centered,\n getContainer: getContainer,\n closable: closable,\n closeIcon: closeIcon,\n modalRender: modalRender,\n focusTriggerAfterClose: focusTriggerAfterClose\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body-wrapper\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body\")\n }, icon, props.title === undefined ? null : ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(contentPrefixCls, \"-title\")\n }, props.title)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-content\")\n }, props.content)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-btns\")\n }, cancelButton, /*#__PURE__*/React.createElement(ActionButton, {\n type: okType,\n actionFn: onOk,\n close: close,\n autoFocus: autoFocusButton === 'ok',\n buttonProps: okButtonProps,\n prefixCls: \"\".concat(rootPrefixCls, \"-btn\")\n }, okText)))));\n};\nexport default ConfirmDialog;","var destroyFns = [];\nexport default destroyFns;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport { render as reactRender, unmount as reactUnmount } from \"rc-util/es/React/render\";\nimport * as React from 'react';\nimport { globalConfig } from '../config-provider';\nimport warning from '../_util/warning';\nimport ConfirmDialog from './ConfirmDialog';\nimport destroyFns from './destroyFns';\nimport { getConfirmLocale } from './locale';\nvar defaultRootPrefixCls = '';\nfunction getRootPrefixCls() {\n return defaultRootPrefixCls;\n}\nexport default function confirm(config) {\n var container = document.createDocumentFragment();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n var currentConfig = _extends(_extends({}, config), {\n close: close,\n open: true\n });\n var timeoutId;\n function destroy() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var triggerCancel = args.some(function (param) {\n return param && param.triggerCancel;\n });\n if (config.onCancel && triggerCancel) {\n config.onCancel.apply(config, [function () {}].concat(_toConsumableArray(args.slice(1))));\n }\n for (var i = 0; i < destroyFns.length; i++) {\n var fn = destroyFns[i];\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n if (fn === close) {\n destroyFns.splice(i, 1);\n break;\n }\n }\n reactUnmount(container);\n }\n function render(_a) {\n var okText = _a.okText,\n cancelText = _a.cancelText,\n customizePrefixCls = _a.prefixCls,\n props = __rest(_a, [\"okText\", \"cancelText\", \"prefixCls\"]);\n clearTimeout(timeoutId);\n /**\n * https://github.com/ant-design/ant-design/issues/23623\n *\n * Sync render blocks React event. Let's make this async.\n */\n timeoutId = setTimeout(function () {\n var runtimeLocale = getConfirmLocale();\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n // because Modal.config \b set rootPrefixCls, which is different from other components\n var rootPrefixCls = getPrefixCls(undefined, getRootPrefixCls());\n var prefixCls = customizePrefixCls || \"\".concat(rootPrefixCls, \"-modal\");\n var iconPrefixCls = getIconPrefixCls();\n reactRender( /*#__PURE__*/React.createElement(ConfirmDialog, _extends({}, props, {\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n okText: okText || (props.okCancel ? runtimeLocale.okText : runtimeLocale.justOkText),\n cancelText: cancelText || runtimeLocale.cancelText\n })), container);\n });\n }\n function close() {\n var _this = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n currentConfig = _extends(_extends({}, currentConfig), {\n open: false,\n afterClose: function afterClose() {\n if (typeof config.afterClose === 'function') {\n config.afterClose();\n }\n destroy.apply(_this, args);\n }\n });\n // Legacy support\n if (currentConfig.visible) {\n delete currentConfig.visible;\n }\n render(currentConfig);\n }\n function update(configUpdate) {\n if (typeof configUpdate === 'function') {\n currentConfig = configUpdate(currentConfig);\n } else {\n currentConfig = _extends(_extends({}, currentConfig), configUpdate);\n }\n render(currentConfig);\n }\n render(currentConfig);\n destroyFns.push(close);\n return {\n destroy: close,\n update: update\n };\n}\nexport function withWarn(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'warning'\n });\n}\nexport function withInfo(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(InfoCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'info'\n });\n}\nexport function withSuccess(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(CheckCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'success'\n });\n}\nexport function withError(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(CloseCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'error'\n });\n}\nexport function withConfirm(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null),\n okCancel: true\n }, props), {\n type: 'confirm'\n });\n}\nexport function modalGlobalConfig(_ref) {\n var rootPrefixCls = _ref.rootPrefixCls;\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Modal', 'Modal.config is deprecated. Please use ConfigProvider.config instead.') : void 0;\n defaultRootPrefixCls = rootPrefixCls;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport LocaleReceiver from '../../locale-provider/LocaleReceiver';\nimport defaultLocale from '../../locale/default';\nimport ConfirmDialog from '../ConfirmDialog';\nvar HookModal = function HookModal(_ref, ref) {\n var afterClose = _ref.afterClose,\n config = _ref.config;\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n open = _React$useState2[0],\n setOpen = _React$useState2[1];\n var _React$useState3 = React.useState(config),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerConfig = _React$useState4[0],\n setInnerConfig = _React$useState4[1];\n var _React$useContext = React.useContext(ConfigContext),\n direction = _React$useContext.direction,\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('modal');\n var rootPrefixCls = getPrefixCls();\n var close = function close() {\n setOpen(false);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var triggerCancel = args.some(function (param) {\n return param && param.triggerCancel;\n });\n if (innerConfig.onCancel && triggerCancel) {\n innerConfig.onCancel.apply(innerConfig, [function () {}].concat(_toConsumableArray(args.slice(1))));\n }\n };\n React.useImperativeHandle(ref, function () {\n return {\n destroy: close,\n update: function update(newConfig) {\n setInnerConfig(function (originConfig) {\n return _extends(_extends({}, originConfig), newConfig);\n });\n }\n };\n });\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: defaultLocale.Modal\n }, function (contextLocale) {\n return /*#__PURE__*/React.createElement(ConfirmDialog, _extends({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls\n }, innerConfig, {\n close: close,\n open: open,\n afterClose: afterClose,\n okText: innerConfig.okText || (innerConfig.okCancel ? contextLocale.okText : contextLocale.justOkText),\n direction: direction,\n cancelText: innerConfig.cancelText || contextLocale.cancelText\n }));\n });\n};\nexport default /*#__PURE__*/React.forwardRef(HookModal);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport usePatchElement from '../../_util/hooks/usePatchElement';\nimport { withConfirm, withError, withInfo, withSuccess, withWarn } from '../confirm';\nimport HookModal from './HookModal';\nvar uuid = 0;\nvar ElementsHolder = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (_props, ref) {\n var _usePatchElement = usePatchElement(),\n _usePatchElement2 = _slicedToArray(_usePatchElement, 2),\n elements = _usePatchElement2[0],\n patchElement = _usePatchElement2[1];\n React.useImperativeHandle(ref, function () {\n return {\n patchElement: patchElement\n };\n }, []);\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/React.createElement(React.Fragment, null, elements);\n}));\nexport default function useModal() {\n var holderRef = React.useRef(null);\n // ========================== Effect ==========================\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n actionQueue = _React$useState2[0],\n setActionQueue = _React$useState2[1];\n React.useEffect(function () {\n if (actionQueue.length) {\n var cloneQueue = _toConsumableArray(actionQueue);\n cloneQueue.forEach(function (action) {\n action();\n });\n setActionQueue([]);\n }\n }, [actionQueue]);\n // =========================== Hook ===========================\n var getConfirmFunc = React.useCallback(function (withFunc) {\n return function hookConfirm(config) {\n var _a;\n uuid += 1;\n var modalRef = /*#__PURE__*/React.createRef();\n var closeFunc;\n var modal = /*#__PURE__*/React.createElement(HookModal, {\n key: \"modal-\".concat(uuid),\n config: withFunc(config),\n ref: modalRef,\n afterClose: function afterClose() {\n closeFunc === null || closeFunc === void 0 ? void 0 : closeFunc();\n }\n });\n closeFunc = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.patchElement(modal);\n return {\n destroy: function destroy() {\n function destroyAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n if (modalRef.current) {\n destroyAction();\n } else {\n setActionQueue(function (prev) {\n return [].concat(_toConsumableArray(prev), [destroyAction]);\n });\n }\n },\n update: function update(newConfig) {\n function updateAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.update(newConfig);\n }\n if (modalRef.current) {\n updateAction();\n } else {\n setActionQueue(function (prev) {\n return [].concat(_toConsumableArray(prev), [updateAction]);\n });\n }\n }\n };\n };\n }, []);\n var fns = React.useMemo(function () {\n return {\n info: getConfirmFunc(withInfo),\n success: getConfirmFunc(withSuccess),\n error: getConfirmFunc(withError),\n warning: getConfirmFunc(withWarn),\n confirm: getConfirmFunc(withConfirm)\n };\n }, []);\n // eslint-disable-next-line react/jsx-key\n return [fns, /*#__PURE__*/React.createElement(ElementsHolder, {\n ref: holderRef\n })];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function usePatchElement() {\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n elements = _React$useState2[0],\n setElements = _React$useState2[1];\n var patchElement = React.useCallback(function (element) {\n // append a new element to elements (and create a new ref)\n setElements(function (originElements) {\n return [].concat(_toConsumableArray(originElements), [element]);\n });\n // return a function that removes the new element out of elements (and create a new ref)\n // it works a little like useEffect\n return function () {\n setElements(function (originElements) {\n return originElements.filter(function (ele) {\n return ele !== element;\n });\n });\n };\n }, []);\n return [elements, patchElement];\n}","import confirm, { modalGlobalConfig, withConfirm, withError, withInfo, withSuccess, withWarn } from './confirm';\nimport destroyFns from './destroyFns';\nimport OriginModal from './Modal';\nimport useModal from './useModal';\nfunction modalWarn(props) {\n return confirm(withWarn(props));\n}\nvar Modal = OriginModal;\nModal.useModal = useModal;\nModal.info = function infoFn(props) {\n return confirm(withInfo(props));\n};\nModal.success = function successFn(props) {\n return confirm(withSuccess(props));\n};\nModal.error = function errorFn(props) {\n return confirm(withError(props));\n};\nModal.warning = modalWarn;\nModal.warn = modalWarn;\nModal.confirm = function confirmFn(props) {\n return confirm(withConfirm(props));\n};\nModal.destroyAll = function destroyAllFn() {\n while (destroyFns.length) {\n var close = destroyFns.pop();\n if (close) {\n close();\n }\n }\n};\nModal.config = modalGlobalConfig;\nexport default Modal;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport defaultLocale from '../locale/default';\nvar runtimeLocale = _extends({}, defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = _extends({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport classNames from 'classnames';\nimport Notification from 'rc-notification';\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport createUseNotification from './hooks/useNotification';\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = 24;\nvar defaultBottom = 24;\nvar defaultPrefixCls = '';\nvar defaultPlacement = 'topRight';\nvar defaultGetContainer;\nvar defaultCloseIcon;\nvar rtl = false;\nvar maxCount;\nfunction setNotificationConfig(options) {\n var duration = options.duration,\n placement = options.placement,\n bottom = options.bottom,\n top = options.top,\n getContainer = options.getContainer,\n closeIcon = options.closeIcon,\n prefixCls = options.prefixCls;\n if (prefixCls !== undefined) {\n defaultPrefixCls = prefixCls;\n }\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n if (placement !== undefined) {\n defaultPlacement = placement;\n } else if (options.rtl) {\n defaultPlacement = 'topLeft';\n }\n if (bottom !== undefined) {\n defaultBottom = bottom;\n }\n if (top !== undefined) {\n defaultTop = top;\n }\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n }\n}\nfunction getPlacementStyle(placement) {\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTop;\n var bottom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultBottom;\n var style;\n switch (placement) {\n case 'top':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: top,\n bottom: 'auto'\n };\n break;\n case 'topLeft':\n style = {\n left: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'bottom':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: 'auto',\n bottom: bottom\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n }\n return style;\n}\nfunction getNotificationInstance(args, callback) {\n var _args$placement = args.placement,\n placement = _args$placement === void 0 ? defaultPlacement : _args$placement,\n top = args.top,\n bottom = args.bottom,\n _args$getContainer = args.getContainer,\n getContainer = _args$getContainer === void 0 ? defaultGetContainer : _args$getContainer,\n customizePrefixCls = args.prefixCls;\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n var prefixCls = getPrefixCls('notification', customizePrefixCls || defaultPrefixCls);\n var iconPrefixCls = getIconPrefixCls();\n var cacheKey = \"\".concat(prefixCls, \"-\").concat(placement);\n var cacheInstance = notificationInstance[cacheKey];\n if (cacheInstance) {\n Promise.resolve(cacheInstance).then(function (instance) {\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: instance\n });\n });\n return;\n }\n var notificationClass = classNames(\"\".concat(prefixCls, \"-\").concat(placement), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n notificationInstance[cacheKey] = new Promise(function (resolve) {\n Notification.newInstance({\n prefixCls: prefixCls,\n className: notificationClass,\n style: getPlacementStyle(placement, top, bottom),\n getContainer: getContainer,\n maxCount: maxCount\n }, function (notification) {\n resolve(notification);\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: notification\n });\n });\n });\n}\nvar typeToIcon = {\n success: CheckCircleOutlined,\n info: InfoCircleOutlined,\n error: CloseCircleOutlined,\n warning: ExclamationCircleOutlined\n};\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n var durationArg = args.duration,\n icon = args.icon,\n type = args.type,\n description = args.description,\n message = args.message,\n btn = args.btn,\n onClose = args.onClose,\n onClick = args.onClick,\n key = args.key,\n style = args.style,\n className = args.className,\n _args$closeIcon = args.closeIcon,\n closeIcon = _args$closeIcon === void 0 ? defaultCloseIcon : _args$closeIcon,\n props = args.props;\n var duration = durationArg === undefined ? defaultDuration : durationArg;\n var iconNode = null;\n if (icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, args.icon);\n } else if (type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n className: \"\".concat(prefixCls, \"-icon \").concat(prefixCls, \"-icon-\").concat(type)\n });\n }\n var closeIconToRender = typeof closeIcon === 'undefined' ? ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }))) : closeIcon;\n var autoMarginTag = !description && iconNode ? ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-message-single-line-auto-margin\")\n })) : null;\n return {\n content: ( /*#__PURE__*/React.createElement(ConfigProvider, {\n iconPrefixCls: iconPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: iconNode ? \"\".concat(prefixCls, \"-with-icon\") : '',\n role: \"alert\"\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, autoMarginTag, message), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description), btn ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-btn\")\n }, btn) : null))),\n duration: duration,\n closable: true,\n closeIcon: closeIconToRender,\n onClose: onClose,\n onClick: onClick,\n key: key,\n style: style || {},\n className: classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(type), !!type)),\n props: props\n };\n}\nfunction notice(args) {\n getNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(args, prefixCls, iconPrefixCls));\n });\n}\nvar api = {\n open: notice,\n close: function close(key) {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n return Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.removeNotice(key);\n });\n });\n },\n config: setNotificationConfig,\n destroy: function destroy() {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.destroy();\n });\n delete notificationInstance[cacheKey]; // lgtm[js/missing-await]\n });\n }\n};\n\n['success', 'info', 'warning', 'error'].forEach(function (type) {\n api[type] = function (args) {\n return api.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n});\napi.warn = api.warning;\napi.useNotification = createUseNotification(getNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nexport var getInstance = function getInstance(cacheKey) {\n return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", process.env.NODE_ENV === 'test' ? notificationInstance[cacheKey] : null);\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport * as React from 'react';\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseNotification(getNotificationInstance, getRCNoticeProps) {\n var useNotification = function useNotification() {\n // We can only get content by render\n var getPrefixCls;\n // We create a proxy to handle delay created instance\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('notification', customizePrefixCls);\n getNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(args, prefixCls));\n });\n }\n // Fill functions\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n ['success', 'info', 'warning', 'error'].forEach(function (type) {\n hookApiRef.current[type] = function (args) {\n return hookApiRef.current.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n return holder;\n })];\n };\n return useNotification;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nimport ActionButton from '../_util/ActionButton';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport { ConfigContext } from '../config-provider';\nexport var Overlay = function Overlay(props) {\n var prefixCls = props.prefixCls,\n okButtonProps = props.okButtonProps,\n cancelButtonProps = props.cancelButtonProps,\n title = props.title,\n cancelText = props.cancelText,\n okText = props.okText,\n okType = props.okType,\n icon = props.icon,\n _props$showCancel = props.showCancel,\n showCancel = _props$showCancel === void 0 ? true : _props$showCancel,\n close = props.close,\n onConfirm = props.onConfirm,\n onCancel = props.onCancel;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Popconfirm\",\n defaultLocale: defaultLocale.Popconfirm\n }, function (contextLocale) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner-content\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, icon && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-message-icon\")\n }, icon), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message-title\")\n }, getRenderPropValue(title))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-buttons\")\n }, showCancel && ( /*#__PURE__*/React.createElement(Button, _extends({\n onClick: onCancel,\n size: \"small\"\n }, cancelButtonProps), cancelText !== null && cancelText !== void 0 ? cancelText : contextLocale.cancelText)), /*#__PURE__*/React.createElement(ActionButton, {\n buttonProps: _extends(_extends({\n size: 'small'\n }, convertLegacyProps(okType)), okButtonProps),\n actionFn: onConfirm,\n close: close,\n prefixCls: getPrefixCls('btn'),\n quitOnNullishReturnValue: true,\n emitEvent: true\n }, okText !== null && okText !== void 0 ? okText : contextLocale.okText)));\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar _this = this;\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Popover from '../popover';\nimport { cloneElement } from '../_util/reactNode';\nimport { Overlay } from './PurePanel';\nvar Popconfirm = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'top' : _props$placement,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? 'click' : _props$trigger,\n _props$okType = props.okType,\n okType = _props$okType === void 0 ? 'primary' : _props$okType,\n _props$icon = props.icon,\n icon = _props$icon === void 0 ? /*#__PURE__*/React.createElement(ExclamationCircleFilled, null) : _props$icon,\n children = props.children,\n overlayClassName = props.overlayClassName,\n onOpenChange = props.onOpenChange,\n onVisibleChange = props.onVisibleChange,\n restProps = __rest(props, [\"prefixCls\", \"placement\", \"trigger\", \"okType\", \"icon\", \"children\", \"overlayClassName\", \"onOpenChange\", \"onVisibleChange\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var _useMergedState = useMergedState(false, {\n value: props.open !== undefined ? props.open : props.visible,\n defaultValue: props.defaultOpen !== undefined ? props.defaultOpen : props.defaultVisible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n open = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n // const isDestroyed = useDestroyed();\n var settingOpen = function settingOpen(value, e) {\n setOpen(value, true);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(value, e);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(value, e);\n };\n var close = function close(e) {\n settingOpen(false, e);\n };\n var onConfirm = function onConfirm(e) {\n var _a;\n return (_a = props.onConfirm) === null || _a === void 0 ? void 0 : _a.call(_this, e);\n };\n var onCancel = function onCancel(e) {\n var _a;\n settingOpen(false, e);\n (_a = props.onCancel) === null || _a === void 0 ? void 0 : _a.call(_this, e);\n };\n var _onKeyDown = function onKeyDown(e) {\n if (e.keyCode === KeyCode.ESC && open) {\n settingOpen(false, e);\n }\n };\n var onInternalOpenChange = function onInternalOpenChange(value) {\n var _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled;\n if (disabled) {\n return;\n }\n settingOpen(value);\n };\n var prefixCls = getPrefixCls('popover', customizePrefixCls);\n var prefixClsConfirm = getPrefixCls('popconfirm', customizePrefixCls);\n var overlayClassNames = classNames(prefixClsConfirm, overlayClassName);\n return /*#__PURE__*/React.createElement(Popover, _extends({}, restProps, {\n trigger: trigger,\n prefixCls: prefixCls,\n placement: placement,\n onOpenChange: onInternalOpenChange,\n open: open,\n ref: ref,\n overlayClassName: overlayClassNames,\n _overlay: /*#__PURE__*/React.createElement(Overlay, _extends({\n okType: okType,\n icon: icon\n }, props, {\n prefixCls: prefixCls,\n close: close,\n onConfirm: onConfirm,\n onCancel: onCancel\n }))\n }), cloneElement(children, {\n onKeyDown: function onKeyDown(e) {\n var _a, _b;\n if ( /*#__PURE__*/React.isValidElement(children)) {\n (_b = children === null || children === void 0 ? void 0 : (_a = children.props).onKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }\n _onKeyDown(e);\n }\n }));\n});\nexport default Popconfirm;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport { getTransitionName } from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport Tooltip from '../tooltip';\nvar Overlay = function Overlay(_ref) {\n var title = _ref.title,\n content = _ref.content,\n prefixCls = _ref.prefixCls;\n return /*#__PURE__*/React.createElement(React.Fragment, null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, getRenderPropValue(title)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner-content\")\n }, getRenderPropValue(content)));\n};\nvar Popover = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n title = props.title,\n content = props.content,\n _overlay = props._overlay,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'top' : _props$placement,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? 'hover' : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.1 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n _props$overlayStyle = props.overlayStyle,\n overlayStyle = _props$overlayStyle === void 0 ? {} : _props$overlayStyle,\n otherProps = __rest(props, [\"prefixCls\", \"title\", \"content\", \"_overlay\", \"placement\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('popover', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var mergedOverlay = React.useMemo(function () {\n if (_overlay) {\n return _overlay;\n }\n if (!title && !content) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Overlay, {\n prefixCls: prefixCls,\n title: title,\n content: content\n });\n }, [_overlay, title, content, prefixCls]);\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n placement: placement,\n trigger: trigger,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayStyle: overlayStyle\n }, otherProps, {\n prefixCls: prefixCls,\n ref: ref,\n overlay: mergedOverlay,\n transitionName: getTransitionName(rootPrefixCls, 'zoom-big', otherProps.transitionName)\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popover.displayName = 'Popover';\n}\nexport default Popover;","import { useRef, useEffect } from 'react';\nexport var defaultProps = {\n percent: 0,\n prefixCls: 'rc-progress',\n strokeColor: '#2db7f5',\n strokeLinecap: 'round',\n strokeWidth: 1,\n trailColor: '#D9D9D9',\n trailWidth: 1,\n gapPosition: 'bottom'\n};\nexport var useTransitionDuration = function useTransitionDuration() {\n var pathsRef = useRef([]);\n var prevTimeStamp = useRef(null);\n useEffect(function () {\n var now = Date.now();\n var updated = false;\n pathsRef.current.forEach(function (path) {\n if (!path) {\n return;\n }\n updated = true;\n var pathStyle = path.style;\n pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';\n if (prevTimeStamp.current && now - prevTimeStamp.current < 100) {\n pathStyle.transitionDuration = '0s, 0s';\n }\n });\n if (updated) {\n prevTimeStamp.current = Date.now();\n }\n });\n return pathsRef.current;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"percent\", \"prefixCls\", \"strokeColor\", \"strokeLinecap\", \"strokeWidth\", \"style\", \"trailColor\", \"trailWidth\", \"transition\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useTransitionDuration, defaultProps } from './common';\nvar Line = function Line(props) {\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n className = _defaultProps$props.className,\n percent = _defaultProps$props.percent,\n prefixCls = _defaultProps$props.prefixCls,\n strokeColor = _defaultProps$props.strokeColor,\n strokeLinecap = _defaultProps$props.strokeLinecap,\n strokeWidth = _defaultProps$props.strokeWidth,\n style = _defaultProps$props.style,\n trailColor = _defaultProps$props.trailColor,\n trailWidth = _defaultProps$props.trailWidth,\n transition = _defaultProps$props.transition,\n restProps = _objectWithoutProperties(_defaultProps$props, _excluded);\n // eslint-disable-next-line no-param-reassign\n delete restProps.gapPosition;\n var percentList = Array.isArray(percent) ? percent : [percent];\n var strokeColorList = Array.isArray(strokeColor) ? strokeColor : [strokeColor];\n var paths = useTransitionDuration();\n var center = strokeWidth / 2;\n var right = 100 - strokeWidth / 2;\n var pathString = \"M \".concat(strokeLinecap === 'round' ? center : 0, \",\").concat(center, \"\\n L \").concat(strokeLinecap === 'round' ? right : 100, \",\").concat(center);\n var viewBoxString = \"0 0 100 \".concat(strokeWidth);\n var stackPtg = 0;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-line\"), className),\n viewBox: viewBoxString,\n preserveAspectRatio: \"none\",\n style: style\n }, restProps), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-line-trail\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: trailColor,\n strokeWidth: trailWidth || strokeWidth,\n fillOpacity: \"0\"\n }), percentList.map(function (ptg, index) {\n var dashPercent = 1;\n switch (strokeLinecap) {\n case 'round':\n dashPercent = 1 - strokeWidth / 100;\n break;\n case 'square':\n dashPercent = 1 - strokeWidth / 2 / 100;\n break;\n default:\n dashPercent = 1;\n break;\n }\n var pathStyle = {\n strokeDasharray: \"\".concat(ptg * dashPercent, \"px, 100px\"),\n strokeDashoffset: \"-\".concat(stackPtg, \"px\"),\n transition: transition || 'stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear'\n };\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"path\", {\n key: index,\n className: \"\".concat(prefixCls, \"-line-path\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: color,\n strokeWidth: strokeWidth,\n fillOpacity: \"0\",\n ref: function ref(elem) {\n // https://reactjs.org/docs/refs-and-the-dom.html#callback-refs\n // React will call the ref callback with the DOM element when the component mounts,\n // and call it with `null` when it unmounts.\n // Refs are guaranteed to be up-to-date before componentDidMount or componentDidUpdate fires.\n paths[index] = elem;\n },\n style: pathStyle\n });\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n Line.displayName = 'Line';\n}\nexport default Line;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n/** Get unique id for accessibility usage */\nfunction getUUID() {\n var retId;\n // Test never reach\n /* istanbul ignore if */\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n return retId;\n}\nexport default (function (id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n setInnerId(\"rc_progress_\".concat(getUUID()));\n }, []);\n return id || innerId;\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"steps\", \"strokeWidth\", \"trailWidth\", \"gapDegree\", \"gapPosition\", \"trailColor\", \"strokeLinecap\", \"style\", \"className\", \"strokeColor\", \"percent\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { defaultProps, useTransitionDuration } from './common';\nimport useId from './hooks/useId';\nfunction stripPercentToNumber(percent) {\n return +percent.replace('%', '');\n}\nfunction toArray(value) {\n var mergedValue = value !== null && value !== void 0 ? value : [];\n return Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n}\nvar VIEW_BOX_SIZE = 100;\nvar getCircleStyle = function getCircleStyle(perimeter, perimeterWithoutGap, offset, percent, rotateDeg, gapDegree, gapPosition, strokeColor, strokeLinecap, strokeWidth) {\n var stepSpace = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : 0;\n var offsetDeg = offset / 100 * 360 * ((360 - gapDegree) / 360);\n var positionDeg = gapDegree === 0 ? 0 : {\n bottom: 0,\n top: 180,\n left: 90,\n right: -90\n }[gapPosition];\n var strokeDashoffset = (100 - percent) / 100 * perimeterWithoutGap;\n // Fix percent accuracy when strokeLinecap is round\n // https://github.com/ant-design/ant-design/issues/35009\n if (strokeLinecap === 'round' && percent !== 100) {\n strokeDashoffset += strokeWidth / 2;\n // when percent is small enough (<= 1%), keep smallest value to avoid it's disappearance\n if (strokeDashoffset >= perimeterWithoutGap) {\n strokeDashoffset = perimeterWithoutGap - 0.01;\n }\n }\n return {\n stroke: typeof strokeColor === 'string' ? strokeColor : undefined,\n strokeDasharray: \"\".concat(perimeterWithoutGap, \"px \").concat(perimeter),\n strokeDashoffset: strokeDashoffset + stepSpace,\n transform: \"rotate(\".concat(rotateDeg + offsetDeg + positionDeg, \"deg)\"),\n transformOrigin: '0 0',\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s',\n fillOpacity: 0\n };\n};\nvar Circle = function Circle(props) {\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n id = _defaultProps$props.id,\n prefixCls = _defaultProps$props.prefixCls,\n steps = _defaultProps$props.steps,\n strokeWidth = _defaultProps$props.strokeWidth,\n trailWidth = _defaultProps$props.trailWidth,\n _defaultProps$props$g = _defaultProps$props.gapDegree,\n gapDegree = _defaultProps$props$g === void 0 ? 0 : _defaultProps$props$g,\n gapPosition = _defaultProps$props.gapPosition,\n trailColor = _defaultProps$props.trailColor,\n strokeLinecap = _defaultProps$props.strokeLinecap,\n style = _defaultProps$props.style,\n className = _defaultProps$props.className,\n strokeColor = _defaultProps$props.strokeColor,\n percent = _defaultProps$props.percent,\n restProps = _objectWithoutProperties(_defaultProps$props, _excluded);\n var mergedId = useId(id);\n var gradientId = \"\".concat(mergedId, \"-gradient\");\n var radius = VIEW_BOX_SIZE / 2 - strokeWidth / 2;\n var perimeter = Math.PI * 2 * radius;\n var rotateDeg = gapDegree > 0 ? 90 + gapDegree / 2 : -90;\n var perimeterWithoutGap = perimeter * ((360 - gapDegree) / 360);\n var _ref = _typeof(steps) === 'object' ? steps : {\n count: steps,\n space: 2\n },\n stepCount = _ref.count,\n stepSpace = _ref.space;\n var circleStyle = getCircleStyle(perimeter, perimeterWithoutGap, 0, 100, rotateDeg, gapDegree, gapPosition, trailColor, strokeLinecap, strokeWidth);\n var percentList = toArray(percent);\n var strokeColorList = toArray(strokeColor);\n var gradient = strokeColorList.find(function (color) {\n return color && _typeof(color) === 'object';\n });\n var paths = useTransitionDuration();\n var getStokeList = function getStokeList() {\n var stackPtg = 0;\n return percentList.map(function (ptg, index) {\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n var stroke = color && _typeof(color) === 'object' ? \"url(#\".concat(gradientId, \")\") : undefined;\n var circleStyleForStack = getCircleStyle(perimeter, perimeterWithoutGap, stackPtg, ptg, rotateDeg, gapDegree, gapPosition, color, strokeLinecap, strokeWidth);\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"circle\", {\n key: index,\n className: \"\".concat(prefixCls, \"-circle-path\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: stroke,\n strokeLinecap: strokeLinecap,\n strokeWidth: strokeWidth,\n opacity: ptg === 0 ? 0 : 1,\n style: circleStyleForStack,\n ref: function ref(elem) {\n // https://reactjs.org/docs/refs-and-the-dom.html#callback-refs\n // React will call the ref callback with the DOM element when the component mounts,\n // and call it with `null` when it unmounts.\n // Refs are guaranteed to be up-to-date before componentDidMount or componentDidUpdate fires.\n paths[index] = elem;\n }\n });\n }).reverse();\n };\n var getStepStokeList = function getStepStokeList() {\n // only show the first percent when pass steps\n var current = Math.round(stepCount * (percentList[0] / 100));\n var stepPtg = 100 / stepCount;\n var stackPtg = 0;\n return new Array(stepCount).fill(null).map(function (_, index) {\n var color = index <= current - 1 ? strokeColorList[0] : trailColor;\n var stroke = color && _typeof(color) === 'object' ? \"url(#\".concat(gradientId, \")\") : undefined;\n var circleStyleForStack = getCircleStyle(perimeter, perimeterWithoutGap, stackPtg, stepPtg, rotateDeg, gapDegree, gapPosition, color, 'butt', strokeWidth, stepSpace);\n stackPtg += (perimeterWithoutGap - circleStyleForStack.strokeDashoffset + stepSpace) * 100 / perimeterWithoutGap;\n return /*#__PURE__*/React.createElement(\"circle\", {\n key: index,\n className: \"\".concat(prefixCls, \"-circle-path\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: stroke\n // strokeLinecap={strokeLinecap}\n ,\n strokeWidth: strokeWidth,\n opacity: 1,\n style: circleStyleForStack,\n ref: function ref(elem) {\n paths[index] = elem;\n }\n });\n });\n };\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-circle\"), className),\n viewBox: \"\".concat(-VIEW_BOX_SIZE / 2, \" \").concat(-VIEW_BOX_SIZE / 2, \" \").concat(VIEW_BOX_SIZE, \" \").concat(VIEW_BOX_SIZE),\n style: style,\n id: id,\n role: \"presentation\"\n }, restProps), gradient && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: gradientId,\n x1: \"100%\",\n y1: \"0%\",\n x2: \"0%\",\n y2: \"0%\"\n }, Object.keys(gradient).sort(function (a, b) {\n return stripPercentToNumber(a) - stripPercentToNumber(b);\n }).map(function (key, index) {\n return /*#__PURE__*/React.createElement(\"stop\", {\n key: index,\n offset: key,\n stopColor: gradient[key]\n });\n }))), !stepCount && /*#__PURE__*/React.createElement(\"circle\", {\n className: \"\".concat(prefixCls, \"-circle-trail\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: trailColor,\n strokeLinecap: strokeLinecap,\n strokeWidth: trailWidth || strokeWidth,\n style: circleStyle\n }), stepCount ? getStepStokeList() : getStokeList());\n};\nif (process.env.NODE_ENV !== 'production') {\n Circle.displayName = 'Circle';\n}\nexport default Circle;","import warning from '../_util/warning';\nexport function validProgress(progress) {\n if (!progress || progress < 0) {\n return 0;\n }\n if (progress > 100) {\n return 100;\n }\n return progress;\n}\nexport function getSuccessPercent(_ref) {\n var success = _ref.success,\n successPercent = _ref.successPercent;\n var percent = successPercent;\n /** @deprecated Use `percent` instead */\n if (success && 'progress' in success) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Progress', '`success.progress` is deprecated. Please use `success.percent` instead.') : void 0;\n percent = success.progress;\n }\n if (success && 'percent' in success) {\n percent = success.percent;\n }\n return percent;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport classNames from 'classnames';\nimport { Circle as RCCircle } from 'rc-progress';\nimport * as React from 'react';\nimport { getSuccessPercent, validProgress } from './utils';\nfunction getPercentage(_ref) {\n var percent = _ref.percent,\n success = _ref.success,\n successPercent = _ref.successPercent;\n var realSuccessPercent = validProgress(getSuccessPercent({\n success: success,\n successPercent: successPercent\n }));\n return [realSuccessPercent, validProgress(validProgress(percent) - realSuccessPercent)];\n}\nfunction getStrokeColor(_ref2) {\n var _ref2$success = _ref2.success,\n success = _ref2$success === void 0 ? {} : _ref2$success,\n strokeColor = _ref2.strokeColor;\n var successColor = success.strokeColor;\n return [successColor || presetPrimaryColors.green, strokeColor || null];\n}\nvar Circle = function Circle(props) {\n var prefixCls = props.prefixCls,\n width = props.width,\n strokeWidth = props.strokeWidth,\n _props$trailColor = props.trailColor,\n trailColor = _props$trailColor === void 0 ? null : _props$trailColor,\n _props$strokeLinecap = props.strokeLinecap,\n strokeLinecap = _props$strokeLinecap === void 0 ? 'round' : _props$strokeLinecap,\n gapPosition = props.gapPosition,\n gapDegree = props.gapDegree,\n type = props.type,\n children = props.children,\n success = props.success;\n var circleSize = width || 120;\n var circleStyle = {\n width: circleSize,\n height: circleSize,\n fontSize: circleSize * 0.15 + 6\n };\n var circleWidth = strokeWidth || 6;\n var gapPos = gapPosition || type === 'dashboard' && 'bottom' || undefined;\n var getGapDegree = function getGapDegree() {\n // Support gapDeg = 0 when type = 'dashboard'\n if (gapDegree || gapDegree === 0) {\n return gapDegree;\n }\n if (type === 'dashboard') {\n return 75;\n }\n return undefined;\n };\n // using className to style stroke color\n var isGradient = Object.prototype.toString.call(props.strokeColor) === '[object Object]';\n var strokeColor = getStrokeColor({\n success: success,\n strokeColor: props.strokeColor\n });\n var wrapperClassName = classNames(\"\".concat(prefixCls, \"-inner\"), _defineProperty({}, \"\".concat(prefixCls, \"-circle-gradient\"), isGradient));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName,\n style: circleStyle\n }, /*#__PURE__*/React.createElement(RCCircle, {\n percent: getPercentage(props),\n strokeWidth: circleWidth,\n trailWidth: circleWidth,\n strokeColor: strokeColor,\n strokeLinecap: strokeLinecap,\n trailColor: trailColor,\n prefixCls: prefixCls,\n gapDegree: getGapDegree(),\n gapPosition: gapPos\n }), children);\n};\nexport default Circle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport * as React from 'react';\nimport { getSuccessPercent, validProgress } from './utils';\n/**\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"75%\": \"#009900\",\n * \"50%\": \"green\", // ====> '#afc163 0%, #66FF00 25%, #00CC00 50%, #009900 75%, #ffffff 100%'\n * \"25%\": \"#66FF00\",\n * \"100%\": \"#ffffff\"\n * }\n */\nexport var sortGradient = function sortGradient(gradients) {\n var tempArr = [];\n Object.keys(gradients).forEach(function (key) {\n var formattedKey = parseFloat(key.replace(/%/g, ''));\n if (!isNaN(formattedKey)) {\n tempArr.push({\n key: formattedKey,\n value: gradients[key]\n });\n }\n });\n tempArr = tempArr.sort(function (a, b) {\n return a.key - b.key;\n });\n return tempArr.map(function (_ref) {\n var key = _ref.key,\n value = _ref.value;\n return \"\".concat(value, \" \").concat(key, \"%\");\n }).join(', ');\n};\n/**\n * Then this man came to realize the truth: Besides six pence, there is the moon. Besides bread and\n * butter, there is the bug. And... Besides women, there is the code.\n *\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"25%\": \"#66FF00\",\n * \"50%\": \"#00CC00\", // ====> linear-gradient(to right, #afc163 0%, #66FF00 25%,\n * \"75%\": \"#009900\", // #00CC00 50%, #009900 75%, #ffffff 100%)\n * \"100%\": \"#ffffff\"\n * }\n */\nexport var handleGradient = function handleGradient(strokeColor, directionConfig) {\n var _strokeColor$from = strokeColor.from,\n from = _strokeColor$from === void 0 ? presetPrimaryColors.blue : _strokeColor$from,\n _strokeColor$to = strokeColor.to,\n to = _strokeColor$to === void 0 ? presetPrimaryColors.blue : _strokeColor$to,\n _strokeColor$directio = strokeColor.direction,\n direction = _strokeColor$directio === void 0 ? directionConfig === 'rtl' ? 'to left' : 'to right' : _strokeColor$directio,\n rest = __rest(strokeColor, [\"from\", \"to\", \"direction\"]);\n if (Object.keys(rest).length !== 0) {\n var sortedGradients = sortGradient(rest);\n return {\n backgroundImage: \"linear-gradient(\".concat(direction, \", \").concat(sortedGradients, \")\")\n };\n }\n return {\n backgroundImage: \"linear-gradient(\".concat(direction, \", \").concat(from, \", \").concat(to, \")\")\n };\n};\nvar Line = function Line(props) {\n var prefixCls = props.prefixCls,\n directionConfig = props.direction,\n percent = props.percent,\n strokeWidth = props.strokeWidth,\n size = props.size,\n strokeColor = props.strokeColor,\n _props$strokeLinecap = props.strokeLinecap,\n strokeLinecap = _props$strokeLinecap === void 0 ? 'round' : _props$strokeLinecap,\n children = props.children,\n _props$trailColor = props.trailColor,\n trailColor = _props$trailColor === void 0 ? null : _props$trailColor,\n success = props.success;\n var backgroundProps = strokeColor && typeof strokeColor !== 'string' ? handleGradient(strokeColor, directionConfig) : {\n background: strokeColor\n };\n var borderRadius = strokeLinecap === 'square' || strokeLinecap === 'butt' ? 0 : undefined;\n var trailStyle = {\n backgroundColor: trailColor || undefined,\n borderRadius: borderRadius\n };\n var percentStyle = _extends({\n width: \"\".concat(validProgress(percent), \"%\"),\n height: strokeWidth || (size === 'small' ? 6 : 8),\n borderRadius: borderRadius\n }, backgroundProps);\n var successPercent = getSuccessPercent(props);\n var successPercentStyle = {\n width: \"\".concat(validProgress(successPercent), \"%\"),\n height: strokeWidth || (size === 'small' ? 6 : 8),\n borderRadius: borderRadius,\n backgroundColor: success === null || success === void 0 ? void 0 : success.strokeColor\n };\n var successSegment = successPercent !== undefined ? ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-success-bg\"),\n style: successPercentStyle\n })) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-outer\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n style: trailStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-bg\"),\n style: percentStyle\n }), successSegment)), children);\n};\nexport default Line;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar Steps = function Steps(props) {\n var size = props.size,\n steps = props.steps,\n _props$percent = props.percent,\n percent = _props$percent === void 0 ? 0 : _props$percent,\n _props$strokeWidth = props.strokeWidth,\n strokeWidth = _props$strokeWidth === void 0 ? 8 : _props$strokeWidth,\n strokeColor = props.strokeColor,\n _props$trailColor = props.trailColor,\n trailColor = _props$trailColor === void 0 ? null : _props$trailColor,\n prefixCls = props.prefixCls,\n children = props.children;\n var current = Math.round(steps * (percent / 100));\n var stepWidth = size === 'small' ? 2 : 14;\n var styledSteps = new Array(steps);\n for (var i = 0; i < steps; i++) {\n var color = Array.isArray(strokeColor) ? strokeColor[i] : strokeColor;\n styledSteps[i] = /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n className: classNames(\"\".concat(prefixCls, \"-steps-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-steps-item-active\"), i <= current - 1)),\n style: {\n backgroundColor: i <= current - 1 ? color : trailColor,\n width: stepWidth,\n height: strokeWidth\n }\n });\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-steps-outer\")\n }, styledSteps, children);\n};\nexport default Steps;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { tuple } from '../_util/type';\nimport warning from '../_util/warning';\nimport Circle from './Circle';\nimport Line from './Line';\nimport Steps from './Steps';\nimport { getSuccessPercent, validProgress } from './utils';\nvar ProgressTypes = tuple('line', 'circle', 'dashboard');\nvar ProgressStatuses = tuple('normal', 'exception', 'active', 'success');\nvar Progress = function Progress(props) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n steps = props.steps,\n strokeColor = props.strokeColor,\n _props$percent = props.percent,\n percent = _props$percent === void 0 ? 0 : _props$percent,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size,\n _props$showInfo = props.showInfo,\n showInfo = _props$showInfo === void 0 ? true : _props$showInfo,\n _props$type = props.type,\n type = _props$type === void 0 ? 'line' : _props$type,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"steps\", \"strokeColor\", \"percent\", \"size\", \"showInfo\", \"type\"]);\n function getPercentNumber() {\n var successPercent = getSuccessPercent(props);\n return parseInt(successPercent !== undefined ? successPercent.toString() : percent.toString(), 10);\n }\n function getProgressStatus() {\n var status = props.status;\n if (!ProgressStatuses.includes(status) && getPercentNumber() >= 100) {\n return 'success';\n }\n return status || 'normal';\n }\n function renderProcessInfo(prefixCls, progressStatus) {\n var format = props.format;\n var successPercent = getSuccessPercent(props);\n if (!showInfo) {\n return null;\n }\n var text;\n var textFormatter = format || function (percentNumber) {\n return \"\".concat(percentNumber, \"%\");\n };\n var isLineType = type === 'line';\n if (format || progressStatus !== 'exception' && progressStatus !== 'success') {\n text = textFormatter(validProgress(percent), validProgress(successPercent));\n } else if (progressStatus === 'exception') {\n text = isLineType ? /*#__PURE__*/React.createElement(CloseCircleFilled, null) : /*#__PURE__*/React.createElement(CloseOutlined, null);\n } else if (progressStatus === 'success') {\n text = isLineType ? /*#__PURE__*/React.createElement(CheckCircleFilled, null) : /*#__PURE__*/React.createElement(CheckOutlined, null);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-text\"),\n title: typeof text === 'string' ? text : undefined\n }, text);\n }\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('progress', customizePrefixCls);\n var progressStatus = getProgressStatus();\n var progressInfo = renderProcessInfo(prefixCls, progressStatus);\n process.env.NODE_ENV !== \"production\" ? warning(!('successPercent' in props), 'Progress', '`successPercent` is deprecated. Please use `success.percent` instead.') : void 0;\n var strokeColorNotArray = Array.isArray(strokeColor) ? strokeColor[0] : strokeColor;\n var strokeColorNotGradient = typeof strokeColor === 'string' || Array.isArray(strokeColor) ? strokeColor : undefined;\n var progress;\n // Render progress shape\n if (type === 'line') {\n progress = steps ? ( /*#__PURE__*/React.createElement(Steps, _extends({}, props, {\n strokeColor: strokeColorNotGradient,\n prefixCls: prefixCls,\n steps: steps\n }), progressInfo)) : ( /*#__PURE__*/React.createElement(Line, _extends({}, props, {\n strokeColor: strokeColorNotArray,\n prefixCls: prefixCls,\n direction: direction\n }), progressInfo));\n } else if (type === 'circle' || type === 'dashboard') {\n progress = /*#__PURE__*/React.createElement(Circle, _extends({}, props, {\n strokeColor: strokeColorNotArray,\n prefixCls: prefixCls,\n progressStatus: progressStatus\n }), progressInfo);\n }\n var classString = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(type === 'dashboard' && 'circle' || steps && 'steps' || type), true), \"\".concat(prefixCls, \"-status-\").concat(progressStatus), true), \"\".concat(prefixCls, \"-show-info\"), showInfo), \"\".concat(prefixCls, \"-\").concat(size), size), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, omit(restProps, ['status', 'format', 'trailColor', 'strokeWidth', 'width', 'gapDegree', 'gapPosition', 'strokeLinecap', 'success', 'successPercent']), {\n className: classString,\n role: \"progressbar\"\n }), progress);\n};\nexport default Progress;","import Progress from './progress';\nexport default Progress;","import * as React from 'react';\nvar RadioGroupContext = /*#__PURE__*/React.createContext(null);\nexport var RadioGroupContextProvider = RadioGroupContext.Provider;\nexport default RadioGroupContext;\nexport var RadioOptionTypeContext = /*#__PURE__*/React.createContext(null);\nexport var RadioOptionTypeContextProvider = RadioOptionTypeContext.Provider;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport { FormItemInputContext } from '../form/context';\nimport warning from '../_util/warning';\nimport RadioGroupContext, { RadioOptionTypeContext } from './context';\nvar InternalRadio = function InternalRadio(props, ref) {\n var _a, _b;\n var groupContext = React.useContext(RadioGroupContext);\n var radioOptionTypeContext = React.useContext(RadioOptionTypeContext);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var innerRef = React.useRef();\n var mergedRef = composeRef(ref, innerRef);\n var _useContext = useContext(FormItemInputContext),\n isFormItemInput = _useContext.isFormItemInput;\n process.env.NODE_ENV !== \"production\" ? warning(!('optionType' in props), 'Radio', '`optionType` is only support in Radio.Group.') : void 0;\n var onChange = function onChange(e) {\n var _a, _b;\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, e);\n (_b = groupContext === null || groupContext === void 0 ? void 0 : groupContext.onChange) === null || _b === void 0 ? void 0 : _b.call(groupContext, e);\n };\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n style = props.style,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"children\", \"style\"]);\n var radioPrefixCls = getPrefixCls('radio', customizePrefixCls);\n var prefixCls = ((groupContext === null || groupContext === void 0 ? void 0 : groupContext.optionType) || radioOptionTypeContext) === 'button' ? \"\".concat(radioPrefixCls, \"-button\") : radioPrefixCls;\n var radioProps = _extends({}, restProps);\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n if (groupContext) {\n radioProps.name = groupContext.name;\n radioProps.onChange = onChange;\n radioProps.checked = props.value === groupContext.value;\n radioProps.disabled = (_a = radioProps.disabled) !== null && _a !== void 0 ? _a : groupContext.disabled;\n }\n radioProps.disabled = (_b = radioProps.disabled) !== null && _b !== void 0 ? _b : disabled;\n var wrapperClassString = classNames(\"\".concat(prefixCls, \"-wrapper\"), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-wrapper-checked\"), radioProps.checked), \"\".concat(prefixCls, \"-wrapper-disabled\"), radioProps.disabled), \"\".concat(prefixCls, \"-wrapper-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-wrapper-in-form-item\"), isFormItemInput), className);\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n React.createElement(\"label\", {\n className: wrapperClassString,\n style: style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, _extends({}, radioProps, {\n type: \"radio\",\n prefixCls: prefixCls,\n ref: mergedRef\n })), children !== undefined ? /*#__PURE__*/React.createElement(\"span\", null, children) : null)\n );\n};\nvar Radio = /*#__PURE__*/React.forwardRef(InternalRadio);\nif (process.env.NODE_ENV !== 'production') {\n Radio.displayName = 'Radio';\n}\nexport default Radio;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport getDataOrAriaProps from '../_util/getDataOrAriaProps';\nimport { RadioGroupContextProvider } from './context';\nimport Radio from './radio';\nvar RadioGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var onRadioChange = function onRadioChange(ev) {\n var lastValue = value;\n var val = ev.target.value;\n if (!('value' in props)) {\n setValue(val);\n }\n var onChange = props.onChange;\n if (onChange && val !== lastValue) {\n onChange(ev);\n }\n };\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n options = props.options,\n _props$buttonStyle = props.buttonStyle,\n buttonStyle = _props$buttonStyle === void 0 ? 'outline' : _props$buttonStyle,\n disabled = props.disabled,\n children = props.children,\n customizeSize = props.size,\n style = props.style,\n id = props.id,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onFocus = props.onFocus,\n onBlur = props.onBlur;\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var childrenToRender = children;\n // 如果存在 options, 优先使用\n if (options && options.length > 0) {\n childrenToRender = options.map(function (option) {\n if (typeof option === 'string' || typeof option === 'number') {\n // 此处类型自动推导为 string\n return /*#__PURE__*/React.createElement(Radio, {\n key: option.toString(),\n prefixCls: prefixCls,\n disabled: disabled,\n value: option,\n checked: value === option\n }, option);\n }\n // 此处类型自动推导为 { label: string value: string }\n return /*#__PURE__*/React.createElement(Radio, {\n key: \"radio-group-value-options-\".concat(option.value),\n prefixCls: prefixCls,\n disabled: option.disabled || disabled,\n value: option.value,\n checked: value === option.value,\n style: option.style\n }, option.label);\n });\n }\n var mergedSize = customizeSize || size;\n var classString = classNames(groupPrefixCls, \"\".concat(groupPrefixCls, \"-\").concat(buttonStyle), _defineProperty(_defineProperty({}, \"\".concat(groupPrefixCls, \"-\").concat(mergedSize), mergedSize), \"\".concat(groupPrefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, getDataOrAriaProps(props), {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onFocus: onFocus,\n onBlur: onBlur,\n id: id,\n ref: ref\n }), /*#__PURE__*/React.createElement(RadioGroupContextProvider, {\n value: {\n onChange: onRadioChange,\n value: value,\n disabled: props.disabled,\n name: props.name,\n optionType: props.optionType\n }\n }, childrenToRender));\n});\nexport default /*#__PURE__*/React.memo(RadioGroup);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { RadioOptionTypeContextProvider } from './context';\nimport Radio from './radio';\nvar RadioButton = function RadioButton(props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var customizePrefixCls = props.prefixCls,\n radioProps = __rest(props, [\"prefixCls\"]);\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n return /*#__PURE__*/React.createElement(RadioOptionTypeContextProvider, {\n value: \"button\"\n }, /*#__PURE__*/React.createElement(Radio, _extends({\n prefixCls: prefixCls\n }, radioProps, {\n type: \"radio\",\n ref: ref\n })));\n};\nexport default /*#__PURE__*/React.forwardRef(RadioButton);","import Group from './group';\nimport InternalRadio from './radio';\nimport Button from './radioButton';\nexport { Button, Group };\nvar Radio = InternalRadio;\nRadio.Button = Button;\nRadio.Group = Group;\nRadio.__ANT_RADIO = true;\nexport default Radio;","// This icon file is generated automatically.\nvar WarningFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"warning\", \"theme\": \"filled\" };\nexport default WarningFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport WarningFilledSvg from \"@ant-design/icons-svg/es/asn/WarningFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar WarningFilled = function WarningFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: WarningFilledSvg\n }));\n};\nWarningFilled.displayName = 'WarningFilled';\nexport default /*#__PURE__*/React.forwardRef(WarningFilled);","import * as React from 'react';\nvar NoFound = function NoFound() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"252\",\n height: \"294\"\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 .387h251.772v251.772H0z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 .012)\"\n }, /*#__PURE__*/React.createElement(\"mask\", {\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 127.32v-2.095C0 56.279 55.892.387 124.838.387h2.096c68.946 0 124.838 55.892 124.838 124.838v2.096c0 68.946-55.892 124.838-124.838 124.838h-2.096C55.892 252.16 0 196.267 0 127.321\",\n fill: \"#E4EBF7\",\n mask: \"url(#b)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.755 130.84a8.276 8.276 0 1 1-16.468-1.66 8.276 8.276 0 0 1 16.468 1.66\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.975 134.297l10.482 5.943M48.373 146.508l-12.648 10.788\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.875 159.352a5.667 5.667 0 1 1-11.277-1.136 5.667 5.667 0 0 1 11.277 1.136M57.588 143.247a5.708 5.708 0 1 1-11.358-1.145 5.708 5.708 0 0 1 11.358 1.145M99.018 26.875l29.82-.014a4.587 4.587 0 1 0-.003-9.175l-29.82.013a4.587 4.587 0 1 0 .003 9.176M110.424 45.211l29.82-.013a4.588 4.588 0 0 0-.004-9.175l-29.82.013a4.587 4.587 0 1 0 .004 9.175\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.798 26.861v-.002l15.784-.006a4.588 4.588 0 1 0 .003 9.175l-15.783.007v-.002a4.586 4.586 0 0 0-.004-9.172M184.523 135.668c-.553 5.485-5.447 9.483-10.931 8.93-5.485-.553-9.483-5.448-8.93-10.932.552-5.485 5.447-9.483 10.932-8.93 5.485.553 9.483 5.447 8.93 10.932\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M179.26 141.75l12.64 7.167M193.006 156.477l-15.255 13.011\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M184.668 170.057a6.835 6.835 0 1 1-13.6-1.372 6.835 6.835 0 0 1 13.6 1.372M203.34 153.325a6.885 6.885 0 1 1-13.7-1.382 6.885 6.885 0 0 1 13.7 1.382\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.931 192.324a2.222 2.222 0 1 1-4.444 0 2.222 2.222 0 0 1 4.444 0zM225.27 116.056a2.222 2.222 0 1 1-4.445 0 2.222 2.222 0 0 1 4.444 0zM216.38 151.08a2.223 2.223 0 1 1-4.446-.001 2.223 2.223 0 0 1 4.446 0zM176.917 107.636a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM195.291 92.165a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM202.058 180.711a2.223 2.223 0 1 1-4.446 0 2.223 2.223 0 0 1 4.446 0z\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#FFF\",\n strokeWidth: \"2\",\n d: \"M214.404 153.302l-1.912 20.184-10.928 5.99M173.661 174.792l-6.356 9.814h-11.36l-4.508 6.484M174.941 125.168v-15.804M220.824 117.25l-12.84 7.901-15.31-7.902V94.39\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M166.588 65.936h-3.951a4.756 4.756 0 0 1-4.743-4.742 4.756 4.756 0 0 1 4.743-4.743h3.951a4.756 4.756 0 0 1 4.743 4.743 4.756 4.756 0 0 1-4.743 4.742\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.823 30.03c0-16.281 13.198-29.48 29.48-29.48 16.28 0 29.48 13.199 29.48 29.48 0 16.28-13.2 29.48-29.48 29.48-16.282 0-29.48-13.2-29.48-29.48\",\n fill: \"#1890FF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M205.952 38.387c.5.5.785 1.142.785 1.928s-.286 1.465-.785 1.964c-.572.5-1.214.75-2 .75-.785 0-1.429-.285-1.929-.785-.572-.5-.82-1.143-.82-1.929s.248-1.428.82-1.928c.5-.5 1.144-.75 1.93-.75.785 0 1.462.25 1.999.75m4.285-19.463c1.428 1.249 2.143 2.963 2.143 5.142 0 1.712-.427 3.13-1.219 4.25-.067.096-.137.18-.218.265-.416.429-1.41 1.346-2.956 2.699a5.07 5.07 0 0 0-1.428 1.75 5.207 5.207 0 0 0-.536 2.357v.5h-4.107v-.5c0-1.357.215-2.536.714-3.5.464-.964 1.857-2.464 4.178-4.536l.43-.5c.643-.785.964-1.643.964-2.535 0-1.18-.358-2.108-1-2.785-.678-.68-1.643-1.001-2.858-1.001-1.536 0-2.642.464-3.357 1.43-.37.5-.621 1.135-.76 1.904a1.999 1.999 0 0 1-1.971 1.63h-.004c-1.277 0-2.257-1.183-1.98-2.43.337-1.518 1.02-2.78 2.073-3.784 1.536-1.5 3.607-2.25 6.25-2.25 2.32 0 4.214.607 5.642 1.894\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.04 76.131s21.81 5.36 27.307 15.945c5.575 10.74-6.352 9.26-15.73 4.935-10.86-5.008-24.7-11.822-11.577-20.88\",\n fill: \"#FFB594\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.483 67.504l-.449 2.893c-.753.49-4.748-2.663-4.748-2.663l-1.645.748-1.346-5.684s6.815-4.589 8.917-5.018c2.452-.501 9.884.94 10.7 2.278 0 0 1.32.486-2.227.69-3.548.203-5.043.447-6.79 3.132-1.747 2.686-2.412 3.624-2.412 3.624\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.055 111.367c-2.627-7.724-6.15-13.18-8.917-15.478-3.5-2.906-9.34-2.225-11.366-4.187-1.27-1.231-3.215-1.197-3.215-1.197s-14.98-3.158-16.828-3.479c-2.37-.41-2.124-.714-6.054-1.405-1.57-1.907-2.917-1.122-2.917-1.122l-7.11-1.383c-.853-1.472-2.423-1.023-2.423-1.023l-2.468-.897c-1.645 9.976-7.74 13.796-7.74 13.796 1.795 1.122 15.703 8.3 15.703 8.3l5.107 37.11s-3.321 5.694 1.346 9.109c0 0 19.883-3.743 34.921-.329 0 0 3.047-2.546.972-8.806.523-3.01 1.394-8.263 1.736-11.622.385.772 2.019 1.918 3.14 3.477 0 0 9.407-7.365 11.052-14.012-.832-.723-1.598-1.585-2.267-2.453-.567-.736-.358-2.056-.765-2.717-.669-1.084-1.804-1.378-1.907-1.682\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.09 289.998s4.295 2.041 7.354 1.021c2.821-.94 4.53.668 7.08 1.178 2.55.51 6.874 1.1 11.686-1.26-.103-5.51-6.889-3.98-11.96-6.713-2.563-1.38-3.784-4.722-3.598-8.799h-9.402s-1.392 10.52-1.16 14.573\",\n fill: \"#CBD1D1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.067 289.826s2.428 1.271 6.759.653c3.058-.437 3.712.481 7.423 1.031 3.712.55 10.724-.069 11.823-.894.413 1.1-.343 2.063-.343 2.063s-1.512.603-4.812.824c-2.03.136-5.8.291-7.607-.503-1.787-1.375-5.247-1.903-5.728-.241-3.918.95-7.355-.286-7.355-.286l-.16-2.647z\",\n fill: \"#2B0849\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.341 276.044h3.094s-.103 6.702 4.536 8.558c-4.64.618-8.558-2.303-7.63-8.558\",\n fill: \"#A4AABA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.542 272.401s-2.107 7.416-4.485 12.306c-1.798 3.695-4.225 7.492 5.465 7.492 6.648 0 8.953-.48 7.423-6.599-1.53-6.12.266-13.199.266-13.199h-8.669z\",\n fill: \"#CBD1D1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.476 289.793s2.097 1.169 6.633 1.169c6.083 0 8.249-1.65 8.249-1.65s.602 1.114-.619 2.165c-.993.855-3.597 1.591-7.39 1.546-4.145-.048-5.832-.566-6.736-1.168-.825-.55-.687-1.58-.137-2.062\",\n fill: \"#2B0849\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.419 274.304s.033 1.519-.314 2.93c-.349 1.42-1.078 3.104-1.13 4.139-.058 1.151 4.537 1.58 5.155.034.62-1.547 1.294-6.427 1.913-7.252.619-.825-4.903-2.119-5.624.15\",\n fill: \"#A4AABA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.66 278.514l13.378.092s1.298-54.52 1.853-64.403c.554-9.882 3.776-43.364 1.002-63.128l-12.547-.644-22.849.78s-.434 3.966-1.195 9.976c-.063.496-.682.843-.749 1.365-.075.585.423 1.354.32 1.966-2.364 14.08-6.377 33.104-8.744 46.677-.116.666-1.234 1.009-1.458 2.691-.04.302.211 1.525.112 1.795-6.873 18.744-10.949 47.842-14.277 61.885l14.607-.014s2.197-8.57 4.03-16.97c2.811-12.886 23.111-85.01 23.111-85.01l3.016-.521 1.043 46.35s-.224 1.234.337 2.02c.56.785-.56 1.123-.392 2.244l.392 1.794s-.449 7.178-.898 11.89c-.448 4.71-.092 39.165-.092 39.165\",\n fill: \"#7BB2F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.085 221.626c1.153.094 4.038-2.019 6.955-4.935M106.36 225.142s2.774-1.11 6.103-3.883\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.275 222.1s2.773-1.11 6.102-3.884\",\n stroke: \"#648BD8\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.74 224.767s2.622-.591 6.505-3.365M86.03 151.634c-.27 3.106.3 8.525-4.336 9.123M103.625 149.88s.11 14.012-1.293 15.065c-2.219 1.664-2.99 1.944-2.99 1.944M99.79 150.438s.035 12.88-1.196 24.377M93.673 175.911s7.212-1.664 9.431-1.664M74.31 205.861a212.013 212.013 0 0 1-.979 4.56s-1.458 1.832-1.009 3.776c.449 1.944-.947 2.045-4.985 15.355-1.696 5.59-4.49 18.591-6.348 27.597l-.231 1.12M75.689 197.807a320.934 320.934 0 0 1-.882 4.754M82.591 152.233L81.395 162.7s-1.097.15-.5 2.244c.113 1.346-2.674 15.775-5.18 30.43M56.12 274.418h13.31\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.241 148.22s-17.047-3.104-35.893.2c.158 2.514-.003 4.15-.003 4.15s14.687-2.818 35.67-.312c.252-2.355.226-4.038.226-4.038\",\n fill: \"#192064\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.322 151.165l.003-4.911a.81.81 0 0 0-.778-.815c-2.44-.091-5.066-.108-7.836-.014a.818.818 0 0 0-.789.815l-.003 4.906a.81.81 0 0 0 .831.813c2.385-.06 4.973-.064 7.73.017a.815.815 0 0 0 .842-.81\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.207 150.233l.002-3.076a.642.642 0 0 0-.619-.646 94.321 94.321 0 0 0-5.866-.01.65.65 0 0 0-.63.647v3.072a.64.64 0 0 0 .654.644 121.12 121.12 0 0 1 5.794.011c.362.01.665-.28.665-.642\",\n fill: \"#192064\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.263 275.415h12.338M101.436 270.53c.006 3.387.042 5.79.111 6.506M101.451 264.548a915.75 915.75 0 0 0-.015 4.337M100.986 174.965l.898 44.642s.673 1.57-.225 2.692c-.897 1.122 2.468.673.898 2.243-1.57 1.57.897 1.122 0 3.365-.596 1.489-.994 21.1-1.096 35.146\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.876 83.427s-.516 6.045 7.223 5.552c11.2-.712 9.218-9.345 31.54-21.655-.786-2.708-2.447-4.744-2.447-4.744s-11.068 3.11-22.584 8.046c-6.766 2.9-13.395 6.352-13.732 12.801M104.46 91.057l.941-5.372-8.884-11.43-5.037 5.372-1.74 7.834a.321.321 0 0 0 .108.32c.965.8 6.5 5.013 14.347 3.544a.332.332 0 0 0 .264-.268\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.942 79.387s-4.533-2.853-2.432-6.855c1.623-3.09 4.513 1.133 4.513 1.133s.52-3.642 3.121-3.642c.52-1.04 1.561-4.162 1.561-4.162s11.445 2.601 13.526 3.121c0 5.203-2.304 19.424-7.84 19.861-8.892.703-12.449-9.456-12.449-9.456\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.874 73.446c2.601-2.081 3.47-9.722 3.47-9.722s-2.479-.49-6.64-2.05c-4.683-2.081-12.798-4.747-17.48.976-9.668 3.223-2.05 19.823-2.05 19.823l2.713-3.021s-3.935-3.287-2.08-6.243c2.17-3.462 3.92 1.073 3.92 1.073s.637-2.387 3.581-3.342c.355-.71 1.036-2.674 1.432-3.85a1.073 1.073 0 0 1 1.263-.704c2.4.558 8.677 2.019 11.356 2.662.522.125.871.615.82 1.15l-.305 3.248z\",\n fill: \"#520038\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.977 76.064c-.103.61-.582 1.038-1.07.956-.489-.083-.801-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.644.698 1.254M112.132 77.694c-.103.61-.582 1.038-1.07.956-.488-.083-.8-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.643.698 1.254\",\n fill: \"#552950\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M110.13 74.84l-.896 1.61-.298 4.357h-2.228\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.846 74.481s1.79-.716 2.506.537\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.386 74.282s.477-1.114 1.113-.716c.637.398 1.274 1.433.558 1.99-.717.556.159 1.67.159 1.67\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.287 72.93s1.83 1.113 4.137.954\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.685 81.762s2.227 1.193 4.376 1.193M104.64 84.308s.954.398 1.511.318M94.693 81.205s2.308 7.4 10.424 7.639\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.45 89.384s.45 5.647-4.935 12.787M69 82.654s-.726 9.282-8.204 14.206\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.101\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.405 122.865s-5.272 7.403-9.422 10.768\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.306 107.329s.452 4.366-2.127 32.062\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.101\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.028 151.232h-49.837a1.01 1.01 0 0 1-1.01-1.01v-31.688c0-.557.452-1.01 1.01-1.01h49.837c.558 0 1.01.453 1.01 1.01v31.688a1.01 1.01 0 0 1-1.01 1.01\",\n fill: \"#F2D7AD\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.29 151.232h-19.863v-33.707h20.784v32.786a.92.92 0 0 1-.92.92\",\n fill: \"#F4D19D\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.554 127.896H92.917a.518.518 0 0 1-.425-.816l6.38-9.113c.193-.277.51-.442.85-.442h31.092l-7.26 10.371z\",\n fill: \"#F2D7AD\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n d: \"M123.689 128.447H99.25v-.519h24.169l7.183-10.26.424.298z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M158.298 127.896h-18.669a2.073 2.073 0 0 1-1.659-.83l-7.156-9.541h19.965c.49 0 .95.23 1.244.622l6.69 8.92a.519.519 0 0 1-.415.83\",\n fill: \"#F4D19D\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n d: \"M157.847 128.479h-19.384l-7.857-10.475.415-.31 7.7 10.266h19.126zM130.554 150.685l-.032-8.177.519-.002.032 8.177z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n d: \"M130.511 139.783l-.08-21.414.519-.002.08 21.414zM111.876 140.932l-.498-.143 1.479-5.167.498.143zM108.437 141.06l-2.679-2.935 2.665-3.434.41.318-2.397 3.089 2.384 2.612zM116.607 141.06l-.383-.35 2.383-2.612-2.397-3.089.41-.318 2.665 3.434z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M154.316 131.892l-3.114-1.96.038 3.514-1.043.092c-1.682.115-3.634.23-4.789.23-1.902 0-2.693 2.258 2.23 2.648l-2.645-.596s-2.168 1.317.504 2.3c0 0-1.58 1.217.561 2.58-.584 3.504 5.247 4.058 7.122 3.59 1.876-.47 4.233-2.359 4.487-5.16.28-3.085-.89-5.432-3.35-7.238\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M153.686 133.577s-6.522.47-8.36.372c-1.836-.098-1.904 2.19 2.359 2.264 3.739.15 5.451-.044 5.451-.044\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.16 135.877c-1.85 1.346.561 2.355.561 2.355s3.478.898 6.73.617\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.89 141.71s-6.28.111-6.73-2.132c-.223-1.346.45-1.402.45-1.402M146.114 140.868s-1.103 3.16 5.44 3.533M151.202 129.932v3.477M52.838 89.286c3.533-.337 8.423-1.248 13.582-7.754\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.567 248.318a6.647 6.647 0 0 1-6.647-6.647v-66.466a6.647 6.647 0 1 1 13.294 0v66.466a6.647 6.647 0 0 1-6.647 6.647\",\n fill: \"#5BA02E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.543 247.653a6.647 6.647 0 0 1-6.646-6.647v-33.232a6.647 6.647 0 1 1 13.293 0v33.232a6.647 6.647 0 0 1-6.647 6.647\",\n fill: \"#92C110\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M186.443 293.613H158.92a3.187 3.187 0 0 1-3.187-3.187v-46.134a3.187 3.187 0 0 1 3.187-3.187h27.524a3.187 3.187 0 0 1 3.187 3.187v46.134a3.187 3.187 0 0 1-3.187 3.187\",\n fill: \"#F2D7AD\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.979 89.48s7.776 5.384 16.6 2.842\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.101\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n};\nexport default NoFound;","import * as React from 'react';\nvar ServerError = function ServerError() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"254\",\n height: \"294\"\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 .335h253.49v253.49H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 293.665h253.49V.401H0z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 .067)\"\n }, /*#__PURE__*/React.createElement(\"mask\", {\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 128.134v-2.11C0 56.608 56.273.334 125.69.334h2.11c69.416 0 125.69 56.274 125.69 125.69v2.11c0 69.417-56.274 125.69-125.69 125.69h-2.11C56.273 253.824 0 197.551 0 128.134\",\n fill: \"#E4EBF7\",\n mask: \"url(#b)\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.989 132.108a8.332 8.332 0 1 1-16.581-1.671 8.332 8.332 0 0 1 16.58 1.671\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.19 135.59l10.553 5.983M48.665 147.884l-12.734 10.861\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.11 160.816a5.706 5.706 0 1 1-11.354-1.145 5.706 5.706 0 0 1 11.354 1.145M57.943 144.6a5.747 5.747 0 1 1-11.436-1.152 5.747 5.747 0 0 1 11.436 1.153M99.656 27.434l30.024-.013a4.619 4.619 0 1 0-.004-9.238l-30.024.013a4.62 4.62 0 0 0 .004 9.238M111.14 45.896l30.023-.013a4.62 4.62 0 1 0-.004-9.238l-30.024.013a4.619 4.619 0 1 0 .004 9.238\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.53 27.421v-.002l15.89-.007a4.619 4.619 0 1 0 .005 9.238l-15.892.007v-.002a4.618 4.618 0 0 0-.004-9.234M150.167 70.091h-3.979a4.789 4.789 0 0 1-4.774-4.775 4.788 4.788 0 0 1 4.774-4.774h3.979a4.789 4.789 0 0 1 4.775 4.774 4.789 4.789 0 0 1-4.775 4.775\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M171.687 30.234c0-16.392 13.289-29.68 29.681-29.68 16.392 0 29.68 13.288 29.68 29.68 0 16.393-13.288 29.681-29.68 29.681s-29.68-13.288-29.68-29.68\",\n fill: \"#FF603B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M203.557 19.435l-.676 15.035a1.514 1.514 0 0 1-3.026 0l-.675-15.035a2.19 2.19 0 1 1 4.377 0m-.264 19.378c.513.477.77 1.1.77 1.87s-.257 1.393-.77 1.907c-.55.476-1.21.733-1.943.733a2.545 2.545 0 0 1-1.87-.77c-.55-.514-.806-1.136-.806-1.87 0-.77.256-1.393.806-1.87.513-.513 1.137-.733 1.87-.733.77 0 1.43.22 1.943.733\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.3 133.275c4.426-.598 3.612-1.204 4.079-4.778.675-5.18-3.108-16.935-8.262-25.118-1.088-10.72-12.598-11.24-12.598-11.24s4.312 4.895 4.196 16.199c1.398 5.243.804 14.45.804 14.45s5.255 11.369 11.78 10.487\",\n fill: \"#FFB594\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.944 91.61s1.463-.583 3.211.582c8.08 1.398 10.368 6.706 11.3 11.368 1.864 1.282 1.864 2.33 1.864 3.496.365.777 1.515 3.03 1.515 3.03s-7.225 1.748-10.954 6.758c-1.399-6.41-6.936-25.235-6.936-25.235\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.008 90.5l1.019-5.815-9.23-11.874-5.233 5.581-2.593 9.863s8.39 5.128 16.037 2.246\",\n fill: \"#FFB594\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.931 78.216s-4.557-2.868-2.445-6.892c1.632-3.107 4.537 1.139 4.537 1.139s.524-3.662 3.139-3.662c.523-1.046 1.569-4.184 1.569-4.184s11.507 2.615 13.6 3.138c-.001 5.23-2.317 19.529-7.884 19.969-8.94.706-12.516-9.508-12.516-9.508\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.971 72.243c2.616-2.093 3.489-9.775 3.489-9.775s-2.492-.492-6.676-2.062c-4.708-2.092-12.867-4.771-17.575.982-9.54 4.41-2.062 19.93-2.062 19.93l2.729-3.037s-3.956-3.304-2.092-6.277c2.183-3.48 3.943 1.08 3.943 1.08s.64-2.4 3.6-3.36c.356-.714 1.04-2.69 1.44-3.872a1.08 1.08 0 0 1 1.27-.707c2.41.56 8.723 2.03 11.417 2.676.524.126.876.619.825 1.156l-.308 3.266z\",\n fill: \"#520038\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.22 76.514c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.961.491.083.805.647.702 1.26M94.26 75.074c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.96.491.082.805.646.702 1.26\",\n fill: \"#552950\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeWidth: \"1.063\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M99.206 73.644l-.9 1.62-.3 4.38h-2.24\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.926 73.284s1.8-.72 2.52.54\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.117\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.367 73.084s.48-1.12 1.12-.72c.64.4 1.28 1.44.56 2s.16 1.68.16 1.68\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.117\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.326 71.724s1.84 1.12 4.16.96\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.117\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.726 80.604s2.24 1.2 4.4 1.2M93.686 83.164s.96.4 1.52.32M83.687 80.044s1.786 6.547 9.262 7.954\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.063\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M95.548 91.663s-1.068 2.821-8.298 2.105c-7.23-.717-10.29-5.044-10.29-5.044\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.136\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.126 87.478s6.526 4.972 16.47 2.486c0 0 9.577 1.02 11.536 5.322 5.36 11.77.543 36.835 0 39.962 3.496 4.055-.466 8.483-.466 8.483-15.624-3.548-35.81-.6-35.81-.6-4.849-3.546-1.223-9.044-1.223-9.044L62.38 110.32c-2.485-15.227.833-19.803 3.549-20.743 3.03-1.049 8.04-1.282 8.04-1.282.496-.058 1.08-.076 1.37-.233 2.36-1.282 2.787-.583 2.787-.583\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.828 89.81s-6.875.465-7.59 8.156c-.466 8.857 3.03 10.954 3.03 10.954s6.075 22.102 16.796 22.957c8.39-2.176 4.758-6.702 4.661-11.42-.233-11.304-7.108-16.897-7.108-16.897s-4.212-13.75-9.789-13.75\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.716 124.225s.855 11.264 9.828 6.486c4.765-2.536 7.581-13.828 9.789-22.568 1.456-5.768 2.58-12.197 2.58-12.197l-4.973-1.709s-2.408 5.516-7.769 12.275c-4.335 5.467-9.144 11.11-9.455 17.713\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.463 105.191s1.747 2.724-2.331 30.535c2.376 2.216 1.053 6.012-.233 7.51\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.262 131.527s-.427 2.732-11.77 1.981c-15.187-1.006-25.326-3.25-25.326-3.25l.933-5.8s.723.215 9.71-.068c11.887-.373 18.714-6.07 24.964-1.022 4.039 3.263 1.489 8.16 1.489 8.16\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.24 90.974s-5.593-4.739-11.054 2.68c-3.318 7.223.517 15.284 2.664 19.578-.31 3.729 2.33 4.311 2.33 4.311s.108.895 1.516 2.68c4.078-7.03 6.72-9.166 13.711-12.546-.328-.656-1.877-3.265-1.825-3.767.175-1.69-1.282-2.623-1.282-2.623s-.286-.156-1.165-2.738c-.788-2.313-2.036-5.177-4.895-7.575\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.232 288.027s4.855 2.308 8.313 1.155c3.188-1.063 5.12.755 8.002 1.331 2.881.577 7.769 1.243 13.207-1.424-.117-6.228-7.786-4.499-13.518-7.588-2.895-1.56-4.276-5.336-4.066-9.944H91.544s-1.573 11.89-1.312 16.47\",\n fill: \"#CBD1D1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.207 287.833s2.745 1.437 7.639.738c3.456-.494 3.223.66 7.418 1.282 4.195.621 13.092-.194 14.334-1.126.466 1.242-.388 2.33-.388 2.33s-1.709.682-5.438.932c-2.295.154-8.098.276-10.14-.621-2.02-1.554-4.894-1.515-6.06-.234-4.427 1.075-7.184-.31-7.184-.31l-.181-2.991z\",\n fill: \"#2B0849\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.429 272.257h3.496s-.117 7.574 5.127 9.671c-5.244.7-9.672-2.602-8.623-9.671\",\n fill: \"#A4AABA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.425 272.046s-2.208 7.774-4.702 12.899c-1.884 3.874-4.428 7.854 5.729 7.854 6.97 0 9.385-.503 7.782-6.917-1.604-6.415.279-13.836.279-13.836h-9.088z\",\n fill: \"#CBD1D1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.066 290.277s2.198 1.225 6.954 1.225c6.376 0 8.646-1.73 8.646-1.73s.63 1.168-.649 2.27c-1.04.897-3.77 1.668-7.745 1.621-4.347-.05-6.115-.593-7.062-1.224-.864-.577-.72-1.657-.144-2.162\",\n fill: \"#2B0849\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.344 274.041s.035 1.592-.329 3.07c-.365 1.49-1.13 3.255-1.184 4.34-.061 1.206 4.755 1.657 5.403.036.65-1.622 1.357-6.737 2.006-7.602.648-.865-5.14-2.222-5.896.156\",\n fill: \"#A4AABA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.476 277.57l13.899.095s1.349-56.643 1.925-66.909c.576-10.267 3.923-45.052 1.042-65.585l-13.037-.669-23.737.81s-.452 4.12-1.243 10.365c-.065.515-.708.874-.777 1.417-.078.608.439 1.407.332 2.044-2.455 14.627-5.797 32.736-8.256 46.837-.121.693-1.282 1.048-1.515 2.796-.042.314.22 1.584.116 1.865-7.14 19.473-12.202 52.601-15.66 67.19l15.176-.015s2.282-10.145 4.185-18.871c2.922-13.389 24.012-88.32 24.012-88.32l3.133-.954-.158 48.568s-.233 1.282.35 2.098c.583.815-.581 1.167-.408 2.331l.408 1.864s-.466 7.458-.932 12.352c-.467 4.895 1.145 40.69 1.145 40.69\",\n fill: \"#7BB2F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.57 218.881c1.197.099 4.195-2.097 7.225-5.127M96.024 222.534s2.881-1.152 6.34-4.034\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.973 219.373s2.882-1.153 6.34-4.034\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.032\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.172 222.144s2.724-.614 6.759-3.496M74.903 146.166c-.281 3.226.31 8.856-4.506 9.478M93.182 144.344s.115 14.557-1.344 15.65c-2.305 1.73-3.107 2.02-3.107 2.02M89.197 144.923s.269 13.144-1.01 25.088M83.525 170.71s6.81-1.051 9.116-1.051M46.026 270.045l-.892 4.538M46.937 263.289l-.815 4.157M62.725 202.503c-.33 1.618-.102 1.904-.449 3.438 0 0-2.756 1.903-2.29 3.923.466 2.02-.31 3.424-4.505 17.252-1.762 5.807-4.233 18.922-6.165 28.278-.03.144-.521 2.646-1.14 5.8M64.158 194.136c-.295 1.658-.6 3.31-.917 4.938M71.33 146.787l-1.244 10.877s-1.14.155-.519 2.33c.117 1.399-2.778 16.39-5.382 31.615M44.242 273.727H58.07\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.18 142.117c-3.028-.489-18.825-2.744-36.219.2a.625.625 0 0 0-.518.644c.063 1.307.044 2.343.015 2.995a.617.617 0 0 0 .716.636c3.303-.534 17.037-2.412 35.664-.266.347.04.66-.214.692-.56.124-1.347.16-2.425.17-3.029a.616.616 0 0 0-.52-.62\",\n fill: \"#192064\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.398 145.264l.003-5.102a.843.843 0 0 0-.809-.847 114.104 114.104 0 0 0-8.141-.014.85.85 0 0 0-.82.847l-.003 5.097c0 .476.388.857.864.845 2.478-.064 5.166-.067 8.03.017a.848.848 0 0 0 .876-.843\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M95.239 144.296l.002-3.195a.667.667 0 0 0-.643-.672c-1.9-.061-3.941-.073-6.094-.01a.675.675 0 0 0-.654.672l-.002 3.192c0 .376.305.677.68.669 1.859-.042 3.874-.043 6.02.012.376.01.69-.291.691-.668\",\n fill: \"#192064\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.102 273.522h12.819M91.216 269.761c.006 3.519-.072 5.55 0 6.292M90.923 263.474c-.009 1.599-.016 2.558-.016 4.505M90.44 170.404l.932 46.38s.7 1.631-.233 2.796c-.932 1.166 2.564.7.932 2.33-1.63 1.633.933 1.166 0 3.497-.618 1.546-1.031 21.921-1.138 36.513\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.736 98.665l2.214 4.312s2.098.816 1.865 2.68l.816 2.214M64.297 116.611c.233-.932 2.176-7.147 12.585-10.488M77.598 90.042s7.691 6.137 16.547 2.72\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.974 86.954s5.476-.816 7.574-4.545c1.297-.345.72 2.212-.33 3.671-.7.971-1.01 1.554-1.01 1.554s.194.31.155.816c-.053.697-.175.653-.272 1.048-.081.335.108.657 0 1.049-.046.17-.198.5-.382.878-.12.249-.072.687-.2.948-.231.469-1.562 1.87-2.622 2.855-3.826 3.554-5.018 1.644-6.001-.408-.894-1.865-.661-5.127-.874-6.875-.35-2.914-2.622-3.03-1.923-4.429.343-.685 2.87.69 3.263 1.748.757 2.04 2.952 1.807 2.622 1.69\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.8 82.429c-.465.077-.35.272-.97 1.243-.622.971-4.817 2.932-6.39 3.224-2.589.48-2.278-1.56-4.254-2.855-1.69-1.107-3.562-.638-1.398 1.398.99.932.932 1.107 1.398 3.205.335 1.506-.64 3.67.7 5.593\",\n stroke: \"#DB836E\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.543 108.673c-2.1 2.926-4.266 6.175-5.557 8.762\",\n stroke: \"#E59788\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.72 124.768s-2.098-1.942-5.127-2.719c-3.03-.777-3.574-.155-5.516.078-1.942.233-3.885-.932-3.652.7.233 1.63 5.05 1.01 5.206 2.097.155 1.087-6.37 2.796-8.313 2.175-.777.777.466 1.864 2.02 2.175.233 1.554 2.253 1.554 2.253 1.554s.699 1.01 2.641 1.088c2.486 1.32 8.934-.7 10.954-1.554 2.02-.855-.466-5.594-.466-5.594\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.425 122.826s.66 1.127 3.167 1.418c2.315.27 2.563.583 2.563.583s-2.545 2.894-9.07 2.272M72.416 129.274s3.826.097 4.933-.718M74.98 130.75s1.961.136 3.36-.505M77.232 131.916s1.748.019 2.914-.505M73.328 122.321s-.595-1.032 1.262-.427c1.671.544 2.833.055 5.128.155 1.389.061 3.067-.297 3.982.15 1.606.784 3.632 2.181 3.632 2.181s10.526 1.204 19.033-1.127M78.864 108.104s-8.39 2.758-13.168 12.12\",\n stroke: \"#E59788\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.278 112.533s3.38-3.613 7.575-4.662\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.375 123.006s9.697-2.745 11.445-.88\",\n stroke: \"#E59788\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M194.605 83.656l3.971-3.886M187.166 90.933l3.736-3.655M191.752 84.207l-4.462-4.56M198.453 91.057l-4.133-4.225M129.256 163.074l3.718-3.718M122.291 170.039l3.498-3.498M126.561 163.626l-4.27-4.27M132.975 170.039l-3.955-3.955\",\n stroke: \"#BFCDDD\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M190.156 211.779h-1.604a4.023 4.023 0 0 1-4.011-4.011V175.68a4.023 4.023 0 0 1 4.01-4.01h1.605a4.023 4.023 0 0 1 4.011 4.01v32.088a4.023 4.023 0 0 1-4.01 4.01\",\n fill: \"#A3B4C6\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M237.824 212.977a4.813 4.813 0 0 1-4.813 4.813h-86.636a4.813 4.813 0 0 1 0-9.626h86.636a4.813 4.813 0 0 1 4.813 4.813\",\n fill: \"#A3B4C6\"\n }), /*#__PURE__*/React.createElement(\"mask\", {\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A3B4C6\",\n mask: \"url(#d)\",\n d: \"M154.098 190.096h70.513v-84.617h-70.513z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.928 190.096H153.78a3.219 3.219 0 0 1-3.208-3.209V167.92a3.219 3.219 0 0 1 3.208-3.21h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.219 3.219 0 0 1-3.21 3.209M224.928 130.832H153.78a3.218 3.218 0 0 1-3.208-3.208v-18.968a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.218 3.218 0 0 1-3.21 3.208\",\n fill: \"#BFCDDD\",\n mask: \"url(#d)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.563 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 120.546h-22.461a.802.802 0 0 1-.802-.802v-3.208c0-.443.359-.803.802-.803h22.46c.444 0 .803.36.803.803v3.208c0 .443-.36.802-.802.802\",\n fill: \"#FFF\",\n mask: \"url(#d)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.928 160.464H153.78a3.218 3.218 0 0 1-3.208-3.209v-18.967a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.209v18.967a3.218 3.218 0 0 1-3.21 3.209\",\n fill: \"#BFCDDD\",\n mask: \"url(#d)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.455 130.832h49.301M164.984 130.832h6.089M155.952 130.832h6.75M173.837 160.613h49.3M165.365 160.613h6.089M155.57 160.613h6.751\",\n stroke: \"#7C90A5\",\n strokeWidth: \"1.124\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n mask: \"url(#d)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.563 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M166.98 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M174.397 151.038a2.407 2.407 0 1 1 .001-4.814 2.407 2.407 0 0 1 0 4.814M222.539 151.038h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802M159.563 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 179.987h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802\",\n fill: \"#FFF\",\n mask: \"url(#d)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M203.04 221.108h-27.372a2.413 2.413 0 0 1-2.406-2.407v-11.448a2.414 2.414 0 0 1 2.406-2.407h27.372a2.414 2.414 0 0 1 2.407 2.407V218.7a2.413 2.413 0 0 1-2.407 2.407\",\n fill: \"#BFCDDD\",\n mask: \"url(#d)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M177.259 207.217v11.52M201.05 207.217v11.52\",\n stroke: \"#A3B4C6\",\n strokeWidth: \"1.124\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n mask: \"url(#d)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.873 267.894a9.422 9.422 0 0 1-9.422-9.422v-14.82a9.423 9.423 0 0 1 18.845 0v14.82a9.423 9.423 0 0 1-9.423 9.422\",\n fill: \"#5BA02E\",\n mask: \"url(#d)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M171.22 267.83a9.422 9.422 0 0 1-9.422-9.423v-3.438a9.423 9.423 0 0 1 18.845 0v3.438a9.423 9.423 0 0 1-9.422 9.423\",\n fill: \"#92C110\",\n mask: \"url(#d)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M181.31 293.666h-27.712a3.209 3.209 0 0 1-3.209-3.21V269.79a3.209 3.209 0 0 1 3.209-3.21h27.711a3.209 3.209 0 0 1 3.209 3.21v20.668a3.209 3.209 0 0 1-3.209 3.209\",\n fill: \"#F2D7AD\",\n mask: \"url(#d)\"\n })));\n};\nexport default ServerError;","import * as React from 'react';\nvar Unauthorized = function Unauthorized() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"251\",\n height: \"294\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 129.023v-2.084C0 58.364 55.591 2.774 124.165 2.774h2.085c68.574 0 124.165 55.59 124.165 124.165v2.084c0 68.575-55.59 124.166-124.165 124.166h-2.085C55.591 253.189 0 197.598 0 129.023\",\n fill: \"#E4EBF7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.417 132.92a8.231 8.231 0 1 1-16.38-1.65 8.231 8.231 0 0 1 16.38 1.65\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.652 136.36l10.425 5.91M49.989 148.505l-12.58 10.73\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.536 161.28a5.636 5.636 0 1 1-11.216-1.13 5.636 5.636 0 0 1 11.216 1.13M59.154 145.261a5.677 5.677 0 1 1-11.297-1.138 5.677 5.677 0 0 1 11.297 1.138M100.36 29.516l29.66-.013a4.562 4.562 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 0 0 .005 9.126M111.705 47.754l29.659-.013a4.563 4.563 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 1 0 .005 9.126\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.066 29.503V29.5l15.698-.007a4.563 4.563 0 1 0 .004 9.126l-15.698.007v-.002a4.562 4.562 0 0 0-.004-9.122M185.405 137.723c-.55 5.455-5.418 9.432-10.873 8.882-5.456-.55-9.432-5.418-8.882-10.873.55-5.455 5.418-9.432 10.873-8.882 5.455.55 9.432 5.418 8.882 10.873\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.17 143.772l12.572 7.129M193.841 158.42L178.67 171.36\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M185.55 171.926a6.798 6.798 0 1 1-13.528-1.363 6.798 6.798 0 0 1 13.527 1.363M204.12 155.285a6.848 6.848 0 1 1-13.627-1.375 6.848 6.848 0 0 1 13.626 1.375\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M152.988 194.074a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0zM225.931 118.217a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM217.09 153.051a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.42 0zM177.84 109.842a2.21 2.21 0 1 1-4.422 0 2.21 2.21 0 0 1 4.421 0zM196.114 94.454a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM202.844 182.523a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0z\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#FFF\",\n strokeWidth: \"2\",\n d: \"M215.125 155.262l-1.902 20.075-10.87 5.958M174.601 176.636l-6.322 9.761H156.98l-4.484 6.449M175.874 127.28V111.56M221.51 119.404l-12.77 7.859-15.228-7.86V96.668\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.68 29.32C180.68 13.128 193.806 0 210 0c16.193 0 29.32 13.127 29.32 29.32 0 16.194-13.127 29.322-29.32 29.322-16.193 0-29.32-13.128-29.32-29.321\",\n fill: \"#A26EF4\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M221.45 41.706l-21.563-.125a1.744 1.744 0 0 1-1.734-1.754l.071-12.23a1.744 1.744 0 0 1 1.754-1.734l21.562.125c.964.006 1.74.791 1.735 1.755l-.071 12.229a1.744 1.744 0 0 1-1.754 1.734\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M215.106 29.192c-.015 2.577-2.049 4.654-4.543 4.64-2.494-.014-4.504-2.115-4.489-4.693l.04-6.925c.016-2.577 2.05-4.654 4.543-4.64 2.494.015 4.504 2.116 4.49 4.693l-.04 6.925zm-4.53-14.074a6.877 6.877 0 0 0-6.916 6.837l-.043 7.368a6.877 6.877 0 0 0 13.754.08l.042-7.368a6.878 6.878 0 0 0-6.837-6.917zM167.566 68.367h-3.93a4.73 4.73 0 0 1-4.717-4.717 4.73 4.73 0 0 1 4.717-4.717h3.93a4.73 4.73 0 0 1 4.717 4.717 4.73 4.73 0 0 1-4.717 4.717\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.214 248.838a6.611 6.611 0 0 1-6.61-6.611v-66.108a6.611 6.611 0 0 1 13.221 0v66.108a6.611 6.611 0 0 1-6.61 6.61\",\n fill: \"#5BA02E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.147 248.176a6.611 6.611 0 0 1-6.61-6.61v-33.054a6.611 6.611 0 1 1 13.221 0v33.053a6.611 6.611 0 0 1-6.61 6.611\",\n fill: \"#92C110\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M185.994 293.89h-27.376a3.17 3.17 0 0 1-3.17-3.17v-45.887a3.17 3.17 0 0 1 3.17-3.17h27.376a3.17 3.17 0 0 1 3.17 3.17v45.886a3.17 3.17 0 0 1-3.17 3.17\",\n fill: \"#F2D7AD\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.972 147.673s6.377-.927 17.566-1.28c11.729-.371 17.57 1.086 17.57 1.086s3.697-3.855.968-8.424c1.278-12.077 5.982-32.827.335-48.273-1.116-1.339-3.743-1.512-7.536-.62-1.337.315-7.147-.149-7.983-.1l-15.311-.347s-3.487-.17-8.035-.508c-1.512-.113-4.227-1.683-5.458-.338-.406.443-2.425 5.669-1.97 16.077l8.635 35.642s-3.141 3.61 1.219 7.085\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.768 73.325l-.9-6.397 11.982-6.52s7.302-.118 8.038 1.205c.737 1.324-5.616.993-5.616.993s-1.836 1.388-2.615 2.5c-1.654 2.363-.986 6.471-8.318 5.986-1.708.284-2.57 2.233-2.57 2.233\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.44 77.672s14.217 9.406 24.973 14.444c1.061.497-2.094 16.183-11.892 11.811-7.436-3.318-20.162-8.44-21.482-14.496-.71-3.258 2.543-7.643 8.401-11.76M141.862 80.113s-6.693 2.999-13.844 6.876c-3.894 2.11-10.137 4.704-12.33 7.988-6.224 9.314 3.536 11.22 12.947 7.503 6.71-2.651 28.999-12.127 13.227-22.367\",\n fill: \"#FFB594\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.166 66.36l3.06 3.881s-2.783 2.67-6.31 5.747c-7.103 6.195-12.803 14.296-15.995 16.44-3.966 2.662-9.754 3.314-12.177-.118-3.553-5.032.464-14.628 31.422-25.95\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.674 85.116s-2.34 8.413-8.912 14.447c.652.548 18.586 10.51 22.144 10.056 5.238-.669 6.417-18.968 1.145-20.531-.702-.208-5.901-1.286-8.853-2.167-.87-.26-1.611-1.71-3.545-.936l-1.98-.869zM128.362 85.826s5.318 1.956 7.325 13.734c-.546.274-17.55 12.35-21.829 7.805-6.534-6.94-.766-17.393 4.275-18.61 4.646-1.121 5.03-1.37 10.23-2.929\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.18 94.656s.911 7.41-4.914 13.078\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.397 94.68s3.124 2.572 10.263 2.572c7.14 0 9.074-3.437 9.074-3.437\",\n stroke: \"#E4EBF7\",\n strokeWidth: \".932\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.184 68.639l-6.781-6.177s-5.355-4.314-9.223-.893c-3.867 3.422 4.463 2.083 5.653 4.165 1.19 2.082.848 1.143-2.083.446-5.603-1.331-2.082.893 2.975 5.355 2.091 1.845 6.992.955 6.992.955l2.467-3.851z\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.282 91.315l-.297-10.937-15.918-.027-.53 10.45c-.026.403.17.788.515.999 2.049 1.251 9.387 5.093 15.799.424.287-.21.443-.554.431-.91\",\n fill: \"#FFB594\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.573 74.24c.817-1.147.982-9.118 1.015-11.928a1.046 1.046 0 0 0-.965-1.055l-4.62-.365c-7.71-1.044-17.071.624-18.253 6.346-5.482 5.813-.421 13.244-.421 13.244s1.963 3.566 4.305 6.791c.756 1.041.398-3.731 3.04-5.929 5.524-4.594 15.899-7.103 15.899-7.103\",\n fill: \"#5C2552\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.426 83.206s2.685 6.202 11.602 6.522c7.82.28 8.973-7.008 7.434-17.505l-.909-5.483c-6.118-2.897-15.478.54-15.478.54s-.576 2.044-.19 5.504c-2.276 2.066-1.824 5.618-1.824 5.618s-.905-1.922-1.98-2.321c-.86-.32-1.897.089-2.322 1.98-1.04 4.632 3.667 5.145 3.667 5.145\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeWidth: \"1.145\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M100.843 77.099l1.701-.928-1.015-4.324.674-1.406\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.546 74.092c-.022.713-.452 1.279-.96 1.263-.51-.016-.904-.607-.882-1.32.021-.713.452-1.278.96-1.263.51.016.904.607.882 1.32M97.592 74.349c-.022.713-.452 1.278-.961 1.263-.509-.016-.904-.607-.882-1.32.022-.713.452-1.279.961-1.263.51.016.904.606.882 1.32\",\n fill: \"#552950\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.132 86.786s5.269 4.957 12.679 2.327\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.145\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.776 81.903s-3.592.232-1.44-2.79c1.59-1.496 4.897-.46 4.897-.46s1.156 3.906-3.457 3.25\",\n fill: \"#DB836E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.88 70.6s2.483.84 3.402.715M93.883 71.975s2.492-1.144 4.778-1.073\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.526\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.32 77.374s.961.879 1.458 2.106c-.377.48-1.033 1.152-.236 1.809M99.337 83.719s1.911.151 2.509-.254\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.145\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.782 115.821l15.73-3.012M100.165 115.821l10.04-2.008\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.508 86.763s-1.598 8.83-6.697 14.078\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.114\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.31 87.934s3.013 4.121 4.06 11.785\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.09 84.816s-6.03 9.912-13.607 9.903\",\n stroke: \"#DB836E\",\n strokeWidth: \".795\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.366 65.909l-.142 5.32s5.993 4.472 11.945 9.202c4.482 3.562 8.888 7.455 10.985 8.662 4.804 2.766 8.9 3.355 11.076 1.808 4.071-2.894 4.373-9.878-8.136-15.263-4.271-1.838-16.144-6.36-25.728-9.73\",\n fill: \"#FFC6A0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M130.532 85.488s4.588 5.757 11.619 6.214\",\n stroke: \"#DB836E\",\n strokeWidth: \".75\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.708 105.73s-.393 8.564-1.34 13.612\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M115.784 161.512s-3.57-1.488-2.678-7.14\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.52 290.246s4.326 2.057 7.408 1.03c2.842-.948 4.564.673 7.132 1.186 2.57.514 6.925 1.108 11.772-1.269-.104-5.551-6.939-4.01-12.048-6.763-2.582-1.39-3.812-4.757-3.625-8.863h-9.471s-1.402 10.596-1.169 14.68\",\n fill: \"#CBD1D1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.496 290.073s2.447 1.281 6.809.658c3.081-.44 3.74.485 7.479 1.039 3.739.554 10.802-.07 11.91-.9.415 1.108-.347 2.077-.347 2.077s-1.523.608-4.847.831c-2.045.137-5.843.293-7.663-.507-1.8-1.385-5.286-1.917-5.77-.243-3.947.958-7.41-.288-7.41-.288l-.16-2.667z\",\n fill: \"#2B0849\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.824 276.19h3.116s-.103 6.751 4.57 8.62c-4.673.624-8.62-2.32-7.686-8.62\",\n fill: \"#A4AABA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.65 272.52s-2.122 7.47-4.518 12.396c-1.811 3.724-4.255 7.548 5.505 7.548 6.698 0 9.02-.483 7.479-6.648-1.541-6.164.268-13.296.268-13.296H57.65z\",\n fill: \"#CBD1D1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.54 290.04s2.111 1.178 6.682 1.178c6.128 0 8.31-1.662 8.31-1.662s.605 1.122-.624 2.18c-1 .862-3.624 1.603-7.444 1.559-4.177-.049-5.876-.57-6.786-1.177-.831-.554-.692-1.593-.138-2.078\",\n fill: \"#2B0849\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.533 274.438s.034 1.529-.315 2.95c-.352 1.431-1.087 3.127-1.139 4.17-.058 1.16 4.57 1.592 5.194.035.623-1.559 1.303-6.475 1.927-7.306.622-.831-4.94-2.135-5.667.15\",\n fill: \"#A4AABA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.885 277.015l13.306.092s1.291-54.228 1.843-64.056c.552-9.828 3.756-43.13.997-62.788l-12.48-.64-22.725.776s-.433 3.944-1.19 9.921c-.062.493-.677.838-.744 1.358-.075.582.42 1.347.318 1.956-2.35 14.003-6.343 32.926-8.697 46.425-.116.663-1.227 1.004-1.45 2.677-.04.3.21 1.516.112 1.785-6.836 18.643-10.89 47.584-14.2 61.551l14.528-.014s2.185-8.524 4.008-16.878c2.796-12.817 22.987-84.553 22.987-84.553l3-.517 1.037 46.1s-.223 1.228.334 2.008c.558.782-.556 1.117-.39 2.233l.39 1.784s-.446 7.14-.892 11.826c-.446 4.685-.092 38.954-.092 38.954\",\n fill: \"#7BB2F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.438 220.434c1.146.094 4.016-2.008 6.916-4.91M107.55 223.931s2.758-1.103 6.069-3.862\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.459 220.905s2.759-1.104 6.07-3.863\",\n stroke: \"#648BD8\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.099 223.557s2.608-.587 6.47-3.346M87.33 150.82c-.27 3.088.297 8.478-4.315 9.073M104.829 149.075s.11 13.936-1.286 14.983c-2.207 1.655-2.975 1.934-2.975 1.934M101.014 149.63s.035 12.81-1.19 24.245M94.93 174.965s7.174-1.655 9.38-1.655M75.671 204.754c-.316 1.55-.64 3.067-.973 4.535 0 0-1.45 1.822-1.003 3.756.446 1.934-.943 2.034-4.96 15.273-1.686 5.559-4.464 18.49-6.313 27.447-.078.38-4.018 18.06-4.093 18.423M77.043 196.743a313.269 313.269 0 0 1-.877 4.729M83.908 151.414l-1.19 10.413s-1.091.148-.496 2.23c.111 1.34-2.66 15.692-5.153 30.267M57.58 272.94h13.238\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.377 147.423s-16.955-3.087-35.7.199c.157 2.501-.002 4.128-.002 4.128s14.607-2.802 35.476-.31c.251-2.342.226-4.017.226-4.017\",\n fill: \"#192064\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.511 150.353l.004-4.885a.807.807 0 0 0-.774-.81c-2.428-.092-5.04-.108-7.795-.014a.814.814 0 0 0-.784.81l-.003 4.88c0 .456.371.82.827.808a140.76 140.76 0 0 1 7.688.017.81.81 0 0 0 .837-.806\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.402 149.426l.002-3.06a.64.64 0 0 0-.616-.643 94.135 94.135 0 0 0-5.834-.009.647.647 0 0 0-.626.643l-.001 3.056c0 .36.291.648.651.64 1.78-.04 3.708-.041 5.762.012.36.009.662-.279.662-.64\",\n fill: \"#192064\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.485 273.933h12.272M102.652 269.075c.006 3.368.04 5.759.11 6.47M102.667 263.125c-.009 1.53-.015 2.98-.016 4.313M102.204 174.024l.893 44.402s.669 1.561-.224 2.677c-.892 1.116 2.455.67.893 2.231-1.562 1.562.893 1.116 0 3.347-.592 1.48-.988 20.987-1.09 34.956\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n};\nexport default Unauthorized;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport WarningFilled from \"@ant-design/icons/es/icons/WarningFilled\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nimport noFound from './noFound';\nimport serverError from './serverError';\nimport unauthorized from './unauthorized';\nexport var IconMap = {\n success: CheckCircleFilled,\n error: CloseCircleFilled,\n info: ExclamationCircleFilled,\n warning: WarningFilled\n};\nexport var ExceptionMap = {\n '404': noFound,\n '500': serverError,\n '403': unauthorized\n};\n// ExceptionImageMap keys\nvar ExceptionStatus = Object.keys(ExceptionMap);\nvar Icon = function Icon(_ref) {\n var prefixCls = _ref.prefixCls,\n icon = _ref.icon,\n status = _ref.status;\n var className = classNames(\"\".concat(prefixCls, \"-icon\"));\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Result', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\")) : void 0;\n if (ExceptionStatus.includes(\"\".concat(status))) {\n var SVGComponent = ExceptionMap[status];\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(className, \" \").concat(prefixCls, \"-image\")\n }, /*#__PURE__*/React.createElement(SVGComponent, null));\n }\n var iconNode = /*#__PURE__*/React.createElement(IconMap[status]);\n if (icon === null || icon === false) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, icon || iconNode);\n};\nvar Extra = function Extra(_ref2) {\n var prefixCls = _ref2.prefixCls,\n extra = _ref2.extra;\n if (!extra) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra);\n};\nvar Result = function Result(_ref3) {\n var customizePrefixCls = _ref3.prefixCls,\n customizeClassName = _ref3.className,\n subTitle = _ref3.subTitle,\n title = _ref3.title,\n style = _ref3.style,\n children = _ref3.children,\n _ref3$status = _ref3.status,\n status = _ref3$status === void 0 ? 'info' : _ref3$status,\n icon = _ref3.icon,\n extra = _ref3.extra;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('result', customizePrefixCls);\n var className = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(status), customizeClassName, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, /*#__PURE__*/React.createElement(Icon, {\n prefixCls: prefixCls,\n status: status,\n icon: icon\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, title), subTitle && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-subtitle\")\n }, subTitle), /*#__PURE__*/React.createElement(Extra, {\n prefixCls: prefixCls,\n extra: extra\n }), children && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children));\n};\nResult.PRESENTED_IMAGE_403 = ExceptionMap['403'];\nResult.PRESENTED_IMAGE_404 = ExceptionMap['404'];\nResult.PRESENTED_IMAGE_500 = ExceptionMap['500'];\nexport default Result;","import { Row } from '../grid';\nexport default Row;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// TODO: 4.0 - codemod should help to change `filterOption` to support node props.\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcSelect, { OptGroup, Option } from 'rc-select';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport defaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext } from '../form/context';\nimport { getTransitionDirection, getTransitionName } from '../_util/motion';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport getIcons from './utils/iconUtil';\nimport warning from '../_util/warning';\nimport { useCompactItemContext } from '../space/Compact';\nvar SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nvar InternalSelect = function InternalSelect(_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? true : _a$bordered,\n className = _a.className,\n getPopupContainer = _a.getPopupContainer,\n dropdownClassName = _a.dropdownClassName,\n popupClassName = _a.popupClassName,\n _a$listHeight = _a.listHeight,\n listHeight = _a$listHeight === void 0 ? 256 : _a$listHeight,\n placement = _a.placement,\n _a$listItemHeight = _a.listItemHeight,\n listItemHeight = _a$listItemHeight === void 0 ? 24 : _a$listItemHeight,\n customizeSize = _a.size,\n customDisabled = _a.disabled,\n notFoundContent = _a.notFoundContent,\n customStatus = _a.status,\n showArrow = _a.showArrow,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"className\", \"getPopupContainer\", \"dropdownClassName\", \"popupClassName\", \"listHeight\", \"placement\", \"listItemHeight\", \"size\", \"disabled\", \"notFoundContent\", \"status\", \"showArrow\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction,\n virtual = _React$useContext.virtual,\n dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth;\n var size = React.useContext(SizeContext);\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var mode = React.useMemo(function () {\n var m = props.mode;\n if (m === 'combobox') {\n return undefined;\n }\n if (m === SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n return 'combobox';\n }\n return m;\n }, [props.mode]);\n var isMultiple = mode === 'multiple' || mode === 'tags';\n var mergedShowArrow = showArrow !== undefined ? showArrow : props.loading || !(isMultiple || mode === 'combobox');\n // =================== Warning =====================\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'Select', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.') : void 0;\n // ===================== Form Status =====================\n var _useContext = useContext(FormItemInputContext),\n contextStatus = _useContext.status,\n hasFeedback = _useContext.hasFeedback,\n isFormItemInput = _useContext.isFormItemInput,\n feedbackIcon = _useContext.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Empty =====================\n var mergedNotFound;\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else if (mode === 'combobox') {\n mergedNotFound = null;\n } else {\n mergedNotFound = (renderEmpty || defaultRenderEmpty)('Select');\n }\n // ===================== Icons =====================\n var _getIcons = getIcons(_extends(_extends({}, props), {\n multiple: isMultiple,\n hasFeedback: hasFeedback,\n feedbackIcon: feedbackIcon,\n showArrow: mergedShowArrow,\n prefixCls: prefixCls\n })),\n suffixIcon = _getIcons.suffixIcon,\n itemIcon = _getIcons.itemIcon,\n removeIcon = _getIcons.removeIcon,\n clearIcon = _getIcons.clearIcon;\n var selectProps = omit(props, ['suffixIcon', 'itemIcon']);\n var rcSelectRtlDropdownClassName = classNames(popupClassName || dropdownClassName, _defineProperty({}, \"\".concat(prefixCls, \"-dropdown-\").concat(direction), direction === 'rtl'));\n var mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var mergedClassName = classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-borderless\"), !bordered), \"\".concat(prefixCls, \"-in-form-item\"), isFormItemInput), getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, className);\n // ===================== Placement =====================\n var getPlacement = function getPlacement() {\n if (placement !== undefined) {\n return placement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n return /*#__PURE__*/React.createElement(RcSelect, _extends({\n ref: ref,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }, selectProps, {\n transitionName: getTransitionName(rootPrefixCls, getTransitionDirection(placement), props.transitionName),\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n mode: mode,\n prefixCls: prefixCls,\n placement: getPlacement(),\n direction: direction,\n inputIcon: suffixIcon,\n menuItemSelectedIcon: itemIcon,\n removeIcon: removeIcon,\n clearIcon: clearIcon,\n notFoundContent: mergedNotFound,\n className: mergedClassName,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n dropdownClassName: rcSelectRtlDropdownClassName,\n showArrow: hasFeedback || showArrow,\n disabled: mergedDisabled\n }));\n};\nvar Select = /*#__PURE__*/React.forwardRef(InternalSelect);\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nexport default Select;","import CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nexport default function getIcons(_ref) {\n var suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n menuItemSelectedIcon = _ref.menuItemSelectedIcon,\n removeIcon = _ref.removeIcon,\n loading = _ref.loading,\n multiple = _ref.multiple,\n hasFeedback = _ref.hasFeedback,\n prefixCls = _ref.prefixCls,\n showArrow = _ref.showArrow,\n feedbackIcon = _ref.feedbackIcon;\n // Clear Icon\n var mergedClearIcon = clearIcon !== null && clearIcon !== void 0 ? clearIcon : /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n // Validation Feedback Icon\n var getSuffixIconNode = function getSuffixIconNode(arrowIcon) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, showArrow !== false && arrowIcon, hasFeedback && feedbackIcon);\n };\n // Arrow item icon\n var mergedSuffixIcon = null;\n if (suffixIcon !== undefined) {\n mergedSuffixIcon = getSuffixIconNode(suffixIcon);\n } else if (loading) {\n mergedSuffixIcon = getSuffixIconNode( /*#__PURE__*/React.createElement(LoadingOutlined, {\n spin: true\n }));\n } else {\n var iconCls = \"\".concat(prefixCls, \"-suffix\");\n mergedSuffixIcon = function mergedSuffixIcon(_ref2) {\n var open = _ref2.open,\n showSearch = _ref2.showSearch;\n if (open && showSearch) {\n return getSuffixIconNode( /*#__PURE__*/React.createElement(SearchOutlined, {\n className: iconCls\n }));\n }\n return getSuffixIconNode( /*#__PURE__*/React.createElement(DownOutlined, {\n className: iconCls\n }));\n };\n }\n // Checked item icon\n var mergedItemIcon = null;\n if (menuItemSelectedIcon !== undefined) {\n mergedItemIcon = menuItemSelectedIcon;\n } else if (multiple) {\n mergedItemIcon = /*#__PURE__*/React.createElement(CheckOutlined, null);\n } else {\n mergedItemIcon = null;\n }\n var mergedRemoveIcon = null;\n if (removeIcon !== undefined) {\n mergedRemoveIcon = removeIcon;\n } else {\n mergedRemoveIcon = /*#__PURE__*/React.createElement(CloseOutlined, null);\n }\n return {\n clearIcon: mergedClearIcon,\n suffixIcon: mergedSuffixIcon,\n itemIcon: mergedItemIcon,\n removeIcon: mergedRemoveIcon\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nexport var SpaceCompactItemContext = /*#__PURE__*/React.createContext(null);\nexport var useCompactItemContext = function useCompactItemContext(prefixCls, direction) {\n var compactItemContext = React.useContext(SpaceCompactItemContext);\n var compactItemClassnames = React.useMemo(function () {\n if (!compactItemContext) return '';\n var compactDirection = compactItemContext.compactDirection,\n isFirstItem = compactItemContext.isFirstItem,\n isLastItem = compactItemContext.isLastItem;\n var separator = compactDirection === 'vertical' ? '-vertical-' : '-';\n return classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-compact\").concat(separator, \"item\"), true), \"\".concat(prefixCls, \"-compact\").concat(separator, \"first-item\"), isFirstItem), \"\".concat(prefixCls, \"-compact\").concat(separator, \"last-item\"), isLastItem), \"\".concat(prefixCls, \"-compact\").concat(separator, \"item-rtl\"), direction === 'rtl'));\n }, [prefixCls, direction, compactItemContext]);\n return {\n compactSize: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize,\n compactDirection: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection,\n compactItemClassnames: compactItemClassnames\n };\n};\nexport var NoCompactStyle = function NoCompactStyle(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: null\n }, children);\n};\nvar CompactItem = function CompactItem(_a) {\n var children = _a.children,\n otherProps = __rest(_a, [\"children\"]);\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: otherProps\n }, children);\n};\nvar Compact = function Compact(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n directionConfig = _React$useContext.direction;\n var _props$size = props.size,\n size = _props$size === void 0 ? 'middle' : _props$size,\n direction = props.direction,\n block = props.block,\n customizePrefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n restProps = __rest(props, [\"size\", \"direction\", \"block\", \"prefixCls\", \"className\", \"children\"]);\n var prefixCls = getPrefixCls('space-compact', customizePrefixCls);\n var clx = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), directionConfig === 'rtl'), \"\".concat(prefixCls, \"-block\"), block), \"\".concat(prefixCls, \"-vertical\"), direction === 'vertical'), className);\n var compactItemContext = React.useContext(SpaceCompactItemContext);\n var childNodes = toArray(children);\n var nodes = React.useMemo(function () {\n return childNodes.map(function (child, i) {\n var key = child && child.key || \"\".concat(prefixCls, \"-item-\").concat(i);\n return /*#__PURE__*/React.createElement(CompactItem, {\n key: key,\n compactSize: size,\n compactDirection: direction,\n isFirstItem: i === 0 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)),\n isLastItem: i === childNodes.length - 1 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem))\n }, child);\n });\n }, [size, childNodes, compactItemContext]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clx\n }, restProps), nodes);\n};\nexport default Compact;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { SpaceContext } from '.';\nexport default function Item(_ref) {\n var className = _ref.className,\n direction = _ref.direction,\n index = _ref.index,\n marginDirection = _ref.marginDirection,\n children = _ref.children,\n split = _ref.split,\n wrap = _ref.wrap;\n var _React$useContext = React.useContext(SpaceContext),\n horizontalSize = _React$useContext.horizontalSize,\n verticalSize = _React$useContext.verticalSize,\n latestIndex = _React$useContext.latestIndex,\n supportFlexGap = _React$useContext.supportFlexGap;\n var style = {};\n if (!supportFlexGap) {\n if (direction === 'vertical') {\n if (index < latestIndex) {\n style = {\n marginBottom: horizontalSize / (split ? 2 : 1)\n };\n }\n } else {\n style = _extends(_extends({}, index < latestIndex && _defineProperty({}, marginDirection, horizontalSize / (split ? 2 : 1))), wrap && {\n paddingBottom: verticalSize\n });\n }\n }\n if (children === null || children === undefined) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, children), index < latestIndex && split && ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(className, \"-split\"),\n style: style\n }, split)));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport Item from './Item';\nimport Compact from './Compact';\nexport var SpaceContext = /*#__PURE__*/React.createContext({\n latestIndex: 0,\n horizontalSize: 0,\n verticalSize: 0,\n supportFlexGap: false\n});\nvar spaceSize = {\n small: 8,\n middle: 16,\n large: 24\n};\nfunction getNumberSize(size) {\n return typeof size === 'string' ? spaceSize[size] : size || 0;\n}\nvar Space = function Space(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n space = _React$useContext.space,\n directionConfig = _React$useContext.direction;\n var _props$size = props.size,\n size = _props$size === void 0 ? (space === null || space === void 0 ? void 0 : space.size) || 'small' : _props$size,\n align = props.align,\n className = props.className,\n children = props.children,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'horizontal' : _props$direction,\n customizePrefixCls = props.prefixCls,\n split = props.split,\n style = props.style,\n _props$wrap = props.wrap,\n wrap = _props$wrap === void 0 ? false : _props$wrap,\n otherProps = __rest(props, [\"size\", \"align\", \"className\", \"children\", \"direction\", \"prefixCls\", \"split\", \"style\", \"wrap\"]);\n var supportFlexGap = useFlexGapSupport();\n var _React$useMemo = React.useMemo(function () {\n return (Array.isArray(size) ? size : [size, size]).map(function (item) {\n return getNumberSize(item);\n });\n }, [size]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n horizontalSize = _React$useMemo2[0],\n verticalSize = _React$useMemo2[1];\n var childNodes = toArray(children, {\n keepEmpty: true\n });\n var mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;\n var prefixCls = getPrefixCls('space', customizePrefixCls);\n var cn = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(direction), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), directionConfig === 'rtl'), \"\".concat(prefixCls, \"-align-\").concat(mergedAlign), mergedAlign), className);\n var itemClassName = \"\".concat(prefixCls, \"-item\");\n var marginDirection = directionConfig === 'rtl' ? 'marginLeft' : 'marginRight';\n // Calculate latest one\n var latestIndex = 0;\n var nodes = childNodes.map(function (child, i) {\n if (child !== null && child !== undefined) {\n latestIndex = i;\n }\n var key = child && child.key || \"\".concat(itemClassName, \"-\").concat(i);\n return /*#__PURE__*/React.createElement(Item, {\n className: itemClassName,\n key: key,\n direction: direction,\n index: i,\n marginDirection: marginDirection,\n split: split,\n wrap: wrap\n }, child);\n });\n var spaceContext = React.useMemo(function () {\n return {\n horizontalSize: horizontalSize,\n verticalSize: verticalSize,\n latestIndex: latestIndex,\n supportFlexGap: supportFlexGap\n };\n }, [horizontalSize, verticalSize, latestIndex, supportFlexGap]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n var gapStyle = {};\n if (wrap) {\n gapStyle.flexWrap = 'wrap';\n // Patch for gap not support\n if (!supportFlexGap) {\n gapStyle.marginBottom = -verticalSize;\n }\n }\n if (supportFlexGap) {\n gapStyle.columnGap = horizontalSize;\n gapStyle.rowGap = verticalSize;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: cn,\n style: _extends(_extends({}, gapStyle), style)\n }, otherProps), /*#__PURE__*/React.createElement(SpaceContext.Provider, {\n value: spaceContext\n }, nodes));\n};\nvar CompoundedSpace = Space;\nCompoundedSpace.Compact = Compact;\nexport default CompoundedSpace;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigConsumer, ConfigContext } from '../config-provider';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport { tuple } from '../_util/type';\nvar SpinSizes = tuple('small', 'default', 'large');\n// Render indicator\nvar defaultIndicator = null;\nfunction renderIndicator(prefixCls, props) {\n var indicator = props.indicator;\n var dotClassName = \"\".concat(prefixCls, \"-dot\");\n // should not be render default indicator when indicator value is null\n if (indicator === null) {\n return null;\n }\n if (isValidElement(indicator)) {\n return cloneElement(indicator, {\n className: classNames(indicator.props.className, dotClassName)\n });\n }\n if (isValidElement(defaultIndicator)) {\n return cloneElement(defaultIndicator, {\n className: classNames(defaultIndicator.props.className, dotClassName)\n });\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, \"\".concat(prefixCls, \"-dot-spin\"))\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }));\n}\nfunction shouldDelay(spinning, delay) {\n return !!spinning && !!delay && !isNaN(Number(delay));\n}\nvar Spin = function Spin(props) {\n var prefixCls = props.spinPrefixCls,\n _props$spinning = props.spinning,\n customSpinning = _props$spinning === void 0 ? true : _props$spinning,\n delay = props.delay,\n className = props.className,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size,\n tip = props.tip,\n wrapperClassName = props.wrapperClassName,\n style = props.style,\n children = props.children,\n restProps = __rest(props, [\"spinPrefixCls\", \"spinning\", \"delay\", \"className\", \"size\", \"tip\", \"wrapperClassName\", \"style\", \"children\"]);\n var _React$useState = React.useState(function () {\n return customSpinning && !shouldDelay(customSpinning, delay);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n spinning = _React$useState2[0],\n setSpinning = _React$useState2[1];\n React.useEffect(function () {\n var updateSpinning = debounce(function () {\n setSpinning(customSpinning);\n }, delay);\n updateSpinning();\n return function () {\n var _a;\n (_a = updateSpinning === null || updateSpinning === void 0 ? void 0 : updateSpinning.cancel) === null || _a === void 0 ? void 0 : _a.call(updateSpinning);\n };\n }, [delay, customSpinning]);\n var isNestedPattern = function isNestedPattern() {\n return typeof children !== 'undefined';\n };\n var renderSpin = function renderSpin(_ref) {\n var direction = _ref.direction;\n var spinClassName = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-sm\"), size === 'small'), \"\".concat(prefixCls, \"-lg\"), size === 'large'), \"\".concat(prefixCls, \"-spinning\"), spinning), \"\".concat(prefixCls, \"-show-text\"), !!tip), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n // fix https://fb.me/react-unknown-prop\n var divProps = omit(restProps, ['indicator', 'prefixCls']);\n var spinElement = /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n style: style,\n className: spinClassName,\n \"aria-live\": \"polite\",\n \"aria-busy\": spinning\n }), renderIndicator(prefixCls, props), tip ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-text\")\n }, tip) : null);\n if (isNestedPattern()) {\n var containerClassName = classNames(\"\".concat(prefixCls, \"-container\"), _defineProperty({}, \"\".concat(prefixCls, \"-blur\"), spinning));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classNames(\"\".concat(prefixCls, \"-nested-loading\"), wrapperClassName)\n }), spinning && /*#__PURE__*/React.createElement(\"div\", {\n key: \"loading\"\n }, spinElement), /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n key: \"container\"\n }, children));\n }\n return spinElement;\n };\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, renderSpin);\n};\nvar SpinFC = function SpinFC(props) {\n var customizePrefixCls = props.prefixCls;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var spinPrefixCls = getPrefixCls('spin', customizePrefixCls);\n var spinClassProps = _extends(_extends({}, props), {\n spinPrefixCls: spinPrefixCls\n });\n return /*#__PURE__*/React.createElement(Spin, _extends({}, spinClassProps));\n};\nSpinFC.setDefaultIndicator = function (indicator) {\n defaultIndicator = indicator;\n};\nif (process.env.NODE_ENV !== 'production') {\n SpinFC.displayName = 'Spin';\n}\nexport default SpinFC;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar CheckableTag = function CheckableTag(_a) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n checked = _a.checked,\n onChange = _a.onChange,\n onClick = _a.onClick,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"checked\", \"onChange\", \"onClick\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var handleClick = function handleClick(e) {\n onChange === null || onChange === void 0 ? void 0 : onChange(!checked);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n var prefixCls = getPrefixCls('tag', customizePrefixCls);\n var cls = classNames(prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-checkable\"), true), \"\".concat(prefixCls, \"-checkable-checked\"), checked), className);\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, restProps, {\n className: cls,\n onClick: handleClick\n }));\n};\nexport default CheckableTag;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { PresetColorTypes, PresetStatusColorTypes } from '../_util/colors';\nimport Wave from '../_util/wave';\nimport warning from '../_util/warning';\nimport CheckableTag from './CheckableTag';\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\"));\nvar PresetStatusColorRegex = new RegExp(\"^(\".concat(PresetStatusColorTypes.join('|'), \")$\"));\nvar InternalTag = function InternalTag(_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n style = _a.style,\n children = _a.children,\n icon = _a.icon,\n color = _a.color,\n onClose = _a.onClose,\n closeIcon = _a.closeIcon,\n _a$closable = _a.closable,\n closable = _a$closable === void 0 ? false : _a$closable,\n props = __rest(_a, [\"prefixCls\", \"className\", \"style\", \"children\", \"icon\", \"color\", \"onClose\", \"closeIcon\", \"closable\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('visible' in props), 'Tag', '`visible` will be removed in next major version, please use `visible && <Tag />` instead.') : void 0;\n }\n React.useEffect(function () {\n if ('visible' in props) {\n setVisible(props.visible);\n }\n }, [props.visible]);\n var isPresetColor = function isPresetColor() {\n if (!color) {\n return false;\n }\n return PresetColorRegex.test(color) || PresetStatusColorRegex.test(color);\n };\n var tagStyle = _extends({\n backgroundColor: color && !isPresetColor() ? color : undefined\n }, style);\n var presetColor = isPresetColor();\n var prefixCls = getPrefixCls('tag', customizePrefixCls);\n var tagClassName = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(color), presetColor), \"\".concat(prefixCls, \"-has-color\"), color && !presetColor), \"\".concat(prefixCls, \"-hidden\"), !visible), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var handleCloseClick = function handleCloseClick(e) {\n e.stopPropagation();\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n if (e.defaultPrevented) {\n return;\n }\n if (!('visible' in props)) {\n setVisible(false);\n }\n };\n var renderCloseIcon = function renderCloseIcon() {\n if (closable) {\n return closeIcon ? ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-icon\"),\n onClick: handleCloseClick\n }, closeIcon)) : ( /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\"),\n onClick: handleCloseClick\n }));\n }\n return null;\n };\n var isNeedWave = 'onClick' in props || children && children.type === 'a';\n var tagProps = omit(props, ['visible']);\n var iconNode = icon || null;\n var kids = iconNode ? ( /*#__PURE__*/React.createElement(React.Fragment, null, iconNode, /*#__PURE__*/React.createElement(\"span\", null, children))) : children;\n var tagNode = /*#__PURE__*/React.createElement(\"span\", _extends({}, tagProps, {\n ref: ref,\n className: tagClassName,\n style: tagStyle\n }), kids, renderCloseIcon());\n return isNeedWave ? /*#__PURE__*/React.createElement(Wave, null, tagNode) : tagNode;\n};\nvar Tag = /*#__PURE__*/React.forwardRef(InternalTag);\nif (process.env.NODE_ENV !== 'production') {\n Tag.displayName = 'Tag';\n}\nTag.CheckableTag = CheckableTag;\nexport default Tag;","var locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { PresetColorTypes } from '../_util/colors';\nimport { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isValidElement, isFragment } from '../_util/reactNode';\nimport warning from '../_util/warning';\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n var omitted = _extends({}, obj);\n keys.forEach(function (key) {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked: picked,\n omitted: omitted\n };\n};\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\"));\n// Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n var elementType = element.type;\n if ((elementType.__ANT_BUTTON === true || element.type === 'button') && element.props.disabled || elementType.__ANT_SWITCH === true && (element.props.disabled || element.props.loading) || elementType.__ANT_RADIO === true && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n var _splitObject = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']),\n picked = _splitObject.picked,\n omitted = _splitObject.omitted;\n var spanStyle = _extends(_extends({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : undefined\n });\n var buttonStyle = _extends(_extends({}, omitted), {\n pointerEvents: 'none'\n });\n var child = cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: classNames(element.props.className, \"\".concat(prefixCls, \"-disabled-compatible-wrapper\"))\n }, child);\n }\n return element;\n}\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Tooltip', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version, please use `\").concat(newName, \"` instead.\")) : void 0;\n });\n }\n var _useMergedState = useMergedState(false, {\n value: props.open !== undefined ? props.open : props.visible,\n defaultValue: props.defaultOpen !== undefined ? props.defaultOpen : props.defaultVisible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n open = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n var isNoTitle = function isNoTitle() {\n var title = props.title,\n overlay = props.overlay;\n return !title && !overlay && title !== 0; // overlay for old version compatibility\n };\n\n var onOpenChange = function onOpenChange(vis) {\n var _a, _b;\n setOpen(isNoTitle() ? false : vis);\n if (!isNoTitle()) {\n (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n }\n };\n var getTooltipPlacements = function getTooltipPlacements() {\n var builtinPlacements = props.builtinPlacements,\n _props$arrowPointAtCe = props.arrowPointAtCenter,\n arrowPointAtCenter = _props$arrowPointAtCe === void 0 ? false : _props$arrowPointAtCe,\n _props$autoAdjustOver = props.autoAdjustOverflow,\n autoAdjustOverflow = _props$autoAdjustOver === void 0 ? true : _props$autoAdjustOver;\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: arrowPointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n };\n // 动态设置动画点\n var onPopupAlign = function onPopupAlign(domNode, align) {\n var placements = getTooltipPlacements();\n // 当前返回的位置\n var placement = Object.keys(placements).find(function (key) {\n var _a, _b;\n return placements[key].points[0] === ((_a = align.points) === null || _a === void 0 ? void 0 : _a[0]) && placements[key].points[1] === ((_b = align.points) === null || _b === void 0 ? void 0 : _b[1]);\n });\n if (!placement) {\n return;\n }\n // 根据当前坐标设置动画点\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n if (/top|Bottom/.test(placement)) {\n transformOrigin.top = \"\".concat(rect.height - align.offset[1], \"px\");\n } else if (/Top|bottom/.test(placement)) {\n transformOrigin.top = \"\".concat(-align.offset[1], \"px\");\n }\n if (/left|Right/.test(placement)) {\n transformOrigin.left = \"\".concat(rect.width - align.offset[0], \"px\");\n } else if (/right|Left/.test(placement)) {\n transformOrigin.left = \"\".concat(-align.offset[0], \"px\");\n }\n domNode.style.transformOrigin = \"\".concat(transformOrigin.left, \" \").concat(transformOrigin.top);\n };\n var getOverlay = function getOverlay() {\n var title = props.title,\n overlay = props.overlay;\n if (title === 0) {\n return title;\n }\n return overlay || title || '';\n };\n var getPopupContainer = props.getPopupContainer,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'top' : _props$placement,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.1 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\"]);\n var customizePrefixCls = props.prefixCls,\n openClassName = props.openClassName,\n getTooltipContainer = props.getTooltipContainer,\n overlayClassName = props.overlayClassName,\n color = props.color,\n overlayInnerStyle = props.overlayInnerStyle,\n children = props.children;\n var prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var tempOpen = open;\n // Hide tooltip when there is no title\n if (!('open' in props) && !('visible' in props) && isNoTitle()) {\n tempOpen = false;\n }\n var child = getDisabledCompatibleChildren(isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n var childProps = child.props;\n var childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, _defineProperty({}, openClassName || \"\".concat(prefixCls, \"-open\"), true)) : childProps.className;\n var customOverlayClassName = classNames(overlayClassName, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-\").concat(color), color && PresetColorRegex.test(color)));\n var formattedOverlayInnerStyle = overlayInnerStyle;\n var arrowContentStyle = {};\n if (color && !PresetColorRegex.test(color)) {\n formattedOverlayInnerStyle = _extends(_extends({}, overlayInnerStyle), {\n background: color\n });\n // @ts-ignore\n arrowContentStyle = {\n '--antd-arrow-background-color': color\n };\n }\n return /*#__PURE__*/React.createElement(RcTooltip, _extends({}, otherProps, {\n placement: placement,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: ref,\n builtinPlacements: getTooltipPlacements(),\n overlay: getOverlay(),\n visible: tempOpen,\n onVisibleChange: onOpenChange,\n onPopupAlign: onPopupAlign,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-arrow-content\"),\n style: arrowContentStyle\n }),\n motion: {\n motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n }\n }), tempOpen ? cloneElement(child, {\n className: childCls\n }) : child);\n});\nif (process.env.NODE_ENV !== 'production') {\n Tooltip.displayName = 'Tooltip';\n}\nexport default Tooltip;","import * as React from 'react';\nvar LegacySelectContext = /*#__PURE__*/React.createContext(null);\nexport default LegacySelectContext;","import * as React from 'react';\nvar TreeSelectContext = /*#__PURE__*/React.createContext(null);\nexport default TreeSelectContext;","export function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n return value !== undefined ? [value] : [];\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n children = _ref.children;\n\n var mergedValue = value || 'value';\n return {\n _title: label ? [label] : ['title', 'label'],\n value: mergedValue,\n key: mergedValue,\n children: children || 'children'\n };\n}\nexport function isCheckDisabled(node) {\n return !node || node.disabled || node.disableCheckbox || node.checkable === false;\n}\n/** Loop fetch all the keys exist in the tree */\n\nexport function getAllKeys(treeData, fieldNames) {\n var keys = [];\n\n function dig(list) {\n list.forEach(function (item) {\n var children = item[fieldNames.children];\n\n if (children) {\n keys.push(item[fieldNames.value]);\n dig(children);\n }\n });\n }\n\n dig(treeData);\n return keys;\n}\nexport function isNil(val) {\n return val === null || val === undefined;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport { useBaseProps } from 'rc-select';\nimport Tree from 'rc-tree';\nimport LegacyContext from \"./LegacyContext\";\nimport TreeSelectContext from \"./TreeSelectContext\";\nimport { getAllKeys, isCheckDisabled } from \"./utils/valueUtil\";\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\n\nvar OptionList = function OptionList(_, ref) {\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n multiple = _useBaseProps.multiple,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n open = _useBaseProps.open,\n notFoundContent = _useBaseProps.notFoundContent;\n\n var _React$useContext = React.useContext(TreeSelectContext),\n virtual = _React$useContext.virtual,\n listHeight = _React$useContext.listHeight,\n listItemHeight = _React$useContext.listItemHeight,\n treeData = _React$useContext.treeData,\n fieldNames = _React$useContext.fieldNames,\n onSelect = _React$useContext.onSelect,\n dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth,\n treeExpandAction = _React$useContext.treeExpandAction;\n\n var _React$useContext2 = React.useContext(LegacyContext),\n checkable = _React$useContext2.checkable,\n checkedKeys = _React$useContext2.checkedKeys,\n halfCheckedKeys = _React$useContext2.halfCheckedKeys,\n treeExpandedKeys = _React$useContext2.treeExpandedKeys,\n treeDefaultExpandAll = _React$useContext2.treeDefaultExpandAll,\n treeDefaultExpandedKeys = _React$useContext2.treeDefaultExpandedKeys,\n onTreeExpand = _React$useContext2.onTreeExpand,\n treeIcon = _React$useContext2.treeIcon,\n showTreeIcon = _React$useContext2.showTreeIcon,\n switcherIcon = _React$useContext2.switcherIcon,\n treeLine = _React$useContext2.treeLine,\n treeNodeFilterProp = _React$useContext2.treeNodeFilterProp,\n loadData = _React$useContext2.loadData,\n treeLoadedKeys = _React$useContext2.treeLoadedKeys,\n treeMotion = _React$useContext2.treeMotion,\n onTreeLoad = _React$useContext2.onTreeLoad,\n keyEntities = _React$useContext2.keyEntities;\n\n var treeRef = React.useRef();\n var memoTreeData = useMemo(function () {\n return treeData;\n }, [open, treeData], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n }); // ========================== Values ==========================\n\n var mergedCheckedKeys = React.useMemo(function () {\n if (!checkable) {\n return null;\n }\n\n return {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n }, [checkable, checkedKeys, halfCheckedKeys]); // ========================== Scroll ==========================\n\n React.useEffect(function () {\n // Single mode should scroll to current key\n if (open && !multiple && checkedKeys.length) {\n var _treeRef$current;\n\n (_treeRef$current = treeRef.current) === null || _treeRef$current === void 0 ? void 0 : _treeRef$current.scrollTo({\n key: checkedKeys[0]\n });\n }\n }, [open]); // ========================== Search ==========================\n\n var lowerSearchValue = String(searchValue).toLowerCase();\n\n var filterTreeNode = function filterTreeNode(treeNode) {\n if (!lowerSearchValue) {\n return false;\n }\n\n return String(treeNode[treeNodeFilterProp]).toLowerCase().includes(lowerSearchValue);\n }; // =========================== Keys ===========================\n\n\n var _React$useState = React.useState(treeDefaultExpandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n expandedKeys = _React$useState2[0],\n setExpandedKeys = _React$useState2[1];\n\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n searchExpandedKeys = _React$useState4[0],\n setSearchExpandedKeys = _React$useState4[1];\n\n var mergedExpandedKeys = React.useMemo(function () {\n if (treeExpandedKeys) {\n return _toConsumableArray(treeExpandedKeys);\n }\n\n return searchValue ? searchExpandedKeys : expandedKeys;\n }, [expandedKeys, searchExpandedKeys, treeExpandedKeys, searchValue]);\n React.useEffect(function () {\n if (searchValue) {\n setSearchExpandedKeys(getAllKeys(treeData, fieldNames));\n }\n }, [searchValue]);\n\n var onInternalExpand = function onInternalExpand(keys) {\n setExpandedKeys(keys);\n setSearchExpandedKeys(keys);\n\n if (onTreeExpand) {\n onTreeExpand(keys);\n }\n }; // ========================== Events ==========================\n\n\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n\n var onInternalSelect = function onInternalSelect(__, info) {\n var node = info.node;\n\n if (checkable && isCheckDisabled(node)) {\n return;\n }\n\n onSelect(node.key, {\n selected: !checkedKeys.includes(node.key)\n });\n\n if (!multiple) {\n toggleOpen(false);\n }\n }; // ========================= Keyboard =========================\n\n\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n activeKey = _React$useState6[0],\n setActiveKey = _React$useState6[1];\n\n var activeEntity = keyEntities[activeKey];\n React.useImperativeHandle(ref, function () {\n var _treeRef$current2;\n\n return {\n scrollTo: (_treeRef$current2 = treeRef.current) === null || _treeRef$current2 === void 0 ? void 0 : _treeRef$current2.scrollTo,\n onKeyDown: function onKeyDown(event) {\n var _treeRef$current3;\n\n var which = event.which;\n\n switch (which) {\n // >>> Arrow keys\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n (_treeRef$current3 = treeRef.current) === null || _treeRef$current3 === void 0 ? void 0 : _treeRef$current3.onKeyDown(event);\n break;\n // >>> Select item\n\n case KeyCode.ENTER:\n {\n if (activeEntity) {\n var _ref = (activeEntity === null || activeEntity === void 0 ? void 0 : activeEntity.node) || {},\n selectable = _ref.selectable,\n value = _ref.value;\n\n if (selectable !== false) {\n onInternalSelect(null, {\n node: {\n key: activeKey\n },\n selected: !checkedKeys.includes(value)\n });\n }\n }\n\n break;\n }\n // >>> Close\n\n case KeyCode.ESC:\n {\n toggleOpen(false);\n }\n }\n },\n onKeyUp: function onKeyUp() {}\n };\n }); // ========================== Render ==========================\n\n if (memoTreeData.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n className: \"\".concat(prefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n\n var treeProps = {\n fieldNames: fieldNames\n };\n\n if (treeLoadedKeys) {\n treeProps.loadedKeys = treeLoadedKeys;\n }\n\n if (mergedExpandedKeys) {\n treeProps.expandedKeys = mergedExpandedKeys;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onListMouseDown\n }, activeEntity && open && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, activeEntity.node.value), /*#__PURE__*/React.createElement(Tree, _extends({\n ref: treeRef,\n focusable: false,\n prefixCls: \"\".concat(prefixCls, \"-tree\"),\n treeData: memoTreeData,\n height: listHeight,\n itemHeight: listItemHeight,\n virtual: virtual !== false && dropdownMatchSelectWidth !== false,\n multiple: multiple,\n icon: treeIcon,\n showIcon: showTreeIcon,\n switcherIcon: switcherIcon,\n showLine: treeLine,\n loadData: searchValue ? null : loadData,\n motion: treeMotion,\n activeKey: activeKey // We handle keys by out instead tree self\n ,\n checkable: checkable,\n checkStrictly: true,\n checkedKeys: mergedCheckedKeys,\n selectedKeys: !checkable ? checkedKeys : [],\n defaultExpandAll: treeDefaultExpandAll\n }, treeProps, {\n // Proxy event out\n onActiveChange: setActiveKey,\n onSelect: onInternalSelect,\n onCheck: onInternalSelect,\n onExpand: onInternalExpand,\n onLoad: onTreeLoad,\n filterTreeNode: filterTreeNode,\n expandAction: treeExpandAction\n })));\n};\n\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar TreeNode = function TreeNode() {\n return null;\n};\n\nexport default TreeNode;","import { isCheckDisabled } from \"./valueUtil\";\nexport var SHOW_ALL = 'SHOW_ALL';\nexport var SHOW_PARENT = 'SHOW_PARENT';\nexport var SHOW_CHILD = 'SHOW_CHILD';\nexport function formatStrategyValues(values, strategy, keyEntities, fieldNames) {\n var valueSet = new Set(values);\n\n if (strategy === SHOW_CHILD) {\n return values.filter(function (key) {\n var entity = keyEntities[key];\n\n if (entity && entity.children && entity.children.some(function (_ref) {\n var node = _ref.node;\n return valueSet.has(node[fieldNames.value]);\n }) && entity.children.every(function (_ref2) {\n var node = _ref2.node;\n return isCheckDisabled(node) || valueSet.has(node[fieldNames.value]);\n })) {\n return false;\n }\n\n return true;\n });\n }\n\n if (strategy === SHOW_PARENT) {\n return values.filter(function (key) {\n var entity = keyEntities[key];\n var parent = entity ? entity.parent : null;\n\n if (parent && !isCheckDisabled(parent.node) && valueSet.has(parent.key)) {\n return false;\n }\n\n return true;\n });\n }\n\n return values;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"value\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from \"../TreeNode\";\nexport function convertChildrenToData(nodes) {\n return toArray(nodes).map(function (node) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return null;\n }\n\n var _ref = node,\n key = _ref.key,\n _ref$props = _ref.props,\n children = _ref$props.children,\n value = _ref$props.value,\n restProps = _objectWithoutProperties(_ref$props, _excluded);\n\n var data = _objectSpread({\n key: key,\n value: value\n }, restProps);\n\n var childData = convertChildrenToData(children);\n\n if (childData.length) {\n data.children = childData;\n }\n\n return data;\n }).filter(function (data) {\n return data;\n });\n}\nexport function fillLegacyProps(dataNode) {\n if (!dataNode) {\n return dataNode;\n }\n\n var cloneNode = _objectSpread({}, dataNode);\n\n if (!('props' in cloneNode)) {\n Object.defineProperty(cloneNode, 'props', {\n get: function get() {\n warning(false, 'New `rc-tree-select` not support return node instance as argument anymore. Please consider to remove `props` access.');\n return cloneNode;\n }\n });\n }\n\n return cloneNode;\n}\nexport function fillAdditionalInfo(extra, triggerValue, checkedValues, treeData, showPosition, fieldNames) {\n var triggerNode = null;\n var nodeList = null;\n\n function generateMap() {\n function dig(list) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';\n var parentIncluded = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return list.map(function (option, index) {\n var pos = \"\".concat(level, \"-\").concat(index);\n var value = option[fieldNames.value];\n var included = checkedValues.includes(value);\n var children = dig(option[fieldNames.children] || [], pos, included);\n var node = /*#__PURE__*/React.createElement(TreeNode, option, children.map(function (child) {\n return child.node;\n })); // Link with trigger node\n\n if (triggerValue === value) {\n triggerNode = node;\n }\n\n if (included) {\n var checkedNode = {\n pos: pos,\n node: node,\n children: children\n };\n\n if (!parentIncluded) {\n nodeList.push(checkedNode);\n }\n\n return checkedNode;\n }\n\n return null;\n }).filter(function (node) {\n return node;\n });\n }\n\n if (!nodeList) {\n nodeList = [];\n dig(treeData); // Sort to keep the checked node length\n\n nodeList.sort(function (_ref2, _ref3) {\n var val1 = _ref2.node.props.value;\n var val2 = _ref3.node.props.value;\n var index1 = checkedValues.indexOf(val1);\n var index2 = checkedValues.indexOf(val2);\n return index1 - index2;\n });\n }\n }\n\n Object.defineProperty(extra, 'triggerNode', {\n get: function get() {\n warning(false, '`triggerNode` is deprecated. Please consider decoupling data with node.');\n generateMap();\n return triggerNode;\n }\n });\n Object.defineProperty(extra, 'allCheckedNodes', {\n get: function get() {\n warning(false, '`allCheckedNodes` is deprecated. Please consider decoupling data with node.');\n generateMap();\n\n if (showPosition) {\n return nodeList;\n }\n\n return nodeList.map(function (_ref4) {\n var node = _ref4.node;\n return node;\n });\n }\n });\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { convertChildrenToData } from \"../utils/legacyUtil\";\n\nfunction parseSimpleTreeData(treeData, _ref) {\n var id = _ref.id,\n pId = _ref.pId,\n rootPId = _ref.rootPId;\n var keyNodes = {};\n var rootNodeList = []; // Fill in the map\n\n var nodeList = treeData.map(function (node) {\n var clone = _objectSpread({}, node);\n\n var key = clone[id];\n keyNodes[key] = clone;\n clone.key = clone.key || key;\n return clone;\n }); // Connect tree\n\n nodeList.forEach(function (node) {\n var parentKey = node[pId];\n var parent = keyNodes[parentKey]; // Fill parent\n\n if (parent) {\n parent.children = parent.children || [];\n parent.children.push(node);\n } // Fill root tree node\n\n\n if (parentKey === rootPId || !parent && rootPId === null) {\n rootNodeList.push(node);\n }\n });\n return rootNodeList;\n}\n/**\n * Convert `treeData` or `children` into formatted `treeData`.\n * Will not re-calculate if `treeData` or `children` not change.\n */\n\n\nexport default function useTreeData(treeData, children, simpleMode) {\n return React.useMemo(function () {\n if (treeData) {\n return simpleMode ? parseSimpleTreeData(treeData, _objectSpread({\n id: 'id',\n pId: 'pId',\n rootPId: null\n }, simpleMode !== true ? simpleMode : {})) : treeData;\n }\n\n return convertChildrenToData(children);\n }, [children, simpleMode, treeData]);\n}","import * as React from 'react';\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\n\nexport default function useRefFunc(callback) {\n var funcRef = React.useRef();\n funcRef.current = callback;\n var cacheFn = React.useCallback(function () {\n return funcRef.current.apply(funcRef, arguments);\n }, []);\n return cacheFn;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nimport { toArray } from \"./valueUtil\";\n\nfunction warningProps(props) {\n var searchPlaceholder = props.searchPlaceholder,\n treeCheckStrictly = props.treeCheckStrictly,\n treeCheckable = props.treeCheckable,\n labelInValue = props.labelInValue,\n value = props.value,\n multiple = props.multiple;\n warning(!searchPlaceholder, '`searchPlaceholder` has been removed.');\n\n if (treeCheckStrictly && labelInValue === false) {\n warning(false, '`treeCheckStrictly` will force set `labelInValue` to `true`.');\n }\n\n if (labelInValue || treeCheckStrictly) {\n warning(toArray(value).every(function (val) {\n return val && _typeof(val) === 'object' && 'value' in val;\n }), 'Invalid prop `value` supplied to `TreeSelect`. You should use { label: string, value: string | number } or [{ label: string, value: string | number }] instead.');\n }\n\n if (treeCheckStrictly || multiple || treeCheckable) {\n warning(!value || Array.isArray(value), '`value` should be an array when `TreeSelect` is checkable or multiple.');\n } else {\n warning(!Array.isArray(value), '`value` should not be array when `TreeSelect` is single mode.');\n }\n}\n\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"prefixCls\", \"value\", \"defaultValue\", \"onChange\", \"onSelect\", \"onDeselect\", \"searchValue\", \"inputValue\", \"onSearch\", \"autoClearSearchValue\", \"filterTreeNode\", \"treeNodeFilterProp\", \"showCheckedStrategy\", \"treeNodeLabelProp\", \"multiple\", \"treeCheckable\", \"treeCheckStrictly\", \"labelInValue\", \"fieldNames\", \"treeDataSimpleMode\", \"treeData\", \"children\", \"loadData\", \"treeLoadedKeys\", \"onTreeLoad\", \"treeDefaultExpandAll\", \"treeExpandedKeys\", \"treeDefaultExpandedKeys\", \"onTreeExpand\", \"treeExpandAction\", \"virtual\", \"listHeight\", \"listItemHeight\", \"onDropdownVisibleChange\", \"dropdownMatchSelectWidth\", \"treeLine\", \"treeIcon\", \"showTreeIcon\", \"switcherIcon\", \"treeMotion\"];\nimport * as React from 'react';\nimport { BaseSelect } from 'rc-select';\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport useId from \"rc-select/es/hooks/useId\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport OptionList from \"./OptionList\";\nimport TreeNode from \"./TreeNode\";\nimport { formatStrategyValues, SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from \"./utils/strategyUtil\";\nimport TreeSelectContext from \"./TreeSelectContext\";\nimport LegacyContext from \"./LegacyContext\";\nimport useTreeData from \"./hooks/useTreeData\";\nimport { toArray, fillFieldNames, isNil } from \"./utils/valueUtil\";\nimport useCache from \"./hooks/useCache\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport useDataEntities from \"./hooks/useDataEntities\";\nimport { fillAdditionalInfo, fillLegacyProps } from \"./utils/legacyUtil\";\nimport useCheckedKeys from \"./hooks/useCheckedKeys\";\nimport useFilterTreeData from \"./hooks/useFilterTreeData\";\nimport warningProps from \"./utils/warningPropsUtil\";\nimport warning from \"rc-util/es/warning\";\n\nfunction isRawValue(value) {\n return !value || _typeof(value) !== 'object';\n}\n\nvar TreeSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tree-select' : _props$prefixCls,\n value = props.value,\n defaultValue = props.defaultValue,\n onChange = props.onChange,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n searchValue = props.searchValue,\n inputValue = props.inputValue,\n onSearch = props.onSearch,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n filterTreeNode = props.filterTreeNode,\n _props$treeNodeFilter = props.treeNodeFilterProp,\n treeNodeFilterProp = _props$treeNodeFilter === void 0 ? 'value' : _props$treeNodeFilter,\n _props$showCheckedStr = props.showCheckedStrategy,\n showCheckedStrategy = _props$showCheckedStr === void 0 ? SHOW_CHILD : _props$showCheckedStr,\n treeNodeLabelProp = props.treeNodeLabelProp,\n multiple = props.multiple,\n treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly,\n labelInValue = props.labelInValue,\n fieldNames = props.fieldNames,\n treeDataSimpleMode = props.treeDataSimpleMode,\n treeData = props.treeData,\n children = props.children,\n loadData = props.loadData,\n treeLoadedKeys = props.treeLoadedKeys,\n onTreeLoad = props.onTreeLoad,\n treeDefaultExpandAll = props.treeDefaultExpandAll,\n treeExpandedKeys = props.treeExpandedKeys,\n treeDefaultExpandedKeys = props.treeDefaultExpandedKeys,\n onTreeExpand = props.onTreeExpand,\n treeExpandAction = props.treeExpandAction,\n virtual = props.virtual,\n _props$listHeight = props.listHeight,\n listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n _props$listItemHeight = props.listItemHeight,\n listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n treeLine = props.treeLine,\n treeIcon = props.treeIcon,\n showTreeIcon = props.showTreeIcon,\n switcherIcon = props.switcherIcon,\n treeMotion = props.treeMotion,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var mergedId = useId(id);\n var treeConduction = treeCheckable && !treeCheckStrictly;\n var mergedCheckable = treeCheckable || treeCheckStrictly;\n var mergedLabelInValue = treeCheckStrictly || labelInValue;\n var mergedMultiple = mergedCheckable || multiple;\n\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n internalValue = _useMergedState2[0],\n setInternalValue = _useMergedState2[1]; // ========================== Warning ===========================\n\n\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n } // ========================= FieldNames =========================\n\n\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames);\n },\n /* eslint-disable react-hooks/exhaustive-deps */\n [JSON.stringify(fieldNames)]\n /* eslint-enable react-hooks/exhaustive-deps */\n ); // =========================== Search ===========================\n\n var _useMergedState3 = useMergedState('', {\n value: searchValue !== undefined ? searchValue : inputValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedSearchValue = _useMergedState4[0],\n setSearchValue = _useMergedState4[1];\n\n var onInternalSearch = function onInternalSearch(searchText) {\n setSearchValue(searchText);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchText);\n }; // ============================ Data ============================\n // `useTreeData` only do convert of `children` or `simpleMode`.\n // Else will return origin `treeData` for perf consideration.\n // Do not do anything to loop the data.\n\n\n var mergedTreeData = useTreeData(treeData, children, treeDataSimpleMode);\n\n var _useDataEntities = useDataEntities(mergedTreeData, mergedFieldNames),\n keyEntities = _useDataEntities.keyEntities,\n valueEntities = _useDataEntities.valueEntities;\n /** Get `missingRawValues` which not exist in the tree yet */\n\n\n var splitRawValues = React.useCallback(function (newRawValues) {\n var missingRawValues = [];\n var existRawValues = []; // Keep missing value in the cache\n\n newRawValues.forEach(function (val) {\n if (valueEntities.has(val)) {\n existRawValues.push(val);\n } else {\n missingRawValues.push(val);\n }\n });\n return {\n missingRawValues: missingRawValues,\n existRawValues: existRawValues\n };\n }, [valueEntities]); // Filtered Tree\n\n var filteredTreeData = useFilterTreeData(mergedTreeData, mergedSearchValue, {\n fieldNames: mergedFieldNames,\n treeNodeFilterProp: treeNodeFilterProp,\n filterTreeNode: filterTreeNode\n }); // =========================== Label ============================\n\n var getLabel = React.useCallback(function (item) {\n if (item) {\n if (treeNodeLabelProp) {\n return item[treeNodeLabelProp];\n } // Loop from fieldNames\n\n\n var titleList = mergedFieldNames._title;\n\n for (var i = 0; i < titleList.length; i += 1) {\n var title = item[titleList[i]];\n\n if (title !== undefined) {\n return title;\n }\n }\n }\n }, [mergedFieldNames, treeNodeLabelProp]); // ========================= Wrap Value =========================\n\n var toLabeledValues = React.useCallback(function (draftValues) {\n var values = toArray(draftValues);\n return values.map(function (val) {\n if (isRawValue(val)) {\n return {\n value: val\n };\n }\n\n return val;\n });\n }, []);\n var convert2LabelValues = React.useCallback(function (draftValues) {\n var values = toLabeledValues(draftValues);\n return values.map(function (item) {\n var rawLabel = item.label;\n var rawValue = item.value,\n rawHalfChecked = item.halfChecked;\n var rawDisabled;\n var entity = valueEntities.get(rawValue); // Fill missing label & status\n\n if (entity) {\n var _rawLabel;\n\n rawLabel = (_rawLabel = rawLabel) !== null && _rawLabel !== void 0 ? _rawLabel : getLabel(entity.node);\n rawDisabled = entity.node.disabled;\n } else if (rawLabel === undefined) {\n // We try to find in current `labelInValue` value\n var labelInValueItem = toLabeledValues(internalValue).find(function (labeledItem) {\n return labeledItem.value === rawValue;\n });\n rawLabel = labelInValueItem.label;\n }\n\n return {\n label: rawLabel,\n value: rawValue,\n halfChecked: rawHalfChecked,\n disabled: rawDisabled\n };\n });\n }, [valueEntities, getLabel, toLabeledValues, internalValue]); // =========================== Values ===========================\n\n var rawMixedLabeledValues = React.useMemo(function () {\n return toLabeledValues(internalValue);\n }, [toLabeledValues, internalValue]); // Split value into full check and half check\n\n var _React$useMemo = React.useMemo(function () {\n var fullCheckValues = [];\n var halfCheckValues = [];\n rawMixedLabeledValues.forEach(function (item) {\n if (item.halfChecked) {\n halfCheckValues.push(item);\n } else {\n fullCheckValues.push(item);\n }\n });\n return [fullCheckValues, halfCheckValues];\n }, [rawMixedLabeledValues]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n rawLabeledValues = _React$useMemo2[0],\n rawHalfLabeledValues = _React$useMemo2[1]; // const [mergedValues] = useCache(rawLabeledValues);\n\n\n var rawValues = React.useMemo(function () {\n return rawLabeledValues.map(function (item) {\n return item.value;\n });\n }, [rawLabeledValues]); // Convert value to key. Will fill missed keys for conduct check.\n\n var _useCheckedKeys = useCheckedKeys(rawLabeledValues, rawHalfLabeledValues, treeConduction, keyEntities),\n _useCheckedKeys2 = _slicedToArray(_useCheckedKeys, 2),\n rawCheckedValues = _useCheckedKeys2[0],\n rawHalfCheckedValues = _useCheckedKeys2[1]; // Convert rawCheckedKeys to check strategy related values\n\n\n var displayValues = React.useMemo(function () {\n // Collect keys which need to show\n var displayKeys = formatStrategyValues(rawCheckedValues, showCheckedStrategy, keyEntities, mergedFieldNames); // Convert to value and filled with label\n\n var values = displayKeys.map(function (key) {\n var _keyEntities$key$node, _keyEntities$key, _keyEntities$key$node2;\n\n return (_keyEntities$key$node = (_keyEntities$key = keyEntities[key]) === null || _keyEntities$key === void 0 ? void 0 : (_keyEntities$key$node2 = _keyEntities$key.node) === null || _keyEntities$key$node2 === void 0 ? void 0 : _keyEntities$key$node2[mergedFieldNames.value]) !== null && _keyEntities$key$node !== void 0 ? _keyEntities$key$node : key;\n }); // Back fill with origin label\n\n var labeledValues = values.map(function (val) {\n var targetItem = rawLabeledValues.find(function (item) {\n return item.value === val;\n });\n return {\n value: val,\n label: targetItem === null || targetItem === void 0 ? void 0 : targetItem.label\n };\n });\n var rawDisplayValues = convert2LabelValues(labeledValues);\n var firstVal = rawDisplayValues[0];\n\n if (!mergedMultiple && firstVal && isNil(firstVal.value) && isNil(firstVal.label)) {\n return [];\n }\n\n return rawDisplayValues.map(function (item) {\n var _item$label;\n\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : item.value\n });\n });\n }, [mergedFieldNames, mergedMultiple, rawCheckedValues, rawLabeledValues, convert2LabelValues, showCheckedStrategy, keyEntities]);\n\n var _useCache = useCache(displayValues),\n _useCache2 = _slicedToArray(_useCache, 1),\n cachedDisplayValues = _useCache2[0]; // =========================== Change ===========================\n\n\n var triggerChange = useRefFunc(function (newRawValues, extra, source) {\n var labeledValues = convert2LabelValues(newRawValues);\n setInternalValue(labeledValues); // Clean up if needed\n\n if (autoClearSearchValue) {\n setSearchValue('');\n } // Generate rest parameters is costly, so only do it when necessary\n\n\n if (onChange) {\n var eventValues = newRawValues;\n\n if (treeConduction) {\n var formattedKeyList = formatStrategyValues(newRawValues, showCheckedStrategy, keyEntities, mergedFieldNames);\n eventValues = formattedKeyList.map(function (key) {\n var entity = valueEntities.get(key);\n return entity ? entity.node[mergedFieldNames.value] : key;\n });\n }\n\n var _ref = extra || {\n triggerValue: undefined,\n selected: undefined\n },\n triggerValue = _ref.triggerValue,\n selected = _ref.selected;\n\n var returnRawValues = eventValues; // We need fill half check back\n\n if (treeCheckStrictly) {\n var halfValues = rawHalfLabeledValues.filter(function (item) {\n return !eventValues.includes(item.value);\n });\n returnRawValues = [].concat(_toConsumableArray(returnRawValues), _toConsumableArray(halfValues));\n }\n\n var returnLabeledValues = convert2LabelValues(returnRawValues);\n var additionalInfo = {\n // [Legacy] Always return as array contains label & value\n preValue: rawLabeledValues,\n triggerValue: triggerValue\n }; // [Legacy] Fill legacy data if user query.\n // This is expansive that we only fill when user query\n // https://github.com/react-component/tree-select/blob/fe33eb7c27830c9ac70cd1fdb1ebbe7bc679c16a/src/Select.jsx\n\n var showPosition = true;\n\n if (treeCheckStrictly || source === 'selection' && !selected) {\n showPosition = false;\n }\n\n fillAdditionalInfo(additionalInfo, triggerValue, newRawValues, mergedTreeData, showPosition, mergedFieldNames);\n\n if (mergedCheckable) {\n additionalInfo.checked = selected;\n } else {\n additionalInfo.selected = selected;\n }\n\n var returnValues = mergedLabelInValue ? returnLabeledValues : returnLabeledValues.map(function (item) {\n return item.value;\n });\n onChange(mergedMultiple ? returnValues : returnValues[0], mergedLabelInValue ? null : returnLabeledValues.map(function (item) {\n return item.label;\n }), additionalInfo);\n }\n }); // ========================== Options ===========================\n\n /** Trigger by option list */\n\n var onOptionSelect = React.useCallback(function (selectedKey, _ref2) {\n var _node$mergedFieldName;\n\n var selected = _ref2.selected,\n source = _ref2.source;\n var entity = keyEntities[selectedKey];\n var node = entity === null || entity === void 0 ? void 0 : entity.node;\n var selectedValue = (_node$mergedFieldName = node === null || node === void 0 ? void 0 : node[mergedFieldNames.value]) !== null && _node$mergedFieldName !== void 0 ? _node$mergedFieldName : selectedKey; // Never be falsy but keep it safe\n\n if (!mergedMultiple) {\n // Single mode always set value\n triggerChange([selectedValue], {\n selected: true,\n triggerValue: selectedValue\n }, 'option');\n } else {\n var newRawValues = selected ? [].concat(_toConsumableArray(rawValues), [selectedValue]) : rawCheckedValues.filter(function (v) {\n return v !== selectedValue;\n }); // Add keys if tree conduction\n\n if (treeConduction) {\n // Should keep missing values\n var _splitRawValues = splitRawValues(newRawValues),\n missingRawValues = _splitRawValues.missingRawValues,\n existRawValues = _splitRawValues.existRawValues;\n\n var keyList = existRawValues.map(function (val) {\n return valueEntities.get(val).key;\n }); // Conduction by selected or not\n\n var checkedKeys;\n\n if (selected) {\n var _conductCheck = conductCheck(keyList, true, keyEntities);\n\n checkedKeys = _conductCheck.checkedKeys;\n } else {\n var _conductCheck2 = conductCheck(keyList, {\n checked: false,\n halfCheckedKeys: rawHalfCheckedValues\n }, keyEntities);\n\n checkedKeys = _conductCheck2.checkedKeys;\n } // Fill back of keys\n\n\n newRawValues = [].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n return keyEntities[key].node[mergedFieldNames.value];\n })));\n }\n\n triggerChange(newRawValues, {\n selected: selected,\n triggerValue: selectedValue\n }, source || 'option');\n } // Trigger select event\n\n\n if (selected || !mergedMultiple) {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedValue, fillLegacyProps(node));\n } else {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectedValue, fillLegacyProps(node));\n }\n }, [splitRawValues, valueEntities, keyEntities, mergedFieldNames, mergedMultiple, rawValues, triggerChange, treeConduction, onSelect, onDeselect, rawCheckedValues, rawHalfCheckedValues]); // ========================== Dropdown ==========================\n\n var onInternalDropdownVisibleChange = React.useCallback(function (open) {\n if (onDropdownVisibleChange) {\n var legacyParam = {};\n Object.defineProperty(legacyParam, 'documentClickClose', {\n get: function get() {\n warning(false, 'Second param of `onDropdownVisibleChange` has been removed.');\n return false;\n }\n });\n onDropdownVisibleChange(open, legacyParam);\n }\n }, [onDropdownVisibleChange]); // ====================== Display Change ========================\n\n var onDisplayValuesChange = useRefFunc(function (newValues, info) {\n var newRawValues = newValues.map(function (item) {\n return item.value;\n });\n\n if (info.type === 'clear') {\n triggerChange(newRawValues, {}, 'selection');\n return;\n } // TreeSelect only have multiple mode which means display change only has remove\n\n\n if (info.values.length) {\n onOptionSelect(info.values[0].value, {\n selected: false,\n source: 'selection'\n });\n }\n }); // ========================== Context ===========================\n\n var treeSelectContext = React.useMemo(function () {\n return {\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n treeData: filteredTreeData,\n fieldNames: mergedFieldNames,\n onSelect: onOptionSelect,\n treeExpandAction: treeExpandAction\n };\n }, [virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, filteredTreeData, mergedFieldNames, onOptionSelect, treeExpandAction]); // ======================= Legacy Context =======================\n\n var legacyContext = React.useMemo(function () {\n return {\n checkable: mergedCheckable,\n loadData: loadData,\n treeLoadedKeys: treeLoadedKeys,\n onTreeLoad: onTreeLoad,\n checkedKeys: rawCheckedValues,\n halfCheckedKeys: rawHalfCheckedValues,\n treeDefaultExpandAll: treeDefaultExpandAll,\n treeExpandedKeys: treeExpandedKeys,\n treeDefaultExpandedKeys: treeDefaultExpandedKeys,\n onTreeExpand: onTreeExpand,\n treeIcon: treeIcon,\n treeMotion: treeMotion,\n showTreeIcon: showTreeIcon,\n switcherIcon: switcherIcon,\n treeLine: treeLine,\n treeNodeFilterProp: treeNodeFilterProp,\n keyEntities: keyEntities\n };\n }, [mergedCheckable, loadData, treeLoadedKeys, onTreeLoad, rawCheckedValues, rawHalfCheckedValues, treeDefaultExpandAll, treeExpandedKeys, treeDefaultExpandedKeys, onTreeExpand, treeIcon, treeMotion, showTreeIcon, switcherIcon, treeLine, treeNodeFilterProp, keyEntities]); // =========================== Render ===========================\n\n return /*#__PURE__*/React.createElement(TreeSelectContext.Provider, {\n value: treeSelectContext\n }, /*#__PURE__*/React.createElement(LegacyContext.Provider, {\n value: legacyContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({\n ref: ref\n }, restProps, {\n // >>> MISC\n id: mergedId,\n prefixCls: prefixCls,\n mode: mergedMultiple ? 'multiple' : undefined // >>> Display Value\n ,\n displayValues: cachedDisplayValues,\n onDisplayValuesChange: onDisplayValuesChange // >>> Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch // >>> Options\n ,\n OptionList: OptionList,\n emptyOptions: !mergedTreeData.length,\n onDropdownVisibleChange: onInternalDropdownVisibleChange,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }))));\n}); // Assign name for Debug\n\nif (process.env.NODE_ENV !== 'production') {\n TreeSelect.displayName = 'TreeSelect';\n}\n\nvar GenericTreeSelect = TreeSelect;\nGenericTreeSelect.TreeNode = TreeNode;\nGenericTreeSelect.SHOW_ALL = SHOW_ALL;\nGenericTreeSelect.SHOW_PARENT = SHOW_PARENT;\nGenericTreeSelect.SHOW_CHILD = SHOW_CHILD;\nexport default GenericTreeSelect;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport warning from \"rc-util/es/warning\";\nimport { isNil } from \"../utils/valueUtil\";\nexport default (function (treeData, fieldNames) {\n return React.useMemo(function () {\n var collection = convertDataToEntities(treeData, {\n fieldNames: fieldNames,\n initWrapper: function initWrapper(wrapper) {\n return _objectSpread(_objectSpread({}, wrapper), {}, {\n valueEntities: new Map()\n });\n },\n processEntity: function processEntity(entity, wrapper) {\n var val = entity.node[fieldNames.value]; // Check if exist same value\n\n if (process.env.NODE_ENV !== 'production') {\n var key = entity.node.key;\n warning(!isNil(val), 'TreeNode `value` is invalidate: undefined');\n warning(!wrapper.valueEntities.has(val), \"Same `value` exist in the tree: \".concat(val));\n warning(!key || String(key) === String(val), \"`key` or `value` with TreeNode must be the same or you can remove one of them. key: \".concat(key, \", value: \").concat(val, \".\"));\n }\n\n wrapper.valueEntities.set(val, entity);\n }\n });\n return collection;\n }, [treeData, fieldNames]);\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { fillLegacyProps } from \"../utils/legacyUtil\";\nexport default (function (treeData, searchValue, _ref) {\n var treeNodeFilterProp = _ref.treeNodeFilterProp,\n filterTreeNode = _ref.filterTreeNode,\n fieldNames = _ref.fieldNames;\n var fieldChildren = fieldNames.children;\n return React.useMemo(function () {\n if (!searchValue || filterTreeNode === false) {\n return treeData;\n }\n\n var filterOptionFunc;\n\n if (typeof filterTreeNode === 'function') {\n filterOptionFunc = filterTreeNode;\n } else {\n var upperStr = searchValue.toUpperCase();\n\n filterOptionFunc = function filterOptionFunc(_, dataNode) {\n var value = dataNode[treeNodeFilterProp];\n return String(value).toUpperCase().includes(upperStr);\n };\n }\n\n function dig(list) {\n var keepAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return list.map(function (dataNode) {\n var children = dataNode[fieldChildren];\n var match = keepAll || filterOptionFunc(searchValue, fillLegacyProps(dataNode));\n var childList = dig(children || [], match);\n\n if (match || childList.length) {\n return _objectSpread(_objectSpread({}, dataNode), {}, _defineProperty({\n isLeaf: undefined\n }, fieldChildren, childList));\n }\n\n return null;\n }).filter(function (node) {\n return node;\n });\n }\n\n return dig(treeData);\n }, [treeData, searchValue, fieldChildren, treeNodeFilterProp, filterTreeNode]);\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nexport default (function (rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities) {\n return React.useMemo(function () {\n var checkedKeys = rawLabeledValues.map(function (_ref) {\n var value = _ref.value;\n return value;\n });\n var halfCheckedKeys = rawHalfCheckedValues.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n var missingValues = checkedKeys.filter(function (key) {\n return !keyEntities[key];\n });\n\n if (treeConduction) {\n var _conductCheck = conductCheck(checkedKeys, true, keyEntities);\n\n checkedKeys = _conductCheck.checkedKeys;\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n }\n\n return [// Checked keys should fill with missing keys which should de-duplicated\n Array.from(new Set([].concat(_toConsumableArray(missingValues), _toConsumableArray(checkedKeys)))), // Half checked keys\n halfCheckedKeys];\n }, [rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities]);\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\n\n/**\n * This function will try to call requestIdleCallback if available to save performance.\n * No need `getLabel` here since already fetch on `rawLabeledValue`.\n */\nexport default (function (values) {\n var cacheRef = React.useRef({\n valueLabels: new Map()\n });\n return React.useMemo(function () {\n var valueLabels = cacheRef.current.valueLabels;\n var valueLabelsCache = new Map();\n var filledValues = values.map(function (item) {\n var _item$label;\n\n var value = item.value;\n var mergedLabel = (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : valueLabels.get(value); // Save in cache\n\n valueLabelsCache.set(value, mergedLabel);\n return _objectSpread(_objectSpread({}, item), {}, {\n label: mergedLabel\n });\n });\n cacheRef.current.valueLabels = valueLabelsCache;\n return [filledValues];\n }, [values]);\n});","import TreeSelect from \"./TreeSelect\";\nimport TreeNode from \"./TreeNode\";\nimport { SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from \"./utils/strategyUtil\";\nexport { TreeNode, SHOW_ALL, SHOW_CHILD, SHOW_PARENT };\nexport default TreeSelect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcTreeSelect, { SHOW_ALL, SHOW_CHILD, SHOW_PARENT, TreeNode } from 'rc-tree-select';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport defaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext } from '../form/context';\nimport getIcons from '../select/utils/iconUtil';\nimport renderSwitcherIcon from '../tree/utils/iconUtil';\nimport { getTransitionDirection, getTransitionName } from '../_util/motion';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { useCompactItemContext } from '../space/Compact';\nimport warning from '../_util/warning';\nvar InternalTreeSelect = function InternalTreeSelect(_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n customizeSize = _a.size,\n customDisabled = _a.disabled,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? true : _a$bordered,\n className = _a.className,\n treeCheckable = _a.treeCheckable,\n multiple = _a.multiple,\n _a$listHeight = _a.listHeight,\n listHeight = _a$listHeight === void 0 ? 256 : _a$listHeight,\n _a$listItemHeight = _a.listItemHeight,\n listItemHeight = _a$listItemHeight === void 0 ? 26 : _a$listItemHeight,\n placement = _a.placement,\n notFoundContent = _a.notFoundContent,\n _switcherIcon = _a.switcherIcon,\n treeLine = _a.treeLine,\n getPopupContainer = _a.getPopupContainer,\n dropdownClassName = _a.dropdownClassName,\n popupClassName = _a.popupClassName,\n _a$treeIcon = _a.treeIcon,\n treeIcon = _a$treeIcon === void 0 ? false : _a$treeIcon,\n transitionName = _a.transitionName,\n _a$choiceTransitionNa = _a.choiceTransitionName,\n choiceTransitionName = _a$choiceTransitionNa === void 0 ? '' : _a$choiceTransitionNa,\n customStatus = _a.status,\n showArrow = _a.showArrow,\n treeExpandAction = _a.treeExpandAction,\n props = __rest(_a, [\"prefixCls\", \"size\", \"disabled\", \"bordered\", \"className\", \"treeCheckable\", \"multiple\", \"listHeight\", \"listItemHeight\", \"placement\", \"notFoundContent\", \"switcherIcon\", \"treeLine\", \"getPopupContainer\", \"dropdownClassName\", \"popupClassName\", \"treeIcon\", \"transitionName\", \"choiceTransitionName\", \"status\", \"showArrow\", \"treeExpandAction\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction,\n virtual = _React$useContext.virtual,\n dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth;\n var size = React.useContext(SizeContext);\n process.env.NODE_ENV !== \"production\" ? warning(multiple !== false || !treeCheckable, 'TreeSelect', '`multiple` will always be `true` when `treeCheckable` is true') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'TreeSelect', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.') : void 0;\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n var treePrefixCls = getPrefixCls('select-tree', customizePrefixCls);\n var treeSelectPrefixCls = getPrefixCls('tree-select', customizePrefixCls);\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var mergedDropdownClassName = classNames(popupClassName || dropdownClassName, \"\".concat(treeSelectPrefixCls, \"-dropdown\"), _defineProperty({}, \"\".concat(treeSelectPrefixCls, \"-dropdown-rtl\"), direction === 'rtl'));\n var isMultiple = !!(treeCheckable || multiple);\n var mergedShowArrow = showArrow !== undefined ? showArrow : props.loading || !isMultiple;\n // ===================== Form =====================\n var _useContext = useContext(FormItemInputContext),\n contextStatus = _useContext.status,\n hasFeedback = _useContext.hasFeedback,\n isFormItemInput = _useContext.isFormItemInput,\n feedbackIcon = _useContext.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Icons =====================\n var _getIcons = getIcons(_extends(_extends({}, props), {\n multiple: isMultiple,\n showArrow: mergedShowArrow,\n hasFeedback: hasFeedback,\n feedbackIcon: feedbackIcon,\n prefixCls: prefixCls\n })),\n suffixIcon = _getIcons.suffixIcon,\n removeIcon = _getIcons.removeIcon,\n clearIcon = _getIcons.clearIcon;\n // ===================== Empty =====================\n var mergedNotFound;\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else {\n mergedNotFound = (renderEmpty || defaultRenderEmpty)('Select');\n }\n // ==================== Render =====================\n var selectProps = omit(props, ['suffixIcon', 'itemIcon', 'removeIcon', 'clearIcon', 'switcherIcon']);\n // ===================== Placement =====================\n var getPlacement = function getPlacement() {\n if (placement !== undefined) {\n return placement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n var mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var mergedClassName = classNames(!customizePrefixCls && treeSelectPrefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-borderless\"), !bordered), \"\".concat(prefixCls, \"-in-form-item\"), isFormItemInput), getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, className);\n var rootPrefixCls = getPrefixCls();\n return /*#__PURE__*/React.createElement(RcTreeSelect, _extends({\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n disabled: mergedDisabled\n }, selectProps, {\n ref: ref,\n prefixCls: prefixCls,\n className: mergedClassName,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n treeCheckable: treeCheckable ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-tree-checkbox-inner\")\n }) : treeCheckable,\n treeLine: !!treeLine,\n inputIcon: suffixIcon,\n multiple: multiple,\n placement: getPlacement(),\n removeIcon: removeIcon,\n clearIcon: clearIcon,\n switcherIcon: function switcherIcon(nodeProps) {\n return renderSwitcherIcon(treePrefixCls, _switcherIcon, treeLine, nodeProps);\n },\n showTreeIcon: treeIcon,\n notFoundContent: mergedNotFound,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n treeMotion: null,\n dropdownClassName: mergedDropdownClassName,\n choiceTransitionName: getTransitionName(rootPrefixCls, '', choiceTransitionName),\n transitionName: getTransitionName(rootPrefixCls, getTransitionDirection(placement), transitionName),\n showArrow: hasFeedback || showArrow,\n treeExpandAction: treeExpandAction\n }));\n};\nvar TreeSelectRef = /*#__PURE__*/React.forwardRef(InternalTreeSelect);\nvar TreeSelect = TreeSelectRef;\nTreeSelect.TreeNode = TreeNode;\nTreeSelect.SHOW_ALL = SHOW_ALL;\nTreeSelect.SHOW_PARENT = SHOW_PARENT;\nTreeSelect.SHOW_CHILD = SHOW_CHILD;\nexport { TreeNode };\nexport default TreeSelect;","// This icon file is generated automatically.\nvar CaretDownFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"filled\" };\nexport default CaretDownFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretDownFilledSvg from \"@ant-design/icons-svg/es/asn/CaretDownFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar CaretDownFilled = function CaretDownFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretDownFilledSvg\n }));\n};\nCaretDownFilled.displayName = 'CaretDownFilled';\nexport default /*#__PURE__*/React.forwardRef(CaretDownFilled);","// This icon file is generated automatically.\nvar MinusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"minus-square\", \"theme\": \"outlined\" };\nexport default MinusSquareOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport MinusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/MinusSquareOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar MinusSquareOutlined = function MinusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: MinusSquareOutlinedSvg\n }));\n};\nMinusSquareOutlined.displayName = 'MinusSquareOutlined';\nexport default /*#__PURE__*/React.forwardRef(MinusSquareOutlined);","// This icon file is generated automatically.\nvar PlusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"plus-square\", \"theme\": \"outlined\" };\nexport default PlusSquareOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusSquareOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PlusSquareOutlined = function PlusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusSquareOutlinedSvg\n }));\n};\nPlusSquareOutlined.displayName = 'PlusSquareOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusSquareOutlined);","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport CaretDownFilled from \"@ant-design/icons/es/icons/CaretDownFilled\";\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport MinusSquareOutlined from \"@ant-design/icons/es/icons/MinusSquareOutlined\";\nimport PlusSquareOutlined from \"@ant-design/icons/es/icons/PlusSquareOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nexport default function renderSwitcherIcon(prefixCls, switcherIcon, showLine, treeNodeProps) {\n var isLeaf = treeNodeProps.isLeaf,\n expanded = treeNodeProps.expanded,\n loading = treeNodeProps.loading;\n if (loading) {\n return /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-loading-icon\")\n });\n }\n var showLeafIcon;\n if (showLine && _typeof(showLine) === 'object') {\n showLeafIcon = showLine.showLeafIcon;\n }\n if (isLeaf) {\n if (!showLine) {\n return null;\n }\n if (typeof showLeafIcon !== 'boolean' && !!showLeafIcon) {\n var leafIcon = typeof showLeafIcon === 'function' ? showLeafIcon(treeNodeProps) : showLeafIcon;\n var leafCls = \"\".concat(prefixCls, \"-switcher-line-custom-icon\");\n if (isValidElement(leafIcon)) {\n return cloneElement(leafIcon, {\n className: classNames(leafIcon.props.className || '', leafCls)\n });\n }\n return leafIcon;\n }\n return showLeafIcon ? ( /*#__PURE__*/React.createElement(FileOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n })) : ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-switcher-leaf-line\")\n }));\n }\n var switcherCls = \"\".concat(prefixCls, \"-switcher-icon\");\n var switcher = typeof switcherIcon === 'function' ? switcherIcon(treeNodeProps) : switcherIcon;\n if (isValidElement(switcher)) {\n return cloneElement(switcher, {\n className: classNames(switcher.props.className || '', switcherCls)\n });\n }\n if (switcher) {\n return switcher;\n }\n if (showLine) {\n return expanded ? ( /*#__PURE__*/React.createElement(MinusSquareOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n })) : ( /*#__PURE__*/React.createElement(PlusSquareOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n }));\n }\n return /*#__PURE__*/React.createElement(CaretDownFilled, {\n className: switcherCls\n });\n}","function getError(option, xhr) {\n var msg = \"cannot \".concat(option.method, \" \").concat(option.action, \" \").concat(xhr.status, \"'\");\n var err = new Error(msg);\n err.status = xhr.status;\n err.method = option.method;\n err.url = option.action;\n return err;\n}\nfunction getBody(xhr) {\n var text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\nexport default function upload(option) {\n // eslint-disable-next-line no-undef\n var xhr = new XMLHttpRequest();\n if (option.onProgress && xhr.upload) {\n xhr.upload.onprogress = function progress(e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n option.onProgress(e);\n };\n }\n // eslint-disable-next-line no-undef\n var formData = new FormData();\n if (option.data) {\n Object.keys(option.data).forEach(function (key) {\n var value = option.data[key];\n // support key-value array data\n if (Array.isArray(value)) {\n value.forEach(function (item) {\n // { list: [ 11, 22 ] }\n // formData.append('list[]', 11);\n formData.append(\"\".concat(key, \"[]\"), item);\n });\n return;\n }\n formData.append(key, value);\n });\n }\n // eslint-disable-next-line no-undef\n if (option.file instanceof Blob) {\n formData.append(option.filename, option.file, option.file.name);\n } else {\n formData.append(option.filename, option.file);\n }\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n xhr.onload = function onload() {\n // allow success when 2xx status\n // see https://github.com/react-component/upload/issues/34\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(option, xhr), getBody(xhr));\n }\n return option.onSuccess(getBody(xhr), xhr);\n };\n xhr.open(option.method, option.action, true);\n // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n var headers = option.headers || {};\n // when set headers['X-Requested-With'] = null , can close default XHR header\n // see https://github.com/react-component/upload/issues/33\n if (headers['X-Requested-With'] !== null) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n Object.keys(headers).forEach(function (h) {\n if (headers[h] !== null) {\n xhr.setRequestHeader(h, headers[h]);\n }\n });\n xhr.send(formData);\n return {\n abort: function abort() {\n xhr.abort();\n }\n };\n}","var now = +new Date();\nvar index = 0;\nexport default function uid() {\n // eslint-disable-next-line no-plusplus\n return \"rc-upload-\".concat(now, \"-\").concat(++index);\n}","import warning from \"rc-util/es/warning\";\nexport 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 || '';\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim();\n // This is something like */*,* allow all files\n if (/^\\*(\\/\\*)?$/.test(type)) {\n return true;\n }\n // like .jpg, .png\n if (validType.charAt(0) === '.') {\n var lowerFileName = fileName.toLowerCase();\n var lowerType = validType.toLowerCase();\n var affixList = [lowerType];\n if (lowerType === '.jpg' || lowerType === '.jpeg') {\n affixList = ['.jpg', '.jpeg'];\n }\n return affixList.some(function (affix) {\n return lowerFileName.endsWith(affix);\n });\n }\n // This is something like a image/* mime type\n if (/\\/\\*$/.test(validType)) {\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n // Full match\n if (mimeType === validType) {\n return true;\n }\n // Invalidate type should skip\n if (/^\\w+$/.test(validType)) {\n warning(false, \"Upload takes an invalidate 'accept' type '\".concat(validType, \"'.Skip for check.\"));\n return true;\n }\n return false;\n });\n }\n return true;\n});","function loopFiles(item, callback) {\n var dirReader = item.createReader();\n var fileList = [];\n function sequence() {\n dirReader.readEntries(function (entries) {\n var entryList = Array.prototype.slice.apply(entries);\n fileList = fileList.concat(entryList);\n // Check if all the file has been viewed\n var isFinished = !entryList.length;\n if (isFinished) {\n callback(fileList);\n } else {\n sequence();\n }\n });\n }\n sequence();\n}\nvar traverseFileTree = function traverseFileTree(files, callback, isAccepted) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n var _traverseFileTree = function _traverseFileTree(item, path) {\n if (!item) {\n return;\n }\n // eslint-disable-next-line no-param-reassign\n item.path = path || '';\n if (item.isFile) {\n item.file(function (file) {\n if (isAccepted(file)) {\n // https://github.com/ant-design/ant-design/issues/16426\n if (item.fullPath && !file.webkitRelativePath) {\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: true\n }\n });\n // eslint-disable-next-line no-param-reassign\n file.webkitRelativePath = item.fullPath.replace(/^\\//, '');\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: false\n }\n });\n }\n callback([file]);\n }\n });\n } else if (item.isDirectory) {\n loopFiles(item, function (entries) {\n entries.forEach(function (entryItem) {\n _traverseFileTree(entryItem, \"\".concat(path).concat(item.name, \"/\"));\n });\n });\n }\n };\n files.forEach(function (file) {\n _traverseFileTree(file.webkitGetAsEntry());\n });\n};\nexport default traverseFileTree;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"component\", \"prefixCls\", \"className\", \"disabled\", \"id\", \"style\", \"multiple\", \"accept\", \"capture\", \"children\", \"directory\", \"openFileDialogOnClick\", \"onMouseEnter\", \"onMouseLeave\"];\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport defaultRequest from './request';\nimport getUid from './uid';\nimport attrAccept from './attr-accept';\nimport traverseFileTree from './traverseFileTree';\nvar AjaxUploader = /*#__PURE__*/function (_Component) {\n _inherits(AjaxUploader, _Component);\n var _super = _createSuper(AjaxUploader);\n function AjaxUploader() {\n var _this;\n _classCallCheck(this, AjaxUploader);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n uid: getUid()\n };\n _this.reqs = {};\n _this.fileInput = void 0;\n _this._isMounted = void 0;\n _this.onChange = function (e) {\n var _this$props = _this.props,\n accept = _this$props.accept,\n directory = _this$props.directory;\n var files = e.target.files;\n var acceptedFiles = _toConsumableArray(files).filter(function (file) {\n return !directory || attrAccept(file, accept);\n });\n _this.uploadFiles(acceptedFiles);\n _this.reset();\n };\n _this.onClick = function (e) {\n var el = _this.fileInput;\n if (!el) {\n return;\n }\n var _this$props2 = _this.props,\n children = _this$props2.children,\n onClick = _this$props2.onClick;\n if (children && children.type === 'button') {\n var parent = el.parentNode;\n parent.focus();\n parent.querySelector('button').blur();\n }\n el.click();\n if (onClick) {\n onClick(e);\n }\n };\n _this.onKeyDown = function (e) {\n if (e.key === 'Enter') {\n _this.onClick(e);\n }\n };\n _this.onFileDrop = function (e) {\n var multiple = _this.props.multiple;\n e.preventDefault();\n if (e.type === 'dragover') {\n return;\n }\n if (_this.props.directory) {\n traverseFileTree(Array.prototype.slice.call(e.dataTransfer.items), _this.uploadFiles, function (_file) {\n return attrAccept(_file, _this.props.accept);\n });\n } else {\n var files = _toConsumableArray(e.dataTransfer.files).filter(function (file) {\n return attrAccept(file, _this.props.accept);\n });\n if (multiple === false) {\n files = files.slice(0, 1);\n }\n _this.uploadFiles(files);\n }\n };\n _this.uploadFiles = function (files) {\n var originFiles = _toConsumableArray(files);\n var postFiles = originFiles.map(function (file) {\n // eslint-disable-next-line no-param-reassign\n file.uid = getUid();\n return _this.processFile(file, originFiles);\n });\n // Batch upload files\n Promise.all(postFiles).then(function (fileList) {\n var onBatchStart = _this.props.onBatchStart;\n onBatchStart === null || onBatchStart === void 0 ? void 0 : onBatchStart(fileList.map(function (_ref) {\n var origin = _ref.origin,\n parsedFile = _ref.parsedFile;\n return {\n file: origin,\n parsedFile: parsedFile\n };\n }));\n fileList.filter(function (file) {\n return file.parsedFile !== null;\n }).forEach(function (file) {\n _this.post(file);\n });\n });\n };\n /**\n * Process file before upload. When all the file is ready, we start upload.\n */\n _this.processFile = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(file, fileList) {\n var beforeUpload, transformedFile, action, mergedAction, data, mergedData, parsedData, parsedFile, mergedParsedFile;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n beforeUpload = _this.props.beforeUpload;\n transformedFile = file;\n if (!beforeUpload) {\n _context.next = 14;\n break;\n }\n _context.prev = 3;\n _context.next = 6;\n return beforeUpload(file, fileList);\n case 6:\n transformedFile = _context.sent;\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](3);\n // Rejection will also trade as false\n transformedFile = false;\n case 12:\n if (!(transformedFile === false)) {\n _context.next = 14;\n break;\n }\n return _context.abrupt(\"return\", {\n origin: file,\n parsedFile: null,\n action: null,\n data: null\n });\n case 14:\n // Get latest action\n action = _this.props.action;\n if (!(typeof action === 'function')) {\n _context.next = 21;\n break;\n }\n _context.next = 18;\n return action(file);\n case 18:\n mergedAction = _context.sent;\n _context.next = 22;\n break;\n case 21:\n mergedAction = action;\n case 22:\n // Get latest data\n data = _this.props.data;\n if (!(typeof data === 'function')) {\n _context.next = 29;\n break;\n }\n _context.next = 26;\n return data(file);\n case 26:\n mergedData = _context.sent;\n _context.next = 30;\n break;\n case 29:\n mergedData = data;\n case 30:\n parsedData =\n // string type is from legacy `transformFile`.\n // Not sure if this will work since no related test case works with it\n (_typeof(transformedFile) === 'object' || typeof transformedFile === 'string') && transformedFile ? transformedFile : file;\n if (parsedData instanceof File) {\n parsedFile = parsedData;\n } else {\n parsedFile = new File([parsedData], file.name, {\n type: file.type\n });\n }\n mergedParsedFile = parsedFile;\n mergedParsedFile.uid = file.uid;\n return _context.abrupt(\"return\", {\n origin: file,\n data: mergedData,\n parsedFile: mergedParsedFile,\n action: mergedAction\n });\n case 35:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[3, 9]]);\n }));\n return function (_x, _x2) {\n return _ref2.apply(this, arguments);\n };\n }();\n _this.saveFileInput = function (node) {\n _this.fileInput = node;\n };\n return _this;\n }\n _createClass(AjaxUploader, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._isMounted = true;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._isMounted = false;\n this.abort();\n }\n }, {\n key: \"post\",\n value: function post(_ref3) {\n var _this2 = this;\n var data = _ref3.data,\n origin = _ref3.origin,\n action = _ref3.action,\n parsedFile = _ref3.parsedFile;\n if (!this._isMounted) {\n return;\n }\n var _this$props3 = this.props,\n onStart = _this$props3.onStart,\n customRequest = _this$props3.customRequest,\n name = _this$props3.name,\n headers = _this$props3.headers,\n withCredentials = _this$props3.withCredentials,\n method = _this$props3.method;\n var uid = origin.uid;\n var request = customRequest || defaultRequest;\n var requestOption = {\n action: action,\n filename: name,\n data: data,\n file: parsedFile,\n headers: headers,\n withCredentials: withCredentials,\n method: method || 'post',\n onProgress: function onProgress(e) {\n var onProgress = _this2.props.onProgress;\n onProgress === null || onProgress === void 0 ? void 0 : onProgress(e, parsedFile);\n },\n onSuccess: function onSuccess(ret, xhr) {\n var onSuccess = _this2.props.onSuccess;\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(ret, parsedFile, xhr);\n delete _this2.reqs[uid];\n },\n onError: function onError(err, ret) {\n var onError = _this2.props.onError;\n onError === null || onError === void 0 ? void 0 : onError(err, ret, parsedFile);\n delete _this2.reqs[uid];\n }\n };\n onStart(origin);\n this.reqs[uid] = request(requestOption);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.setState({\n uid: getUid()\n });\n }\n }, {\n key: \"abort\",\n value: function abort(file) {\n var reqs = this.reqs;\n if (file) {\n var uid = file.uid ? file.uid : file;\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n delete reqs[uid];\n } else {\n Object.keys(reqs).forEach(function (uid) {\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n delete reqs[uid];\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n var _this$props4 = this.props,\n Tag = _this$props4.component,\n prefixCls = _this$props4.prefixCls,\n className = _this$props4.className,\n disabled = _this$props4.disabled,\n id = _this$props4.id,\n style = _this$props4.style,\n multiple = _this$props4.multiple,\n accept = _this$props4.accept,\n capture = _this$props4.capture,\n children = _this$props4.children,\n directory = _this$props4.directory,\n openFileDialogOnClick = _this$props4.openFileDialogOnClick,\n onMouseEnter = _this$props4.onMouseEnter,\n onMouseLeave = _this$props4.onMouseLeave,\n otherProps = _objectWithoutProperties(_this$props4, _excluded);\n var cls = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, className, className), _classNames));\n // because input don't have directory/webkitdirectory type declaration\n var dirProps = directory ? {\n directory: 'directory',\n webkitdirectory: 'webkitdirectory'\n } : {};\n var events = disabled ? {} : {\n onClick: openFileDialogOnClick ? this.onClick : function () {},\n onKeyDown: openFileDialogOnClick ? this.onKeyDown : function () {},\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onDrop: this.onFileDrop,\n onDragOver: this.onFileDrop,\n tabIndex: '0'\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({}, events, {\n className: cls,\n role: \"button\",\n style: style\n }), /*#__PURE__*/React.createElement(\"input\", _extends({}, pickAttrs(otherProps, {\n aria: true,\n data: true\n }), {\n id: id,\n disabled: disabled,\n type: \"file\",\n ref: this.saveFileInput,\n onClick: function onClick(e) {\n return e.stopPropagation();\n } // https://github.com/ant-design/ant-design/issues/19948\n ,\n key: this.state.uid,\n style: {\n display: 'none'\n },\n accept: accept\n }, dirProps, {\n multiple: multiple,\n onChange: this.onChange\n }, capture != null ? {\n capture: capture\n } : {})), children);\n }\n }]);\n return AjaxUploader;\n}(Component);\nexport default AjaxUploader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types:0 */\nimport React, { Component } from 'react';\nimport AjaxUpload from './AjaxUploader';\nfunction empty() {}\nvar Upload = /*#__PURE__*/function (_Component) {\n _inherits(Upload, _Component);\n var _super = _createSuper(Upload);\n function Upload() {\n var _this;\n _classCallCheck(this, Upload);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.uploader = void 0;\n _this.saveUploader = function (node) {\n _this.uploader = node;\n };\n return _this;\n }\n _createClass(Upload, [{\n key: \"abort\",\n value: function abort(file) {\n this.uploader.abort(file);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(AjaxUpload, _extends({}, this.props, {\n ref: this.saveUploader\n }));\n }\n }]);\n return Upload;\n}(Component);\nUpload.defaultProps = {\n component: 'span',\n prefixCls: 'rc-upload',\n data: {},\n headers: {},\n name: 'file',\n multipart: false,\n onStart: empty,\n onError: empty,\n onSuccess: empty,\n multiple: false,\n beforeUpload: null,\n customRequest: null,\n withCredentials: false,\n openFileDialogOnClick: true\n};\nexport default Upload;","import Upload from './Upload';\nexport default Upload;","// This icon file is generated automatically.\nvar FileTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M534 352V136H232v752h560V394H576a42 42 0 01-42-42z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z\", \"fill\": primaryColor } }] }; }, \"name\": \"file\", \"theme\": \"twotone\" };\nexport default FileTwoTone;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FileTwoToneSvg from \"@ant-design/icons-svg/es/asn/FileTwoTone\";\nimport AntdIcon from '../components/AntdIcon';\nvar FileTwoTone = function FileTwoTone(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FileTwoToneSvg\n }));\n};\nFileTwoTone.displayName = 'FileTwoTone';\nexport default /*#__PURE__*/React.forwardRef(FileTwoTone);","// This icon file is generated automatically.\nvar PictureTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z\", \"fill\": primaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 110 176 88 88 0 010-176z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M276 368a28 28 0 1056 0 28 28 0 10-56 0z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z\", \"fill\": primaryColor } }] }; }, \"name\": \"picture\", \"theme\": \"twotone\" };\nexport default PictureTwoTone;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PictureTwoToneSvg from \"@ant-design/icons-svg/es/asn/PictureTwoTone\";\nimport AntdIcon from '../components/AntdIcon';\nvar PictureTwoTone = function PictureTwoTone(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PictureTwoToneSvg\n }));\n};\nPictureTwoTone.displayName = 'PictureTwoTone';\nexport default /*#__PURE__*/React.forwardRef(PictureTwoTone);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport function file2Obj(file) {\n return _extends(_extends({}, file), {\n lastModified: file.lastModified,\n lastModifiedDate: file.lastModifiedDate,\n name: file.name,\n size: file.size,\n type: file.type,\n uid: file.uid,\n percent: 0,\n originFileObj: file\n });\n}\n/** Upload fileList. Replace file if exist or just push into it. */\nexport function updateFileList(file, fileList) {\n var nextFileList = _toConsumableArray(fileList);\n var fileIndex = nextFileList.findIndex(function (_ref) {\n var uid = _ref.uid;\n return uid === file.uid;\n });\n if (fileIndex === -1) {\n nextFileList.push(file);\n } else {\n nextFileList[fileIndex] = file;\n }\n return nextFileList;\n}\nexport function getFileItem(file, fileList) {\n var matchKey = file.uid !== undefined ? 'uid' : 'name';\n return fileList.filter(function (item) {\n return item[matchKey] === file[matchKey];\n })[0];\n}\nexport function removeFileItem(file, fileList) {\n var matchKey = file.uid !== undefined ? 'uid' : 'name';\n var removed = fileList.filter(function (item) {\n return item[matchKey] !== file[matchKey];\n });\n if (removed.length === fileList.length) {\n return null;\n }\n return removed;\n}\n// ==================== Default Image Preview ====================\nvar extname = function extname() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var temp = url.split('/');\n var filename = temp[temp.length - 1];\n var filenameWithoutSuffix = filename.split(/#|\\?/)[0];\n return (/\\.[^./\\\\]*$/.exec(filenameWithoutSuffix) || [''])[0];\n};\nvar isImageFileType = function isImageFileType(type) {\n return type.indexOf('image/') === 0;\n};\nexport var isImageUrl = function isImageUrl(file) {\n if (file.type && !file.thumbUrl) {\n return isImageFileType(file.type);\n }\n var url = file.thumbUrl || file.url || '';\n var extension = extname(url);\n if (/^data:image\\//.test(url) || /(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico|heic|heif)$/i.test(extension)) {\n return true;\n }\n if (/^data:/.test(url)) {\n // other file types of base64\n return false;\n }\n if (extension) {\n // other file types which have extension\n return false;\n }\n return true;\n};\nvar MEASURE_SIZE = 200;\nexport function previewImage(file) {\n return new Promise(function (resolve) {\n if (!file.type || !isImageFileType(file.type)) {\n resolve('');\n return;\n }\n var canvas = document.createElement('canvas');\n canvas.width = MEASURE_SIZE;\n canvas.height = MEASURE_SIZE;\n canvas.style.cssText = \"position: fixed; left: 0; top: 0; width: \".concat(MEASURE_SIZE, \"px; height: \").concat(MEASURE_SIZE, \"px; z-index: 9999; display: none;\");\n document.body.appendChild(canvas);\n var ctx = canvas.getContext('2d');\n var img = new Image();\n img.onload = function () {\n var width = img.width,\n height = img.height;\n var drawWidth = MEASURE_SIZE;\n var drawHeight = MEASURE_SIZE;\n var offsetX = 0;\n var offsetY = 0;\n if (width > height) {\n drawHeight = height * (MEASURE_SIZE / width);\n offsetY = -(drawHeight - drawWidth) / 2;\n } else {\n drawWidth = width * (MEASURE_SIZE / height);\n offsetX = -(drawWidth - drawHeight) / 2;\n }\n ctx.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);\n var dataURL = canvas.toDataURL();\n document.body.removeChild(canvas);\n window.URL.revokeObjectURL(img.src);\n resolve(dataURL);\n };\n img.crossOrigin = 'anonymous';\n if (file.type.startsWith('image/svg+xml')) {\n var reader = new FileReader();\n reader.onload = function () {\n if (reader.result) img.src = reader.result;\n };\n reader.readAsDataURL(file);\n } else if (file.type.startsWith('image/gif')) {\n var _reader = new FileReader();\n _reader.onload = function () {\n if (_reader.result) resolve(_reader.result);\n };\n _reader.readAsDataURL(file);\n } else {\n img.src = window.URL.createObjectURL(file);\n }\n });\n}","// This icon file is generated automatically.\nvar DownloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"download\", \"theme\": \"outlined\" };\nexport default DownloadOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DownloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownloadOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DownloadOutlined = function DownloadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DownloadOutlinedSvg\n }));\n};\nDownloadOutlined.displayName = 'DownloadOutlined';\nexport default /*#__PURE__*/React.forwardRef(DownloadOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport DeleteOutlined from \"@ant-design/icons/es/icons/DeleteOutlined\";\nimport DownloadOutlined from \"@ant-design/icons/es/icons/DownloadOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport Progress from '../../progress';\nimport Tooltip from '../../tooltip';\nvar ListItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n locale = _ref.locale,\n listType = _ref.listType,\n file = _ref.file,\n items = _ref.items,\n progressProps = _ref.progress,\n iconRender = _ref.iconRender,\n actionIconRender = _ref.actionIconRender,\n itemRender = _ref.itemRender,\n isImgUrl = _ref.isImgUrl,\n showPreviewIcon = _ref.showPreviewIcon,\n showRemoveIcon = _ref.showRemoveIcon,\n showDownloadIcon = _ref.showDownloadIcon,\n customPreviewIcon = _ref.previewIcon,\n customRemoveIcon = _ref.removeIcon,\n customDownloadIcon = _ref.downloadIcon,\n onPreview = _ref.onPreview,\n onDownload = _ref.onDownload,\n onClose = _ref.onClose;\n var _a, _b;\n // Status: which will ignore `removed` status\n var status = file.status;\n var _React$useState = React.useState(status),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mergedStatus = _React$useState2[0],\n setMergedStatus = _React$useState2[1];\n React.useEffect(function () {\n if (status !== 'removed') {\n setMergedStatus(status);\n }\n }, [status]);\n // Delay to show the progress bar\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n showProgress = _React$useState4[0],\n setShowProgress = _React$useState4[1];\n var progressRafRef = React.useRef(null);\n React.useEffect(function () {\n progressRafRef.current = setTimeout(function () {\n setShowProgress(true);\n }, 300);\n return function () {\n if (progressRafRef.current) {\n clearTimeout(progressRafRef.current);\n }\n };\n }, []);\n // This is used for legacy span make scrollHeight the wrong value.\n // We will force these to be `display: block` with non `picture-card`\n var spanClassName = \"\".concat(prefixCls, \"-span\");\n var iconNode = iconRender(file);\n var icon = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-text-icon\")\n }, iconNode);\n if (listType === 'picture' || listType === 'picture-card') {\n if (mergedStatus === 'uploading' || !file.thumbUrl && !file.url) {\n var uploadingClassName = classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-list-item-thumbnail\"), true), \"\".concat(prefixCls, \"-list-item-file\"), mergedStatus !== 'uploading'));\n icon = /*#__PURE__*/React.createElement(\"div\", {\n className: uploadingClassName\n }, iconNode);\n } else {\n var thumbnail = (isImgUrl === null || isImgUrl === void 0 ? void 0 : isImgUrl(file)) ? ( /*#__PURE__*/React.createElement(\"img\", {\n src: file.thumbUrl || file.url,\n alt: file.name,\n className: \"\".concat(prefixCls, \"-list-item-image\"),\n crossOrigin: file.crossOrigin\n })) : iconNode;\n var aClassName = classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-list-item-thumbnail\"), true), \"\".concat(prefixCls, \"-list-item-file\"), isImgUrl && !isImgUrl(file)));\n icon = /*#__PURE__*/React.createElement(\"a\", {\n className: aClassName,\n onClick: function onClick(e) {\n return onPreview(file, e);\n },\n href: file.url || file.thumbUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, thumbnail);\n }\n }\n var infoUploadingClass = classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-list-item\"), true), \"\".concat(prefixCls, \"-list-item-\").concat(mergedStatus), true), \"\".concat(prefixCls, \"-list-item-list-type-\").concat(listType), true));\n var linkProps = typeof file.linkProps === 'string' ? JSON.parse(file.linkProps) : file.linkProps;\n var removeIcon = showRemoveIcon ? actionIconRender((typeof customRemoveIcon === 'function' ? customRemoveIcon(file) : customRemoveIcon) || ( /*#__PURE__*/React.createElement(DeleteOutlined, null)), function () {\n return onClose(file);\n }, prefixCls, locale.removeFile) : null;\n var downloadIcon = showDownloadIcon && mergedStatus === 'done' ? actionIconRender((typeof customDownloadIcon === 'function' ? customDownloadIcon(file) : customDownloadIcon) || /*#__PURE__*/React.createElement(DownloadOutlined, null), function () {\n return onDownload(file);\n }, prefixCls, locale.downloadFile) : null;\n var downloadOrDelete = listType !== 'picture-card' && ( /*#__PURE__*/React.createElement(\"span\", {\n key: \"download-delete\",\n className: classNames(\"\".concat(prefixCls, \"-list-item-card-actions\"), {\n picture: listType === 'picture'\n })\n }, downloadIcon, removeIcon));\n var listItemNameClass = classNames(\"\".concat(prefixCls, \"-list-item-name\"));\n var preview = file.url ? [/*#__PURE__*/React.createElement(\"a\", _extends({\n key: \"view\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: listItemNameClass,\n title: file.name\n }, linkProps, {\n href: file.url,\n onClick: function onClick(e) {\n return onPreview(file, e);\n }\n }), file.name), downloadOrDelete] : [/*#__PURE__*/React.createElement(\"span\", {\n key: \"view\",\n className: listItemNameClass,\n onClick: function onClick(e) {\n return onPreview(file, e);\n },\n title: file.name\n }, file.name), downloadOrDelete];\n var previewStyle = {\n pointerEvents: 'none',\n opacity: 0.5\n };\n var previewIcon = showPreviewIcon ? ( /*#__PURE__*/React.createElement(\"a\", {\n href: file.url || file.thumbUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n style: file.url || file.thumbUrl ? undefined : previewStyle,\n onClick: function onClick(e) {\n return onPreview(file, e);\n },\n title: locale.previewFile\n }, typeof customPreviewIcon === 'function' ? customPreviewIcon(file) : customPreviewIcon || /*#__PURE__*/React.createElement(EyeOutlined, null))) : null;\n var actions = listType === 'picture-card' && mergedStatus !== 'uploading' && ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-list-item-actions\")\n }, previewIcon, mergedStatus === 'done' && downloadIcon, removeIcon));\n var message;\n if (file.response && typeof file.response === 'string') {\n message = file.response;\n } else {\n message = ((_a = file.error) === null || _a === void 0 ? void 0 : _a.statusText) || ((_b = file.error) === null || _b === void 0 ? void 0 : _b.message) || locale.uploadError;\n }\n var iconAndPreview = /*#__PURE__*/React.createElement(\"span\", {\n className: spanClassName\n }, icon, preview);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var rootPrefixCls = getPrefixCls();\n var dom = /*#__PURE__*/React.createElement(\"div\", {\n className: infoUploadingClass\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-list-item-info\")\n }, iconAndPreview), actions, showProgress && ( /*#__PURE__*/React.createElement(CSSMotion, {\n motionName: \"\".concat(rootPrefixCls, \"-fade\"),\n visible: mergedStatus === 'uploading',\n motionDeadline: 2000\n }, function (_ref2) {\n var motionClassName = _ref2.className;\n // show loading icon if upload progress listener is disabled\n var loadingProgress = 'percent' in file ? ( /*#__PURE__*/React.createElement(Progress, _extends({}, progressProps, {\n type: \"line\",\n percent: file.percent\n }))) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-list-item-progress\"), motionClassName)\n }, loadingProgress);\n })));\n var listContainerNameClass = classNames(\"\".concat(prefixCls, \"-list-\").concat(listType, \"-container\"), className);\n var item = mergedStatus === 'error' ? ( /*#__PURE__*/React.createElement(Tooltip, {\n title: message,\n getPopupContainer: function getPopupContainer(node) {\n return node.parentNode;\n }\n }, dom)) : dom;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: listContainerNameClass,\n style: style,\n ref: ref\n }, itemRender ? itemRender(item, file, items, {\n download: onDownload.bind(null, file),\n preview: onPreview.bind(null, file),\n remove: onClose.bind(null, file)\n }) : item);\n});\nexport default ListItem;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport FileTwoTone from \"@ant-design/icons/es/icons/FileTwoTone\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport PaperClipOutlined from \"@ant-design/icons/es/icons/PaperClipOutlined\";\nimport PictureTwoTone from \"@ant-design/icons/es/icons/PictureTwoTone\";\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport * as React from 'react';\nimport Button from '../../button';\nimport { ConfigContext } from '../../config-provider';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport collapseMotion from '../../_util/motion';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nimport { isImageUrl, previewImage } from '../utils';\nimport ListItem from './ListItem';\nvar listItemMotion = _extends({}, collapseMotion);\ndelete listItemMotion.onAppearEnd;\ndelete listItemMotion.onEnterEnd;\ndelete listItemMotion.onLeaveEnd;\nvar InternalUploadList = function InternalUploadList(props, ref) {\n var _props$listType = props.listType,\n listType = _props$listType === void 0 ? 'text' : _props$listType,\n _props$previewFile = props.previewFile,\n previewFile = _props$previewFile === void 0 ? previewImage : _props$previewFile,\n onPreview = props.onPreview,\n onDownload = props.onDownload,\n onRemove = props.onRemove,\n locale = props.locale,\n iconRender = props.iconRender,\n _props$isImageUrl = props.isImageUrl,\n isImgUrl = _props$isImageUrl === void 0 ? isImageUrl : _props$isImageUrl,\n customizePrefixCls = props.prefixCls,\n _props$items = props.items,\n items = _props$items === void 0 ? [] : _props$items,\n _props$showPreviewIco = props.showPreviewIcon,\n showPreviewIcon = _props$showPreviewIco === void 0 ? true : _props$showPreviewIco,\n _props$showRemoveIcon = props.showRemoveIcon,\n showRemoveIcon = _props$showRemoveIcon === void 0 ? true : _props$showRemoveIcon,\n _props$showDownloadIc = props.showDownloadIcon,\n showDownloadIcon = _props$showDownloadIc === void 0 ? false : _props$showDownloadIc,\n removeIcon = props.removeIcon,\n previewIcon = props.previewIcon,\n downloadIcon = props.downloadIcon,\n _props$progress = props.progress,\n progress = _props$progress === void 0 ? {\n strokeWidth: 2,\n showInfo: false\n } : _props$progress,\n appendAction = props.appendAction,\n _props$appendActionVi = props.appendActionVisible,\n appendActionVisible = _props$appendActionVi === void 0 ? true : _props$appendActionVi,\n itemRender = props.itemRender,\n disabled = props.disabled;\n var forceUpdate = useForceUpdate();\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n motionAppear = _React$useState2[0],\n setMotionAppear = _React$useState2[1];\n // ============================= Effect =============================\n React.useEffect(function () {\n if (listType !== 'picture' && listType !== 'picture-card') {\n return;\n }\n (items || []).forEach(function (file) {\n if (typeof document === 'undefined' || typeof window === 'undefined' || !window.FileReader || !window.File || !(file.originFileObj instanceof File || file.originFileObj instanceof Blob) || file.thumbUrl !== undefined) {\n return;\n }\n file.thumbUrl = '';\n if (previewFile) {\n previewFile(file.originFileObj).then(function (previewDataUrl) {\n // Need append '' to avoid dead loop\n file.thumbUrl = previewDataUrl || '';\n forceUpdate();\n });\n }\n });\n }, [listType, items, previewFile]);\n React.useEffect(function () {\n setMotionAppear(true);\n }, []);\n // ============================= Events =============================\n var onInternalPreview = function onInternalPreview(file, e) {\n if (!onPreview) {\n return;\n }\n e === null || e === void 0 ? void 0 : e.preventDefault();\n return onPreview(file);\n };\n var onInternalDownload = function onInternalDownload(file) {\n if (typeof onDownload === 'function') {\n onDownload(file);\n } else if (file.url) {\n window.open(file.url);\n }\n };\n var onInternalClose = function onInternalClose(file) {\n onRemove === null || onRemove === void 0 ? void 0 : onRemove(file);\n };\n var internalIconRender = function internalIconRender(file) {\n if (iconRender) {\n return iconRender(file, listType);\n }\n var isLoading = file.status === 'uploading';\n var fileIcon = isImgUrl && isImgUrl(file) ? /*#__PURE__*/React.createElement(PictureTwoTone, null) : /*#__PURE__*/React.createElement(FileTwoTone, null);\n var icon = isLoading ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : /*#__PURE__*/React.createElement(PaperClipOutlined, null);\n if (listType === 'picture') {\n icon = isLoading ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : fileIcon;\n } else if (listType === 'picture-card') {\n icon = isLoading ? locale.uploading : fileIcon;\n }\n return icon;\n };\n var actionIconRender = function actionIconRender(customIcon, callback, prefixCls, title) {\n var btnProps = {\n type: 'text',\n size: 'small',\n title: title,\n disabled: disabled,\n onClick: function onClick(e) {\n callback();\n if (isValidElement(customIcon) && customIcon.props.onClick) {\n customIcon.props.onClick(e);\n }\n },\n className: \"\".concat(prefixCls, \"-list-item-card-actions-btn\")\n };\n if (isValidElement(customIcon)) {\n var btnIcon = cloneElement(customIcon, _extends(_extends({}, customIcon.props), {\n onClick: function onClick() {}\n }));\n return /*#__PURE__*/React.createElement(Button, _extends({}, btnProps, {\n icon: btnIcon\n }));\n }\n return /*#__PURE__*/React.createElement(Button, _extends({}, btnProps), /*#__PURE__*/React.createElement(\"span\", null, customIcon));\n };\n // ============================== Ref ===============================\n // Test needs\n React.useImperativeHandle(ref, function () {\n return {\n handlePreview: onInternalPreview,\n handleDownload: onInternalDownload\n };\n });\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n // ============================= Render =============================\n var prefixCls = getPrefixCls('upload', customizePrefixCls);\n var listClassNames = classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-list\"), true), \"\".concat(prefixCls, \"-list-\").concat(listType), true), \"\".concat(prefixCls, \"-list-rtl\"), direction === 'rtl'));\n // >>> Motion config\n var motionKeyList = _toConsumableArray(items.map(function (file) {\n return {\n key: file.uid,\n file: file\n };\n }));\n var animationDirection = listType === 'picture-card' ? 'animate-inline' : 'animate';\n // const transitionName = list.length === 0 ? '' : `${prefixCls}-${animationDirection}`;\n var motionConfig = {\n motionDeadline: 2000,\n motionName: \"\".concat(prefixCls, \"-\").concat(animationDirection),\n keys: motionKeyList,\n motionAppear: motionAppear\n };\n if (listType !== 'picture-card') {\n motionConfig = _extends(_extends({}, listItemMotion), motionConfig);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: listClassNames\n }, /*#__PURE__*/React.createElement(CSSMotionList, _extends({}, motionConfig, {\n component: false\n }), function (_ref) {\n var key = _ref.key,\n file = _ref.file,\n motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(ListItem, {\n key: key,\n locale: locale,\n prefixCls: prefixCls,\n className: motionClassName,\n style: motionStyle,\n file: file,\n items: items,\n progress: progress,\n listType: listType,\n isImgUrl: isImgUrl,\n showPreviewIcon: showPreviewIcon,\n showRemoveIcon: showRemoveIcon,\n showDownloadIcon: showDownloadIcon,\n removeIcon: removeIcon,\n previewIcon: previewIcon,\n downloadIcon: downloadIcon,\n iconRender: internalIconRender,\n actionIconRender: actionIconRender,\n itemRender: itemRender,\n onPreview: onInternalPreview,\n onDownload: onInternalDownload,\n onClose: onInternalClose\n });\n }), appendAction && ( /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionConfig, {\n visible: appendActionVisible,\n forceRender: true\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return cloneElement(appendAction, function (oriProps) {\n return {\n className: classNames(oriProps.className, motionClassName),\n style: _extends(_extends(_extends({}, motionStyle), {\n // prevent the element has hover css pseudo-class that may cause animation to end prematurely.\n pointerEvents: motionClassName ? 'none' : undefined\n }), oriProps.style)\n };\n });\n })));\n};\nvar UploadList = /*#__PURE__*/React.forwardRef(InternalUploadList);\nif (process.env.NODE_ENV !== 'production') {\n UploadList.displayName = 'UploadList';\n}\nexport default UploadList;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport classNames from 'classnames';\nimport RcUpload from 'rc-upload';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { flushSync } from 'react-dom';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport UploadList from './UploadList';\nimport { file2Obj, getFileItem, removeFileItem, updateFileList } from './utils';\nexport var LIST_IGNORE = \"__LIST_IGNORE_\".concat(Date.now(), \"__\");\nvar InternalUpload = function InternalUpload(props, ref) {\n var fileList = props.fileList,\n defaultFileList = props.defaultFileList,\n onRemove = props.onRemove,\n _props$showUploadList = props.showUploadList,\n showUploadList = _props$showUploadList === void 0 ? true : _props$showUploadList,\n _props$listType = props.listType,\n listType = _props$listType === void 0 ? 'text' : _props$listType,\n onPreview = props.onPreview,\n onDownload = props.onDownload,\n onChange = props.onChange,\n onDrop = props.onDrop,\n previewFile = props.previewFile,\n customDisabled = props.disabled,\n propLocale = props.locale,\n iconRender = props.iconRender,\n isImageUrl = props.isImageUrl,\n progress = props.progress,\n customizePrefixCls = props.prefixCls,\n className = props.className,\n _props$type = props.type,\n type = _props$type === void 0 ? 'select' : _props$type,\n children = props.children,\n style = props.style,\n itemRender = props.itemRender,\n maxCount = props.maxCount,\n _props$data = props.data,\n data = _props$data === void 0 ? {} : _props$data,\n _props$multiple = props.multiple,\n multiple = _props$multiple === void 0 ? false : _props$multiple,\n _props$action = props.action,\n action = _props$action === void 0 ? '' : _props$action,\n _props$accept = props.accept,\n accept = _props$accept === void 0 ? '' : _props$accept,\n _props$supportServerR = props.supportServerRender,\n supportServerRender = _props$supportServerR === void 0 ? true : _props$supportServerR;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var _useMergedState = useMergedState(defaultFileList || [], {\n value: fileList,\n postState: function postState(list) {\n return list !== null && list !== void 0 ? list : [];\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedFileList = _useMergedState2[0],\n setMergedFileList = _useMergedState2[1];\n var _React$useState = React.useState('drop'),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n dragState = _React$useState2[0],\n setDragState = _React$useState2[1];\n var upload = React.useRef(null);\n process.env.NODE_ENV !== \"production\" ? warning('fileList' in props || !('value' in props), 'Upload', '`value` is not a valid prop, do you mean `fileList`?') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!('transformFile' in props), 'Upload', '`transformFile` is deprecated. Please use `beforeUpload` directly.') : void 0;\n // Control mode will auto fill file uid if not provided\n React.useMemo(function () {\n var timestamp = Date.now();\n (fileList || []).forEach(function (file, index) {\n if (!file.uid && !Object.isFrozen(file)) {\n file.uid = \"__AUTO__\".concat(timestamp, \"_\").concat(index, \"__\");\n }\n });\n }, [fileList]);\n var onInternalChange = function onInternalChange(file, changedFileList, event) {\n var cloneList = _toConsumableArray(changedFileList);\n // Cut to match count\n if (maxCount === 1) {\n cloneList = cloneList.slice(-1);\n } else if (maxCount) {\n cloneList = cloneList.slice(0, maxCount);\n }\n // Prevent React18 auto batch since input[upload] trigger process at same time\n // which makes fileList closure problem\n flushSync(function () {\n setMergedFileList(cloneList);\n });\n var changeInfo = {\n file: file,\n fileList: cloneList\n };\n if (event) {\n changeInfo.event = event;\n }\n flushSync(function () {\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo);\n });\n };\n var mergedBeforeUpload = function mergedBeforeUpload(file, fileListArgs) {\n return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var beforeUpload, transformFile, parsedFile, result;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n beforeUpload = props.beforeUpload, transformFile = props.transformFile;\n parsedFile = file;\n if (!beforeUpload) {\n _context.next = 13;\n break;\n }\n _context.next = 5;\n return beforeUpload(file, fileListArgs);\n case 5:\n result = _context.sent;\n if (!(result === false)) {\n _context.next = 8;\n break;\n }\n return _context.abrupt(\"return\", false);\n case 8:\n // Hack for LIST_IGNORE, we add additional info to remove from the list\n delete file[LIST_IGNORE];\n if (!(result === LIST_IGNORE)) {\n _context.next = 12;\n break;\n }\n Object.defineProperty(file, LIST_IGNORE, {\n value: true,\n configurable: true\n });\n return _context.abrupt(\"return\", false);\n case 12:\n if (_typeof(result) === 'object' && result) {\n parsedFile = result;\n }\n case 13:\n if (!transformFile) {\n _context.next = 17;\n break;\n }\n _context.next = 16;\n return transformFile(parsedFile);\n case 16:\n parsedFile = _context.sent;\n case 17:\n return _context.abrupt(\"return\", parsedFile);\n case 18:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n };\n var onBatchStart = function onBatchStart(batchFileInfoList) {\n // Skip file which marked as `LIST_IGNORE`, these file will not add to file list\n var filteredFileInfoList = batchFileInfoList.filter(function (info) {\n return !info.file[LIST_IGNORE];\n });\n // Nothing to do since no file need upload\n if (!filteredFileInfoList.length) {\n return;\n }\n var objectFileList = filteredFileInfoList.map(function (info) {\n return file2Obj(info.file);\n });\n // Concat new files with prev files\n var newFileList = _toConsumableArray(mergedFileList);\n objectFileList.forEach(function (fileObj) {\n // Replace file if exist\n newFileList = updateFileList(fileObj, newFileList);\n });\n objectFileList.forEach(function (fileObj, index) {\n // Repeat trigger `onChange` event for compatible\n var triggerFileObj = fileObj;\n if (!filteredFileInfoList[index].parsedFile) {\n // `beforeUpload` return false\n var originFileObj = fileObj.originFileObj;\n var clone;\n try {\n clone = new File([originFileObj], originFileObj.name, {\n type: originFileObj.type\n });\n } catch (e) {\n clone = new Blob([originFileObj], {\n type: originFileObj.type\n });\n clone.name = originFileObj.name;\n clone.lastModifiedDate = new Date();\n clone.lastModified = new Date().getTime();\n }\n clone.uid = fileObj.uid;\n triggerFileObj = clone;\n } else {\n // Inject `uploading` status\n fileObj.status = 'uploading';\n }\n onInternalChange(triggerFileObj, newFileList);\n });\n };\n var onSuccess = function onSuccess(response, file, xhr) {\n try {\n if (typeof response === 'string') {\n response = JSON.parse(response);\n }\n } catch (e) {\n /* do nothing */\n }\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n var targetItem = file2Obj(file);\n targetItem.status = 'done';\n targetItem.percent = 100;\n targetItem.response = response;\n targetItem.xhr = xhr;\n var nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList);\n };\n var onProgress = function onProgress(e, file) {\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n var targetItem = file2Obj(file);\n targetItem.status = 'uploading';\n targetItem.percent = e.percent;\n var nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList, e);\n };\n var onError = function onError(error, response, file) {\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n var targetItem = file2Obj(file);\n targetItem.error = error;\n targetItem.response = response;\n targetItem.status = 'error';\n var nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList);\n };\n var handleRemove = function handleRemove(file) {\n var currentFile;\n Promise.resolve(typeof onRemove === 'function' ? onRemove(file) : onRemove).then(function (ret) {\n var _a;\n // Prevent removing file\n if (ret === false) {\n return;\n }\n var removedFileList = removeFileItem(file, mergedFileList);\n if (removedFileList) {\n currentFile = _extends(_extends({}, file), {\n status: 'removed'\n });\n mergedFileList === null || mergedFileList === void 0 ? void 0 : mergedFileList.forEach(function (item) {\n var matchKey = currentFile.uid !== undefined ? 'uid' : 'name';\n if (item[matchKey] === currentFile[matchKey] && !Object.isFrozen(item)) {\n item.status = 'removed';\n }\n });\n (_a = upload.current) === null || _a === void 0 ? void 0 : _a.abort(currentFile);\n onInternalChange(currentFile, removedFileList);\n }\n });\n };\n var onFileDrop = function onFileDrop(e) {\n setDragState(e.type);\n if (e.type === 'drop') {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(e);\n }\n };\n // Test needs\n React.useImperativeHandle(ref, function () {\n return {\n onBatchStart: onBatchStart,\n onSuccess: onSuccess,\n onProgress: onProgress,\n onError: onError,\n fileList: mergedFileList,\n upload: upload.current\n };\n });\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('upload', customizePrefixCls);\n var rcUploadProps = _extends(_extends({\n onBatchStart: onBatchStart,\n onError: onError,\n onProgress: onProgress,\n onSuccess: onSuccess\n }, props), {\n data: data,\n multiple: multiple,\n action: action,\n accept: accept,\n supportServerRender: supportServerRender,\n prefixCls: prefixCls,\n disabled: mergedDisabled,\n beforeUpload: mergedBeforeUpload,\n onChange: undefined\n });\n delete rcUploadProps.className;\n delete rcUploadProps.style;\n // Remove id to avoid open by label when trigger is hidden\n // !children: https://github.com/ant-design/ant-design/issues/14298\n // disabled: https://github.com/ant-design/ant-design/issues/16478\n // https://github.com/ant-design/ant-design/issues/24197\n if (!children || mergedDisabled) {\n delete rcUploadProps.id;\n }\n var renderUploadList = function renderUploadList(button, buttonVisible) {\n return showUploadList ? ( /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: 'Upload',\n defaultLocale: defaultLocale.Upload\n }, function (contextLocale) {\n var _ref = typeof showUploadList === 'boolean' ? {} : showUploadList,\n showRemoveIcon = _ref.showRemoveIcon,\n showPreviewIcon = _ref.showPreviewIcon,\n showDownloadIcon = _ref.showDownloadIcon,\n removeIcon = _ref.removeIcon,\n previewIcon = _ref.previewIcon,\n downloadIcon = _ref.downloadIcon;\n return /*#__PURE__*/React.createElement(UploadList, {\n prefixCls: prefixCls,\n listType: listType,\n items: mergedFileList,\n previewFile: previewFile,\n onPreview: onPreview,\n onDownload: onDownload,\n onRemove: handleRemove,\n showRemoveIcon: !mergedDisabled && showRemoveIcon,\n showPreviewIcon: showPreviewIcon,\n showDownloadIcon: showDownloadIcon,\n removeIcon: removeIcon,\n previewIcon: previewIcon,\n downloadIcon: downloadIcon,\n iconRender: iconRender,\n locale: _extends(_extends({}, contextLocale), propLocale),\n isImageUrl: isImageUrl,\n progress: progress,\n appendAction: button,\n appendActionVisible: buttonVisible,\n itemRender: itemRender,\n disabled: mergedDisabled\n });\n })) : button;\n };\n if (type === 'drag') {\n var dragCls = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-drag\"), true), \"\".concat(prefixCls, \"-drag-uploading\"), mergedFileList.some(function (file) {\n return file.status === 'uploading';\n })), \"\".concat(prefixCls, \"-drag-hover\"), dragState === 'dragover'), \"\".concat(prefixCls, \"-disabled\"), mergedDisabled), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(\"div\", {\n className: dragCls,\n onDrop: onFileDrop,\n onDragOver: onFileDrop,\n onDragLeave: onFileDrop,\n style: style\n }, /*#__PURE__*/React.createElement(RcUpload, _extends({}, rcUploadProps, {\n ref: upload,\n className: \"\".concat(prefixCls, \"-btn\")\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-drag-container\")\n }, children))), renderUploadList());\n }\n var uploadButtonCls = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-select\"), true), \"\".concat(prefixCls, \"-select-\").concat(listType), true), \"\".concat(prefixCls, \"-disabled\"), mergedDisabled), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'));\n var renderUploadButton = function renderUploadButton(uploadButtonStyle) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: uploadButtonCls,\n style: uploadButtonStyle\n }, /*#__PURE__*/React.createElement(RcUpload, _extends({}, rcUploadProps, {\n ref: upload\n })));\n };\n var uploadButton = renderUploadButton(children ? undefined : {\n display: 'none'\n });\n if (listType === 'picture-card') {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-picture-card-wrapper\"), className)\n }, renderUploadList(uploadButton, !!children));\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n }, uploadButton, renderUploadList());\n};\nvar Upload = /*#__PURE__*/React.forwardRef(InternalUpload);\nif (process.env.NODE_ENV !== 'production') {\n Upload.displayName = 'Upload';\n}\nexport default Upload;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Upload from './Upload';\nvar Dragger = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var style = _a.style,\n height = _a.height,\n restProps = __rest(_a, [\"style\", \"height\"]);\n return /*#__PURE__*/React.createElement(Upload, _extends({\n ref: ref\n }, restProps, {\n type: \"drag\",\n style: _extends(_extends({}, style), {\n height: height\n })\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Dragger.displayName = 'Dragger';\n}\nexport default Dragger;","import Dragger from './Dragger';\nimport InternalUpload, { LIST_IGNORE } from './Upload';\nvar Upload = InternalUpload;\nUpload.Dragger = Dragger;\nUpload.LIST_IGNORE = LIST_IGNORE;\nexport default Upload;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PresetStatusColorTypes = exports.PresetColorTypes = void 0;\nvar _type = require(\"./type\");\nvar PresetStatusColorTypes = exports.PresetStatusColorTypes = (0, _type.tuple)('success', 'processing', 'error', 'default', 'warning');\n// eslint-disable-next-line import/prefer-default-export\nvar PresetColorTypes = exports.PresetColorTypes = (0, _type.tuple)('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTransitionName = exports.getTransitionDirection = exports[\"default\"] = void 0;\nvar _type = require(\"./type\");\n// ================== Collapse Motion ==================\nvar getCollapsedHeight = function getCollapsedHeight() {\n return {\n height: 0,\n opacity: 0\n };\n};\nvar getRealHeight = function getRealHeight(node) {\n var scrollHeight = node.scrollHeight;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\nvar getCurrentHeight = function getCurrentHeight(node) {\n return {\n height: node ? node.offsetHeight : 0\n };\n};\nvar skipOpacityTransition = function skipOpacityTransition(_, event) {\n return (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\n};\nvar collapseMotion = {\n motionName: 'ant-motion-collapse',\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n};\nvar SelectPlacements = (0, _type.tuple)('bottomLeft', 'bottomRight', 'topLeft', 'topRight');\nvar getTransitionDirection = exports.getTransitionDirection = function getTransitionDirection(placement) {\n if (placement !== undefined && (placement === 'topLeft' || placement === 'topRight')) {\n return \"slide-down\";\n }\n return \"slide-up\";\n};\nvar getTransitionName = exports.getTransitionName = function getTransitionName(rootPrefixCls, motion, transitionName) {\n if (transitionName !== undefined) {\n return transitionName;\n }\n return \"\".concat(rootPrefixCls, \"-\").concat(motion);\n};\nvar _default = exports[\"default\"] = collapseMotion;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getPlacements;\nexports.getOverflowOptions = getOverflowOptions;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _placements = require(\"rc-tooltip/lib/placements\");\nvar autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nvar autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nvar targetOffset = [0, 0];\nfunction getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n return (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\nfunction getPlacements(config) {\n var _config$arrowWidth = config.arrowWidth,\n arrowWidth = _config$arrowWidth === void 0 ? 4 : _config$arrowWidth,\n _config$horizontalArr = config.horizontalArrowShift,\n horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr,\n _config$verticalArrow = config.verticalArrowShift,\n verticalArrowShift = _config$verticalArrow === void 0 ? 8 : _config$verticalArrow,\n autoAdjustOverflow = config.autoAdjustOverflow,\n arrowPointAtCenter = config.arrowPointAtCenter;\n var placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(function (key) {\n placementMap[key] = arrowPointAtCenter ? (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset: targetOffset\n }) : (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, _placements.placements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cloneElement = cloneElement;\nexports.isFragment = isFragment;\nexports.isValidElement = void 0;\nexports.replaceElement = replaceElement;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar isValidElement = exports.isValidElement = React.isValidElement;\nfunction isFragment(child) {\n return child && isValidElement(child) && child.type === React.Fragment;\n}\nfunction replaceElement(element, replacement, props) {\n if (!isValidElement(element)) {\n return replacement;\n }\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n}\nfunction cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getMergedStatus = void 0;\nexports.getStatusClassNames = getStatusClassNames;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _type = require(\"./type\");\nvar InputStatuses = (0, _type.tuple)('warning', 'error', '');\nfunction getStatusClassNames(prefixCls, status, hasFeedback) {\n return (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-status-success\"), status === 'success'), \"\".concat(prefixCls, \"-status-warning\"), status === 'warning'), \"\".concat(prefixCls, \"-status-error\"), status === 'error'), \"\".concat(prefixCls, \"-status-validating\"), status === 'validating'), \"\".concat(prefixCls, \"-has-feedback\"), hasFeedback));\n}\nvar getMergedStatus = exports.getMergedStatus = function getMergedStatus(contextStatus, customStatus) {\n return customStatus || contextStatus;\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.detectFlexGapSupported = exports.canUseDocElement = void 0;\nObject.defineProperty(exports, \"isStyleSupport\", {\n enumerable: true,\n get: function get() {\n return _styleChecker.isStyleSupport;\n }\n});\nvar _canUseDom = _interopRequireDefault(require(\"rc-util/lib/Dom/canUseDom\"));\nvar _styleChecker = require(\"rc-util/lib/Dom/styleChecker\");\nvar canUseDocElement = exports.canUseDocElement = function canUseDocElement() {\n return (0, _canUseDom[\"default\"])() && window.document.documentElement;\n};\nvar flexGapSupported;\nvar detectFlexGapSupported = exports.detectFlexGapSupported = function detectFlexGapSupported() {\n if (!canUseDocElement()) {\n return false;\n }\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n // create flex container with row-gap set\n var flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n document.body.removeChild(flex);\n return flexGapSupported;\n};","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _KeyCode = _interopRequireDefault(require(\"rc-util/lib/KeyCode\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n/**\n * Wrap of sub component which need use as Button capacity (like Icon component).\n *\n * This helps accessibility reader to tread as a interactive button to operation.\n */\n\nvar inlineStyle = {\n border: 0,\n background: 'transparent',\n padding: 0,\n lineHeight: 'inherit',\n display: 'inline-block'\n};\nvar TransButton = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var onKeyDown = function onKeyDown(event) {\n var keyCode = event.keyCode;\n if (keyCode === _KeyCode[\"default\"].ENTER) {\n event.preventDefault();\n }\n };\n var onKeyUp = function onKeyUp(event) {\n var keyCode = event.keyCode;\n var onClick = props.onClick;\n if (keyCode === _KeyCode[\"default\"].ENTER && onClick) {\n onClick();\n }\n };\n var style = props.style,\n noStyle = props.noStyle,\n disabled = props.disabled,\n restProps = __rest(props, [\"style\", \"noStyle\", \"disabled\"]);\n var mergedStyle = {};\n if (!noStyle) {\n mergedStyle = (0, _extends2[\"default\"])({}, inlineStyle);\n }\n if (disabled) {\n mergedStyle.pointerEvents = 'none';\n }\n mergedStyle = (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, mergedStyle), style);\n return /*#__PURE__*/React.createElement(\"div\", (0, _extends2[\"default\"])({\n role: \"button\",\n tabIndex: 0,\n ref: ref\n }, restProps, {\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n style: mergedStyle\n }));\n});\nvar _default = exports[\"default\"] = TransButton;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.tupleNum = exports.tuple = void 0;\n// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nvar tuple = exports.tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args;\n};\nvar tupleNum = exports.tupleNum = function tupleNum() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return args;\n};","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nexports.noop = noop;\nObject.defineProperty(exports, \"resetWarned\", {\n enumerable: true,\n get: function get() {\n return _warning.resetWarned;\n }\n});\nvar _warning = _interopRequireWildcard(require(\"rc-util/lib/warning\"));\nfunction noop() {}\n// eslint-disable-next-line import/no-mutable-exports\nvar warning = noop;\nif (process.env.NODE_ENV !== 'production') {\n warning = function warning(valid, component, message) {\n (0, _warning[\"default\"])(valid, \"[antd: \".concat(component, \"] \").concat(message));\n // StrictMode will inject console which will not throw warning in React 17.\n if (process.env.NODE_ENV === 'test') {\n (0, _warning.resetWarned)();\n }\n };\n}\nvar _default = exports[\"default\"] = warning;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _en_US = _interopRequireDefault(require(\"../../date-picker/locale/en_US\"));\nvar _default = exports[\"default\"] = _en_US[\"default\"];","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _rcCheckbox = _interopRequireDefault(require(\"rc-checkbox\"));\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar React = _react;\nvar _configProvider = require(\"../config-provider\");\nvar _context = require(\"../form/context\");\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\nvar _Group = require(\"./Group\");\nvar _DisabledContext = _interopRequireDefault(require(\"../config-provider/DisabledContext\"));\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar InternalCheckbox = function InternalCheckbox(_a, ref) {\n var _b;\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n children = _a.children,\n _a$indeterminate = _a.indeterminate,\n indeterminate = _a$indeterminate === void 0 ? false : _a$indeterminate,\n style = _a.style,\n onMouseEnter = _a.onMouseEnter,\n onMouseLeave = _a.onMouseLeave,\n _a$skipGroup = _a.skipGroup,\n skipGroup = _a$skipGroup === void 0 ? false : _a$skipGroup,\n disabled = _a.disabled,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"children\", \"indeterminate\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"skipGroup\", \"disabled\"]);\n var _React$useContext = React.useContext(_configProvider.ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var checkboxGroup = React.useContext(_Group.GroupContext);\n var _useContext = (0, _react.useContext)(_context.FormItemInputContext),\n isFormItemInput = _useContext.isFormItemInput;\n var contextDisabled = (0, _react.useContext)(_DisabledContext[\"default\"]);\n var mergedDisabled = (_b = (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.disabled) || disabled) !== null && _b !== void 0 ? _b : contextDisabled;\n var prevValue = React.useRef(restProps.value);\n React.useEffect(function () {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n process.env.NODE_ENV !== \"production\" ? (0, _warning[\"default\"])('checked' in restProps || !!checkboxGroup || !('value' in restProps), 'Checkbox', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n }, []);\n React.useEffect(function () {\n if (skipGroup) {\n return;\n }\n if (restProps.value !== prevValue.current) {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(prevValue.current);\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n prevValue.current = restProps.value;\n }\n return function () {\n return checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(restProps.value);\n };\n }, [restProps.value]);\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n var checkboxProps = (0, _extends2[\"default\"])({}, restProps);\n if (checkboxGroup && !skipGroup) {\n checkboxProps.onChange = function () {\n if (restProps.onChange) {\n restProps.onChange.apply(restProps, arguments);\n }\n if (checkboxGroup.toggleOption) {\n checkboxGroup.toggleOption({\n label: children,\n value: restProps.value\n });\n }\n };\n checkboxProps.name = checkboxGroup.name;\n checkboxProps.checked = checkboxGroup.value.includes(restProps.value);\n }\n var classString = (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-wrapper\"), true), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-wrapper-checked\"), checkboxProps.checked), \"\".concat(prefixCls, \"-wrapper-disabled\"), mergedDisabled), \"\".concat(prefixCls, \"-wrapper-in-form-item\"), isFormItemInput), className);\n var checkboxClass = (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-indeterminate\"), indeterminate));\n var ariaChecked = indeterminate ? 'mixed' : undefined;\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n React.createElement(\"label\", {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, /*#__PURE__*/React.createElement(_rcCheckbox[\"default\"], (0, _extends2[\"default\"])({\n \"aria-checked\": ariaChecked\n }, checkboxProps, {\n prefixCls: prefixCls,\n className: checkboxClass,\n disabled: mergedDisabled,\n ref: ref\n })), children !== undefined && /*#__PURE__*/React.createElement(\"span\", null, children))\n );\n};\nvar Checkbox = /*#__PURE__*/React.forwardRef(InternalCheckbox);\nif (process.env.NODE_ENV !== 'production') {\n Checkbox.displayName = 'Checkbox';\n}\nvar _default = exports[\"default\"] = Checkbox;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GroupContext = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _omit = _interopRequireDefault(require(\"rc-util/lib/omit\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _configProvider = require(\"../config-provider\");\nvar _Checkbox = _interopRequireDefault(require(\"./Checkbox\"));\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar GroupContext = exports.GroupContext = /*#__PURE__*/React.createContext(null);\nvar InternalCheckboxGroup = function InternalCheckboxGroup(_a, ref) {\n var defaultValue = _a.defaultValue,\n children = _a.children,\n _a$options = _a.options,\n options = _a$options === void 0 ? [] : _a$options,\n customizePrefixCls = _a.prefixCls,\n className = _a.className,\n style = _a.style,\n onChange = _a.onChange,\n restProps = __rest(_a, [\"defaultValue\", \"children\", \"options\", \"prefixCls\", \"className\", \"style\", \"onChange\"]);\n var _React$useContext = React.useContext(_configProvider.ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useState = React.useState(restProps.value || defaultValue || []),\n _React$useState2 = (0, _slicedToArray2[\"default\"])(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n var _React$useState3 = React.useState([]),\n _React$useState4 = (0, _slicedToArray2[\"default\"])(_React$useState3, 2),\n registeredValues = _React$useState4[0],\n setRegisteredValues = _React$useState4[1];\n React.useEffect(function () {\n if ('value' in restProps) {\n setValue(restProps.value || []);\n }\n }, [restProps.value]);\n var getOptions = function getOptions() {\n return options.map(function (option) {\n if (typeof option === 'string' || typeof option === 'number') {\n return {\n label: option,\n value: option\n };\n }\n return option;\n });\n };\n var cancelValue = function cancelValue(val) {\n setRegisteredValues(function (prevValues) {\n return prevValues.filter(function (v) {\n return v !== val;\n });\n });\n };\n var registerValue = function registerValue(val) {\n setRegisteredValues(function (prevValues) {\n return [].concat((0, _toConsumableArray2[\"default\"])(prevValues), [val]);\n });\n };\n var toggleOption = function toggleOption(option) {\n var optionIndex = value.indexOf(option.value);\n var newValue = (0, _toConsumableArray2[\"default\"])(value);\n if (optionIndex === -1) {\n newValue.push(option.value);\n } else {\n newValue.splice(optionIndex, 1);\n }\n if (!('value' in restProps)) {\n setValue(newValue);\n }\n var opts = getOptions();\n onChange === null || onChange === void 0 ? void 0 : onChange(newValue.filter(function (val) {\n return registeredValues.includes(val);\n }).sort(function (a, b) {\n var indexA = opts.findIndex(function (opt) {\n return opt.value === a;\n });\n var indexB = opts.findIndex(function (opt) {\n return opt.value === b;\n });\n return indexA - indexB;\n }));\n };\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var domProps = (0, _omit[\"default\"])(restProps, ['value', 'disabled']);\n if (options && options.length > 0) {\n children = getOptions().map(function (option) {\n return /*#__PURE__*/React.createElement(_Checkbox[\"default\"], {\n prefixCls: prefixCls,\n key: option.value.toString(),\n disabled: 'disabled' in option ? option.disabled : restProps.disabled,\n value: option.value,\n checked: value.includes(option.value),\n onChange: option.onChange,\n className: \"\".concat(groupPrefixCls, \"-item\"),\n style: option.style\n }, option.label);\n });\n }\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n var context = {\n toggleOption: toggleOption,\n value: value,\n disabled: restProps.disabled,\n name: restProps.name,\n // https://github.com/ant-design/ant-design/issues/16376\n registerValue: registerValue,\n cancelValue: cancelValue\n };\n var classString = (0, _classnames[\"default\"])(groupPrefixCls, (0, _defineProperty2[\"default\"])({}, \"\".concat(groupPrefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", (0, _extends2[\"default\"])({\n className: classString,\n style: style\n }, domProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(GroupContext.Provider, {\n value: context\n }, children));\n};\nvar CheckboxGroup = /*#__PURE__*/React.forwardRef(InternalCheckboxGroup);\nvar _default = exports[\"default\"] = /*#__PURE__*/React.memo(CheckboxGroup);","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.DisabledContextProvider = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar DisabledContext = /*#__PURE__*/React.createContext(false);\nvar DisabledContextProvider = exports.DisabledContextProvider = function DisabledContextProvider(_ref) {\n var children = _ref.children,\n disabled = _ref.disabled;\n var originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n }, children);\n};\nvar _default = exports[\"default\"] = DisabledContext;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.SizeContextProvider = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar SizeContext = /*#__PURE__*/React.createContext(undefined);\nvar SizeContextProvider = exports.SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nvar _default = exports[\"default\"] = SizeContext;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ConfigContext = exports.ConfigConsumer = void 0;\nexports.withConfigConsumer = withConfigConsumer;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar defaultGetPrefixCls = function defaultGetPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"ant-\".concat(suffixCls) : 'ant';\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will case circular dependency.\nvar ConfigContext = exports.ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: defaultGetPrefixCls\n});\nvar ConfigConsumer = exports.ConfigConsumer = ConfigContext.Consumer;\n/** @deprecated Use hooks instead. This is a legacy function */\nfunction withConfigConsumer(config) {\n return function withConfigConsumerFunc(Component) {\n // Wrap with ConfigConsumer. Since we need compatible with react 15, be care when using ref methods\n var SFC = function SFC(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (configProps) {\n var basicPrefixCls = config.prefixCls;\n var getPrefixCls = configProps.getPrefixCls;\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(basicPrefixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(Component, (0, _extends2[\"default\"])({}, configProps, props, {\n prefixCls: prefixCls\n }));\n });\n };\n var cons = Component.constructor;\n var name = cons && cons.displayName || Component.name || 'Component';\n if (process.env.NODE_ENV !== 'production') {\n SFC.displayName = \"withConfigConsumer(\".concat(name, \")\");\n }\n return SFC;\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getStyle = getStyle;\nexports.registerTheme = registerTheme;\nvar _colors = require(\"@ant-design/colors\");\nvar _tinycolor = require(\"@ctrl/tinycolor\");\nvar _canUseDom = _interopRequireDefault(require(\"rc-util/lib/Dom/canUseDom\"));\nvar _dynamicCSS = require(\"rc-util/lib/Dom/dynamicCSS\");\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n/* eslint-disable import/prefer-default-export, prefer-destructuring */\n\nvar dynamicStyleMark = \"-ant-\".concat(Date.now(), \"-\").concat(Math.random());\nfunction getStyle(globalPrefixCls, theme) {\n var variables = {};\n var formatColor = function formatColor(color, updater) {\n var clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n var fillColor = function fillColor(colorVal, type) {\n var baseColor = new _tinycolor.TinyColor(colorVal);\n var colorPalettes = (0, _colors.generate)(baseColor.toRgbString());\n variables[\"\".concat(type, \"-color\")] = formatColor(baseColor);\n variables[\"\".concat(type, \"-color-disabled\")] = colorPalettes[1];\n variables[\"\".concat(type, \"-color-hover\")] = colorPalettes[4];\n variables[\"\".concat(type, \"-color-active\")] = colorPalettes[6];\n variables[\"\".concat(type, \"-color-outline\")] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[\"\".concat(type, \"-color-deprecated-bg\")] = colorPalettes[0];\n variables[\"\".concat(type, \"-color-deprecated-border\")] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n var primaryColor = new _tinycolor.TinyColor(theme.primaryColor);\n var primaryColors = (0, _colors.generate)(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach(function (color, index) {\n variables[\"primary-\".concat(index + 1)] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, function (c) {\n return c.lighten(35);\n });\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, function (c) {\n return c.lighten(20);\n });\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, function (c) {\n return c.tint(20);\n });\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, function (c) {\n return c.tint(50);\n });\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.12);\n });\n var primaryActiveColor = new _tinycolor.TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.3);\n });\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, function (c) {\n return c.darken(2);\n });\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n var cssList = Object.keys(variables).map(function (key) {\n return \"--\".concat(globalPrefixCls, \"-\").concat(key, \": \").concat(variables[key], \";\");\n });\n return \"\\n :root {\\n \".concat(cssList.join('\\n'), \"\\n }\\n \").trim();\n}\nfunction registerTheme(globalPrefixCls, theme) {\n var style = getStyle(globalPrefixCls, theme);\n if ((0, _canUseDom[\"default\"])()) {\n (0, _dynamicCSS.updateCSS)(style, \"\".concat(dynamicStyleMark, \"-dynamic-theme\"));\n } else {\n process.env.NODE_ENV !== \"production\" ? (0, _warning[\"default\"])(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ConfigConsumer\", {\n enumerable: true,\n get: function get() {\n return _context.ConfigConsumer;\n }\n});\nObject.defineProperty(exports, \"ConfigContext\", {\n enumerable: true,\n get: function get() {\n return _context.ConfigContext;\n }\n});\nexports.globalConfig = exports.defaultPrefixCls = exports.defaultIconPrefixCls = exports[\"default\"] = exports.configConsumerProps = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _Context = _interopRequireDefault(require(\"@ant-design/icons/lib/components/Context\"));\nvar _useMemo = _interopRequireDefault(require(\"rc-util/lib/hooks/useMemo\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _set = require(\"rc-util/lib/utils/set\");\nvar _validateMessagesContext = _interopRequireDefault(require(\"../form/validateMessagesContext\"));\nvar _localeProvider = _interopRequireWildcard(require(\"../locale-provider\"));\nvar _LocaleReceiver = _interopRequireDefault(require(\"../locale-provider/LocaleReceiver\"));\nvar _default2 = _interopRequireDefault(require(\"../locale/default\"));\nvar _message = _interopRequireDefault(require(\"../message\"));\nvar _notification = _interopRequireDefault(require(\"../notification\"));\nvar _context = require(\"./context\");\nvar _cssVariables = require(\"./cssVariables\");\nvar _DisabledContext = require(\"./DisabledContext\");\nvar _SizeContext = _interopRequireWildcard(require(\"./SizeContext\"));\nvar configConsumerProps = exports.configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n// These props is used by `useContext` directly in sub component\nvar PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form'];\nvar defaultPrefixCls = exports.defaultPrefixCls = 'ant';\nvar defaultIconPrefixCls = exports.defaultIconPrefixCls = 'anticon';\nvar globalPrefixCls;\nvar globalIconPrefixCls;\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\nvar setGlobalConfig = function setGlobalConfig(_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n theme = _ref.theme;\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n if (theme) {\n (0, _cssVariables.registerTheme)(getGlobalPrefixCls(), theme);\n }\n};\nvar globalConfig = exports.globalConfig = function globalConfig() {\n return {\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"\".concat(getGlobalPrefixCls(), \"-\").concat(suffixCls) : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: function getRootPrefixCls(rootPrefixCls, customizePrefixCls) {\n // Customize rootPrefixCls is first priority\n if (rootPrefixCls) {\n return rootPrefixCls;\n }\n // If Global prefixCls provided, use this\n if (globalPrefixCls) {\n return globalPrefixCls;\n }\n // [Legacy] If customize prefixCls provided, we cut it to get the prefixCls\n if (customizePrefixCls && customizePrefixCls.includes('-')) {\n return customizePrefixCls.replace(/^(.*)-[^-]*$/, '$1');\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n }\n };\n};\nvar ProviderChildren = function ProviderChildren(props) {\n var children = props.children,\n csp = props.csp,\n autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n form = props.form,\n locale = props.locale,\n componentSize = props.componentSize,\n direction = props.direction,\n space = props.space,\n virtual = props.virtual,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n legacyLocale = props.legacyLocale,\n parentContext = props.parentContext,\n iconPrefixCls = props.iconPrefixCls,\n componentDisabled = props.componentDisabled;\n var getPrefixCls = React.useCallback(function (suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n var config = (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, parentContext), {\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction: direction,\n space: space,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n getPrefixCls: getPrefixCls\n });\n // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n PASSED_PROPS.forEach(function (propName) {\n var propValue = props[propName];\n if (propValue) {\n config[propName] = propValue;\n }\n });\n // https://github.com/ant-design/ant-design/issues/27617\n var memoedConfig = (0, _useMemo[\"default\"])(function () {\n return config;\n }, config, function (prevConfig, currentConfig) {\n var prevKeys = Object.keys(prevConfig);\n var currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(function (key) {\n return prevConfig[key] !== currentConfig[key];\n });\n });\n var memoIconContextValue = React.useMemo(function () {\n return {\n prefixCls: iconPrefixCls,\n csp: csp\n };\n }, [iconPrefixCls, csp]);\n var childNode = children;\n var validateMessages = React.useMemo(function () {\n var _a, _b, _c, _d;\n return (0, _set.merge)(((_a = _default2[\"default\"].Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || {}, ((_c = (_b = memoedConfig.locale) === null || _b === void 0 ? void 0 : _b.Form) === null || _c === void 0 ? void 0 : _c.defaultValidateMessages) || {}, ((_d = memoedConfig.form) === null || _d === void 0 ? void 0 : _d.validateMessages) || {}, (form === null || form === void 0 ? void 0 : form.validateMessages) || {});\n }, [memoedConfig, form === null || form === void 0 ? void 0 : form.validateMessages]);\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(_validateMessagesContext[\"default\"].Provider, {\n value: validateMessages\n }, children);\n }\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(_localeProvider[\"default\"], {\n locale: locale,\n _ANT_MARK__: _localeProvider.ANT_MARK\n }, childNode);\n }\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(_Context[\"default\"].Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(_SizeContext.SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(_DisabledContext.DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n return /*#__PURE__*/React.createElement(_context.ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\nvar ConfigProvider = function ConfigProvider(props) {\n React.useEffect(function () {\n if (props.direction) {\n _message[\"default\"].config({\n rtl: props.direction === 'rtl'\n });\n _notification[\"default\"].config({\n rtl: props.direction === 'rtl'\n });\n }\n }, [props.direction]);\n return /*#__PURE__*/React.createElement(_LocaleReceiver[\"default\"], null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(_context.ConfigConsumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ProviderChildren, (0, _extends2[\"default\"])({\n parentContext: context,\n legacyLocale: legacyLocale\n }, props));\n });\n });\n};\n/** @private internal Usage. do not use in your production */\nConfigProvider.ConfigContext = _context.ConfigContext;\nConfigProvider.SizeContext = _SizeContext[\"default\"];\nConfigProvider.config = setGlobalConfig;\nvar _default = exports[\"default\"] = ConfigProvider;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _en_US = _interopRequireDefault(require(\"rc-picker/lib/locale/en_US\"));\nvar _en_US2 = _interopRequireDefault(require(\"../../time-picker/locale/en_US\"));\n// Merge into a locale object\nvar locale = {\n lang: (0, _extends2[\"default\"])({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, _en_US[\"default\"]),\n timePickerLocale: (0, _extends2[\"default\"])({}, _en_US2[\"default\"])\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nvar _default = exports[\"default\"] = locale;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NoStyleItemContext = exports.NoFormStyle = exports.FormProvider = exports.FormItemPrefixContext = exports.FormItemInputContext = exports.FormContext = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _rcFieldForm = require(\"rc-field-form\");\nvar _omit = _interopRequireDefault(require(\"rc-util/lib/omit\"));\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar React = _react;\nvar FormContext = exports.FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: function itemRef() {}\n});\nvar NoStyleItemContext = exports.NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nvar FormProvider = exports.FormProvider = function FormProvider(props) {\n var providerProps = (0, _omit[\"default\"])(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(_rcFieldForm.FormProvider, (0, _extends2[\"default\"])({}, providerProps));\n};\nvar FormItemPrefixContext = exports.FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});\nvar FormItemInputContext = exports.FormItemInputContext = /*#__PURE__*/React.createContext({});\nvar NoFormStyle = exports.NoFormStyle = function NoFormStyle(_ref) {\n var children = _ref.children,\n status = _ref.status,\n override = _ref.override;\n var formItemInputContext = (0, _react.useContext)(FormItemInputContext);\n var newFormItemInputContext = (0, _react.useMemo)(function () {\n var newContext = (0, _extends2[\"default\"])({}, formItemInputContext);\n if (override) {\n delete newContext.isFormItemInput;\n }\n if (status) {\n delete newContext.status;\n delete newContext.hasFeedback;\n delete newContext.feedbackIcon;\n }\n return newContext;\n }, [status, override, formItemInputContext]);\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: newFormItemInputContext\n }, children);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = require(\"react\");\n// ZombieJ: We export single file here since\n// ConfigProvider use this which will make loop deps\n// to import whole `rc-field-form`\nvar _default = exports[\"default\"] = /*#__PURE__*/(0, _react.createContext)(undefined);","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _CloseCircleFilled = _interopRequireDefault(require(\"@ant-design/icons/CloseCircleFilled\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _context = require(\"../form/context\");\nvar _reactNode = require(\"../_util/reactNode\");\nvar _statusUtils = require(\"../_util/statusUtils\");\nvar _type = require(\"../_util/type\");\nvar ClearableInputType = (0, _type.tuple)('text', 'input');\nfunction hasAddon(props) {\n return !!(props.addonBefore || props.addonAfter);\n}\nvar ClearableLabeledInput = /*#__PURE__*/function (_React$Component) {\n (0, _inherits2[\"default\"])(ClearableLabeledInput, _React$Component);\n var _super = (0, _createSuper2[\"default\"])(ClearableLabeledInput);\n function ClearableLabeledInput() {\n (0, _classCallCheck2[\"default\"])(this, ClearableLabeledInput);\n return _super.apply(this, arguments);\n }\n (0, _createClass2[\"default\"])(ClearableLabeledInput, [{\n key: \"renderClearIcon\",\n value: function renderClearIcon(prefixCls) {\n var _this$props = this.props,\n value = _this$props.value,\n disabled = _this$props.disabled,\n readOnly = _this$props.readOnly,\n handleReset = _this$props.handleReset,\n suffix = _this$props.suffix;\n var needClear = !disabled && !readOnly && value;\n var className = \"\".concat(prefixCls, \"-clear-icon\");\n return /*#__PURE__*/React.createElement(_CloseCircleFilled[\"default\"], {\n onClick: handleReset,\n // Do not trigger onBlur when clear input\n // https://github.com/ant-design/ant-design/issues/31200\n onMouseDown: function onMouseDown(e) {\n return e.preventDefault();\n },\n className: (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(className, \"-hidden\"), !needClear), \"\".concat(className, \"-has-suffix\"), !!suffix), className),\n role: \"button\"\n });\n }\n }, {\n key: \"renderTextAreaWithClearIcon\",\n value: function renderTextAreaWithClearIcon(prefixCls, element, statusContext) {\n var _this$props2 = this.props,\n value = _this$props2.value,\n allowClear = _this$props2.allowClear,\n className = _this$props2.className,\n focused = _this$props2.focused,\n style = _this$props2.style,\n direction = _this$props2.direction,\n bordered = _this$props2.bordered,\n hidden = _this$props2.hidden,\n customStatus = _this$props2.status;\n var contextStatus = statusContext.status,\n hasFeedback = statusContext.hasFeedback;\n if (!allowClear) {\n return (0, _reactNode.cloneElement)(element, {\n value: value\n });\n }\n var affixWrapperCls = (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-affix-wrapper\"), \"\".concat(prefixCls, \"-affix-wrapper-textarea-with-clear-btn\"), (0, _statusUtils.getStatusClassNames)(\"\".concat(prefixCls, \"-affix-wrapper\"), (0, _statusUtils.getMergedStatus)(contextStatus, customStatus), hasFeedback), (0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-affix-wrapper-focused\"), focused), \"\".concat(prefixCls, \"-affix-wrapper-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-affix-wrapper-borderless\"), !bordered), \"\".concat(className), !hasAddon(this.props) && className));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: affixWrapperCls,\n style: style,\n hidden: hidden\n }, (0, _reactNode.cloneElement)(element, {\n style: null,\n value: value\n }), this.renderClearIcon(prefixCls));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n return /*#__PURE__*/React.createElement(_context.FormItemInputContext.Consumer, null, function (statusContext) {\n var _this$props3 = _this.props,\n prefixCls = _this$props3.prefixCls,\n inputType = _this$props3.inputType,\n element = _this$props3.element;\n if (inputType === ClearableInputType[0]) {\n return _this.renderTextAreaWithClearIcon(prefixCls, element, statusContext);\n }\n });\n }\n }]);\n return ClearableLabeledInput;\n}(React.Component);\nvar _default = exports[\"default\"] = ClearableLabeledInput;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nexports.fixControlledValue = fixControlledValue;\nexports.resolveOnChange = resolveOnChange;\nexports.triggerFocus = triggerFocus;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _CloseCircleFilled = _interopRequireDefault(require(\"@ant-design/icons/CloseCircleFilled\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _rcInput = _interopRequireDefault(require(\"rc-input\"));\nvar _ref2 = require(\"rc-util/lib/ref\");\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _configProvider = require(\"../config-provider\");\nvar _DisabledContext = _interopRequireDefault(require(\"../config-provider/DisabledContext\"));\nvar _SizeContext = _interopRequireDefault(require(\"../config-provider/SizeContext\"));\nvar _context = require(\"../form/context\");\nvar _Compact = require(\"../space/Compact\");\nvar _statusUtils = require(\"../_util/statusUtils\");\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\nvar _useRemovePasswordTimeout = _interopRequireDefault(require(\"./hooks/useRemovePasswordTimeout\"));\nvar _utils = require(\"./utils\");\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nfunction fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n return String(value);\n}\nfunction resolveOnChange(target, e, onChange, targetValue) {\n if (!onChange) {\n return;\n }\n var event = e;\n if (e.type === 'click') {\n // Clone a new target for event.\n // Avoid the following usage, the setQuery method gets the original value.\n //\n // const [query, setQuery] = React.useState('');\n // <Input\n // allowClear\n // value={query}\n // onChange={(e)=> {\n // setQuery((prevStatus) => e.target.value);\n // }}\n // />\n var currentTarget = target.cloneNode(true);\n // click clear icon\n event = Object.create(e, {\n target: {\n value: currentTarget\n },\n currentTarget: {\n value: currentTarget\n }\n });\n currentTarget.value = '';\n onChange(event);\n return;\n }\n // Trigger by composition event, this means we need force change the input value\n if (targetValue !== undefined) {\n event = Object.create(e, {\n target: {\n value: target\n },\n currentTarget: {\n value: target\n }\n });\n target.value = targetValue;\n onChange(event);\n return;\n }\n onChange(event);\n}\nfunction triggerFocus(element, option) {\n if (!element) {\n return;\n }\n element.focus(option);\n // Selection content\n var _ref = option || {},\n cursor = _ref.cursor;\n if (cursor) {\n var len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n break;\n }\n }\n}\nvar Input = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n customStatus = props.status,\n customSize = props.size,\n customDisabled = props.disabled,\n onBlur = props.onBlur,\n onFocus = props.onFocus,\n suffix = props.suffix,\n allowClear = props.allowClear,\n addonAfter = props.addonAfter,\n addonBefore = props.addonBefore,\n className = props.className,\n onChange = props.onChange,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"status\", \"size\", \"disabled\", \"onBlur\", \"onFocus\", \"suffix\", \"allowClear\", \"addonAfter\", \"addonBefore\", \"className\", \"onChange\"]);\n var _React$useContext = _react[\"default\"].useContext(_configProvider.ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n input = _React$useContext.input;\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n var inputRef = (0, _react.useRef)(null);\n // ===================== Compact Item =====================\n var _useCompactItemContex = (0, _Compact.useCompactItemContext)(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n // ===================== Size =====================\n var size = _react[\"default\"].useContext(_SizeContext[\"default\"]);\n var mergedSize = compactSize || customSize || size;\n // ===================== Disabled =====================\n var disabled = _react[\"default\"].useContext(_DisabledContext[\"default\"]);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n var _useContext = (0, _react.useContext)(_context.FormItemInputContext),\n contextStatus = _useContext.status,\n hasFeedback = _useContext.hasFeedback,\n feedbackIcon = _useContext.feedbackIcon;\n var mergedStatus = (0, _statusUtils.getMergedStatus)(contextStatus, customStatus);\n // ===================== Focus warning =====================\n var inputHasPrefixSuffix = (0, _utils.hasPrefixSuffix)(props) || !!hasFeedback;\n var prevHasPrefixSuffix = (0, _react.useRef)(inputHasPrefixSuffix);\n (0, _react.useEffect)(function () {\n var _a;\n if (inputHasPrefixSuffix && !prevHasPrefixSuffix.current) {\n process.env.NODE_ENV !== \"production\" ? (0, _warning[\"default\"])(document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input), 'Input', \"When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ\") : void 0;\n }\n prevHasPrefixSuffix.current = inputHasPrefixSuffix;\n }, [inputHasPrefixSuffix]);\n // ===================== Remove Password value =====================\n var removePasswordTimeout = (0, _useRemovePasswordTimeout[\"default\"])(inputRef, true);\n var handleBlur = function handleBlur(e) {\n removePasswordTimeout();\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var handleFocus = function handleFocus(e) {\n removePasswordTimeout();\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n var handleChange = function handleChange(e) {\n removePasswordTimeout();\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n };\n var suffixNode = (hasFeedback || suffix) && ( /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, suffix, hasFeedback && feedbackIcon));\n // Allow clear\n var mergedAllowClear;\n if ((0, _typeof2[\"default\"])(allowClear) === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/_react[\"default\"].createElement(_CloseCircleFilled[\"default\"], null)\n };\n }\n return /*#__PURE__*/_react[\"default\"].createElement(_rcInput[\"default\"], (0, _extends2[\"default\"])({\n ref: (0, _ref2.composeRef)(ref, inputRef),\n prefixCls: prefixCls,\n autoComplete: input === null || input === void 0 ? void 0 : input.autoComplete\n }, rest, {\n disabled: mergedDisabled || undefined,\n onBlur: handleBlur,\n onFocus: handleFocus,\n suffix: suffixNode,\n allowClear: mergedAllowClear,\n className: (0, _classnames[\"default\"])(className, compactItemClassnames),\n onChange: handleChange,\n addonAfter: addonAfter && ( /*#__PURE__*/_react[\"default\"].createElement(_Compact.NoCompactStyle, null, /*#__PURE__*/_react[\"default\"].createElement(_context.NoFormStyle, {\n override: true,\n status: true\n }, addonAfter))),\n addonBefore: addonBefore && ( /*#__PURE__*/_react[\"default\"].createElement(_Compact.NoCompactStyle, null, /*#__PURE__*/_react[\"default\"].createElement(_context.NoFormStyle, {\n override: true,\n status: true\n }, addonBefore))),\n inputClassName: (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-borderless\"), !bordered), !inputHasPrefixSuffix && (0, _statusUtils.getStatusClassNames)(prefixCls, mergedStatus)),\n affixWrapperClassName: (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-affix-wrapper-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-affix-wrapper-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-affix-wrapper-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-affix-wrapper-borderless\"), !bordered), (0, _statusUtils.getStatusClassNames)(\"\".concat(prefixCls, \"-affix-wrapper\"), mergedStatus, hasFeedback)),\n wrapperClassName: (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-group-rtl\"), direction === 'rtl')),\n groupClassName: (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-group-wrapper-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-group-wrapper-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-group-wrapper-rtl\"), direction === 'rtl'), (0, _statusUtils.getStatusClassNames)(\"\".concat(prefixCls, \"-group-wrapper\"), mergedStatus, hasFeedback))\n }));\n});\nvar _default = exports[\"default\"] = Input;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _rcTextarea = _interopRequireDefault(require(\"rc-textarea\"));\nvar _useMergedState3 = _interopRequireDefault(require(\"rc-util/lib/hooks/useMergedState\"));\nvar _omit = _interopRequireDefault(require(\"rc-util/lib/omit\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _configProvider = require(\"../config-provider\");\nvar _DisabledContext = _interopRequireDefault(require(\"../config-provider/DisabledContext\"));\nvar _SizeContext = _interopRequireDefault(require(\"../config-provider/SizeContext\"));\nvar _context = require(\"../form/context\");\nvar _statusUtils = require(\"../_util/statusUtils\");\nvar _ClearableLabeledInput = _interopRequireDefault(require(\"./ClearableLabeledInput\"));\nvar _Input = require(\"./Input\");\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nfunction fixEmojiLength(value, maxLength) {\n return (0, _toConsumableArray2[\"default\"])(value || '').slice(0, maxLength).join('');\n}\nfunction setTriggerValue(isCursorInEnd, preValue, triggerValue, maxLength) {\n var newTriggerValue = triggerValue;\n if (isCursorInEnd) {\n // 光标在尾部,直接截断\n newTriggerValue = fixEmojiLength(triggerValue, maxLength);\n } else if ((0, _toConsumableArray2[\"default\"])(preValue || '').length < triggerValue.length && (0, _toConsumableArray2[\"default\"])(triggerValue || '').length > maxLength) {\n // 光标在中间,如果最后的值超过最大值,则采用原先的值\n newTriggerValue = preValue;\n }\n return newTriggerValue;\n}\nvar TextArea = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? true : _a$bordered,\n _a$showCount = _a.showCount,\n showCount = _a$showCount === void 0 ? false : _a$showCount,\n maxLength = _a.maxLength,\n className = _a.className,\n style = _a.style,\n customizeSize = _a.size,\n customDisabled = _a.disabled,\n onCompositionStart = _a.onCompositionStart,\n onCompositionEnd = _a.onCompositionEnd,\n onChange = _a.onChange,\n onFocus = _a.onFocus,\n onBlur = _a.onBlur,\n customStatus = _a.status,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"showCount\", \"maxLength\", \"className\", \"style\", \"size\", \"disabled\", \"onCompositionStart\", \"onCompositionEnd\", \"onChange\", \"onFocus\", \"onBlur\", \"status\"]);\n var _React$useContext = React.useContext(_configProvider.ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(_SizeContext[\"default\"]);\n // ===================== Disabled =====================\n var disabled = React.useContext(_DisabledContext[\"default\"]);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var _React$useContext2 = React.useContext(_context.FormItemInputContext),\n contextStatus = _React$useContext2.status,\n hasFeedback = _React$useContext2.hasFeedback,\n isFormItemInput = _React$useContext2.isFormItemInput,\n feedbackIcon = _React$useContext2.feedbackIcon;\n var mergedStatus = (0, _statusUtils.getMergedStatus)(contextStatus, customStatus);\n var innerRef = React.useRef(null);\n var clearableInputRef = React.useRef(null);\n var _React$useState = React.useState(false),\n _React$useState2 = (0, _slicedToArray2[\"default\"])(_React$useState, 2),\n compositing = _React$useState2[0],\n setCompositing = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = (0, _slicedToArray2[\"default\"])(_React$useState3, 2),\n focused = _React$useState4[0],\n setFocused = _React$useState4[1];\n var oldCompositionValueRef = React.useRef();\n var oldSelectionStartRef = React.useRef(0);\n var _useMergedState = (0, _useMergedState3[\"default\"])(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = (0, _slicedToArray2[\"default\"])(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var hidden = props.hidden;\n var handleSetValue = function handleSetValue(val, callback) {\n if (props.value === undefined) {\n setValue(val);\n callback === null || callback === void 0 ? void 0 : callback();\n }\n };\n // =========================== Value Update ===========================\n // Max length value\n var hasMaxLength = Number(maxLength) > 0;\n var onInternalCompositionStart = function onInternalCompositionStart(e) {\n setCompositing(true);\n // 拼音输入前保存一份旧值\n oldCompositionValueRef.current = value;\n // 保存旧的光标位置\n oldSelectionStartRef.current = e.currentTarget.selectionStart;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n var onInternalCompositionEnd = function onInternalCompositionEnd(e) {\n var _a;\n setCompositing(false);\n var triggerValue = e.currentTarget.value;\n if (hasMaxLength) {\n var isCursorInEnd = oldSelectionStartRef.current >= maxLength + 1 || oldSelectionStartRef.current === ((_a = oldCompositionValueRef.current) === null || _a === void 0 ? void 0 : _a.length);\n triggerValue = setTriggerValue(isCursorInEnd, oldCompositionValueRef.current, triggerValue, maxLength);\n }\n // Patch composition onChange when value changed\n if (triggerValue !== value) {\n handleSetValue(triggerValue);\n (0, _Input.resolveOnChange)(e.currentTarget, e, onChange, triggerValue);\n }\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n var handleChange = function handleChange(e) {\n var triggerValue = e.target.value;\n if (!compositing && hasMaxLength) {\n // 1. 复制粘贴超过maxlength的情况 2.未超过maxlength的情况\n var isCursorInEnd = e.target.selectionStart >= maxLength + 1 || e.target.selectionStart === triggerValue.length || !e.target.selectionStart;\n triggerValue = setTriggerValue(isCursorInEnd, value, triggerValue, maxLength);\n }\n handleSetValue(triggerValue);\n (0, _Input.resolveOnChange)(e.currentTarget, e, onChange, triggerValue);\n };\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n React.useEffect(function () {\n setFocused(function (prev) {\n return !mergedDisabled && prev;\n });\n }, [mergedDisabled]);\n // ============================== Reset ===============================\n var handleReset = function handleReset(e) {\n var _a, _b, _c;\n handleSetValue('');\n (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n (0, _Input.resolveOnChange)((_c = (_b = innerRef.current) === null || _b === void 0 ? void 0 : _b.resizableTextArea) === null || _c === void 0 ? void 0 : _c.textArea, e, onChange);\n };\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n React.useImperativeHandle(ref, function () {\n var _a;\n return {\n resizableTextArea: (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea,\n focus: function focus(option) {\n var _a, _b;\n (0, _Input.triggerFocus)((_b = (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea) === null || _b === void 0 ? void 0 : _b.textArea, option);\n },\n blur: function blur() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n var textArea = /*#__PURE__*/React.createElement(_rcTextarea[\"default\"], (0, _extends2[\"default\"])({}, (0, _omit[\"default\"])(props, ['allowClear']), {\n disabled: mergedDisabled,\n className: (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-borderless\"), !bordered), className, className && !showCount), \"\".concat(prefixCls, \"-sm\"), size === 'small' || customizeSize === 'small'), \"\".concat(prefixCls, \"-lg\"), size === 'large' || customizeSize === 'large'), (0, _statusUtils.getStatusClassNames)(prefixCls, mergedStatus)),\n style: showCount ? {\n resize: style === null || style === void 0 ? void 0 : style.resize\n } : style,\n prefixCls: prefixCls,\n onCompositionStart: onInternalCompositionStart,\n onChange: handleChange,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onCompositionEnd: onInternalCompositionEnd,\n ref: innerRef\n }));\n var val = (0, _Input.fixControlledValue)(value);\n if (!compositing && hasMaxLength && (props.value === null || props.value === undefined)) {\n // fix #27612 将value转为数组进行截取,解决 '😂'.length === 2 等emoji表情导致的截取乱码的问题\n val = fixEmojiLength(val, maxLength);\n }\n // TextArea\n var textareaNode = /*#__PURE__*/React.createElement(_ClearableLabeledInput[\"default\"], (0, _extends2[\"default\"])({\n disabled: mergedDisabled,\n focused: focused\n }, props, {\n prefixCls: prefixCls,\n direction: direction,\n inputType: \"text\",\n value: val,\n element: textArea,\n handleReset: handleReset,\n ref: clearableInputRef,\n bordered: bordered,\n status: customStatus,\n style: showCount ? undefined : style\n }));\n // Only show text area wrapper when needed\n if (showCount || hasFeedback) {\n var valueLength = (0, _toConsumableArray2[\"default\"])(val).length;\n var dataCount = '';\n if ((0, _typeof2[\"default\"])(showCount) === 'object') {\n dataCount = showCount.formatter({\n value: val,\n count: valueLength,\n maxLength: maxLength\n });\n } else {\n dataCount = \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(maxLength) : '');\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n hidden: hidden,\n className: (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-textarea\"), (0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-textarea-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-textarea-show-count\"), showCount), \"\".concat(prefixCls, \"-textarea-in-form-item\"), isFormItemInput), (0, _statusUtils.getStatusClassNames)(\"\".concat(prefixCls, \"-textarea\"), mergedStatus, hasFeedback), className),\n style: style,\n \"data-count\": dataCount\n }, textareaNode, hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-textarea-suffix\")\n }, feedbackIcon));\n }\n return textareaNode;\n});\nvar _default = exports[\"default\"] = TextArea;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = useRemovePasswordTimeout;\nvar _react = require(\"react\");\nfunction useRemovePasswordTimeout(inputRef, triggerOnMount) {\n var removePasswordTimeoutRef = (0, _react.useRef)([]);\n var removePasswordTimeout = function removePasswordTimeout() {\n removePasswordTimeoutRef.current.push(setTimeout(function () {\n var _a, _b, _c, _d;\n if (((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.input.getAttribute('type')) === 'password' && ((_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.input.hasAttribute('value'))) {\n (_d = inputRef.current) === null || _d === void 0 ? void 0 : _d.input.removeAttribute('value');\n }\n }));\n };\n (0, _react.useEffect)(function () {\n if (triggerOnMount) {\n removePasswordTimeout();\n }\n return function () {\n return removePasswordTimeoutRef.current.forEach(function (timer) {\n if (timer) {\n clearTimeout(timer);\n }\n });\n };\n }, []);\n return removePasswordTimeout;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hasPrefixSuffix = hasPrefixSuffix;\n// eslint-disable-next-line import/prefer-default-export\nfunction hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useLocaleReceiver = exports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _context = _interopRequireDefault(require(\"./context\"));\nvar _default2 = _interopRequireDefault(require(\"./default\"));\nvar LocaleReceiver = function LocaleReceiver(props) {\n var _props$componentName = props.componentName,\n componentName = _props$componentName === void 0 ? 'global' : _props$componentName,\n defaultLocale = props.defaultLocale,\n children = props.children;\n var antLocale = React.useContext(_context[\"default\"]);\n var getLocale = React.useMemo(function () {\n var _a;\n var locale = defaultLocale || _default2[\"default\"][componentName];\n var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, locale instanceof Function ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n var getLocaleCode = React.useMemo(function () {\n var localeCode = antLocale && antLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if (antLocale && antLocale.exist && !localeCode) {\n return _default2[\"default\"].locale;\n }\n return localeCode;\n }, [antLocale]);\n return children(getLocale, getLocaleCode, antLocale);\n};\nvar _default = exports[\"default\"] = LocaleReceiver;\nvar useLocaleReceiver = exports.useLocaleReceiver = function useLocaleReceiver(componentName, defaultLocale) {\n var antLocale = React.useContext(_context[\"default\"]);\n var getLocale = React.useMemo(function () {\n var _a;\n var locale = defaultLocale || _default2[\"default\"][componentName];\n var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n return [getLocale];\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = require(\"react\");\nvar LocaleContext = /*#__PURE__*/(0, _react.createContext)(undefined);\nvar _default = exports[\"default\"] = LocaleContext;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _default2 = _interopRequireDefault(require(\"../locale/default\"));\nvar _default = exports[\"default\"] = _default2[\"default\"];","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ANT_MARK = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\nvar _locale = require(\"../modal/locale\");\nvar _context = _interopRequireDefault(require(\"./context\"));\nvar ANT_MARK = exports.ANT_MARK = 'internalMark';\nvar LocaleProvider = function LocaleProvider(props) {\n var _props$locale = props.locale,\n locale = _props$locale === void 0 ? {} : _props$locale,\n children = props.children,\n _ANT_MARK__ = props._ANT_MARK__;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? (0, _warning[\"default\"])(_ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n }\n React.useEffect(function () {\n (0, _locale.changeConfirmLocale)(locale && locale.Modal);\n return function () {\n (0, _locale.changeConfirmLocale)();\n };\n }, [locale]);\n var getMemoizedContextValue = React.useMemo(function () {\n return (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, locale), {\n exist: true\n });\n }, [locale]);\n return /*#__PURE__*/React.createElement(_context[\"default\"].Provider, {\n value: getMemoizedContextValue\n }, children);\n};\nvar _default = exports[\"default\"] = LocaleProvider;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _en_US = _interopRequireDefault(require(\"rc-pagination/lib/locale/en_US\"));\nvar _en_US2 = _interopRequireDefault(require(\"../calendar/locale/en_US\"));\nvar _en_US3 = _interopRequireDefault(require(\"../date-picker/locale/en_US\"));\nvar _en_US4 = _interopRequireDefault(require(\"../time-picker/locale/en_US\"));\n/* eslint-disable no-template-curly-in-string */\n\nvar typeTemplate = '${label} is not a valid ${type}';\nvar localeValues = {\n locale: 'en',\n Pagination: _en_US[\"default\"],\n DatePicker: _en_US3[\"default\"],\n TimePicker: _en_US4[\"default\"],\n Calendar: _en_US2[\"default\"],\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n \"default\": 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n \"enum\": '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n }\n};\nvar _default = exports[\"default\"] = localeValues;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = createUseMessage;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _useNotification = _interopRequireDefault(require(\"rc-notification/lib/useNotification\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _ = require(\"..\");\nvar _configProvider = require(\"../../config-provider\");\nfunction createUseMessage(getRcNotificationInstance, getRCNoticeProps) {\n var useMessage = function useMessage() {\n // We can only get content by render\n var getPrefixCls;\n var getPopupContainer;\n // We create a proxy to handle delay created instance\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n var _useRCNotification = (0, _useNotification[\"default\"])(proxy),\n _useRCNotification2 = (0, _slicedToArray2[\"default\"])(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('message', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var target = args.key || (0, _.getKeyThenIncreaseKey)();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getRcNotificationInstance((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, args), {\n prefixCls: mergedPrefixCls,\n rootPrefixCls: rootPrefixCls,\n getPopupContainer: getPopupContainer\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, args), {\n key: target,\n onClose: callback\n }), prefixCls));\n });\n });\n var result = function result() {\n if (innerInstance) {\n innerInstance.removeNotice(target);\n }\n };\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n result.promise = closePromise;\n return result;\n }\n // Fill functions\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n _.typeList.forEach(function (type) {\n return (0, _.attachTypeApi)(hookApiRef.current, type);\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n getPopupContainer = context.getPopupContainer;\n return holder;\n })];\n };\n return useMessage;\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.attachTypeApi = attachTypeApi;\nexports.getInstance = exports[\"default\"] = void 0;\nexports.getKeyThenIncreaseKey = getKeyThenIncreaseKey;\nexports.typeList = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _CheckCircleFilled = _interopRequireDefault(require(\"@ant-design/icons/CheckCircleFilled\"));\nvar _CloseCircleFilled = _interopRequireDefault(require(\"@ant-design/icons/CloseCircleFilled\"));\nvar _ExclamationCircleFilled = _interopRequireDefault(require(\"@ant-design/icons/ExclamationCircleFilled\"));\nvar _InfoCircleFilled = _interopRequireDefault(require(\"@ant-design/icons/InfoCircleFilled\"));\nvar _LoadingOutlined = _interopRequireDefault(require(\"@ant-design/icons/LoadingOutlined\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _rcNotification = _interopRequireDefault(require(\"rc-notification\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _configProvider = _interopRequireWildcard(require(\"../config-provider\"));\nvar _useMessage = _interopRequireDefault(require(\"./hooks/useMessage\"));\nvar messageInstance;\nvar defaultDuration = 3;\nvar defaultTop;\nvar key = 1;\nvar localPrefixCls = '';\nvar transitionName = 'move-up';\nvar hasTransitionName = false;\nvar getContainer;\nvar maxCount;\nvar rtl = false;\nfunction getKeyThenIncreaseKey() {\n return key++;\n}\nfunction setMessageConfig(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n if (options.prefixCls !== undefined) {\n localPrefixCls = options.prefixCls;\n }\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n messageInstance = null; // delete messageInstance for new getContainer\n }\n\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n hasTransitionName = true;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n}\nfunction getRCNotificationInstance(args, callback) {\n var customizePrefixCls = args.prefixCls,\n getContextPopupContainer = args.getPopupContainer;\n var _globalConfig = (0, _configProvider.globalConfig)(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getRootPrefixCls = _globalConfig.getRootPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n var prefixCls = getPrefixCls('message', customizePrefixCls || localPrefixCls);\n var rootPrefixCls = getRootPrefixCls(args.rootPrefixCls, prefixCls);\n var iconPrefixCls = getIconPrefixCls();\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: messageInstance\n });\n return;\n }\n var instanceConfig = {\n prefixCls: prefixCls,\n transitionName: hasTransitionName ? transitionName : \"\".concat(rootPrefixCls, \"-\").concat(transitionName),\n style: {\n top: defaultTop\n },\n getContainer: getContainer || getContextPopupContainer,\n maxCount: maxCount\n };\n _rcNotification[\"default\"].newInstance(instanceConfig, function (instance) {\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: messageInstance\n });\n return;\n }\n messageInstance = instance;\n if (process.env.NODE_ENV === 'test') {\n messageInstance.config = instanceConfig;\n }\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: instance\n });\n });\n}\nvar typeToIcon = {\n info: _InfoCircleFilled[\"default\"],\n success: _CheckCircleFilled[\"default\"],\n error: _CloseCircleFilled[\"default\"],\n warning: _ExclamationCircleFilled[\"default\"],\n loading: _LoadingOutlined[\"default\"]\n};\nvar typeList = exports.typeList = Object.keys(typeToIcon);\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n var duration = args.duration !== undefined ? args.duration : defaultDuration;\n var IconComponent = typeToIcon[args.type];\n var messageClass = (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-custom-content\"), (0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-\").concat(args.type), args.type), \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n return {\n key: args.key,\n duration: duration,\n style: args.style || {},\n className: args.className,\n content: ( /*#__PURE__*/React.createElement(_configProvider[\"default\"], {\n iconPrefixCls: iconPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: messageClass\n }, args.icon || IconComponent && /*#__PURE__*/React.createElement(IconComponent, null), /*#__PURE__*/React.createElement(\"span\", null, args.content)))),\n onClose: args.onClose,\n onClick: args.onClick\n };\n}\nfunction notice(args) {\n var target = args.key || getKeyThenIncreaseKey();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getRCNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, args), {\n key: target,\n onClose: callback\n }), prefixCls, iconPrefixCls));\n });\n });\n var result = function result() {\n var _a;\n if (messageInstance) {\n messageInstance.removeNotice(target);\n (_a = args.onClose) === null || _a === void 0 ? void 0 : _a.call(args);\n }\n };\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n result.promise = closePromise;\n return result;\n}\nfunction isArgsProps(content) {\n return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\nvar api = {\n open: notice,\n config: setMessageConfig,\n destroy: function destroy(messageKey) {\n if (messageInstance) {\n if (messageKey) {\n var _messageInstance = messageInstance,\n removeNotice = _messageInstance.removeNotice;\n removeNotice(messageKey);\n } else {\n var _messageInstance2 = messageInstance,\n destroy = _messageInstance2.destroy;\n destroy();\n messageInstance = null;\n }\n }\n }\n};\nfunction attachTypeApi(originalApi, type) {\n originalApi[type] = function (content, duration, onClose) {\n if (isArgsProps(content)) {\n return originalApi.open((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, content), {\n type: type\n }));\n }\n if (typeof duration === 'function') {\n onClose = duration;\n duration = undefined;\n }\n return originalApi.open({\n content: content,\n duration: duration,\n type: type,\n onClose: onClose\n });\n };\n}\ntypeList.forEach(function (type) {\n return attachTypeApi(api, type);\n});\napi.warn = api.warning;\napi.useMessage = (0, _useMessage[\"default\"])(getRCNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nvar getInstance = exports.getInstance = function getInstance() {\n return process.env.NODE_ENV === 'test' ? messageInstance : null;\n};\nvar _default = exports[\"default\"] = api;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.changeConfirmLocale = changeConfirmLocale;\nexports.getConfirmLocale = getConfirmLocale;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _default = _interopRequireDefault(require(\"../locale/default\"));\nvar runtimeLocale = (0, _extends2[\"default\"])({}, _default[\"default\"].Modal);\nfunction changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = (0, _extends2[\"default\"])({}, _default[\"default\"].Modal);\n }\n}\nfunction getConfirmLocale() {\n return runtimeLocale;\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = createUseNotification;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _useNotification = _interopRequireDefault(require(\"rc-notification/lib/useNotification\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _configProvider = require(\"../../config-provider\");\nfunction createUseNotification(getNotificationInstance, getRCNoticeProps) {\n var useNotification = function useNotification() {\n // We can only get content by render\n var getPrefixCls;\n // We create a proxy to handle delay created instance\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n var _useRCNotification = (0, _useNotification[\"default\"])(proxy),\n _useRCNotification2 = (0, _slicedToArray2[\"default\"])(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('notification', customizePrefixCls);\n getNotificationInstance((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, args), {\n prefixCls: mergedPrefixCls\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(args, prefixCls));\n });\n }\n // Fill functions\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n ['success', 'info', 'warning', 'error'].forEach(function (type) {\n hookApiRef.current[type] = function (args) {\n return hookApiRef.current.open((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, args), {\n type: type\n }));\n };\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n return holder;\n })];\n };\n return useNotification;\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getInstance = exports[\"default\"] = void 0;\nvar _regeneratorRuntime2 = _interopRequireDefault(require(\"@babel/runtime/helpers/regeneratorRuntime\"));\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _CheckCircleOutlined = _interopRequireDefault(require(\"@ant-design/icons/CheckCircleOutlined\"));\nvar _CloseCircleOutlined = _interopRequireDefault(require(\"@ant-design/icons/CloseCircleOutlined\"));\nvar _CloseOutlined = _interopRequireDefault(require(\"@ant-design/icons/CloseOutlined\"));\nvar _ExclamationCircleOutlined = _interopRequireDefault(require(\"@ant-design/icons/ExclamationCircleOutlined\"));\nvar _InfoCircleOutlined = _interopRequireDefault(require(\"@ant-design/icons/InfoCircleOutlined\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _rcNotification = _interopRequireDefault(require(\"rc-notification\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _configProvider = _interopRequireWildcard(require(\"../config-provider\"));\nvar _useNotification = _interopRequireDefault(require(\"./hooks/useNotification\"));\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = 24;\nvar defaultBottom = 24;\nvar defaultPrefixCls = '';\nvar defaultPlacement = 'topRight';\nvar defaultGetContainer;\nvar defaultCloseIcon;\nvar rtl = false;\nvar maxCount;\nfunction setNotificationConfig(options) {\n var duration = options.duration,\n placement = options.placement,\n bottom = options.bottom,\n top = options.top,\n getContainer = options.getContainer,\n closeIcon = options.closeIcon,\n prefixCls = options.prefixCls;\n if (prefixCls !== undefined) {\n defaultPrefixCls = prefixCls;\n }\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n if (placement !== undefined) {\n defaultPlacement = placement;\n } else if (options.rtl) {\n defaultPlacement = 'topLeft';\n }\n if (bottom !== undefined) {\n defaultBottom = bottom;\n }\n if (top !== undefined) {\n defaultTop = top;\n }\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n }\n}\nfunction getPlacementStyle(placement) {\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTop;\n var bottom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultBottom;\n var style;\n switch (placement) {\n case 'top':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: top,\n bottom: 'auto'\n };\n break;\n case 'topLeft':\n style = {\n left: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'bottom':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: 'auto',\n bottom: bottom\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n }\n return style;\n}\nfunction getNotificationInstance(args, callback) {\n var _args$placement = args.placement,\n placement = _args$placement === void 0 ? defaultPlacement : _args$placement,\n top = args.top,\n bottom = args.bottom,\n _args$getContainer = args.getContainer,\n getContainer = _args$getContainer === void 0 ? defaultGetContainer : _args$getContainer,\n customizePrefixCls = args.prefixCls;\n var _globalConfig = (0, _configProvider.globalConfig)(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n var prefixCls = getPrefixCls('notification', customizePrefixCls || defaultPrefixCls);\n var iconPrefixCls = getIconPrefixCls();\n var cacheKey = \"\".concat(prefixCls, \"-\").concat(placement);\n var cacheInstance = notificationInstance[cacheKey];\n if (cacheInstance) {\n Promise.resolve(cacheInstance).then(function (instance) {\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: instance\n });\n });\n return;\n }\n var notificationClass = (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-\").concat(placement), (0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n notificationInstance[cacheKey] = new Promise(function (resolve) {\n _rcNotification[\"default\"].newInstance({\n prefixCls: prefixCls,\n className: notificationClass,\n style: getPlacementStyle(placement, top, bottom),\n getContainer: getContainer,\n maxCount: maxCount\n }, function (notification) {\n resolve(notification);\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: notification\n });\n });\n });\n}\nvar typeToIcon = {\n success: _CheckCircleOutlined[\"default\"],\n info: _InfoCircleOutlined[\"default\"],\n error: _CloseCircleOutlined[\"default\"],\n warning: _ExclamationCircleOutlined[\"default\"]\n};\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n var durationArg = args.duration,\n icon = args.icon,\n type = args.type,\n description = args.description,\n message = args.message,\n btn = args.btn,\n onClose = args.onClose,\n onClick = args.onClick,\n key = args.key,\n style = args.style,\n className = args.className,\n _args$closeIcon = args.closeIcon,\n closeIcon = _args$closeIcon === void 0 ? defaultCloseIcon : _args$closeIcon,\n props = args.props;\n var duration = durationArg === undefined ? defaultDuration : durationArg;\n var iconNode = null;\n if (icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, args.icon);\n } else if (type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n className: \"\".concat(prefixCls, \"-icon \").concat(prefixCls, \"-icon-\").concat(type)\n });\n }\n var closeIconToRender = typeof closeIcon === 'undefined' ? ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, /*#__PURE__*/React.createElement(_CloseOutlined[\"default\"], {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }))) : closeIcon;\n var autoMarginTag = !description && iconNode ? ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-message-single-line-auto-margin\")\n })) : null;\n return {\n content: ( /*#__PURE__*/React.createElement(_configProvider[\"default\"], {\n iconPrefixCls: iconPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: iconNode ? \"\".concat(prefixCls, \"-with-icon\") : '',\n role: \"alert\"\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, autoMarginTag, message), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description), btn ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-btn\")\n }, btn) : null))),\n duration: duration,\n closable: true,\n closeIcon: closeIconToRender,\n onClose: onClose,\n onClick: onClick,\n key: key,\n style: style || {},\n className: (0, _classnames[\"default\"])(className, (0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-\").concat(type), !!type)),\n props: props\n };\n}\nfunction notice(args) {\n getNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(args, prefixCls, iconPrefixCls));\n });\n}\nvar api = {\n open: notice,\n close: function close(key) {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n return Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.removeNotice(key);\n });\n });\n },\n config: setNotificationConfig,\n destroy: function destroy() {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.destroy();\n });\n delete notificationInstance[cacheKey]; // lgtm[js/missing-await]\n });\n }\n};\n\n['success', 'info', 'warning', 'error'].forEach(function (type) {\n api[type] = function (args) {\n return api.open((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, args), {\n type: type\n }));\n };\n});\napi.warn = api.warning;\napi.useNotification = (0, _useNotification[\"default\"])(getNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nvar getInstance = exports.getInstance = function getInstance(cacheKey) {\n return __awaiter(void 0, void 0, void 0, /*#__PURE__*/(0, _regeneratorRuntime2[\"default\"])().mark(function _callee() {\n return (0, _regeneratorRuntime2[\"default\"])().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", process.env.NODE_ENV === 'test' ? notificationInstance[cacheKey] : null);\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n};\nvar _default = exports[\"default\"] = api;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useCompactItemContext = exports[\"default\"] = exports.SpaceCompactItemContext = exports.NoCompactStyle = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _toArray = _interopRequireDefault(require(\"rc-util/lib/Children/toArray\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _configProvider = require(\"../config-provider\");\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar SpaceCompactItemContext = exports.SpaceCompactItemContext = /*#__PURE__*/React.createContext(null);\nvar useCompactItemContext = exports.useCompactItemContext = function useCompactItemContext(prefixCls, direction) {\n var compactItemContext = React.useContext(SpaceCompactItemContext);\n var compactItemClassnames = React.useMemo(function () {\n if (!compactItemContext) return '';\n var compactDirection = compactItemContext.compactDirection,\n isFirstItem = compactItemContext.isFirstItem,\n isLastItem = compactItemContext.isLastItem;\n var separator = compactDirection === 'vertical' ? '-vertical-' : '-';\n return (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-compact\").concat(separator, \"item\"), true), \"\".concat(prefixCls, \"-compact\").concat(separator, \"first-item\"), isFirstItem), \"\".concat(prefixCls, \"-compact\").concat(separator, \"last-item\"), isLastItem), \"\".concat(prefixCls, \"-compact\").concat(separator, \"item-rtl\"), direction === 'rtl'));\n }, [prefixCls, direction, compactItemContext]);\n return {\n compactSize: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize,\n compactDirection: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection,\n compactItemClassnames: compactItemClassnames\n };\n};\nvar NoCompactStyle = exports.NoCompactStyle = function NoCompactStyle(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: null\n }, children);\n};\nvar CompactItem = function CompactItem(_a) {\n var children = _a.children,\n otherProps = __rest(_a, [\"children\"]);\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: otherProps\n }, children);\n};\nvar Compact = function Compact(props) {\n var _React$useContext = React.useContext(_configProvider.ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n directionConfig = _React$useContext.direction;\n var _props$size = props.size,\n size = _props$size === void 0 ? 'middle' : _props$size,\n direction = props.direction,\n block = props.block,\n customizePrefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n restProps = __rest(props, [\"size\", \"direction\", \"block\", \"prefixCls\", \"className\", \"children\"]);\n var prefixCls = getPrefixCls('space-compact', customizePrefixCls);\n var clx = (0, _classnames[\"default\"])(prefixCls, (0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-rtl\"), directionConfig === 'rtl'), \"\".concat(prefixCls, \"-block\"), block), \"\".concat(prefixCls, \"-vertical\"), direction === 'vertical'), className);\n var compactItemContext = React.useContext(SpaceCompactItemContext);\n var childNodes = (0, _toArray[\"default\"])(children);\n var nodes = React.useMemo(function () {\n return childNodes.map(function (child, i) {\n var key = child && child.key || \"\".concat(prefixCls, \"-item-\").concat(i);\n return /*#__PURE__*/React.createElement(CompactItem, {\n key: key,\n compactSize: size,\n compactDirection: direction,\n isFirstItem: i === 0 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)),\n isLastItem: i === childNodes.length - 1 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem))\n }, child);\n });\n }, [size, childNodes, compactItemContext]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", (0, _extends2[\"default\"])({\n className: clx\n }, restProps), nodes);\n};\nvar _default = exports[\"default\"] = Compact;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nvar _default = exports[\"default\"] = locale;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _rcTooltip = _interopRequireDefault(require(\"rc-tooltip\"));\nvar _useMergedState3 = _interopRequireDefault(require(\"rc-util/lib/hooks/useMergedState\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _configProvider = require(\"../config-provider\");\nvar _colors = require(\"../_util/colors\");\nvar _motion = require(\"../_util/motion\");\nvar _placements = _interopRequireDefault(require(\"../_util/placements\"));\nvar _reactNode = require(\"../_util/reactNode\");\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n var omitted = (0, _extends2[\"default\"])({}, obj);\n keys.forEach(function (key) {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked: picked,\n omitted: omitted\n };\n};\nvar PresetColorRegex = new RegExp(\"^(\".concat(_colors.PresetColorTypes.join('|'), \")(-inverse)?$\"));\n// Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n var elementType = element.type;\n if ((elementType.__ANT_BUTTON === true || element.type === 'button') && element.props.disabled || elementType.__ANT_SWITCH === true && (element.props.disabled || element.props.loading) || elementType.__ANT_RADIO === true && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n var _splitObject = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']),\n picked = _splitObject.picked,\n omitted = _splitObject.omitted;\n var spanStyle = (0, _extends2[\"default\"])((0, _extends2[\"default\"])({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : undefined\n });\n var buttonStyle = (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, omitted), {\n pointerEvents: 'none'\n });\n var child = (0, _reactNode.cloneElement)(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: (0, _classnames[\"default\"])(element.props.className, \"\".concat(prefixCls, \"-disabled-compatible-wrapper\"))\n }, child);\n }\n return element;\n}\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(_configProvider.ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange']].forEach(function (_ref) {\n var _ref2 = (0, _slicedToArray2[\"default\"])(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? (0, _warning[\"default\"])(!(deprecatedName in props), 'Tooltip', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version, please use `\").concat(newName, \"` instead.\")) : void 0;\n });\n }\n var _useMergedState = (0, _useMergedState3[\"default\"])(false, {\n value: props.open !== undefined ? props.open : props.visible,\n defaultValue: props.defaultOpen !== undefined ? props.defaultOpen : props.defaultVisible\n }),\n _useMergedState2 = (0, _slicedToArray2[\"default\"])(_useMergedState, 2),\n open = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n var isNoTitle = function isNoTitle() {\n var title = props.title,\n overlay = props.overlay;\n return !title && !overlay && title !== 0; // overlay for old version compatibility\n };\n\n var onOpenChange = function onOpenChange(vis) {\n var _a, _b;\n setOpen(isNoTitle() ? false : vis);\n if (!isNoTitle()) {\n (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n }\n };\n var getTooltipPlacements = function getTooltipPlacements() {\n var builtinPlacements = props.builtinPlacements,\n _props$arrowPointAtCe = props.arrowPointAtCenter,\n arrowPointAtCenter = _props$arrowPointAtCe === void 0 ? false : _props$arrowPointAtCe,\n _props$autoAdjustOver = props.autoAdjustOverflow,\n autoAdjustOverflow = _props$autoAdjustOver === void 0 ? true : _props$autoAdjustOver;\n return builtinPlacements || (0, _placements[\"default\"])({\n arrowPointAtCenter: arrowPointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n };\n // 动态设置动画点\n var onPopupAlign = function onPopupAlign(domNode, align) {\n var placements = getTooltipPlacements();\n // 当前返回的位置\n var placement = Object.keys(placements).find(function (key) {\n var _a, _b;\n return placements[key].points[0] === ((_a = align.points) === null || _a === void 0 ? void 0 : _a[0]) && placements[key].points[1] === ((_b = align.points) === null || _b === void 0 ? void 0 : _b[1]);\n });\n if (!placement) {\n return;\n }\n // 根据当前坐标设置动画点\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n if (/top|Bottom/.test(placement)) {\n transformOrigin.top = \"\".concat(rect.height - align.offset[1], \"px\");\n } else if (/Top|bottom/.test(placement)) {\n transformOrigin.top = \"\".concat(-align.offset[1], \"px\");\n }\n if (/left|Right/.test(placement)) {\n transformOrigin.left = \"\".concat(rect.width - align.offset[0], \"px\");\n } else if (/right|Left/.test(placement)) {\n transformOrigin.left = \"\".concat(-align.offset[0], \"px\");\n }\n domNode.style.transformOrigin = \"\".concat(transformOrigin.left, \" \").concat(transformOrigin.top);\n };\n var getOverlay = function getOverlay() {\n var title = props.title,\n overlay = props.overlay;\n if (title === 0) {\n return title;\n }\n return overlay || title || '';\n };\n var getPopupContainer = props.getPopupContainer,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'top' : _props$placement,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.1 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\"]);\n var customizePrefixCls = props.prefixCls,\n openClassName = props.openClassName,\n getTooltipContainer = props.getTooltipContainer,\n overlayClassName = props.overlayClassName,\n color = props.color,\n overlayInnerStyle = props.overlayInnerStyle,\n children = props.children;\n var prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var tempOpen = open;\n // Hide tooltip when there is no title\n if (!('open' in props) && !('visible' in props) && isNoTitle()) {\n tempOpen = false;\n }\n var child = getDisabledCompatibleChildren((0, _reactNode.isValidElement)(children) && !(0, _reactNode.isFragment)(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n var childProps = child.props;\n var childCls = !childProps.className || typeof childProps.className === 'string' ? (0, _classnames[\"default\"])(childProps.className, (0, _defineProperty2[\"default\"])({}, openClassName || \"\".concat(prefixCls, \"-open\"), true)) : childProps.className;\n var customOverlayClassName = (0, _classnames[\"default\"])(overlayClassName, (0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-\").concat(color), color && PresetColorRegex.test(color)));\n var formattedOverlayInnerStyle = overlayInnerStyle;\n var arrowContentStyle = {};\n if (color && !PresetColorRegex.test(color)) {\n formattedOverlayInnerStyle = (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, overlayInnerStyle), {\n background: color\n });\n // @ts-ignore\n arrowContentStyle = {\n '--antd-arrow-background-color': color\n };\n }\n return /*#__PURE__*/React.createElement(_rcTooltip[\"default\"], (0, _extends2[\"default\"])({}, otherProps, {\n placement: placement,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: ref,\n builtinPlacements: getTooltipPlacements(),\n overlay: getOverlay(),\n visible: tempOpen,\n onVisibleChange: onOpenChange,\n onPopupAlign: onPopupAlign,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-arrow-content\"),\n style: arrowContentStyle\n }),\n motion: {\n motionName: (0, _motion.getTransitionName)(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n }\n }), tempOpen ? (0, _reactNode.cloneElement)(child, {\n className: childCls\n }) : child);\n});\nif (process.env.NODE_ENV !== 'production') {\n Tooltip.displayName = 'Tooltip';\n}\nvar _default = exports[\"default\"] = Tooltip;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _toArray = _interopRequireDefault(require(\"rc-util/lib/Children/toArray\"));\nvar _useLayoutEffect = _interopRequireDefault(require(\"rc-util/lib/hooks/useLayoutEffect\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction cuttable(node) {\n var type = (0, _typeof2[\"default\"])(node);\n return type === 'string' || type === 'number';\n}\nfunction getNodesLen(nodeList) {\n var totalLen = 0;\n nodeList.forEach(function (node) {\n if (cuttable(node)) {\n totalLen += String(node).length;\n } else {\n totalLen += 1;\n }\n });\n return totalLen;\n}\nfunction sliceNodes(nodeList, len) {\n var currLen = 0;\n var currentNodeList = [];\n for (var i = 0; i < nodeList.length; i += 1) {\n // Match to return\n if (currLen === len) {\n return currentNodeList;\n }\n var node = nodeList[i];\n var canCut = cuttable(node);\n var nodeLen = canCut ? String(node).length : 1;\n var nextLen = currLen + nodeLen;\n // Exceed but current not which means we need cut this\n // This will not happen on validate ReactElement\n if (nextLen > len) {\n var restLen = len - currLen;\n currentNodeList.push(String(node).slice(0, restLen));\n return currentNodeList;\n }\n currentNodeList.push(node);\n currLen = nextLen;\n }\n return nodeList;\n}\nvar NONE = 0;\nvar PREPARE = 1;\nvar WALKING = 2;\nvar DONE_WITH_ELLIPSIS = 3;\nvar DONE_WITHOUT_ELLIPSIS = 4;\nvar Ellipsis = function Ellipsis(_ref) {\n var enabledMeasure = _ref.enabledMeasure,\n children = _ref.children,\n text = _ref.text,\n width = _ref.width,\n fontSize = _ref.fontSize,\n rows = _ref.rows,\n onEllipsis = _ref.onEllipsis;\n var _React$useState = React.useState([0, 0, 0]),\n _React$useState2 = (0, _slicedToArray2[\"default\"])(_React$useState, 2),\n _React$useState2$ = (0, _slicedToArray2[\"default\"])(_React$useState2[0], 3),\n startLen = _React$useState2$[0],\n midLen = _React$useState2$[1],\n endLen = _React$useState2$[2],\n setCutLength = _React$useState2[1];\n var _React$useState3 = React.useState(NONE),\n _React$useState4 = (0, _slicedToArray2[\"default\"])(_React$useState3, 2),\n walkingState = _React$useState4[0],\n setWalkingState = _React$useState4[1];\n var _React$useState5 = React.useState(0),\n _React$useState6 = (0, _slicedToArray2[\"default\"])(_React$useState5, 2),\n singleRowHeight = _React$useState6[0],\n setSingleRowHeight = _React$useState6[1];\n var singleRowRef = React.useRef(null);\n var midRowRef = React.useRef(null);\n var nodeList = React.useMemo(function () {\n return (0, _toArray[\"default\"])(text);\n }, [text]);\n var totalLen = React.useMemo(function () {\n return getNodesLen(nodeList);\n }, [nodeList]);\n var mergedChildren = React.useMemo(function () {\n if (!enabledMeasure || walkingState !== DONE_WITH_ELLIPSIS) {\n return children(nodeList, false);\n }\n return children(sliceNodes(nodeList, midLen), midLen < totalLen);\n }, [enabledMeasure, walkingState, children, nodeList, midLen, totalLen]);\n // ======================== Walk ========================\n (0, _useLayoutEffect[\"default\"])(function () {\n if (enabledMeasure && width && fontSize && totalLen) {\n setWalkingState(PREPARE);\n setCutLength([0, Math.ceil(totalLen / 2), totalLen]);\n }\n }, [enabledMeasure, width, fontSize, text, totalLen, rows]);\n (0, _useLayoutEffect[\"default\"])(function () {\n var _a;\n if (walkingState === PREPARE) {\n setSingleRowHeight(((_a = singleRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0);\n }\n }, [walkingState]);\n (0, _useLayoutEffect[\"default\"])(function () {\n var _a, _b;\n if (singleRowHeight) {\n if (walkingState === PREPARE) {\n // Ignore if position is enough\n var midHeight = ((_a = midRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0;\n var maxHeight = rows * singleRowHeight;\n if (midHeight <= maxHeight) {\n setWalkingState(DONE_WITHOUT_ELLIPSIS);\n onEllipsis(false);\n } else {\n setWalkingState(WALKING);\n }\n } else if (walkingState === WALKING) {\n if (startLen !== endLen) {\n var _midHeight = ((_b = midRowRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 0;\n var _maxHeight = rows * singleRowHeight;\n var nextStartLen = startLen;\n var nextEndLen = endLen;\n // We reach the last round\n if (startLen === endLen - 1) {\n nextEndLen = startLen;\n } else if (_midHeight <= _maxHeight) {\n nextStartLen = midLen;\n } else {\n nextEndLen = midLen;\n }\n var nextMidLen = Math.ceil((nextStartLen + nextEndLen) / 2);\n setCutLength([nextStartLen, nextMidLen, nextEndLen]);\n } else {\n setWalkingState(DONE_WITH_ELLIPSIS);\n onEllipsis(true);\n }\n }\n }\n }, [walkingState, startLen, endLen, rows, singleRowHeight]);\n // ======================= Render =======================\n var measureStyle = {\n width: width,\n whiteSpace: 'normal',\n margin: 0,\n padding: 0\n };\n var renderMeasure = function renderMeasure(content, ref, style) {\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n ref: ref,\n style: (0, _extends2[\"default\"])({\n position: 'fixed',\n display: 'block',\n left: 0,\n top: 0,\n zIndex: -9999,\n visibility: 'hidden',\n pointerEvents: 'none',\n fontSize: Math.floor(fontSize / 2) * 2\n }, style)\n }, content);\n };\n var renderMeasureSlice = function renderMeasureSlice(len, ref) {\n var sliceNodeList = sliceNodes(nodeList, len);\n return renderMeasure(children(sliceNodeList, true), ref, measureStyle);\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, mergedChildren, enabledMeasure && walkingState !== DONE_WITH_ELLIPSIS && walkingState !== DONE_WITHOUT_ELLIPSIS && ( /*#__PURE__*/React.createElement(React.Fragment, null, renderMeasure('lg', singleRowRef, {\n wordBreak: 'keep-all',\n whiteSpace: 'nowrap'\n }), walkingState === PREPARE ? renderMeasure(children(nodeList, false), midRowRef, measureStyle) : renderMeasureSlice(midLen, midRowRef))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Ellipsis.displayName = 'Ellipsis';\n}\nvar _default = exports[\"default\"] = Ellipsis;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _tooltip = _interopRequireDefault(require(\"../../tooltip\"));\nvar EllipsisTooltip = function EllipsisTooltip(_ref) {\n var enabledEllipsis = _ref.enabledEllipsis,\n isEllipsis = _ref.isEllipsis,\n children = _ref.children,\n tooltipProps = _ref.tooltipProps;\n if (!(tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.title) || !enabledEllipsis) {\n return children;\n }\n return /*#__PURE__*/React.createElement(_tooltip[\"default\"], (0, _extends2[\"default\"])({\n open: isEllipsis ? undefined : false\n }, tooltipProps), children);\n};\nif (process.env.NODE_ENV !== 'production') {\n EllipsisTooltip.displayName = 'EllipsisTooltip';\n}\nvar _default = exports[\"default\"] = EllipsisTooltip;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _CheckOutlined = _interopRequireDefault(require(\"@ant-design/icons/CheckOutlined\"));\nvar _CopyOutlined = _interopRequireDefault(require(\"@ant-design/icons/CopyOutlined\"));\nvar _EditOutlined = _interopRequireDefault(require(\"@ant-design/icons/EditOutlined\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\nvar _rcResizeObserver = _interopRequireDefault(require(\"rc-resize-observer\"));\nvar _toArray = _interopRequireDefault(require(\"rc-util/lib/Children/toArray\"));\nvar _useLayoutEffect = _interopRequireDefault(require(\"rc-util/lib/hooks/useLayoutEffect\"));\nvar _useMergedState3 = _interopRequireDefault(require(\"rc-util/lib/hooks/useMergedState\"));\nvar _omit = _interopRequireDefault(require(\"rc-util/lib/omit\"));\nvar _ref3 = require(\"rc-util/lib/ref\");\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _configProvider = require(\"../../config-provider\");\nvar _LocaleReceiver = require(\"../../locale-provider/LocaleReceiver\");\nvar _transButton = _interopRequireDefault(require(\"../../_util/transButton\"));\nvar _styleChecker = require(\"../../_util/styleChecker\");\nvar _tooltip = _interopRequireDefault(require(\"../../tooltip\"));\nvar _Editable = _interopRequireDefault(require(\"../Editable\"));\nvar _useMergedConfig7 = _interopRequireDefault(require(\"../hooks/useMergedConfig\"));\nvar _useUpdatedEffect = _interopRequireDefault(require(\"../hooks/useUpdatedEffect\"));\nvar _Typography = _interopRequireDefault(require(\"../Typography\"));\nvar _Ellipsis = _interopRequireDefault(require(\"./Ellipsis\"));\nvar _EllipsisTooltip = _interopRequireDefault(require(\"./EllipsisTooltip\"));\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nfunction wrapperDecorations(_ref, content) {\n var mark = _ref.mark,\n code = _ref.code,\n underline = _ref.underline,\n del = _ref[\"delete\"],\n strong = _ref.strong,\n keyboard = _ref.keyboard,\n italic = _ref.italic;\n var currentContent = content;\n function wrap(needed, tag) {\n if (!needed) return;\n currentContent = /*#__PURE__*/React.createElement(tag, {}, currentContent);\n }\n wrap(strong, 'strong');\n wrap(underline, 'u');\n wrap(del, 'del');\n wrap(code, 'code');\n wrap(mark, 'mark');\n wrap(keyboard, 'kbd');\n wrap(italic, 'i');\n return currentContent;\n}\nfunction getNode(dom, defaultNode, needDom) {\n if (dom === true || dom === undefined) {\n return defaultNode;\n }\n return dom || needDom && defaultNode;\n}\nfunction toList(val) {\n if (val === false) {\n return [false, false];\n }\n return Array.isArray(val) ? val : [val];\n}\nvar ELLIPSIS_STR = '...';\nvar Base = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _a, _b, _c;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n type = props.type,\n disabled = props.disabled,\n children = props.children,\n ellipsis = props.ellipsis,\n editable = props.editable,\n copyable = props.copyable,\n component = props.component,\n title = props.title,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"type\", \"disabled\", \"children\", \"ellipsis\", \"editable\", \"copyable\", \"component\", \"title\"]);\n var _React$useContext = React.useContext(_configProvider.ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var textLocale = (0, _LocaleReceiver.useLocaleReceiver)('Text')[0]; // Force TS get this\n var typographyRef = React.useRef(null);\n var editIconRef = React.useRef(null);\n // ============================ MISC ============================\n var prefixCls = getPrefixCls('typography', customizePrefixCls);\n var textProps = (0, _omit[\"default\"])(restProps, ['mark', 'code', 'delete', 'underline', 'strong', 'keyboard', 'italic']);\n // ========================== Editable ==========================\n var _useMergedConfig = (0, _useMergedConfig7[\"default\"])(editable),\n _useMergedConfig2 = (0, _slicedToArray2[\"default\"])(_useMergedConfig, 2),\n enableEdit = _useMergedConfig2[0],\n editConfig = _useMergedConfig2[1];\n var _useMergedState = (0, _useMergedState3[\"default\"])(false, {\n value: editConfig.editing\n }),\n _useMergedState2 = (0, _slicedToArray2[\"default\"])(_useMergedState, 2),\n editing = _useMergedState2[0],\n setEditing = _useMergedState2[1];\n var _editConfig$triggerTy = editConfig.triggerType,\n triggerType = _editConfig$triggerTy === void 0 ? ['icon'] : _editConfig$triggerTy;\n var triggerEdit = function triggerEdit(edit) {\n var _a;\n if (edit) {\n (_a = editConfig.onStart) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n }\n setEditing(edit);\n };\n // Focus edit icon when back\n (0, _useUpdatedEffect[\"default\"])(function () {\n var _a;\n if (!editing) {\n (_a = editIconRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }, [editing]);\n var onEditClick = function onEditClick(e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n triggerEdit(true);\n };\n var onEditChange = function onEditChange(value) {\n var _a;\n (_a = editConfig.onChange) === null || _a === void 0 ? void 0 : _a.call(editConfig, value);\n triggerEdit(false);\n };\n var onEditCancel = function onEditCancel() {\n var _a;\n (_a = editConfig.onCancel) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n triggerEdit(false);\n };\n // ========================== Copyable ==========================\n var _useMergedConfig3 = (0, _useMergedConfig7[\"default\"])(copyable),\n _useMergedConfig4 = (0, _slicedToArray2[\"default\"])(_useMergedConfig3, 2),\n enableCopy = _useMergedConfig4[0],\n copyConfig = _useMergedConfig4[1];\n var _React$useState = React.useState(false),\n _React$useState2 = (0, _slicedToArray2[\"default\"])(_React$useState, 2),\n copied = _React$useState2[0],\n setCopied = _React$useState2[1];\n var copyIdRef = React.useRef();\n var copyOptions = {};\n if (copyConfig.format) {\n copyOptions.format = copyConfig.format;\n }\n var cleanCopyId = function cleanCopyId() {\n window.clearTimeout(copyIdRef.current);\n };\n var onCopyClick = function onCopyClick(e) {\n var _a;\n e === null || e === void 0 ? void 0 : e.preventDefault();\n e === null || e === void 0 ? void 0 : e.stopPropagation();\n (0, _copyToClipboard[\"default\"])(copyConfig.text || String(children) || '', copyOptions);\n setCopied(true);\n // Trigger tips update\n cleanCopyId();\n copyIdRef.current = window.setTimeout(function () {\n setCopied(false);\n }, 3000);\n (_a = copyConfig.onCopy) === null || _a === void 0 ? void 0 : _a.call(copyConfig, e);\n };\n React.useEffect(function () {\n return cleanCopyId;\n }, []);\n // ========================== Ellipsis ==========================\n var _React$useState3 = React.useState(false),\n _React$useState4 = (0, _slicedToArray2[\"default\"])(_React$useState3, 2),\n isLineClampSupport = _React$useState4[0],\n setIsLineClampSupport = _React$useState4[1];\n var _React$useState5 = React.useState(false),\n _React$useState6 = (0, _slicedToArray2[\"default\"])(_React$useState5, 2),\n isTextOverflowSupport = _React$useState6[0],\n setIsTextOverflowSupport = _React$useState6[1];\n var _React$useState7 = React.useState(false),\n _React$useState8 = (0, _slicedToArray2[\"default\"])(_React$useState7, 2),\n expanded = _React$useState8[0],\n setExpanded = _React$useState8[1];\n var _React$useState9 = React.useState(false),\n _React$useState10 = (0, _slicedToArray2[\"default\"])(_React$useState9, 2),\n isJsEllipsis = _React$useState10[0],\n setIsJsEllipsis = _React$useState10[1];\n var _React$useState11 = React.useState(false),\n _React$useState12 = (0, _slicedToArray2[\"default\"])(_React$useState11, 2),\n isNativeEllipsis = _React$useState12[0],\n setIsNativeEllipsis = _React$useState12[1];\n var _React$useState13 = React.useState(true),\n _React$useState14 = (0, _slicedToArray2[\"default\"])(_React$useState13, 2),\n isNativeVisible = _React$useState14[0],\n setIsNativeVisible = _React$useState14[1];\n var _useMergedConfig5 = (0, _useMergedConfig7[\"default\"])(ellipsis, {\n expandable: false\n }),\n _useMergedConfig6 = (0, _slicedToArray2[\"default\"])(_useMergedConfig5, 2),\n enableEllipsis = _useMergedConfig6[0],\n ellipsisConfig = _useMergedConfig6[1];\n var mergedEnableEllipsis = enableEllipsis && !expanded;\n // Shared prop to reduce bundle size\n var _ellipsisConfig$rows = ellipsisConfig.rows,\n rows = _ellipsisConfig$rows === void 0 ? 1 : _ellipsisConfig$rows;\n var needMeasureEllipsis = React.useMemo(function () {\n return (\n // Disable ellipsis\n !mergedEnableEllipsis ||\n // Provide suffix\n ellipsisConfig.suffix !== undefined || ellipsisConfig.onEllipsis ||\n // Can't use css ellipsis since we need to provide the place for button\n ellipsisConfig.expandable || enableEdit || enableCopy\n );\n }, [mergedEnableEllipsis, ellipsisConfig, enableEdit, enableCopy]);\n (0, _useLayoutEffect[\"default\"])(function () {\n if (enableEllipsis && !needMeasureEllipsis) {\n setIsLineClampSupport((0, _styleChecker.isStyleSupport)('webkitLineClamp'));\n setIsTextOverflowSupport((0, _styleChecker.isStyleSupport)('textOverflow'));\n }\n }, [needMeasureEllipsis, enableEllipsis]);\n var cssEllipsis = React.useMemo(function () {\n if (needMeasureEllipsis) {\n return false;\n }\n if (rows === 1) {\n return isTextOverflowSupport;\n }\n return isLineClampSupport;\n }, [needMeasureEllipsis, isTextOverflowSupport, isLineClampSupport]);\n var isMergedEllipsis = mergedEnableEllipsis && (cssEllipsis ? isNativeEllipsis : isJsEllipsis);\n var cssTextOverflow = mergedEnableEllipsis && rows === 1 && cssEllipsis;\n var cssLineClamp = mergedEnableEllipsis && rows > 1 && cssEllipsis;\n // >>>>> Expand\n var onExpandClick = function onExpandClick(e) {\n var _a;\n setExpanded(true);\n (_a = ellipsisConfig.onExpand) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, e);\n };\n var _React$useState15 = React.useState(0),\n _React$useState16 = (0, _slicedToArray2[\"default\"])(_React$useState15, 2),\n ellipsisWidth = _React$useState16[0],\n setEllipsisWidth = _React$useState16[1];\n var _React$useState17 = React.useState(0),\n _React$useState18 = (0, _slicedToArray2[\"default\"])(_React$useState17, 2),\n ellipsisFontSize = _React$useState18[0],\n setEllipsisFontSize = _React$useState18[1];\n var onResize = function onResize(_ref2, element) {\n var offsetWidth = _ref2.offsetWidth;\n var _a;\n setEllipsisWidth(offsetWidth);\n setEllipsisFontSize(parseInt((_a = window.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(window, element).fontSize, 10) || 0);\n };\n // >>>>> JS Ellipsis\n var onJsEllipsis = function onJsEllipsis(jsEllipsis) {\n var _a;\n setIsJsEllipsis(jsEllipsis);\n // Trigger if changed\n if (isJsEllipsis !== jsEllipsis) {\n (_a = ellipsisConfig.onEllipsis) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, jsEllipsis);\n }\n };\n // >>>>> Native ellipsis\n React.useEffect(function () {\n var textEle = typographyRef.current;\n if (enableEllipsis && cssEllipsis && textEle) {\n var currentEllipsis = cssLineClamp ? textEle.offsetHeight < textEle.scrollHeight : textEle.offsetWidth < textEle.scrollWidth;\n if (isNativeEllipsis !== currentEllipsis) {\n setIsNativeEllipsis(currentEllipsis);\n }\n }\n }, [enableEllipsis, cssEllipsis, children, cssLineClamp, isNativeVisible]);\n // https://github.com/ant-design/ant-design/issues/36786\n // Use IntersectionObserver to check if element is invisible\n React.useEffect(function () {\n var textEle = typographyRef.current;\n if (typeof IntersectionObserver === 'undefined' || !textEle || !cssEllipsis || !mergedEnableEllipsis) {\n return;\n }\n /* eslint-disable-next-line compat/compat */\n var observer = new IntersectionObserver(function () {\n setIsNativeVisible(!!textEle.offsetParent);\n });\n observer.observe(textEle);\n return function () {\n observer.disconnect();\n };\n }, [cssEllipsis, mergedEnableEllipsis]);\n // ========================== Tooltip ===========================\n var tooltipProps = {};\n if (ellipsisConfig.tooltip === true) {\n tooltipProps = {\n title: (_a = editConfig.text) !== null && _a !== void 0 ? _a : children\n };\n } else if ( /*#__PURE__*/React.isValidElement(ellipsisConfig.tooltip)) {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n } else if ((0, _typeof2[\"default\"])(ellipsisConfig.tooltip) === 'object') {\n tooltipProps = (0, _extends2[\"default\"])({\n title: (_b = editConfig.text) !== null && _b !== void 0 ? _b : children\n }, ellipsisConfig.tooltip);\n } else {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n }\n var topAriaLabel = React.useMemo(function () {\n var isValid = function isValid(val) {\n return ['string', 'number'].includes((0, _typeof2[\"default\"])(val));\n };\n if (!enableEllipsis || cssEllipsis) {\n return undefined;\n }\n if (isValid(editConfig.text)) {\n return editConfig.text;\n }\n if (isValid(children)) {\n return children;\n }\n if (isValid(title)) {\n return title;\n }\n if (isValid(tooltipProps.title)) {\n return tooltipProps.title;\n }\n return undefined;\n }, [enableEllipsis, cssEllipsis, title, tooltipProps.title, isMergedEllipsis]);\n // =========================== Render ===========================\n // >>>>>>>>>>> Editing input\n if (editing) {\n return /*#__PURE__*/React.createElement(_Editable[\"default\"], {\n value: (_c = editConfig.text) !== null && _c !== void 0 ? _c : typeof children === 'string' ? children : '',\n onSave: onEditChange,\n onCancel: onEditCancel,\n onEnd: editConfig.onEnd,\n prefixCls: prefixCls,\n className: className,\n style: style,\n direction: direction,\n component: component,\n maxLength: editConfig.maxLength,\n autoSize: editConfig.autoSize,\n enterIcon: editConfig.enterIcon\n });\n }\n // >>>>>>>>>>> Typography\n // Expand\n var renderExpand = function renderExpand() {\n var expandable = ellipsisConfig.expandable,\n symbol = ellipsisConfig.symbol;\n if (!expandable) return null;\n var expandContent;\n if (symbol) {\n expandContent = symbol;\n } else {\n expandContent = textLocale.expand;\n }\n return /*#__PURE__*/React.createElement(\"a\", {\n key: \"expand\",\n className: \"\".concat(prefixCls, \"-expand\"),\n onClick: onExpandClick,\n \"aria-label\": textLocale.expand\n }, expandContent);\n };\n // Edit\n var renderEdit = function renderEdit() {\n if (!enableEdit) return;\n var icon = editConfig.icon,\n tooltip = editConfig.tooltip;\n var editTitle = (0, _toArray[\"default\"])(tooltip)[0] || textLocale.edit;\n var ariaLabel = typeof editTitle === 'string' ? editTitle : '';\n return triggerType.includes('icon') ? ( /*#__PURE__*/React.createElement(_tooltip[\"default\"], {\n key: \"edit\",\n title: tooltip === false ? '' : editTitle\n }, /*#__PURE__*/React.createElement(_transButton[\"default\"], {\n ref: editIconRef,\n className: \"\".concat(prefixCls, \"-edit\"),\n onClick: onEditClick,\n \"aria-label\": ariaLabel\n }, icon || /*#__PURE__*/React.createElement(_EditOutlined[\"default\"], {\n role: \"button\"\n })))) : null;\n };\n // Copy\n var renderCopy = function renderCopy() {\n if (!enableCopy) return;\n var tooltips = copyConfig.tooltips,\n icon = copyConfig.icon;\n var tooltipNodes = toList(tooltips);\n var iconNodes = toList(icon);\n var copyTitle = copied ? getNode(tooltipNodes[1], textLocale.copied) : getNode(tooltipNodes[0], textLocale.copy);\n var systemStr = copied ? textLocale.copied : textLocale.copy;\n var ariaLabel = typeof copyTitle === 'string' ? copyTitle : systemStr;\n return /*#__PURE__*/React.createElement(_tooltip[\"default\"], {\n key: \"copy\",\n title: copyTitle\n }, /*#__PURE__*/React.createElement(_transButton[\"default\"], {\n className: (0, _classnames[\"default\"])(\"\".concat(prefixCls, \"-copy\"), copied && \"\".concat(prefixCls, \"-copy-success\")),\n onClick: onCopyClick,\n \"aria-label\": ariaLabel\n }, copied ? getNode(iconNodes[1], /*#__PURE__*/React.createElement(_CheckOutlined[\"default\"], null), true) : getNode(iconNodes[0], /*#__PURE__*/React.createElement(_CopyOutlined[\"default\"], null), true)));\n };\n var renderOperations = function renderOperations(renderExpanded) {\n return [renderExpanded && renderExpand(), renderEdit(), renderCopy()];\n };\n var renderEllipsis = function renderEllipsis(needEllipsis) {\n return [needEllipsis && ( /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n key: \"ellipsis\"\n }, ELLIPSIS_STR)), ellipsisConfig.suffix, renderOperations(needEllipsis)];\n };\n return /*#__PURE__*/React.createElement(_rcResizeObserver[\"default\"], {\n onResize: onResize,\n disabled: !mergedEnableEllipsis || cssEllipsis\n }, function (resizeRef) {\n return /*#__PURE__*/React.createElement(_EllipsisTooltip[\"default\"], {\n tooltipProps: tooltipProps,\n enabledEllipsis: mergedEnableEllipsis,\n isEllipsis: isMergedEllipsis\n }, /*#__PURE__*/React.createElement(_Typography[\"default\"], (0, _extends2[\"default\"])({\n className: (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-\").concat(type), type), \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-ellipsis\"), enableEllipsis), \"\".concat(prefixCls, \"-single-line\"), mergedEnableEllipsis && rows === 1), \"\".concat(prefixCls, \"-ellipsis-single-line\"), cssTextOverflow), \"\".concat(prefixCls, \"-ellipsis-multiple-line\"), cssLineClamp), className),\n prefixCls: customizePrefixCls,\n style: (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, style), {\n WebkitLineClamp: cssLineClamp ? rows : undefined\n }),\n component: component,\n ref: (0, _ref3.composeRef)(resizeRef, typographyRef, ref),\n direction: direction,\n onClick: triggerType.includes('text') ? onEditClick : undefined,\n \"aria-label\": topAriaLabel === null || topAriaLabel === void 0 ? void 0 : topAriaLabel.toString(),\n title: title\n }, textProps), /*#__PURE__*/React.createElement(_Ellipsis[\"default\"], {\n enabledMeasure: mergedEnableEllipsis && !cssEllipsis,\n text: children,\n rows: rows,\n width: ellipsisWidth,\n fontSize: ellipsisFontSize,\n onEllipsis: onJsEllipsis\n }, function (node, needEllipsis) {\n var renderNode = node;\n if (node.length && needEllipsis && topAriaLabel) {\n renderNode = /*#__PURE__*/React.createElement(\"span\", {\n key: \"show-content\",\n \"aria-hidden\": true\n }, renderNode);\n }\n var wrappedContext = wrapperDecorations(props, /*#__PURE__*/React.createElement(React.Fragment, null, renderNode, renderEllipsis(needEllipsis)));\n return wrappedContext;\n })));\n });\n});\nvar _default = exports[\"default\"] = Base;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _EnterOutlined = _interopRequireDefault(require(\"@ant-design/icons/EnterOutlined\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _KeyCode = _interopRequireDefault(require(\"rc-util/lib/KeyCode\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _TextArea = _interopRequireDefault(require(\"../input/TextArea\"));\nvar _reactNode = require(\"../_util/reactNode\");\nvar Editable = function Editable(_ref) {\n var prefixCls = _ref.prefixCls,\n ariaLabel = _ref['aria-label'],\n className = _ref.className,\n style = _ref.style,\n direction = _ref.direction,\n maxLength = _ref.maxLength,\n _ref$autoSize = _ref.autoSize,\n autoSize = _ref$autoSize === void 0 ? true : _ref$autoSize,\n value = _ref.value,\n onSave = _ref.onSave,\n onCancel = _ref.onCancel,\n onEnd = _ref.onEnd,\n component = _ref.component,\n _ref$enterIcon = _ref.enterIcon,\n enterIcon = _ref$enterIcon === void 0 ? /*#__PURE__*/React.createElement(_EnterOutlined[\"default\"], null) : _ref$enterIcon;\n var ref = React.useRef(null);\n var inComposition = React.useRef(false);\n var lastKeyCode = React.useRef();\n var _React$useState = React.useState(value),\n _React$useState2 = (0, _slicedToArray2[\"default\"])(_React$useState, 2),\n current = _React$useState2[0],\n setCurrent = _React$useState2[1];\n React.useEffect(function () {\n setCurrent(value);\n }, [value]);\n React.useEffect(function () {\n if (ref.current && ref.current.resizableTextArea) {\n var textArea = ref.current.resizableTextArea.textArea;\n textArea.focus();\n var length = textArea.value.length;\n textArea.setSelectionRange(length, length);\n }\n }, []);\n var onChange = function onChange(_ref2) {\n var target = _ref2.target;\n setCurrent(target.value.replace(/[\\n\\r]/g, ''));\n };\n var onCompositionStart = function onCompositionStart() {\n inComposition.current = true;\n };\n var onCompositionEnd = function onCompositionEnd() {\n inComposition.current = false;\n };\n var onKeyDown = function onKeyDown(_ref3) {\n var keyCode = _ref3.keyCode;\n // We don't record keyCode when IME is using\n if (inComposition.current) return;\n lastKeyCode.current = keyCode;\n };\n var confirmChange = function confirmChange() {\n onSave(current.trim());\n };\n var onKeyUp = function onKeyUp(_ref4) {\n var keyCode = _ref4.keyCode,\n ctrlKey = _ref4.ctrlKey,\n altKey = _ref4.altKey,\n metaKey = _ref4.metaKey,\n shiftKey = _ref4.shiftKey;\n // Check if it's a real key\n if (lastKeyCode.current === keyCode && !inComposition.current && !ctrlKey && !altKey && !metaKey && !shiftKey) {\n if (keyCode === _KeyCode[\"default\"].ENTER) {\n confirmChange();\n onEnd === null || onEnd === void 0 ? void 0 : onEnd();\n } else if (keyCode === _KeyCode[\"default\"].ESC) {\n onCancel();\n }\n }\n };\n var onBlur = function onBlur() {\n confirmChange();\n };\n var textClassName = component ? \"\".concat(prefixCls, \"-\").concat(component) : '';\n var textAreaClassName = (0, _classnames[\"default\"])(prefixCls, \"\".concat(prefixCls, \"-edit-content\"), (0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className, textClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: textAreaClassName,\n style: style\n }, /*#__PURE__*/React.createElement(_TextArea[\"default\"], {\n ref: ref,\n maxLength: maxLength,\n value: current,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onCompositionStart: onCompositionStart,\n onCompositionEnd: onCompositionEnd,\n onBlur: onBlur,\n \"aria-label\": ariaLabel,\n rows: 1,\n autoSize: autoSize\n }), enterIcon !== null ? (0, _reactNode.cloneElement)(enterIcon, {\n className: \"\".concat(prefixCls, \"-edit-content-confirm\")\n }) : null);\n};\nvar _default = exports[\"default\"] = Editable;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _omit = _interopRequireDefault(require(\"rc-util/lib/omit\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\nvar _Base = _interopRequireDefault(require(\"./Base\"));\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar Text = function Text(_a, ref) {\n var ellipsis = _a.ellipsis,\n restProps = __rest(_a, [\"ellipsis\"]);\n var mergedEllipsis = React.useMemo(function () {\n if (ellipsis && (0, _typeof2[\"default\"])(ellipsis) === 'object') {\n return (0, _omit[\"default\"])(ellipsis, ['expandable', 'rows']);\n }\n return ellipsis;\n }, [ellipsis]);\n process.env.NODE_ENV !== \"production\" ? (0, _warning[\"default\"])((0, _typeof2[\"default\"])(ellipsis) !== 'object' || !ellipsis || !('expandable' in ellipsis) && !('rows' in ellipsis), 'Typography.Text', '`ellipsis` do not support `expandable` or `rows` props.') : void 0;\n return /*#__PURE__*/React.createElement(_Base[\"default\"], (0, _extends2[\"default\"])({\n ref: ref\n }, restProps, {\n ellipsis: mergedEllipsis,\n component: \"span\"\n }));\n};\nvar _default = exports[\"default\"] = /*#__PURE__*/React.forwardRef(Text);","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _ref = require(\"rc-util/lib/ref\");\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _configProvider = require(\"../config-provider\");\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar Typography = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n _a$component = _a.component,\n Component = _a$component === void 0 ? 'article' : _a$component,\n className = _a.className,\n setContentRef = _a.setContentRef,\n children = _a.children,\n typographyDirection = _a.direction,\n restProps = __rest(_a, [\"prefixCls\", \"component\", \"className\", \"setContentRef\", \"children\", \"direction\"]);\n var _React$useContext = React.useContext(_configProvider.ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n contextDirection = _React$useContext.direction;\n var direction = typographyDirection !== null && typographyDirection !== void 0 ? typographyDirection : contextDirection;\n var mergedRef = ref;\n if (setContentRef) {\n process.env.NODE_ENV !== \"production\" ? (0, _warning[\"default\"])(false, 'Typography', '`setContentRef` is deprecated. Please use `ref` instead.') : void 0;\n mergedRef = (0, _ref.composeRef)(ref, setContentRef);\n }\n var prefixCls = getPrefixCls('typography', customizePrefixCls);\n var componentClassName = (0, _classnames[\"default\"])(prefixCls, (0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return (\n /*#__PURE__*/\n // @ts-expect-error: Expression produces a union type that is too complex to represent.\n React.createElement(Component, (0, _extends2[\"default\"])({\n className: componentClassName,\n ref: mergedRef\n }, restProps), children)\n );\n});\nif (process.env.NODE_ENV !== 'production') {\n Typography.displayName = 'Typography';\n}\n// es default export should use const instead of let\nvar _default = exports[\"default\"] = Typography;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = useMergedConfig;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction useMergedConfig(propConfig, templateConfig) {\n return React.useMemo(function () {\n var support = !!propConfig;\n return [support, (0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, templateConfig), support && (0, _typeof2[\"default\"])(propConfig) === 'object' ? propConfig : null)];\n }, [propConfig]);\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\n/** Similar with `useEffect` but only trigger after mounted */\nvar useUpdatedEffect = function useUpdatedEffect(callback, conditions) {\n var mountRef = React.useRef(false);\n React.useEffect(function () {\n if (mountRef.current) {\n callback();\n } else {\n mountRef.current = true;\n }\n }, conditions);\n};\nvar _default = exports[\"default\"] = useUpdatedEffect;","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","/* bessel.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported BESSEL */\nvar BESSEL;\n(function (factory) {\n /*jshint ignore:start */\n if(typeof DO_NOT_EXPORT_BESSEL === 'undefined') {\n if('object' === typeof exports) {\n factory(exports);\n } else if ('function' === typeof define && define.amd) {\n define(function () {\n var module = {};\n factory(module);\n return module;\n });\n } else {\n factory(BESSEL = {});\n }\n } else {\n factory(BESSEL = {});\n }\n /*jshint ignore:end */\n}(function(BESSEL) {\nBESSEL.version = '1.0.2';\nvar M = Math;\n\nfunction _horner(arr, v) { for(var i = 0, z = 0; i < arr.length; ++i) z = v * z + arr[i]; return z; }\nfunction _bessel_iter(x, n, f0, f1, sign) {\n if(n === 0) return f0;\n if(n === 1) return f1;\n var tdx = 2 / x, f2 = f1;\n for(var o = 1; o < n; ++o) {\n f2 = f1 * o * tdx + sign * f0;\n f0 = f1; f1 = f2;\n }\n return f2;\n}\nfunction _bessel_wrap(bessel0, bessel1, name, nonzero, sign) {\n return function bessel(x,n) {\n if(nonzero) {\n if(x === 0) return (nonzero == 1 ? -Infinity : Infinity);\n else if(x < 0) return NaN;\n }\n if(n === 0) return bessel0(x);\n if(n === 1) return bessel1(x);\n if(n < 0) return NaN;\n n|=0;\n var b0 = bessel0(x), b1 = bessel1(x);\n return _bessel_iter(x, n, b0, b1, sign);\n };\n}\nvar besselj = (function() {\n var W = 0.636619772; // 2 / Math.PI\n\n var b0_a1a = [57568490574.0, -13362590354.0, 651619640.7, -11214424.18, 77392.33017, -184.9052456].reverse();\n var b0_a2a = [57568490411.0, 1029532985.0, 9494680.718, 59272.64853, 267.8532712, 1.0].reverse();\n var b0_a1b = [1.0, -0.1098628627e-2, 0.2734510407e-4, -0.2073370639e-5, 0.2093887211e-6].reverse();\n var b0_a2b = [-0.1562499995e-1, 0.1430488765e-3, -0.6911147651e-5, 0.7621095161e-6, -0.934935152e-7].reverse();\n\n function bessel0(x) {\n var a=0, a1=0, a2=0, y = x * x;\n if(x < 8) {\n a1 = _horner(b0_a1a, y);\n a2 = _horner(b0_a2a, y);\n a = a1 / a2;\n } else {\n var xx = x - 0.785398164;\n y = 64 / y;\n a1 = _horner(b0_a1b, y);\n a2 = _horner(b0_a2b, y);\n a = M.sqrt(W/x)*(M.cos(xx)*a1-M.sin(xx)*a2*8/x);\n }\n return a;\n }\n\n var b1_a1a = [72362614232.0, -7895059235.0, 242396853.1, -2972611.439, 15704.48260, -30.16036606].reverse();\n var b1_a2a = [144725228442.0, 2300535178.0, 18583304.74, 99447.43394, 376.9991397, 1.0].reverse();\n var b1_a1b = [1.0, 0.183105e-2, -0.3516396496e-4, 0.2457520174e-5, -0.240337019e-6].reverse();\n var b1_a2b = [0.04687499995, -0.2002690873e-3, 0.8449199096e-5, -0.88228987e-6, 0.105787412e-6].reverse();\n\n function bessel1(x) {\n var a=0, a1=0, a2=0, y = x*x, xx = M.abs(x) - 2.356194491;\n if(Math.abs(x)< 8) {\n a1 = x*_horner(b1_a1a, y);\n a2 = _horner(b1_a2a, y);\n a = a1 / a2;\n } else {\n y = 64 / y;\n a1=_horner(b1_a1b, y);\n a2=_horner(b1_a2b, y);\n a=M.sqrt(W/M.abs(x))*(M.cos(xx)*a1-M.sin(xx)*a2*8/M.abs(x));\n if(x < 0) a = -a;\n }\n return a;\n }\n\n return function besselj(x, n) {\n n = Math.round(n);\n if(!isFinite(x)) return isNaN(x) ? x : 0;\n if(n < 0) return ((n%2)?-1:1)*besselj(x, -n);\n if(x < 0) return ((n%2)?-1:1)*besselj(-x, n);\n if(n === 0) return bessel0(x);\n if(n === 1) return bessel1(x);\n if(x === 0) return 0;\n\n var ret=0.0;\n if(x > n) {\n ret = _bessel_iter(x, n, bessel0(x), bessel1(x),-1);\n } else {\n var m=2*M.floor((n+M.floor(M.sqrt(40*n)))/2);\n var jsum=false;\n var bjp=0.0, sum=0.0;\n var bj=1.0, bjm = 0.0;\n var tox = 2 / x;\n for (var j=m;j>0;j--) {\n bjm=j*tox*bj-bjp;\n bjp=bj;\n bj=bjm;\n if (M.abs(bj) > 1E10) {\n bj *= 1E-10;\n bjp *= 1E-10;\n ret *= 1E-10;\n sum *= 1E-10;\n }\n if (jsum) sum += bj;\n jsum=!jsum;\n if (j == n) ret=bjp;\n }\n sum=2.0*sum-bj;\n ret /= sum;\n }\n return ret;\n };\n})();\nvar bessely = (function() {\n var W = 0.636619772;\n\n var b0_a1a = [-2957821389.0, 7062834065.0, -512359803.6, 10879881.29, -86327.92757, 228.4622733].reverse();\n var b0_a2a = [40076544269.0, 745249964.8, 7189466.438, 47447.26470, 226.1030244, 1.0].reverse();\n var b0_a1b = [1.0, -0.1098628627e-2, 0.2734510407e-4, -0.2073370639e-5, 0.2093887211e-6].reverse();\n var b0_a2b = [-0.1562499995e-1, 0.1430488765e-3, -0.6911147651e-5, 0.7621095161e-6, -0.934945152e-7].reverse();\n\n function bessel0(x) {\n var a=0, a1=0, a2=0, y = x * x, xx = x - 0.785398164;\n if(x < 8) {\n a1 = _horner(b0_a1a, y);\n a2 = _horner(b0_a2a, y);\n a = a1/a2 + W * besselj(x,0) * M.log(x);\n } else {\n y = 64 / y;\n a1 = _horner(b0_a1b, y);\n a2 = _horner(b0_a2b, y);\n a = M.sqrt(W/x)*(M.sin(xx)*a1+M.cos(xx)*a2*8/x);\n }\n return a;\n }\n\n var b1_a1a = [-0.4900604943e13, 0.1275274390e13, -0.5153438139e11, 0.7349264551e9, -0.4237922726e7, 0.8511937935e4].reverse();\n var b1_a2a = [0.2499580570e14, 0.4244419664e12, 0.3733650367e10, 0.2245904002e8, 0.1020426050e6, 0.3549632885e3, 1].reverse();\n var b1_a1b = [1.0, 0.183105e-2, -0.3516396496e-4, 0.2457520174e-5, -0.240337019e-6].reverse();\n var b1_a2b = [0.04687499995, -0.2002690873e-3, 0.8449199096e-5, -0.88228987e-6, 0.105787412e-6].reverse();\n\n function bessel1(x) {\n var a=0, a1=0, a2=0, y = x*x, xx = x - 2.356194491;\n if(x < 8) {\n a1 = x*_horner(b1_a1a, y);\n a2 = _horner(b1_a2a, y);\n a = a1/a2 + W * (besselj(x,1) * M.log(x) - 1 / x);\n } else {\n y = 64 / y;\n a1=_horner(b1_a1b, y);\n a2=_horner(b1_a2b, y);\n a=M.sqrt(W/x)*(M.sin(xx)*a1+M.cos(xx)*a2*8/x);\n }\n return a;\n }\n\n return _bessel_wrap(bessel0, bessel1, 'BESSELY', 1, -1);\n})();\nvar besseli = (function() {\n var b0_a = [1.0, 3.5156229, 3.0899424, 1.2067492, 0.2659732, 0.360768e-1, 0.45813e-2].reverse();\n var b0_b = [0.39894228, 0.1328592e-1, 0.225319e-2, -0.157565e-2, 0.916281e-2, -0.2057706e-1, 0.2635537e-1, -0.1647633e-1, 0.392377e-2].reverse();\n\n function bessel0(x) {\n if(x <= 3.75) return _horner(b0_a, x*x/(3.75*3.75));\n return M.exp(M.abs(x))/M.sqrt(M.abs(x))*_horner(b0_b, 3.75/M.abs(x));\n }\n\n var b1_a = [0.5, 0.87890594, 0.51498869, 0.15084934, 0.2658733e-1, 0.301532e-2, 0.32411e-3].reverse();\n var b1_b = [0.39894228, -0.3988024e-1, -0.362018e-2, 0.163801e-2, -0.1031555e-1, 0.2282967e-1, -0.2895312e-1, 0.1787654e-1, -0.420059e-2].reverse();\n\n function bessel1(x) {\n if(x < 3.75) return x * _horner(b1_a, x*x/(3.75*3.75));\n return (x < 0 ? -1 : 1) * M.exp(M.abs(x))/M.sqrt(M.abs(x))*_horner(b1_b, 3.75/M.abs(x));\n }\n\n return function besseli(x, n) {\n n = Math.round(n);\n if(n === 0) return bessel0(x);\n if(n === 1) return bessel1(x);\n if(n < 0) return NaN;\n if(M.abs(x) === 0) return 0;\n if(x == Infinity) return Infinity;\n\n var ret = 0.0, j, tox = 2 / M.abs(x), bip = 0.0, bi=1.0, bim=0.0;\n var m=2*M.round((n+M.round(M.sqrt(40*n)))/2);\n for (j=m;j>0;j--) {\n bim=j*tox*bi + bip;\n bip=bi; bi=bim;\n if (M.abs(bi) > 1E10) {\n bi *= 1E-10;\n bip *= 1E-10;\n ret *= 1E-10;\n }\n if(j == n) ret = bip;\n }\n ret *= besseli(x, 0) / bi;\n return x < 0 && (n%2) ? -ret : ret;\n };\n\n})();\n\nvar besselk = (function() {\n var b0_a = [-0.57721566, 0.42278420, 0.23069756, 0.3488590e-1, 0.262698e-2, 0.10750e-3, 0.74e-5].reverse();\n var b0_b = [1.25331414, -0.7832358e-1, 0.2189568e-1, -0.1062446e-1, 0.587872e-2, -0.251540e-2, 0.53208e-3].reverse();\n\n function bessel0(x) {\n if(x <= 2) return -M.log(x/2) * besseli(x,0) + _horner(b0_a, x*x/4);\n return M.exp(-x) / M.sqrt(x) * _horner(b0_b, 2/x);\n }\n\n var b1_a = [1.0, 0.15443144, -0.67278579, -0.18156897, -0.1919402e-1, -0.110404e-2, -0.4686e-4].reverse();\n var b1_b = [1.25331414, 0.23498619, -0.3655620e-1, 0.1504268e-1, -0.780353e-2, 0.325614e-2, -0.68245e-3].reverse();\n\n function bessel1(x) {\n if(x <= 2) return M.log(x/2) * besseli(x,1) + (1/x) * _horner(b1_a, x*x/4);\n return M.exp(-x)/M.sqrt(x)*_horner(b1_b, 2/x);\n }\n\n return _bessel_wrap(bessel0, bessel1, 'BESSELK', 2, 1);\n})();\nBESSEL.besselj = besselj;\nBESSEL.bessely = bessely;\nBESSEL.besseli = besseli;\nBESSEL.besselk = besselk;\n}));\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]<u[1][a])return-1}},e.map=function(e,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n},e.find=function(e,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,n=e.length;r<n;r+=1){var i=e[r];if(t(i,r))return i}},e.assign=function(e){for(var t,r,n=e,i=arguments.length,s=new Array(i>1?i-1:0),a=1;a<i;a++)s[a-1]=arguments[a];if(Object.assign)return Object.assign.apply(Object,[e].concat(s));var o=function(){var e=s[t];\"object\"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){n[t]=e[t]}))};for(t=0,r=s.length;t<r;t+=1)o();return e},e.getBrowserAlias=function(e){return n.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return n.BROWSER_MAP[e]||\"\"},e}();t.default=i,e.exports=t.default},18:function(e,t,r){\"use strict\";t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0;t.BROWSER_ALIASES_MAP={\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",Bada:\"bada\",BlackBerry:\"blackberry\",Chrome:\"chrome\",Chromium:\"chromium\",Electron:\"electron\",Epiphany:\"epiphany\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",\"Internet Explorer\":\"ie\",\"K-Meleon\":\"k_meleon\",Maxthon:\"maxthon\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",PhantomJS:\"phantomjs\",Puffin:\"puffin\",QupZilla:\"qupzilla\",QQ:\"qq\",QQLite:\"qqlite\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",\"Yandex Browser\":\"yandex\",Roku:\"roku\"};t.BROWSER_MAP={amazon_silk:\"Amazon Silk\",android:\"Android Browser\",bada:\"Bada\",blackberry:\"BlackBerry\",chrome:\"Chrome\",chromium:\"Chromium\",electron:\"Electron\",epiphany:\"Epiphany\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",googlebot:\"Googlebot\",google_search:\"Google Search\",ie:\"Internet Explorer\",k_meleon:\"K-Meleon\",maxthon:\"Maxthon\",edge:\"Microsoft Edge\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",opera:\"Opera\",opera_coast:\"Opera Coast\",phantomjs:\"PhantomJS\",puffin:\"Puffin\",qupzilla:\"QupZilla\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yandex:\"Yandex Browser\"};t.PLATFORMS_MAP={tablet:\"tablet\",mobile:\"mobile\",desktop:\"desktop\",tv:\"tv\"};t.OS_MAP={WindowsPhone:\"Windows Phone\",Windows:\"Windows\",MacOS:\"macOS\",iOS:\"iOS\",Android:\"Android\",WebOS:\"WebOS\",BlackBerry:\"BlackBerry\",Bada:\"Bada\",Tizen:\"Tizen\",Linux:\"Linux\",ChromeOS:\"Chrome OS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\"};t.ENGINE_MAP={EdgeHTML:\"EdgeHTML\",Blink:\"Blink\",Trident:\"Trident\",Presto:\"Presto\",Gecko:\"Gecko\",WebKit:\"WebKit\"}},90:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(91))&&n.__esModule?n:{default:n},s=r(18);function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var o=function(){function e(){}var t,r,n;return e.getParser=function(e,t){if(void 0===t&&(t=!1),\"string\"!=typeof e)throw new Error(\"UserAgent should be a string\");return new i.default(e,t)},e.parse=function(e){return new i.default(e).getResult()},t=e,n=[{key:\"BROWSER_MAP\",get:function(){return s.BROWSER_MAP}},{key:\"ENGINE_MAP\",get:function(){return s.ENGINE_MAP}},{key:\"OS_MAP\",get:function(){return s.OS_MAP}},{key:\"PLATFORMS_MAP\",get:function(){return s.PLATFORMS_MAP}}],(r=null)&&a(t.prototype,r),n&&a(t,n),e}();t.default=o,e.exports=t.default},91:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=u(r(92)),i=u(r(93)),s=u(r(94)),a=u(r(95)),o=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||\"\"===e)throw new Error(\"UserAgent parameter can't be empty\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=o.default.find(n.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=o.default.find(i.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||\"\":t||\"\"},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||\"\":t||\"\"},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=o.default.find(s.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=o.default.find(a.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return o.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},n=0,i={},s=0;if(Object.keys(e).forEach((function(t){var a=e[t];\"string\"==typeof a?(i[t]=a,s+=1):\"object\"==typeof a&&(r[t]=a,n+=1)})),n>0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},D=\"en\",v={};v[D]=M;var p=function(t){return t instanceof _},S=function(t,e,n){var r;if(!t)return D;if(\"string\"==typeof t)v[t]&&(r=t),e&&(v[t]=e,r=t);else{var i=t.name;v[i]=t,r=i}return!n&&r&&(D=r),r||!n&&D},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),$=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},l=function(t,e){return O.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,g=\"set\"+(this.$u?\"UTC\":\"\");switch(h){case c:return r?$(1,0):$(31,11);case f:return r?$(1,M):$(0,M+1);case o:var D=this.$locale().weekStart||0,v=(y<D?y+7:y)-D;return $(r?m-v:m+(6-v),M);case a:case d:return l(g+\"Hours\",0);case u:return l(g+\"Minutes\",1);case s:return l(g+\"Seconds\",2);case i:return l(g+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h=\"set\"+(this.$u?\"UTC\":\"\"),$=(n={},n[a]=h+\"Date\",n[d]=h+\"Date\",n[f]=h+\"Month\",n[c]=h+\"FullYear\",n[u]=h+\"Hours\",n[s]=h+\"Minutes\",n[i]=h+\"Seconds\",n[r]=h+\"Milliseconds\",n)[o],l=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[$](l),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else $&&this.$d[$](l);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,$=this;r=Number(r);var l=O.p(h),y=function(t){var e=w($);return O.w(e.date(e.date()+Math.round(t*r)),$)};if(l===f)return this.set(f,this.$M+r);if(l===c)return this.set(c,this.$y+r);if(l===a)return y(1);if(l===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[l]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||$;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].substr(0,s)},c=function(t){return O.s(s%12||12,t,\"0\")},d=n.meridiem||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r},l={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,\"0\"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,\"0\"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,\"0\"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,\"0\"),s:String(this.$s),ss:O.s(this.$s,2,\"0\"),SSS:O.s(this.$ms,3,\"0\"),Z:i};return r.replace(y,(function(t,e){return e||l[t]||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,$){var l,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,g=this-M,D=O.m(this,M);return D=(l={},l[c]=D/12,l[f]=D,l[h]=D/3,l[o]=(g-m)/6048e5,l[a]=(g-m)/864e5,l[u]=g/n,l[s]=g/e,l[i]=g/t,l)[y]||g,$?D:O.a(D)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return v[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),b=_.prototype;return w.prototype=b,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",f],[\"$y\",c],[\"$D\",d]].forEach((function(t){b[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=v[D],w.Ls=v,w.p={},w}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&null===(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s)))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||(new Date).getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","(function (window, factory) {\n if (typeof exports === 'object') {\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n define(factory);\n } else {\n window.jStat = factory();\n }\n})(this, function () {\nvar jStat = (function(Math, undefined) {\n\n// For quick reference.\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\nvar toString = Object.prototype.toString;\n\n// Calculate correction for IEEE error\n// TODO: This calculation can be improved.\nfunction calcRdx(n, m) {\n var val = n > m ? n : m;\n return Math.pow(10,\n 17 - ~~(Math.log(((val > 0) ? val : -val)) * Math.LOG10E));\n}\n\n\nvar isArray = Array.isArray || function isArray(arg) {\n return toString.call(arg) === '[object Array]';\n};\n\n\nfunction isFunction(arg) {\n return toString.call(arg) === '[object Function]';\n}\n\n\nfunction isNumber(num) {\n return (typeof num === 'number') ? num - num === 0 : false;\n}\n\n\n// Converts the jStat matrix to vector.\nfunction toVector(arr) {\n return concat.apply([], arr);\n}\n\n\n// The one and only jStat constructor.\nfunction jStat() {\n return new jStat._init(arguments);\n}\n\n\n// TODO: Remove after all references in src files have been removed.\njStat.fn = jStat.prototype;\n\n\n// By separating the initializer from the constructor it's easier to handle\n// always returning a new instance whether \"new\" was used or not.\njStat._init = function _init(args) {\n // If first argument is an array, must be vector or matrix.\n if (isArray(args[0])) {\n // Check if matrix.\n if (isArray(args[0][0])) {\n // See if a mapping function was also passed.\n if (isFunction(args[1]))\n args[0] = jStat.map(args[0], args[1]);\n // Iterate over each is faster than this.push.apply(this, args[0].\n for (var i = 0; i < args[0].length; i++)\n this[i] = args[0][i];\n this.length = args[0].length;\n\n // Otherwise must be a vector.\n } else {\n this[0] = isFunction(args[1]) ? jStat.map(args[0], args[1]) : args[0];\n this.length = 1;\n }\n\n // If first argument is number, assume creation of sequence.\n } else if (isNumber(args[0])) {\n this[0] = jStat.seq.apply(null, args);\n this.length = 1;\n\n // Handle case when jStat object is passed to jStat.\n } else if (args[0] instanceof jStat) {\n // Duplicate the object and pass it back.\n return jStat(args[0].toArray());\n\n // Unexpected argument value, return empty jStat object.\n // TODO: This is strange behavior. Shouldn't this throw or some such to let\n // the user know they had bad arguments?\n } else {\n this[0] = [];\n this.length = 1;\n }\n\n return this;\n};\njStat._init.prototype = jStat.prototype;\njStat._init.constructor = jStat;\n\n\n// Utility functions.\n// TODO: for internal use only?\njStat.utils = {\n calcRdx: calcRdx,\n isArray: isArray,\n isFunction: isFunction,\n isNumber: isNumber,\n toVector: toVector\n};\n\n\njStat._random_fn = Math.random;\njStat.setRandom = function setRandom(fn) {\n if (typeof fn !== 'function')\n throw new TypeError('fn is not a function');\n jStat._random_fn = fn;\n};\n\n\n// Easily extend the jStat object.\n// TODO: is this seriously necessary?\njStat.extend = function extend(obj) {\n var i, j;\n\n if (arguments.length === 1) {\n for (j in obj)\n jStat[j] = obj[j];\n return this;\n }\n\n for (i = 1; i < arguments.length; i++) {\n for (j in arguments[i])\n obj[j] = arguments[i][j];\n }\n\n return obj;\n};\n\n\n// Returns the number of rows in the matrix.\njStat.rows = function rows(arr) {\n return arr.length || 1;\n};\n\n\n// Returns the number of columns in the matrix.\njStat.cols = function cols(arr) {\n return arr[0].length || 1;\n};\n\n\n// Returns the dimensions of the object { rows: i, cols: j }\njStat.dimensions = function dimensions(arr) {\n return {\n rows: jStat.rows(arr),\n cols: jStat.cols(arr)\n };\n};\n\n\n// Returns a specified row as a vector or return a sub matrix by pick some rows\njStat.row = function row(arr, index) {\n if (isArray(index)) {\n return index.map(function(i) {\n return jStat.row(arr, i);\n })\n }\n return arr[index];\n};\n\n\n// return row as array\n// rowa([[1,2],[3,4]],0) -> [1,2]\njStat.rowa = function rowa(arr, i) {\n return jStat.row(arr, i);\n};\n\n\n// Returns the specified column as a vector or return a sub matrix by pick some\n// columns\njStat.col = function col(arr, index) {\n if (isArray(index)) {\n var submat = jStat.arange(arr.length).map(function() {\n return new Array(index.length);\n });\n index.forEach(function(ind, i){\n jStat.arange(arr.length).forEach(function(j) {\n submat[j][i] = arr[j][ind];\n });\n });\n return submat;\n }\n var column = new Array(arr.length);\n for (var i = 0; i < arr.length; i++)\n column[i] = [arr[i][index]];\n return column;\n};\n\n\n// return column as array\n// cola([[1,2],[3,4]],0) -> [1,3]\njStat.cola = function cola(arr, i) {\n return jStat.col(arr, i).map(function(a){ return a[0] });\n};\n\n\n// Returns the diagonal of the matrix\njStat.diag = function diag(arr) {\n var nrow = jStat.rows(arr);\n var res = new Array(nrow);\n for (var row = 0; row < nrow; row++)\n res[row] = [arr[row][row]];\n return res;\n};\n\n\n// Returns the anti-diagonal of the matrix\njStat.antidiag = function antidiag(arr) {\n var nrow = jStat.rows(arr) - 1;\n var res = new Array(nrow);\n for (var i = 0; nrow >= 0; nrow--, i++)\n res[i] = [arr[i][nrow]];\n return res;\n};\n\n// Transpose a matrix or array.\njStat.transpose = function transpose(arr) {\n var obj = [];\n var objArr, rows, cols, j, i;\n\n // Make sure arr is in matrix format.\n if (!isArray(arr[0]))\n arr = [arr];\n\n rows = arr.length;\n cols = arr[0].length;\n\n for (i = 0; i < cols; i++) {\n objArr = new Array(rows);\n for (j = 0; j < rows; j++)\n objArr[j] = arr[j][i];\n obj.push(objArr);\n }\n\n // If obj is vector, return only single array.\n return obj.length === 1 ? obj[0] : obj;\n};\n\n\n// Map a function to an array or array of arrays.\n// \"toAlter\" is an internal variable.\njStat.map = function map(arr, func, toAlter) {\n var row, nrow, ncol, res, col;\n\n if (!isArray(arr[0]))\n arr = [arr];\n\n nrow = arr.length;\n ncol = arr[0].length;\n res = toAlter ? arr : new Array(nrow);\n\n for (row = 0; row < nrow; row++) {\n // if the row doesn't exist, create it\n if (!res[row])\n res[row] = new Array(ncol);\n for (col = 0; col < ncol; col++)\n res[row][col] = func(arr[row][col], row, col);\n }\n\n return res.length === 1 ? res[0] : res;\n};\n\n\n// Cumulatively combine the elements of an array or array of arrays using a function.\njStat.cumreduce = function cumreduce(arr, func, toAlter) {\n var row, nrow, ncol, res, col;\n\n if (!isArray(arr[0]))\n arr = [arr];\n\n nrow = arr.length;\n ncol = arr[0].length;\n res = toAlter ? arr : new Array(nrow);\n\n for (row = 0; row < nrow; row++) {\n // if the row doesn't exist, create it\n if (!res[row])\n res[row] = new Array(ncol);\n if (ncol > 0)\n res[row][0] = arr[row][0];\n for (col = 1; col < ncol; col++)\n res[row][col] = func(res[row][col-1], arr[row][col]);\n }\n return res.length === 1 ? res[0] : res;\n};\n\n\n// Destructively alter an array.\njStat.alter = function alter(arr, func) {\n return jStat.map(arr, func, true);\n};\n\n\n// Generate a rows x cols matrix according to the supplied function.\njStat.create = function create(rows, cols, func) {\n var res = new Array(rows);\n var i, j;\n\n if (isFunction(cols)) {\n func = cols;\n cols = rows;\n }\n\n for (i = 0; i < rows; i++) {\n res[i] = new Array(cols);\n for (j = 0; j < cols; j++)\n res[i][j] = func(i, j);\n }\n\n return res;\n};\n\n\nfunction retZero() { return 0; }\n\n\n// Generate a rows x cols matrix of zeros.\njStat.zeros = function zeros(rows, cols) {\n if (!isNumber(cols))\n cols = rows;\n return jStat.create(rows, cols, retZero);\n};\n\n\nfunction retOne() { return 1; }\n\n\n// Generate a rows x cols matrix of ones.\njStat.ones = function ones(rows, cols) {\n if (!isNumber(cols))\n cols = rows;\n return jStat.create(rows, cols, retOne);\n};\n\n\n// Generate a rows x cols matrix of uniformly random numbers.\njStat.rand = function rand(rows, cols) {\n if (!isNumber(cols))\n cols = rows;\n return jStat.create(rows, cols, jStat._random_fn);\n};\n\n\nfunction retIdent(i, j) { return i === j ? 1 : 0; }\n\n\n// Generate an identity matrix of size row x cols.\njStat.identity = function identity(rows, cols) {\n if (!isNumber(cols))\n cols = rows;\n return jStat.create(rows, cols, retIdent);\n};\n\n\n// Tests whether a matrix is symmetric\njStat.symmetric = function symmetric(arr) {\n var size = arr.length;\n var row, col;\n\n if (arr.length !== arr[0].length)\n return false;\n\n for (row = 0; row < size; row++) {\n for (col = 0; col < size; col++)\n if (arr[col][row] !== arr[row][col])\n return false;\n }\n\n return true;\n};\n\n\n// Set all values to zero.\njStat.clear = function clear(arr) {\n return jStat.alter(arr, retZero);\n};\n\n\n// Generate sequence.\njStat.seq = function seq(min, max, length, func) {\n if (!isFunction(func))\n func = false;\n\n var arr = [];\n var hival = calcRdx(min, max);\n var step = (max * hival - min * hival) / ((length - 1) * hival);\n var current = min;\n var cnt;\n\n // Current is assigned using a technique to compensate for IEEE error.\n // TODO: Needs better implementation.\n for (cnt = 0;\n current <= max && cnt < length;\n cnt++, current = (min * hival + step * hival * cnt) / hival) {\n arr.push((func ? func(current, cnt) : current));\n }\n\n return arr;\n};\n\n\n// arange(5) -> [0,1,2,3,4]\n// arange(1,5) -> [1,2,3,4]\n// arange(5,1,-1) -> [5,4,3,2]\njStat.arange = function arange(start, end, step) {\n var rl = [];\n var i;\n step = step || 1;\n if (end === undefined) {\n end = start;\n start = 0;\n }\n if (start === end || step === 0) {\n return [];\n }\n if (start < end && step < 0) {\n return [];\n }\n if (start > end && step > 0) {\n return [];\n }\n if (step > 0) {\n for (i = start; i < end; i += step) {\n rl.push(i);\n }\n } else {\n for (i = start; i > end; i += step) {\n rl.push(i);\n }\n }\n return rl;\n};\n\n\n// A=[[1,2,3],[4,5,6],[7,8,9]]\n// slice(A,{row:{end:2},col:{start:1}}) -> [[2,3],[5,6]]\n// slice(A,1,{start:1}) -> [5,6]\n// as numpy code A[:2,1:]\njStat.slice = (function(){\n function _slice(list, start, end, step) {\n // note it's not equal to range.map mode it's a bug\n var i;\n var rl = [];\n var length = list.length;\n if (start === undefined && end === undefined && step === undefined) {\n return jStat.copy(list);\n }\n\n start = start || 0;\n end = end || list.length;\n start = start >= 0 ? start : length + start;\n end = end >= 0 ? end : length + end;\n step = step || 1;\n if (start === end || step === 0) {\n return [];\n }\n if (start < end && step < 0) {\n return [];\n }\n if (start > end && step > 0) {\n return [];\n }\n if (step > 0) {\n for (i = start; i < end; i += step) {\n rl.push(list[i]);\n }\n } else {\n for (i = start; i > end;i += step) {\n rl.push(list[i]);\n }\n }\n return rl;\n }\n\n function slice(list, rcSlice) {\n var colSlice, rowSlice;\n rcSlice = rcSlice || {};\n if (isNumber(rcSlice.row)) {\n if (isNumber(rcSlice.col))\n return list[rcSlice.row][rcSlice.col];\n var row = jStat.rowa(list, rcSlice.row);\n colSlice = rcSlice.col || {};\n return _slice(row, colSlice.start, colSlice.end, colSlice.step);\n }\n\n if (isNumber(rcSlice.col)) {\n var col = jStat.cola(list, rcSlice.col);\n rowSlice = rcSlice.row || {};\n return _slice(col, rowSlice.start, rowSlice.end, rowSlice.step);\n }\n\n rowSlice = rcSlice.row || {};\n colSlice = rcSlice.col || {};\n var rows = _slice(list, rowSlice.start, rowSlice.end, rowSlice.step);\n return rows.map(function(row) {\n return _slice(row, colSlice.start, colSlice.end, colSlice.step);\n });\n }\n\n return slice;\n}());\n\n\n// A=[[1,2,3],[4,5,6],[7,8,9]]\n// sliceAssign(A,{row:{start:1},col:{start:1}},[[0,0],[0,0]])\n// A=[[1,2,3],[4,0,0],[7,0,0]]\njStat.sliceAssign = function sliceAssign(A, rcSlice, B) {\n var nl, ml;\n if (isNumber(rcSlice.row)) {\n if (isNumber(rcSlice.col))\n return A[rcSlice.row][rcSlice.col] = B;\n rcSlice.col = rcSlice.col || {};\n rcSlice.col.start = rcSlice.col.start || 0;\n rcSlice.col.end = rcSlice.col.end || A[0].length;\n rcSlice.col.step = rcSlice.col.step || 1;\n nl = jStat.arange(rcSlice.col.start,\n Math.min(A.length, rcSlice.col.end),\n rcSlice.col.step);\n var m = rcSlice.row;\n nl.forEach(function(n, i) {\n A[m][n] = B[i];\n });\n return A;\n }\n\n if (isNumber(rcSlice.col)) {\n rcSlice.row = rcSlice.row || {};\n rcSlice.row.start = rcSlice.row.start || 0;\n rcSlice.row.end = rcSlice.row.end || A.length;\n rcSlice.row.step = rcSlice.row.step || 1;\n ml = jStat.arange(rcSlice.row.start,\n Math.min(A[0].length, rcSlice.row.end),\n rcSlice.row.step);\n var n = rcSlice.col;\n ml.forEach(function(m, j) {\n A[m][n] = B[j];\n });\n return A;\n }\n\n if (B[0].length === undefined) {\n B = [B];\n }\n rcSlice.row.start = rcSlice.row.start || 0;\n rcSlice.row.end = rcSlice.row.end || A.length;\n rcSlice.row.step = rcSlice.row.step || 1;\n rcSlice.col.start = rcSlice.col.start || 0;\n rcSlice.col.end = rcSlice.col.end || A[0].length;\n rcSlice.col.step = rcSlice.col.step || 1;\n ml = jStat.arange(rcSlice.row.start,\n Math.min(A.length, rcSlice.row.end),\n rcSlice.row.step);\n nl = jStat.arange(rcSlice.col.start,\n Math.min(A[0].length, rcSlice.col.end),\n rcSlice.col.step);\n ml.forEach(function(m, i) {\n nl.forEach(function(n, j) {\n A[m][n] = B[i][j];\n });\n });\n return A;\n};\n\n\n// [1,2,3] ->\n// [[1,0,0],[0,2,0],[0,0,3]]\njStat.diagonal = function diagonal(diagArray) {\n var mat = jStat.zeros(diagArray.length, diagArray.length);\n diagArray.forEach(function(t, i) {\n mat[i][i] = t;\n });\n return mat;\n};\n\n\n// return copy of A\njStat.copy = function copy(A) {\n return A.map(function(row) {\n if (isNumber(row))\n return row;\n return row.map(function(t) {\n return t;\n });\n });\n};\n\n\n// TODO: Go over this entire implementation. Seems a tragic waste of resources\n// doing all this work. Instead, and while ugly, use new Function() to generate\n// a custom function for each static method.\n\n// Quick reference.\nvar jProto = jStat.prototype;\n\n// Default length.\njProto.length = 0;\n\n// For internal use only.\n// TODO: Check if they're actually used, and if they are then rename them\n// to _*\njProto.push = Array.prototype.push;\njProto.sort = Array.prototype.sort;\njProto.splice = Array.prototype.splice;\njProto.slice = Array.prototype.slice;\n\n\n// Return a clean array.\njProto.toArray = function toArray() {\n return this.length > 1 ? slice.call(this) : slice.call(this)[0];\n};\n\n\n// Map a function to a matrix or vector.\njProto.map = function map(func, toAlter) {\n return jStat(jStat.map(this, func, toAlter));\n};\n\n\n// Cumulatively combine the elements of a matrix or vector using a function.\njProto.cumreduce = function cumreduce(func, toAlter) {\n return jStat(jStat.cumreduce(this, func, toAlter));\n};\n\n\n// Destructively alter an array.\njProto.alter = function alter(func) {\n jStat.alter(this, func);\n return this;\n};\n\n\n// Extend prototype with methods that have no argument.\n(function(funcs) {\n for (var i = 0; i < funcs.length; i++) (function(passfunc) {\n jProto[passfunc] = function(func) {\n var self = this,\n results;\n // Check for callback.\n if (func) {\n setTimeout(function() {\n func.call(self, jProto[passfunc].call(self));\n });\n return this;\n }\n results = jStat[passfunc](this);\n return isArray(results) ? jStat(results) : results;\n };\n })(funcs[i]);\n})('transpose clear symmetric rows cols dimensions diag antidiag'.split(' '));\n\n\n// Extend prototype with methods that have one argument.\n(function(funcs) {\n for (var i = 0; i < funcs.length; i++) (function(passfunc) {\n jProto[passfunc] = function(index, func) {\n var self = this;\n // check for callback\n if (func) {\n setTimeout(function() {\n func.call(self, jProto[passfunc].call(self, index));\n });\n return this;\n }\n return jStat(jStat[passfunc](this, index));\n };\n })(funcs[i]);\n})('row col'.split(' '));\n\n\n// Extend prototype with simple shortcut methods.\n(function(funcs) {\n for (var i = 0; i < funcs.length; i++) (function(passfunc) {\n jProto[passfunc] = function() {\n return jStat(jStat[passfunc].apply(null, arguments));\n };\n })(funcs[i]);\n})('create zeros ones rand identity'.split(' '));\n\n\n// Exposing jStat.\nreturn jStat;\n\n}(Math));\n(function(jStat, Math) {\n\nvar isFunction = jStat.utils.isFunction;\n\n// Ascending functions for sort\nfunction ascNum(a, b) { return a - b; }\n\nfunction clip(arg, min, max) {\n return Math.max(min, Math.min(arg, max));\n}\n\n\n// sum of an array\njStat.sum = function sum(arr) {\n var sum = 0;\n var i = arr.length;\n while (--i >= 0)\n sum += arr[i];\n return sum;\n};\n\n\n// sum squared\njStat.sumsqrd = function sumsqrd(arr) {\n var sum = 0;\n var i = arr.length;\n while (--i >= 0)\n sum += arr[i] * arr[i];\n return sum;\n};\n\n\n// sum of squared errors of prediction (SSE)\njStat.sumsqerr = function sumsqerr(arr) {\n var mean = jStat.mean(arr);\n var sum = 0;\n var i = arr.length;\n var tmp;\n while (--i >= 0) {\n tmp = arr[i] - mean;\n sum += tmp * tmp;\n }\n return sum;\n};\n\n// sum of an array in each row\njStat.sumrow = function sumrow(arr) {\n var sum = 0;\n var i = arr.length;\n while (--i >= 0)\n sum += arr[i];\n return sum;\n};\n\n// product of an array\njStat.product = function product(arr) {\n var prod = 1;\n var i = arr.length;\n while (--i >= 0)\n prod *= arr[i];\n return prod;\n};\n\n\n// minimum value of an array\njStat.min = function min(arr) {\n var low = arr[0];\n var i = 0;\n while (++i < arr.length)\n if (arr[i] < low)\n low = arr[i];\n return low;\n};\n\n\n// maximum value of an array\njStat.max = function max(arr) {\n var high = arr[0];\n var i = 0;\n while (++i < arr.length)\n if (arr[i] > high)\n high = arr[i];\n return high;\n};\n\n\n// unique values of an array\njStat.unique = function unique(arr) {\n var hash = {}, _arr = [];\n for(var i = 0; i < arr.length; i++) {\n if (!hash[arr[i]]) {\n hash[arr[i]] = true;\n _arr.push(arr[i]);\n }\n }\n return _arr;\n};\n\n\n// mean value of an array\njStat.mean = function mean(arr) {\n return jStat.sum(arr) / arr.length;\n};\n\n\n// mean squared error (MSE)\njStat.meansqerr = function meansqerr(arr) {\n return jStat.sumsqerr(arr) / arr.length;\n};\n\n\n// geometric mean of an array\njStat.geomean = function geomean(arr) {\n return Math.pow(jStat.product(arr), 1 / arr.length);\n};\n\n\n// median of an array\njStat.median = function median(arr) {\n var arrlen = arr.length;\n var _arr = arr.slice().sort(ascNum);\n // check if array is even or odd, then return the appropriate\n return !(arrlen & 1)\n ? (_arr[(arrlen / 2) - 1 ] + _arr[(arrlen / 2)]) / 2\n : _arr[(arrlen / 2) | 0 ];\n};\n\n\n// cumulative sum of an array\njStat.cumsum = function cumsum(arr) {\n return jStat.cumreduce(arr, function (a, b) { return a + b; });\n};\n\n\n// cumulative product of an array\njStat.cumprod = function cumprod(arr) {\n return jStat.cumreduce(arr, function (a, b) { return a * b; });\n};\n\n\n// successive differences of a sequence\njStat.diff = function diff(arr) {\n var diffs = [];\n var arrLen = arr.length;\n var i;\n for (i = 1; i < arrLen; i++)\n diffs.push(arr[i] - arr[i - 1]);\n return diffs;\n};\n\n\n// ranks of an array\njStat.rank = function (arr) {\n var i;\n var distinctNumbers = [];\n var numberCounts = {};\n for (i = 0; i < arr.length; i++) {\n var number = arr[i];\n if (numberCounts[number]) {\n numberCounts[number]++;\n } else {\n numberCounts[number] = 1;\n distinctNumbers.push(number);\n }\n }\n\n var sortedDistinctNumbers = distinctNumbers.sort(ascNum);\n var numberRanks = {};\n var currentRank = 1;\n for (i = 0; i < sortedDistinctNumbers.length; i++) {\n var number = sortedDistinctNumbers[i];\n var count = numberCounts[number];\n var first = currentRank;\n var last = currentRank + count - 1;\n var rank = (first + last) / 2;\n numberRanks[number] = rank;\n currentRank += count;\n }\n\n return arr.map(function (number) {\n return numberRanks[number];\n });\n};\n\n\n// mode of an array\n// if there are multiple modes of an array, return all of them\n// is this the appropriate way of handling it?\njStat.mode = function mode(arr) {\n var arrLen = arr.length;\n var _arr = arr.slice().sort(ascNum);\n var count = 1;\n var maxCount = 0;\n var numMaxCount = 0;\n var mode_arr = [];\n var i;\n\n for (i = 0; i < arrLen; i++) {\n if (_arr[i] === _arr[i + 1]) {\n count++;\n } else {\n if (count > maxCount) {\n mode_arr = [_arr[i]];\n maxCount = count;\n numMaxCount = 0;\n }\n // are there multiple max counts\n else if (count === maxCount) {\n mode_arr.push(_arr[i]);\n numMaxCount++;\n }\n // resetting count for new value in array\n count = 1;\n }\n }\n\n return numMaxCount === 0 ? mode_arr[0] : mode_arr;\n};\n\n\n// range of an array\njStat.range = function range(arr) {\n return jStat.max(arr) - jStat.min(arr);\n};\n\n// variance of an array\n// flag = true indicates sample instead of population\njStat.variance = function variance(arr, flag) {\n return jStat.sumsqerr(arr) / (arr.length - (flag ? 1 : 0));\n};\n\n// pooled variance of an array of arrays\njStat.pooledvariance = function pooledvariance(arr) {\n var sumsqerr = arr.reduce(function (a, samples) {return a + jStat.sumsqerr(samples);}, 0);\n var count = arr.reduce(function (a, samples) {return a + samples.length;}, 0);\n return sumsqerr / (count - arr.length);\n};\n\n// deviation of an array\njStat.deviation = function (arr) {\n var mean = jStat.mean(arr);\n var arrlen = arr.length;\n var dev = new Array(arrlen);\n for (var i = 0; i < arrlen; i++) {\n dev[i] = arr[i] - mean;\n }\n return dev;\n};\n\n// standard deviation of an array\n// flag = true indicates sample instead of population\njStat.stdev = function stdev(arr, flag) {\n return Math.sqrt(jStat.variance(arr, flag));\n};\n\n// pooled standard deviation of an array of arrays\njStat.pooledstdev = function pooledstdev(arr) {\n return Math.sqrt(jStat.pooledvariance(arr));\n};\n\n// mean deviation (mean absolute deviation) of an array\njStat.meandev = function meandev(arr) {\n var mean = jStat.mean(arr);\n var a = [];\n for (var i = arr.length - 1; i >= 0; i--) {\n a.push(Math.abs(arr[i] - mean));\n }\n return jStat.mean(a);\n};\n\n\n// median deviation (median absolute deviation) of an array\njStat.meddev = function meddev(arr) {\n var median = jStat.median(arr);\n var a = [];\n for (var i = arr.length - 1; i >= 0; i--) {\n a.push(Math.abs(arr[i] - median));\n }\n return jStat.median(a);\n};\n\n\n// coefficient of variation\njStat.coeffvar = function coeffvar(arr) {\n return jStat.stdev(arr) / jStat.mean(arr);\n};\n\n\n// quartiles of an array\njStat.quartiles = function quartiles(arr) {\n var arrlen = arr.length;\n var _arr = arr.slice().sort(ascNum);\n return [\n _arr[ Math.round((arrlen) / 4) - 1 ],\n _arr[ Math.round((arrlen) / 2) - 1 ],\n _arr[ Math.round((arrlen) * 3 / 4) - 1 ]\n ];\n};\n\n\n// Arbitary quantiles of an array. Direct port of the scipy.stats\n// implementation by Pierre GF Gerard-Marchant.\njStat.quantiles = function quantiles(arr, quantilesArray, alphap, betap) {\n var sortedArray = arr.slice().sort(ascNum);\n var quantileVals = [quantilesArray.length];\n var n = arr.length;\n var i, p, m, aleph, k, gamma;\n\n if (typeof alphap === 'undefined')\n alphap = 3 / 8;\n if (typeof betap === 'undefined')\n betap = 3 / 8;\n\n for (i = 0; i < quantilesArray.length; i++) {\n p = quantilesArray[i];\n m = alphap + p * (1 - alphap - betap);\n aleph = n * p + m;\n k = Math.floor(clip(aleph, 1, n - 1));\n gamma = clip(aleph - k, 0, 1);\n quantileVals[i] = (1 - gamma) * sortedArray[k - 1] + gamma * sortedArray[k];\n }\n\n return quantileVals;\n};\n\n// Return the k-th percentile of values in a range, where k is in the range 0..1, inclusive.\n// Passing true for the exclusive parameter excludes both endpoints of the range.\njStat.percentile = function percentile(arr, k, exclusive) {\n var _arr = arr.slice().sort(ascNum);\n var realIndex = k * (_arr.length + (exclusive ? 1 : -1)) + (exclusive ? 0 : 1);\n var index = parseInt(realIndex);\n var frac = realIndex - index;\n if (index + 1 < _arr.length) {\n return _arr[index - 1] + frac * (_arr[index] - _arr[index - 1]);\n } else {\n return _arr[index - 1];\n }\n}\n\n// The percentile rank of score in a given array. Returns the percentage\n// of all values in the input array that are less than (kind='strict') or\n// less or equal than (kind='weak') score. Default is weak.\njStat.percentileOfScore = function percentileOfScore(arr, score, kind) {\n var counter = 0;\n var len = arr.length;\n var strict = false;\n var value, i;\n\n if (kind === 'strict')\n strict = true;\n\n for (i = 0; i < len; i++) {\n value = arr[i];\n if ((strict && value < score) ||\n (!strict && value <= score)) {\n counter++;\n }\n }\n\n return counter / len;\n};\n\n\n// Histogram (bin count) data\njStat.histogram = function histogram(arr, binCnt) {\n binCnt = binCnt || 4;\n var first = jStat.min(arr);\n var binWidth = (jStat.max(arr) - first) / binCnt;\n var len = arr.length;\n var bins = [];\n var i;\n\n for (i = 0; i < binCnt; i++)\n bins[i] = 0;\n for (i = 0; i < len; i++)\n bins[Math.min(Math.floor(((arr[i] - first) / binWidth)), binCnt - 1)] += 1;\n\n return bins;\n};\n\n\n// covariance of two arrays\njStat.covariance = function covariance(arr1, arr2) {\n var u = jStat.mean(arr1);\n var v = jStat.mean(arr2);\n var arr1Len = arr1.length;\n var sq_dev = new Array(arr1Len);\n var i;\n\n for (i = 0; i < arr1Len; i++)\n sq_dev[i] = (arr1[i] - u) * (arr2[i] - v);\n\n return jStat.sum(sq_dev) / (arr1Len - 1);\n};\n\n\n// (pearson's) population correlation coefficient, rho\njStat.corrcoeff = function corrcoeff(arr1, arr2) {\n return jStat.covariance(arr1, arr2) /\n jStat.stdev(arr1, 1) /\n jStat.stdev(arr2, 1);\n};\n\n // (spearman's) rank correlation coefficient, sp\njStat.spearmancoeff = function (arr1, arr2) {\n arr1 = jStat.rank(arr1);\n arr2 = jStat.rank(arr2);\n //return pearson's correlation of the ranks:\n return jStat.corrcoeff(arr1, arr2);\n}\n\n\n// statistical standardized moments (general form of skew/kurt)\njStat.stanMoment = function stanMoment(arr, n) {\n var mu = jStat.mean(arr);\n var sigma = jStat.stdev(arr);\n var len = arr.length;\n var skewSum = 0;\n\n for (var i = 0; i < len; i++)\n skewSum += Math.pow((arr[i] - mu) / sigma, n);\n\n return skewSum / arr.length;\n};\n\n// (pearson's) moment coefficient of skewness\njStat.skewness = function skewness(arr) {\n return jStat.stanMoment(arr, 3);\n};\n\n// (pearson's) (excess) kurtosis\njStat.kurtosis = function kurtosis(arr) {\n return jStat.stanMoment(arr, 4) - 3;\n};\n\n\nvar jProto = jStat.prototype;\n\n\n// Extend jProto with method for calculating cumulative sums and products.\n// This differs from the similar extension below as cumsum and cumprod should\n// not be run again in the case fullbool === true.\n// If a matrix is passed, automatically assume operation should be done on the\n// columns.\n(function(funcs) {\n for (var i = 0; i < funcs.length; i++) (function(passfunc) {\n // If a matrix is passed, automatically assume operation should be done on\n // the columns.\n jProto[passfunc] = function(fullbool, func) {\n var arr = [];\n var i = 0;\n var tmpthis = this;\n // Assignment reassignation depending on how parameters were passed in.\n if (isFunction(fullbool)) {\n func = fullbool;\n fullbool = false;\n }\n // Check if a callback was passed with the function.\n if (func) {\n setTimeout(function() {\n func.call(tmpthis, jProto[passfunc].call(tmpthis, fullbool));\n });\n return this;\n }\n // Check if matrix and run calculations.\n if (this.length > 1) {\n tmpthis = fullbool === true ? this : this.transpose();\n for (; i < tmpthis.length; i++)\n arr[i] = jStat[passfunc](tmpthis[i]);\n return arr;\n }\n // Pass fullbool if only vector, not a matrix. for variance and stdev.\n return jStat[passfunc](this[0], fullbool);\n };\n })(funcs[i]);\n})(('cumsum cumprod').split(' '));\n\n\n// Extend jProto with methods which don't require arguments and work on columns.\n(function(funcs) {\n for (var i = 0; i < funcs.length; i++) (function(passfunc) {\n // If a matrix is passed, automatically assume operation should be done on\n // the columns.\n jProto[passfunc] = function(fullbool, func) {\n var arr = [];\n var i = 0;\n var tmpthis = this;\n // Assignment reassignation depending on how parameters were passed in.\n if (isFunction(fullbool)) {\n func = fullbool;\n fullbool = false;\n }\n // Check if a callback was passed with the function.\n if (func) {\n setTimeout(function() {\n func.call(tmpthis, jProto[passfunc].call(tmpthis, fullbool));\n });\n return this;\n }\n // Check if matrix and run calculations.\n if (this.length > 1) {\n if (passfunc !== 'sumrow')\n tmpthis = fullbool === true ? this : this.transpose();\n for (; i < tmpthis.length; i++)\n arr[i] = jStat[passfunc](tmpthis[i]);\n return fullbool === true\n ? jStat[passfunc](jStat.utils.toVector(arr))\n : arr;\n }\n // Pass fullbool if only vector, not a matrix. for variance and stdev.\n return jStat[passfunc](this[0], fullbool);\n };\n })(funcs[i]);\n})(('sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr ' +\n 'geomean median diff rank mode range variance deviation stdev meandev ' +\n 'meddev coeffvar quartiles histogram skewness kurtosis').split(' '));\n\n\n// Extend jProto with functions that take arguments. Operations on matrices are\n// done on columns.\n(function(funcs) {\n for (var i = 0; i < funcs.length; i++) (function(passfunc) {\n jProto[passfunc] = function() {\n var arr = [];\n var i = 0;\n var tmpthis = this;\n var args = Array.prototype.slice.call(arguments);\n var callbackFunction;\n\n // If the last argument is a function, we assume it's a callback; we\n // strip the callback out and call the function again.\n if (isFunction(args[args.length - 1])) {\n callbackFunction = args[args.length - 1];\n var argsToPass = args.slice(0, args.length - 1);\n\n setTimeout(function() {\n callbackFunction.call(tmpthis,\n jProto[passfunc].apply(tmpthis, argsToPass));\n });\n return this;\n\n // Otherwise we curry the function args and call normally.\n } else {\n callbackFunction = undefined;\n var curriedFunction = function curriedFunction(vector) {\n return jStat[passfunc].apply(tmpthis, [vector].concat(args));\n }\n }\n\n // If this is a matrix, run column-by-column.\n if (this.length > 1) {\n tmpthis = tmpthis.transpose();\n for (; i < tmpthis.length; i++)\n arr[i] = curriedFunction(tmpthis[i]);\n return arr;\n }\n\n // Otherwise run on the vector.\n return curriedFunction(this[0]);\n };\n })(funcs[i]);\n})('quantiles percentileOfScore'.split(' '));\n\n}(jStat, Math));\n// Special functions //\n(function(jStat, Math) {\n\n// Log-gamma function\njStat.gammaln = function gammaln(x) {\n var j = 0;\n var cof = [\n 76.18009172947146, -86.50532032941677, 24.01409824083091,\n -1.231739572450155, 0.1208650973866179e-2, -0.5395239384953e-5\n ];\n var ser = 1.000000000190015;\n var xx, y, tmp;\n tmp = (y = xx = x) + 5.5;\n tmp -= (xx + 0.5) * Math.log(tmp);\n for (; j < 6; j++)\n ser += cof[j] / ++y;\n return Math.log(2.5066282746310005 * ser / xx) - tmp;\n};\n\n/*\n * log-gamma function to support poisson distribution sampling. The\n * algorithm comes from SPECFUN by Shanjie Zhang and Jianming Jin and their\n * book \"Computation of Special Functions\", 1996, John Wiley & Sons, Inc.\n */\njStat.loggam = function loggam(x) {\n var x0, x2, xp, gl, gl0;\n var k, n;\n\n var a = [8.333333333333333e-02, -2.777777777777778e-03,\n 7.936507936507937e-04, -5.952380952380952e-04,\n 8.417508417508418e-04, -1.917526917526918e-03,\n 6.410256410256410e-03, -2.955065359477124e-02,\n 1.796443723688307e-01, -1.39243221690590e+00];\n x0 = x;\n n = 0;\n if ((x == 1.0) || (x == 2.0)) {\n return 0.0;\n }\n if (x <= 7.0) {\n n = Math.floor(7 - x);\n x0 = x + n;\n }\n x2 = 1.0 / (x0 * x0);\n xp = 2 * Math.PI;\n gl0 = a[9];\n for (k = 8; k >= 0; k--) {\n gl0 *= x2;\n gl0 += a[k];\n }\n gl = gl0 / x0 + 0.5 * Math.log(xp) + (x0 - 0.5) * Math.log(x0) - x0;\n if (x <= 7.0) {\n for (k = 1; k <= n; k++) {\n gl -= Math.log(x0 - 1.0);\n x0 -= 1.0;\n }\n }\n return gl;\n}\n\n// gamma of x\njStat.gammafn = function gammafn(x) {\n var p = [-1.716185138865495, 24.76565080557592, -379.80425647094563,\n 629.3311553128184, 866.9662027904133, -31451.272968848367,\n -36144.413418691176, 66456.14382024054\n ];\n var q = [-30.8402300119739, 315.35062697960416, -1015.1563674902192,\n -3107.771671572311, 22538.118420980151, 4755.8462775278811,\n -134659.9598649693, -115132.2596755535];\n var fact = false;\n var n = 0;\n var xden = 0;\n var xnum = 0;\n var y = x;\n var i, z, yi, res;\n if (x > 171.6243769536076) {\n return Infinity;\n }\n if (y <= 0) {\n res = y % 1 + 3.6e-16;\n if (res) {\n fact = (!(y & 1) ? 1 : -1) * Math.PI / Math.sin(Math.PI * res);\n y = 1 - y;\n } else {\n return Infinity;\n }\n }\n yi = y;\n if (y < 1) {\n z = y++;\n } else {\n z = (y -= n = (y | 0) - 1) - 1;\n }\n for (i = 0; i < 8; ++i) {\n xnum = (xnum + p[i]) * z;\n xden = xden * z + q[i];\n }\n res = xnum / xden + 1;\n if (yi < y) {\n res /= yi;\n } else if (yi > y) {\n for (i = 0; i < n; ++i) {\n res *= y;\n y++;\n }\n }\n if (fact) {\n res = fact / res;\n }\n return res;\n};\n\n\n// lower incomplete gamma function, which is usually typeset with a\n// lower-case greek gamma as the function symbol\njStat.gammap = function gammap(a, x) {\n return jStat.lowRegGamma(a, x) * jStat.gammafn(a);\n};\n\n\n// The lower regularized incomplete gamma function, usually written P(a,x)\njStat.lowRegGamma = function lowRegGamma(a, x) {\n var aln = jStat.gammaln(a);\n var ap = a;\n var sum = 1 / a;\n var del = sum;\n var b = x + 1 - a;\n var c = 1 / 1.0e-30;\n var d = 1 / b;\n var h = d;\n var i = 1;\n // calculate maximum number of itterations required for a\n var ITMAX = -~(Math.log((a >= 1) ? a : 1 / a) * 8.5 + a * 0.4 + 17);\n var an;\n\n if (x < 0 || a <= 0) {\n return NaN;\n } else if (x < a + 1) {\n for (; i <= ITMAX; i++) {\n sum += del *= x / ++ap;\n }\n return (sum * Math.exp(-x + a * Math.log(x) - (aln)));\n }\n\n for (; i <= ITMAX; i++) {\n an = -i * (i - a);\n b += 2;\n d = an * d + b;\n c = b + an / c;\n d = 1 / d;\n h *= d * c;\n }\n\n return (1 - h * Math.exp(-x + a * Math.log(x) - (aln)));\n};\n\n// natural log factorial of n\njStat.factorialln = function factorialln(n) {\n return n < 0 ? NaN : jStat.gammaln(n + 1);\n};\n\n// factorial of n\njStat.factorial = function factorial(n) {\n return n < 0 ? NaN : jStat.gammafn(n + 1);\n};\n\n// combinations of n, m\njStat.combination = function combination(n, m) {\n // make sure n or m don't exceed the upper limit of usable values\n return (n > 170 || m > 170)\n ? Math.exp(jStat.combinationln(n, m))\n : (jStat.factorial(n) / jStat.factorial(m)) / jStat.factorial(n - m);\n};\n\n\njStat.combinationln = function combinationln(n, m){\n return jStat.factorialln(n) - jStat.factorialln(m) - jStat.factorialln(n - m);\n};\n\n\n// permutations of n, m\njStat.permutation = function permutation(n, m) {\n return jStat.factorial(n) / jStat.factorial(n - m);\n};\n\n\n// beta function\njStat.betafn = function betafn(x, y) {\n // ensure arguments are positive\n if (x <= 0 || y <= 0)\n return undefined;\n // make sure x + y doesn't exceed the upper limit of usable values\n return (x + y > 170)\n ? Math.exp(jStat.betaln(x, y))\n : jStat.gammafn(x) * jStat.gammafn(y) / jStat.gammafn(x + y);\n};\n\n\n// natural logarithm of beta function\njStat.betaln = function betaln(x, y) {\n return jStat.gammaln(x) + jStat.gammaln(y) - jStat.gammaln(x + y);\n};\n\n\n// Evaluates the continued fraction for incomplete beta function by modified\n// Lentz's method.\njStat.betacf = function betacf(x, a, b) {\n var fpmin = 1e-30;\n var m = 1;\n var qab = a + b;\n var qap = a + 1;\n var qam = a - 1;\n var c = 1;\n var d = 1 - qab * x / qap;\n var m2, aa, del, h;\n\n // These q's will be used in factors that occur in the coefficients\n if (Math.abs(d) < fpmin)\n d = fpmin;\n d = 1 / d;\n h = d;\n\n for (; m <= 100; m++) {\n m2 = 2 * m;\n aa = m * (b - m) * x / ((qam + m2) * (a + m2));\n // One step (the even one) of the recurrence\n d = 1 + aa * d;\n if (Math.abs(d) < fpmin)\n d = fpmin;\n c = 1 + aa / c;\n if (Math.abs(c) < fpmin)\n c = fpmin;\n d = 1 / d;\n h *= d * c;\n aa = -(a + m) * (qab + m) * x / ((a + m2) * (qap + m2));\n // Next step of the recurrence (the odd one)\n d = 1 + aa * d;\n if (Math.abs(d) < fpmin)\n d = fpmin;\n c = 1 + aa / c;\n if (Math.abs(c) < fpmin)\n c = fpmin;\n d = 1 / d;\n del = d * c;\n h *= del;\n if (Math.abs(del - 1.0) < 3e-7)\n break;\n }\n\n return h;\n};\n\n\n// Returns the inverse of the lower regularized inomplete gamma function\njStat.gammapinv = function gammapinv(p, a) {\n var j = 0;\n var a1 = a - 1;\n var EPS = 1e-8;\n var gln = jStat.gammaln(a);\n var x, err, t, u, pp, lna1, afac;\n\n if (p >= 1)\n return Math.max(100, a + 100 * Math.sqrt(a));\n if (p <= 0)\n return 0;\n if (a > 1) {\n lna1 = Math.log(a1);\n afac = Math.exp(a1 * (lna1 - 1) - gln);\n pp = (p < 0.5) ? p : 1 - p;\n t = Math.sqrt(-2 * Math.log(pp));\n x = (2.30753 + t * 0.27061) / (1 + t * (0.99229 + t * 0.04481)) - t;\n if (p < 0.5)\n x = -x;\n x = Math.max(1e-3,\n a * Math.pow(1 - 1 / (9 * a) - x / (3 * Math.sqrt(a)), 3));\n } else {\n t = 1 - a * (0.253 + a * 0.12);\n if (p < t)\n x = Math.pow(p / t, 1 / a);\n else\n x = 1 - Math.log(1 - (p - t) / (1 - t));\n }\n\n for(; j < 12; j++) {\n if (x <= 0)\n return 0;\n err = jStat.lowRegGamma(a, x) - p;\n if (a > 1)\n t = afac * Math.exp(-(x - a1) + a1 * (Math.log(x) - lna1));\n else\n t = Math.exp(-x + a1 * Math.log(x) - gln);\n u = err / t;\n x -= (t = u / (1 - 0.5 * Math.min(1, u * ((a - 1) / x - 1))));\n if (x <= 0)\n x = 0.5 * (x + t);\n if (Math.abs(t) < EPS * x)\n break;\n }\n\n return x;\n};\n\n\n// Returns the error function erf(x)\njStat.erf = function erf(x) {\n var cof = [-1.3026537197817094, 6.4196979235649026e-1, 1.9476473204185836e-2,\n -9.561514786808631e-3, -9.46595344482036e-4, 3.66839497852761e-4,\n 4.2523324806907e-5, -2.0278578112534e-5, -1.624290004647e-6,\n 1.303655835580e-6, 1.5626441722e-8, -8.5238095915e-8,\n 6.529054439e-9, 5.059343495e-9, -9.91364156e-10,\n -2.27365122e-10, 9.6467911e-11, 2.394038e-12,\n -6.886027e-12, 8.94487e-13, 3.13092e-13,\n -1.12708e-13, 3.81e-16, 7.106e-15,\n -1.523e-15, -9.4e-17, 1.21e-16,\n -2.8e-17];\n var j = cof.length - 1;\n var isneg = false;\n var d = 0;\n var dd = 0;\n var t, ty, tmp, res;\n\n if (x < 0) {\n x = -x;\n isneg = true;\n }\n\n t = 2 / (2 + x);\n ty = 4 * t - 2;\n\n for(; j > 0; j--) {\n tmp = d;\n d = ty * d - dd + cof[j];\n dd = tmp;\n }\n\n res = t * Math.exp(-x * x + 0.5 * (cof[0] + ty * d) - dd);\n return isneg ? res - 1 : 1 - res;\n};\n\n\n// Returns the complmentary error function erfc(x)\njStat.erfc = function erfc(x) {\n return 1 - jStat.erf(x);\n};\n\n\n// Returns the inverse of the complementary error function\njStat.erfcinv = function erfcinv(p) {\n var j = 0;\n var x, err, t, pp;\n if (p >= 2)\n return -100;\n if (p <= 0)\n return 100;\n pp = (p < 1) ? p : 2 - p;\n t = Math.sqrt(-2 * Math.log(pp / 2));\n x = -0.70711 * ((2.30753 + t * 0.27061) /\n (1 + t * (0.99229 + t * 0.04481)) - t);\n for (; j < 2; j++) {\n err = jStat.erfc(x) - pp;\n x += err / (1.12837916709551257 * Math.exp(-x * x) - x * err);\n }\n return (p < 1) ? x : -x;\n};\n\n\n// Returns the inverse of the incomplete beta function\njStat.ibetainv = function ibetainv(p, a, b) {\n var EPS = 1e-8;\n var a1 = a - 1;\n var b1 = b - 1;\n var j = 0;\n var lna, lnb, pp, t, u, err, x, al, h, w, afac;\n if (p <= 0)\n return 0;\n if (p >= 1)\n return 1;\n if (a >= 1 && b >= 1) {\n pp = (p < 0.5) ? p : 1 - p;\n t = Math.sqrt(-2 * Math.log(pp));\n x = (2.30753 + t * 0.27061) / (1 + t* (0.99229 + t * 0.04481)) - t;\n if (p < 0.5)\n x = -x;\n al = (x * x - 3) / 6;\n h = 2 / (1 / (2 * a - 1) + 1 / (2 * b - 1));\n w = (x * Math.sqrt(al + h) / h) - (1 / (2 * b - 1) - 1 / (2 * a - 1)) *\n (al + 5 / 6 - 2 / (3 * h));\n x = a / (a + b * Math.exp(2 * w));\n } else {\n lna = Math.log(a / (a + b));\n lnb = Math.log(b / (a + b));\n t = Math.exp(a * lna) / a;\n u = Math.exp(b * lnb) / b;\n w = t + u;\n if (p < t / w)\n x = Math.pow(a * w * p, 1 / a);\n else\n x = 1 - Math.pow(b * w * (1 - p), 1 / b);\n }\n afac = -jStat.gammaln(a) - jStat.gammaln(b) + jStat.gammaln(a + b);\n for(; j < 10; j++) {\n if (x === 0 || x === 1)\n return x;\n err = jStat.ibeta(x, a, b) - p;\n t = Math.exp(a1 * Math.log(x) + b1 * Math.log(1 - x) + afac);\n u = err / t;\n x -= (t = u / (1 - 0.5 * Math.min(1, u * (a1 / x - b1 / (1 - x)))));\n if (x <= 0)\n x = 0.5 * (x + t);\n if (x >= 1)\n x = 0.5 * (x + t + 1);\n if (Math.abs(t) < EPS * x && j > 0)\n break;\n }\n return x;\n};\n\n\n// Returns the incomplete beta function I_x(a,b)\njStat.ibeta = function ibeta(x, a, b) {\n // Factors in front of the continued fraction.\n var bt = (x === 0 || x === 1) ? 0 :\n Math.exp(jStat.gammaln(a + b) - jStat.gammaln(a) -\n jStat.gammaln(b) + a * Math.log(x) + b *\n Math.log(1 - x));\n if (x < 0 || x > 1)\n return false;\n if (x < (a + 1) / (a + b + 2))\n // Use continued fraction directly.\n return bt * jStat.betacf(x, a, b) / a;\n // else use continued fraction after making the symmetry transformation.\n return 1 - bt * jStat.betacf(1 - x, b, a) / b;\n};\n\n\n// Returns a normal deviate (mu=0, sigma=1).\n// If n and m are specified it returns a object of normal deviates.\njStat.randn = function randn(n, m) {\n var u, v, x, y, q;\n if (!m)\n m = n;\n if (n)\n return jStat.create(n, m, function() { return jStat.randn(); });\n do {\n u = jStat._random_fn();\n v = 1.7156 * (jStat._random_fn() - 0.5);\n x = u - 0.449871;\n y = Math.abs(v) + 0.386595;\n q = x * x + y * (0.19600 * y - 0.25472 * x);\n } while (q > 0.27597 && (q > 0.27846 || v * v > -4 * Math.log(u) * u * u));\n return v / u;\n};\n\n\n// Returns a gamma deviate by the method of Marsaglia and Tsang.\njStat.randg = function randg(shape, n, m) {\n var oalph = shape;\n var a1, a2, u, v, x, mat;\n if (!m)\n m = n;\n if (!shape)\n shape = 1;\n if (n) {\n mat = jStat.zeros(n,m);\n mat.alter(function() { return jStat.randg(shape); });\n return mat;\n }\n if (shape < 1)\n shape += 1;\n a1 = shape - 1 / 3;\n a2 = 1 / Math.sqrt(9 * a1);\n do {\n do {\n x = jStat.randn();\n v = 1 + a2 * x;\n } while(v <= 0);\n v = v * v * v;\n u = jStat._random_fn();\n } while(u > 1 - 0.331 * Math.pow(x, 4) &&\n Math.log(u) > 0.5 * x*x + a1 * (1 - v + Math.log(v)));\n // alpha > 1\n if (shape == oalph)\n return a1 * v;\n // alpha < 1\n do {\n u = jStat._random_fn();\n } while(u === 0);\n return Math.pow(u, 1 / oalph) * a1 * v;\n};\n\n\n// making use of static methods on the instance\n(function(funcs) {\n for (var i = 0; i < funcs.length; i++) (function(passfunc) {\n jStat.fn[passfunc] = function() {\n return jStat(\n jStat.map(this, function(value) { return jStat[passfunc](value); }));\n }\n })(funcs[i]);\n})('gammaln gammafn factorial factorialln'.split(' '));\n\n\n(function(funcs) {\n for (var i = 0; i < funcs.length; i++) (function(passfunc) {\n jStat.fn[passfunc] = function() {\n return jStat(jStat[passfunc].apply(null, arguments));\n };\n })(funcs[i]);\n})('randn'.split(' '));\n\n}(jStat, Math));\n(function(jStat, Math) {\n\n// generate all distribution instance methods\n(function(list) {\n for (var i = 0; i < list.length; i++) (function(func) {\n // distribution instance method\n jStat[func] = function f(a, b, c) {\n if (!(this instanceof f))\n return new f(a, b, c);\n this._a = a;\n this._b = b;\n this._c = c;\n return this;\n };\n // distribution method to be used on a jStat instance\n jStat.fn[func] = function(a, b, c) {\n var newthis = jStat[func](a, b, c);\n newthis.data = this;\n return newthis;\n };\n // sample instance method\n jStat[func].prototype.sample = function(arr) {\n var a = this._a;\n var b = this._b;\n var c = this._c;\n if (arr)\n return jStat.alter(arr, function() {\n return jStat[func].sample(a, b, c);\n });\n else\n return jStat[func].sample(a, b, c);\n };\n // generate the pdf, cdf and inv instance methods\n (function(vals) {\n for (var i = 0; i < vals.length; i++) (function(fnfunc) {\n jStat[func].prototype[fnfunc] = function(x) {\n var a = this._a;\n var b = this._b;\n var c = this._c;\n if (!x && x !== 0)\n x = this.data;\n if (typeof x !== 'number') {\n return jStat.fn.map.call(x, function(x) {\n return jStat[func][fnfunc](x, a, b, c);\n });\n }\n return jStat[func][fnfunc](x, a, b, c);\n };\n })(vals[i]);\n })('pdf cdf inv'.split(' '));\n // generate the mean, median, mode and variance instance methods\n (function(vals) {\n for (var i = 0; i < vals.length; i++) (function(fnfunc) {\n jStat[func].prototype[fnfunc] = function() {\n return jStat[func][fnfunc](this._a, this._b, this._c);\n };\n })(vals[i]);\n })('mean median mode variance'.split(' '));\n })(list[i]);\n})((\n 'beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy ' +\n 'laplace lognormal noncentralt normal pareto studentt weibull uniform ' +\n 'binomial negbin hypgeom poisson triangular tukey arcsine'\n).split(' '));\n\n\n\n// extend beta function with static methods\njStat.extend(jStat.beta, {\n pdf: function pdf(x, alpha, beta) {\n // PDF is zero outside the support\n if (x > 1 || x < 0)\n return 0;\n // PDF is one for the uniform case\n if (alpha == 1 && beta == 1)\n return 1;\n\n if (alpha < 512 && beta < 512) {\n return (Math.pow(x, alpha - 1) * Math.pow(1 - x, beta - 1)) /\n jStat.betafn(alpha, beta);\n } else {\n return Math.exp((alpha - 1) * Math.log(x) +\n (beta - 1) * Math.log(1 - x) -\n jStat.betaln(alpha, beta));\n }\n },\n\n cdf: function cdf(x, alpha, beta) {\n return (x > 1 || x < 0) ? (x > 1) * 1 : jStat.ibeta(x, alpha, beta);\n },\n\n inv: function inv(x, alpha, beta) {\n return jStat.ibetainv(x, alpha, beta);\n },\n\n mean: function mean(alpha, beta) {\n return alpha / (alpha + beta);\n },\n\n median: function median(alpha, beta) {\n return jStat.ibetainv(0.5, alpha, beta);\n },\n\n mode: function mode(alpha, beta) {\n return (alpha - 1 ) / ( alpha + beta - 2);\n },\n\n // return a random sample\n sample: function sample(alpha, beta) {\n var u = jStat.randg(alpha);\n return u / (u + jStat.randg(beta));\n },\n\n variance: function variance(alpha, beta) {\n return (alpha * beta) / (Math.pow(alpha + beta, 2) * (alpha + beta + 1));\n }\n});\n\n// extend F function with static methods\njStat.extend(jStat.centralF, {\n // This implementation of the pdf function avoids float overflow\n // See the way that R calculates this value:\n // https://svn.r-project.org/R/trunk/src/nmath/df.c\n pdf: function pdf(x, df1, df2) {\n var p, q, f;\n\n if (x < 0)\n return 0;\n\n if (df1 <= 2) {\n if (x === 0 && df1 < 2) {\n return Infinity;\n }\n if (x === 0 && df1 === 2) {\n return 1;\n }\n return (1 / jStat.betafn(df1 / 2, df2 / 2)) *\n Math.pow(df1 / df2, df1 / 2) *\n Math.pow(x, (df1/2) - 1) *\n Math.pow((1 + (df1 / df2) * x), -(df1 + df2) / 2);\n }\n\n p = (df1 * x) / (df2 + x * df1);\n q = df2 / (df2 + x * df1);\n f = df1 * q / 2.0;\n return f * jStat.binomial.pdf((df1 - 2) / 2, (df1 + df2 - 2) / 2, p);\n },\n\n cdf: function cdf(x, df1, df2) {\n if (x < 0)\n return 0;\n return jStat.ibeta((df1 * x) / (df1 * x + df2), df1 / 2, df2 / 2);\n },\n\n inv: function inv(x, df1, df2) {\n return df2 / (df1 * (1 / jStat.ibetainv(x, df1 / 2, df2 / 2) - 1));\n },\n\n mean: function mean(df1, df2) {\n return (df2 > 2) ? df2 / (df2 - 2) : undefined;\n },\n\n mode: function mode(df1, df2) {\n return (df1 > 2) ? (df2 * (df1 - 2)) / (df1 * (df2 + 2)) : undefined;\n },\n\n // return a random sample\n sample: function sample(df1, df2) {\n var x1 = jStat.randg(df1 / 2) * 2;\n var x2 = jStat.randg(df2 / 2) * 2;\n return (x1 / df1) / (x2 / df2);\n },\n\n variance: function variance(df1, df2) {\n if (df2 <= 4)\n return undefined;\n return 2 * df2 * df2 * (df1 + df2 - 2) /\n (df1 * (df2 - 2) * (df2 - 2) * (df2 - 4));\n }\n});\n\n\n// extend cauchy function with static methods\njStat.extend(jStat.cauchy, {\n pdf: function pdf(x, local, scale) {\n if (scale < 0) { return 0; }\n\n return (scale / (Math.pow(x - local, 2) + Math.pow(scale, 2))) / Math.PI;\n },\n\n cdf: function cdf(x, local, scale) {\n return Math.atan((x - local) / scale) / Math.PI + 0.5;\n },\n\n inv: function(p, local, scale) {\n return local + scale * Math.tan(Math.PI * (p - 0.5));\n },\n\n median: function median(local/*, scale*/) {\n return local;\n },\n\n mode: function mode(local/*, scale*/) {\n return local;\n },\n\n sample: function sample(local, scale) {\n return jStat.randn() *\n Math.sqrt(1 / (2 * jStat.randg(0.5))) * scale + local;\n }\n});\n\n\n\n// extend chisquare function with static methods\njStat.extend(jStat.chisquare, {\n pdf: function pdf(x, dof) {\n if (x < 0)\n return 0;\n return (x === 0 && dof === 2) ? 0.5 :\n Math.exp((dof / 2 - 1) * Math.log(x) - x / 2 - (dof / 2) *\n Math.log(2) - jStat.gammaln(dof / 2));\n },\n\n cdf: function cdf(x, dof) {\n if (x < 0)\n return 0;\n return jStat.lowRegGamma(dof / 2, x / 2);\n },\n\n inv: function(p, dof) {\n return 2 * jStat.gammapinv(p, 0.5 * dof);\n },\n\n mean : function(dof) {\n return dof;\n },\n\n // TODO: this is an approximation (is there a better way?)\n median: function median(dof) {\n return dof * Math.pow(1 - (2 / (9 * dof)), 3);\n },\n\n mode: function mode(dof) {\n return (dof - 2 > 0) ? dof - 2 : 0;\n },\n\n sample: function sample(dof) {\n return jStat.randg(dof / 2) * 2;\n },\n\n variance: function variance(dof) {\n return 2 * dof;\n }\n});\n\n\n\n// extend exponential function with static methods\njStat.extend(jStat.exponential, {\n pdf: function pdf(x, rate) {\n return x < 0 ? 0 : rate * Math.exp(-rate * x);\n },\n\n cdf: function cdf(x, rate) {\n return x < 0 ? 0 : 1 - Math.exp(-rate * x);\n },\n\n inv: function(p, rate) {\n return -Math.log(1 - p) / rate;\n },\n\n mean : function(rate) {\n return 1 / rate;\n },\n\n median: function (rate) {\n return (1 / rate) * Math.log(2);\n },\n\n mode: function mode(/*rate*/) {\n return 0;\n },\n\n sample: function sample(rate) {\n return -1 / rate * Math.log(jStat._random_fn());\n },\n\n variance : function(rate) {\n return Math.pow(rate, -2);\n }\n});\n\n\n\n// extend gamma function with static methods\njStat.extend(jStat.gamma, {\n pdf: function pdf(x, shape, scale) {\n if (x < 0)\n return 0;\n return (x === 0 && shape === 1) ? 1 / scale :\n Math.exp((shape - 1) * Math.log(x) - x / scale -\n jStat.gammaln(shape) - shape * Math.log(scale));\n },\n\n cdf: function cdf(x, shape, scale) {\n if (x < 0)\n return 0;\n return jStat.lowRegGamma(shape, x / scale);\n },\n\n inv: function(p, shape, scale) {\n return jStat.gammapinv(p, shape) * scale;\n },\n\n mean : function(shape, scale) {\n return shape * scale;\n },\n\n mode: function mode(shape, scale) {\n if(shape > 1) return (shape - 1) * scale;\n return undefined;\n },\n\n sample: function sample(shape, scale) {\n return jStat.randg(shape) * scale;\n },\n\n variance: function variance(shape, scale) {\n return shape * scale * scale;\n }\n});\n\n// extend inverse gamma function with static methods\njStat.extend(jStat.invgamma, {\n pdf: function pdf(x, shape, scale) {\n if (x <= 0)\n return 0;\n return Math.exp(-(shape + 1) * Math.log(x) - scale / x -\n jStat.gammaln(shape) + shape * Math.log(scale));\n },\n\n cdf: function cdf(x, shape, scale) {\n if (x <= 0)\n return 0;\n return 1 - jStat.lowRegGamma(shape, scale / x);\n },\n\n inv: function(p, shape, scale) {\n return scale / jStat.gammapinv(1 - p, shape);\n },\n\n mean : function(shape, scale) {\n return (shape > 1) ? scale / (shape - 1) : undefined;\n },\n\n mode: function mode(shape, scale) {\n return scale / (shape + 1);\n },\n\n sample: function sample(shape, scale) {\n return scale / jStat.randg(shape);\n },\n\n variance: function variance(shape, scale) {\n if (shape <= 2)\n return undefined;\n return scale * scale / ((shape - 1) * (shape - 1) * (shape - 2));\n }\n});\n\n\n// extend kumaraswamy function with static methods\njStat.extend(jStat.kumaraswamy, {\n pdf: function pdf(x, alpha, beta) {\n if (x === 0 && alpha === 1)\n return beta;\n else if (x === 1 && beta === 1)\n return alpha;\n return Math.exp(Math.log(alpha) + Math.log(beta) + (alpha - 1) *\n Math.log(x) + (beta - 1) *\n Math.log(1 - Math.pow(x, alpha)));\n },\n\n cdf: function cdf(x, alpha, beta) {\n if (x < 0)\n return 0;\n else if (x > 1)\n return 1;\n return (1 - Math.pow(1 - Math.pow(x, alpha), beta));\n },\n\n inv: function inv(p, alpha, beta) {\n return Math.pow(1 - Math.pow(1 - p, 1 / beta), 1 / alpha);\n },\n\n mean : function(alpha, beta) {\n return (beta * jStat.gammafn(1 + 1 / alpha) *\n jStat.gammafn(beta)) / (jStat.gammafn(1 + 1 / alpha + beta));\n },\n\n median: function median(alpha, beta) {\n return Math.pow(1 - Math.pow(2, -1 / beta), 1 / alpha);\n },\n\n mode: function mode(alpha, beta) {\n if (!(alpha >= 1 && beta >= 1 && (alpha !== 1 && beta !== 1)))\n return undefined;\n return Math.pow((alpha - 1) / (alpha * beta - 1), 1 / alpha);\n },\n\n variance: function variance(/*alpha, beta*/) {\n throw new Error('variance not yet implemented');\n // TODO: complete this\n }\n});\n\n\n\n// extend lognormal function with static methods\njStat.extend(jStat.lognormal, {\n pdf: function pdf(x, mu, sigma) {\n if (x <= 0)\n return 0;\n return Math.exp(-Math.log(x) - 0.5 * Math.log(2 * Math.PI) -\n Math.log(sigma) - Math.pow(Math.log(x) - mu, 2) /\n (2 * sigma * sigma));\n },\n\n cdf: function cdf(x, mu, sigma) {\n if (x < 0)\n return 0;\n return 0.5 +\n (0.5 * jStat.erf((Math.log(x) - mu) / Math.sqrt(2 * sigma * sigma)));\n },\n\n inv: function(p, mu, sigma) {\n return Math.exp(-1.41421356237309505 * sigma * jStat.erfcinv(2 * p) + mu);\n },\n\n mean: function mean(mu, sigma) {\n return Math.exp(mu + sigma * sigma / 2);\n },\n\n median: function median(mu/*, sigma*/) {\n return Math.exp(mu);\n },\n\n mode: function mode(mu, sigma) {\n return Math.exp(mu - sigma * sigma);\n },\n\n sample: function sample(mu, sigma) {\n return Math.exp(jStat.randn() * sigma + mu);\n },\n\n variance: function variance(mu, sigma) {\n return (Math.exp(sigma * sigma) - 1) * Math.exp(2 * mu + sigma * sigma);\n }\n});\n\n\n\n// extend noncentralt function with static methods\njStat.extend(jStat.noncentralt, {\n pdf: function pdf(x, dof, ncp) {\n var tol = 1e-14;\n if (Math.abs(ncp) < tol) // ncp approx 0; use student-t\n return jStat.studentt.pdf(x, dof)\n\n if (Math.abs(x) < tol) { // different formula for x == 0\n return Math.exp(jStat.gammaln((dof + 1) / 2) - ncp * ncp / 2 -\n 0.5 * Math.log(Math.PI * dof) - jStat.gammaln(dof / 2));\n }\n\n // formula for x != 0\n return dof / x *\n (jStat.noncentralt.cdf(x * Math.sqrt(1 + 2 / dof), dof+2, ncp) -\n jStat.noncentralt.cdf(x, dof, ncp));\n },\n\n cdf: function cdf(x, dof, ncp) {\n var tol = 1e-14;\n var min_iterations = 200;\n\n if (Math.abs(ncp) < tol) // ncp approx 0; use student-t\n return jStat.studentt.cdf(x, dof);\n\n // turn negative x into positive and flip result afterwards\n var flip = false;\n if (x < 0) {\n flip = true;\n ncp = -ncp;\n }\n\n var prob = jStat.normal.cdf(-ncp, 0, 1);\n var value = tol + 1;\n // use value at last two steps to determine convergence\n var lastvalue = value;\n var y = x * x / (x * x + dof);\n var j = 0;\n var p = Math.exp(-ncp * ncp / 2);\n var q = Math.exp(-ncp * ncp / 2 - 0.5 * Math.log(2) -\n jStat.gammaln(3 / 2)) * ncp;\n while (j < min_iterations || lastvalue > tol || value > tol) {\n lastvalue = value;\n if (j > 0) {\n p *= (ncp * ncp) / (2 * j);\n q *= (ncp * ncp) / (2 * (j + 1 / 2));\n }\n value = p * jStat.beta.cdf(y, j + 0.5, dof / 2) +\n q * jStat.beta.cdf(y, j+1, dof/2);\n prob += 0.5 * value;\n j++;\n }\n\n return flip ? (1 - prob) : prob;\n }\n});\n\n\n// extend normal function with static methods\njStat.extend(jStat.normal, {\n pdf: function pdf(x, mean, std) {\n return Math.exp(-0.5 * Math.log(2 * Math.PI) -\n Math.log(std) - Math.pow(x - mean, 2) / (2 * std * std));\n },\n\n cdf: function cdf(x, mean, std) {\n return 0.5 * (1 + jStat.erf((x - mean) / Math.sqrt(2 * std * std)));\n },\n\n inv: function(p, mean, std) {\n return -1.41421356237309505 * std * jStat.erfcinv(2 * p) + mean;\n },\n\n mean : function(mean/*, std*/) {\n return mean;\n },\n\n median: function median(mean/*, std*/) {\n return mean;\n },\n\n mode: function (mean/*, std*/) {\n return mean;\n },\n\n sample: function sample(mean, std) {\n return jStat.randn() * std + mean;\n },\n\n variance : function(mean, std) {\n return std * std;\n }\n});\n\n\n\n// extend pareto function with static methods\njStat.extend(jStat.pareto, {\n pdf: function pdf(x, scale, shape) {\n if (x < scale)\n return 0;\n return (shape * Math.pow(scale, shape)) / Math.pow(x, shape + 1);\n },\n\n cdf: function cdf(x, scale, shape) {\n if (x < scale)\n return 0;\n return 1 - Math.pow(scale / x, shape);\n },\n\n inv: function inv(p, scale, shape) {\n return scale / Math.pow(1 - p, 1 / shape);\n },\n\n mean: function mean(scale, shape) {\n if (shape <= 1)\n return undefined;\n return (shape * Math.pow(scale, shape)) / (shape - 1);\n },\n\n median: function median(scale, shape) {\n return scale * (shape * Math.SQRT2);\n },\n\n mode: function mode(scale/*, shape*/) {\n return scale;\n },\n\n variance : function(scale, shape) {\n if (shape <= 2)\n return undefined;\n return (scale*scale * shape) / (Math.pow(shape - 1, 2) * (shape - 2));\n }\n});\n\n\n\n// extend studentt function with static methods\njStat.extend(jStat.studentt, {\n pdf: function pdf(x, dof) {\n dof = dof > 1e100 ? 1e100 : dof;\n return (1/(Math.sqrt(dof) * jStat.betafn(0.5, dof/2))) *\n Math.pow(1 + ((x * x) / dof), -((dof + 1) / 2));\n },\n\n cdf: function cdf(x, dof) {\n var dof2 = dof / 2;\n return jStat.ibeta((x + Math.sqrt(x * x + dof)) /\n (2 * Math.sqrt(x * x + dof)), dof2, dof2);\n },\n\n inv: function(p, dof) {\n var x = jStat.ibetainv(2 * Math.min(p, 1 - p), 0.5 * dof, 0.5);\n x = Math.sqrt(dof * (1 - x) / x);\n return (p > 0.5) ? x : -x;\n },\n\n mean: function mean(dof) {\n return (dof > 1) ? 0 : undefined;\n },\n\n median: function median(/*dof*/) {\n return 0;\n },\n\n mode: function mode(/*dof*/) {\n return 0;\n },\n\n sample: function sample(dof) {\n return jStat.randn() * Math.sqrt(dof / (2 * jStat.randg(dof / 2)));\n },\n\n variance: function variance(dof) {\n return (dof > 2) ? dof / (dof - 2) : (dof > 1) ? Infinity : undefined;\n }\n});\n\n\n\n// extend weibull function with static methods\njStat.extend(jStat.weibull, {\n pdf: function pdf(x, scale, shape) {\n if (x < 0 || scale < 0 || shape < 0)\n return 0;\n return (shape / scale) * Math.pow((x / scale), (shape - 1)) *\n Math.exp(-(Math.pow((x / scale), shape)));\n },\n\n cdf: function cdf(x, scale, shape) {\n return x < 0 ? 0 : 1 - Math.exp(-Math.pow((x / scale), shape));\n },\n\n inv: function(p, scale, shape) {\n return scale * Math.pow(-Math.log(1 - p), 1 / shape);\n },\n\n mean : function(scale, shape) {\n return scale * jStat.gammafn(1 + 1 / shape);\n },\n\n median: function median(scale, shape) {\n return scale * Math.pow(Math.log(2), 1 / shape);\n },\n\n mode: function mode(scale, shape) {\n if (shape <= 1)\n return 0;\n return scale * Math.pow((shape - 1) / shape, 1 / shape);\n },\n\n sample: function sample(scale, shape) {\n return scale * Math.pow(-Math.log(jStat._random_fn()), 1 / shape);\n },\n\n variance: function variance(scale, shape) {\n return scale * scale * jStat.gammafn(1 + 2 / shape) -\n Math.pow(jStat.weibull.mean(scale, shape), 2);\n }\n});\n\n\n\n// extend uniform function with static methods\njStat.extend(jStat.uniform, {\n pdf: function pdf(x, a, b) {\n return (x < a || x > b) ? 0 : 1 / (b - a);\n },\n\n cdf: function cdf(x, a, b) {\n if (x < a)\n return 0;\n else if (x < b)\n return (x - a) / (b - a);\n return 1;\n },\n\n inv: function(p, a, b) {\n return a + (p * (b - a));\n },\n\n mean: function mean(a, b) {\n return 0.5 * (a + b);\n },\n\n median: function median(a, b) {\n return jStat.mean(a, b);\n },\n\n mode: function mode(/*a, b*/) {\n throw new Error('mode is not yet implemented');\n },\n\n sample: function sample(a, b) {\n return (a / 2 + b / 2) + (b / 2 - a / 2) * (2 * jStat._random_fn() - 1);\n },\n\n variance: function variance(a, b) {\n return Math.pow(b - a, 2) / 12;\n }\n});\n\n\n// Got this from http://www.math.ucla.edu/~tom/distributions/binomial.html\nfunction betinc(x, a, b, eps) {\n var a0 = 0;\n var b0 = 1;\n var a1 = 1;\n var b1 = 1;\n var m9 = 0;\n var a2 = 0;\n var c9;\n\n while (Math.abs((a1 - a2) / a1) > eps) {\n a2 = a1;\n c9 = -(a + m9) * (a + b + m9) * x / (a + 2 * m9) / (a + 2 * m9 + 1);\n a0 = a1 + c9 * a0;\n b0 = b1 + c9 * b0;\n m9 = m9 + 1;\n c9 = m9 * (b - m9) * x / (a + 2 * m9 - 1) / (a + 2 * m9);\n a1 = a0 + c9 * a1;\n b1 = b0 + c9 * b1;\n a0 = a0 / b1;\n b0 = b0 / b1;\n a1 = a1 / b1;\n b1 = 1;\n }\n\n return a1 / a;\n}\n\n\n// extend uniform function with static methods\njStat.extend(jStat.binomial, {\n pdf: function pdf(k, n, p) {\n return (p === 0 || p === 1) ?\n ((n * p) === k ? 1 : 0) :\n jStat.combination(n, k) * Math.pow(p, k) * Math.pow(1 - p, n - k);\n },\n\n cdf: function cdf(x, n, p) {\n var betacdf;\n var eps = 1e-10;\n\n if (x < 0)\n return 0;\n if (x >= n)\n return 1;\n if (p < 0 || p > 1 || n <= 0)\n return NaN;\n\n x = Math.floor(x);\n var z = p;\n var a = x + 1;\n var b = n - x;\n var s = a + b;\n var bt = Math.exp(jStat.gammaln(s) - jStat.gammaln(b) -\n jStat.gammaln(a) + a * Math.log(z) + b * Math.log(1 - z));\n\n if (z < (a + 1) / (s + 2))\n betacdf = bt * betinc(z, a, b, eps);\n else\n betacdf = 1 - bt * betinc(1 - z, b, a, eps);\n\n return Math.round((1 - betacdf) * (1 / eps)) / (1 / eps);\n }\n});\n\n\n\n// extend uniform function with static methods\njStat.extend(jStat.negbin, {\n pdf: function pdf(k, r, p) {\n if (k !== k >>> 0)\n return false;\n if (k < 0)\n return 0;\n return jStat.combination(k + r - 1, r - 1) *\n Math.pow(1 - p, k) * Math.pow(p, r);\n },\n\n cdf: function cdf(x, r, p) {\n var sum = 0,\n k = 0;\n if (x < 0) return 0;\n for (; k <= x; k++) {\n sum += jStat.negbin.pdf(k, r, p);\n }\n return sum;\n }\n});\n\n\n\n// extend uniform function with static methods\njStat.extend(jStat.hypgeom, {\n pdf: function pdf(k, N, m, n) {\n // Hypergeometric PDF.\n\n // A simplification of the CDF algorithm below.\n\n // k = number of successes drawn\n // N = population size\n // m = number of successes in population\n // n = number of items drawn from population\n\n if(k !== k | 0) {\n return false;\n } else if(k < 0 || k < m - (N - n)) {\n // It's impossible to have this few successes drawn.\n return 0;\n } else if(k > n || k > m) {\n // It's impossible to have this many successes drawn.\n return 0;\n } else if (m * 2 > N) {\n // More than half the population is successes.\n\n if(n * 2 > N) {\n // More than half the population is sampled.\n\n return jStat.hypgeom.pdf(N - m - n + k, N, N - m, N - n)\n } else {\n // Half or less of the population is sampled.\n\n return jStat.hypgeom.pdf(n - k, N, N - m, n);\n }\n\n } else if(n * 2 > N) {\n // Half or less is successes.\n\n return jStat.hypgeom.pdf(m - k, N, m, N - n);\n\n } else if(m < n) {\n // We want to have the number of things sampled to be less than the\n // successes available. So swap the definitions of successful and sampled.\n return jStat.hypgeom.pdf(k, N, n, m);\n } else {\n // If we get here, half or less of the population was sampled, half or\n // less of it was successes, and we had fewer sampled things than\n // successes. Now we can do this complicated iterative algorithm in an\n // efficient way.\n\n // The basic premise of the algorithm is that we partially normalize our\n // intermediate product to keep it in a numerically good region, and then\n // finish the normalization at the end.\n\n // This variable holds the scaled probability of the current number of\n // successes.\n var scaledPDF = 1;\n\n // This keeps track of how much we have normalized.\n var samplesDone = 0;\n\n for(var i = 0; i < k; i++) {\n // For every possible number of successes up to that observed...\n\n while(scaledPDF > 1 && samplesDone < n) {\n // Intermediate result is growing too big. Apply some of the\n // normalization to shrink everything.\n\n scaledPDF *= 1 - (m / (N - samplesDone));\n\n // Say we've normalized by this sample already.\n samplesDone++;\n }\n\n // Work out the partially-normalized hypergeometric PDF for the next\n // number of successes\n scaledPDF *= (n - i) * (m - i) / ((i + 1) * (N - m - n + i + 1));\n }\n\n for(; samplesDone < n; samplesDone++) {\n // Apply all the rest of the normalization\n scaledPDF *= 1 - (m / (N - samplesDone));\n }\n\n // Bound answer sanely before returning.\n return Math.min(1, Math.max(0, scaledPDF));\n }\n },\n\n cdf: function cdf(x, N, m, n) {\n // Hypergeometric CDF.\n\n // This algorithm is due to Prof. Thomas S. Ferguson, <tom@math.ucla.edu>,\n // and comes from his hypergeometric test calculator at\n // <http://www.math.ucla.edu/~tom/distributions/Hypergeometric.html>.\n\n // x = number of successes drawn\n // N = population size\n // m = number of successes in population\n // n = number of items drawn from population\n\n if(x < 0 || x < m - (N - n)) {\n // It's impossible to have this few successes drawn or fewer.\n return 0;\n } else if(x >= n || x >= m) {\n // We will always have this many successes or fewer.\n return 1;\n } else if (m * 2 > N) {\n // More than half the population is successes.\n\n if(n * 2 > N) {\n // More than half the population is sampled.\n\n return jStat.hypgeom.cdf(N - m - n + x, N, N - m, N - n)\n } else {\n // Half or less of the population is sampled.\n\n return 1 - jStat.hypgeom.cdf(n - x - 1, N, N - m, n);\n }\n\n } else if(n * 2 > N) {\n // Half or less is successes.\n\n return 1 - jStat.hypgeom.cdf(m - x - 1, N, m, N - n);\n\n } else if(m < n) {\n // We want to have the number of things sampled to be less than the\n // successes available. So swap the definitions of successful and sampled.\n return jStat.hypgeom.cdf(x, N, n, m);\n } else {\n // If we get here, half or less of the population was sampled, half or\n // less of it was successes, and we had fewer sampled things than\n // successes. Now we can do this complicated iterative algorithm in an\n // efficient way.\n\n // The basic premise of the algorithm is that we partially normalize our\n // intermediate sum to keep it in a numerically good region, and then\n // finish the normalization at the end.\n\n // Holds the intermediate, scaled total CDF.\n var scaledCDF = 1;\n\n // This variable holds the scaled probability of the current number of\n // successes.\n var scaledPDF = 1;\n\n // This keeps track of how much we have normalized.\n var samplesDone = 0;\n\n for(var i = 0; i < x; i++) {\n // For every possible number of successes up to that observed...\n\n while(scaledCDF > 1 && samplesDone < n) {\n // Intermediate result is growing too big. Apply some of the\n // normalization to shrink everything.\n\n var factor = 1 - (m / (N - samplesDone));\n\n scaledPDF *= factor;\n scaledCDF *= factor;\n\n // Say we've normalized by this sample already.\n samplesDone++;\n }\n\n // Work out the partially-normalized hypergeometric PDF for the next\n // number of successes\n scaledPDF *= (n - i) * (m - i) / ((i + 1) * (N - m - n + i + 1));\n\n // Add to the CDF answer.\n scaledCDF += scaledPDF;\n }\n\n for(; samplesDone < n; samplesDone++) {\n // Apply all the rest of the normalization\n scaledCDF *= 1 - (m / (N - samplesDone));\n }\n\n // Bound answer sanely before returning.\n return Math.min(1, Math.max(0, scaledCDF));\n }\n }\n});\n\n\n\n// extend uniform function with static methods\njStat.extend(jStat.poisson, {\n pdf: function pdf(k, l) {\n if (l < 0 || (k % 1) !== 0 || k < 0) {\n return 0;\n }\n\n return Math.pow(l, k) * Math.exp(-l) / jStat.factorial(k);\n },\n\n cdf: function cdf(x, l) {\n var sumarr = [],\n k = 0;\n if (x < 0) return 0;\n for (; k <= x; k++) {\n sumarr.push(jStat.poisson.pdf(k, l));\n }\n return jStat.sum(sumarr);\n },\n\n mean : function(l) {\n return l;\n },\n\n variance : function(l) {\n return l;\n },\n\n sampleSmall: function sampleSmall(l) {\n var p = 1, k = 0, L = Math.exp(-l);\n do {\n k++;\n p *= jStat._random_fn();\n } while (p > L);\n return k - 1;\n },\n\n sampleLarge: function sampleLarge(l) {\n var lam = l;\n var k;\n var U, V, slam, loglam, a, b, invalpha, vr, us;\n\n slam = Math.sqrt(lam);\n loglam = Math.log(lam);\n b = 0.931 + 2.53 * slam;\n a = -0.059 + 0.02483 * b;\n invalpha = 1.1239 + 1.1328 / (b - 3.4);\n vr = 0.9277 - 3.6224 / (b - 2);\n\n while (1) {\n U = Math.random() - 0.5;\n V = Math.random();\n us = 0.5 - Math.abs(U);\n k = Math.floor((2 * a / us + b) * U + lam + 0.43);\n if ((us >= 0.07) && (V <= vr)) {\n return k;\n }\n if ((k < 0) || ((us < 0.013) && (V > us))) {\n continue;\n }\n /* log(V) == log(0.0) ok here */\n /* if U==0.0 so that us==0.0, log is ok since always returns */\n if ((Math.log(V) + Math.log(invalpha) - Math.log(a / (us * us) + b)) <= (-lam + k * loglam - jStat.loggam(k + 1))) {\n return k;\n }\n }\n },\n\n sample: function sample(l) {\n if (l < 10)\n return this.sampleSmall(l);\n else\n return this.sampleLarge(l);\n }\n});\n\n// extend triangular function with static methods\njStat.extend(jStat.triangular, {\n pdf: function pdf(x, a, b, c) {\n if (b <= a || c < a || c > b) {\n return NaN;\n } else {\n if (x < a || x > b) {\n return 0;\n } else if (x < c) {\n return (2 * (x - a)) / ((b - a) * (c - a));\n } else if (x === c) {\n return (2 / (b - a));\n } else { // x > c\n return (2 * (b - x)) / ((b - a) * (b - c));\n }\n }\n },\n\n cdf: function cdf(x, a, b, c) {\n if (b <= a || c < a || c > b)\n return NaN;\n if (x <= a)\n return 0;\n else if (x >= b)\n return 1;\n if (x <= c)\n return Math.pow(x - a, 2) / ((b - a) * (c - a));\n else // x > c\n return 1 - Math.pow(b - x, 2) / ((b - a) * (b - c));\n },\n\n inv: function inv(p, a, b, c) {\n if (b <= a || c < a || c > b) {\n return NaN;\n } else {\n if (p <= ((c - a) / (b - a))) {\n return a + (b - a) * Math.sqrt(p * ((c - a) / (b - a)));\n } else { // p > ((c - a) / (b - a))\n return a + (b - a) * (1 - Math.sqrt((1 - p) * (1 - ((c - a) / (b - a)))));\n }\n }\n },\n\n mean: function mean(a, b, c) {\n return (a + b + c) / 3;\n },\n\n median: function median(a, b, c) {\n if (c <= (a + b) / 2) {\n return b - Math.sqrt((b - a) * (b - c)) / Math.sqrt(2);\n } else if (c > (a + b) / 2) {\n return a + Math.sqrt((b - a) * (c - a)) / Math.sqrt(2);\n }\n },\n\n mode: function mode(a, b, c) {\n return c;\n },\n\n sample: function sample(a, b, c) {\n var u = jStat._random_fn();\n if (u < ((c - a) / (b - a)))\n return a + Math.sqrt(u * (b - a) * (c - a))\n return b - Math.sqrt((1 - u) * (b - a) * (b - c));\n },\n\n variance: function variance(a, b, c) {\n return (a * a + b * b + c * c - a * b - a * c - b * c) / 18;\n }\n});\n\n\n// extend arcsine function with static methods\njStat.extend(jStat.arcsine, {\n pdf: function pdf(x, a, b) {\n if (b <= a) return NaN;\n\n return (x <= a || x >= b) ? 0 :\n (2 / Math.PI) *\n Math.pow(Math.pow(b - a, 2) -\n Math.pow(2 * x - a - b, 2), -0.5);\n },\n\n cdf: function cdf(x, a, b) {\n if (x < a)\n return 0;\n else if (x < b)\n return (2 / Math.PI) * Math.asin(Math.sqrt((x - a)/(b - a)));\n return 1;\n },\n\n inv: function(p, a, b) {\n return a + (0.5 - 0.5 * Math.cos(Math.PI * p)) * (b - a);\n },\n\n mean: function mean(a, b) {\n if (b <= a) return NaN;\n return (a + b) / 2;\n },\n\n median: function median(a, b) {\n if (b <= a) return NaN;\n return (a + b) / 2;\n },\n\n mode: function mode(/*a, b*/) {\n throw new Error('mode is not yet implemented');\n },\n\n sample: function sample(a, b) {\n return ((a + b) / 2) + ((b - a) / 2) *\n Math.sin(2 * Math.PI * jStat.uniform.sample(0, 1));\n },\n\n variance: function variance(a, b) {\n if (b <= a) return NaN;\n return Math.pow(b - a, 2) / 8;\n }\n});\n\n\nfunction laplaceSign(x) { return x / Math.abs(x); }\n\njStat.extend(jStat.laplace, {\n pdf: function pdf(x, mu, b) {\n return (b <= 0) ? 0 : (Math.exp(-Math.abs(x - mu) / b)) / (2 * b);\n },\n\n cdf: function cdf(x, mu, b) {\n if (b <= 0) { return 0; }\n\n if(x < mu) {\n return 0.5 * Math.exp((x - mu) / b);\n } else {\n return 1 - 0.5 * Math.exp(- (x - mu) / b);\n }\n },\n\n mean: function(mu/*, b*/) {\n return mu;\n },\n\n median: function(mu/*, b*/) {\n return mu;\n },\n\n mode: function(mu/*, b*/) {\n return mu;\n },\n\n variance: function(mu, b) {\n return 2 * b * b;\n },\n\n sample: function sample(mu, b) {\n var u = jStat._random_fn() - 0.5;\n\n return mu - (b * laplaceSign(u) * Math.log(1 - (2 * Math.abs(u))));\n }\n});\n\nfunction tukeyWprob(w, rr, cc) {\n var nleg = 12;\n var ihalf = 6;\n\n var C1 = -30;\n var C2 = -50;\n var C3 = 60;\n var bb = 8;\n var wlar = 3;\n var wincr1 = 2;\n var wincr2 = 3;\n var xleg = [\n 0.981560634246719250690549090149,\n 0.904117256370474856678465866119,\n 0.769902674194304687036893833213,\n 0.587317954286617447296702418941,\n 0.367831498998180193752691536644,\n 0.125233408511468915472441369464\n ];\n var aleg = [\n 0.047175336386511827194615961485,\n 0.106939325995318430960254718194,\n 0.160078328543346226334652529543,\n 0.203167426723065921749064455810,\n 0.233492536538354808760849898925,\n 0.249147045813402785000562436043\n ];\n\n var qsqz = w * 0.5;\n\n // if w >= 16 then the integral lower bound (occurs for c=20)\n // is 0.99999999999995 so return a value of 1.\n\n if (qsqz >= bb)\n return 1.0;\n\n // find (f(w/2) - 1) ^ cc\n // (first term in integral of hartley's form).\n\n var pr_w = 2 * jStat.normal.cdf(qsqz, 0, 1, 1, 0) - 1; // erf(qsqz / M_SQRT2)\n // if pr_w ^ cc < 2e-22 then set pr_w = 0\n if (pr_w >= Math.exp(C2 / cc))\n pr_w = Math.pow(pr_w, cc);\n else\n pr_w = 0.0;\n\n // if w is large then the second component of the\n // integral is small, so fewer intervals are needed.\n\n var wincr;\n if (w > wlar)\n wincr = wincr1;\n else\n wincr = wincr2;\n\n // find the integral of second term of hartley's form\n // for the integral of the range for equal-length\n // intervals using legendre quadrature. limits of\n // integration are from (w/2, 8). two or three\n // equal-length intervals are used.\n\n // blb and bub are lower and upper limits of integration.\n\n var blb = qsqz;\n var binc = (bb - qsqz) / wincr;\n var bub = blb + binc;\n var einsum = 0.0;\n\n // integrate over each interval\n\n var cc1 = cc - 1.0;\n for (var wi = 1; wi <= wincr; wi++) {\n var elsum = 0.0;\n var a = 0.5 * (bub + blb);\n\n // legendre quadrature with order = nleg\n\n var b = 0.5 * (bub - blb);\n\n for (var jj = 1; jj <= nleg; jj++) {\n var j, xx;\n if (ihalf < jj) {\n j = (nleg - jj) + 1;\n xx = xleg[j-1];\n } else {\n j = jj;\n xx = -xleg[j-1];\n }\n var c = b * xx;\n var ac = a + c;\n\n // if exp(-qexpo/2) < 9e-14,\n // then doesn't contribute to integral\n\n var qexpo = ac * ac;\n if (qexpo > C3)\n break;\n\n var pplus = 2 * jStat.normal.cdf(ac, 0, 1, 1, 0);\n var pminus= 2 * jStat.normal.cdf(ac, w, 1, 1, 0);\n\n // if rinsum ^ (cc-1) < 9e-14,\n // then doesn't contribute to integral\n\n var rinsum = (pplus * 0.5) - (pminus * 0.5);\n if (rinsum >= Math.exp(C1 / cc1)) {\n rinsum = (aleg[j-1] * Math.exp(-(0.5 * qexpo))) * Math.pow(rinsum, cc1);\n elsum += rinsum;\n }\n }\n elsum *= (((2.0 * b) * cc) / Math.sqrt(2 * Math.PI));\n einsum += elsum;\n blb = bub;\n bub += binc;\n }\n\n // if pr_w ^ rr < 9e-14, then return 0\n pr_w += einsum;\n if (pr_w <= Math.exp(C1 / rr))\n return 0;\n\n pr_w = Math.pow(pr_w, rr);\n if (pr_w >= 1) // 1 was iMax was eps\n return 1;\n return pr_w;\n}\n\nfunction tukeyQinv(p, c, v) {\n var p0 = 0.322232421088;\n var q0 = 0.993484626060e-01;\n var p1 = -1.0;\n var q1 = 0.588581570495;\n var p2 = -0.342242088547;\n var q2 = 0.531103462366;\n var p3 = -0.204231210125;\n var q3 = 0.103537752850;\n var p4 = -0.453642210148e-04;\n var q4 = 0.38560700634e-02;\n var c1 = 0.8832;\n var c2 = 0.2368;\n var c3 = 1.214;\n var c4 = 1.208;\n var c5 = 1.4142;\n var vmax = 120.0;\n\n var ps = 0.5 - 0.5 * p;\n var yi = Math.sqrt(Math.log(1.0 / (ps * ps)));\n var t = yi + (((( yi * p4 + p3) * yi + p2) * yi + p1) * yi + p0)\n / (((( yi * q4 + q3) * yi + q2) * yi + q1) * yi + q0);\n if (v < vmax) t += (t * t * t + t) / v / 4.0;\n var q = c1 - c2 * t;\n if (v < vmax) q += -c3 / v + c4 * t / v;\n return t * (q * Math.log(c - 1.0) + c5);\n}\n\njStat.extend(jStat.tukey, {\n cdf: function cdf(q, nmeans, df) {\n // Identical implementation as the R ptukey() function as of commit 68947\n var rr = 1;\n var cc = nmeans;\n\n var nlegq = 16;\n var ihalfq = 8;\n\n var eps1 = -30.0;\n var eps2 = 1.0e-14;\n var dhaf = 100.0;\n var dquar = 800.0;\n var deigh = 5000.0;\n var dlarg = 25000.0;\n var ulen1 = 1.0;\n var ulen2 = 0.5;\n var ulen3 = 0.25;\n var ulen4 = 0.125;\n var xlegq = [\n 0.989400934991649932596154173450,\n 0.944575023073232576077988415535,\n 0.865631202387831743880467897712,\n 0.755404408355003033895101194847,\n 0.617876244402643748446671764049,\n 0.458016777657227386342419442984,\n 0.281603550779258913230460501460,\n 0.950125098376374401853193354250e-1\n ];\n var alegq = [\n 0.271524594117540948517805724560e-1,\n 0.622535239386478928628438369944e-1,\n 0.951585116824927848099251076022e-1,\n 0.124628971255533872052476282192,\n 0.149595988816576732081501730547,\n 0.169156519395002538189312079030,\n 0.182603415044923588866763667969,\n 0.189450610455068496285396723208\n ];\n\n if (q <= 0)\n return 0;\n\n // df must be > 1\n // there must be at least two values\n\n if (df < 2 || rr < 1 || cc < 2) return NaN;\n\n if (!Number.isFinite(q))\n return 1;\n\n if (df > dlarg)\n return tukeyWprob(q, rr, cc);\n\n // calculate leading constant\n\n var f2 = df * 0.5;\n var f2lf = ((f2 * Math.log(df)) - (df * Math.log(2))) - jStat.gammaln(f2);\n var f21 = f2 - 1.0;\n\n // integral is divided into unit, half-unit, quarter-unit, or\n // eighth-unit length intervals depending on the value of the\n // degrees of freedom.\n\n var ff4 = df * 0.25;\n var ulen;\n if (df <= dhaf) ulen = ulen1;\n else if (df <= dquar) ulen = ulen2;\n else if (df <= deigh) ulen = ulen3;\n else ulen = ulen4;\n\n f2lf += Math.log(ulen);\n\n // integrate over each subinterval\n\n var ans = 0.0;\n\n for (var i = 1; i <= 50; i++) {\n var otsum = 0.0;\n\n // legendre quadrature with order = nlegq\n // nodes (stored in xlegq) are symmetric around zero.\n\n var twa1 = (2 * i - 1) * ulen;\n\n for (var jj = 1; jj <= nlegq; jj++) {\n var j, t1;\n if (ihalfq < jj) {\n j = jj - ihalfq - 1;\n t1 = (f2lf + (f21 * Math.log(twa1 + (xlegq[j] * ulen))))\n - (((xlegq[j] * ulen) + twa1) * ff4);\n } else {\n j = jj - 1;\n t1 = (f2lf + (f21 * Math.log(twa1 - (xlegq[j] * ulen))))\n + (((xlegq[j] * ulen) - twa1) * ff4);\n }\n\n // if exp(t1) < 9e-14, then doesn't contribute to integral\n var qsqz;\n if (t1 >= eps1) {\n if (ihalfq < jj) {\n qsqz = q * Math.sqrt(((xlegq[j] * ulen) + twa1) * 0.5);\n } else {\n qsqz = q * Math.sqrt(((-(xlegq[j] * ulen)) + twa1) * 0.5);\n }\n\n // call wprob to find integral of range portion\n\n var wprb = tukeyWprob(qsqz, rr, cc);\n var rotsum = (wprb * alegq[j]) * Math.exp(t1);\n otsum += rotsum;\n }\n // end legendre integral for interval i\n // L200:\n }\n\n // if integral for interval i < 1e-14, then stop.\n // However, in order to avoid small area under left tail,\n // at least 1 / ulen intervals are calculated.\n if (i * ulen >= 1.0 && otsum <= eps2)\n break;\n\n // end of interval i\n // L330:\n\n ans += otsum;\n }\n\n if (otsum > eps2) { // not converged\n throw new Error('tukey.cdf failed to converge');\n }\n if (ans > 1)\n ans = 1;\n return ans;\n },\n\n inv: function(p, nmeans, df) {\n // Identical implementation as the R qtukey() function as of commit 68947\n var rr = 1;\n var cc = nmeans;\n\n var eps = 0.0001;\n var maxiter = 50;\n\n // df must be > 1 ; there must be at least two values\n if (df < 2 || rr < 1 || cc < 2) return NaN;\n\n if (p < 0 || p > 1) return NaN;\n if (p === 0) return 0;\n if (p === 1) return Infinity;\n\n // Initial value\n\n var x0 = tukeyQinv(p, cc, df);\n\n // Find prob(value < x0)\n\n var valx0 = jStat.tukey.cdf(x0, nmeans, df) - p;\n\n // Find the second iterate and prob(value < x1).\n // If the first iterate has probability value\n // exceeding p then second iterate is 1 less than\n // first iterate; otherwise it is 1 greater.\n\n var x1;\n if (valx0 > 0.0)\n x1 = Math.max(0.0, x0 - 1.0);\n else\n x1 = x0 + 1.0;\n var valx1 = jStat.tukey.cdf(x1, nmeans, df) - p;\n\n // Find new iterate\n\n var ans;\n for(var iter = 1; iter < maxiter; iter++) {\n ans = x1 - ((valx1 * (x1 - x0)) / (valx1 - valx0));\n valx0 = valx1;\n\n // New iterate must be >= 0\n\n x0 = x1;\n if (ans < 0.0) {\n ans = 0.0;\n valx1 = -p;\n }\n // Find prob(value < new iterate)\n\n valx1 = jStat.tukey.cdf(ans, nmeans, df) - p;\n x1 = ans;\n\n // If the difference between two successive\n // iterates is less than eps, stop\n\n var xabs = Math.abs(x1 - x0);\n if (xabs < eps)\n return ans;\n }\n\n throw new Error('tukey.inv failed to converge');\n }\n});\n\n}(jStat, Math));\n/* Provides functions for the solution of linear system of equations, integration, extrapolation,\n * interpolation, eigenvalue problems, differential equations and PCA analysis. */\n\n(function(jStat, Math) {\n\nvar push = Array.prototype.push;\nvar isArray = jStat.utils.isArray;\n\nfunction isUsable(arg) {\n return isArray(arg) || arg instanceof jStat;\n}\n\njStat.extend({\n\n // add a vector/matrix to a vector/matrix or scalar\n add: function add(arr, arg) {\n // check if arg is a vector or scalar\n if (isUsable(arg)) {\n if (!isUsable(arg[0])) arg = [ arg ];\n return jStat.map(arr, function(value, row, col) {\n return value + arg[row][col];\n });\n }\n return jStat.map(arr, function(value) { return value + arg; });\n },\n\n // subtract a vector or scalar from the vector\n subtract: function subtract(arr, arg) {\n // check if arg is a vector or scalar\n if (isUsable(arg)) {\n if (!isUsable(arg[0])) arg = [ arg ];\n return jStat.map(arr, function(value, row, col) {\n return value - arg[row][col] || 0;\n });\n }\n return jStat.map(arr, function(value) { return value - arg; });\n },\n\n // matrix division\n divide: function divide(arr, arg) {\n if (isUsable(arg)) {\n if (!isUsable(arg[0])) arg = [ arg ];\n return jStat.multiply(arr, jStat.inv(arg));\n }\n return jStat.map(arr, function(value) { return value / arg; });\n },\n\n // matrix multiplication\n multiply: function multiply(arr, arg) {\n var row, col, nrescols, sum, nrow, ncol, res, rescols;\n // eg: arr = 2 arg = 3 -> 6 for res[0][0] statement closure\n if (arr.length === undefined && arg.length === undefined) {\n return arr * arg;\n }\n nrow = arr.length,\n ncol = arr[0].length,\n res = jStat.zeros(nrow, nrescols = (isUsable(arg)) ? arg[0].length : ncol),\n rescols = 0;\n if (isUsable(arg)) {\n for (; rescols < nrescols; rescols++) {\n for (row = 0; row < nrow; row++) {\n sum = 0;\n for (col = 0; col < ncol; col++)\n sum += arr[row][col] * arg[col][rescols];\n res[row][rescols] = sum;\n }\n }\n return (nrow === 1 && rescols === 1) ? res[0][0] : res;\n }\n return jStat.map(arr, function(value) { return value * arg; });\n },\n\n // outer([1,2,3],[4,5,6])\n // ===\n // [[1],[2],[3]] times [[4,5,6]]\n // ->\n // [[4,5,6],[8,10,12],[12,15,18]]\n outer:function outer(A, B) {\n return jStat.multiply(A.map(function(t){ return [t] }), [B]);\n },\n\n\n // Returns the dot product of two matricies\n dot: function dot(arr, arg) {\n if (!isUsable(arr[0])) arr = [ arr ];\n if (!isUsable(arg[0])) arg = [ arg ];\n // convert column to row vector\n var left = (arr[0].length === 1 && arr.length !== 1) ? jStat.transpose(arr) : arr,\n right = (arg[0].length === 1 && arg.length !== 1) ? jStat.transpose(arg) : arg,\n res = [],\n row = 0,\n nrow = left.length,\n ncol = left[0].length,\n sum, col;\n for (; row < nrow; row++) {\n res[row] = [];\n sum = 0;\n for (col = 0; col < ncol; col++)\n sum += left[row][col] * right[row][col];\n res[row] = sum;\n }\n return (res.length === 1) ? res[0] : res;\n },\n\n // raise every element by a scalar\n pow: function pow(arr, arg) {\n return jStat.map(arr, function(value) { return Math.pow(value, arg); });\n },\n\n // exponentiate every element\n exp: function exp(arr) {\n return jStat.map(arr, function(value) { return Math.exp(value); });\n },\n\n // generate the natural log of every element\n log: function exp(arr) {\n return jStat.map(arr, function(value) { return Math.log(value); });\n },\n\n // generate the absolute values of the vector\n abs: function abs(arr) {\n return jStat.map(arr, function(value) { return Math.abs(value); });\n },\n\n // computes the p-norm of the vector\n // In the case that a matrix is passed, uses the first row as the vector\n norm: function norm(arr, p) {\n var nnorm = 0,\n i = 0;\n // check the p-value of the norm, and set for most common case\n if (isNaN(p)) p = 2;\n // check if multi-dimensional array, and make vector correction\n if (isUsable(arr[0])) arr = arr[0];\n // vector norm\n for (; i < arr.length; i++) {\n nnorm += Math.pow(Math.abs(arr[i]), p);\n }\n return Math.pow(nnorm, 1 / p);\n },\n\n // computes the angle between two vectors in rads\n // In case a matrix is passed, this uses the first row as the vector\n angle: function angle(arr, arg) {\n return Math.acos(jStat.dot(arr, arg) / (jStat.norm(arr) * jStat.norm(arg)));\n },\n\n // augment one matrix by another\n // Note: this function returns a matrix, not a jStat object\n aug: function aug(a, b) {\n var newarr = [];\n var i;\n for (i = 0; i < a.length; i++) {\n newarr.push(a[i].slice());\n }\n for (i = 0; i < newarr.length; i++) {\n push.apply(newarr[i], b[i]);\n }\n return newarr;\n },\n\n // The inv() function calculates the inverse of a matrix\n // Create the inverse by augmenting the matrix by the identity matrix of the\n // appropriate size, and then use G-J elimination on the augmented matrix.\n inv: function inv(a) {\n var rows = a.length;\n var cols = a[0].length;\n var b = jStat.identity(rows, cols);\n var c = jStat.gauss_jordan(a, b);\n var result = [];\n var i = 0;\n var j;\n\n //We need to copy the inverse portion to a new matrix to rid G-J artifacts\n for (; i < rows; i++) {\n result[i] = [];\n for (j = cols; j < c[0].length; j++)\n result[i][j - cols] = c[i][j];\n }\n return result;\n },\n\n // calculate the determinant of a matrix\n det: function det(a) {\n var alen = a.length,\n alend = alen * 2,\n vals = new Array(alend),\n rowshift = alen - 1,\n colshift = alend - 1,\n mrow = rowshift - alen + 1,\n mcol = colshift,\n i = 0,\n result = 0,\n j;\n // check for special 2x2 case\n if (alen === 2) {\n return a[0][0] * a[1][1] - a[0][1] * a[1][0];\n }\n for (; i < alend; i++) {\n vals[i] = 1;\n }\n for (i = 0; i < alen; i++) {\n for (j = 0; j < alen; j++) {\n vals[(mrow < 0) ? mrow + alen : mrow ] *= a[i][j];\n vals[(mcol < alen) ? mcol + alen : mcol ] *= a[i][j];\n mrow++;\n mcol--;\n }\n mrow = --rowshift - alen + 1;\n mcol = --colshift;\n }\n for (i = 0; i < alen; i++) {\n result += vals[i];\n }\n for (; i < alend; i++) {\n result -= vals[i];\n }\n return result;\n },\n\n gauss_elimination: function gauss_elimination(a, b) {\n var i = 0,\n j = 0,\n n = a.length,\n m = a[0].length,\n factor = 1,\n sum = 0,\n x = [],\n maug, pivot, temp, k;\n a = jStat.aug(a, b);\n maug = a[0].length;\n for(i = 0; i < n; i++) {\n pivot = a[i][i];\n j = i;\n for (k = i + 1; k < m; k++) {\n if (pivot < Math.abs(a[k][i])) {\n pivot = a[k][i];\n j = k;\n }\n }\n if (j != i) {\n for(k = 0; k < maug; k++) {\n temp = a[i][k];\n a[i][k] = a[j][k];\n a[j][k] = temp;\n }\n }\n for (j = i + 1; j < n; j++) {\n factor = a[j][i] / a[i][i];\n for(k = i; k < maug; k++) {\n a[j][k] = a[j][k] - factor * a[i][k];\n }\n }\n }\n for (i = n - 1; i >= 0; i--) {\n sum = 0;\n for (j = i + 1; j<= n - 1; j++) {\n sum = sum + x[j] * a[i][j];\n }\n x[i] =(a[i][maug - 1] - sum) / a[i][i];\n }\n return x;\n },\n\n gauss_jordan: function gauss_jordan(a, b) {\n var m = jStat.aug(a, b);\n var h = m.length;\n var w = m[0].length;\n var c = 0;\n var x, y, y2;\n // find max pivot\n for (y = 0; y < h; y++) {\n var maxrow = y;\n for (y2 = y+1; y2 < h; y2++) {\n if (Math.abs(m[y2][y]) > Math.abs(m[maxrow][y]))\n maxrow = y2;\n }\n var tmp = m[y];\n m[y] = m[maxrow];\n m[maxrow] = tmp\n for (y2 = y+1; y2 < h; y2++) {\n c = m[y2][y] / m[y][y];\n for (x = y; x < w; x++) {\n m[y2][x] -= m[y][x] * c;\n }\n }\n }\n // backsubstitute\n for (y = h-1; y >= 0; y--) {\n c = m[y][y];\n for (y2 = 0; y2 < y; y2++) {\n for (x = w-1; x > y-1; x--) {\n m[y2][x] -= m[y][x] * m[y2][y] / c;\n }\n }\n m[y][y] /= c;\n for (x = h; x < w; x++) {\n m[y][x] /= c;\n }\n }\n return m;\n },\n\n // solve equation\n // Ax=b\n // A is upper triangular matrix\n // A=[[1,2,3],[0,4,5],[0,6,7]]\n // b=[1,2,3]\n // triaUpSolve(A,b) // -> [2.666,0.1666,1.666]\n // if you use matrix style\n // A=[[1,2,3],[0,4,5],[0,6,7]]\n // b=[[1],[2],[3]]\n // will return [[2.666],[0.1666],[1.666]]\n triaUpSolve: function triaUpSolve(A, b) {\n var size = A[0].length;\n var x = jStat.zeros(1, size)[0];\n var parts;\n var matrix_mode = false;\n\n if (b[0].length != undefined) {\n b = b.map(function(i){ return i[0] });\n matrix_mode = true;\n }\n\n jStat.arange(size - 1, -1, -1).forEach(function(i) {\n parts = jStat.arange(i + 1, size).map(function(j) {\n return x[j] * A[i][j];\n });\n x[i] = (b[i] - jStat.sum(parts)) / A[i][i];\n });\n\n if (matrix_mode)\n return x.map(function(i){ return [i] });\n return x;\n },\n\n triaLowSolve: function triaLowSolve(A, b) {\n // like to triaUpSolve but A is lower triangular matrix\n var size = A[0].length;\n var x = jStat.zeros(1, size)[0];\n var parts;\n\n var matrix_mode=false;\n if (b[0].length != undefined) {\n b = b.map(function(i){ return i[0] });\n matrix_mode = true;\n }\n\n jStat.arange(size).forEach(function(i) {\n parts = jStat.arange(i).map(function(j) {\n return A[i][j] * x[j];\n });\n x[i] = (b[i] - jStat.sum(parts)) / A[i][i];\n })\n\n if (matrix_mode)\n return x.map(function(i){ return [i] });\n return x;\n },\n\n\n // A -> [L,U]\n // A=LU\n // L is lower triangular matrix\n // U is upper triangular matrix\n lu: function lu(A) {\n var size = A.length;\n //var L=jStat.diagonal(jStat.ones(1,size)[0]);\n var L = jStat.identity(size);\n var R = jStat.zeros(A.length, A[0].length);\n var parts;\n jStat.arange(size).forEach(function(t) {\n R[0][t] = A[0][t];\n });\n jStat.arange(1, size).forEach(function(l) {\n jStat.arange(l).forEach(function(i) {\n parts = jStat.arange(i).map(function(jj) {\n return L[l][jj] * R[jj][i];\n });\n L[l][i] = (A[l][i] - jStat.sum(parts)) / R[i][i];\n });\n jStat.arange(l, size).forEach(function(j) {\n parts = jStat.arange(l).map(function(jj) {\n return L[l][jj] * R[jj][j];\n });\n R[l][j] = A[parts.length][j] - jStat.sum(parts);\n });\n });\n return [L, R];\n },\n\n // A -> T\n // A=TT'\n // T is lower triangular matrix\n cholesky: function cholesky(A) {\n var size = A.length;\n var T = jStat.zeros(A.length, A[0].length);\n var parts;\n jStat.arange(size).forEach(function(i) {\n parts = jStat.arange(i).map(function(t) {\n return Math.pow(T[i][t],2);\n });\n T[i][i] = Math.sqrt(A[i][i] - jStat.sum(parts));\n jStat.arange(i + 1, size).forEach(function(j) {\n parts = jStat.arange(i).map(function(t) {\n return T[i][t] * T[j][t];\n });\n T[j][i] = (A[i][j] - jStat.sum(parts)) / T[i][i];\n });\n });\n return T;\n },\n\n\n gauss_jacobi: function gauss_jacobi(a, b, x, r) {\n var i = 0;\n var j = 0;\n var n = a.length;\n var l = [];\n var u = [];\n var d = [];\n var xv, c, h, xk;\n for (; i < n; i++) {\n l[i] = [];\n u[i] = [];\n d[i] = [];\n for (j = 0; j < n; j++) {\n if (i > j) {\n l[i][j] = a[i][j];\n u[i][j] = d[i][j] = 0;\n } else if (i < j) {\n u[i][j] = a[i][j];\n l[i][j] = d[i][j] = 0;\n } else {\n d[i][j] = a[i][j];\n l[i][j] = u[i][j] = 0;\n }\n }\n }\n h = jStat.multiply(jStat.multiply(jStat.inv(d), jStat.add(l, u)), -1);\n c = jStat.multiply(jStat.inv(d), b);\n xv = x;\n xk = jStat.add(jStat.multiply(h, x), c);\n i = 2;\n while (Math.abs(jStat.norm(jStat.subtract(xk,xv))) > r) {\n xv = xk;\n xk = jStat.add(jStat.multiply(h, xv), c);\n i++;\n }\n return xk;\n },\n\n gauss_seidel: function gauss_seidel(a, b, x, r) {\n var i = 0;\n var n = a.length;\n var l = [];\n var u = [];\n var d = [];\n var j, xv, c, h, xk;\n for (; i < n; i++) {\n l[i] = [];\n u[i] = [];\n d[i] = [];\n for (j = 0; j < n; j++) {\n if (i > j) {\n l[i][j] = a[i][j];\n u[i][j] = d[i][j] = 0;\n } else if (i < j) {\n u[i][j] = a[i][j];\n l[i][j] = d[i][j] = 0;\n } else {\n d[i][j] = a[i][j];\n l[i][j] = u[i][j] = 0;\n }\n }\n }\n h = jStat.multiply(jStat.multiply(jStat.inv(jStat.add(d, l)), u), -1);\n c = jStat.multiply(jStat.inv(jStat.add(d, l)), b);\n xv = x;\n xk = jStat.add(jStat.multiply(h, x), c);\n i = 2;\n while (Math.abs(jStat.norm(jStat.subtract(xk, xv))) > r) {\n xv = xk;\n xk = jStat.add(jStat.multiply(h, xv), c);\n i = i + 1;\n }\n return xk;\n },\n\n SOR: function SOR(a, b, x, r, w) {\n var i = 0;\n var n = a.length;\n var l = [];\n var u = [];\n var d = [];\n var j, xv, c, h, xk;\n for (; i < n; i++) {\n l[i] = [];\n u[i] = [];\n d[i] = [];\n for (j = 0; j < n; j++) {\n if (i > j) {\n l[i][j] = a[i][j];\n u[i][j] = d[i][j] = 0;\n } else if (i < j) {\n u[i][j] = a[i][j];\n l[i][j] = d[i][j] = 0;\n } else {\n d[i][j] = a[i][j];\n l[i][j] = u[i][j] = 0;\n }\n }\n }\n h = jStat.multiply(jStat.inv(jStat.add(d, jStat.multiply(l, w))),\n jStat.subtract(jStat.multiply(d, 1 - w),\n jStat.multiply(u, w)));\n c = jStat.multiply(jStat.multiply(jStat.inv(jStat.add(d,\n jStat.multiply(l, w))), b), w);\n xv = x;\n xk = jStat.add(jStat.multiply(h, x), c);\n i = 2;\n while (Math.abs(jStat.norm(jStat.subtract(xk, xv))) > r) {\n xv = xk;\n xk = jStat.add(jStat.multiply(h, xv), c);\n i++;\n }\n return xk;\n },\n\n householder: function householder(a) {\n var m = a.length;\n var n = a[0].length;\n var i = 0;\n var w = [];\n var p = [];\n var alpha, r, k, j, factor;\n for (; i < m - 1; i++) {\n alpha = 0;\n for (j = i + 1; j < n; j++)\n alpha += (a[j][i] * a[j][i]);\n factor = (a[i + 1][i] > 0) ? -1 : 1;\n alpha = factor * Math.sqrt(alpha);\n r = Math.sqrt((((alpha * alpha) - a[i + 1][i] * alpha) / 2));\n w = jStat.zeros(m, 1);\n w[i + 1][0] = (a[i + 1][i] - alpha) / (2 * r);\n for (k = i + 2; k < m; k++) w[k][0] = a[k][i] / (2 * r);\n p = jStat.subtract(jStat.identity(m, n),\n jStat.multiply(jStat.multiply(w, jStat.transpose(w)), 2));\n a = jStat.multiply(p, jStat.multiply(a, p));\n }\n return a;\n },\n\n // A -> [Q,R]\n // Q is orthogonal matrix\n // R is upper triangular\n QR: (function() {\n // x -> Q\n // find a orthogonal matrix Q st.\n // Qx=y\n // y is [||x||,0,0,...]\n\n // quick ref\n var sum = jStat.sum;\n var range = jStat.arange;\n\n function qr2(x) {\n // quick impletation\n // https://www.stat.wisc.edu/~larget/math496/qr.html\n\n var n = x.length;\n var p = x[0].length;\n\n var r = jStat.zeros(p, p);\n x = jStat.copy(x);\n\n var i,j,k;\n for(j = 0; j < p; j++){\n r[j][j] = Math.sqrt(sum(range(n).map(function(i){\n return x[i][j] * x[i][j];\n })));\n for(i = 0; i < n; i++){\n x[i][j] = x[i][j] / r[j][j];\n }\n for(k = j+1; k < p; k++){\n r[j][k] = sum(range(n).map(function(i){\n return x[i][j] * x[i][k];\n }));\n for(i = 0; i < n; i++){\n x[i][k] = x[i][k] - x[i][j]*r[j][k];\n }\n }\n }\n return [x, r];\n }\n\n return qr2;\n }()),\n\n lstsq: (function() {\n // solve least squard problem for Ax=b as QR decomposition way if b is\n // [[b1],[b2],[b3]] form will return [[x1],[x2],[x3]] array form solution\n // else b is [b1,b2,b3] form will return [x1,x2,x3] array form solution\n function R_I(A) {\n A = jStat.copy(A);\n var size = A.length;\n var I = jStat.identity(size);\n jStat.arange(size - 1, -1, -1).forEach(function(i) {\n jStat.sliceAssign(\n I, { row: i }, jStat.divide(jStat.slice(I, { row: i }), A[i][i]));\n jStat.sliceAssign(\n A, { row: i }, jStat.divide(jStat.slice(A, { row: i }), A[i][i]));\n jStat.arange(i).forEach(function(j) {\n var c = jStat.multiply(A[j][i], -1);\n var Aj = jStat.slice(A, { row: j });\n var cAi = jStat.multiply(jStat.slice(A, { row: i }), c);\n jStat.sliceAssign(A, { row: j }, jStat.add(Aj, cAi));\n var Ij = jStat.slice(I, { row: j });\n var cIi = jStat.multiply(jStat.slice(I, { row: i }), c);\n jStat.sliceAssign(I, { row: j }, jStat.add(Ij, cIi));\n })\n });\n return I;\n }\n\n function qr_solve(A, b){\n var array_mode = false;\n if (b[0].length === undefined) {\n // [c1,c2,c3] mode\n b = b.map(function(x){ return [x] });\n array_mode = true;\n }\n var QR = jStat.QR(A);\n var Q = QR[0];\n var R = QR[1];\n var attrs = A[0].length;\n var Q1 = jStat.slice(Q,{col:{end:attrs}});\n var R1 = jStat.slice(R,{row:{end:attrs}});\n var RI = R_I(R1);\n var Q2 = jStat.transpose(Q1);\n\n if(Q2[0].length === undefined){\n Q2 = [Q2]; // The confusing jStat.multifly implementation threat nature process again.\n }\n\n var x = jStat.multiply(jStat.multiply(RI, Q2), b);\n\n if(x.length === undefined){\n x = [[x]]; // The confusing jStat.multifly implementation threat nature process again.\n }\n\n\n if (array_mode)\n return x.map(function(i){ return i[0] });\n return x;\n }\n\n return qr_solve;\n }()),\n\n jacobi: function jacobi(a) {\n var condition = 1;\n var n = a.length;\n var e = jStat.identity(n, n);\n var ev = [];\n var b, i, j, p, q, maxim, theta, s;\n // condition === 1 only if tolerance is not reached\n while (condition === 1) {\n maxim = a[0][1];\n p = 0;\n q = 1;\n for (i = 0; i < n; i++) {\n for (j = 0; j < n; j++) {\n if (i != j) {\n if (maxim < Math.abs(a[i][j])) {\n maxim = Math.abs(a[i][j]);\n p = i;\n q = j;\n }\n }\n }\n }\n if (a[p][p] === a[q][q])\n theta = (a[p][q] > 0) ? Math.PI / 4 : -Math.PI / 4;\n else\n theta = Math.atan(2 * a[p][q] / (a[p][p] - a[q][q])) / 2;\n s = jStat.identity(n, n);\n s[p][p] = Math.cos(theta);\n s[p][q] = -Math.sin(theta);\n s[q][p] = Math.sin(theta);\n s[q][q] = Math.cos(theta);\n // eigen vector matrix\n e = jStat.multiply(e, s);\n b = jStat.multiply(jStat.multiply(jStat.inv(s), a), s);\n a = b;\n condition = 0;\n for (i = 1; i < n; i++) {\n for (j = 1; j < n; j++) {\n if (i != j && Math.abs(a[i][j]) > 0.001) {\n condition = 1;\n }\n }\n }\n }\n for (i = 0; i < n; i++) ev.push(a[i][i]);\n //returns both the eigenvalue and eigenmatrix\n return [e, ev];\n },\n\n rungekutta: function rungekutta(f, h, p, t_j, u_j, order) {\n var k1, k2, u_j1, k3, k4;\n if (order === 2) {\n while (t_j <= p) {\n k1 = h * f(t_j, u_j);\n k2 = h * f(t_j + h, u_j + k1);\n u_j1 = u_j + (k1 + k2) / 2;\n u_j = u_j1;\n t_j = t_j + h;\n }\n }\n if (order === 4) {\n while (t_j <= p) {\n k1 = h * f(t_j, u_j);\n k2 = h * f(t_j + h / 2, u_j + k1 / 2);\n k3 = h * f(t_j + h / 2, u_j + k2 / 2);\n k4 = h * f(t_j +h, u_j + k3);\n u_j1 = u_j + (k1 + 2 * k2 + 2 * k3 + k4) / 6;\n u_j = u_j1;\n t_j = t_j + h;\n }\n }\n return u_j;\n },\n\n romberg: function romberg(f, a, b, order) {\n var i = 0;\n var h = (b - a) / 2;\n var x = [];\n var h1 = [];\n var g = [];\n var m, a1, j, k, I;\n while (i < order / 2) {\n I = f(a);\n for (j = a, k = 0; j <= b; j = j + h, k++) x[k] = j;\n m = x.length;\n for (j = 1; j < m - 1; j++) {\n I += (((j % 2) !== 0) ? 4 : 2) * f(x[j]);\n }\n I = (h / 3) * (I + f(b));\n g[i] = I;\n h /= 2;\n i++;\n }\n a1 = g.length;\n m = 1;\n while (a1 !== 1) {\n for (j = 0; j < a1 - 1; j++)\n h1[j] = ((Math.pow(4, m)) * g[j + 1] - g[j]) / (Math.pow(4, m) - 1);\n a1 = h1.length;\n g = h1;\n h1 = [];\n m++;\n }\n return g;\n },\n\n richardson: function richardson(X, f, x, h) {\n function pos(X, x) {\n var i = 0;\n var n = X.length;\n var p;\n for (; i < n; i++)\n if (X[i] === x) p = i;\n return p;\n }\n var h_min = Math.abs(x - X[pos(X, x) + 1]);\n var i = 0;\n var g = [];\n var h1 = [];\n var y1, y2, m, a, j;\n while (h >= h_min) {\n y1 = pos(X, x + h);\n y2 = pos(X, x);\n g[i] = (f[y1] - 2 * f[y2] + f[2 * y2 - y1]) / (h * h);\n h /= 2;\n i++;\n }\n a = g.length;\n m = 1;\n while (a != 1) {\n for (j = 0; j < a - 1; j++)\n h1[j] = ((Math.pow(4, m)) * g[j + 1] - g[j]) / (Math.pow(4, m) - 1);\n a = h1.length;\n g = h1;\n h1 = [];\n m++;\n }\n return g;\n },\n\n simpson: function simpson(f, a, b, n) {\n var h = (b - a) / n;\n var I = f(a);\n var x = [];\n var j = a;\n var k = 0;\n var i = 1;\n var m;\n for (; j <= b; j = j + h, k++)\n x[k] = j;\n m = x.length;\n for (; i < m - 1; i++) {\n I += ((i % 2 !== 0) ? 4 : 2) * f(x[i]);\n }\n return (h / 3) * (I + f(b));\n },\n\n hermite: function hermite(X, F, dF, value) {\n var n = X.length;\n var p = 0;\n var i = 0;\n var l = [];\n var dl = [];\n var A = [];\n var B = [];\n var j;\n for (; i < n; i++) {\n l[i] = 1;\n for (j = 0; j < n; j++) {\n if (i != j) l[i] *= (value - X[j]) / (X[i] - X[j]);\n }\n dl[i] = 0;\n for (j = 0; j < n; j++) {\n if (i != j) dl[i] += 1 / (X [i] - X[j]);\n }\n A[i] = (1 - 2 * (value - X[i]) * dl[i]) * (l[i] * l[i]);\n B[i] = (value - X[i]) * (l[i] * l[i]);\n p += (A[i] * F[i] + B[i] * dF[i]);\n }\n return p;\n },\n\n lagrange: function lagrange(X, F, value) {\n var p = 0;\n var i = 0;\n var j, l;\n var n = X.length;\n for (; i < n; i++) {\n l = F[i];\n for (j = 0; j < n; j++) {\n // calculating the lagrange polynomial L_i\n if (i != j) l *= (value - X[j]) / (X[i] - X[j]);\n }\n // adding the lagrange polynomials found above\n p += l;\n }\n return p;\n },\n\n cubic_spline: function cubic_spline(X, F, value) {\n var n = X.length;\n var i = 0, j;\n var A = [];\n var B = [];\n var alpha = [];\n var c = [];\n var h = [];\n var b = [];\n var d = [];\n for (; i < n - 1; i++)\n h[i] = X[i + 1] - X[i];\n alpha[0] = 0;\n for (i = 1; i < n - 1; i++) {\n alpha[i] = (3 / h[i]) * (F[i + 1] - F[i]) -\n (3 / h[i-1]) * (F[i] - F[i-1]);\n }\n for (i = 1; i < n - 1; i++) {\n A[i] = [];\n B[i] = [];\n A[i][i-1] = h[i-1];\n A[i][i] = 2 * (h[i - 1] + h[i]);\n A[i][i+1] = h[i];\n B[i][0] = alpha[i];\n }\n c = jStat.multiply(jStat.inv(A), B);\n for (j = 0; j < n - 1; j++) {\n b[j] = (F[j + 1] - F[j]) / h[j] - h[j] * (c[j + 1][0] + 2 * c[j][0]) / 3;\n d[j] = (c[j + 1][0] - c[j][0]) / (3 * h[j]);\n }\n for (j = 0; j < n; j++) {\n if (X[j] > value) break;\n }\n j -= 1;\n return F[j] + (value - X[j]) * b[j] + jStat.sq(value-X[j]) *\n c[j] + (value - X[j]) * jStat.sq(value - X[j]) * d[j];\n },\n\n gauss_quadrature: function gauss_quadrature() {\n throw new Error('gauss_quadrature not yet implemented');\n },\n\n PCA: function PCA(X) {\n var m = X.length;\n var n = X[0].length;\n var i = 0;\n var j, temp1;\n var u = [];\n var D = [];\n var result = [];\n var temp2 = [];\n var Y = [];\n var Bt = [];\n var B = [];\n var C = [];\n var V = [];\n var Vt = [];\n for (i = 0; i < m; i++) {\n u[i] = jStat.sum(X[i]) / n;\n }\n for (i = 0; i < n; i++) {\n B[i] = [];\n for(j = 0; j < m; j++) {\n B[i][j] = X[j][i] - u[j];\n }\n }\n B = jStat.transpose(B);\n for (i = 0; i < m; i++) {\n C[i] = [];\n for (j = 0; j < m; j++) {\n C[i][j] = (jStat.dot([B[i]], [B[j]])) / (n - 1);\n }\n }\n result = jStat.jacobi(C);\n V = result[0];\n D = result[1];\n Vt = jStat.transpose(V);\n for (i = 0; i < D.length; i++) {\n for (j = i; j < D.length; j++) {\n if(D[i] < D[j]) {\n temp1 = D[i];\n D[i] = D[j];\n D[j] = temp1;\n temp2 = Vt[i];\n Vt[i] = Vt[j];\n Vt[j] = temp2;\n }\n }\n }\n Bt = jStat.transpose(B);\n for (i = 0; i < m; i++) {\n Y[i] = [];\n for (j = 0; j < Bt.length; j++) {\n Y[i][j] = jStat.dot([Vt[i]], [Bt[j]]);\n }\n }\n return [X, D, Vt, Y];\n }\n});\n\n// extend jStat.fn with methods that require one argument\n(function(funcs) {\n for (var i = 0; i < funcs.length; i++) (function(passfunc) {\n jStat.fn[passfunc] = function(arg, func) {\n var tmpthis = this;\n // check for callback\n if (func) {\n setTimeout(function() {\n func.call(tmpthis, jStat.fn[passfunc].call(tmpthis, arg));\n }, 15);\n return this;\n }\n if (typeof jStat[passfunc](this, arg) === 'number')\n return jStat[passfunc](this, arg);\n else\n return jStat(jStat[passfunc](this, arg));\n };\n }(funcs[i]));\n}('add divide multiply subtract dot pow exp log abs norm angle'.split(' ')));\n\n}(jStat, Math));\n(function(jStat, Math) {\n\nvar slice = [].slice;\nvar isNumber = jStat.utils.isNumber;\nvar isArray = jStat.utils.isArray;\n\n// flag==true denotes use of sample standard deviation\n// Z Statistics\njStat.extend({\n // 2 different parameter lists:\n // (value, mean, sd)\n // (value, array, flag)\n zscore: function zscore() {\n var args = slice.call(arguments);\n if (isNumber(args[1])) {\n return (args[0] - args[1]) / args[2];\n }\n return (args[0] - jStat.mean(args[1])) / jStat.stdev(args[1], args[2]);\n },\n\n // 3 different paramter lists:\n // (value, mean, sd, sides)\n // (zscore, sides)\n // (value, array, sides, flag)\n ztest: function ztest() {\n var args = slice.call(arguments);\n var z;\n if (isArray(args[1])) {\n // (value, array, sides, flag)\n z = jStat.zscore(args[0],args[1],args[3]);\n return (args[2] === 1) ?\n (jStat.normal.cdf(-Math.abs(z), 0, 1)) :\n (jStat.normal.cdf(-Math.abs(z), 0, 1)*2);\n } else {\n if (args.length > 2) {\n // (value, mean, sd, sides)\n z = jStat.zscore(args[0],args[1],args[2]);\n return (args[3] === 1) ?\n (jStat.normal.cdf(-Math.abs(z),0,1)) :\n (jStat.normal.cdf(-Math.abs(z),0,1)* 2);\n } else {\n // (zscore, sides)\n z = args[0];\n return (args[1] === 1) ?\n (jStat.normal.cdf(-Math.abs(z),0,1)) :\n (jStat.normal.cdf(-Math.abs(z),0,1)*2);\n }\n }\n }\n});\n\njStat.extend(jStat.fn, {\n zscore: function zscore(value, flag) {\n return (value - this.mean()) / this.stdev(flag);\n },\n\n ztest: function ztest(value, sides, flag) {\n var zscore = Math.abs(this.zscore(value, flag));\n return (sides === 1) ?\n (jStat.normal.cdf(-zscore, 0, 1)) :\n (jStat.normal.cdf(-zscore, 0, 1) * 2);\n }\n});\n\n// T Statistics\njStat.extend({\n // 2 parameter lists\n // (value, mean, sd, n)\n // (value, array)\n tscore: function tscore() {\n var args = slice.call(arguments);\n return (args.length === 4) ?\n ((args[0] - args[1]) / (args[2] / Math.sqrt(args[3]))) :\n ((args[0] - jStat.mean(args[1])) /\n (jStat.stdev(args[1], true) / Math.sqrt(args[1].length)));\n },\n\n // 3 different paramter lists:\n // (value, mean, sd, n, sides)\n // (tscore, n, sides)\n // (value, array, sides)\n ttest: function ttest() {\n var args = slice.call(arguments);\n var tscore;\n if (args.length === 5) {\n tscore = Math.abs(jStat.tscore(args[0], args[1], args[2], args[3]));\n return (args[4] === 1) ?\n (jStat.studentt.cdf(-tscore, args[3]-1)) :\n (jStat.studentt.cdf(-tscore, args[3]-1)*2);\n }\n if (isNumber(args[1])) {\n tscore = Math.abs(args[0])\n return (args[2] == 1) ?\n (jStat.studentt.cdf(-tscore, args[1]-1)) :\n (jStat.studentt.cdf(-tscore, args[1]-1) * 2);\n }\n tscore = Math.abs(jStat.tscore(args[0], args[1]))\n return (args[2] == 1) ?\n (jStat.studentt.cdf(-tscore, args[1].length-1)) :\n (jStat.studentt.cdf(-tscore, args[1].length-1) * 2);\n }\n});\n\njStat.extend(jStat.fn, {\n tscore: function tscore(value) {\n return (value - this.mean()) / (this.stdev(true) / Math.sqrt(this.cols()));\n },\n\n ttest: function ttest(value, sides) {\n return (sides === 1) ?\n (1 - jStat.studentt.cdf(Math.abs(this.tscore(value)), this.cols()-1)) :\n (jStat.studentt.cdf(-Math.abs(this.tscore(value)), this.cols()-1)*2);\n }\n});\n\n// F Statistics\njStat.extend({\n // Paramter list is as follows:\n // (array1, array2, array3, ...)\n // or it is an array of arrays\n // array of arrays conversion\n anovafscore: function anovafscore() {\n var args = slice.call(arguments),\n expVar, sample, sampMean, sampSampMean, tmpargs, unexpVar, i, j;\n if (args.length === 1) {\n tmpargs = new Array(args[0].length);\n for (i = 0; i < args[0].length; i++) {\n tmpargs[i] = args[0][i];\n }\n args = tmpargs;\n }\n // Builds sample array\n sample = new Array();\n for (i = 0; i < args.length; i++) {\n sample = sample.concat(args[i]);\n }\n sampMean = jStat.mean(sample);\n // Computes the explained variance\n expVar = 0;\n for (i = 0; i < args.length; i++) {\n expVar = expVar + args[i].length * Math.pow(jStat.mean(args[i]) - sampMean, 2);\n }\n expVar /= (args.length - 1);\n // Computes unexplained variance\n unexpVar = 0;\n for (i = 0; i < args.length; i++) {\n sampSampMean = jStat.mean(args[i]);\n for (j = 0; j < args[i].length; j++) {\n unexpVar += Math.pow(args[i][j] - sampSampMean, 2);\n }\n }\n unexpVar /= (sample.length - args.length);\n return expVar / unexpVar;\n },\n\n // 2 different paramter setups\n // (array1, array2, array3, ...)\n // (anovafscore, df1, df2)\n anovaftest: function anovaftest() {\n var args = slice.call(arguments),\n df1, df2, n, i;\n if (isNumber(args[0])) {\n return 1 - jStat.centralF.cdf(args[0], args[1], args[2]);\n }\n var anovafscore = jStat.anovafscore(args);\n df1 = args.length - 1;\n n = 0;\n for (i = 0; i < args.length; i++) {\n n = n + args[i].length;\n }\n df2 = n - df1 - 1;\n return 1 - jStat.centralF.cdf(anovafscore, df1, df2);\n },\n\n ftest: function ftest(fscore, df1, df2) {\n return 1 - jStat.centralF.cdf(fscore, df1, df2);\n }\n});\n\njStat.extend(jStat.fn, {\n anovafscore: function anovafscore() {\n return jStat.anovafscore(this.toArray());\n },\n\n anovaftes: function anovaftes() {\n var n = 0;\n var i;\n for (i = 0; i < this.length; i++) {\n n = n + this[i].length;\n }\n return jStat.ftest(this.anovafscore(), this.length - 1, n - this.length);\n }\n});\n\n// Tukey's range test\njStat.extend({\n // 2 parameter lists\n // (mean1, mean2, n1, n2, sd)\n // (array1, array2, sd)\n qscore: function qscore() {\n var args = slice.call(arguments);\n var mean1, mean2, n1, n2, sd;\n if (isNumber(args[0])) {\n mean1 = args[0];\n mean2 = args[1];\n n1 = args[2];\n n2 = args[3];\n sd = args[4];\n } else {\n mean1 = jStat.mean(args[0]);\n mean2 = jStat.mean(args[1]);\n n1 = args[0].length;\n n2 = args[1].length;\n sd = args[2];\n }\n return Math.abs(mean1 - mean2) / (sd * Math.sqrt((1 / n1 + 1 / n2) / 2));\n },\n\n // 3 different parameter lists:\n // (qscore, n, k)\n // (mean1, mean2, n1, n2, sd, n, k)\n // (array1, array2, sd, n, k)\n qtest: function qtest() {\n var args = slice.call(arguments);\n\n var qscore;\n if (args.length === 3) {\n qscore = args[0];\n args = args.slice(1);\n } else if (args.length === 7) {\n qscore = jStat.qscore(args[0], args[1], args[2], args[3], args[4]);\n args = args.slice(5);\n } else {\n qscore = jStat.qscore(args[0], args[1], args[2]);\n args = args.slice(3);\n }\n\n var n = args[0];\n var k = args[1];\n\n return 1 - jStat.tukey.cdf(qscore, k, n - k);\n },\n\n tukeyhsd: function tukeyhsd(arrays) {\n var sd = jStat.pooledstdev(arrays);\n var means = arrays.map(function (arr) {return jStat.mean(arr);});\n var n = arrays.reduce(function (n, arr) {return n + arr.length;}, 0);\n\n var results = [];\n for (var i = 0; i < arrays.length; ++i) {\n for (var j = i + 1; j < arrays.length; ++j) {\n var p = jStat.qtest(means[i], means[j], arrays[i].length, arrays[j].length, sd, n, arrays.length);\n results.push([[i, j], p]);\n }\n }\n\n return results;\n }\n});\n\n// Error Bounds\njStat.extend({\n // 2 different parameter setups\n // (value, alpha, sd, n)\n // (value, alpha, array)\n normalci: function normalci() {\n var args = slice.call(arguments),\n ans = new Array(2),\n change;\n if (args.length === 4) {\n change = Math.abs(jStat.normal.inv(args[1] / 2, 0, 1) *\n args[2] / Math.sqrt(args[3]));\n } else {\n change = Math.abs(jStat.normal.inv(args[1] / 2, 0, 1) *\n jStat.stdev(args[2]) / Math.sqrt(args[2].length));\n }\n ans[0] = args[0] - change;\n ans[1] = args[0] + change;\n return ans;\n },\n\n // 2 different parameter setups\n // (value, alpha, sd, n)\n // (value, alpha, array)\n tci: function tci() {\n var args = slice.call(arguments),\n ans = new Array(2),\n change;\n if (args.length === 4) {\n change = Math.abs(jStat.studentt.inv(args[1] / 2, args[3] - 1) *\n args[2] / Math.sqrt(args[3]));\n } else {\n change = Math.abs(jStat.studentt.inv(args[1] / 2, args[2].length - 1) *\n jStat.stdev(args[2], true) / Math.sqrt(args[2].length));\n }\n ans[0] = args[0] - change;\n ans[1] = args[0] + change;\n return ans;\n },\n\n significant: function significant(pvalue, alpha) {\n return pvalue < alpha;\n }\n});\n\njStat.extend(jStat.fn, {\n normalci: function normalci(value, alpha) {\n return jStat.normalci(value, alpha, this.toArray());\n },\n\n tci: function tci(value, alpha) {\n return jStat.tci(value, alpha, this.toArray());\n }\n});\n\n// internal method for calculating the z-score for a difference of proportions test\nfunction differenceOfProportions(p1, n1, p2, n2) {\n if (p1 > 1 || p2 > 1 || p1 <= 0 || p2 <= 0) {\n throw new Error(\"Proportions should be greater than 0 and less than 1\")\n }\n var pooled = (p1 * n1 + p2 * n2) / (n1 + n2);\n var se = Math.sqrt(pooled * (1 - pooled) * ((1/n1) + (1/n2)));\n return (p1 - p2) / se;\n}\n\n// Difference of Proportions\njStat.extend(jStat.fn, {\n oneSidedDifferenceOfProportions: function oneSidedDifferenceOfProportions(p1, n1, p2, n2) {\n var z = differenceOfProportions(p1, n1, p2, n2);\n return jStat.ztest(z, 1);\n },\n\n twoSidedDifferenceOfProportions: function twoSidedDifferenceOfProportions(p1, n1, p2, n2) {\n var z = differenceOfProportions(p1, n1, p2, n2);\n return jStat.ztest(z, 2);\n }\n});\n\n}(jStat, Math));\njStat.models = (function(){\n function sub_regress(exog) {\n var var_count = exog[0].length;\n var modelList = jStat.arange(var_count).map(function(endog_index) {\n var exog_index =\n jStat.arange(var_count).filter(function(i){return i!==endog_index});\n return ols(jStat.col(exog, endog_index).map(function(x){ return x[0] }),\n jStat.col(exog, exog_index))\n });\n return modelList;\n }\n\n // do OLS model regress\n // exog have include const columns ,it will not generate it .In fact, exog is\n // \"design matrix\" look at\n //https://en.wikipedia.org/wiki/Design_matrix\n function ols(endog, exog) {\n var nobs = endog.length;\n var df_model = exog[0].length - 1;\n var df_resid = nobs-df_model - 1;\n var coef = jStat.lstsq(exog, endog);\n var predict =\n jStat.multiply(exog, coef.map(function(x) { return [x] }))\n .map(function(p) { return p[0] });\n var resid = jStat.subtract(endog, predict);\n var ybar = jStat.mean(endog);\n // constant cause problem\n // var SST = jStat.sum(endog.map(function(y) {\n // return Math.pow(y-ybar,2);\n // }));\n var SSE = jStat.sum(predict.map(function(f) {\n return Math.pow(f - ybar, 2);\n }));\n var SSR = jStat.sum(endog.map(function(y, i) {\n return Math.pow(y - predict[i], 2);\n }));\n var SST = SSE + SSR;\n var R2 = (SSE / SST);\n return {\n exog:exog,\n endog:endog,\n nobs:nobs,\n df_model:df_model,\n df_resid:df_resid,\n coef:coef,\n predict:predict,\n resid:resid,\n ybar:ybar,\n SST:SST,\n SSE:SSE,\n SSR:SSR,\n R2:R2\n };\n }\n\n // H0: b_I=0\n // H1: b_I!=0\n function t_test(model) {\n var subModelList = sub_regress(model.exog);\n //var sigmaHat=jStat.stdev(model.resid);\n var sigmaHat = Math.sqrt(model.SSR / (model.df_resid));\n var seBetaHat = subModelList.map(function(mod) {\n var SST = mod.SST;\n var R2 = mod.R2;\n return sigmaHat / Math.sqrt(SST * (1 - R2));\n });\n var tStatistic = model.coef.map(function(coef, i) {\n return (coef - 0) / seBetaHat[i];\n });\n var pValue = tStatistic.map(function(t) {\n var leftppf = jStat.studentt.cdf(t, model.df_resid);\n return (leftppf > 0.5 ? 1 - leftppf : leftppf) * 2;\n });\n var c = jStat.studentt.inv(0.975, model.df_resid);\n var interval95 = model.coef.map(function(coef, i) {\n var d = c * seBetaHat[i];\n return [coef - d, coef + d];\n })\n return {\n se: seBetaHat,\n t: tStatistic,\n p: pValue,\n sigmaHat: sigmaHat,\n interval95: interval95\n };\n }\n\n function F_test(model) {\n var F_statistic =\n (model.R2 / model.df_model) / ((1 - model.R2) / model.df_resid);\n var fcdf = function(x, n1, n2) {\n return jStat.beta.cdf(x / (n2 / n1 + x), n1 / 2, n2 / 2)\n }\n var pvalue = 1 - fcdf(F_statistic, model.df_model, model.df_resid);\n return { F_statistic: F_statistic, pvalue: pvalue };\n }\n\n function ols_wrap(endog, exog) {\n var model = ols(endog,exog);\n var ttest = t_test(model);\n var ftest = F_test(model);\n // Provide the Wherry / Ezekiel / McNemar / Cohen Adjusted R^2\n // Which matches the 'adjusted R^2' provided by R's lm package\n var adjust_R2 =\n 1 - (1 - model.R2) * ((model.nobs - 1) / (model.df_resid));\n model.t = ttest;\n model.f = ftest;\n model.adjust_R2 = adjust_R2;\n return model;\n }\n\n return { ols: ols_wrap };\n})();\n//To regress, simply build X matrix\n//(append column of 1's) using\n//buildxmatrix and build the Y\n//matrix using buildymatrix\n//(simply the transpose)\n//and run regress.\n\n\n\n//Regressions\n\njStat.extend({\n buildxmatrix: function buildxmatrix(){\n //Parameters will be passed in as such\n //(array1,array2,array3,...)\n //as (x1,x2,x3,...)\n //needs to be (1,x1,x2,x3,...)\n var matrixRows = new Array(arguments.length);\n for(var i=0;i<arguments.length;i++){\n var array = [1];\n matrixRows[i]= array.concat(arguments[i]);\n }\n return jStat(matrixRows);\n\n },\n\n builddxmatrix: function builddxmatrix() {\n //Paramters will be passed in as such\n //([array1,array2,...]\n var matrixRows = new Array(arguments[0].length);\n for(var i=0;i<arguments[0].length;i++){\n var array = [1]\n matrixRows[i]= array.concat(arguments[0][i]);\n }\n return jStat(matrixRows);\n\n },\n\n buildjxmatrix: function buildjxmatrix(jMat) {\n //Builds from jStat Matrix\n var pass = new Array(jMat.length)\n for(var i=0;i<jMat.length;i++){\n pass[i] = jMat[i];\n }\n return jStat.builddxmatrix(pass);\n\n },\n\n buildymatrix: function buildymatrix(array){\n return jStat(array).transpose();\n },\n\n buildjymatrix: function buildjymatrix(jMat){\n return jMat.transpose();\n },\n\n matrixmult: function matrixmult(A,B){\n var i, j, k, result, sum;\n if (A.cols() == B.rows()) {\n if(B.rows()>1){\n result = [];\n for (i = 0; i < A.rows(); i++) {\n result[i] = [];\n for (j = 0; j < B.cols(); j++) {\n sum = 0;\n for (k = 0; k < A.cols(); k++) {\n sum += A.toArray()[i][k] * B.toArray()[k][j];\n }\n result[i][j] = sum;\n }\n }\n return jStat(result);\n }\n result = [];\n for (i = 0; i < A.rows(); i++) {\n result[i] = [];\n for (j = 0; j < B.cols(); j++) {\n sum = 0;\n for (k = 0; k < A.cols(); k++) {\n sum += A.toArray()[i][k] * B.toArray()[j];\n }\n result[i][j] = sum;\n }\n }\n return jStat(result);\n }\n },\n\n //regress and regresst to be fixed\n\n regress: function regress(jMatX,jMatY){\n //print(\"regressin!\");\n //print(jMatX.toArray());\n var innerinv = jStat.xtranspxinv(jMatX);\n //print(innerinv);\n var xtransp = jMatX.transpose();\n var next = jStat.matrixmult(jStat(innerinv),xtransp);\n return jStat.matrixmult(next,jMatY);\n\n },\n\n regresst: function regresst(jMatX,jMatY,sides){\n var beta = jStat.regress(jMatX,jMatY);\n\n var compile = {};\n compile.anova = {};\n var jMatYBar = jStat.jMatYBar(jMatX, beta);\n compile.yBar = jMatYBar;\n var yAverage = jMatY.mean();\n compile.anova.residuals = jStat.residuals(jMatY, jMatYBar);\n\n compile.anova.ssr = jStat.ssr(jMatYBar, yAverage);\n compile.anova.msr = compile.anova.ssr / (jMatX[0].length - 1);\n\n compile.anova.sse = jStat.sse(jMatY, jMatYBar);\n compile.anova.mse =\n compile.anova.sse / (jMatY.length - (jMatX[0].length - 1) - 1);\n\n compile.anova.sst = jStat.sst(jMatY, yAverage);\n compile.anova.mst = compile.anova.sst / (jMatY.length - 1);\n\n compile.anova.r2 = 1 - (compile.anova.sse / compile.anova.sst);\n if (compile.anova.r2 < 0) compile.anova.r2 = 0;\n\n compile.anova.fratio = compile.anova.msr / compile.anova.mse;\n compile.anova.pvalue =\n jStat.anovaftest(compile.anova.fratio,\n jMatX[0].length - 1,\n jMatY.length - (jMatX[0].length - 1) - 1);\n\n compile.anova.rmse = Math.sqrt(compile.anova.mse);\n\n compile.anova.r2adj = 1 - (compile.anova.mse / compile.anova.mst);\n if (compile.anova.r2adj < 0) compile.anova.r2adj = 0;\n\n compile.stats = new Array(jMatX[0].length);\n var covar = jStat.xtranspxinv(jMatX);\n var sds, ts, ps;\n\n for(var i=0; i<beta.length;i++){\n sds=Math.sqrt(compile.anova.mse * Math.abs(covar[i][i]));\n ts= Math.abs(beta[i] / sds);\n ps= jStat.ttest(ts, jMatY.length - jMatX[0].length - 1, sides);\n\n compile.stats[i]=[beta[i], sds, ts, ps];\n }\n\n compile.regress = beta;\n return compile;\n },\n\n xtranspx: function xtranspx(jMatX){\n return jStat.matrixmult(jMatX.transpose(),jMatX);\n },\n\n\n xtranspxinv: function xtranspxinv(jMatX){\n var inner = jStat.matrixmult(jMatX.transpose(),jMatX);\n var innerinv = jStat.inv(inner);\n return innerinv;\n },\n\n jMatYBar: function jMatYBar(jMatX, beta) {\n var yBar = jStat.matrixmult(jMatX, beta);\n return new jStat(yBar);\n },\n\n residuals: function residuals(jMatY, jMatYBar) {\n return jStat.matrixsubtract(jMatY, jMatYBar);\n },\n\n ssr: function ssr(jMatYBar, yAverage) {\n var ssr = 0;\n for(var i = 0; i < jMatYBar.length; i++) {\n ssr += Math.pow(jMatYBar[i] - yAverage, 2);\n }\n return ssr;\n },\n\n sse: function sse(jMatY, jMatYBar) {\n var sse = 0;\n for(var i = 0; i < jMatY.length; i++) {\n sse += Math.pow(jMatY[i] - jMatYBar[i], 2);\n }\n return sse;\n },\n\n sst: function sst(jMatY, yAverage) {\n var sst = 0;\n for(var i = 0; i < jMatY.length; i++) {\n sst += Math.pow(jMatY[i] - yAverage, 2);\n }\n return sst;\n },\n\n matrixsubtract: function matrixsubtract(A,B){\n var ans = new Array(A.length);\n for(var i=0;i<A.length;i++){\n ans[i] = new Array(A[i].length);\n for(var j=0;j<A[i].length;j++){\n ans[i][j]=A[i][j]-B[i][j];\n }\n }\n return jStat(ans);\n }\n});\n // Make it compatible with previous version.\n jStat.jStat = jStat;\n\n return jStat;\n});\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\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 * 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 */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\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 */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\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 * 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 */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\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 Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\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 baseSlice = require('./_baseSlice');\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 */\nfunction 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\nmodule.exports = castSlice;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\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 */\nfunction 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\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\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 */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar 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/**\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 */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\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 to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\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/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\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 */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar 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/**\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 */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\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 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 asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\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 */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\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","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\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 rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\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 */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar 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. */\nvar rsApos = \"['\\u2019]\",\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. */\nvar 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\n/** Used to match complex or compound words. */\nvar 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/**\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 */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\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 */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\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 */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\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 deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\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 */\nvar reComboMark = RegExp(rsCombo, 'g');\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 */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\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","/**\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","/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\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 '<p>' + func(text) + '</p>';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '<p>fred, barney, & pebbles</p>'\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('<body>');\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('<b><%- value %></b>');\n * compiled({ 'value': '<script>' });\n * // => '<b><script></b>'\n *\n * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the internal `print` function in \"evaluate\" delimiters.\n * var compiled = _.template('<% print(\"hello \" + user); %>!');\n * compiled({ 'user': 'barney' });\n * // => 'hello barney!'\n *\n * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n * // Disable support by replacing the \"interpolate\" delimiter.\n * var compiled = _.template('hello ${ user }!');\n * compiled({ 'user': 'pebbles' });\n * // => 'hello pebbles!'\n *\n * // Use backslashes to treat delimiters as plain text.\n * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n * compiled({ 'value': 'ignored' });\n * // => '<%- value %>'\n *\n * // Use the `imports` option to import `jQuery` as `jq`.\n * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n * compiled(data);\n * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n *\n * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n * compiled.source;\n * // => function(data) {\n * // var __t, __p = '';\n * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n * // return __p;\n * // }\n *\n * // Use custom template delimiters.\n * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n * var compiled = _.template('hello {{ user }}!');\n * compiled({ 'user': 'mustache' });\n * // => 'hello mustache!'\n *\n * // Use the `source` property to inline compiled templates for meaningful\n * // line numbers in error messages and stack traces.\n * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n * var JST = {\\\n * \"main\": ' + _.template(mainText).source + '\\\n * };\\\n * ');\n */\n function template(string, options, guard) {\n // Based on John Resig's `tmpl` implementation\n // (http://ejohn.org/blog/javascript-micro-templating/)\n // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n var settings = lodash.templateSettings;\n\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n importsKeys = keys(imports),\n importsValues = baseValues(imports, importsKeys);\n\n var isEscaping,\n isEvaluating,\n index = 0,\n interpolate = options.interpolate || reNoMatch,\n source = \"__p += '\";\n\n // Compile the regexp to match each delimiter.\n var reDelimiters = RegExp(\n (options.escape || reNoMatch).source + '|' +\n interpolate.source + '|' +\n (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n (options.evaluate || reNoMatch).source + '|$'\n , 'g');\n\n // Use a sourceURL for easier debugging.\n // The sourceURL gets injected into the source that's eval-ed, so be careful\n // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in\n // and escape the comment, thus injecting code that gets evaled.\n var sourceURL = '//# sourceURL=' +\n (hasOwnProperty.call(options, 'sourceURL')\n ? (options.sourceURL + '').replace(/\\s/g, ' ')\n : ('lodash.templateSources[' + (++templateCounter) + ']')\n ) + '\\n';\n\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n\n // Escape characters that can't be included in string literals.\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n // Replace delimiters with snippets.\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n\n // The JS engine embedded in Adobe products needs `match` returned in\n // order to produce the correct `offset` value.\n return match;\n });\n\n source += \"';\\n\";\n\n // If `variable` is not specified wrap a with-statement around the generated\n // code to add the data object to the top of the scope chain.\n var variable = hasOwnProperty.call(options, 'variable') && options.variable;\n if (!variable) {\n source = 'with (obj) {\\n' + source + '\\n}\\n';\n }\n // Throw an error if a forbidden character was found in `variable`, to prevent\n // potential command injection attacks.\n else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n\n // Cleanup code by stripping empty strings.\n source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n .replace(reEmptyStringMiddle, '$1')\n .replace(reEmptyStringTrailing, '$1;');\n\n // Frame code as the function body.\n source = 'function(' + (variable || 'obj') + ') {\\n' +\n (variable\n ? ''\n : 'obj || (obj = {});\\n'\n ) +\n \"var __t, __p = ''\" +\n (isEscaping\n ? ', __e = _.escape'\n : ''\n ) +\n (isEvaluating\n ? ', __j = Array.prototype.join;\\n' +\n \"function print() { __p += __j.call(arguments, '') }\\n\"\n : ';\\n'\n ) +\n source +\n 'return __p\\n}';\n\n var result = attempt(function() {\n return Function(importsKeys, sourceURL + 'return ' + source)\n .apply(undefined, importsValues);\n });\n\n // Provide the compiled function's source by its `toString` method or\n // the `source` property as a convenience for inlining compiled templates.\n result.source = source;\n if (isError(result)) {\n throw result;\n }\n return result;\n }\n\n /**\n * Converts `string`, as a whole, to lower case just like\n * [String#toLowerCase](https://mdn.io/toLowerCase).\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 * _.toLower('--Foo-Bar--');\n * // => '--foo-bar--'\n *\n * _.toLower('fooBar');\n * // => 'foobar'\n *\n * _.toLower('__FOO_BAR__');\n * // => '__foo_bar__'\n */\n function toLower(value) {\n return toString(value).toLowerCase();\n }\n\n /**\n * Converts `string`, as a whole, to upper case just like\n * [String#toUpperCase](https://mdn.io/toUpperCase).\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 upper cased string.\n * @example\n *\n * _.toUpper('--foo-bar--');\n * // => '--FOO-BAR--'\n *\n * _.toUpper('fooBar');\n * // => 'FOOBAR'\n *\n * _.toUpper('__foo_bar__');\n * // => '__FOO_BAR__'\n */\n function toUpper(value) {\n return toString(value).toUpperCase();\n }\n\n /**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\n function trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n }\n\n /**\n * Removes trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimEnd(' abc ');\n * // => ' abc'\n *\n * _.trimEnd('-_-abc-_-', '_-');\n * // => '-_-abc'\n */\n function trimEnd(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.slice(0, trimmedEndIndex(string) + 1);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n\n return castSlice(strSymbols, 0, end).join('');\n }\n\n /**\n * Removes leading whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimStart(' abc ');\n * // => 'abc '\n *\n * _.trimStart('-_-abc-_-', '_-');\n * // => 'abc-_-'\n */\n function trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrimStart, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n start = charsStartIndex(strSymbols, stringToArray(chars));\n\n return castSlice(strSymbols, start).join('');\n }\n\n /**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\n function truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n }\n\n /**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&`, `<`, `>`, `"`, and `'` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n }\n\n /**\n * Converts `string`, as space separated words, to upper 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 upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\n var upperCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n });\n\n /**\n * Converts the first character of `string` to upper 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 * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\n var upperFirst = createCaseFirst('toUpperCase');\n\n /**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n function words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\n var attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n });\n\n /**\n * Binds methods of an object to the object itself, overwriting the existing\n * method.\n *\n * **Note:** This method doesn't set the \"length\" property of bound functions.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Object} object The object to bind and assign the bound methods to.\n * @param {...(string|string[])} methodNames The object method names to bind.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var view = {\n * 'label': 'docs',\n * 'click': function() {\n * console.log('clicked ' + this.label);\n * }\n * };\n *\n * _.bindAll(view, ['click']);\n * jQuery(element).on('click', view.click);\n * // => Logs 'clicked docs' when clicked.\n */\n var bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n });\n\n /**\n * Creates a function that iterates over `pairs` and invokes the corresponding\n * function of the first predicate to return truthy. The predicate-function\n * pairs are invoked with the `this` binding and arguments of the created\n * function.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Array} pairs The predicate-function pairs.\n * @returns {Function} Returns the new composite function.\n * @example\n *\n * var func = _.cond([\n * [_.matches({ 'a': 1 }), _.constant('matches A')],\n * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n * [_.stubTrue, _.constant('no match')]\n * ]);\n *\n * func({ 'a': 1, 'b': 2 });\n * // => 'matches A'\n *\n * func({ 'a': 0, 'b': 1 });\n * // => 'matches B'\n *\n * func({ 'a': '1', 'b': '2' });\n * // => 'no match'\n */\n function cond(pairs) {\n var length = pairs == null ? 0 : pairs.length,\n toIteratee = getIteratee();\n\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n }\n\n /**\n * Creates a function that invokes the predicate properties of `source` with\n * the corresponding property values of a given object, returning `true` if\n * all predicates return truthy, else `false`.\n *\n * **Note:** The created function is equivalent to `_.conformsTo` with\n * `source` partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 2, 'b': 1 },\n * { 'a': 1, 'b': 2 }\n * ];\n *\n * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n * // => [{ 'a': 1, 'b': 2 }]\n */\n function conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n }\n\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 */\n function constant(value) {\n return function() {\n return value;\n };\n }\n\n /**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\n function defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n }\n\n /**\n * Creates a function that returns the result of invoking the given functions\n * with the `this` binding of the created function, where each successive\n * invocation is supplied the return value of the previous.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flowRight\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flow([_.add, square]);\n * addSquare(1, 2);\n * // => 9\n */\n var flow = createFlow();\n\n /**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\n var flowRight = createFlow(true);\n\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 */\n function identity(value) {\n return value;\n }\n\n /**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\n function iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\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 * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between the\n * value at `path` of a given object to `srcValue`, returning `true` if the\n * object value is equivalent, else `false`.\n *\n * **Note:** Partial comparisons will match empty array and empty object\n * `srcValue` values against any array or object value, respectively. See\n * `_.isEqual` for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Util\n * @param {Array|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 * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.find(objects, _.matchesProperty('a', 4));\n * // => { 'a': 4, 'b': 5, 'c': 6 }\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that invokes the method at `path` of a given object.\n * Any additional arguments are provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': _.constant(2) } },\n * { 'a': { 'b': _.constant(1) } }\n * ];\n *\n * _.map(objects, _.method('a.b'));\n * // => [2, 1]\n *\n * _.map(objects, _.method(['a', 'b']));\n * // => [2, 1]\n */\n var method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * The opposite of `_.method`; this method creates a function that invokes\n * the method at a given path of `object`. Any additional arguments are\n * provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Object} object The object to query.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var array = _.times(3, _.constant),\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n * // => [2, 0]\n */\n var methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\n function mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n if (options == null &&\n !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n }\n\n /**\n * Reverts the `_` variable to its previous value and returns a reference to\n * the `lodash` function.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @returns {Function} Returns the `lodash` function.\n * @example\n *\n * var lodash = _.noConflict();\n */\n function noConflict() {\n if (root._ === this) {\n root._ = oldDash;\n }\n return this;\n }\n\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 */\n function noop() {\n // No operation performed.\n }\n\n /**\n * Creates a function that gets the argument at index `n`. If `n` is negative,\n * the nth argument from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [n=0] The index of the argument to return.\n * @returns {Function} Returns the new pass-thru function.\n * @example\n *\n * var func = _.nthArg(1);\n * func('a', 'b', 'c', 'd');\n * // => 'b'\n *\n * var func = _.nthArg(-2);\n * func('a', 'b', 'c', 'd');\n * // => 'c'\n */\n function nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n }\n\n /**\n * Creates a function that invokes `iteratees` with the arguments it receives\n * and returns their results.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to invoke.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.over([Math.max, Math.min]);\n *\n * func(1, 2, 3, 4);\n * // => [4, 1]\n */\n var over = createOver(arrayMap);\n\n /**\n * Creates a function that checks if **all** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overEvery([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => false\n *\n * func(NaN);\n * // => false\n */\n var overEvery = createOver(arrayEvery);\n\n /**\n * Creates a function that checks if **any** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overSome([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => true\n *\n * func(NaN);\n * // => false\n *\n * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])\n * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])\n */\n var overSome = createOver(arraySome);\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 */\n function property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n }\n\n /**\n * The opposite of `_.property`; this method creates a function that returns\n * the value at a given path of `object`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var array = [0, 1, 2],\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n * // => [2, 0]\n */\n function propertyOf(object) {\n return function(path) {\n return object == null ? undefined : baseGet(object, path);\n };\n }\n\n /**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\n var range = createRange();\n\n /**\n * This method is like `_.range` except that it populates values in\n * descending order.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.range\n * @example\n *\n * _.rangeRight(4);\n * // => [3, 2, 1, 0]\n *\n * _.rangeRight(-4);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 5);\n * // => [4, 3, 2, 1]\n *\n * _.rangeRight(0, 20, 5);\n * // => [15, 10, 5, 0]\n *\n * _.rangeRight(0, -4, -1);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.rangeRight(0);\n * // => []\n */\n var rangeRight = createRange(true);\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 */\n function stubArray() {\n return [];\n }\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 */\n function stubFalse() {\n return false;\n }\n\n /**\n * This method returns a new empty object.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Object} Returns the new empty object.\n * @example\n *\n * var objects = _.times(2, _.stubObject);\n *\n * console.log(objects);\n * // => [{}, {}]\n *\n * console.log(objects[0] === objects[1]);\n * // => false\n */\n function stubObject() {\n return {};\n }\n\n /**\n * This method returns an empty string.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {string} Returns the empty string.\n * @example\n *\n * _.times(2, _.stubString);\n * // => ['', '']\n */\n function stubString() {\n return '';\n }\n\n /**\n * This method returns `true`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `true`.\n * @example\n *\n * _.times(2, _.stubTrue);\n * // => [true, true]\n */\n function stubTrue() {\n return true;\n }\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 */\n function 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 = getIteratee(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\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 */\n function toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n }\n\n /**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\n function uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Adds two numbers.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {number} augend The first number in an addition.\n * @param {number} addend The second number in an addition.\n * @returns {number} Returns the total.\n * @example\n *\n * _.add(6, 4);\n * // => 10\n */\n var add = createMathOperation(function(augend, addend) {\n return augend + addend;\n }, 0);\n\n /**\n * Computes `number` rounded up to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round up.\n * @param {number} [precision=0] The precision to round up to.\n * @returns {number} Returns the rounded up number.\n * @example\n *\n * _.ceil(4.006);\n * // => 5\n *\n * _.ceil(6.004, 2);\n * // => 6.01\n *\n * _.ceil(6040, -2);\n * // => 6100\n */\n var ceil = createRound('ceil');\n\n /**\n * Divide two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} dividend The first number in a division.\n * @param {number} divisor The second number in a division.\n * @returns {number} Returns the quotient.\n * @example\n *\n * _.divide(6, 4);\n * // => 1.5\n */\n var divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n }, 1);\n\n /**\n * Computes `number` rounded down to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round down.\n * @param {number} [precision=0] The precision to round down to.\n * @returns {number} Returns the rounded down number.\n * @example\n *\n * _.floor(4.006);\n * // => 4\n *\n * _.floor(0.046, 2);\n * // => 0.04\n *\n * _.floor(4060, -2);\n * // => 4000\n */\n var floor = createRound('floor');\n\n /**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\n function max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n }\n\n /**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\n function maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, getIteratee(iteratee, 2), baseGt)\n : undefined;\n }\n\n /**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\n function mean(array) {\n return baseMean(array, identity);\n }\n\n /**\n * This method is like `_.mean` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be averaged.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the mean.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.meanBy(objects, function(o) { return o.n; });\n * // => 5\n *\n * // The `_.property` iteratee shorthand.\n * _.meanBy(objects, 'n');\n * // => 5\n */\n function meanBy(array, iteratee) {\n return baseMean(array, getIteratee(iteratee, 2));\n }\n\n /**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\n function min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n }\n\n /**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\n function minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, getIteratee(iteratee, 2), baseLt)\n : undefined;\n }\n\n /**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\n var multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n }, 1);\n\n /**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\n var round = createRound('round');\n\n /**\n * Subtract two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {number} minuend The first number in a subtraction.\n * @param {number} subtrahend The second number in a subtraction.\n * @returns {number} Returns the difference.\n * @example\n *\n * _.subtract(6, 4);\n * // => 2\n */\n var subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n }, 0);\n\n /**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\n function sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n }\n\n /**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\n function sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, getIteratee(iteratee, 2))\n : 0;\n }\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return wrapped values in chain sequences.\n lodash.after = after;\n lodash.ary = ary;\n lodash.assign = assign;\n lodash.assignIn = assignIn;\n lodash.assignInWith = assignInWith;\n lodash.assignWith = assignWith;\n lodash.at = at;\n lodash.before = before;\n lodash.bind = bind;\n lodash.bindAll = bindAll;\n lodash.bindKey = bindKey;\n lodash.castArray = castArray;\n lodash.chain = chain;\n lodash.chunk = chunk;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.cond = cond;\n lodash.conforms = conforms;\n lodash.constant = constant;\n lodash.countBy = countBy;\n lodash.create = create;\n lodash.curry = curry;\n lodash.curryRight = curryRight;\n lodash.debounce = debounce;\n lodash.defaults = defaults;\n lodash.defaultsDeep = defaultsDeep;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.difference = difference;\n lodash.differenceBy = differenceBy;\n lodash.differenceWith = differenceWith;\n lodash.drop = drop;\n lodash.dropRight = dropRight;\n lodash.dropRightWhile = dropRightWhile;\n lodash.dropWhile = dropWhile;\n lodash.fill = fill;\n lodash.filter = filter;\n lodash.flatMap = flatMap;\n lodash.flatMapDeep = flatMapDeep;\n lodash.flatMapDepth = flatMapDepth;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.flattenDepth = flattenDepth;\n lodash.flip = flip;\n lodash.flow = flow;\n lodash.flowRight = flowRight;\n lodash.fromPairs = fromPairs;\n lodash.functions = functions;\n lodash.functionsIn = functionsIn;\n lodash.groupBy = groupBy;\n lodash.initial = initial;\n lodash.intersection = intersection;\n lodash.intersectionBy = intersectionBy;\n lodash.intersectionWith = intersectionWith;\n lodash.invert = invert;\n lodash.invertBy = invertBy;\n lodash.invokeMap = invokeMap;\n lodash.iteratee = iteratee;\n lodash.keyBy = keyBy;\n lodash.keys = keys;\n lodash.keysIn = keysIn;\n lodash.map = map;\n lodash.mapKeys = mapKeys;\n lodash.mapValues = mapValues;\n lodash.matches = matches;\n lodash.matchesProperty = matchesProperty;\n lodash.memoize = memoize;\n lodash.merge = merge;\n lodash.mergeWith = mergeWith;\n lodash.method = method;\n lodash.methodOf = methodOf;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.nthArg = nthArg;\n lodash.omit = omit;\n lodash.omitBy = omitBy;\n lodash.once = once;\n lodash.orderBy = orderBy;\n lodash.over = over;\n lodash.overArgs = overArgs;\n lodash.overEvery = overEvery;\n lodash.overSome = overSome;\n lodash.partial = partial;\n lodash.partialRight = partialRight;\n lodash.partition = partition;\n lodash.pick = pick;\n lodash.pickBy = pickBy;\n lodash.property = property;\n lodash.propertyOf = propertyOf;\n lodash.pull = pull;\n lodash.pullAll = pullAll;\n lodash.pullAllBy = pullAllBy;\n lodash.pullAllWith = pullAllWith;\n lodash.pullAt = pullAt;\n lodash.range = range;\n lodash.rangeRight = rangeRight;\n lodash.rearg = rearg;\n lodash.reject = reject;\n lodash.remove = remove;\n lodash.rest = rest;\n lodash.reverse = reverse;\n lodash.sampleSize = sampleSize;\n lodash.set = set;\n lodash.setWith = setWith;\n lodash.shuffle = shuffle;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.sortedUniq = sortedUniq;\n lodash.sortedUniqBy = sortedUniqBy;\n lodash.split = split;\n lodash.spread = spread;\n lodash.tail = tail;\n lodash.take = take;\n lodash.takeRight = takeRight;\n lodash.takeRightWhile = takeRightWhile;\n lodash.takeWhile = takeWhile;\n lodash.tap = tap;\n lodash.throttle = throttle;\n lodash.thru = thru;\n lodash.toArray = toArray;\n lodash.toPairs = toPairs;\n lodash.toPairsIn = toPairsIn;\n lodash.toPath = toPath;\n lodash.toPlainObject = toPlainObject;\n lodash.transform = transform;\n lodash.unary = unary;\n lodash.union = union;\n lodash.unionBy = unionBy;\n lodash.unionWith = unionWith;\n lodash.uniq = uniq;\n lodash.uniqBy = uniqBy;\n lodash.uniqWith = uniqWith;\n lodash.unset = unset;\n lodash.unzip = unzip;\n lodash.unzipWith = unzipWith;\n lodash.update = update;\n lodash.updateWith = updateWith;\n lodash.values = values;\n lodash.valuesIn = valuesIn;\n lodash.without = without;\n lodash.words = words;\n lodash.wrap = wrap;\n lodash.xor = xor;\n lodash.xorBy = xorBy;\n lodash.xorWith = xorWith;\n lodash.zip = zip;\n lodash.zipObject = zipObject;\n lodash.zipObjectDeep = zipObjectDeep;\n lodash.zipWith = zipWith;\n\n // Add aliases.\n lodash.entries = toPairs;\n lodash.entriesIn = toPairsIn;\n lodash.extend = assignIn;\n lodash.extendWith = assignInWith;\n\n // Add methods to `lodash.prototype`.\n mixin(lodash, lodash);\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return unwrapped values in chain sequences.\n lodash.add = add;\n lodash.attempt = attempt;\n lodash.camelCase = camelCase;\n lodash.capitalize = capitalize;\n lodash.ceil = ceil;\n lodash.clamp = clamp;\n lodash.clone = clone;\n lodash.cloneDeep = cloneDeep;\n lodash.cloneDeepWith = cloneDeepWith;\n lodash.cloneWith = cloneWith;\n lodash.conformsTo = conformsTo;\n lodash.deburr = deburr;\n lodash.defaultTo = defaultTo;\n lodash.divide = divide;\n lodash.endsWith = endsWith;\n lodash.eq = eq;\n lodash.escape = escape;\n lodash.escapeRegExp = escapeRegExp;\n lodash.every = every;\n lodash.find = find;\n lodash.findIndex = findIndex;\n lodash.findKey = findKey;\n lodash.findLast = findLast;\n lodash.findLastIndex = findLastIndex;\n lodash.findLastKey = findLastKey;\n lodash.floor = floor;\n lodash.forEach = forEach;\n lodash.forEachRight = forEachRight;\n lodash.forIn = forIn;\n lodash.forInRight = forInRight;\n lodash.forOwn = forOwn;\n lodash.forOwnRight = forOwnRight;\n lodash.get = get;\n lodash.gt = gt;\n lodash.gte = gte;\n lodash.has = has;\n lodash.hasIn = hasIn;\n lodash.head = head;\n lodash.identity = identity;\n lodash.includes = includes;\n lodash.indexOf = indexOf;\n lodash.inRange = inRange;\n lodash.invoke = invoke;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isArrayBuffer = isArrayBuffer;\n lodash.isArrayLike = isArrayLike;\n lodash.isArrayLikeObject = isArrayLikeObject;\n lodash.isBoolean = isBoolean;\n lodash.isBuffer = isBuffer;\n lodash.isDate = isDate;\n lodash.isElement = isElement;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isEqualWith = isEqualWith;\n lodash.isError = isError;\n lodash.isFinite = isFinite;\n lodash.isFunction = isFunction;\n lodash.isInteger = isInteger;\n lodash.isLength = isLength;\n lodash.isMap = isMap;\n lodash.isMatch = isMatch;\n lodash.isMatchWith = isMatchWith;\n lodash.isNaN = isNaN;\n lodash.isNative = isNative;\n lodash.isNil = isNil;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber;\n lodash.isObject = isObject;\n lodash.isObjectLike = isObjectLike;\n lodash.isPlainObject = isPlainObject;\n lodash.isRegExp = isRegExp;\n lodash.isSafeInteger = isSafeInteger;\n lodash.isSet = isSet;\n lodash.isString = isString;\n lodash.isSymbol = isSymbol;\n lodash.isTypedArray = isTypedArray;\n lodash.isUndefined = isUndefined;\n lodash.isWeakMap = isWeakMap;\n lodash.isWeakSet = isWeakSet;\n lodash.join = join;\n lodash.kebabCase = kebabCase;\n lodash.last = last;\n lodash.lastIndexOf = lastIndexOf;\n lodash.lowerCase = lowerCase;\n lodash.lowerFirst = lowerFirst;\n lodash.lt = lt;\n lodash.lte = lte;\n lodash.max = max;\n lodash.maxBy = maxBy;\n lodash.mean = mean;\n lodash.meanBy = meanBy;\n lodash.min = min;\n lodash.minBy = minBy;\n lodash.stubArray = stubArray;\n lodash.stubFalse = stubFalse;\n lodash.stubObject = stubObject;\n lodash.stubString = stubString;\n lodash.stubTrue = stubTrue;\n lodash.multiply = multiply;\n lodash.nth = nth;\n lodash.noConflict = noConflict;\n lodash.noop = noop;\n lodash.now = now;\n lodash.pad = pad;\n lodash.padEnd = padEnd;\n lodash.padStart = padStart;\n lodash.parseInt = parseInt;\n lodash.random = random;\n lodash.reduce = reduce;\n lodash.reduceRight = reduceRight;\n lodash.repeat = repeat;\n lodash.replace = replace;\n lodash.result = result;\n lodash.round = round;\n lodash.runInContext = runInContext;\n lodash.sample = sample;\n lodash.size = size;\n lodash.snakeCase = snakeCase;\n lodash.some = some;\n lodash.sortedIndex = sortedIndex;\n lodash.sortedIndexBy = sortedIndexBy;\n lodash.sortedIndexOf = sortedIndexOf;\n lodash.sortedLastIndex = sortedLastIndex;\n lodash.sortedLastIndexBy = sortedLastIndexBy;\n lodash.sortedLastIndexOf = sortedLastIndexOf;\n lodash.startCase = startCase;\n lodash.startsWith = startsWith;\n lodash.subtract = subtract;\n lodash.sum = sum;\n lodash.sumBy = sumBy;\n lodash.template = template;\n lodash.times = times;\n lodash.toFinite = toFinite;\n lodash.toInteger = toInteger;\n lodash.toLength = toLength;\n lodash.toLower = toLower;\n lodash.toNumber = toNumber;\n lodash.toSafeInteger = toSafeInteger;\n lodash.toString = toString;\n lodash.toUpper = toUpper;\n lodash.trim = trim;\n lodash.trimEnd = trimEnd;\n lodash.trimStart = trimStart;\n lodash.truncate = truncate;\n lodash.unescape = unescape;\n lodash.uniqueId = uniqueId;\n lodash.upperCase = upperCase;\n lodash.upperFirst = upperFirst;\n\n // Add aliases.\n lodash.each = forEach;\n lodash.eachRight = forEachRight;\n lodash.first = head;\n\n mixin(lodash, (function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }()), { 'chain': false });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The semantic version number.\n *\n * @static\n * @memberOf _\n * @type {string}\n */\n lodash.VERSION = VERSION;\n\n // Assign default placeholders.\n arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {\n lodash[methodName].placeholder = lodash;\n });\n\n // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.\n arrayEach(['drop', 'take'], function(methodName, index) {\n LazyWrapper.prototype[methodName] = function(n) {\n n = n === undefined ? 1 : nativeMax(toInteger(n), 0);\n\n var result = (this.__filtered__ && !index)\n ? new LazyWrapper(this)\n : this.clone();\n\n if (result.__filtered__) {\n result.__takeCount__ = nativeMin(n, result.__takeCount__);\n } else {\n result.__views__.push({\n 'size': nativeMin(n, MAX_ARRAY_LENGTH),\n 'type': methodName + (result.__dir__ < 0 ? 'Right' : '')\n });\n }\n return result;\n };\n\n LazyWrapper.prototype[methodName + 'Right'] = function(n) {\n return this.reverse()[methodName](n).reverse();\n };\n });\n\n // Add `LazyWrapper` methods that accept an `iteratee` value.\n arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {\n var type = index + 1,\n isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n\n LazyWrapper.prototype[methodName] = function(iteratee) {\n var result = this.clone();\n result.__iteratees__.push({\n 'iteratee': getIteratee(iteratee, 3),\n 'type': type\n });\n result.__filtered__ = result.__filtered__ || isFilter;\n return result;\n };\n });\n\n // Add `LazyWrapper` methods for `_.head` and `_.last`.\n arrayEach(['head', 'last'], function(methodName, index) {\n var takeName = 'take' + (index ? 'Right' : '');\n\n LazyWrapper.prototype[methodName] = function() {\n return this[takeName](1).value()[0];\n };\n });\n\n // Add `LazyWrapper` methods for `_.initial` and `_.tail`.\n arrayEach(['initial', 'tail'], function(methodName, index) {\n var dropName = 'drop' + (index ? '' : 'Right');\n\n LazyWrapper.prototype[methodName] = function() {\n return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n };\n });\n\n LazyWrapper.prototype.compact = function() {\n return this.filter(identity);\n };\n\n LazyWrapper.prototype.find = function(predicate) {\n return this.filter(predicate).head();\n };\n\n LazyWrapper.prototype.findLast = function(predicate) {\n return this.reverse().find(predicate);\n };\n\n LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n if (typeof path == 'function') {\n return new LazyWrapper(this);\n }\n return this.map(function(value) {\n return baseInvoke(value, path, args);\n });\n });\n\n LazyWrapper.prototype.reject = function(predicate) {\n return this.filter(negate(getIteratee(predicate)));\n };\n\n LazyWrapper.prototype.slice = function(start, end) {\n start = toInteger(start);\n\n var result = this;\n if (result.__filtered__ && (start > 0 || end < 0)) {\n return new LazyWrapper(result);\n }\n if (start < 0) {\n result = result.takeRight(-start);\n } else if (start) {\n result = result.drop(start);\n }\n if (end !== undefined) {\n end = toInteger(end);\n result = end < 0 ? result.dropRight(-end) : result.take(end - start);\n }\n return result;\n };\n\n LazyWrapper.prototype.takeRightWhile = function(predicate) {\n return this.reverse().takeWhile(predicate).reverse();\n };\n\n LazyWrapper.prototype.toArray = function() {\n return this.take(MAX_ARRAY_LENGTH);\n };\n\n // Add `LazyWrapper` methods to `lodash.prototype`.\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),\n isTaker = /^(?:head|last)$/.test(methodName),\n lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],\n retUnwrapped = isTaker || /^find/.test(methodName);\n\n if (!lodashFunc) {\n return;\n }\n lodash.prototype[methodName] = function() {\n var value = this.__wrapped__,\n args = isTaker ? [1] : arguments,\n isLazy = value instanceof LazyWrapper,\n iteratee = args[0],\n useLazy = isLazy || isArray(value);\n\n var interceptor = function(value) {\n var result = lodashFunc.apply(lodash, arrayPush([value], args));\n return (isTaker && chainAll) ? result[0] : result;\n };\n\n if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {\n // Avoid lazy use if the iteratee has a \"length\" value other than `1`.\n isLazy = useLazy = false;\n }\n var chainAll = this.__chain__,\n isHybrid = !!this.__actions__.length,\n isUnwrapped = retUnwrapped && !chainAll,\n onlyLazy = isLazy && !isHybrid;\n\n if (!retUnwrapped && useLazy) {\n value = onlyLazy ? value : new LazyWrapper(this);\n var result = func.apply(value, args);\n result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });\n return new LodashWrapper(result, chainAll);\n }\n if (isUnwrapped && onlyLazy) {\n return func.apply(this, args);\n }\n result = this.thru(interceptor);\n return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;\n };\n });\n\n // Add `Array` methods to `lodash.prototype`.\n arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n var func = arrayProto[methodName],\n chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value) {\n return func.apply(isArray(value) ? value : [], args);\n });\n };\n });\n\n // Map minified method names to their real names.\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var lodashFunc = lodash[methodName];\n if (lodashFunc) {\n var key = lodashFunc.name + '';\n if (!hasOwnProperty.call(realNames, key)) {\n realNames[key] = [];\n }\n realNames[key].push({ 'name': methodName, 'func': lodashFunc });\n }\n });\n\n realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{\n 'name': 'wrapper',\n 'func': undefined\n }];\n\n // Add methods to `LazyWrapper`.\n LazyWrapper.prototype.clone = lazyClone;\n LazyWrapper.prototype.reverse = lazyReverse;\n LazyWrapper.prototype.value = lazyValue;\n\n // Add chain sequence methods to the `lodash` wrapper.\n lodash.prototype.at = wrapperAt;\n lodash.prototype.chain = wrapperChain;\n lodash.prototype.commit = wrapperCommit;\n lodash.prototype.next = wrapperNext;\n lodash.prototype.plant = wrapperPlant;\n lodash.prototype.reverse = wrapperReverse;\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n\n // Add lazy aliases.\n lodash.prototype.first = lodash.prototype.head;\n\n if (symIterator) {\n lodash.prototype[symIterator] = wrapperToIterator;\n }\n return lodash;\n });\n\n /*--------------------------------------------------------------------------*/\n\n // Export lodash.\n var _ = runInContext();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Expose Lodash on the global object to prevent errors when Lodash is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n // Use `_.noConflict` to remove Lodash from the global object.\n root._ = _;\n\n // Define as an anonymous module so, through path mapping, it can be\n // referenced as the \"underscore\" module.\n define(function() {\n return _;\n });\n }\n // Check for `exports` after `define` in case a build optimizer adds it.\n else if (freeModule) {\n // Export for Node.js.\n (freeModule.exports = _)._ = _;\n // Export for CommonJS support.\n freeExports._ = _;\n }\n else {\n // Export to the global object.\n root._ = _;\n }\n}.call(this));\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","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 baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper 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 * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(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{4}))$/,\n obsOffsets = {\n UT: 0,\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 };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._x = 0;\n this._y = 0;\n this._z = null;\n this._A = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._B = null;\nPromise._C = null;\nPromise._D = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._y === 3) {\n self = self._z;\n }\n if (Promise._B) {\n Promise._B(self);\n }\n if (self._y === 0) {\n if (self._x === 0) {\n self._x = 1;\n self._A = deferred;\n return;\n }\n if (self._x === 1) {\n self._x = 2;\n self._A = [self._A, deferred];\n return;\n }\n self._A.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._y === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._y === 1) {\n resolve(deferred.promise, self._z);\n } else {\n reject(deferred.promise, self._z);\n }\n return;\n }\n var ret = tryCallOne(cb, self._z);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._y = 3;\n self._z = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._y = 1;\n self._z = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._y = 2;\n self._z = newValue;\n if (Promise._C) {\n Promise._C(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._x === 1) {\n handle(self, self._A);\n self._A = null;\n }\n if (self._x === 2) {\n for (var i = 0; i < self._A.length; i++) {\n handle(self, self._A[i]);\n }\n self._A = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._D);\n p._y = 1;\n p._z = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nvar iterableToArray = function (iterable) {\n if (typeof Array.from === 'function') {\n // ES2015+, iterables exist\n iterableToArray = Array.from;\n return Array.from(iterable);\n }\n\n // ES5, only arrays and array-likes exist\n iterableToArray = function (x) { return Array.prototype.slice.call(x); };\n return Array.prototype.slice.call(iterable);\n}\n\nPromise.all = function (arr) {\n var args = iterableToArray(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._y === 3) {\n val = val._z;\n }\n if (val._y === 1) return res(i, val._z);\n if (val._y === 2) reject(val._z);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nfunction onSettledFulfill(value) {\n return { status: 'fulfilled', value: value };\n}\nfunction onSettledReject(reason) {\n return { status: 'rejected', reason: reason };\n}\nfunction mapAllSettled(item) {\n if(item && (typeof item === 'object' || typeof item === 'function')){\n if(item instanceof Promise && item.then === Promise.prototype.then){\n return item.then(onSettledFulfill, onSettledReject);\n }\n var then = item.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(item)).then(onSettledFulfill, onSettledReject)\n }\n }\n\n return onSettledFulfill(item);\n}\nPromise.allSettled = function (iterable) {\n return Promise.all(iterableToArray(iterable).map(mapAllSettled));\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n iterableToArray(values).forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\nfunction getAggregateError(errors){\n if(typeof AggregateError === 'function'){\n return new AggregateError(errors,'All promises were rejected');\n }\n\n var error = new Error('All promises were rejected');\n\n error.name = 'AggregateError';\n error.errors = errors;\n\n return error;\n}\n\nPromise.any = function promiseAny(values) {\n return new Promise(function(resolve, reject) {\n var promises = iterableToArray(values);\n var hasResolved = false;\n var rejectionReasons = [];\n\n function resolveOnce(value) {\n if (!hasResolved) {\n hasResolved = true;\n resolve(value);\n }\n }\n\n function rejectionCheck(reason) {\n rejectionReasons.push(reason);\n\n if (rejectionReasons.length === promises.length) {\n reject(getAggregateError(rejectionReasons));\n }\n }\n\n if(promises.length === 0){\n reject(getAggregateError(rejectionReasons));\n } else {\n promises.forEach(function(value){\n Promise.resolve(value).then(resolveOnce, rejectionCheck);\n });\n }\n });\n};\n","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._B = null;\n Promise._C = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._B = function (promise) {\n if (\n promise._y === 2 && // IS REJECTED\n rejections[promise._E]\n ) {\n if (rejections[promise._E].logged) {\n onHandled(promise._E);\n } else {\n clearTimeout(rejections[promise._E].timeout);\n }\n delete rejections[promise._E];\n }\n };\n Promise._C = function (promise, err) {\n if (promise._x === 0) { // not yet handled\n promise._E = id++;\n rejections[promise._E] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._E),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"checked\", \"disabled\", \"defaultChecked\", \"type\", \"onChange\"];\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nexport var Checkbox = /*#__PURE__*/forwardRef(function (props, ref) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-checkbox' : _props$prefixCls,\n className = props.className,\n style = props.style,\n checked = props.checked,\n disabled = props.disabled,\n _props$defaultChecked = props.defaultChecked,\n defaultChecked = _props$defaultChecked === void 0 ? false : _props$defaultChecked,\n _props$type = props.type,\n type = _props$type === void 0 ? 'checkbox' : _props$type,\n onChange = props.onChange,\n inputProps = _objectWithoutProperties(props, _excluded);\n var inputRef = useRef(null);\n var _useMergedState = useMergedState(defaultChecked, {\n value: checked\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n rawValue = _useMergedState2[0],\n setRawValue = _useMergedState2[1];\n useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n },\n blur: function blur() {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.blur();\n },\n input: inputRef.current\n };\n });\n var classString = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), rawValue), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n var handleChange = function handleChange(e) {\n if (disabled) {\n return;\n }\n if (!('checked' in props)) {\n setRawValue(e.target.checked);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange({\n target: _objectSpread(_objectSpread({}, props), {}, {\n type: type,\n checked: e.target.checked\n }),\n stopPropagation: function stopPropagation() {\n e.stopPropagation();\n },\n preventDefault: function preventDefault() {\n e.preventDefault();\n },\n nativeEvent: e.nativeEvent\n });\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classString,\n style: style\n }, /*#__PURE__*/React.createElement(\"input\", _extends({}, inputProps, {\n className: \"\".concat(prefixCls, \"-input\"),\n ref: inputRef,\n onChange: handleChange,\n disabled: disabled,\n checked: !!rawValue,\n type: type\n })), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }));\n});\nexport default Checkbox;","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}\nexport function isFormInstance(form) {\n return form && !!form._init;\n}","/* eslint no-console:0 */\n\nimport {\n ValidateError,\n ValidateOption,\n RuleValuePackage,\n InternalRuleItem,\n SyncErrorType,\n RuleType,\n Value,\n Values,\n} from './interface';\n\nconst formatRegExp = /%[sdj%]/g;\n\ndeclare var ASYNC_VALIDATOR_NO_WARNING;\n\nexport let warning: (type: string, errors: SyncErrorType[]) => void = () => {};\n\n// don't print warning message when in production env or node runtime\nif (\n typeof process !== 'undefined' &&\n process.env &&\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n) {\n warning = (type, errors) => {\n if (\n typeof console !== 'undefined' &&\n console.warn &&\n typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined'\n ) {\n if (errors.every(e => typeof e === 'string')) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nexport function convertFieldsError(\n errors: ValidateError[],\n): Record<string, ValidateError[]> {\n if (!errors || !errors.length) return null;\n const fields = {};\n errors.forEach(error => {\n const field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nexport function format(\n template: ((...args: any[]) => string) | string,\n ...args: any[]\n): string {\n let i = 0;\n const len = args.length;\n if (typeof template === 'function') {\n return template.apply(null, args);\n }\n if (typeof template === 'string') {\n let str = template.replace(formatRegExp, x => {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return (Number(args[i++]) as unknown) as string;\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return template;\n}\n\nfunction isNativeStringType(type: string) {\n return (\n type === 'string' ||\n type === 'url' ||\n type === 'hex' ||\n type === 'email' ||\n type === 'date' ||\n type === 'pattern'\n );\n}\n\nexport function isEmptyValue(value: Value, type?: string) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\n\nexport function isEmptyObject(obj: object) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n const results: ValidateError[] = [];\n let total = 0;\n const arrLength = arr.length;\n\n function count(errors: ValidateError[]) {\n results.push(...(errors || []));\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(a => {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n let index = 0;\n const arrLength = arr.length;\n\n function next(errors: ValidateError[]) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n const original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr: Record<string, RuleValuePackage[]>) {\n const ret: RuleValuePackage[] = [];\n Object.keys(objArr).forEach(k => {\n ret.push(...(objArr[k] || []));\n });\n return ret;\n}\n\nexport class AsyncValidationError extends Error {\n errors: ValidateError[];\n fields: Record<string, ValidateError[]>;\n\n constructor(\n errors: ValidateError[],\n fields: Record<string, ValidateError[]>,\n ) {\n super('Async Validation Error');\n this.errors = errors;\n this.fields = fields;\n }\n}\n\ntype ValidateFunc = (\n data: RuleValuePackage,\n doIt: (errors: ValidateError[]) => void,\n) => void;\n\nexport function asyncMap(\n objArr: Record<string, RuleValuePackage[]>,\n option: ValidateOption,\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n source: Values,\n): Promise<Values> {\n if (option.first) {\n const pending = new Promise<Values>((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n callback(errors);\n return errors.length\n ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n : resolve(source);\n };\n const flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n pending.catch(e => e);\n return pending;\n }\n const firstFields =\n option.firstFields === true\n ? Object.keys(objArr)\n : option.firstFields || [];\n\n const objArrKeys = Object.keys(objArr);\n const objArrLength = objArrKeys.length;\n let total = 0;\n const results: ValidateError[] = [];\n const pending = new Promise<Values>((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length\n ? reject(\n new AsyncValidationError(results, convertFieldsError(results)),\n )\n : resolve(source);\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n objArrKeys.forEach(key => {\n const arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(e => e);\n return pending;\n}\n\nfunction isErrorObj(\n obj: ValidateError | string | (() => string),\n): obj is ValidateError {\n return !!(obj && (obj as ValidateError).message !== undefined);\n}\n\nfunction getValue(value: Values, path: string[]) {\n let v = value;\n for (let i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n v = v[path[i]];\n }\n return v;\n}\n\nexport function complementError(rule: InternalRuleItem, source: Values) {\n return (oe: ValidateError | (() => string) | string): ValidateError => {\n let fieldValue;\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[(oe as any).field || rule.fullField];\n }\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue,\n field: ((oe as unknown) as ValidateError).field || rule.fullField,\n };\n };\n}\n\nexport function deepMerge<T extends object>(target: T, source: Partial<T>): T {\n if (source) {\n for (const s in source) {\n if (source.hasOwnProperty(s)) {\n const value = source[s];\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = {\n ...target[s],\n ...value,\n };\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}\n","import { ExecuteRule } from '../interface';\nimport { format, isEmptyValue } from '../util';\n\nconst required: ExecuteRule = (rule, value, source, errors, options, type) => {\n if (\n rule.required &&\n (!source.hasOwnProperty(rule.field) ||\n isEmptyValue(value, type || rule.type))\n ) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\n\nexport default required;\n","// https://github.com/kevva/url-regex/blob/master/index.js\nlet urlReg: RegExp;\n\nexport default () => {\n if (urlReg) {\n return urlReg;\n }\n\n const word = '[a-fA-F\\\\d:]';\n const b = options =>\n options && options.includeBoundaries\n ? `(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))`\n : '';\n\n const v4 =\n '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\n const v6seg = '[a-fA-F\\\\d]{1,4}';\n const v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`\n .replace(/\\s*\\/\\/.*$/gm, '')\n .replace(/\\n/g, '')\n .trim();\n\n // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\n const v4exact = new RegExp(`^${v4}$`);\n const v6exact = new RegExp(`^${v6}$`);\n\n const ip = options =>\n options && options.exact\n ? v46Exact\n : new RegExp(\n `(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(\n options,\n )})`,\n 'g',\n );\n\n ip.v4 = (options?) =>\n options && options.exact\n ? v4exact\n : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\n ip.v6 = (options?) =>\n options && options.exact\n ? v6exact\n : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\n const protocol = `(?:(?:[a-z]+:)?//)`;\n const auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n const ipv4 = ip.v4().source;\n const ipv6 = ip.v6().source;\n const host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n const domain =\n '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n const tld = `(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))`;\n const port = '(?::\\\\d{2,5})?';\n const path = '(?:[/?#][^\\\\s\"]*)?';\n const regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ipv4}|${ipv6}|${host}${domain}${tld})${port}${path}`;\n urlReg = new RegExp(`(?:^${regex}$)`, 'i');\n return urlReg;\n};\n","import { ExecuteRule, Value } from '../interface';\nimport { format } from '../util';\nimport required from './required';\nimport getUrlRegex from './url';\n/* eslint max-len:0 */\n\nconst pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,\n};\n\nconst types = {\n integer(value: Value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float(value: Value) {\n return types.number(value) && !types.integer(value);\n },\n array(value: Value) {\n return Array.isArray(value);\n },\n regexp(value: Value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date(value: Value) {\n return (\n typeof value.getTime === 'function' &&\n typeof value.getMonth === 'function' &&\n typeof value.getYear === 'function' &&\n !isNaN(value.getTime())\n );\n },\n number(value: Value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object(value: Value) {\n return typeof value === 'object' && !types.array(value);\n },\n method(value: Value) {\n return typeof value === 'function';\n },\n email(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 320 &&\n !!value.match(pattern.email)\n );\n },\n url(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 2048 &&\n !!value.match(getUrlRegex())\n );\n },\n hex(value: Value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n },\n};\n\nconst type: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n const custom = [\n 'integer',\n 'float',\n 'array',\n 'regexp',\n 'object',\n 'method',\n 'email',\n 'number',\n 'date',\n 'url',\n 'hex',\n ];\n const ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n // straight typeof check\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n};\n\nexport default type;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteRule = (rule, value, source, errors, options) => {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(\n format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')),\n );\n }\n};\n\nexport default enumerable;\n","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n required,\n whitespace,\n type,\n range,\n enum: enumRule,\n pattern,\n};\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nconst whitespace: ExecuteRule = (rule, value, source, errors, options) => {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\n\nexport default whitespace;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst range: ExecuteRule = (rule, value, source, errors, options) => {\n const len = typeof rule.len === 'number';\n const min = typeof rule.min === 'number';\n const max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n let val = value;\n let key = null;\n const num = typeof value === 'number';\n const str = typeof value === 'string';\n const arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(\n format(options.messages[key].range, rule.fullField, rule.min, rule.max),\n );\n }\n};\n\nexport default range;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst pattern: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n } else if (typeof rule.pattern === 'string') {\n const _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n }\n }\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst type: ExecuteValidator = (rule, value, callback, source, options) => {\n const ruleType = rule.type;\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default type;\n","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\nimport any from './any';\n\nexport default {\n string,\n method,\n number,\n boolean,\n regexp,\n integer,\n float,\n array,\n object,\n enum: enumValidator,\n pattern,\n date,\n url: type,\n hex: type,\n email: type,\n required,\n any,\n};\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst string: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default string;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst method: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default method;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst number: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default number;\n","import { isEmptyValue } from '../util';\nimport rules from '../rule';\nimport { ExecuteValidator } from '../interface';\n\nconst boolean: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default boolean;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst regexp: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default regexp;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst integer: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default integer;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst floatFn: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default floatFn;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule/index';\n\nconst array: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default array;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst object: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default object;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteValidator = (\n rule,\n value,\n callback,\n source,\n options,\n) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default enumerable;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst pattern: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst date: ExecuteValidator = (rule, value, callback, source, options) => {\n // console.log('integer rule called %j', rule);\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'date')) {\n let dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default date;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\n\nconst required: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\n\nexport default required;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst any: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n};\n\nexport default any;\n","import { InternalValidateMessages } from './interface';\n\nexport function newMessages(): InternalValidateMessages {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid',\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s',\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters',\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s',\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length',\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s',\n },\n clone() {\n const cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n },\n };\n}\n\nexport const messages = newMessages();\n","import {\n format,\n complementError,\n asyncMap,\n warning,\n deepMerge,\n convertFieldsError,\n} from './util';\nimport validators from './validator/index';\nimport { messages as defaultMessages, newMessages } from './messages';\nimport {\n InternalRuleItem,\n InternalValidateMessages,\n Rule,\n RuleItem,\n Rules,\n ValidateCallback,\n ValidateMessages,\n ValidateOption,\n Values,\n RuleValuePackage,\n ValidateError,\n ValidateFieldsError,\n SyncErrorType,\n ValidateResult,\n} from './interface';\n\nexport * from './interface';\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nclass Schema {\n // ========================= Static =========================\n static register = function register(type: string, validator) {\n if (typeof validator !== 'function') {\n throw new Error(\n 'Cannot register a validator by type, validator is not a function',\n );\n }\n validators[type] = validator;\n };\n\n static warning = warning;\n\n static messages = defaultMessages;\n\n static validators = validators;\n\n // ======================== Instance ========================\n rules: Record<string, RuleItem[]> = null;\n _messages: InternalValidateMessages = defaultMessages;\n\n constructor(descriptor: Rules) {\n this.define(descriptor);\n }\n\n define(rules: Rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n\n Object.keys(rules).forEach(name => {\n const item: Rule = rules[name];\n this.rules[name] = Array.isArray(item) ? item : [item];\n });\n }\n\n messages(messages?: ValidateMessages) {\n if (messages) {\n this._messages = deepMerge(newMessages(), messages);\n }\n return this._messages;\n }\n\n validate(\n source: Values,\n option?: ValidateOption,\n callback?: ValidateCallback,\n ): Promise<Values>;\n validate(source: Values, callback: ValidateCallback): Promise<Values>;\n validate(source: Values): Promise<Values>;\n\n validate(source_: Values, o: any = {}, oc: any = () => {}): Promise<Values> {\n let source: Values = source_;\n let options: ValidateOption = o;\n let callback: ValidateCallback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n return Promise.resolve(source);\n }\n\n function complete(results: (ValidateError | ValidateError[])[]) {\n let errors: ValidateError[] = [];\n let fields: ValidateFieldsError = {};\n\n function add(e: ValidateError | ValidateError[]) {\n if (Array.isArray(e)) {\n errors = errors.concat(...e);\n } else {\n errors.push(e);\n }\n }\n\n for (let i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n (callback as (\n errors: ValidateError[],\n fields: ValidateFieldsError,\n ) => void)(errors, fields);\n }\n }\n\n if (options.messages) {\n let messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n\n const series: Record<string, RuleValuePackage[]> = {};\n const keys = options.keys || Object.keys(this.rules);\n keys.forEach(z => {\n const arr = this.rules[z];\n let value = source[z];\n arr.forEach(r => {\n let rule: InternalRuleItem = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = { ...source };\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule,\n };\n } else {\n rule = { ...rule };\n }\n\n // Fill validator. Skip if nothing need to validate\n rule.validator = this.getValidationMethod(rule);\n if (!rule.validator) {\n return;\n }\n\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = this.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule,\n value,\n source,\n field: z,\n });\n });\n });\n const errorFields = {};\n return asyncMap(\n series,\n options,\n (data, doIt) => {\n const rule = data.rule;\n let deep =\n (rule.type === 'object' || rule.type === 'array') &&\n (typeof rule.fields === 'object' ||\n typeof rule.defaultField === 'object');\n deep = deep && (rule.required || (!rule.required && data.value));\n rule.field = data.field;\n\n function addFullField(key: string, schema: RuleItem) {\n return {\n ...schema,\n fullField: `${rule.fullField}.${key}`,\n fullFields: rule.fullFields ? [...rule.fullFields, key] : [key],\n };\n }\n\n function cb(e: SyncErrorType | SyncErrorType[] = []) {\n let errorList = Array.isArray(e) ? e : [e];\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n }\n\n // Fill error info\n let filledErrors = errorList.map(complementError(rule, source));\n\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = []\n .concat(rule.message)\n .map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [\n options.error(\n rule,\n format(options.messages.required, rule.field),\n ),\n ];\n }\n return doIt(filledErrors);\n }\n\n let fieldsSchema: Record<string, Rule> = {};\n if (rule.defaultField) {\n Object.keys(data.value).map(key => {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n fieldsSchema = {\n ...fieldsSchema,\n ...data.rule.fields,\n };\n\n const paredFieldsSchema: Record<string, RuleItem[]> = {};\n\n Object.keys(fieldsSchema).forEach(field => {\n const fieldSchema = fieldsSchema[field];\n const fieldSchemaList = Array.isArray(fieldSchema)\n ? fieldSchema\n : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(\n addFullField.bind(null, field),\n );\n });\n const schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, errs => {\n const finalErrors = [];\n if (filledErrors && filledErrors.length) {\n finalErrors.push(...filledErrors);\n }\n if (errs && errs.length) {\n finalErrors.push(...errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n let res: ValidateResult;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n console.error?.(error);\n // rethrow to report error\n if (!options.suppressValidatorError) {\n setTimeout(() => {\n throw error;\n }, 0);\n }\n cb(error.message);\n }\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(\n typeof rule.message === 'function'\n ? rule.message(rule.fullField || rule.field)\n : rule.message || `${rule.fullField || rule.field} fails`,\n );\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && (res as Promise<void>).then) {\n (res as Promise<void>).then(\n () => cb(),\n e => cb(e),\n );\n }\n },\n results => {\n complete(results);\n },\n source,\n );\n }\n\n getType(rule: InternalRuleItem) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (\n typeof rule.validator !== 'function' &&\n rule.type &&\n !validators.hasOwnProperty(rule.type)\n ) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n }\n\n getValidationMethod(rule: InternalRuleItem) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n const keys = Object.keys(rule);\n const messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || undefined;\n }\n}\n\nexport default Schema;\n","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from \"./messages\";\nimport { merge } from \"rc-util/es/utils/set\";\n\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n delete cloneRule.ruleIndex;\n\n // https://github.com/ant-design/ant-design/issues/40497#issuecomment-1422282378\n AsyncValidator.warning = function () {\n return void 0;\n };\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n }\n\n // We should special handle array validate\n subRuleField = null;\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = merge(defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 10;\n _context2.next = 13;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n case 13:\n _context2.next = 18;\n break;\n case 15:\n _context2.prev = 15;\n _context2.t0 = _context2[\"catch\"](10);\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n case 18:\n if (!(!result.length && subRuleField)) {\n _context2.next = 23;\n break;\n }\n _context2.next = 21;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n case 21:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n case 23:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n case 26:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[10, 15]]);\n }));\n return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.');\n\n // Fill rule with context\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n });\n\n // Replace validator if needed\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false;\n\n // Wrap callback only accept when promise not provided\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n };\n\n // Get promise\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n if (w1) {\n return 1;\n }\n return -1;\n });\n\n // Do validate rules\n var summaryPromise;\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n case 5:\n errors = _context.sent;\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n case 9:\n i += 1;\n _context.next = 1;\n break;\n case 12:\n /* eslint-enable */\n\n resolve([]);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n }\n\n // Internal catch error to avoid console error log.\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n return errors;\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n count += 1;\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport getValue from \"rc-util/es/utils/get\";\nimport setValue from \"rc-util/es/utils/set\";\nimport { toArray } from \"./typeUtil\";\nexport { getValue, setValue };\n\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\n\n/**\n * Check if `namePathList` includes `namePath`.\n * @param namePathList A list of `InternalNamePath[]`\n * @param namePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function containsNamePath(namePathList, namePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(namePath, path, partialMatch);\n });\n}\n\n/**\n * Check if `namePath` is super set or equal of `subNamePath`.\n * @param namePath A list of `InternalNamePath[]`\n * @param subNamePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function matchNamePath(namePath, subNamePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!namePath || !subNamePath) {\n return false;\n }\n if (!partialMatch && namePath.length !== subNamePath.length) {\n return false;\n }\n return subNamePath.every(function (nameUnit, i) {\n return namePath[i] === nameUnit;\n });\n}\n\n// Like `shallowEqual`, but we not check the data which may cause re-render\n\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n if (!source && target || source && !target) {\n return false;\n }\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n return event;\n}\n\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n return array;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport { toArray } from \"./utils/typeUtil\";\nimport { validateRules } from \"./utils/validateUtil\";\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from \"./utils/valueUtil\";\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n return prevValue !== nextValue;\n}\n\n// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n var _super = _createSuper(Field);\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n\n // Register on init\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n resetCount: 0\n });\n _defineProperty(_assertThisInitialized(_this), \"cancelRegisterFunc\", null);\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n _defineProperty(_assertThisInitialized(_this), \"touched\", false);\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n _defineProperty(_assertThisInitialized(_this), \"dirty\", false);\n _defineProperty(_assertThisInitialized(_this), \"validatePromise\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"prevValidating\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"errors\", EMPTY_ERRORS);\n _defineProperty(_assertThisInitialized(_this), \"warnings\", EMPTY_ERRORS);\n _defineProperty(_assertThisInitialized(_this), \"cancelRegister\", function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n _this.cancelRegisterFunc = null;\n });\n // ================================== Utils ==================================\n _defineProperty(_assertThisInitialized(_this), \"getNamePath\", function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n });\n _defineProperty(_assertThisInitialized(_this), \"getRules\", function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n return rule;\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"refresh\", function () {\n if (!_this.mounted) return;\n\n /**\n * Clean up current node.\n */\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n });\n // Event should only trigger when meta changed\n _defineProperty(_assertThisInitialized(_this), \"metaCache\", null);\n _defineProperty(_assertThisInitialized(_this), \"triggerMetaEvent\", function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n if (onMetaChange) {\n var _meta = _objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n });\n if (!isEqual(_this.metaCache, _meta)) {\n onMetaChange(_meta);\n }\n _this.metaCache = _meta;\n } else {\n _this.metaCache = null;\n }\n });\n // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n _defineProperty(_assertThisInitialized(_this), \"onStoreChange\", function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n var namePath = _this.getNamePath();\n var prevValue = _this.getValue(prevStore);\n var curValue = _this.getValue(store);\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n\n // `setFieldsValue` is a quick access to update related status\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n }\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = undefined;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n _this.refresh();\n return;\n }\n break;\n\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n case 'remove':\n {\n if (shouldUpdate) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'setField':\n {\n var data = info.data;\n if (namePathMatch) {\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n _this.dirty = true;\n _this.triggerMetaEvent();\n _this.reRender();\n return;\n } else if ('value' in data && containsNamePath(namePathList, namePath, true)) {\n // Contains path with value should also check\n _this.reRender();\n return;\n }\n\n // Handle update by `setField` with `shouldUpdate`\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n return;\n }\n break;\n }\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example <List name=\"list\"><Field name={['list', 0]}></List>\n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n if (shouldUpdate === true) {\n _this.reRender();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"validateRules\", function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n var currentValue = _this.getValue();\n var _ref2 = options || {},\n triggerName = _ref2.triggerName,\n _ref2$validateOnly = _ref2.validateOnly,\n validateOnly = _ref2$validateOnly === void 0 ? false : _ref2$validateOnly;\n\n // Force change to async to avoid rule OOD under renderProps field\n var rootPromise = Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _this$props5, _this$props5$validate, validateFirst, messageVariables, validateDebounce, filteredRules, promise;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (_this.mounted) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\", []);\n case 2:\n _this$props5 = _this.props, _this$props5$validate = _this$props5.validateFirst, validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate, messageVariables = _this$props5.messageVariables, validateDebounce = _this$props5.validateDebounce; // Start validate\n filteredRules = _this.getRules();\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n return rule;\n }).filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n if (!validateTrigger) {\n return true;\n }\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n\n // Wait for debounce. Skip if no `triggerName` since its from `validateFields / submit`\n if (!(validateDebounce && triggerName)) {\n _context.next = 10;\n break;\n }\n _context.next = 8;\n return new Promise(function (resolve) {\n setTimeout(resolve, validateDebounce);\n });\n case 8:\n if (!(_this.validatePromise !== rootPromise)) {\n _context.next = 10;\n break;\n }\n return _context.abrupt(\"return\", []);\n case 10:\n promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n _this.validatePromise = null;\n\n // Get errors & warnings\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref4) {\n var warningOnly = _ref4.rule.warningOnly,\n _ref4$errors = _ref4.errors,\n errors = _ref4$errors === void 0 ? EMPTY_ERRORS : _ref4$errors;\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n _this.triggerMetaEvent();\n _this.reRender();\n }\n });\n return _context.abrupt(\"return\", promise);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n })));\n if (validateOnly) {\n return rootPromise;\n }\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n\n // Force trigger re-render since we need sync renderProps with new meta\n _this.reRender();\n return rootPromise;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldValidating\", function () {\n return !!_this.validatePromise;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldTouched\", function () {\n return _this.touched;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldDirty\", function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n }\n\n // Form set initialValue\n var fieldContext = _this.props.fieldContext;\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n return false;\n });\n _defineProperty(_assertThisInitialized(_this), \"getErrors\", function () {\n return _this.errors;\n });\n _defineProperty(_assertThisInitialized(_this), \"getWarnings\", function () {\n return _this.warnings;\n });\n _defineProperty(_assertThisInitialized(_this), \"isListField\", function () {\n return _this.props.isListField;\n });\n _defineProperty(_assertThisInitialized(_this), \"isList\", function () {\n return _this.props.isList;\n });\n _defineProperty(_assertThisInitialized(_this), \"isPreserve\", function () {\n return _this.props.preserve;\n });\n // ============================= Child Component =============================\n _defineProperty(_assertThisInitialized(_this), \"getMeta\", function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath(),\n validated: _this.validatePromise === null\n };\n return meta;\n });\n // Only return validate child node. If invalidate, will do nothing about field.\n _defineProperty(_assertThisInitialized(_this), \"getOnlyChild\", function (children) {\n // Support render props\n if (typeof children === 'function') {\n var _meta2 = _this.getMeta();\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), _meta2, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n }\n\n // Filed element only\n var childList = toChildrenArray(children);\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n return {\n child: childList[0],\n isFunction: false\n };\n });\n // ============================== Field Control ==============================\n _defineProperty(_assertThisInitialized(_this), \"getValue\", function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n var namePath = _this.getNamePath();\n return getValue(store || getFieldsValue(true), namePath);\n });\n _defineProperty(_assertThisInitialized(_this), \"getControlled\", function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n var namePath = _this.getNamePath();\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n var value = _this.getValue();\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var originTriggerFunc = childProps[trigger];\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value));\n\n // Add trigger\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n _this.triggerMetaEvent();\n var newValue;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n };\n\n // Add validateTrigger\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n }\n\n // Always use latest rules\n var rules = _this.props.rules;\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n });\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n initEntityValue(_assertThisInitialized(_this));\n }\n return _this;\n }\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true;\n\n // Register on init\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n this.cancelRegisterFunc = registerField(this);\n }\n\n // One more render for component in case fields not ready\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction;\n\n // Not need to `cloneElement` since user can handle this in render function self\n var returnChildNode;\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n return Field;\n}(React.Component);\n_defineProperty(Field, \"contextType\", FieldContext);\n_defineProperty(Field, \"defaultProps\", {\n trigger: 'onChange',\n valuePropName: 'value'\n});\nfunction WrapperField(_ref6) {\n var name = _ref6.name,\n restProps = _objectWithoutProperties(_ref6, _excluded);\n var fieldContext = React.useContext(FieldContext);\n var listContext = React.useContext(ListContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n\n // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath,\n isListField: !!listContext\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\nexport default WrapperField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from \"./FieldContext\";\nimport Field from \"./Field\";\nimport { move as _move, getNamePath } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nfunction List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger,\n isListField = _ref.isListField;\n var context = React.useContext(FieldContext);\n var wrapperListContext = React.useContext(ListContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]);\n\n // List context\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]);\n\n // User should not pass `children` as other type.\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n if (source === 'internal') {\n return false;\n }\n return prevValue !== nextValue;\n };\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true,\n isListField: isListField !== null && isListField !== void 0 ? isListField : !!wrapperListContext\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n if (indexSet.size <= 0) {\n return;\n }\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n });\n\n // Trigger store change\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n var newValue = getNewValue();\n\n // Do not handle out of range\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n keyManager.keys = _move(keyManager.keys, from, to);\n\n // Trigger store change\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n if (!Array.isArray(listValue)) {\n listValue = [];\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n}\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n })\n // Magic split\n .join(SPLIT);\n}\n\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n _defineProperty(this, \"kvs\", new Map());\n }\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n }\n\n // Since we only use this in test, let simply realize this\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"name\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from \"./FieldContext\";\nimport { allPromiseFinish } from \"./utils/asyncUtil\";\nimport { merge } from \"rc-util/es/utils/set\";\nimport { defaultValidateMessages } from \"./utils/messages\";\nimport NameMap from \"./utils/NameMap\";\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue } from \"./utils/valueUtil\";\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n _classCallCheck(this, FormStore);\n _defineProperty(this, \"formHooked\", false);\n _defineProperty(this, \"forceRootUpdate\", void 0);\n _defineProperty(this, \"subscribable\", true);\n _defineProperty(this, \"store\", {});\n _defineProperty(this, \"fieldEntities\", []);\n _defineProperty(this, \"initialValues\", {});\n _defineProperty(this, \"callbacks\", {});\n _defineProperty(this, \"validateMessages\", null);\n _defineProperty(this, \"preserve\", null);\n _defineProperty(this, \"lastValidatePromise\", null);\n _defineProperty(this, \"getForm\", function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n });\n // ======================== Internal Hooks ========================\n _defineProperty(this, \"getInternalHooks\", function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n });\n _defineProperty(this, \"useSubscribe\", function (subscribable) {\n _this.subscribable = subscribable;\n });\n /**\n * Record prev Form unmount fieldEntities which config preserve false.\n * This need to be refill with initialValues instead of store value.\n */\n _defineProperty(this, \"prevWithoutPreserves\", null);\n /**\n * First time `setInitialValues` should update store with initial value\n */\n _defineProperty(this, \"setInitialValues\", function (initialValues, init) {\n _this.initialValues = initialValues || {};\n if (init) {\n var _this$prevWithoutPres;\n var nextStore = merge(initialValues, _this.store);\n\n // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n _this.updateStore(nextStore);\n }\n });\n _defineProperty(this, \"destroyForm\", function () {\n var prevWithoutPreserves = new NameMap();\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n _this.prevWithoutPreserves = prevWithoutPreserves;\n });\n _defineProperty(this, \"getInitialValue\", function (namePath) {\n var initValue = getValue(_this.initialValues, namePath);\n\n // Not cloneDeep when without `namePath`\n return namePath.length ? merge(initValue) : initValue;\n });\n _defineProperty(this, \"setCallbacks\", function (callbacks) {\n _this.callbacks = callbacks;\n });\n _defineProperty(this, \"setValidateMessages\", function (validateMessages) {\n _this.validateMessages = validateMessages;\n });\n _defineProperty(this, \"setPreserve\", function (preserve) {\n _this.preserve = preserve;\n });\n // ============================= Watch ============================\n _defineProperty(this, \"watchList\", []);\n _defineProperty(this, \"registerWatch\", function (callback) {\n _this.watchList.push(callback);\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n });\n _defineProperty(this, \"notifyWatch\", function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // No need to cost perf when nothing need to watch\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n var allValues = _this.getFieldsValue(true);\n _this.watchList.forEach(function (callback) {\n callback(values, allValues, namePath);\n });\n }\n });\n // ========================== Dev Warning =========================\n _defineProperty(this, \"timeoutId\", null);\n _defineProperty(this, \"warningUnhooked\", function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n });\n // ============================ Store =============================\n _defineProperty(this, \"updateStore\", function (nextStore) {\n _this.store = nextStore;\n });\n // ============================ Fields ============================\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n _defineProperty(this, \"getFieldEntities\", function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!pure) {\n return _this.fieldEntities;\n }\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n });\n _defineProperty(this, \"getFieldsMap\", function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n return cache;\n });\n _defineProperty(this, \"getFieldEntitiesForNamePathList\", function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n var cache = _this.getFieldsMap(true);\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n });\n _defineProperty(this, \"getFieldsValue\", function (nameList, filterFunc) {\n _this.warningUnhooked();\n\n // Fill args\n var mergedNameList;\n var mergedFilterFunc;\n var mergedStrict;\n if (nameList === true || Array.isArray(nameList)) {\n mergedNameList = nameList;\n mergedFilterFunc = filterFunc;\n } else if (nameList && _typeof(nameList) === 'object') {\n mergedStrict = nameList.strict;\n mergedFilterFunc = nameList.filter;\n }\n if (mergedNameList === true && !mergedFilterFunc) {\n return _this.store;\n }\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(mergedNameList) ? mergedNameList : null);\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _isListField, _ref3;\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n\n // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n if (mergedStrict) {\n var _isList, _ref2;\n if ((_isList = (_ref2 = entity).isList) !== null && _isList !== void 0 && _isList.call(_ref2)) {\n return;\n }\n } else if (!mergedNameList && (_isListField = (_ref3 = entity).isListField) !== null && _isListField !== void 0 && _isListField.call(_ref3)) {\n return;\n }\n if (!mergedFilterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n if (mergedFilterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n });\n _defineProperty(this, \"getFieldValue\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n });\n _defineProperty(this, \"getFieldsError\", function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n });\n _defineProperty(this, \"getFieldError\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.errors;\n });\n _defineProperty(this, \"getFieldWarning\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.warnings;\n });\n _defineProperty(this, \"isFieldsTouched\", function () {\n _this.warningUnhooked();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n var fieldEntities = _this.getFieldEntities(true);\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n };\n\n // ===== Will get fully compare when not config namePathList =====\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n }\n\n // Generate a nest tree for validate\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath();\n\n // Find matched entity and put into list\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n });\n\n // Check if NameMap value is touched\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n var namePathListEntities = map.map(function (_ref4) {\n var value = _ref4.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n });\n _defineProperty(this, \"isFieldTouched\", function (name) {\n _this.warningUnhooked();\n return _this.isFieldsTouched([name]);\n });\n _defineProperty(this, \"isFieldsValidating\", function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntities();\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n });\n _defineProperty(this, \"isFieldValidating\", function (name) {\n _this.warningUnhooked();\n return _this.isFieldsValidating([name]);\n });\n /**\n * Reset Field with field `initialValue` prop.\n * Can pass `entities` or `namePathList` or just nothing.\n */\n _defineProperty(this, \"resetWithFieldInitialValue\", function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n var fieldEntities = _this.getFieldEntities(true);\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath();\n\n // Record only if has `initialValue`\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n });\n\n // Reset\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n var formInitialValue = _this.getInitialValue(namePath);\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath);\n // Set `initialValue`\n if (!info.skipExist || originValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n var requiredFieldEntities;\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n if (records) {\n var _requiredFieldEntitie;\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n resetWithFields(requiredFieldEntities);\n });\n _defineProperty(this, \"resetFields\", function (nameList) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (!nameList) {\n _this.updateStore(merge(_this.initialValues));\n _this.resetWithFieldInitialValue();\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n _this.notifyWatch();\n return;\n }\n\n // Reset by `nameList`\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n _this.notifyWatch(namePathList);\n });\n _defineProperty(this, \"setFields\", function (fields) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n data = _objectWithoutProperties(fieldData, _excluded);\n var namePath = getNamePath(name);\n namePathList.push(namePath);\n\n // Value\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n _this.notifyWatch(namePathList);\n });\n _defineProperty(this, \"getFields\", function () {\n var entities = _this.getFieldEntities(true);\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n });\n // =========================== Observer ===========================\n /**\n * This only trigger when a field is on constructor to avoid we get initialValue too late\n */\n _defineProperty(this, \"initEntityValue\", function (entity) {\n var initialValue = entity.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n });\n _defineProperty(this, \"isMergedPreserve\", function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n });\n _defineProperty(this, \"registerField\", function (entity) {\n _this.fieldEntities.push(entity);\n var namePath = entity.getNamePath();\n _this.notifyWatch([namePath]);\n\n // Set initial values\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n }\n\n // un-register field callback\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n\n // Clean up store value if not preserve\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (\n // Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n\n // Notify that field is unmount\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n });\n\n // Dependencies update\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n _this.notifyWatch([namePath]);\n };\n });\n _defineProperty(this, \"dispatch\", function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n _this.updateValue(namePath, value);\n break;\n }\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n break;\n }\n default:\n // Currently we don't have other action. Do nothing.\n }\n });\n _defineProperty(this, \"notifyObservers\", function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n _this.getFieldEntities().forEach(function (_ref5) {\n var onStoreChange = _ref5.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n });\n /**\n * Notify dependencies children with parent update\n * We need delay to trigger validate in case Field is under render props\n */\n _defineProperty(this, \"triggerDependenciesUpdate\", function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n return childrenFields;\n });\n _defineProperty(this, \"updateValue\", function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.updateStore(setValue(_this.store, namePath, value));\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n _this.notifyWatch([namePath]);\n\n // Dependencies update\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n\n // trigger callback function\n var onValuesChange = _this.callbacks.onValuesChange;\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n });\n // Let all child Field get update.\n _defineProperty(this, \"setFieldsValue\", function (store) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (store) {\n var nextStore = merge(_this.store, store);\n _this.updateStore(nextStore);\n }\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n _this.notifyWatch();\n });\n _defineProperty(this, \"setFieldValue\", function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n });\n _defineProperty(this, \"getDependencyChildrenFields\", function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n fillChildren(rootNamePath);\n return childrenFields;\n });\n _defineProperty(this, \"triggerOnFieldsChange\", function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n if (onFieldsChange) {\n var fields = _this.getFields();\n\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref6) {\n var name = _ref6.name,\n errors = _ref6.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n var changedFields = fields.filter(function (_ref7) {\n var fieldName = _ref7.name;\n return containsNamePath(namePathList, fieldName);\n });\n if (changedFields.length) {\n onFieldsChange(changedFields, fields);\n }\n }\n });\n // =========================== Validate ===========================\n _defineProperty(this, \"validateFields\", function (arg1, arg2) {\n var _options;\n _this.warningUnhooked();\n var nameList;\n var options;\n if (Array.isArray(arg1) || typeof arg1 === 'string' || typeof arg2 === 'string') {\n nameList = arg1;\n options = arg2;\n } else {\n options = arg1;\n }\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n\n // Collect result in promise list\n var promiseList = [];\n\n // We temp save the path which need trigger for `onFieldsChange`\n var TMP_SPLIT = String(Date.now());\n var validateNamePathList = new Set();\n var recursive = (_options = options) === null || _options === void 0 ? void 0 : _options.recursive;\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n\n // Skip if without rule\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n var fieldNamePath = field.getNamePath();\n validateNamePathList.add(fieldNamePath.join(TMP_SPLIT));\n\n // Add field validate rule in to promise list\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath, recursive)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options));\n\n // Wrap promise with field\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n }).catch(function (ruleErrors) {\n var _ruleErrors$forEach;\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref8) {\n var warningOnly = _ref8.rule.warningOnly,\n errors = _ref8.errors;\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise;\n\n // Notify fields with rule that validate has finished and need update\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref9) {\n var name = _ref9.name;\n return name;\n });\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n });\n\n // Do not throw in console\n returnPromise.catch(function (e) {\n return e;\n });\n\n // `validating` changed. Trigger `onFieldsChange`\n var triggerNamePathList = namePathList.filter(function (namePath) {\n return validateNamePathList.has(namePath.join(TMP_SPLIT));\n });\n _this.triggerOnFieldsChange(triggerNamePathList);\n return returnPromise;\n });\n // ============================ Submit ============================\n _defineProperty(this, \"submit\", function () {\n _this.warningUnhooked();\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n });\n this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n var formRef = React.useRef();\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n return [formRef.current];\n}\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n if (count > 0) {\n return;\n }\n if (hasError) {\n reject(results);\n }\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from \"./useForm\";\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport FormContext from \"./FormContext\";\nimport { isSimilar } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var formContext = React.useContext(FormContext);\n\n // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n var _getInternalHooks = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _getInternalHooks.useSubscribe,\n setInitialValues = _getInternalHooks.setInitialValues,\n setCallbacks = _getInternalHooks.setCallbacks,\n setValidateMessages = _getInternalHooks.setValidateMessages,\n setPreserve = _getInternalHooks.setPreserve,\n destroyForm = _getInternalHooks.destroyForm;\n\n // Pass ref with form instance\n React.useImperativeHandle(ref, function () {\n return formInstance;\n });\n\n // Register form into Context\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]);\n\n // Pass props to store\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve);\n\n // Set initial value, init store value when first mount\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n if (!mountRef.current) {\n mountRef.current = true;\n }\n React.useEffect(function () {\n return destroyForm;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n\n // Prepare children by `children` type\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n if (childrenRenderProps) {\n var _values = formInstance.getFieldsValue(true);\n childrenNode = children(_values, formInstance);\n } else {\n childrenNode = children;\n }\n\n // Not use subscribe when using render props\n useSubscribe(!childrenRenderProps);\n\n // Listen if fields provided. We use ref to save prev data here to avoid additional render\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode));\n if (Component === false) {\n return wrapperNode;\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport warning from \"rc-util/es/warning\";\nimport { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport { isFormInstance } from \"./utils/typeUtil\";\nimport { getNamePath, getValue } from \"./utils/valueUtil\";\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\nvar useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {\n var fullyStr = namePath.join('__RC_FIELD_FORM_SPLIT__');\n var nameStrRef = useRef(fullyStr);\n warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');\n} : function () {};\nfunction useWatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var _args$ = args[0],\n dependencies = _args$ === void 0 ? [] : _args$,\n _args$2 = args[1],\n _form = _args$2 === void 0 ? {} : _args$2;\n var options = isFormInstance(_form) ? {\n form: _form\n } : _form;\n var form = options.form;\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init;\n\n // Warning if not exist form instance\n if (process.env.NODE_ENV !== 'production') {\n warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useWatchWarning(namePath);\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n var cancelRegister = registerWatch(function (values, allValues) {\n var newValue = getValue(options.preserve ? allValues : values, namePathRef.current);\n var nextValueStr = stringify(newValue);\n\n // Compare stringify in case it's nest object\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n });\n\n // TODO: We can improve this perf in future\n var initialValue = getValue(options.preserve ? getFieldsValue(true) : getFieldsValue(), namePathRef.current);\n\n // React 18 has the bug that will queue update twice even the value is not changed\n // ref: https://github.com/facebook/react/issues/27213\n if (value !== initialValue) {\n setValue(initialValue);\n }\n return cancelRegister;\n },\n // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isValidForm]);\n return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from \"./Field\";\nimport List from \"./List\";\nimport useForm from \"./useForm\";\nimport FieldForm from \"./Form\";\nimport { FormProvider } from \"./FormContext\";\nimport FieldContext from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport useWatch from \"./useWatch\";\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","export function hasAddon(props) {\n return !!(props.addonBefore || props.addonAfter);\n}\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}\nexport function resolveOnChange(target, e, onChange, targetValue) {\n if (!onChange) {\n return;\n }\n\n var event = e;\n\n if (e.type === 'click') {\n // Clone a new target for event.\n // Avoid the following usage, the setQuery method gets the original value.\n //\n // const [query, setQuery] = React.useState('');\n // <Input\n // allowClear\n // value={query}\n // onChange={(e)=> {\n // setQuery((prevStatus) => e.target.value);\n // }}\n // />\n var currentTarget = target.cloneNode(true); // click clear icon\n\n event = Object.create(e, {\n target: {\n value: currentTarget\n },\n currentTarget: {\n value: currentTarget\n }\n });\n currentTarget.value = '';\n onChange(event);\n return;\n } // Trigger by composition event, this means we need force change the input value\n\n\n if (targetValue !== undefined) {\n event = Object.create(e, {\n target: {\n value: target\n },\n currentTarget: {\n value: target\n }\n });\n target.value = targetValue;\n onChange(event);\n return;\n }\n\n onChange(event);\n}\nexport function triggerFocus(element, option) {\n if (!element) return;\n element.focus(option); // Selection content\n\n var _ref = option || {},\n cursor = _ref.cursor;\n\n if (cursor) {\n var len = element.value.length;\n\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n\n case 'end':\n element.setSelectionRange(len, len);\n break;\n\n default:\n element.setSelectionRange(0, len);\n }\n }\n}\nexport function fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n\n return String(value);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React, { cloneElement, useRef } from 'react';\nimport classNames from 'classnames';\nimport { hasAddon, hasPrefixSuffix } from \"./utils/commonUtils\";\n\nvar BaseInput = function BaseInput(props) {\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n prefix = props.prefix,\n suffix = props.suffix,\n addonBefore = props.addonBefore,\n addonAfter = props.addonAfter,\n className = props.className,\n style = props.style,\n affixWrapperClassName = props.affixWrapperClassName,\n groupClassName = props.groupClassName,\n wrapperClassName = props.wrapperClassName,\n disabled = props.disabled,\n readOnly = props.readOnly,\n focused = props.focused,\n triggerFocus = props.triggerFocus,\n allowClear = props.allowClear,\n value = props.value,\n handleReset = props.handleReset,\n hidden = props.hidden;\n var containerRef = useRef(null);\n\n var onInputClick = function onInputClick(e) {\n var _containerRef$current;\n\n if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(e.target)) {\n triggerFocus === null || triggerFocus === void 0 ? void 0 : triggerFocus();\n }\n }; // ================== Clear Icon ================== //\n\n\n var getClearIcon = function getClearIcon() {\n var _classNames;\n\n if (!allowClear) {\n return null;\n }\n\n var needClear = !disabled && !readOnly && value;\n var clearIconCls = \"\".concat(prefixCls, \"-clear-icon\");\n var iconNode = _typeof(allowClear) === 'object' && allowClear !== null && allowClear !== void 0 && allowClear.clearIcon ? allowClear.clearIcon : '✖';\n return /*#__PURE__*/React.createElement(\"span\", {\n onClick: handleReset // Do not trigger onBlur when clear input\n // https://github.com/ant-design/ant-design/issues/31200\n ,\n onMouseDown: function onMouseDown(e) {\n return e.preventDefault();\n },\n className: classNames(clearIconCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(clearIconCls, \"-hidden\"), !needClear), _defineProperty(_classNames, \"\".concat(clearIconCls, \"-has-suffix\"), !!suffix), _classNames)),\n role: \"button\",\n tabIndex: -1\n }, iconNode);\n };\n\n var element = /*#__PURE__*/cloneElement(inputElement, {\n value: value,\n hidden: hidden\n }); // ================== Prefix & Suffix ================== //\n\n if (hasPrefixSuffix(props)) {\n var _classNames2;\n\n var affixWrapperPrefixCls = \"\".concat(prefixCls, \"-affix-wrapper\");\n var affixWrapperCls = classNames(affixWrapperPrefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-focused\"), focused), _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-readonly\"), readOnly), _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-input-with-clear-btn\"), suffix && allowClear && value), _classNames2), !hasAddon(props) && className, affixWrapperClassName);\n var suffixNode = (suffix || allowClear) && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, getClearIcon(), suffix);\n element = /*#__PURE__*/React.createElement(\"span\", {\n className: affixWrapperCls,\n style: style,\n hidden: !hasAddon(props) && hidden,\n onClick: onInputClick,\n ref: containerRef\n }, prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-prefix\")\n }, prefix), /*#__PURE__*/cloneElement(inputElement, {\n style: null,\n value: value,\n hidden: null\n }), suffixNode);\n } // ================== Addon ================== //\n\n\n if (hasAddon(props)) {\n var wrapperCls = \"\".concat(prefixCls, \"-group\");\n var addonCls = \"\".concat(wrapperCls, \"-addon\");\n var mergedWrapperClassName = classNames(\"\".concat(prefixCls, \"-wrapper\"), wrapperCls, wrapperClassName);\n var mergedGroupClassName = classNames(\"\".concat(prefixCls, \"-group-wrapper\"), className, groupClassName); // Need another wrapper for changing display:table to display:inline-block\n // and put style prop in wrapper\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: mergedGroupClassName,\n style: style,\n hidden: hidden\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: mergedWrapperClassName\n }, addonBefore && /*#__PURE__*/React.createElement(\"span\", {\n className: addonCls\n }, addonBefore), /*#__PURE__*/cloneElement(element, {\n style: null,\n hidden: null\n }), addonAfter && /*#__PURE__*/React.createElement(\"span\", {\n className: addonCls\n }, addonAfter)));\n }\n\n return element;\n};\n\nexport default BaseInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"autoComplete\", \"onChange\", \"onFocus\", \"onBlur\", \"onPressEnter\", \"onKeyDown\", \"prefixCls\", \"disabled\", \"htmlSize\", \"className\", \"maxLength\", \"suffix\", \"showCount\", \"type\", \"inputClassName\"];\nimport React, { useRef, useState, forwardRef, useImperativeHandle, useEffect } from 'react';\nimport BaseInput from \"./BaseInput\";\nimport omit from \"rc-util/es/omit\";\nimport { fixControlledValue, hasAddon, hasPrefixSuffix, resolveOnChange, triggerFocus } from \"./utils/commonUtils\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar Input = /*#__PURE__*/forwardRef(function (props, ref) {\n var autoComplete = props.autoComplete,\n onChange = props.onChange,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onPressEnter = props.onPressEnter,\n onKeyDown = props.onKeyDown,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-input' : _props$prefixCls,\n disabled = props.disabled,\n htmlSize = props.htmlSize,\n className = props.className,\n maxLength = props.maxLength,\n suffix = props.suffix,\n showCount = props.showCount,\n _props$type = props.type,\n type = _props$type === void 0 ? 'text' : _props$type,\n inputClassName = props.inputClassName,\n rest = _objectWithoutProperties(props, _excluded);\n\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n focused = _useState2[0],\n setFocused = _useState2[1];\n\n var inputRef = useRef(null);\n\n var focus = function focus(option) {\n if (inputRef.current) {\n triggerFocus(inputRef.current, option);\n }\n };\n\n useImperativeHandle(ref, function () {\n return {\n focus: focus,\n blur: function blur() {\n var _inputRef$current;\n\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();\n },\n setSelectionRange: function setSelectionRange(start, end, direction) {\n var _inputRef$current2;\n\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.setSelectionRange(start, end, direction);\n },\n select: function select() {\n var _inputRef$current3;\n\n (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.select();\n },\n input: inputRef.current\n };\n });\n useEffect(function () {\n setFocused(function (prev) {\n return prev && disabled ? false : prev;\n });\n }, [disabled]);\n\n var handleChange = function handleChange(e) {\n if (props.value === undefined) {\n setValue(e.target.value);\n }\n\n if (inputRef.current) {\n resolveOnChange(inputRef.current, e, onChange);\n }\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n if (onPressEnter && e.key === 'Enter') {\n onPressEnter(e);\n }\n\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n };\n\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n\n var handleReset = function handleReset(e) {\n setValue('');\n focus();\n\n if (inputRef.current) {\n resolveOnChange(inputRef.current, e, onChange);\n }\n };\n\n var getInputElement = function getInputElement() {\n // Fix https://fb.me/react-unknown-prop\n var otherProps = omit(props, ['prefixCls', 'onPressEnter', 'addonBefore', 'addonAfter', 'prefix', 'suffix', 'allowClear', // Input elements must be either controlled or uncontrolled,\n // specify either the value prop, or the defaultValue prop, but not both.\n 'defaultValue', 'showCount', 'affixWrapperClassName', 'groupClassName', 'inputClassName', 'wrapperClassName', 'htmlSize']);\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n autoComplete: autoComplete\n }, otherProps, {\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n className: classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), inputClassName, !hasAddon(props) && !hasPrefixSuffix(props) && className),\n ref: inputRef,\n size: htmlSize,\n type: type\n }));\n };\n\n var getSuffix = function getSuffix() {\n // Max length value\n var hasMaxLength = Number(maxLength) > 0;\n\n if (suffix || showCount) {\n var val = fixControlledValue(value);\n\n var valueLength = _toConsumableArray(val).length;\n\n var dataCount = _typeof(showCount) === 'object' ? showCount.formatter({\n value: val,\n count: valueLength,\n maxLength: maxLength\n }) : \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(maxLength) : '');\n return /*#__PURE__*/React.createElement(React.Fragment, null, !!showCount && /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-show-count-suffix\"), _defineProperty({}, \"\".concat(prefixCls, \"-show-count-has-suffix\"), !!suffix))\n }, dataCount), suffix);\n }\n\n return null;\n };\n\n return /*#__PURE__*/React.createElement(BaseInput, _extends({}, rest, {\n prefixCls: prefixCls,\n className: className,\n inputElement: getInputElement(),\n handleReset: handleReset,\n value: fixControlledValue(value),\n focused: focused,\n triggerFocus: focus,\n suffix: getSuffix(),\n disabled: disabled\n }));\n});\nexport default Input;","import BaseInput from \"./BaseInput\";\nimport Input from \"./Input\";\nexport { BaseInput };\nexport default Input;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport var Context = /*#__PURE__*/React.createContext({});\nexport default function MotionProvider(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: props\n }, children);\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';\n/**\n * Used for disabled motion case.\n * Prepare stage will still work but start & active will be skipped.\n */\nexport var STEP_PREPARED = 'prepared';","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n style = _document$createEleme.style;\n}\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n var prefixMap = vendorPrefixes[eventName];\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (callback) {\n var cacheElementRef = useRef();\n\n // Cache callback\n var callbackRef = useRef(callback);\n callbackRef.current = callback;\n\n // Internal motion event handler\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []);\n\n // Remove events\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n }\n\n // Patch events\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd);\n\n // Save as cache in case dom removed trigger by `motionDeadline`\n cacheElementRef.current = element;\n }\n }\n\n // Clean up when removed\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { useEffect, useLayoutEffect } from 'react';\n\n// It's safe to use `useLayoutEffect` but the warning is annoying\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { STEP_ACTIVATED, STEP_ACTIVE, STEP_NONE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useNextFrame from \"./useNextFrame\";\nvar FULL_STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\nvar SIMPLE_STEP_QUEUE = [STEP_PREPARE, STEP_PREPARED];\n\n/** Skip current step */\nexport var SkipStep = false;\n/** Current step should be update in */\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, prepareOnly, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else if (nextStep) {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport classNames from 'classnames';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { Context } from \"./context\";\nimport DomWrapper from \"./DomWrapper\";\nimport useStatus from \"./hooks/useStatus\";\nimport { isActive } from \"./hooks/useStepQueue\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport { getTransitionName, supportTransition } from \"./util/motion\";\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n function isSupportTransition(props, contextMotion) {\n return !!(props.motionName && transitionSupport && contextMotion !== false);\n }\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var _React$useContext = React.useContext(Context),\n contextMotion = _React$useContext.motion;\n var supportMotion = isSupportTransition(props, contextMotion);\n\n // Ref to the react node, it may be a HTMLElement\n var nodeRef = useRef();\n // Ref to the dom wrapper in case ref can not pass to HTMLElement\n var wrapperNodeRef = useRef();\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3];\n\n // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n var renderedRef = React.useRef(mergedVisible);\n if (mergedVisible) {\n renderedRef.current = true;\n }\n\n // ====================== Refs ======================\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]);\n\n // ===================== Render =====================\n var motionChildren;\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender || !removeOnLeave && !leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames;\n // In motion\n var statusSuffix;\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n var motionCls = getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix));\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, motionCls, motionCls && statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n }\n\n // Auto inject ref if child node not have `ref` props\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _ref = motionChildren,\n originNodeRef = _ref.ref;\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { STATUS_APPEAR, STATUS_ENTER, STATUS_LEAVE, STATUS_NONE, STEP_ACTIVE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useStepQueue, { DoStep, isActive, SkipStep } from \"./useStepQueue\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n\n // =========================== Dom Node ===========================\n function getDomElement() {\n return getElement();\n }\n\n // ========================== Motion End ==========================\n var activeRef = useRef(false);\n\n /**\n * Clean up status & style\n */\n function updateMotionEndStatus() {\n setStatus(STATUS_NONE, true);\n setStyle(null, true);\n }\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n var currentActive = activeRef.current;\n var canEnd;\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n }\n\n // Only update status when `canEnd` and not destroyed\n if (status !== STATUS_NONE && currentActive && canEnd !== false) {\n updateMotionEndStatus();\n }\n }\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0];\n\n // ============================= Step =============================\n var getEventHandlers = function getEventHandlers(targetStatus) {\n var _ref2, _ref3, _ref4;\n switch (targetStatus) {\n case STATUS_APPEAR:\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n case STATUS_ENTER:\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n case STATUS_LEAVE:\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n default:\n return {};\n }\n };\n var eventHandlers = React.useMemo(function () {\n return getEventHandlers(status);\n }, [status]);\n var _useStepQueue = useStepQueue(status, !supportMotion, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n if (!onPrepare) {\n return SkipStep;\n }\n return onPrepare(getDomElement());\n }\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n if (step === STEP_PREPARED) {\n updateMotionEndStatus();\n }\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n var active = isActive(step);\n activeRef.current = active;\n\n // ============================ Status ============================\n // Update with new status\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n // if (!supportMotion) {\n // return;\n // }\n\n var nextStatus;\n\n // Appear\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n }\n\n // Enter\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n }\n\n // Leave\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n }\n var nextEventHandlers = getEventHandlers(nextStatus);\n\n // Update to next status\n if (nextStatus && (supportMotion || nextEventHandlers[STEP_PREPARE])) {\n setStatus(nextStatus);\n startStep();\n } else {\n // Set back in case no motion but prev status has prepare step\n setStatus(STATUS_NONE);\n }\n }, [visible]);\n\n // ============================ Effect ============================\n // Reset when motion changed\n useEffect(function () {\n if (\n // Cancel appear\n status === STATUS_APPEAR && !motionAppear ||\n // Cancel enter\n status === STATUS_ENTER && !motionEnter ||\n // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []);\n\n // Trigger `onVisibleChanged`\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, status]);\n\n // ============================ Styles ============================\n var mergedStyle = style;\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys);\n\n // Check prev keys to insert or keep\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n }\n\n // If not hit, it means key is removed\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n });\n\n // Add rest to the list\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n });\n\n // Update `STATUS_ADD` to `STATUS_KEEP`\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { diffKeys, parseKeys, STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED } from \"./util/diff\";\nimport { supportTransition } from \"./util/motion\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearPrepare', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n var _super = _createSuper(CSSMotionList);\n function CSSMotionList() {\n var _this;\n _classCallCheck(this, CSSMotionList);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n keyEntities: []\n });\n // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n var keyEntities = _this.state.keyEntities;\n var nextKeyEntities = keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n _this.setState({\n keyEntities: nextKeyEntities\n });\n return nextKeyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n });\n return _this;\n }\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var keyEntities = this.state.keyEntities;\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2, index) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n if (!changedVisible) {\n var restKeysCount = _this2.removeKey(eventProps.key);\n if (restKeysCount === 0 && onAllRemoved) {\n onAllRemoved();\n }\n }\n }\n }), function (props, ref) {\n return children(_objectSpread(_objectSpread({}, props), {}, {\n index: index\n }), ref);\n });\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n });\n\n // Remove if already mark as removed\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n return true;\n })\n };\n }\n }]);\n return CSSMotionList;\n }(React.Component);\n _defineProperty(CSSMotionList, \"defaultProps\", {\n component: 'div'\n });\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from \"./CSSMotion\";\nimport CSSMotionList from \"./CSSMotionList\";\nexport { default as Provider } from \"./context\";\nexport { CSSMotionList };\nexport default CSSMotion;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nvar Notice = /*#__PURE__*/function (_Component) {\n _inherits(Notice, _Component);\n var _super = _createSuper(Notice);\n function Notice() {\n var _this;\n _classCallCheck(this, Notice);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.closeTimer = null;\n _this.close = function (e) {\n if (e) {\n e.stopPropagation();\n }\n _this.clearCloseTimer();\n var _this$props = _this.props,\n onClose = _this$props.onClose,\n noticeKey = _this$props.noticeKey;\n if (onClose) {\n onClose(noticeKey);\n }\n };\n _this.startCloseTimer = function () {\n if (_this.props.duration) {\n _this.closeTimer = window.setTimeout(function () {\n _this.close();\n }, _this.props.duration * 1000);\n }\n };\n _this.clearCloseTimer = function () {\n if (_this.closeTimer) {\n clearTimeout(_this.closeTimer);\n _this.closeTimer = null;\n }\n };\n return _this;\n }\n _createClass(Notice, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startCloseTimer();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.duration !== prevProps.duration || this.props.updateMark !== prevProps.updateMark ||\n // Visible again need reset timer\n this.props.visible !== prevProps.visible && this.props.visible) {\n this.restartCloseTimer();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearCloseTimer();\n }\n }, {\n key: \"restartCloseTimer\",\n value: function restartCloseTimer() {\n this.clearCloseTimer();\n this.startCloseTimer();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closable = _this$props2.closable,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style,\n onClick = _this$props2.onClick,\n children = _this$props2.children,\n holder = _this$props2.holder;\n var componentClass = \"\".concat(prefixCls, \"-notice\");\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (acc, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n acc[key] = _this2.props[key];\n }\n return acc;\n }, {});\n var node = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(componentClass, className, _defineProperty({}, \"\".concat(componentClass, \"-closable\"), closable)),\n style: style,\n onMouseEnter: this.clearCloseTimer,\n onMouseLeave: this.startCloseTimer,\n onClick: onClick\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(componentClass, \"-content\")\n }, children), closable ? /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: 0,\n onClick: this.close,\n className: \"\".concat(componentClass, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(componentClass, \"-close-x\")\n })) : null);\n if (holder) {\n return /*#__PURE__*/ReactDOM.createPortal(node, holder);\n }\n return node;\n }\n }]);\n return Notice;\n}(Component);\nNotice.defaultProps = {\n onClose: function onClose() {},\n duration: 1.5\n};\nexport { Notice as default };","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"getContainer\"];\nimport * as React from 'react';\nimport { Component } from 'react';\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport classNames from 'classnames';\nimport { CSSMotionList } from 'rc-motion';\nimport Notice from './Notice';\nimport _useNotification from './useNotification';\nvar seed = 0;\nvar now = Date.now();\nfunction getUuid() {\n var id = seed;\n seed += 1;\n return \"rcNotification_\".concat(now, \"_\").concat(id);\n}\nvar Notification = /*#__PURE__*/function (_Component) {\n _inherits(Notification, _Component);\n var _super = _createSuper(Notification);\n function Notification() {\n var _this;\n _classCallCheck(this, Notification);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n notices: []\n };\n _this.hookRefs = new Map();\n _this.add = function (originNotice, holderCallback) {\n var _originNotice$key;\n var key = (_originNotice$key = originNotice.key) !== null && _originNotice$key !== void 0 ? _originNotice$key : getUuid();\n var notice = _objectSpread(_objectSpread({}, originNotice), {}, {\n key: key\n });\n var maxCount = _this.props.maxCount;\n _this.setState(function (previousState) {\n var notices = previousState.notices;\n var noticeIndex = notices.map(function (v) {\n return v.notice.key;\n }).indexOf(key);\n var updatedNotices = notices.concat();\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, {\n notice: notice,\n holderCallback: holderCallback\n });\n } else {\n if (maxCount && notices.length >= maxCount) {\n // XXX, use key of first item to update new added (let React to move exsiting\n // instead of remove and mount). Same key was used before for both a) external\n // manual control and b) internal react 'key' prop , which is not that good.\n // eslint-disable-next-line no-param-reassign\n // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n // Change to `updateMark` for compare instead.\n // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n notice.key = updatedNotices[0].notice.key;\n notice.updateMark = getUuid();\n // zombieJ: That's why. User may close by key directly.\n // We need record this but not re-render to avoid upper issue\n // https://github.com/react-component/notification/issues/129\n notice.userPassKey = key;\n updatedNotices.shift();\n }\n updatedNotices.push({\n notice: notice,\n holderCallback: holderCallback\n });\n }\n return {\n notices: updatedNotices\n };\n });\n };\n _this.remove = function (removeKey) {\n _this.setState(function (_ref) {\n var notices = _ref.notices;\n return {\n notices: notices.filter(function (_ref2) {\n var _ref2$notice = _ref2.notice,\n key = _ref2$notice.key,\n userPassKey = _ref2$notice.userPassKey;\n var mergedKey = userPassKey !== null && userPassKey !== void 0 ? userPassKey : key;\n return mergedKey !== removeKey;\n })\n };\n });\n };\n _this.noticePropsMap = {};\n return _this;\n }\n _createClass(Notification, [{\n key: \"getTransitionName\",\n value: function getTransitionName() {\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n animation = _this$props.animation;\n var transitionName = this.props.transitionName;\n if (!transitionName && animation) {\n transitionName = \"\".concat(prefixCls, \"-\").concat(animation);\n }\n return transitionName;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var notices = this.state.notices;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style;\n var noticeKeys = [];\n notices.forEach(function (_ref3, index) {\n var notice = _ref3.notice,\n holderCallback = _ref3.holderCallback;\n var updateMark = index === notices.length - 1 ? notice.updateMark : undefined;\n var key = notice.key,\n userPassKey = notice.userPassKey;\n var noticeProps = _objectSpread(_objectSpread(_objectSpread({\n prefixCls: prefixCls,\n closeIcon: closeIcon\n }, notice), notice.props), {}, {\n key: key,\n noticeKey: userPassKey || key,\n updateMark: updateMark,\n onClose: function onClose(noticeKey) {\n var _notice$onClose;\n _this2.remove(noticeKey);\n (_notice$onClose = notice.onClose) === null || _notice$onClose === void 0 ? void 0 : _notice$onClose.call(notice);\n },\n onClick: notice.onClick,\n children: notice.content\n });\n // Give to motion\n noticeKeys.push(key);\n _this2.noticePropsMap[key] = {\n props: noticeProps,\n holderCallback: holderCallback\n };\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className),\n style: style\n }, /*#__PURE__*/React.createElement(CSSMotionList, {\n keys: noticeKeys,\n motionName: this.getTransitionName(),\n onVisibleChanged: function onVisibleChanged(changedVisible, _ref4) {\n var key = _ref4.key;\n if (!changedVisible) {\n delete _this2.noticePropsMap[key];\n }\n }\n }, function (_ref5) {\n var key = _ref5.key,\n motionClassName = _ref5.className,\n motionStyle = _ref5.style,\n visible = _ref5.visible;\n var _this2$noticePropsMap = _this2.noticePropsMap[key],\n noticeProps = _this2$noticePropsMap.props,\n holderCallback = _this2$noticePropsMap.holderCallback;\n if (holderCallback) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(motionClassName, \"\".concat(prefixCls, \"-hook-holder\")),\n style: _objectSpread({}, motionStyle),\n ref: function ref(div) {\n if (typeof key === 'undefined') {\n return;\n }\n if (div) {\n _this2.hookRefs.set(key, div);\n holderCallback(div, noticeProps);\n } else {\n _this2.hookRefs.delete(key);\n }\n }\n });\n }\n return /*#__PURE__*/React.createElement(Notice, _extends({}, noticeProps, {\n className: classNames(motionClassName, noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.className),\n style: _objectSpread(_objectSpread({}, motionStyle), noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.style),\n visible: visible\n }));\n }));\n }\n }]);\n return Notification;\n}(Component);\nNotification.newInstance = void 0;\nNotification.defaultProps = {\n prefixCls: 'rc-notification',\n animation: 'fade',\n style: {\n top: 65,\n left: '50%'\n }\n};\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n var _ref6 = properties || {},\n getContainer = _ref6.getContainer,\n props = _objectWithoutProperties(_ref6, _excluded);\n var div = document.createElement('div');\n if (getContainer) {\n var root = getContainer();\n root.appendChild(div);\n } else {\n document.body.appendChild(div);\n }\n var called = false;\n function ref(notification) {\n if (called) {\n return;\n }\n called = true;\n callback({\n notice: function notice(noticeProps) {\n notification.add(noticeProps);\n },\n removeNotice: function removeNotice(key) {\n notification.remove(key);\n },\n component: notification,\n destroy: function destroy() {\n unmount(div);\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n },\n // Hooks\n useNotification: function useNotification() {\n return _useNotification(notification);\n }\n });\n }\n // Only used for test case usage\n if (process.env.NODE_ENV === 'test' && properties.TEST_RENDER) {\n properties.TEST_RENDER( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })));\n return;\n }\n render( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })), div);\n};\nexport default Notification;","import Notification from './Notification';\nexport default Notification;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Notice from './Notice';\nexport default function useNotification(notificationInstance) {\n var createdRef = React.useRef({});\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n elements = _React$useState2[0],\n setElements = _React$useState2[1];\n function notify(noticeProps) {\n var firstMount = true;\n notificationInstance.add(noticeProps, function (div, props) {\n var key = props.key;\n if (div && (!createdRef.current[key] || firstMount)) {\n var noticeEle = /*#__PURE__*/React.createElement(Notice, _extends({}, props, {\n holder: div\n }));\n createdRef.current[key] = noticeEle;\n setElements(function (originElements) {\n var index = originElements.findIndex(function (ele) {\n return ele.key === props.key;\n });\n if (index === -1) {\n return [].concat(_toConsumableArray(originElements), [noticeEle]);\n }\n var cloneList = _toConsumableArray(originElements);\n cloneList[index] = noticeEle;\n return cloneList;\n });\n }\n firstMount = false;\n });\n }\n return [notify, /*#__PURE__*/React.createElement(React.Fragment, null, elements)];\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar Notice = /*#__PURE__*/function (_Component) {\n (0, _inherits2.default)(Notice, _Component);\n var _super = (0, _createSuper2.default)(Notice);\n function Notice() {\n var _this;\n (0, _classCallCheck2.default)(this, Notice);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.closeTimer = null;\n _this.close = function (e) {\n if (e) {\n e.stopPropagation();\n }\n _this.clearCloseTimer();\n var _this$props = _this.props,\n onClose = _this$props.onClose,\n noticeKey = _this$props.noticeKey;\n if (onClose) {\n onClose(noticeKey);\n }\n };\n _this.startCloseTimer = function () {\n if (_this.props.duration) {\n _this.closeTimer = window.setTimeout(function () {\n _this.close();\n }, _this.props.duration * 1000);\n }\n };\n _this.clearCloseTimer = function () {\n if (_this.closeTimer) {\n clearTimeout(_this.closeTimer);\n _this.closeTimer = null;\n }\n };\n return _this;\n }\n (0, _createClass2.default)(Notice, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startCloseTimer();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.duration !== prevProps.duration || this.props.updateMark !== prevProps.updateMark ||\n // Visible again need reset timer\n this.props.visible !== prevProps.visible && this.props.visible) {\n this.restartCloseTimer();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearCloseTimer();\n }\n }, {\n key: \"restartCloseTimer\",\n value: function restartCloseTimer() {\n this.clearCloseTimer();\n this.startCloseTimer();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closable = _this$props2.closable,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style,\n onClick = _this$props2.onClick,\n children = _this$props2.children,\n holder = _this$props2.holder;\n var componentClass = \"\".concat(prefixCls, \"-notice\");\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (acc, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n acc[key] = _this2.props[key];\n }\n return acc;\n }, {});\n var node = /*#__PURE__*/React.createElement(\"div\", (0, _extends2.default)({\n className: (0, _classnames.default)(componentClass, className, (0, _defineProperty2.default)({}, \"\".concat(componentClass, \"-closable\"), closable)),\n style: style,\n onMouseEnter: this.clearCloseTimer,\n onMouseLeave: this.startCloseTimer,\n onClick: onClick\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(componentClass, \"-content\")\n }, children), closable ? /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: 0,\n onClick: this.close,\n className: \"\".concat(componentClass, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(componentClass, \"-close-x\")\n })) : null);\n if (holder) {\n return /*#__PURE__*/_reactDom.default.createPortal(node, holder);\n }\n return node;\n }\n }]);\n return Notice;\n}(React.Component);\nexports.default = Notice;\nNotice.defaultProps = {\n onClose: function onClose() {},\n duration: 1.5\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useNotification;\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _Notice = _interopRequireDefault(require(\"./Notice\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction useNotification(notificationInstance) {\n var createdRef = React.useRef({});\n var _React$useState = React.useState([]),\n _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),\n elements = _React$useState2[0],\n setElements = _React$useState2[1];\n function notify(noticeProps) {\n var firstMount = true;\n notificationInstance.add(noticeProps, function (div, props) {\n var key = props.key;\n if (div && (!createdRef.current[key] || firstMount)) {\n var noticeEle = /*#__PURE__*/React.createElement(_Notice.default, (0, _extends2.default)({}, props, {\n holder: div\n }));\n createdRef.current[key] = noticeEle;\n setElements(function (originElements) {\n var index = originElements.findIndex(function (ele) {\n return ele.key === props.key;\n });\n if (index === -1) {\n return [].concat((0, _toConsumableArray2.default)(originElements), [noticeEle]);\n }\n var cloneList = (0, _toConsumableArray2.default)(originElements);\n cloneList[index] = noticeEle;\n return cloneList;\n });\n }\n firstMount = false;\n });\n }\n return [notify, /*#__PURE__*/React.createElement(React.Fragment, null, elements)];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"invalidate\", \"item\", \"renderItem\", \"responsive\", \"responsiveDisabled\", \"registerSize\", \"itemKey\", \"className\", \"style\", \"children\", \"display\", \"order\", \"component\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\n// Use shared variable to save bundle size\nvar UNDEFINED = undefined;\nfunction InternalItem(props, ref) {\n var prefixCls = props.prefixCls,\n invalidate = props.invalidate,\n item = props.item,\n renderItem = props.renderItem,\n responsive = props.responsive,\n responsiveDisabled = props.responsiveDisabled,\n registerSize = props.registerSize,\n itemKey = props.itemKey,\n className = props.className,\n style = props.style,\n children = props.children,\n display = props.display,\n order = props.order,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedHidden = responsive && !display;\n // ================================ Effect ================================\n function internalRegisterSize(width) {\n registerSize(itemKey, width);\n }\n React.useEffect(function () {\n return function () {\n internalRegisterSize(null);\n };\n }, []);\n // ================================ Render ================================\n var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;\n var overflowStyle;\n if (!invalidate) {\n overflowStyle = {\n opacity: mergedHidden ? 0 : 1,\n height: mergedHidden ? 0 : UNDEFINED,\n overflowY: mergedHidden ? 'hidden' : UNDEFINED,\n order: responsive ? order : UNDEFINED,\n pointerEvents: mergedHidden ? 'none' : UNDEFINED,\n position: mergedHidden ? 'absolute' : UNDEFINED\n };\n }\n var overflowProps = {};\n if (mergedHidden) {\n overflowProps['aria-hidden'] = true;\n }\n var itemNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: _objectSpread(_objectSpread({}, overflowStyle), style)\n }, overflowProps, restProps, {\n ref: ref\n }), childNode);\n if (responsive) {\n itemNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref) {\n var offsetWidth = _ref.offsetWidth;\n internalRegisterSize(offsetWidth);\n },\n disabled: responsiveDisabled\n }, itemNode);\n }\n return itemNode;\n}\nvar Item = /*#__PURE__*/React.forwardRef(InternalItem);\nItem.displayName = 'Item';\nexport default Item;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport channelUpdate from './channelUpdate';\n/**\n * Batcher for record any `useEffectState` need update.\n */\nexport function useBatcher() {\n // Updater Trigger\n var updateFuncRef = React.useRef(null);\n // Notify update\n var notifyEffectUpdate = function notifyEffectUpdate(callback) {\n if (!updateFuncRef.current) {\n updateFuncRef.current = [];\n channelUpdate(function () {\n unstable_batchedUpdates(function () {\n updateFuncRef.current.forEach(function (fn) {\n fn();\n });\n updateFuncRef.current = null;\n });\n });\n }\n updateFuncRef.current.push(callback);\n };\n return notifyEffectUpdate;\n}\n/**\n * Trigger state update by `useLayoutEffect` to save perf.\n */\nexport default function useEffectState(notifyEffectUpdate, defaultValue) {\n // Value\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n stateValue = _React$useState2[0],\n setStateValue = _React$useState2[1];\n // Set State\n var setEffectVal = useEvent(function (nextValue) {\n notifyEffectUpdate(function () {\n setStateValue(nextValue);\n });\n });\n return [stateValue, setEffectVal];\n}","import raf from \"rc-util/es/raf\";\nexport default function channelUpdate(callback) {\n if (typeof MessageChannel === 'undefined') {\n raf(callback);\n } else {\n var channel = new MessageChannel();\n channel.port1.onmessage = function () {\n return callback();\n };\n channel.port2.postMessage(undefined);\n }\n}","import React from 'react';\nexport var OverflowContext = /*#__PURE__*/React.createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"component\"],\n _excluded2 = [\"className\"],\n _excluded3 = [\"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Item from './Item';\nimport { OverflowContext } from './context';\nvar InternalRawItem = function InternalRawItem(props, ref) {\n var context = React.useContext(OverflowContext);\n // Render directly when context not provided\n if (!context) {\n var _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _restProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(Component, _extends({}, _restProps, {\n ref: ref\n }));\n }\n var contextClassName = context.className,\n restContext = _objectWithoutProperties(context, _excluded2);\n var className = props.className,\n restProps = _objectWithoutProperties(props, _excluded3);\n // Do not pass context to sub item to avoid multiple measure\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(Item, _extends({\n ref: ref,\n className: classNames(contextClassName, className)\n }, restContext, restProps)));\n};\nvar RawItem = /*#__PURE__*/React.forwardRef(InternalRawItem);\nRawItem.displayName = 'RawItem';\nexport default RawItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"renderItem\", \"renderRawItem\", \"itemKey\", \"itemWidth\", \"ssr\", \"style\", \"className\", \"maxCount\", \"renderRest\", \"renderRawRest\", \"suffix\", \"component\", \"itemComponent\", \"onVisibleChange\"];\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport Item from './Item';\nimport useEffectState, { useBatcher } from './hooks/useEffectState';\nimport RawItem from './RawItem';\nimport { OverflowContext } from './context';\nvar RESPONSIVE = 'responsive';\nvar INVALIDATE = 'invalidate';\nexport { OverflowContext } from './context';\nfunction defaultRenderRest(omittedItems) {\n return \"+ \".concat(omittedItems.length, \" ...\");\n}\nfunction Overflow(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n _props$data = props.data,\n data = _props$data === void 0 ? [] : _props$data,\n renderItem = props.renderItem,\n renderRawItem = props.renderRawItem,\n itemKey = props.itemKey,\n _props$itemWidth = props.itemWidth,\n itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n ssr = props.ssr,\n style = props.style,\n className = props.className,\n maxCount = props.maxCount,\n renderRest = props.renderRest,\n renderRawRest = props.renderRawRest,\n suffix = props.suffix,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n itemComponent = props.itemComponent,\n onVisibleChange = props.onVisibleChange,\n restProps = _objectWithoutProperties(props, _excluded);\n var fullySSR = ssr === 'full';\n var notifyEffectUpdate = useBatcher();\n var _useEffectState = useEffectState(notifyEffectUpdate, null),\n _useEffectState2 = _slicedToArray(_useEffectState, 2),\n containerWidth = _useEffectState2[0],\n setContainerWidth = _useEffectState2[1];\n var mergedContainerWidth = containerWidth || 0;\n var _useEffectState3 = useEffectState(notifyEffectUpdate, new Map()),\n _useEffectState4 = _slicedToArray(_useEffectState3, 2),\n itemWidths = _useEffectState4[0],\n setItemWidths = _useEffectState4[1];\n var _useEffectState5 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState6 = _slicedToArray(_useEffectState5, 2),\n prevRestWidth = _useEffectState6[0],\n setPrevRestWidth = _useEffectState6[1];\n var _useEffectState7 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState8 = _slicedToArray(_useEffectState7, 2),\n restWidth = _useEffectState8[0],\n setRestWidth = _useEffectState8[1];\n var _useEffectState9 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState10 = _slicedToArray(_useEffectState9, 2),\n suffixWidth = _useEffectState10[0],\n setSuffixWidth = _useEffectState10[1];\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n suffixFixedStart = _useState2[0],\n setSuffixFixedStart = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n displayCount = _useState4[0],\n setDisplayCount = _useState4[1];\n var mergedDisplayCount = React.useMemo(function () {\n if (displayCount === null && fullySSR) {\n return Number.MAX_SAFE_INTEGER;\n }\n return displayCount || 0;\n }, [displayCount, containerWidth]);\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n restReady = _useState6[0],\n setRestReady = _useState6[1];\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n // Always use the max width to avoid blink\n var mergedRestWidth = Math.max(prevRestWidth, restWidth);\n // ================================= Data =================================\n var isResponsive = maxCount === RESPONSIVE;\n var shouldResponsive = data.length && isResponsive;\n var invalidate = maxCount === INVALIDATE;\n /**\n * When is `responsive`, we will always render rest node to get the real width of it for calculation\n */\n var showRest = shouldResponsive || typeof maxCount === 'number' && data.length > maxCount;\n var mergedData = useMemo(function () {\n var items = data;\n if (shouldResponsive) {\n if (containerWidth === null && fullySSR) {\n items = data;\n } else {\n items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth));\n }\n } else if (typeof maxCount === 'number') {\n items = data.slice(0, maxCount);\n }\n return items;\n }, [data, itemWidth, containerWidth, maxCount, shouldResponsive]);\n var omittedItems = useMemo(function () {\n if (shouldResponsive) {\n return data.slice(mergedDisplayCount + 1);\n }\n return data.slice(mergedData.length);\n }, [data, mergedData, shouldResponsive, mergedDisplayCount]);\n // ================================= Item =================================\n var getKey = useCallback(function (item, index) {\n var _ref;\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;\n }, [itemKey]);\n var mergedRenderItem = useCallback(renderItem || function (item) {\n return item;\n }, [renderItem]);\n function updateDisplayCount(count, suffixFixedStartVal, notReady) {\n // React 18 will sync render even when the value is same in some case.\n // We take `mergedData` as deps which may cause dead loop if it's dynamic generate.\n // ref: https://github.com/ant-design/ant-design/issues/36559\n if (displayCount === count && (suffixFixedStartVal === undefined || suffixFixedStartVal === suffixFixedStart)) {\n return;\n }\n setDisplayCount(count);\n if (!notReady) {\n setRestReady(count < data.length - 1);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(count);\n }\n if (suffixFixedStartVal !== undefined) {\n setSuffixFixedStart(suffixFixedStartVal);\n }\n }\n // ================================= Size =================================\n function onOverflowResize(_, element) {\n setContainerWidth(element.clientWidth);\n }\n function registerSize(key, width) {\n setItemWidths(function (origin) {\n var clone = new Map(origin);\n if (width === null) {\n clone.delete(key);\n } else {\n clone.set(key, width);\n }\n return clone;\n });\n }\n function registerOverflowSize(_, width) {\n setRestWidth(width);\n setPrevRestWidth(restWidth);\n }\n function registerSuffixSize(_, width) {\n setSuffixWidth(width);\n }\n // ================================ Effect ================================\n function getItemWidth(index) {\n return itemWidths.get(getKey(mergedData[index], index));\n }\n useLayoutEffect(function () {\n if (mergedContainerWidth && typeof mergedRestWidth === 'number' && mergedData) {\n var totalWidth = suffixWidth;\n var len = mergedData.length;\n var lastIndex = len - 1;\n // When data count change to 0, reset this since not loop will reach\n if (!len) {\n updateDisplayCount(0, null);\n return;\n }\n for (var i = 0; i < len; i += 1) {\n var currentItemWidth = getItemWidth(i);\n // Fully will always render\n if (fullySSR) {\n currentItemWidth = currentItemWidth || 0;\n }\n // Break since data not ready\n if (currentItemWidth === undefined) {\n updateDisplayCount(i - 1, undefined, true);\n break;\n }\n // Find best match\n totalWidth += currentItemWidth;\n if (\n // Only one means `totalWidth` is the final width\n lastIndex === 0 && totalWidth <= mergedContainerWidth ||\n // Last two width will be the final width\n i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) {\n // Additional check if match the end\n updateDisplayCount(lastIndex, null);\n break;\n } else if (totalWidth + mergedRestWidth > mergedContainerWidth) {\n // Can not hold all the content to show rest\n updateDisplayCount(i - 1, totalWidth - currentItemWidth - suffixWidth + restWidth);\n break;\n }\n }\n if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) {\n setSuffixFixedStart(null);\n }\n }\n }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]);\n // ================================ Render ================================\n var displayRest = restReady && !!omittedItems.length;\n var suffixStyle = {};\n if (suffixFixedStart !== null && shouldResponsive) {\n suffixStyle = {\n position: 'absolute',\n left: suffixFixedStart,\n top: 0\n };\n }\n var itemSharedProps = {\n prefixCls: itemPrefixCls,\n responsive: shouldResponsive,\n component: itemComponent,\n invalidate: invalidate\n };\n // >>>>> Choice render fun by `renderRawItem`\n var internalRenderItemNode = renderRawItem ? function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n key: key,\n value: _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n order: index,\n item: item,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n })\n }, renderRawItem(item, index));\n } : function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: index,\n key: key,\n item: item,\n renderItem: mergedRenderItem,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n }));\n };\n // >>>>> Rest node\n var restNode;\n var restContextProps = {\n order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,\n className: \"\".concat(itemPrefixCls, \"-rest\"),\n registerSize: registerOverflowSize,\n display: displayRest\n };\n if (!renderRawRest) {\n var mergedRenderRest = renderRest || defaultRenderRest;\n restNode = /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);\n } else if (renderRawRest) {\n restNode = /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: _objectSpread(_objectSpread({}, itemSharedProps), restContextProps)\n }, renderRawRest(omittedItems));\n }\n var overflowNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: style,\n ref: ref\n }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n responsive: isResponsive,\n responsiveDisabled: !shouldResponsive,\n order: mergedDisplayCount,\n className: \"\".concat(itemPrefixCls, \"-suffix\"),\n registerSize: registerSuffixSize,\n display: true,\n style: suffixStyle\n }), suffix));\n if (isResponsive) {\n overflowNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onOverflowResize,\n disabled: !shouldResponsive\n }, overflowNode);\n }\n return overflowNode;\n}\nvar ForwardOverflow = /*#__PURE__*/React.forwardRef(Overflow);\nForwardOverflow.displayName = 'Overflow';\nForwardOverflow.Item = RawItem;\nForwardOverflow.RESPONSIVE = RESPONSIVE;\nForwardOverflow.INVALIDATE = INVALIDATE;\n// Convert to generic type\nexport default ForwardOverflow;","import Overflow from './Overflow';\nexport default Overflow;","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'OK',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nvar _default = locale;\nexports.default = _default;","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n var children = _ref.children,\n onBatchResize = _ref.onBatchResize;\n var resizeIdRef = React.useRef(0);\n var resizeInfosRef = React.useRef([]);\n var onCollectionResize = React.useContext(CollectionContext);\n var onResize = React.useCallback(function (size, element, data) {\n resizeIdRef.current += 1;\n var currentId = resizeIdRef.current;\n resizeInfosRef.current.push({\n size: size,\n element: element,\n data: data\n });\n Promise.resolve().then(function () {\n if (currentId === resizeIdRef.current) {\n onBatchResize === null || onBatchResize === void 0 || onBatchResize(resizeInfosRef.current);\n resizeInfosRef.current = [];\n }\n });\n\n // Continue bubbling if parent exist\n onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(size, element, data);\n }, [onBatchResize, onCollectionResize]);\n return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n value: onResize\n }, children);\n}","import ResizeObserver from 'resize-observer-polyfill';\n// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n entities.forEach(function (entity) {\n var _elementListeners$get;\n var target = entity.target;\n (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 || _elementListeners$get.forEach(function (listener) {\n return listener(target);\n });\n });\n}\n\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set());\n resizeObserver.observe(element);\n }\n elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n if (elementListeners.has(element)) {\n elementListeners.get(element).delete(callback);\n if (!elementListeners.get(element).size) {\n resizeObserver.unobserve(element);\n elementListeners.delete(element);\n }\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { CollectionContext } from \"../Collection\";\nimport { observe, unobserve } from \"../utils/observerUtil\";\nimport DomWrapper from \"./DomWrapper\";\nfunction SingleObserver(props, ref) {\n var children = props.children,\n disabled = props.disabled;\n var elementRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n var onCollectionResize = React.useContext(CollectionContext);\n\n // =========================== Children ===========================\n var isRenderProps = typeof children === 'function';\n var mergedChildren = isRenderProps ? children(elementRef) : children;\n\n // ============================= Size =============================\n var sizeRef = React.useRef({\n width: -1,\n height: -1,\n offsetWidth: -1,\n offsetHeight: -1\n });\n\n // ============================= Ref ==============================\n var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n var originRef = canRef ? mergedChildren.ref : null;\n var mergedRef = useComposeRef(originRef, elementRef);\n var getDom = function getDom() {\n var _elementRef$current;\n return findDOMNode(elementRef.current) || (\n // Support `nativeElement` format\n elementRef.current && _typeof(elementRef.current) === 'object' ? findDOMNode((_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.nativeElement) : null) || findDOMNode(wrapperRef.current);\n };\n React.useImperativeHandle(ref, function () {\n return getDom();\n });\n\n // =========================== Observe ============================\n var propsRef = React.useRef(props);\n propsRef.current = props;\n\n // Handler\n var onInternalResize = React.useCallback(function (target) {\n var _propsRef$current = propsRef.current,\n onResize = _propsRef$current.onResize,\n data = _propsRef$current.data;\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n sizeRef.current = size;\n\n // IE is strange, right?\n var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: mergedOffsetWidth,\n offsetHeight: mergedOffsetHeight\n });\n\n // Let collection know what happened\n onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(sizeInfo, target, data);\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(sizeInfo, target);\n });\n }\n }\n }, []);\n\n // Dynamic observe\n React.useEffect(function () {\n var currentElement = getDom();\n if (currentElement && !disabled) {\n observe(currentElement, onInternalResize);\n }\n return function () {\n return unobserve(currentElement, onInternalResize);\n };\n }, [elementRef.current, disabled]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n ref: mergedRef\n }) : mergedChildren);\n}\nvar RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefSingleObserver.displayName = 'SingleObserver';\n}\nexport default RefSingleObserver;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from \"./SingleObserver\";\nimport { Collection } from \"./Collection\";\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nimport { _rs } from \"./utils/observerUtil\";\nexport { /** @private Test only for mock trigger resize event */\n_rs };\nfunction ResizeObserver(props, ref) {\n var children = props.children;\n var childNodes = typeof children === 'function' ? [children] : toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n }\n }\n return childNodes.map(function (child, index) {\n var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n key: key,\n ref: index === 0 ? ref : undefined\n }), child);\n });\n}\nvar RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefResizeObserver.displayName = 'ResizeObserver';\n}\nRefResizeObserver.Collection = Collection;\nexport default RefResizeObserver;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n\n/** Get unique id for accessibility usage */\nexport function getUUID() {\n var retId;\n\n // Test never reach\n /* istanbul ignore if */\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n return retId;\n}\nexport default function useId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n setInnerId(\"rc_select_\".concat(getUUID()));\n }, []);\n return id || innerId;\n}","/**\n * BaseSelect provide some parsed data into context.\n * You can use this hooks to get them.\n */\n\nimport * as React from 'react';\nexport var BaseSelectContext = /*#__PURE__*/React.createContext(null);\nexport default function useBaseProps() {\n return React.useContext(BaseSelectContext);\n}","import * as React from 'react';\n\n/**\n * Locker return cached mark.\n * If set to `true`, will return `true` in a short time even if set `false`.\n * If set to `false` and then set to `true`, will change to `true`.\n * And after time duration, it will back to `null` automatically.\n */\nexport default function useLock() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 250;\n var lockRef = React.useRef(null);\n var timeoutRef = React.useRef(null);\n\n // Clean up\n React.useEffect(function () {\n return function () {\n window.clearTimeout(timeoutRef.current);\n };\n }, []);\n function doLock(locked) {\n if (locked || lockRef.current === null) {\n lockRef.current = locked;\n }\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(function () {\n lockRef.current = null;\n }, duration);\n }\n return [function () {\n return lockRef.current;\n }, doLock];\n}","import * as React from 'react';\nimport classNames from 'classnames';\nvar TransBtn = function TransBtn(_ref) {\n var className = _ref.className,\n customizeIcon = _ref.customizeIcon,\n customizeIconProps = _ref.customizeIconProps,\n _onMouseDown = _ref.onMouseDown,\n onClick = _ref.onClick,\n children = _ref.children;\n var icon;\n if (typeof customizeIcon === 'function') {\n icon = customizeIcon(customizeIconProps);\n } else {\n icon = customizeIcon;\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className,\n onMouseDown: function onMouseDown(event) {\n event.preventDefault();\n if (_onMouseDown) {\n _onMouseDown(event);\n }\n },\n style: {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n },\n unselectable: \"on\",\n onClick: onClick,\n \"aria-hidden\": true\n }, icon !== undefined ? icon : /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(className.split(/\\s+/).map(function (cls) {\n return \"\".concat(cls, \"-icon\");\n }))\n }, children));\n};\nexport default TransBtn;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { warning } from \"rc-util/es/warning\";\nvar Input = function Input(_ref, ref) {\n var _inputNode2, _inputNode2$props;\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n inputElement = _ref.inputElement,\n disabled = _ref.disabled,\n tabIndex = _ref.tabIndex,\n autoFocus = _ref.autoFocus,\n autoComplete = _ref.autoComplete,\n editable = _ref.editable,\n activeDescendantId = _ref.activeDescendantId,\n value = _ref.value,\n maxLength = _ref.maxLength,\n _onKeyDown = _ref.onKeyDown,\n _onMouseDown = _ref.onMouseDown,\n _onChange = _ref.onChange,\n onPaste = _ref.onPaste,\n _onCompositionStart = _ref.onCompositionStart,\n _onCompositionEnd = _ref.onCompositionEnd,\n open = _ref.open,\n attrs = _ref.attrs;\n var inputNode = inputElement || /*#__PURE__*/React.createElement(\"input\", null);\n var _inputNode = inputNode,\n originRef = _inputNode.ref,\n originProps = _inputNode.props;\n var onOriginKeyDown = originProps.onKeyDown,\n onOriginChange = originProps.onChange,\n onOriginMouseDown = originProps.onMouseDown,\n onOriginCompositionStart = originProps.onCompositionStart,\n onOriginCompositionEnd = originProps.onCompositionEnd,\n style = originProps.style;\n warning(!('maxLength' in inputNode.props), \"Passing 'maxLength' to input element directly may not work because input in BaseSelect is controlled.\");\n inputNode = /*#__PURE__*/React.cloneElement(inputNode, _objectSpread(_objectSpread(_objectSpread({\n type: 'search'\n }, originProps), {}, {\n // Override over origin props\n id: id,\n ref: composeRef(ref, originRef),\n disabled: disabled,\n tabIndex: tabIndex,\n autoComplete: autoComplete || 'off',\n autoFocus: autoFocus,\n className: classNames(\"\".concat(prefixCls, \"-selection-search-input\"), (_inputNode2 = inputNode) === null || _inputNode2 === void 0 ? void 0 : (_inputNode2$props = _inputNode2.props) === null || _inputNode2$props === void 0 ? void 0 : _inputNode2$props.className),\n role: 'combobox',\n 'aria-expanded': open,\n 'aria-haspopup': 'listbox',\n 'aria-owns': \"\".concat(id, \"_list\"),\n 'aria-autocomplete': 'list',\n 'aria-controls': \"\".concat(id, \"_list\"),\n 'aria-activedescendant': activeDescendantId\n }, attrs), {}, {\n value: editable ? value : '',\n maxLength: maxLength,\n readOnly: !editable,\n unselectable: !editable ? 'on' : null,\n style: _objectSpread(_objectSpread({}, style), {}, {\n opacity: editable ? null : 0\n }),\n onKeyDown: function onKeyDown(event) {\n _onKeyDown(event);\n if (onOriginKeyDown) {\n onOriginKeyDown(event);\n }\n },\n onMouseDown: function onMouseDown(event) {\n _onMouseDown(event);\n if (onOriginMouseDown) {\n onOriginMouseDown(event);\n }\n },\n onChange: function onChange(event) {\n _onChange(event);\n if (onOriginChange) {\n onOriginChange(event);\n }\n },\n onCompositionStart: function onCompositionStart(event) {\n _onCompositionStart(event);\n if (onOriginCompositionStart) {\n onOriginCompositionStart(event);\n }\n },\n onCompositionEnd: function onCompositionEnd(event) {\n _onCompositionEnd(event);\n if (onOriginCompositionEnd) {\n onOriginCompositionEnd(event);\n }\n },\n onPaste: onPaste\n }));\n return inputNode;\n};\nvar RefInput = /*#__PURE__*/React.forwardRef(Input);\nRefInput.displayName = 'Input';\nexport default RefInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n return value !== undefined ? [value] : [];\n}\nexport var isClient = typeof window !== 'undefined' && window.document && window.document.documentElement;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;\nexport function hasValue(value) {\n return value !== undefined && value !== null;\n}\nfunction isTitleType(title) {\n return ['string', 'number'].includes(_typeof(title));\n}\nexport function getTitle(item) {\n var title = undefined;\n if (item) {\n if (isTitleType(item.title)) {\n title = item.title.toString();\n } else if (isTitleType(item.label)) {\n title = item.label.toString();\n }\n }\n return title;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Overflow from 'rc-overflow';\nimport TransBtn from \"../TransBtn\";\nimport Input from \"./Input\";\nimport useLayoutEffect from \"../hooks/useLayoutEffect\";\nimport { getTitle } from \"../utils/commonUtil\";\nfunction itemKey(value) {\n var _value$key;\n return (_value$key = value.key) !== null && _value$key !== void 0 ? _value$key : value.value;\n}\nvar onPreventMouseDown = function onPreventMouseDown(event) {\n event.preventDefault();\n event.stopPropagation();\n};\nvar SelectSelector = function SelectSelector(props) {\n var id = props.id,\n prefixCls = props.prefixCls,\n values = props.values,\n open = props.open,\n searchValue = props.searchValue,\n autoClearSearchValue = props.autoClearSearchValue,\n inputRef = props.inputRef,\n placeholder = props.placeholder,\n disabled = props.disabled,\n mode = props.mode,\n showSearch = props.showSearch,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n activeDescendantId = props.activeDescendantId,\n tabIndex = props.tabIndex,\n removeIcon = props.removeIcon,\n maxTagCount = props.maxTagCount,\n maxTagTextLength = props.maxTagTextLength,\n _props$maxTagPlacehol = props.maxTagPlaceholder,\n maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n return \"+ \".concat(omittedValues.length, \" ...\");\n } : _props$maxTagPlacehol,\n tagRender = props.tagRender,\n onToggleOpen = props.onToggleOpen,\n onRemove = props.onRemove,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n var measureRef = React.useRef(null);\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n inputWidth = _useState2[0],\n setInputWidth = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n var selectionPrefixCls = \"\".concat(prefixCls, \"-selection\");\n\n // ===================== Search ======================\n var inputValue = open || mode === \"multiple\" && autoClearSearchValue === false || mode === 'tags' ? searchValue : '';\n var inputEditable = mode === 'tags' || mode === \"multiple\" && autoClearSearchValue === false || showSearch && (open || focused);\n\n // We measure width and set to the input immediately\n useLayoutEffect(function () {\n setInputWidth(measureRef.current.scrollWidth);\n }, [inputValue]);\n\n // ===================== Render ======================\n // >>> Render Selector Node. Includes Item & Rest\n function defaultRenderSelector(item, content, itemDisabled, closable, onClose) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(selectionPrefixCls, \"-item\"), _defineProperty({}, \"\".concat(selectionPrefixCls, \"-item-disabled\"), itemDisabled)),\n title: getTitle(item)\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-item-content\")\n }, content), closable && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(selectionPrefixCls, \"-item-remove\"),\n onMouseDown: onPreventMouseDown,\n onClick: onClose,\n customizeIcon: removeIcon\n }, \"\\xD7\"));\n }\n function customizeRenderSelector(value, content, itemDisabled, closable, onClose) {\n var onMouseDown = function onMouseDown(e) {\n onPreventMouseDown(e);\n onToggleOpen(!open);\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: onMouseDown\n }, tagRender({\n label: content,\n value: value,\n disabled: itemDisabled,\n closable: closable,\n onClose: onClose\n }));\n }\n function renderItem(valueItem) {\n var itemDisabled = valueItem.disabled,\n label = valueItem.label,\n value = valueItem.value;\n var closable = !disabled && !itemDisabled;\n var displayLabel = label;\n if (typeof maxTagTextLength === 'number') {\n if (typeof label === 'string' || typeof label === 'number') {\n var strLabel = String(displayLabel);\n if (strLabel.length > maxTagTextLength) {\n displayLabel = \"\".concat(strLabel.slice(0, maxTagTextLength), \"...\");\n }\n }\n }\n var onClose = function onClose(event) {\n if (event) event.stopPropagation();\n onRemove(valueItem);\n };\n return typeof tagRender === 'function' ? customizeRenderSelector(value, displayLabel, itemDisabled, closable, onClose) : defaultRenderSelector(valueItem, displayLabel, itemDisabled, closable, onClose);\n }\n function renderRest(omittedValues) {\n var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n return defaultRenderSelector({\n title: content\n }, content, false);\n }\n\n // >>> Input Node\n var inputNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(selectionPrefixCls, \"-search\"),\n style: {\n width: inputWidth\n },\n onFocus: function onFocus() {\n setFocused(true);\n },\n onBlur: function onBlur() {\n setFocused(false);\n }\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n open: open,\n prefixCls: prefixCls,\n id: id,\n inputElement: null,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n activeDescendantId: activeDescendantId,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: onInputChange,\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true)\n }), /*#__PURE__*/React.createElement(\"span\", {\n ref: measureRef,\n className: \"\".concat(selectionPrefixCls, \"-search-mirror\"),\n \"aria-hidden\": true\n }, inputValue, \"\\xA0\"));\n\n // >>> Selections\n var selectionNode = /*#__PURE__*/React.createElement(Overflow, {\n prefixCls: \"\".concat(selectionPrefixCls, \"-overflow\"),\n data: values,\n renderItem: renderItem,\n renderRest: renderRest,\n suffix: inputNode,\n itemKey: itemKey,\n maxCount: maxTagCount\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, selectionNode, !values.length && !inputValue && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-placeholder\")\n }, placeholder));\n};\nexport default SelectSelector;","/* eslint-disable react-hooks/rules-of-hooks */\nimport * as React from 'react';\nimport { isBrowserClient } from \"../utils/commonUtil\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nexport default function useLayoutEffect(effect, deps) {\n // Never happen in test env\n if (isBrowserClient) {\n /* istanbul ignore next */\n React.useLayoutEffect(effect, deps);\n } else {\n React.useEffect(effect, deps);\n }\n}\n/* eslint-enable */","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Input from \"./Input\";\nimport { getTitle } from \"../utils/commonUtil\";\nvar SingleSelector = function SingleSelector(props) {\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n id = props.id,\n inputRef = props.inputRef,\n disabled = props.disabled,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n activeDescendantId = props.activeDescendantId,\n mode = props.mode,\n open = props.open,\n values = props.values,\n placeholder = props.placeholder,\n tabIndex = props.tabIndex,\n showSearch = props.showSearch,\n searchValue = props.searchValue,\n activeValue = props.activeValue,\n maxLength = props.maxLength,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n inputChanged = _React$useState2[0],\n setInputChanged = _React$useState2[1];\n var combobox = mode === 'combobox';\n var inputEditable = combobox || showSearch;\n var item = values[0];\n var inputValue = searchValue || '';\n if (combobox && activeValue && !inputChanged) {\n inputValue = activeValue;\n }\n React.useEffect(function () {\n if (combobox) {\n setInputChanged(false);\n }\n }, [combobox, activeValue]);\n\n // Not show text when closed expect combobox mode\n var hasTextInput = mode !== 'combobox' && !open && !showSearch ? false : !!inputValue;\n\n // Get title\n var title = getTitle(item);\n var renderPlaceholder = function renderPlaceholder() {\n if (item) {\n return null;\n }\n var hiddenStyle = hasTextInput ? {\n visibility: 'hidden'\n } : undefined;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-placeholder\"),\n style: hiddenStyle\n }, placeholder);\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-search\")\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n prefixCls: prefixCls,\n id: id,\n open: open,\n inputElement: inputElement,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n activeDescendantId: activeDescendantId,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: function onChange(e) {\n setInputChanged(true);\n onInputChange(e);\n },\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true),\n maxLength: combobox ? maxLength : undefined\n })), !combobox && item ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-item\"),\n title: title\n // 当 Select 已经选中选项时,还需 selection 隐藏但留在原地占位\n // https://github.com/ant-design/ant-design/issues/27688\n // https://github.com/ant-design/ant-design/issues/41530\n ,\n style: hasTextInput ? {\n visibility: 'hidden'\n } : undefined\n }, item.label) : null, renderPlaceholder());\n};\nexport default SingleSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Cursor rule:\n * 1. Only `showSearch` enabled\n * 2. Only `open` is `true`\n * 3. When typing, set `open` to `true` which hit rule of 2\n *\n * Accessibility:\n * - https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n */\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport MultipleSelector from \"./MultipleSelector\";\nimport SingleSelector from \"./SingleSelector\";\nimport useLock from \"../hooks/useLock\";\nimport { isValidateOpenKey } from \"../utils/keyUtil\";\nvar Selector = function Selector(props, ref) {\n var inputRef = useRef(null);\n var compositionStatusRef = useRef(false);\n var prefixCls = props.prefixCls,\n open = props.open,\n mode = props.mode,\n showSearch = props.showSearch,\n tokenWithEnter = props.tokenWithEnter,\n autoClearSearchValue = props.autoClearSearchValue,\n onSearch = props.onSearch,\n onSearchSubmit = props.onSearchSubmit,\n onToggleOpen = props.onToggleOpen,\n onInputKeyDown = props.onInputKeyDown,\n domRef = props.domRef;\n\n // ======================= Ref =======================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n inputRef.current.focus();\n },\n blur: function blur() {\n inputRef.current.blur();\n }\n };\n });\n\n // ====================== Input ======================\n var _useLock = useLock(0),\n _useLock2 = _slicedToArray(_useLock, 2),\n getInputMouseDown = _useLock2[0],\n setInputMouseDown = _useLock2[1];\n var onInternalInputKeyDown = function onInternalInputKeyDown(event) {\n var which = event.which;\n if (which === KeyCode.UP || which === KeyCode.DOWN) {\n event.preventDefault();\n }\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n if (which === KeyCode.ENTER && mode === 'tags' && !compositionStatusRef.current && !open) {\n // When menu isn't open, OptionList won't trigger a value change\n // So when enter is pressed, the tag's input value should be emitted here to let selector know\n onSearchSubmit === null || onSearchSubmit === void 0 ? void 0 : onSearchSubmit(event.target.value);\n }\n if (isValidateOpenKey(which)) {\n onToggleOpen(true);\n }\n };\n\n /**\n * We can not use `findDOMNode` sine it will get warning,\n * have to use timer to check if is input element.\n */\n var onInternalInputMouseDown = function onInternalInputMouseDown() {\n setInputMouseDown(true);\n };\n\n // When paste come, ignore next onChange\n var pastedTextRef = useRef(null);\n var triggerOnSearch = function triggerOnSearch(value) {\n if (onSearch(value, true, compositionStatusRef.current) !== false) {\n onToggleOpen(true);\n }\n };\n var onInputCompositionStart = function onInputCompositionStart() {\n compositionStatusRef.current = true;\n };\n var onInputCompositionEnd = function onInputCompositionEnd(e) {\n compositionStatusRef.current = false;\n\n // Trigger search again to support `tokenSeparators` with typewriting\n if (mode !== 'combobox') {\n triggerOnSearch(e.target.value);\n }\n };\n var onInputChange = function onInputChange(event) {\n var value = event.target.value;\n\n // Pasted text should replace back to origin content\n if (tokenWithEnter && pastedTextRef.current && /[\\r\\n]/.test(pastedTextRef.current)) {\n // CRLF will be treated as a single space for input element\n var replacedText = pastedTextRef.current.replace(/[\\r\\n]+$/, '').replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n value = value.replace(replacedText, pastedTextRef.current);\n }\n pastedTextRef.current = null;\n triggerOnSearch(value);\n };\n var onInputPaste = function onInputPaste(e) {\n var clipboardData = e.clipboardData;\n var value = clipboardData.getData('text');\n pastedTextRef.current = value;\n };\n var onClick = function onClick(_ref) {\n var target = _ref.target;\n if (target !== inputRef.current) {\n // Should focus input if click the selector\n var isIE = document.body.style.msTouchAction !== undefined;\n if (isIE) {\n setTimeout(function () {\n inputRef.current.focus();\n });\n } else {\n inputRef.current.focus();\n }\n }\n };\n var onMouseDown = function onMouseDown(event) {\n var inputMouseDown = getInputMouseDown();\n\n // when mode is combobox, don't prevent default behavior\n // https://github.com/ant-design/ant-design/issues/37320\n if (event.target !== inputRef.current && !inputMouseDown && mode !== 'combobox') {\n event.preventDefault();\n }\n if (mode !== 'combobox' && (!showSearch || !inputMouseDown) || !open) {\n if (open && autoClearSearchValue !== false) {\n onSearch('', true, false);\n }\n onToggleOpen();\n }\n };\n\n // ================= Inner Selector ==================\n var sharedProps = {\n inputRef: inputRef,\n onInputKeyDown: onInternalInputKeyDown,\n onInputMouseDown: onInternalInputMouseDown,\n onInputChange: onInputChange,\n onInputPaste: onInputPaste,\n onInputCompositionStart: onInputCompositionStart,\n onInputCompositionEnd: onInputCompositionEnd\n };\n var selectNode = mode === 'multiple' || mode === 'tags' ? /*#__PURE__*/React.createElement(MultipleSelector, _extends({}, props, sharedProps)) : /*#__PURE__*/React.createElement(SingleSelector, _extends({}, props, sharedProps));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domRef,\n className: \"\".concat(prefixCls, \"-selector\"),\n onClick: onClick,\n onMouseDown: onMouseDown\n }, selectNode);\n};\nvar ForwardSelector = /*#__PURE__*/React.forwardRef(Selector);\nForwardSelector.displayName = 'Selector';\nexport default ForwardSelector;","import KeyCode from \"rc-util/es/KeyCode\";\n\n/** keyCode Judgment function */\nexport function isValidateOpenKey(currentKeyCode) {\n return ![\n // System function button\n KeyCode.ESC, KeyCode.SHIFT, KeyCode.BACKSPACE, KeyCode.TAB, KeyCode.WIN_KEY, KeyCode.ALT, KeyCode.META, KeyCode.WIN_KEY_RIGHT, KeyCode.CTRL, KeyCode.SEMICOLON, KeyCode.EQUALS, KeyCode.CAPS_LOCK, KeyCode.CONTEXT_MENU,\n // F1-F12\n KeyCode.F1, KeyCode.F2, KeyCode.F3, KeyCode.F4, KeyCode.F5, KeyCode.F6, KeyCode.F7, KeyCode.F8, KeyCode.F9, KeyCode.F10, KeyCode.F11, KeyCode.F12].includes(currentKeyCode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"disabled\", \"visible\", \"children\", \"popupElement\", \"containerWidth\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"direction\", \"placement\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"getPopupContainer\", \"empty\", \"getTriggerDOMNode\", \"onPopupVisibleChange\", \"onPopupMouseEnter\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nvar getBuiltInPlacements = function getBuiltInPlacements(dropdownMatchSelectWidth) {\n // Enable horizontal overflow auto-adjustment when a custom dropdown width is provided\n var adjustX = dropdownMatchSelectWidth === true ? 0 : 1;\n return {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n }\n };\n};\nvar SelectTrigger = function SelectTrigger(props, ref) {\n var prefixCls = props.prefixCls,\n disabled = props.disabled,\n visible = props.visible,\n children = props.children,\n popupElement = props.popupElement,\n containerWidth = props.containerWidth,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction,\n placement = props.placement,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n getPopupContainer = props.getPopupContainer,\n empty = props.empty,\n getTriggerDOMNode = props.getTriggerDOMNode,\n onPopupVisibleChange = props.onPopupVisibleChange,\n onPopupMouseEnter = props.onPopupMouseEnter,\n restProps = _objectWithoutProperties(props, _excluded);\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var popupNode = popupElement;\n if (dropdownRender) {\n popupNode = dropdownRender(popupElement);\n }\n var builtInPlacements = React.useMemo(function () {\n return getBuiltInPlacements(dropdownMatchSelectWidth);\n }, [dropdownMatchSelectWidth]);\n\n // ===================== Motion ======================\n var mergedTransitionName = animation ? \"\".concat(dropdownPrefixCls, \"-\").concat(animation) : transitionName;\n\n // ======================= Ref =======================\n var popupRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n getPopupElement: function getPopupElement() {\n return popupRef.current;\n }\n };\n });\n var popupStyle = _objectSpread({\n minWidth: containerWidth\n }, dropdownStyle);\n if (typeof dropdownMatchSelectWidth === 'number') {\n popupStyle.width = dropdownMatchSelectWidth;\n } else if (dropdownMatchSelectWidth) {\n popupStyle.width = containerWidth;\n }\n return /*#__PURE__*/React.createElement(Trigger, _extends({}, restProps, {\n showAction: onPopupVisibleChange ? ['click'] : [],\n hideAction: onPopupVisibleChange ? ['click'] : [],\n popupPlacement: placement || (direction === 'rtl' ? 'bottomRight' : 'bottomLeft'),\n builtinPlacements: builtInPlacements,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: mergedTransitionName,\n popup: /*#__PURE__*/React.createElement(\"div\", {\n ref: popupRef,\n onMouseEnter: onPopupMouseEnter\n }, popupNode),\n popupAlign: dropdownAlign,\n popupVisible: visible,\n getPopupContainer: getPopupContainer,\n popupClassName: classNames(dropdownClassName, _defineProperty({}, \"\".concat(dropdownPrefixCls, \"-empty\"), empty)),\n popupStyle: popupStyle,\n getTriggerDOMNode: getTriggerDOMNode,\n onPopupVisibleChange: onPopupVisibleChange\n }), children);\n};\nvar RefSelectTrigger = /*#__PURE__*/React.forwardRef(SelectTrigger);\nRefSelectTrigger.displayName = 'SelectTrigger';\nexport default RefSelectTrigger;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nfunction getKey(data, index) {\n var key = data.key;\n var value;\n if ('value' in data) {\n value = data.value;\n }\n if (key !== null && key !== undefined) {\n return key;\n }\n if (value !== undefined) {\n return value;\n }\n return \"rc-index-key-\".concat(index);\n}\nexport function fillFieldNames(fieldNames, childrenAsData) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n options = _ref.options;\n return {\n label: label || (childrenAsData ? 'children' : 'label'),\n value: value || 'value',\n options: options || 'options'\n };\n}\n\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\nexport function flattenOptions(options) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n fieldNames = _ref2.fieldNames,\n childrenAsData = _ref2.childrenAsData;\n var flattenList = [];\n var _fillFieldNames = fillFieldNames(fieldNames, false),\n fieldLabel = _fillFieldNames.label,\n fieldValue = _fillFieldNames.value,\n fieldOptions = _fillFieldNames.options;\n function dig(list, isGroupOption) {\n list.forEach(function (data) {\n var label = data[fieldLabel];\n if (isGroupOption || !(fieldOptions in data)) {\n var value = data[fieldValue];\n\n // Option\n flattenList.push({\n key: getKey(data, flattenList.length),\n groupOption: isGroupOption,\n data: data,\n label: label,\n value: value\n });\n } else {\n var grpLabel = label;\n if (grpLabel === undefined && childrenAsData) {\n grpLabel = data.label;\n }\n\n // Option Group\n flattenList.push({\n key: getKey(data, flattenList.length),\n group: true,\n data: data,\n label: grpLabel\n });\n dig(data[fieldOptions], true);\n }\n });\n }\n dig(options, false);\n return flattenList;\n}\n\n/**\n * Inject `props` into `option` for legacy usage\n */\nexport function injectPropsWithOption(option) {\n var newOption = _objectSpread({}, option);\n if (!('props' in newOption)) {\n Object.defineProperty(newOption, 'props', {\n get: function get() {\n warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n return newOption;\n }\n });\n }\n return newOption;\n}\nexport function getSeparatedContent(text, tokens) {\n if (!tokens || !tokens.length) {\n return null;\n }\n var match = false;\n function separate(str, _ref3) {\n var _ref4 = _toArray(_ref3),\n token = _ref4[0],\n restTokens = _ref4.slice(1);\n if (!token) {\n return [str];\n }\n var list = str.split(token);\n match = match || list.length > 1;\n return list.reduce(function (prevList, unitStr) {\n return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n }, []).filter(function (unit) {\n return unit;\n });\n }\n var list = separate(text, tokens);\n return match ? list : null;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"showSearch\", \"tagRender\", \"direction\", \"omitDomProps\", \"displayValues\", \"onDisplayValuesChange\", \"emptyOptions\", \"notFoundContent\", \"onClear\", \"mode\", \"disabled\", \"loading\", \"getInputElement\", \"getRawInputElement\", \"open\", \"defaultOpen\", \"onDropdownVisibleChange\", \"activeValue\", \"onActiveValueChange\", \"activeDescendantId\", \"searchValue\", \"autoClearSearchValue\", \"onSearch\", \"onSearchSplit\", \"tokenSeparators\", \"allowClear\", \"showArrow\", \"inputIcon\", \"clearIcon\", \"OptionList\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"placement\", \"getPopupContainer\", \"showAction\", \"onFocus\", \"onBlur\", \"onKeyUp\", \"onKeyDown\", \"onMouseDown\"];\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { BaseSelectContext } from \"./hooks/useBaseProps\";\nimport useDelayReset from \"./hooks/useDelayReset\";\nimport useLock from \"./hooks/useLock\";\nimport useSelectTriggerControl from \"./hooks/useSelectTriggerControl\";\nimport Selector from \"./Selector\";\nimport SelectTrigger from \"./SelectTrigger\";\nimport TransBtn from \"./TransBtn\";\nimport { getSeparatedContent } from \"./utils/valueUtil\";\nvar DEFAULT_OMIT_PROPS = ['value', 'onChange', 'removeIcon', 'placeholder', 'autoFocus', 'maxTagCount', 'maxTagTextLength', 'maxTagPlaceholder', 'choiceTransitionName', 'onInputKeyDown', 'onPopupScroll', 'tabIndex'];\nexport function isMultiple(mode) {\n return mode === 'tags' || mode === 'multiple';\n}\nvar BaseSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _customizeRawInputEle, _classNames2;\n var id = props.id,\n prefixCls = props.prefixCls,\n className = props.className,\n showSearch = props.showSearch,\n tagRender = props.tagRender,\n direction = props.direction,\n omitDomProps = props.omitDomProps,\n displayValues = props.displayValues,\n onDisplayValuesChange = props.onDisplayValuesChange,\n emptyOptions = props.emptyOptions,\n _props$notFoundConten = props.notFoundContent,\n notFoundContent = _props$notFoundConten === void 0 ? 'Not Found' : _props$notFoundConten,\n onClear = props.onClear,\n mode = props.mode,\n disabled = props.disabled,\n loading = props.loading,\n getInputElement = props.getInputElement,\n getRawInputElement = props.getRawInputElement,\n open = props.open,\n defaultOpen = props.defaultOpen,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n activeValue = props.activeValue,\n onActiveValueChange = props.onActiveValueChange,\n activeDescendantId = props.activeDescendantId,\n searchValue = props.searchValue,\n autoClearSearchValue = props.autoClearSearchValue,\n onSearch = props.onSearch,\n onSearchSplit = props.onSearchSplit,\n tokenSeparators = props.tokenSeparators,\n allowClear = props.allowClear,\n showArrow = props.showArrow,\n inputIcon = props.inputIcon,\n clearIcon = props.clearIcon,\n OptionList = props.OptionList,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n placement = props.placement,\n getPopupContainer = props.getPopupContainer,\n _props$showAction = props.showAction,\n showAction = _props$showAction === void 0 ? [] : _props$showAction,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyUp = props.onKeyUp,\n onKeyDown = props.onKeyDown,\n onMouseDown = props.onMouseDown,\n restProps = _objectWithoutProperties(props, _excluded);\n\n // ============================== MISC ==============================\n var multiple = isMultiple(mode);\n var mergedShowSearch = (showSearch !== undefined ? showSearch : multiple) || mode === 'combobox';\n var domProps = _objectSpread({}, restProps);\n DEFAULT_OMIT_PROPS.forEach(function (propName) {\n delete domProps[propName];\n });\n omitDomProps === null || omitDomProps === void 0 ? void 0 : omitDomProps.forEach(function (propName) {\n delete domProps[propName];\n });\n\n // ============================= Mobile =============================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n React.useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []);\n\n // ============================== Refs ==============================\n var containerRef = React.useRef(null);\n var selectorDomRef = React.useRef(null);\n var triggerRef = React.useRef(null);\n var selectorRef = React.useRef(null);\n var listRef = React.useRef(null);\n\n /** Used for component focused management */\n var _useDelayReset = useDelayReset(),\n _useDelayReset2 = _slicedToArray(_useDelayReset, 3),\n mockFocused = _useDelayReset2[0],\n setMockFocused = _useDelayReset2[1],\n cancelSetMockFocused = _useDelayReset2[2];\n\n // =========================== Imperative ===========================\n React.useImperativeHandle(ref, function () {\n var _selectorRef$current, _selectorRef$current2;\n return {\n focus: (_selectorRef$current = selectorRef.current) === null || _selectorRef$current === void 0 ? void 0 : _selectorRef$current.focus,\n blur: (_selectorRef$current2 = selectorRef.current) === null || _selectorRef$current2 === void 0 ? void 0 : _selectorRef$current2.blur,\n scrollTo: function scrollTo(arg) {\n var _listRef$current;\n return (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(arg);\n }\n };\n });\n\n // ========================== Search Value ==========================\n var mergedSearchValue = React.useMemo(function () {\n var _displayValues$;\n if (mode !== 'combobox') {\n return searchValue;\n }\n var val = (_displayValues$ = displayValues[0]) === null || _displayValues$ === void 0 ? void 0 : _displayValues$.value;\n return typeof val === 'string' || typeof val === 'number' ? String(val) : '';\n }, [searchValue, mode, displayValues]);\n\n // ========================== Custom Input ==========================\n // Only works in `combobox`\n var customizeInputElement = mode === 'combobox' && typeof getInputElement === 'function' && getInputElement() || null;\n\n // Used for customize replacement for `rc-cascader`\n var customizeRawInputElement = typeof getRawInputElement === 'function' && getRawInputElement();\n var customizeRawInputRef = useComposeRef(selectorDomRef, customizeRawInputElement === null || customizeRawInputElement === void 0 ? void 0 : (_customizeRawInputEle = customizeRawInputElement.props) === null || _customizeRawInputEle === void 0 ? void 0 : _customizeRawInputEle.ref);\n\n // ============================== Open ==============================\n var _useMergedState = useMergedState(undefined, {\n defaultValue: defaultOpen,\n value: open\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerOpen = _useMergedState2[0],\n setInnerOpen = _useMergedState2[1];\n var mergedOpen = innerOpen;\n\n // Not trigger `open` in `combobox` when `notFoundContent` is empty\n var emptyListContent = !notFoundContent && emptyOptions;\n if (disabled || emptyListContent && mergedOpen && mode === 'combobox') {\n mergedOpen = false;\n }\n var triggerOpen = emptyListContent ? false : mergedOpen;\n var onToggleOpen = React.useCallback(function (newOpen) {\n var nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n if (!disabled) {\n setInnerOpen(nextOpen);\n if (mergedOpen !== nextOpen) {\n onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 ? void 0 : onDropdownVisibleChange(nextOpen);\n }\n }\n }, [disabled, mergedOpen, setInnerOpen, onDropdownVisibleChange]);\n\n // ============================= Search =============================\n var tokenWithEnter = React.useMemo(function () {\n return (tokenSeparators || []).some(function (tokenSeparator) {\n return ['\\n', '\\r\\n'].includes(tokenSeparator);\n });\n }, [tokenSeparators]);\n var onInternalSearch = function onInternalSearch(searchText, fromTyping, isCompositing) {\n var ret = true;\n var newSearchText = searchText;\n onActiveValueChange === null || onActiveValueChange === void 0 ? void 0 : onActiveValueChange(null);\n\n // Check if match the `tokenSeparators`\n var patchLabels = isCompositing ? null : getSeparatedContent(searchText, tokenSeparators);\n\n // Ignore combobox since it's not split-able\n if (mode !== 'combobox' && patchLabels) {\n newSearchText = '';\n onSearchSplit === null || onSearchSplit === void 0 ? void 0 : onSearchSplit(patchLabels);\n\n // Should close when paste finish\n onToggleOpen(false);\n\n // Tell Selector that break next actions\n ret = false;\n }\n if (onSearch && mergedSearchValue !== newSearchText) {\n onSearch(newSearchText, {\n source: fromTyping ? 'typing' : 'effect'\n });\n }\n return ret;\n };\n\n // Only triggered when menu is closed & mode is tags\n // If menu is open, OptionList will take charge\n // If mode isn't tags, press enter is not meaningful when you can't see any option\n var onInternalSearchSubmit = function onInternalSearchSubmit(searchText) {\n // prevent empty tags from appearing when you click the Enter button\n if (!searchText || !searchText.trim()) {\n return;\n }\n onSearch(searchText, {\n source: 'submit'\n });\n };\n\n // Close will clean up single mode search text\n React.useEffect(function () {\n if (!mergedOpen && !multiple && mode !== 'combobox') {\n onInternalSearch('', false, false);\n }\n }, [mergedOpen]);\n\n // ============================ Disabled ============================\n // Close dropdown & remove focus state when disabled change\n React.useEffect(function () {\n if (innerOpen && disabled) {\n setInnerOpen(false);\n }\n if (disabled) {\n setMockFocused(false);\n }\n }, [disabled]);\n\n // ============================ Keyboard ============================\n /**\n * We record input value here to check if can press to clean up by backspace\n * - null: Key is not down, this is reset by key up\n * - true: Search text is empty when first time backspace down\n * - false: Search text is not empty when first time backspace down\n */\n var _useLock = useLock(),\n _useLock2 = _slicedToArray(_useLock, 2),\n getClearLock = _useLock2[0],\n setClearLock = _useLock2[1];\n\n // KeyDown\n var onInternalKeyDown = function onInternalKeyDown(event) {\n var clearLock = getClearLock();\n var which = event.which;\n if (which === KeyCode.ENTER) {\n // Do not submit form when type in the input\n if (mode !== 'combobox') {\n event.preventDefault();\n }\n\n // We only manage open state here, close logic should handle by list component\n if (!mergedOpen) {\n onToggleOpen(true);\n }\n }\n setClearLock(!!mergedSearchValue);\n\n // Remove value by `backspace`\n if (which === KeyCode.BACKSPACE && !clearLock && multiple && !mergedSearchValue && displayValues.length) {\n var cloneDisplayValues = _toConsumableArray(displayValues);\n var removedDisplayValue = null;\n for (var i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {\n var current = cloneDisplayValues[i];\n if (!current.disabled) {\n cloneDisplayValues.splice(i, 1);\n removedDisplayValue = current;\n break;\n }\n }\n if (removedDisplayValue) {\n onDisplayValuesChange(cloneDisplayValues, {\n type: 'remove',\n values: [removedDisplayValue]\n });\n }\n }\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n if (mergedOpen && listRef.current) {\n var _listRef$current2;\n (_listRef$current2 = listRef.current).onKeyDown.apply(_listRef$current2, [event].concat(rest));\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown.apply(void 0, [event].concat(rest));\n };\n\n // KeyUp\n var onInternalKeyUp = function onInternalKeyUp(event) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n if (mergedOpen && listRef.current) {\n var _listRef$current3;\n (_listRef$current3 = listRef.current).onKeyUp.apply(_listRef$current3, [event].concat(rest));\n }\n onKeyUp === null || onKeyUp === void 0 ? void 0 : onKeyUp.apply(void 0, [event].concat(rest));\n };\n\n // ============================ Selector ============================\n var onSelectorRemove = function onSelectorRemove(val) {\n var newValues = displayValues.filter(function (i) {\n return i !== val;\n });\n onDisplayValuesChange(newValues, {\n type: 'remove',\n values: [val]\n });\n };\n\n // ========================== Focus / Blur ==========================\n /** Record real focus status */\n var focusRef = React.useRef(false);\n var onContainerFocus = function onContainerFocus() {\n setMockFocused(true);\n if (!disabled) {\n if (onFocus && !focusRef.current) {\n onFocus.apply(void 0, arguments);\n }\n\n // `showAction` should handle `focus` if set\n if (showAction.includes('focus')) {\n onToggleOpen(true);\n }\n }\n focusRef.current = true;\n };\n var onContainerBlur = function onContainerBlur() {\n setMockFocused(false, function () {\n focusRef.current = false;\n onToggleOpen(false);\n });\n if (disabled) {\n return;\n }\n if (mergedSearchValue) {\n // `tags` mode should move `searchValue` into values\n if (mode === 'tags') {\n onSearch(mergedSearchValue, {\n source: 'submit'\n });\n } else if (mode === 'multiple') {\n // `multiple` mode only clean the search value but not trigger event\n onSearch('', {\n source: 'blur'\n });\n }\n }\n if (onBlur) {\n onBlur.apply(void 0, arguments);\n }\n };\n\n // Give focus back of Select\n var activeTimeoutIds = [];\n React.useEffect(function () {\n return function () {\n activeTimeoutIds.forEach(function (timeoutId) {\n return clearTimeout(timeoutId);\n });\n activeTimeoutIds.splice(0, activeTimeoutIds.length);\n };\n }, []);\n var onInternalMouseDown = function onInternalMouseDown(event) {\n var _triggerRef$current;\n var target = event.target;\n var popupElement = (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.getPopupElement();\n\n // We should give focus back to selector if clicked item is not focusable\n if (popupElement && popupElement.contains(target)) {\n var timeoutId = setTimeout(function () {\n var index = activeTimeoutIds.indexOf(timeoutId);\n if (index !== -1) {\n activeTimeoutIds.splice(index, 1);\n }\n cancelSetMockFocused();\n if (!mobile && !popupElement.contains(document.activeElement)) {\n var _selectorRef$current3;\n (_selectorRef$current3 = selectorRef.current) === null || _selectorRef$current3 === void 0 ? void 0 : _selectorRef$current3.focus();\n }\n });\n activeTimeoutIds.push(timeoutId);\n }\n for (var _len3 = arguments.length, restArgs = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n restArgs[_key3 - 1] = arguments[_key3];\n }\n onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown.apply(void 0, [event].concat(restArgs));\n };\n\n // ============================ Dropdown ============================\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n containerWidth = _React$useState4[0],\n setContainerWidth = _React$useState4[1];\n var _React$useState5 = React.useState({}),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n forceUpdate = _React$useState6[1];\n // We need force update here since popup dom is render async\n function onPopupMouseEnter() {\n forceUpdate({});\n }\n useLayoutEffect(function () {\n if (triggerOpen) {\n var _containerRef$current;\n var newWidth = Math.ceil((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.offsetWidth);\n if (containerWidth !== newWidth && !Number.isNaN(newWidth)) {\n setContainerWidth(newWidth);\n }\n }\n }, [triggerOpen]);\n\n // Used for raw custom input trigger\n var onTriggerVisibleChange;\n if (customizeRawInputElement) {\n onTriggerVisibleChange = function onTriggerVisibleChange(newOpen) {\n onToggleOpen(newOpen);\n };\n }\n\n // Close when click on non-select element\n useSelectTriggerControl(function () {\n var _triggerRef$current2;\n return [containerRef.current, (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.getPopupElement()];\n }, triggerOpen, onToggleOpen, !!customizeRawInputElement);\n\n // ============================ Context =============================\n var baseSelectContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, props), {}, {\n notFoundContent: notFoundContent,\n open: mergedOpen,\n triggerOpen: triggerOpen,\n id: id,\n showSearch: mergedShowSearch,\n multiple: multiple,\n toggleOpen: onToggleOpen\n });\n }, [props, notFoundContent, triggerOpen, mergedOpen, id, mergedShowSearch, multiple, onToggleOpen]);\n\n // ==================================================================\n // == Render ==\n // ==================================================================\n\n // ============================= Arrow ==============================\n var mergedShowArrow = showArrow !== undefined ? showArrow : loading || !multiple && mode !== 'combobox';\n var arrowNode;\n if (mergedShowArrow) {\n arrowNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: classNames(\"\".concat(prefixCls, \"-arrow\"), _defineProperty({}, \"\".concat(prefixCls, \"-arrow-loading\"), loading)),\n customizeIcon: inputIcon,\n customizeIconProps: {\n loading: loading,\n searchValue: mergedSearchValue,\n open: mergedOpen,\n focused: mockFocused,\n showSearch: mergedShowSearch\n }\n });\n }\n\n // ============================= Clear ==============================\n var clearNode;\n var onClearMouseDown = function onClearMouseDown() {\n var _selectorRef$current4;\n onClear === null || onClear === void 0 ? void 0 : onClear();\n (_selectorRef$current4 = selectorRef.current) === null || _selectorRef$current4 === void 0 ? void 0 : _selectorRef$current4.focus();\n onDisplayValuesChange([], {\n type: 'clear',\n values: displayValues\n });\n onInternalSearch('', false, false);\n };\n if (!disabled && allowClear && (displayValues.length || mergedSearchValue) && !(mode === 'combobox' && mergedSearchValue === '')) {\n clearNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(prefixCls, \"-clear\"),\n onMouseDown: onClearMouseDown,\n customizeIcon: clearIcon\n }, \"\\xD7\");\n }\n\n // =========================== OptionList ===========================\n var optionList = /*#__PURE__*/React.createElement(OptionList, {\n ref: listRef\n });\n\n // ============================= Select =============================\n var mergedClassName = classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mockFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-multiple\"), multiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-single\"), !multiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-allow-clear\"), allowClear), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-arrow\"), mergedShowArrow), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-open\"), mergedOpen), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-customize-input\"), customizeInputElement), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-search\"), mergedShowSearch), _classNames2));\n\n // >>> Selector\n var selectorNode = /*#__PURE__*/React.createElement(SelectTrigger, {\n ref: triggerRef,\n disabled: disabled,\n prefixCls: prefixCls,\n visible: triggerOpen,\n popupElement: optionList,\n containerWidth: containerWidth,\n animation: animation,\n transitionName: transitionName,\n dropdownStyle: dropdownStyle,\n dropdownClassName: dropdownClassName,\n direction: direction,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n dropdownRender: dropdownRender,\n dropdownAlign: dropdownAlign,\n placement: placement,\n getPopupContainer: getPopupContainer,\n empty: emptyOptions,\n getTriggerDOMNode: function getTriggerDOMNode() {\n return selectorDomRef.current;\n },\n onPopupVisibleChange: onTriggerVisibleChange,\n onPopupMouseEnter: onPopupMouseEnter\n }, customizeRawInputElement ? /*#__PURE__*/React.cloneElement(customizeRawInputElement, {\n ref: customizeRawInputRef\n }) : /*#__PURE__*/React.createElement(Selector, _extends({}, props, {\n domRef: selectorDomRef,\n prefixCls: prefixCls,\n inputElement: customizeInputElement,\n ref: selectorRef,\n id: id,\n showSearch: mergedShowSearch,\n autoClearSearchValue: autoClearSearchValue,\n mode: mode,\n activeDescendantId: activeDescendantId,\n tagRender: tagRender,\n values: displayValues,\n open: mergedOpen,\n onToggleOpen: onToggleOpen,\n activeValue: activeValue,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n onSearchSubmit: onInternalSearchSubmit,\n onRemove: onSelectorRemove,\n tokenWithEnter: tokenWithEnter\n })));\n\n // >>> Render\n var renderNode;\n\n // Render raw\n if (customizeRawInputElement) {\n renderNode = selectorNode;\n } else {\n renderNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergedClassName\n }, domProps, {\n ref: containerRef,\n onMouseDown: onInternalMouseDown,\n onKeyDown: onInternalKeyDown,\n onKeyUp: onInternalKeyUp,\n onFocus: onContainerFocus,\n onBlur: onContainerBlur\n }), mockFocused && !mergedOpen && /*#__PURE__*/React.createElement(\"span\", {\n style: {\n width: 0,\n height: 0,\n position: 'absolute',\n overflow: 'hidden',\n opacity: 0\n },\n \"aria-live\": \"polite\"\n }, \"\".concat(displayValues.map(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return ['number', 'string'].includes(_typeof(label)) ? label : value;\n }).join(', '))), selectorNode, arrowNode, clearNode);\n }\n return /*#__PURE__*/React.createElement(BaseSelectContext.Provider, {\n value: baseSelectContext\n }, renderNode);\n});\n\n// Set display name for dev\nif (process.env.NODE_ENV !== 'production') {\n BaseSelect.displayName = 'BaseSelect';\n}\nexport default BaseSelect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Similar with `useLock`, but this hook will always execute last value.\n * When set to `true`, it will keep `true` for a short time even if `false` is set.\n */\nexport default function useDelayReset() {\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n bool = _React$useState2[0],\n setBool = _React$useState2[1];\n var delayRef = React.useRef(null);\n var cancelLatest = function cancelLatest() {\n window.clearTimeout(delayRef.current);\n };\n React.useEffect(function () {\n return cancelLatest;\n }, []);\n var delaySetBool = function delaySetBool(value, callback) {\n cancelLatest();\n delayRef.current = window.setTimeout(function () {\n setBool(value);\n if (callback) {\n callback();\n }\n }, timeout);\n };\n return [bool, delaySetBool, cancelLatest];\n}","import * as React from 'react';\nexport default function useSelectTriggerControl(elements, open, triggerOpen, customizedTrigger) {\n var propsRef = React.useRef(null);\n propsRef.current = {\n open: open,\n triggerOpen: triggerOpen,\n customizedTrigger: customizedTrigger\n };\n React.useEffect(function () {\n function onGlobalMouseDown(event) {\n var _propsRef$current;\n // If trigger is customized, Trigger will take control of popupVisible\n if ((_propsRef$current = propsRef.current) !== null && _propsRef$current !== void 0 && _propsRef$current.customizedTrigger) {\n return;\n }\n var target = event.target;\n if (target.shadowRoot && event.composed) {\n target = event.composedPath()[0] || target;\n }\n if (propsRef.current.open && elements().filter(function (element) {\n return element;\n }).every(function (element) {\n return !element.contains(target) && element !== target;\n })) {\n // Should trigger close\n propsRef.current.triggerOpen(false);\n }\n }\n window.addEventListener('mousedown', onGlobalMouseDown);\n return function () {\n return window.removeEventListener('mousedown', onGlobalMouseDown);\n };\n }, []);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { toArray } from \"../utils/commonUtil\";\nimport { injectPropsWithOption } from \"../utils/valueUtil\";\nfunction includes(test, search) {\n return toArray(test).join('').toUpperCase().includes(search);\n}\nexport default (function (options, fieldNames, searchValue, filterOption, optionFilterProp) {\n return React.useMemo(function () {\n if (!searchValue || filterOption === false) {\n return options;\n }\n var fieldOptions = fieldNames.options,\n fieldLabel = fieldNames.label,\n fieldValue = fieldNames.value;\n var filteredOptions = [];\n var customizeFilter = typeof filterOption === 'function';\n var upperSearch = searchValue.toUpperCase();\n var filterFunc = customizeFilter ? filterOption : function (_, option) {\n // Use provided `optionFilterProp`\n if (optionFilterProp) {\n return includes(option[optionFilterProp], upperSearch);\n }\n\n // Auto select `label` or `value` by option type\n if (option[fieldOptions]) {\n // hack `fieldLabel` since `OptionGroup` children is not `label`\n return includes(option[fieldLabel !== 'children' ? fieldLabel : 'label'], upperSearch);\n }\n return includes(option[fieldValue], upperSearch);\n };\n var wrapOption = customizeFilter ? function (opt) {\n return injectPropsWithOption(opt);\n } : function (opt) {\n return opt;\n };\n options.forEach(function (item) {\n // Group should check child options\n if (item[fieldOptions]) {\n // Check group first\n var matchGroup = filterFunc(searchValue, wrapOption(item));\n if (matchGroup) {\n filteredOptions.push(item);\n } else {\n // Check option\n var subOptions = item[fieldOptions].filter(function (subItem) {\n return filterFunc(searchValue, wrapOption(subItem));\n });\n if (subOptions.length) {\n filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, _defineProperty({}, fieldOptions, subOptions)));\n }\n }\n return;\n }\n if (filterFunc(searchValue, wrapOption(item))) {\n filteredOptions.push(item);\n }\n });\n return filteredOptions;\n }, [options, filterOption, optionFilterProp, searchValue, fieldNames]);\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"value\"],\n _excluded2 = [\"children\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nfunction convertNodeToOption(node) {\n var _ref = node,\n key = _ref.key,\n _ref$props = _ref.props,\n children = _ref$props.children,\n value = _ref$props.value,\n restProps = _objectWithoutProperties(_ref$props, _excluded);\n return _objectSpread({\n key: key,\n value: value !== undefined ? value : key,\n children: children\n }, restProps);\n}\nexport function convertChildrenToData(nodes) {\n var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return toArray(nodes).map(function (node, index) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return null;\n }\n var _ref2 = node,\n isSelectOptGroup = _ref2.type.isSelectOptGroup,\n key = _ref2.key,\n _ref2$props = _ref2.props,\n children = _ref2$props.children,\n restProps = _objectWithoutProperties(_ref2$props, _excluded2);\n if (optionOnly || !isSelectOptGroup) {\n return convertNodeToOption(node);\n }\n return _objectSpread(_objectSpread({\n key: \"__RC_SELECT_GRP__\".concat(key === null ? index : key, \"__\"),\n label: key\n }, restProps), {}, {\n options: convertChildrenToData(children)\n });\n }).filter(function (data) {\n return data;\n });\n}","import * as React from 'react';\n\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\nexport default function useRefFunc(callback) {\n var funcRef = React.useRef();\n funcRef.current = callback;\n var cacheFn = React.useCallback(function () {\n return funcRef.current.apply(funcRef, arguments);\n }, []);\n return cacheFn;\n}","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar OptGroup = function OptGroup() {\n return null;\n};\nOptGroup.isSelectOptGroup = true;\nexport default OptGroup;","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar Option = function Option() {\n return null;\n};\nOption.isSelectOption = true;\nexport default Option;","import * as React from 'react';\n\n// Use any here since we do not get the type during compilation\n\nvar SelectContext = /*#__PURE__*/React.createContext(null);\nexport default SelectContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar _excluded = [\"disabled\", \"title\", \"children\", \"style\", \"className\"];\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport classNames from 'classnames';\nimport List from 'rc-virtual-list';\nimport TransBtn from \"./TransBtn\";\nimport { isPlatformMac } from \"./utils/platformUtil\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nimport SelectContext from \"./SelectContext\";\n\n// export interface OptionListProps<OptionsType extends object[]> {\n\nfunction isTitleType(content) {\n return typeof content === 'string' || typeof content === 'number';\n}\n\n/**\n * Using virtual list of option display.\n * Will fallback to dom if use customize render.\n */\nvar OptionList = function OptionList(_, ref) {\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n id = _useBaseProps.id,\n open = _useBaseProps.open,\n multiple = _useBaseProps.multiple,\n mode = _useBaseProps.mode,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n notFoundContent = _useBaseProps.notFoundContent,\n onPopupScroll = _useBaseProps.onPopupScroll;\n var _React$useContext = React.useContext(SelectContext),\n flattenOptions = _React$useContext.flattenOptions,\n onActiveValue = _React$useContext.onActiveValue,\n defaultActiveFirstOption = _React$useContext.defaultActiveFirstOption,\n onSelect = _React$useContext.onSelect,\n menuItemSelectedIcon = _React$useContext.menuItemSelectedIcon,\n rawValues = _React$useContext.rawValues,\n fieldNames = _React$useContext.fieldNames,\n virtual = _React$useContext.virtual,\n listHeight = _React$useContext.listHeight,\n listItemHeight = _React$useContext.listItemHeight;\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n var memoFlattenOptions = useMemo(function () {\n return flattenOptions;\n }, [open, flattenOptions], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n });\n\n // =========================== List ===========================\n var listRef = React.useRef(null);\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n var scrollIntoView = function scrollIntoView(args) {\n if (listRef.current) {\n listRef.current.scrollTo(typeof args === 'number' ? {\n index: args\n } : args);\n }\n };\n\n // ========================== Active ==========================\n var getEnabledActiveIndex = function getEnabledActiveIndex(index) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var len = memoFlattenOptions.length;\n for (var i = 0; i < len; i += 1) {\n var current = (index + i * offset + len) % len;\n var _memoFlattenOptions$c = memoFlattenOptions[current],\n group = _memoFlattenOptions$c.group,\n data = _memoFlattenOptions$c.data;\n if (!group && !data.disabled) {\n return current;\n }\n }\n return -1;\n };\n var _React$useState = React.useState(function () {\n return getEnabledActiveIndex(0);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n var setActive = function setActive(index) {\n var fromKeyboard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n setActiveIndex(index);\n var info = {\n source: fromKeyboard ? 'keyboard' : 'mouse'\n };\n\n // Trigger active event\n var flattenItem = memoFlattenOptions[index];\n if (!flattenItem) {\n onActiveValue(null, -1, info);\n return;\n }\n onActiveValue(flattenItem.value, index, info);\n };\n\n // Auto active first item when list length or searchValue changed\n useEffect(function () {\n setActive(defaultActiveFirstOption !== false ? getEnabledActiveIndex(0) : -1);\n }, [memoFlattenOptions.length, searchValue]);\n\n // https://github.com/ant-design/ant-design/issues/34975\n var isSelected = React.useCallback(function (value) {\n return rawValues.has(value) && mode !== 'combobox';\n }, [mode, _toConsumableArray(rawValues).toString(), rawValues.size]);\n\n // Auto scroll to item position in single mode\n useEffect(function () {\n /**\n * React will skip `onChange` when component update.\n * `setActive` function will call root accessibility state update which makes re-render.\n * So we need to delay to let Input component trigger onChange first.\n */\n var timeoutId = setTimeout(function () {\n if (!multiple && open && rawValues.size === 1) {\n var value = Array.from(rawValues)[0];\n var index = memoFlattenOptions.findIndex(function (_ref) {\n var data = _ref.data;\n return data.value === value;\n });\n if (index !== -1) {\n setActive(index);\n scrollIntoView(index);\n }\n }\n });\n\n // Force trigger scrollbar visible when open\n if (open) {\n var _listRef$current;\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(undefined);\n }\n return function () {\n return clearTimeout(timeoutId);\n };\n }, [open, searchValue]);\n\n // ========================== Values ==========================\n var onSelectValue = function onSelectValue(value) {\n if (value !== undefined) {\n onSelect(value, {\n selected: !rawValues.has(value)\n });\n }\n\n // Single mode should always close by select\n if (!multiple) {\n toggleOpen(false);\n }\n };\n\n // ========================= Keyboard =========================\n React.useImperativeHandle(ref, function () {\n return {\n onKeyDown: function onKeyDown(event) {\n var which = event.which,\n ctrlKey = event.ctrlKey;\n switch (which) {\n // >>> Arrow keys & ctrl + n/p on Mac\n case KeyCode.N:\n case KeyCode.P:\n case KeyCode.UP:\n case KeyCode.DOWN:\n {\n var offset = 0;\n if (which === KeyCode.UP) {\n offset = -1;\n } else if (which === KeyCode.DOWN) {\n offset = 1;\n } else if (isPlatformMac() && ctrlKey) {\n if (which === KeyCode.N) {\n offset = 1;\n } else if (which === KeyCode.P) {\n offset = -1;\n }\n }\n if (offset !== 0) {\n var nextActiveIndex = getEnabledActiveIndex(activeIndex + offset, offset);\n scrollIntoView(nextActiveIndex);\n setActive(nextActiveIndex, true);\n }\n break;\n }\n\n // >>> Select\n case KeyCode.ENTER:\n {\n // value\n var item = memoFlattenOptions[activeIndex];\n if (item && !item.data.disabled) {\n onSelectValue(item.value);\n } else {\n onSelectValue(undefined);\n }\n if (open) {\n event.preventDefault();\n }\n break;\n }\n\n // >>> Close\n case KeyCode.ESC:\n {\n toggleOpen(false);\n if (open) {\n event.stopPropagation();\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {},\n scrollTo: function scrollTo(index) {\n scrollIntoView(index);\n }\n };\n });\n\n // ========================== Render ==========================\n if (memoFlattenOptions.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n className: \"\".concat(itemPrefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n var omitFieldNameList = Object.keys(fieldNames).map(function (key) {\n return fieldNames[key];\n });\n var getLabel = function getLabel(item) {\n return item.label;\n };\n var renderItem = function renderItem(index) {\n var item = memoFlattenOptions[index];\n if (!item) return null;\n var itemData = item.data || {};\n var value = itemData.value;\n var group = item.group;\n var attrs = pickAttrs(itemData, true);\n var mergedLabel = getLabel(item);\n return item ? /*#__PURE__*/React.createElement(\"div\", _extends({\n \"aria-label\": typeof mergedLabel === 'string' && !group ? mergedLabel : null\n }, attrs, {\n key: index,\n role: group ? 'presentation' : 'option',\n id: \"\".concat(id, \"_list_\").concat(index),\n \"aria-selected\": isSelected(value)\n }), value) : null;\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n style: {\n height: 0,\n width: 0,\n overflow: 'hidden'\n }\n }, renderItem(activeIndex - 1), renderItem(activeIndex), renderItem(activeIndex + 1)), /*#__PURE__*/React.createElement(List, {\n itemKey: \"key\",\n ref: listRef,\n data: memoFlattenOptions,\n height: listHeight,\n itemHeight: listItemHeight,\n fullHeight: false,\n onMouseDown: onListMouseDown,\n onScroll: onPopupScroll,\n virtual: virtual\n }, function (item, itemIndex) {\n var _classNames;\n var group = item.group,\n groupOption = item.groupOption,\n data = item.data,\n label = item.label,\n value = item.value;\n var key = data.key;\n\n // Group\n if (group) {\n var _data$title;\n var groupTitle = (_data$title = data.title) !== null && _data$title !== void 0 ? _data$title : isTitleType(label) ? label.toString() : undefined;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(itemPrefixCls, \"\".concat(itemPrefixCls, \"-group\")),\n title: groupTitle\n }, label !== undefined ? label : key);\n }\n var disabled = data.disabled,\n title = data.title,\n children = data.children,\n style = data.style,\n className = data.className,\n otherProps = _objectWithoutProperties(data, _excluded);\n var passedProps = omit(otherProps, omitFieldNameList);\n\n // Option\n var selected = isSelected(value);\n var optionPrefixCls = \"\".concat(itemPrefixCls, \"-option\");\n var optionClassName = classNames(itemPrefixCls, optionPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-grouped\"), groupOption), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-active\"), activeIndex === itemIndex && !disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-selected\"), selected), _classNames));\n var mergedLabel = getLabel(item);\n var iconVisible = !menuItemSelectedIcon || typeof menuItemSelectedIcon === 'function' || selected;\n\n // https://github.com/ant-design/ant-design/issues/34145\n var content = typeof mergedLabel === 'number' ? mergedLabel : mergedLabel || value;\n // https://github.com/ant-design/ant-design/issues/26717\n var optionTitle = isTitleType(content) ? content.toString() : undefined;\n if (title !== undefined) {\n optionTitle = title;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, pickAttrs(passedProps), {\n \"aria-selected\": selected,\n className: optionClassName,\n title: optionTitle,\n onMouseMove: function onMouseMove() {\n if (activeIndex === itemIndex || disabled) {\n return;\n }\n setActive(itemIndex);\n },\n onClick: function onClick() {\n if (!disabled) {\n onSelectValue(value);\n }\n },\n style: style\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(optionPrefixCls, \"-content\")\n }, content), /*#__PURE__*/React.isValidElement(menuItemSelectedIcon) || selected, iconVisible && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(itemPrefixCls, \"-option-state\"),\n customizeIcon: menuItemSelectedIcon,\n customizeIconProps: {\n isSelected: selected\n }\n }, selected ? '✓' : null));\n }));\n};\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","/* istanbul ignore file */\nexport function isPlatformMac() {\n return /(mac\\sos|macintosh)/i.test(navigator.appVersion);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toNodeArray from \"rc-util/es/Children/toArray\";\nimport warning, { noteOnce } from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { isMultiple } from \"../BaseSelect\";\nimport { toArray } from \"./commonUtil\";\nimport { convertChildrenToData } from \"./legacyUtil\";\nfunction warningProps(props) {\n var mode = props.mode,\n options = props.options,\n children = props.children,\n backfill = props.backfill,\n allowClear = props.allowClear,\n placeholder = props.placeholder,\n getInputElement = props.getInputElement,\n showSearch = props.showSearch,\n onSearch = props.onSearch,\n defaultOpen = props.defaultOpen,\n autoFocus = props.autoFocus,\n labelInValue = props.labelInValue,\n value = props.value,\n inputValue = props.inputValue,\n optionLabelProp = props.optionLabelProp;\n var multiple = isMultiple(mode);\n var mergedShowSearch = showSearch !== undefined ? showSearch : multiple || mode === 'combobox';\n var mergedOptions = options || convertChildrenToData(children);\n\n // `tags` should not set option as disabled\n warning(mode !== 'tags' || mergedOptions.every(function (opt) {\n return !opt.disabled;\n }), 'Please avoid setting option to disabled in tags mode since user can always type text as tag.');\n\n // `combobox` & `tags` should option be `string` type\n if (mode === 'tags' || mode === 'combobox') {\n var hasNumberValue = mergedOptions.some(function (item) {\n if (item.options) {\n return item.options.some(function (opt) {\n return typeof ('value' in opt ? opt.value : opt.key) === 'number';\n });\n }\n return typeof ('value' in item ? item.value : item.key) === 'number';\n });\n warning(!hasNumberValue, '`value` of Option should not use number type when `mode` is `tags` or `combobox`.');\n }\n\n // `combobox` should not use `optionLabelProp`\n warning(mode !== 'combobox' || !optionLabelProp, '`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly.');\n\n // Only `combobox` support `backfill`\n warning(mode === 'combobox' || !backfill, '`backfill` only works with `combobox` mode.');\n\n // Only `combobox` support `getInputElement`\n warning(mode === 'combobox' || !getInputElement, '`getInputElement` only work with `combobox` mode.');\n\n // Customize `getInputElement` should not use `allowClear` & `placeholder`\n noteOnce(mode !== 'combobox' || !getInputElement || !allowClear || !placeholder, 'Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`.');\n\n // `onSearch` should use in `combobox` or `showSearch`\n if (onSearch && !mergedShowSearch && mode !== 'combobox' && mode !== 'tags') {\n warning(false, '`onSearch` should work with `showSearch` instead of use alone.');\n }\n noteOnce(!defaultOpen || autoFocus, '`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autoFocus` if needed.');\n if (value !== undefined && value !== null) {\n var values = toArray(value);\n warning(!labelInValue || values.every(function (val) {\n return _typeof(val) === 'object' && ('key' in val || 'value' in val);\n }), '`value` should in shape of `{ value: string | number, label?: ReactNode }` when you set `labelInValue` to `true`');\n warning(!multiple || Array.isArray(value), '`value` should be array when `mode` is `multiple` or `tags`');\n }\n\n // Syntactic sugar should use correct children type\n if (children) {\n var invalidateChildType = null;\n toNodeArray(children).some(function (node) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return false;\n }\n var _ref = node,\n type = _ref.type;\n if (type.isSelectOption) {\n return false;\n }\n if (type.isSelectOptGroup) {\n var allChildrenValid = toNodeArray(node.props.children).every(function (subNode) {\n if (! /*#__PURE__*/React.isValidElement(subNode) || !node.type || subNode.type.isSelectOption) {\n return true;\n }\n invalidateChildType = subNode.type;\n return false;\n });\n if (allChildrenValid) {\n return false;\n }\n return true;\n }\n invalidateChildType = type;\n return true;\n });\n if (invalidateChildType) {\n warning(false, \"`children` should be `Select.Option` or `Select.OptGroup` instead of `\".concat(invalidateChildType.displayName || invalidateChildType.name || invalidateChildType, \"`.\"));\n }\n warning(inputValue === undefined, '`inputValue` is deprecated, please use `searchValue` instead.');\n }\n}\n\n// value in Select option should not be null\n// note: OptGroup has options too\nexport function warningNullOptions(options, fieldNames) {\n if (options) {\n var recursiveOptions = function recursiveOptions(optionsList) {\n var inGroup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n for (var i = 0; i < optionsList.length; i++) {\n var option = optionsList[i];\n if (option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value] === null) {\n warning(false, '`value` in Select options should not be `null`.');\n return true;\n }\n if (!inGroup && Array.isArray(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.options]) && recursiveOptions(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.options], true)) {\n break;\n }\n }\n };\n recursiveOptions(options);\n }\n}\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"mode\", \"prefixCls\", \"backfill\", \"fieldNames\", \"inputValue\", \"searchValue\", \"onSearch\", \"autoClearSearchValue\", \"onSelect\", \"onDeselect\", \"dropdownMatchSelectWidth\", \"filterOption\", \"filterSort\", \"optionFilterProp\", \"optionLabelProp\", \"options\", \"children\", \"defaultActiveFirstOption\", \"menuItemSelectedIcon\", \"virtual\", \"listHeight\", \"listItemHeight\", \"value\", \"defaultValue\", \"labelInValue\", \"onChange\"];\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\n\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport BaseSelect, { isMultiple } from \"./BaseSelect\";\nimport useCache from \"./hooks/useCache\";\nimport useFilterOptions from \"./hooks/useFilterOptions\";\nimport useId from \"./hooks/useId\";\nimport useOptions from \"./hooks/useOptions\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport OptGroup from \"./OptGroup\";\nimport Option from \"./Option\";\nimport OptionList from \"./OptionList\";\nimport SelectContext from \"./SelectContext\";\nimport { hasValue, toArray } from \"./utils/commonUtil\";\nimport { fillFieldNames, flattenOptions, injectPropsWithOption } from \"./utils/valueUtil\";\nimport warningProps, { warningNullOptions } from \"./utils/warningPropsUtil\";\nvar OMIT_DOM_PROPS = ['inputValue'];\nfunction isRawValue(value) {\n return !value || _typeof(value) !== 'object';\n}\nvar Select = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n mode = props.mode,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-select' : _props$prefixCls,\n backfill = props.backfill,\n fieldNames = props.fieldNames,\n inputValue = props.inputValue,\n searchValue = props.searchValue,\n onSearch = props.onSearch,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n filterOption = props.filterOption,\n filterSort = props.filterSort,\n optionFilterProp = props.optionFilterProp,\n optionLabelProp = props.optionLabelProp,\n options = props.options,\n children = props.children,\n defaultActiveFirstOption = props.defaultActiveFirstOption,\n menuItemSelectedIcon = props.menuItemSelectedIcon,\n virtual = props.virtual,\n _props$listHeight = props.listHeight,\n listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n _props$listItemHeight = props.listItemHeight,\n listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n value = props.value,\n defaultValue = props.defaultValue,\n labelInValue = props.labelInValue,\n onChange = props.onChange,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedId = useId(id);\n var multiple = isMultiple(mode);\n var childrenAsData = !!(!options && children);\n var mergedFilterOption = React.useMemo(function () {\n if (filterOption === undefined && mode === 'combobox') {\n return false;\n }\n return filterOption;\n }, [filterOption, mode]);\n\n // ========================= FieldNames =========================\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames, childrenAsData);\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [\n // We stringify fieldNames to avoid unnecessary re-renders.\n JSON.stringify(fieldNames), childrenAsData]\n /* eslint-enable react-hooks/exhaustive-deps */);\n\n // =========================== Search ===========================\n var _useMergedState = useMergedState('', {\n value: searchValue !== undefined ? searchValue : inputValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedSearchValue = _useMergedState2[0],\n setSearchValue = _useMergedState2[1];\n\n // =========================== Option ===========================\n var parsedOptions = useOptions(options, children, mergedFieldNames, optionFilterProp, optionLabelProp);\n var valueOptions = parsedOptions.valueOptions,\n labelOptions = parsedOptions.labelOptions,\n mergedOptions = parsedOptions.options;\n\n // ========================= Wrap Value =========================\n var convert2LabelValues = React.useCallback(function (draftValues) {\n // Convert to array\n var valueList = toArray(draftValues);\n\n // Convert to labelInValue type\n return valueList.map(function (val) {\n var rawValue;\n var rawLabel;\n var rawKey;\n var rawDisabled;\n var rawTitle;\n\n // Fill label & value\n if (isRawValue(val)) {\n rawValue = val;\n } else {\n var _val$value;\n rawKey = val.key;\n rawLabel = val.label;\n rawValue = (_val$value = val.value) !== null && _val$value !== void 0 ? _val$value : rawKey;\n }\n var option = valueOptions.get(rawValue);\n if (option) {\n var _option$key;\n // Fill missing props\n if (rawLabel === undefined) rawLabel = option === null || option === void 0 ? void 0 : option[optionLabelProp || mergedFieldNames.label];\n if (rawKey === undefined) rawKey = (_option$key = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key !== void 0 ? _option$key : rawValue;\n rawDisabled = option === null || option === void 0 ? void 0 : option.disabled;\n rawTitle = option === null || option === void 0 ? void 0 : option.title;\n\n // Warning if label not same as provided\n if (process.env.NODE_ENV !== 'production' && !optionLabelProp) {\n var optionLabel = option === null || option === void 0 ? void 0 : option[mergedFieldNames.label];\n if (optionLabel !== undefined && ! /*#__PURE__*/React.isValidElement(optionLabel) && ! /*#__PURE__*/React.isValidElement(rawLabel) && optionLabel !== rawLabel) {\n warning(false, '`label` of `value` is not same as `label` in Select options.');\n }\n }\n }\n return {\n label: rawLabel,\n value: rawValue,\n key: rawKey,\n disabled: rawDisabled,\n title: rawTitle\n };\n });\n }, [mergedFieldNames, optionLabelProp, valueOptions]);\n\n // =========================== Values ===========================\n var _useMergedState3 = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n internalValue = _useMergedState4[0],\n setInternalValue = _useMergedState4[1];\n\n // Merged value with LabelValueType\n var rawLabeledValues = React.useMemo(function () {\n var _values$;\n var values = convert2LabelValues(internalValue);\n\n // combobox no need save value when it's no value\n if (mode === 'combobox' && !((_values$ = values[0]) !== null && _values$ !== void 0 && _values$.value)) {\n return [];\n }\n return values;\n }, [internalValue, convert2LabelValues, mode]);\n\n // Fill label with cache to avoid option remove\n var _useCache = useCache(rawLabeledValues, valueOptions),\n _useCache2 = _slicedToArray(_useCache, 2),\n mergedValues = _useCache2[0],\n getMixedOption = _useCache2[1];\n var displayValues = React.useMemo(function () {\n // `null` need show as placeholder instead\n // https://github.com/ant-design/ant-design/issues/25057\n if (!mode && mergedValues.length === 1) {\n var firstValue = mergedValues[0];\n if (firstValue.value === null && (firstValue.label === null || firstValue.label === undefined)) {\n return [];\n }\n }\n return mergedValues.map(function (item) {\n var _item$label;\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : item.value\n });\n });\n }, [mode, mergedValues]);\n\n /** Convert `displayValues` to raw value type set */\n var rawValues = React.useMemo(function () {\n return new Set(mergedValues.map(function (val) {\n return val.value;\n }));\n }, [mergedValues]);\n React.useEffect(function () {\n if (mode === 'combobox') {\n var _mergedValues$;\n var strValue = (_mergedValues$ = mergedValues[0]) === null || _mergedValues$ === void 0 ? void 0 : _mergedValues$.value;\n setSearchValue(hasValue(strValue) ? String(strValue) : '');\n }\n }, [mergedValues]);\n\n // ======================= Display Option =======================\n // Create a placeholder item if not exist in `options`\n var createTagOption = useRefFunc(function (val, label) {\n var _ref;\n var mergedLabel = label !== null && label !== void 0 ? label : val;\n return _ref = {}, _defineProperty(_ref, mergedFieldNames.value, val), _defineProperty(_ref, mergedFieldNames.label, mergedLabel), _ref;\n });\n\n // Fill tag as option if mode is `tags`\n var filledTagOptions = React.useMemo(function () {\n if (mode !== 'tags') {\n return mergedOptions;\n }\n\n // >>> Tag mode\n var cloneOptions = _toConsumableArray(mergedOptions);\n\n // Check if value exist in options (include new patch item)\n var existOptions = function existOptions(val) {\n return valueOptions.has(val);\n };\n\n // Fill current value as option\n _toConsumableArray(mergedValues).sort(function (a, b) {\n return a.value < b.value ? -1 : 1;\n }).forEach(function (item) {\n var val = item.value;\n if (!existOptions(val)) {\n cloneOptions.push(createTagOption(val, item.label));\n }\n });\n return cloneOptions;\n }, [createTagOption, mergedOptions, valueOptions, mergedValues, mode]);\n var filteredOptions = useFilterOptions(filledTagOptions, mergedFieldNames, mergedSearchValue, mergedFilterOption, optionFilterProp);\n\n // Fill options with search value if needed\n var filledSearchOptions = React.useMemo(function () {\n if (mode !== 'tags' || !mergedSearchValue || filteredOptions.some(function (item) {\n return item[optionFilterProp || 'value'] === mergedSearchValue;\n })) {\n return filteredOptions;\n }\n\n // Fill search value as option\n return [createTagOption(mergedSearchValue)].concat(_toConsumableArray(filteredOptions));\n }, [createTagOption, optionFilterProp, mode, filteredOptions, mergedSearchValue]);\n var orderedFilteredOptions = React.useMemo(function () {\n if (!filterSort) {\n return filledSearchOptions;\n }\n return _toConsumableArray(filledSearchOptions).sort(function (a, b) {\n return filterSort(a, b);\n });\n }, [filledSearchOptions, filterSort]);\n var displayOptions = React.useMemo(function () {\n return flattenOptions(orderedFilteredOptions, {\n fieldNames: mergedFieldNames,\n childrenAsData: childrenAsData\n });\n }, [orderedFilteredOptions, mergedFieldNames, childrenAsData]);\n\n // =========================== Change ===========================\n var triggerChange = function triggerChange(values) {\n var labeledValues = convert2LabelValues(values);\n setInternalValue(labeledValues);\n if (onChange && (\n // Trigger event only when value changed\n labeledValues.length !== mergedValues.length || labeledValues.some(function (newVal, index) {\n var _mergedValues$index;\n return ((_mergedValues$index = mergedValues[index]) === null || _mergedValues$index === void 0 ? void 0 : _mergedValues$index.value) !== (newVal === null || newVal === void 0 ? void 0 : newVal.value);\n }))) {\n var returnValues = labelInValue ? labeledValues : labeledValues.map(function (v) {\n return v.value;\n });\n var returnOptions = labeledValues.map(function (v) {\n return injectPropsWithOption(getMixedOption(v.value));\n });\n onChange(\n // Value\n multiple ? returnValues : returnValues[0],\n // Option\n multiple ? returnOptions : returnOptions[0]);\n }\n };\n\n // ======================= Accessibility ========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeValue = _React$useState2[0],\n setActiveValue = _React$useState2[1];\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n accessibilityIndex = _React$useState4[0],\n setAccessibilityIndex = _React$useState4[1];\n var mergedDefaultActiveFirstOption = defaultActiveFirstOption !== undefined ? defaultActiveFirstOption : mode !== 'combobox';\n var onActiveValue = React.useCallback(function (active, index) {\n var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref2$source = _ref2.source,\n source = _ref2$source === void 0 ? 'keyboard' : _ref2$source;\n setAccessibilityIndex(index);\n if (backfill && mode === 'combobox' && active !== null && source === 'keyboard') {\n setActiveValue(String(active));\n }\n }, [backfill, mode]);\n\n // ========================= OptionList =========================\n var triggerSelect = function triggerSelect(val, selected, type) {\n var getSelectEnt = function getSelectEnt() {\n var _option$key2;\n var option = getMixedOption(val);\n return [labelInValue ? {\n label: option === null || option === void 0 ? void 0 : option[mergedFieldNames.label],\n value: val,\n key: (_option$key2 = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key2 !== void 0 ? _option$key2 : val\n } : val, injectPropsWithOption(option)];\n };\n if (selected && onSelect) {\n var _getSelectEnt = getSelectEnt(),\n _getSelectEnt2 = _slicedToArray(_getSelectEnt, 2),\n wrappedValue = _getSelectEnt2[0],\n _option = _getSelectEnt2[1];\n onSelect(wrappedValue, _option);\n } else if (!selected && onDeselect && type !== 'clear') {\n var _getSelectEnt3 = getSelectEnt(),\n _getSelectEnt4 = _slicedToArray(_getSelectEnt3, 2),\n _wrappedValue = _getSelectEnt4[0],\n _option2 = _getSelectEnt4[1];\n onDeselect(_wrappedValue, _option2);\n }\n };\n\n // Used for OptionList selection\n var onInternalSelect = useRefFunc(function (val, info) {\n var cloneValues;\n\n // Single mode always trigger select only with option list\n var mergedSelect = multiple ? info.selected : true;\n if (mergedSelect) {\n cloneValues = multiple ? [].concat(_toConsumableArray(mergedValues), [val]) : [val];\n } else {\n cloneValues = mergedValues.filter(function (v) {\n return v.value !== val;\n });\n }\n triggerChange(cloneValues);\n triggerSelect(val, mergedSelect);\n\n // Clean search value if single or configured\n if (mode === 'combobox') {\n // setSearchValue(String(val));\n setActiveValue('');\n } else if (!isMultiple || autoClearSearchValue) {\n setSearchValue('');\n setActiveValue('');\n }\n });\n\n // ======================= Display Change =======================\n // BaseSelect display values change\n var onDisplayValuesChange = function onDisplayValuesChange(nextValues, info) {\n triggerChange(nextValues);\n var type = info.type,\n values = info.values;\n if (type === 'remove' || type === 'clear') {\n values.forEach(function (item) {\n triggerSelect(item.value, false, type);\n });\n }\n };\n\n // =========================== Search ===========================\n var onInternalSearch = function onInternalSearch(searchText, info) {\n setSearchValue(searchText);\n setActiveValue(null);\n\n // [Submit] Tag mode should flush input\n if (info.source === 'submit') {\n var formatted = (searchText || '').trim();\n // prevent empty tags from appearing when you click the Enter button\n if (formatted) {\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), [formatted])));\n triggerChange(newRawValues);\n triggerSelect(formatted, true);\n setSearchValue('');\n }\n return;\n }\n if (info.source !== 'blur') {\n if (mode === 'combobox') {\n triggerChange(searchText);\n }\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchText);\n }\n };\n var onInternalSearchSplit = function onInternalSearchSplit(words) {\n var patchValues = words;\n if (mode !== 'tags') {\n patchValues = words.map(function (word) {\n var opt = labelOptions.get(word);\n return opt === null || opt === void 0 ? void 0 : opt.value;\n }).filter(function (val) {\n return val !== undefined;\n });\n }\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), _toConsumableArray(patchValues))));\n triggerChange(newRawValues);\n newRawValues.forEach(function (newRawValue) {\n triggerSelect(newRawValue, true);\n });\n };\n\n // ========================== Context ===========================\n var selectContext = React.useMemo(function () {\n var realVirtual = virtual !== false && dropdownMatchSelectWidth !== false;\n return _objectSpread(_objectSpread({}, parsedOptions), {}, {\n flattenOptions: displayOptions,\n onActiveValue: onActiveValue,\n defaultActiveFirstOption: mergedDefaultActiveFirstOption,\n onSelect: onInternalSelect,\n menuItemSelectedIcon: menuItemSelectedIcon,\n rawValues: rawValues,\n fieldNames: mergedFieldNames,\n virtual: realVirtual,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n childrenAsData: childrenAsData\n });\n }, [parsedOptions, displayOptions, onActiveValue, mergedDefaultActiveFirstOption, onInternalSelect, menuItemSelectedIcon, rawValues, mergedFieldNames, virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, childrenAsData]);\n\n // ========================== Warning ===========================\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n warningNullOptions(mergedOptions, mergedFieldNames);\n }\n\n // ==============================================================\n // == Render ==\n // ==============================================================\n return /*#__PURE__*/React.createElement(SelectContext.Provider, {\n value: selectContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n // >>> MISC\n id: mergedId,\n prefixCls: prefixCls,\n ref: ref,\n omitDomProps: OMIT_DOM_PROPS,\n mode: mode\n // >>> Values\n ,\n displayValues: displayValues,\n onDisplayValuesChange: onDisplayValuesChange\n // >>> Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n autoClearSearchValue: autoClearSearchValue,\n onSearchSplit: onInternalSearchSplit,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n // >>> OptionList\n ,\n OptionList: OptionList,\n emptyOptions: !displayOptions.length\n // >>> Accessibility\n ,\n activeValue: activeValue,\n activeDescendantId: \"\".concat(mergedId, \"_list_\").concat(accessibilityIndex)\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Select.displayName = 'Select';\n}\nvar TypedSelect = Select;\nTypedSelect.Option = Option;\nTypedSelect.OptGroup = OptGroup;\nexport default TypedSelect;","import * as React from 'react';\nimport { convertChildrenToData } from \"../utils/legacyUtil\";\n\n/**\n * Parse `children` to `options` if `options` is not provided.\n * Then flatten the `options`.\n */\nexport default function useOptions(options, children, fieldNames, optionFilterProp, optionLabelProp) {\n return React.useMemo(function () {\n var mergedOptions = options;\n var childrenAsData = !options;\n if (childrenAsData) {\n mergedOptions = convertChildrenToData(children);\n }\n var valueOptions = new Map();\n var labelOptions = new Map();\n var setLabelOptions = function setLabelOptions(labelOptionsMap, option, key) {\n if (key && typeof key === 'string') {\n labelOptionsMap.set(option[key], option);\n }\n };\n function dig(optionList) {\n var isChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n // for loop to speed up collection speed\n for (var i = 0; i < optionList.length; i += 1) {\n var option = optionList[i];\n if (!option[fieldNames.options] || isChildren) {\n valueOptions.set(option[fieldNames.value], option);\n setLabelOptions(labelOptions, option, fieldNames.label);\n // https://github.com/ant-design/ant-design/issues/35304\n setLabelOptions(labelOptions, option, optionFilterProp);\n setLabelOptions(labelOptions, option, optionLabelProp);\n } else {\n dig(option[fieldNames.options], true);\n }\n }\n }\n dig(mergedOptions);\n return {\n options: mergedOptions,\n valueOptions: valueOptions,\n labelOptions: labelOptions\n };\n }, [options, children, fieldNames, optionFilterProp, optionLabelProp]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\n/**\n * Cache `value` related LabeledValue & options.\n */\nexport default (function (labeledValues, valueOptions) {\n var cacheRef = React.useRef({\n values: new Map(),\n options: new Map()\n });\n var filledLabeledValues = React.useMemo(function () {\n var _cacheRef$current = cacheRef.current,\n prevValueCache = _cacheRef$current.values,\n prevOptionCache = _cacheRef$current.options;\n\n // Fill label by cache\n var patchedValues = labeledValues.map(function (item) {\n if (item.label === undefined) {\n var _prevValueCache$get;\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_prevValueCache$get = prevValueCache.get(item.value)) === null || _prevValueCache$get === void 0 ? void 0 : _prevValueCache$get.label\n });\n }\n return item;\n });\n\n // Refresh cache\n var valueCache = new Map();\n var optionCache = new Map();\n patchedValues.forEach(function (item) {\n valueCache.set(item.value, item);\n optionCache.set(item.value, valueOptions.get(item.value) || prevOptionCache.get(item.value));\n });\n cacheRef.current.values = valueCache;\n cacheRef.current.options = optionCache;\n return patchedValues;\n }, [labeledValues, valueOptions]);\n var getOption = React.useCallback(function (val) {\n return valueOptions.get(val) || cacheRef.current.options.get(val);\n }, [valueOptions]);\n return [filledLabeledValues, getOption];\n});","import Select from \"./Select\";\nimport Option from \"./Option\";\nimport OptGroup from \"./OptGroup\";\nimport BaseSelect from \"./BaseSelect\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nexport { Option, OptGroup, BaseSelect, useBaseProps };\nexport default Select;","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\nvar HIDDEN_TEXTAREA_STYLE = \"\\n min-height:0 !important;\\n max-height:none !important;\\n height:0 !important;\\n visibility:hidden !important;\\n overflow:hidden !important;\\n position:absolute !important;\\n z-index:-1000 !important;\\n top:0 !important;\\n right:0 !important;\\n pointer-events: none !important;\\n\";\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'font-variant', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing', 'word-break'];\nvar computedStyleCache = {};\nvar hiddenTextarea;\nexport function calculateNodeStyling(node) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var nodeRef = node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name');\n if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\n }\n var style = window.getComputedStyle(node);\n var boxSizing = style.getPropertyValue('box-sizing') || style.getPropertyValue('-moz-box-sizing') || style.getPropertyValue('-webkit-box-sizing');\n var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n var sizingStyle = SIZING_STYLE.map(function (name) {\n return \"\".concat(name, \":\").concat(style.getPropertyValue(name));\n }).join(';');\n var nodeInfo = {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize,\n boxSizing: boxSizing\n };\n if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n return nodeInfo;\n}\nexport default function calculateAutoSizeStyle(uiTextNode) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var minRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var maxRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n hiddenTextarea.setAttribute('tab-index', '-1');\n hiddenTextarea.setAttribute('aria-hidden', 'true');\n document.body.appendChild(hiddenTextarea);\n }\n // Fix wrap=\"off\" issue\n // https://github.com/ant-design/ant-design/issues/6577\n if (uiTextNode.getAttribute('wrap')) {\n hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n } else {\n hiddenTextarea.removeAttribute('wrap');\n }\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n paddingSize = _calculateNodeStyling.paddingSize,\n borderSize = _calculateNodeStyling.borderSize,\n boxSizing = _calculateNodeStyling.boxSizing,\n sizingStyle = _calculateNodeStyling.sizingStyle;\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n hiddenTextarea.setAttribute('style', \"\".concat(sizingStyle, \";\").concat(HIDDEN_TEXTAREA_STYLE));\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n var minHeight = undefined;\n var maxHeight = undefined;\n var overflowY;\n var height = hiddenTextarea.scrollHeight;\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height += borderSize;\n } else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height -= paddingSize;\n }\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = ' ';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n overflowY = height > maxHeight ? '' : 'hidden';\n height = Math.min(maxHeight, height);\n }\n }\n var style = {\n height: height,\n overflowY: overflowY,\n resize: 'none'\n };\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n return style;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"onPressEnter\", \"defaultValue\", \"value\", \"autoSize\", \"onResize\", \"className\", \"style\", \"disabled\", \"onChange\", \"onInternalAutoSize\"];\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport raf from \"rc-util/es/raf\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport classNames from 'classnames';\nimport calculateAutoSizeStyle from './calculateNodeHeight';\nvar RESIZE_START = 0;\nvar RESIZE_MEASURING = 1;\nvar RESIZE_STABLE = 2;\nvar ResizableTextArea = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-textarea' : _props$prefixCls,\n onPressEnter = props.onPressEnter,\n defaultValue = props.defaultValue,\n value = props.value,\n autoSize = props.autoSize,\n onResize = props.onResize,\n className = props.className,\n style = props.style,\n disabled = props.disabled,\n onChange = props.onChange,\n onInternalAutoSize = props.onInternalAutoSize,\n restProps = _objectWithoutProperties(props, _excluded);\n // =============================== Value ================================\n var _useMergedState = useMergedState(defaultValue, {\n value: value,\n postState: function postState(val) {\n return val !== null && val !== void 0 ? val : '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setMergedValue = _useMergedState2[1];\n var onInternalChange = function onInternalChange(event) {\n setMergedValue(event.target.value);\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n };\n // ================================ Ref =================================\n var textareaRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n textArea: textareaRef.current\n };\n });\n // ============================== AutoSize ==============================\n var _React$useMemo = React.useMemo(function () {\n if (autoSize && _typeof(autoSize) === 'object') {\n return [autoSize.minRows, autoSize.maxRows];\n }\n return [];\n }, [autoSize]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n minRows = _React$useMemo2[0],\n maxRows = _React$useMemo2[1];\n var needAutoSize = !!autoSize;\n // =============================== Scroll ===============================\n // https://github.com/ant-design/ant-design/issues/21870\n var fixFirefoxAutoScroll = function fixFirefoxAutoScroll() {\n try {\n // FF has bug with jump of scroll to top. We force back here.\n if (document.activeElement === textareaRef.current) {\n var _textareaRef$current = textareaRef.current,\n selectionStart = _textareaRef$current.selectionStart,\n selectionEnd = _textareaRef$current.selectionEnd,\n scrollTop = _textareaRef$current.scrollTop;\n // Fix Safari bug which not rollback when break line\n // This makes Chinese IME can't input. Do not fix this\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n textareaRef.current.scrollTop = scrollTop;\n }\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n };\n // =============================== Resize ===============================\n var _React$useState = React.useState(RESIZE_STABLE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n resizeState = _React$useState2[0],\n setResizeState = _React$useState2[1];\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n autoSizeStyle = _React$useState4[0],\n setAutoSizeStyle = _React$useState4[1];\n var startResize = function startResize() {\n setResizeState(RESIZE_START);\n if (process.env.NODE_ENV === 'test') {\n onInternalAutoSize === null || onInternalAutoSize === void 0 ? void 0 : onInternalAutoSize();\n }\n };\n // Change to trigger resize measure\n useLayoutEffect(function () {\n if (needAutoSize) {\n startResize();\n }\n }, [value, minRows, maxRows, needAutoSize]);\n useLayoutEffect(function () {\n if (resizeState === RESIZE_START) {\n setResizeState(RESIZE_MEASURING);\n } else if (resizeState === RESIZE_MEASURING) {\n var textareaStyles = calculateAutoSizeStyle(textareaRef.current, false, minRows, maxRows);\n // Safari has bug that text will keep break line on text cut when it's prev is break line.\n // ZombieJ: This not often happen. So we just skip it.\n // const { selectionStart, selectionEnd, scrollTop } = textareaRef.current;\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n // if (document.activeElement === textareaRef.current) {\n // textareaRef.current.scrollTop = scrollTop;\n // textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n // }\n setResizeState(RESIZE_STABLE);\n setAutoSizeStyle(textareaStyles);\n } else {\n fixFirefoxAutoScroll();\n }\n }, [resizeState]);\n // We lock resize trigger by raf to avoid Safari warning\n var resizeRafRef = React.useRef();\n var cleanRaf = function cleanRaf() {\n raf.cancel(resizeRafRef.current);\n };\n var onInternalResize = function onInternalResize(size) {\n if (resizeState === RESIZE_STABLE) {\n onResize === null || onResize === void 0 ? void 0 : onResize(size);\n if (autoSize) {\n cleanRaf();\n resizeRafRef.current = raf(function () {\n startResize();\n });\n }\n }\n };\n React.useEffect(function () {\n return cleanRaf;\n }, []);\n // =============================== Render ===============================\n var mergedAutoSizeStyle = needAutoSize ? autoSizeStyle : null;\n var mergedStyle = _objectSpread(_objectSpread({}, style), mergedAutoSizeStyle);\n if (resizeState === RESIZE_START || resizeState === RESIZE_MEASURING) {\n mergedStyle.overflowY = 'hidden';\n mergedStyle.overflowX = 'hidden';\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onInternalResize,\n disabled: !(autoSize || onResize)\n }, /*#__PURE__*/React.createElement(\"textarea\", _extends({}, restProps, {\n ref: textareaRef,\n style: mergedStyle,\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n disabled: disabled,\n value: mergedValue,\n onChange: onInternalChange\n })));\n});\nexport default ResizableTextArea;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ResizableTextArea from './ResizableTextArea';\nvar TextArea = /*#__PURE__*/function (_React$Component) {\n _inherits(TextArea, _React$Component);\n var _super = _createSuper(TextArea);\n function TextArea(props) {\n var _this;\n _classCallCheck(this, TextArea);\n _this = _super.call(this, props);\n _this.resizableTextArea = void 0;\n _this.focus = function () {\n _this.resizableTextArea.textArea.focus();\n };\n _this.saveTextArea = function (resizableTextArea) {\n _this.resizableTextArea = resizableTextArea;\n };\n _this.handleChange = function (e) {\n var onChange = _this.props.onChange;\n _this.setValue(e.target.value);\n if (onChange) {\n onChange(e);\n }\n };\n _this.handleKeyDown = function (e) {\n var _this$props = _this.props,\n onPressEnter = _this$props.onPressEnter,\n onKeyDown = _this$props.onKeyDown;\n if (e.keyCode === 13 && onPressEnter) {\n onPressEnter(e);\n }\n if (onKeyDown) {\n onKeyDown(e);\n }\n };\n var value = typeof props.value === 'undefined' || props.value === null ? props.defaultValue : props.value;\n _this.state = {\n value: value\n };\n return _this;\n }\n _createClass(TextArea, [{\n key: \"setValue\",\n value: function setValue(value, callback) {\n if (!('value' in this.props)) {\n this.setState({\n value: value\n }, callback);\n }\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.resizableTextArea.textArea.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ResizableTextArea, _extends({}, this.props, {\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n ref: this.saveTextArea\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n if ('value' in nextProps) {\n return {\n value: nextProps.value\n };\n }\n return null;\n }\n }]);\n return TextArea;\n}(React.Component);\nexport { ResizableTextArea };\nexport default TextArea;","import * as React from 'react';\nimport classNames from 'classnames';\nexport default function Popup(props) {\n var showArrow = props.showArrow,\n arrowContent = props.arrowContent,\n children = props.children,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle,\n className = props.className,\n style = props.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: style\n }, showArrow !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof children === 'function' ? children() : children));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Popup from './Popup';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n arrowContent = props.arrowContent,\n overlay = props.overlay,\n id = props.id,\n showArrow = props.showArrow,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(Popup, {\n showArrow: showArrow,\n arrowContent: arrowContent,\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlayInnerStyle: overlayInnerStyle\n }, overlay);\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from './Tooltip';\nimport Popup from './Popup';\nexport { Popup };\nexport default Tooltip;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.placements = void 0;\nvar autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexports.placements = placements;\nvar _default = placements;\nexports.default = _default;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nvar Indent = function Indent(_ref) {\n var prefixCls = _ref.prefixCls,\n level = _ref.level,\n isStart = _ref.isStart,\n isEnd = _ref.isEnd;\n var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n var list = [];\n for (var i = 0; i < level; i += 1) {\n var _classNames;\n list.push( /*#__PURE__*/React.createElement(\"span\", {\n key: i,\n className: classNames(baseClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(baseClassName, \"-start\"), isStart[i]), _defineProperty(_classNames, \"\".concat(baseClassName, \"-end\"), isEnd[i]), _classNames))\n }));\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-indent\")\n }, list);\n};\nexport default /*#__PURE__*/React.memo(Indent);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"data\", \"onMouseMove\", \"selectable\"];\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\n// @ts-ignore\nimport { TreeContext } from './contextTypes';\nimport Indent from './Indent';\nimport getEntity from './utils/keyUtil';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\nvar InternalTreeNode = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalTreeNode, _React$Component);\n var _super = _createSuper(InternalTreeNode);\n function InternalTreeNode() {\n var _this;\n _classCallCheck(this, InternalTreeNode);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n dragNodeHighlight: false\n };\n _this.selectHandle = void 0;\n _this.cacheIndent = void 0;\n _this.onSelectorClick = function (e) {\n // Click trigger before select/check operation\n var onNodeClick = _this.props.context.onNodeClick;\n onNodeClick(e, convertNodePropsToEventData(_this.props));\n if (_this.isSelectable()) {\n _this.onSelect(e);\n } else {\n _this.onCheck(e);\n }\n };\n _this.onSelectorDoubleClick = function (e) {\n var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;\n onNodeDoubleClick(e, convertNodePropsToEventData(_this.props));\n };\n _this.onSelect = function (e) {\n if (_this.isDisabled()) return;\n var onNodeSelect = _this.props.context.onNodeSelect;\n onNodeSelect(e, convertNodePropsToEventData(_this.props));\n };\n _this.onCheck = function (e) {\n if (_this.isDisabled()) return;\n var _this$props = _this.props,\n disableCheckbox = _this$props.disableCheckbox,\n checked = _this$props.checked;\n var onNodeCheck = _this.props.context.onNodeCheck;\n if (!_this.isCheckable() || disableCheckbox) return;\n var targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(_this.props), targetChecked);\n };\n _this.onMouseEnter = function (e) {\n var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;\n onNodeMouseEnter(e, convertNodePropsToEventData(_this.props));\n };\n _this.onMouseLeave = function (e) {\n var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;\n onNodeMouseLeave(e, convertNodePropsToEventData(_this.props));\n };\n _this.onContextMenu = function (e) {\n var onNodeContextMenu = _this.props.context.onNodeContextMenu;\n onNodeContextMenu(e, convertNodePropsToEventData(_this.props));\n };\n _this.onDragStart = function (e) {\n var onNodeDragStart = _this.props.context.onNodeDragStart;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: true\n });\n onNodeDragStart(e, _assertThisInitialized(_this));\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n _this.onDragEnter = function (e) {\n var onNodeDragEnter = _this.props.context.onNodeDragEnter;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, _assertThisInitialized(_this));\n };\n _this.onDragOver = function (e) {\n var onNodeDragOver = _this.props.context.onNodeDragOver;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, _assertThisInitialized(_this));\n };\n _this.onDragLeave = function (e) {\n var onNodeDragLeave = _this.props.context.onNodeDragLeave;\n e.stopPropagation();\n onNodeDragLeave(e, _assertThisInitialized(_this));\n };\n _this.onDragEnd = function (e) {\n var onNodeDragEnd = _this.props.context.onNodeDragEnd;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDragEnd(e, _assertThisInitialized(_this));\n };\n _this.onDrop = function (e) {\n var onNodeDrop = _this.props.context.onNodeDrop;\n e.preventDefault();\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDrop(e, _assertThisInitialized(_this));\n };\n // Disabled item still can be switch\n _this.onExpand = function (e) {\n var _this$props2 = _this.props,\n loading = _this$props2.loading,\n onNodeExpand = _this$props2.context.onNodeExpand;\n if (loading) return;\n onNodeExpand(e, convertNodePropsToEventData(_this.props));\n };\n // Drag usage\n _this.setSelectHandle = function (node) {\n _this.selectHandle = node;\n };\n _this.getNodeState = function () {\n var expanded = _this.props.expanded;\n if (_this.isLeaf()) {\n return null;\n }\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n _this.hasChildren = function () {\n var eventKey = _this.props.eventKey;\n var keyEntities = _this.props.context.keyEntities;\n var _ref = getEntity(keyEntities, eventKey) || {},\n children = _ref.children;\n return !!(children || []).length;\n };\n _this.isLeaf = function () {\n var _this$props3 = _this.props,\n isLeaf = _this$props3.isLeaf,\n loaded = _this$props3.loaded;\n var loadData = _this.props.context.loadData;\n var hasChildren = _this.hasChildren();\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n };\n _this.isDisabled = function () {\n var disabled = _this.props.disabled;\n var treeDisabled = _this.props.context.disabled;\n return !!(treeDisabled || disabled);\n };\n _this.isCheckable = function () {\n var checkable = _this.props.checkable;\n var treeCheckable = _this.props.context.checkable;\n // Return false if tree or treeNode is not checkable\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n };\n // Load data to avoid default expanded tree without data\n _this.syncLoadData = function (props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _this$props$context = _this.props.context,\n loadData = _this$props$context.loadData,\n onNodeLoad = _this$props$context.onNodeLoad;\n if (loading) {\n return;\n }\n // read from state to avoid loadData at same time\n if (loadData && expanded && !_this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!_this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(_this.props));\n }\n }\n };\n _this.isDraggable = function () {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n draggable = _this$props4.context.draggable;\n return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n };\n // ==================== Render: Drag Handler ====================\n _this.renderDragHandler = function () {\n var _this$props$context2 = _this.props.context,\n draggable = _this$props$context2.draggable,\n prefixCls = _this$props$context2.prefixCls;\n return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-draggable-icon\")\n }, draggable.icon) : null;\n };\n // ====================== Render: Switcher ======================\n _this.renderSwitcherIconDom = function (isLeaf) {\n var switcherIconFromProps = _this.props.switcherIcon;\n var switcherIconFromCtx = _this.props.context.switcherIcon;\n var switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n // if switcherIconDom is null, no render switcher span\n if (typeof switcherIcon === 'function') {\n return switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n isLeaf: isLeaf\n }));\n }\n return switcherIcon;\n };\n // Switcher\n _this.renderSwitcher = function () {\n var expanded = _this.props.expanded;\n var prefixCls = _this.props.context.prefixCls;\n if (_this.isLeaf()) {\n // if switcherIconDom is null, no render switcher span\n var _switcherIconDom = _this.renderSwitcherIconDom(true);\n return _switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n }, _switcherIconDom) : null;\n }\n var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n var switcherIconDom = _this.renderSwitcherIconDom(false);\n return switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: _this.onExpand,\n className: switcherCls\n }, switcherIconDom) : null;\n };\n // ====================== Render: Checkbox ======================\n // Checkbox\n _this.renderCheckbox = function () {\n var _this$props5 = _this.props,\n checked = _this$props5.checked,\n halfChecked = _this$props5.halfChecked,\n disableCheckbox = _this$props5.disableCheckbox;\n var prefixCls = _this.props.context.prefixCls;\n var disabled = _this.isDisabled();\n var checkable = _this.isCheckable();\n if (!checkable) return null;\n // [Legacy] Custom element should be separate with `checkable` in future\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-checkbox\"), checked && \"\".concat(prefixCls, \"-checkbox-checked\"), !checked && halfChecked && \"\".concat(prefixCls, \"-checkbox-indeterminate\"), (disabled || disableCheckbox) && \"\".concat(prefixCls, \"-checkbox-disabled\")),\n onClick: _this.onCheck\n }, $custom);\n };\n // ==================== Render: Title + Icon ====================\n _this.renderIcon = function () {\n var loading = _this.props.loading;\n var prefixCls = _this.props.context.prefixCls;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(_this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n });\n };\n // Icon + Title\n _this.renderSelector = function () {\n var dragNodeHighlight = _this.state.dragNodeHighlight;\n var _this$props6 = _this.props,\n _this$props6$title = _this$props6.title,\n title = _this$props6$title === void 0 ? defaultTitle : _this$props6$title,\n selected = _this$props6.selected,\n icon = _this$props6.icon,\n loading = _this$props6.loading,\n data = _this$props6.data;\n var _this$props$context3 = _this.props.context,\n prefixCls = _this$props$context3.prefixCls,\n showIcon = _this$props$context3.showIcon,\n treeIcon = _this$props$context3.icon,\n loadData = _this$props$context3.loadData,\n titleRender = _this$props$context3.titleRender;\n var disabled = _this.isDisabled();\n var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\");\n // Icon - Still show loading icon when loading without showIcon\n var $icon;\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n }, typeof currentIcon === 'function' ? currentIcon(_this.props) : currentIcon) : _this.renderIcon();\n } else if (loadData && loading) {\n $icon = _this.renderIcon();\n }\n // Title\n var titleNode;\n if (typeof title === 'function') {\n titleNode = title(data);\n } else if (titleRender) {\n titleNode = titleRender(data);\n } else {\n titleNode = title;\n }\n var $title = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, titleNode);\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: _this.setSelectHandle,\n title: typeof title === 'string' ? title : '',\n className: classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(_this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\")),\n onMouseEnter: _this.onMouseEnter,\n onMouseLeave: _this.onMouseLeave,\n onContextMenu: _this.onContextMenu,\n onClick: _this.onSelectorClick,\n onDoubleClick: _this.onSelectorDoubleClick\n }, $icon, $title, _this.renderDropIndicator());\n };\n // =================== Render: Drop Indicator ===================\n _this.renderDropIndicator = function () {\n var _this$props7 = _this.props,\n disabled = _this$props7.disabled,\n eventKey = _this$props7.eventKey;\n var _this$props$context4 = _this.props.context,\n draggable = _this$props$context4.draggable,\n dropLevelOffset = _this$props$context4.dropLevelOffset,\n dropPosition = _this$props$context4.dropPosition,\n prefixCls = _this$props$context4.prefixCls,\n indent = _this$props$context4.indent,\n dropIndicatorRender = _this$props$context4.dropIndicatorRender,\n dragOverNodeKey = _this$props$context4.dragOverNodeKey,\n direction = _this$props$context4.direction;\n var rootDraggable = !!draggable;\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n // This is a hot fix which is already fixed in\n // https://github.com/react-component/tree/pull/743/files\n // But some case need break point so we hack on this\n // ref https://github.com/ant-design/ant-design/issues/43493\n var mergedIndent = indent !== null && indent !== void 0 ? indent : _this.cacheIndent;\n _this.cacheIndent = indent;\n return showIndicator ? dropIndicatorRender({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n indent: mergedIndent,\n prefixCls: prefixCls,\n direction: direction\n }) : null;\n };\n return _this;\n }\n _createClass(InternalTreeNode, [{\n key: \"componentDidMount\",\n value:\n // Isomorphic needn't load data in server side\n function componentDidMount() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"isSelectable\",\n value: function isSelectable() {\n var selectable = this.props.selectable;\n var treeSelectable = this.props.context.selectable;\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n return treeSelectable;\n }\n }, {\n key: \"render\",\n value:\n // =========================== Render ===========================\n function render() {\n var _classNames;\n var _this$props8 = this.props,\n eventKey = _this$props8.eventKey,\n className = _this$props8.className,\n style = _this$props8.style,\n dragOver = _this$props8.dragOver,\n dragOverGapTop = _this$props8.dragOverGapTop,\n dragOverGapBottom = _this$props8.dragOverGapBottom,\n isLeaf = _this$props8.isLeaf,\n isStart = _this$props8.isStart,\n isEnd = _this$props8.isEnd,\n expanded = _this$props8.expanded,\n selected = _this$props8.selected,\n checked = _this$props8.checked,\n halfChecked = _this$props8.halfChecked,\n loading = _this$props8.loading,\n domRef = _this$props8.domRef,\n active = _this$props8.active,\n data = _this$props8.data,\n onMouseMove = _this$props8.onMouseMove,\n selectable = _this$props8.selectable,\n otherProps = _objectWithoutProperties(_this$props8, _excluded);\n var _this$props$context5 = this.props.context,\n prefixCls = _this$props$context5.prefixCls,\n filterTreeNode = _this$props$context5.filterTreeNode,\n keyEntities = _this$props$context5.keyEntities,\n dropContainerKey = _this$props$context5.dropContainerKey,\n dropTargetKey = _this$props$context5.dropTargetKey,\n draggingNodeKey = _this$props$context5.draggingNodeKey;\n var disabled = this.isDisabled();\n var dataOrAriaAttributeProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n var _ref2 = getEntity(keyEntities, eventKey) || {},\n level = _ref2.level;\n var isEndNode = isEnd[isEnd.length - 1];\n var mergedDraggable = this.isDraggable();\n var draggableWithoutDisabled = !disabled && mergedDraggable;\n var dragging = draggingNodeKey === eventKey;\n var ariaSelected = selectable !== undefined ? {\n 'aria-selected': !!selectable\n } : undefined;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: domRef,\n className: classNames(className, \"\".concat(prefixCls, \"-treenode\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-selected\"), selected), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-leaf-last\"), isEndNode), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-draggable\"), mergedDraggable), _defineProperty(_classNames, \"dragging\", dragging), _defineProperty(_classNames, 'drop-target', dropTargetKey === eventKey), _defineProperty(_classNames, 'drop-container', dropContainerKey === eventKey), _defineProperty(_classNames, 'drag-over', !disabled && dragOver), _defineProperty(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_classNames, 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))), _classNames)),\n style: style\n // Draggable config\n ,\n draggable: draggableWithoutDisabled,\n \"aria-grabbed\": dragging,\n onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined\n // Drop config\n ,\n onDragEnter: mergedDraggable ? this.onDragEnter : undefined,\n onDragOver: mergedDraggable ? this.onDragOver : undefined,\n onDragLeave: mergedDraggable ? this.onDragLeave : undefined,\n onDrop: mergedDraggable ? this.onDrop : undefined,\n onDragEnd: mergedDraggable ? this.onDragEnd : undefined,\n onMouseMove: onMouseMove\n }, ariaSelected, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {\n prefixCls: prefixCls,\n level: level,\n isStart: isStart,\n isEnd: isEnd\n }), this.renderDragHandler(), this.renderSwitcher(), this.renderCheckbox(), this.renderSelector());\n }\n }]);\n return InternalTreeNode;\n}(React.Component);\nvar ContextTreeNode = function ContextTreeNode(props) {\n return /*#__PURE__*/React.createElement(TreeContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalTreeNode, _extends({}, props, {\n context: context\n }));\n });\n};\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.isTreeNode = 1;\nexport default ContextTreeNode;","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nexport var TreeContext = /*#__PURE__*/React.createContext(null);","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"style\", \"motion\", \"motionNodes\", \"motionType\", \"onMotionStart\", \"onMotionEnd\", \"active\", \"treeNodeRequiredProps\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { TreeContext } from './contextTypes';\nimport TreeNode from './TreeNode';\nimport useUnmount from './useUnmount';\nimport { getTreeNodeProps } from './utils/treeUtil';\nvar MotionTreeNode = function MotionTreeNode(_ref, ref) {\n var className = _ref.className,\n style = _ref.style,\n motion = _ref.motion,\n motionNodes = _ref.motionNodes,\n motionType = _ref.motionType,\n onOriginMotionStart = _ref.onMotionStart,\n onOriginMotionEnd = _ref.onMotionEnd,\n active = _ref.active,\n treeNodeRequiredProps = _ref.treeNodeRequiredProps,\n props = _objectWithoutProperties(_ref, _excluded);\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n var _React$useContext = React.useContext(TreeContext),\n prefixCls = _React$useContext.prefixCls;\n // Calculate target visible here.\n // And apply in effect to make `leave` motion work.\n var targetVisible = motionNodes && motionType !== 'hide';\n useLayoutEffect(function () {\n if (motionNodes) {\n if (targetVisible !== visible) {\n setVisible(targetVisible);\n }\n }\n }, [motionNodes]);\n var triggerMotionStart = function triggerMotionStart() {\n if (motionNodes) {\n onOriginMotionStart();\n }\n };\n // Should only trigger once\n var triggerMotionEndRef = React.useRef(false);\n var triggerMotionEnd = function triggerMotionEnd() {\n if (motionNodes && !triggerMotionEndRef.current) {\n triggerMotionEndRef.current = true;\n onOriginMotionEnd();\n }\n };\n // Effect if unmount\n useUnmount(triggerMotionStart, triggerMotionEnd);\n // Motion end event\n var onVisibleChanged = function onVisibleChanged(nextVisible) {\n if (targetVisible === nextVisible) {\n triggerMotionEnd();\n }\n };\n if (motionNodes) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n ref: ref,\n visible: visible\n }, motion, {\n motionAppear: motionType === 'show',\n onVisibleChanged: onVisibleChanged\n }), function (_ref2, motionRef) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: classNames(\"\".concat(prefixCls, \"-treenode-motion\"), motionClassName),\n style: motionStyle\n }, motionNodes.map(function (treeNode) {\n var restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: active,\n data: treeNode.data,\n key: key,\n isStart: isStart,\n isEnd: isEnd\n }));\n }));\n });\n }\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n domRef: ref,\n className: className,\n style: style\n }, props, {\n active: active\n }));\n};\nMotionTreeNode.displayName = 'MotionTreeNode';\nvar RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);\nexport default RefMotionTreeNode;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Trigger only when component unmount\n */\nexport default function useUnmount(triggerStart, triggerEnd) {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n firstMount = _React$useState2[0],\n setFirstMount = _React$useState2[1];\n React.useLayoutEffect(function () {\n if (firstMount) {\n triggerStart();\n return function () {\n triggerEnd();\n };\n }\n }, [firstMount]);\n React.useLayoutEffect(function () {\n setFirstMount(true);\n return function () {\n setFirstMount(false);\n };\n }, []);\n}","export function findExpandedKeys() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prevLen = prev.length;\n var nextLen = next.length;\n if (Math.abs(prevLen - nextLen) !== 1) {\n return {\n add: false,\n key: null\n };\n }\n function find(shorter, longer) {\n var cache = new Map();\n shorter.forEach(function (key) {\n cache.set(key, true);\n });\n var keys = longer.filter(function (key) {\n return !cache.has(key);\n });\n return keys.length === 1 ? keys[0] : null;\n }\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next)\n };\n }\n return {\n add: false,\n key: find(next, prev)\n };\n}\nexport function getExpandRange(shorter, longer, key) {\n var shorterStartIndex = shorter.findIndex(function (data) {\n return data.key === key;\n });\n var shorterEndNode = shorter[shorterStartIndex + 1];\n var longerStartIndex = longer.findIndex(function (data) {\n return data.key === key;\n });\n if (shorterEndNode) {\n var longerEndIndex = longer.findIndex(function (data) {\n return data.key === shorterEndNode.key;\n });\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"selectable\", \"checkable\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"loadedKeys\", \"loadingKeys\", \"halfCheckedKeys\", \"keyEntities\", \"disabled\", \"dragging\", \"dragOverNodeKey\", \"dropPosition\", \"motion\", \"height\", \"itemHeight\", \"virtual\", \"focusable\", \"activeItem\", \"focused\", \"tabIndex\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onActiveChange\", \"onListChangeStart\", \"onListChangeEnd\"];\n/**\n * Handle virtual list of the TreeNodes.\n */\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport VirtualList from 'rc-virtual-list';\nimport * as React from 'react';\nimport MotionTreeNode from './MotionTreeNode';\nimport { findExpandedKeys, getExpandRange } from './utils/diffUtil';\nimport { getKey, getTreeNodeProps } from './utils/treeUtil';\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\nvar noop = function noop() {};\nexport var MOTION_KEY = \"RC_TREE_MOTION_\".concat(Math.random());\nvar MotionNode = {\n key: MOTION_KEY\n};\nexport var MotionEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n nodes: [MotionNode]\n};\nvar MotionFlattenData = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: []\n};\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n if (virtual === false || !height) {\n return list;\n }\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\nfunction itemKey(item) {\n var key = item.key,\n pos = item.pos;\n return getKey(key, pos);\n}\nfunction getAccessibilityPath(item) {\n var path = String(item.data.key);\n var current = item;\n while (current.parent) {\n current = current.parent;\n path = \"\".concat(current.data.key, \" > \").concat(path);\n }\n return path;\n}\nvar NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n data = props.data,\n selectable = props.selectable,\n checkable = props.checkable,\n expandedKeys = props.expandedKeys,\n selectedKeys = props.selectedKeys,\n checkedKeys = props.checkedKeys,\n loadedKeys = props.loadedKeys,\n loadingKeys = props.loadingKeys,\n halfCheckedKeys = props.halfCheckedKeys,\n keyEntities = props.keyEntities,\n disabled = props.disabled,\n dragging = props.dragging,\n dragOverNodeKey = props.dragOverNodeKey,\n dropPosition = props.dropPosition,\n motion = props.motion,\n height = props.height,\n itemHeight = props.itemHeight,\n virtual = props.virtual,\n focusable = props.focusable,\n activeItem = props.activeItem,\n focused = props.focused,\n tabIndex = props.tabIndex,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onActiveChange = props.onActiveChange,\n onListChangeStart = props.onListChangeStart,\n onListChangeEnd = props.onListChangeEnd,\n domProps = _objectWithoutProperties(props, _excluded);\n // =============================== Ref ================================\n var listRef = React.useRef(null);\n var indentMeasurerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: function scrollTo(scroll) {\n listRef.current.scrollTo(scroll);\n },\n getIndentWidth: function getIndentWidth() {\n return indentMeasurerRef.current.offsetWidth;\n }\n };\n });\n // ============================== Motion ==============================\n var _React$useState = React.useState(expandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevExpandedKeys = _React$useState2[0],\n setPrevExpandedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(data),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevData = _React$useState4[0],\n setPrevData = _React$useState4[1];\n var _React$useState5 = React.useState(data),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n transitionData = _React$useState6[0],\n setTransitionData = _React$useState6[1];\n var _React$useState7 = React.useState([]),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n transitionRange = _React$useState8[0],\n setTransitionRange = _React$useState8[1];\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n motionType = _React$useState10[0],\n setMotionType = _React$useState10[1];\n // When motion end but data change, this will makes data back to previous one\n var dataRef = React.useRef(data);\n dataRef.current = data;\n function onMotionEnd() {\n var latestData = dataRef.current;\n setPrevData(latestData);\n setTransitionData(latestData);\n setTransitionRange([]);\n setMotionType(null);\n onListChangeEnd();\n }\n // Do animation if expanded keys changed\n // layoutEffect here to avoid blink of node removing\n useLayoutEffect(function () {\n setPrevExpandedKeys(expandedKeys);\n var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n var keyIndex = prevData.findIndex(function (_ref) {\n var key = _ref.key;\n return key === diffExpanded.key;\n });\n var rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n var newTransitionData = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n var _keyIndex = data.findIndex(function (_ref2) {\n var key = _ref2.key;\n return key === diffExpanded.key;\n });\n var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n var _newTransitionData = data.slice();\n _newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(_newTransitionData);\n setTransitionRange(_rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n // We should clean up motion if is changed by dragging\n React.useEffect(function () {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n var mergedData = motion ? transitionData : data;\n var treeNodeRequiredProps = {\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n loadedKeys: loadedKeys,\n loadingKeys: loadingKeys,\n checkedKeys: checkedKeys,\n halfCheckedKeys: halfCheckedKeys,\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, focused && activeItem && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, getAccessibilityPath(activeItem)), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"input\", {\n style: HIDDEN_STYLE,\n disabled: focusable === false || disabled,\n tabIndex: focusable !== false ? tabIndex : null,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur,\n value: \"\",\n onChange: noop,\n \"aria-label\": \"for screen reader\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-treenode\"),\n \"aria-hidden\": true,\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n border: 0,\n padding: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indent\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: indentMeasurerRef,\n className: \"\".concat(prefixCls, \"-indent-unit\")\n }))), /*#__PURE__*/React.createElement(VirtualList, _extends({}, domProps, {\n data: mergedData,\n itemKey: itemKey,\n height: height,\n fullHeight: false,\n virtual: virtual,\n itemHeight: itemHeight,\n prefixCls: \"\".concat(prefixCls, \"-list\"),\n ref: listRef,\n onVisibleChange: function onVisibleChange(originList, fullList) {\n var originSet = new Set(originList);\n var restList = fullList.filter(function (item) {\n return !originSet.has(item);\n });\n // Motion node is not render. Skip motion\n if (restList.some(function (item) {\n return itemKey(item) === MOTION_KEY;\n })) {\n onMotionEnd();\n }\n }\n }), function (treeNode) {\n var pos = treeNode.pos,\n restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n var mergedKey = getKey(key, pos);\n delete restProps.key;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(MotionTreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: !!activeItem && key === activeItem.key,\n pos: pos,\n data: treeNode.data,\n isStart: isStart,\n isEnd: isEnd,\n motion: motion,\n motionNodes: key === MOTION_KEY ? transitionRange : null,\n motionType: motionType,\n onMotionStart: onListChangeStart,\n onMotionEnd: onMotionEnd,\n treeNodeRequiredProps: treeNodeRequiredProps,\n onMouseMove: function onMouseMove() {\n onActiveChange(null);\n }\n }));\n }));\n});\nNodeList.displayName = 'NodeList';\nexport default NodeList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { TreeContext } from './contextTypes';\nimport DropIndicator from './DropIndicator';\nimport NodeList, { MotionEntity, MOTION_KEY } from './NodeList';\nimport TreeNode from './TreeNode';\nimport { arrAdd, arrDel, calcDropPosition, calcSelectedKeys, conductExpandParent, getDragChildrenKeys, parseCheckedKeys, posToArr } from './util';\nimport { conductCheck } from './utils/conductUtil';\nimport getEntity from './utils/keyUtil';\nimport { convertDataToEntities, convertNodePropsToEventData, convertTreeToData, fillFieldNames, flattenTreeData, getTreeNodeProps, warningWithoutKey } from './utils/treeUtil';\nvar MAX_RETRY_TIMES = 10;\nvar Tree = /*#__PURE__*/function (_React$Component) {\n _inherits(Tree, _React$Component);\n var _super = _createSuper(Tree);\n function Tree() {\n var _this;\n _classCallCheck(this, Tree);\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(_args));\n _this.destroyed = false;\n _this.delayedDragEnterLogic = void 0;\n _this.loadingRetryTimes = {};\n _this.state = {\n keyEntities: {},\n indent: null,\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n draggingNodeKey: null,\n dragChildrenKeys: [],\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropLevelOffset: null,\n dropTargetPos: null,\n dropAllowed: true,\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n treeData: [],\n flattenNodes: [],\n focused: false,\n activeKey: null,\n listChanging: false,\n prevProps: null,\n fieldNames: fillFieldNames()\n };\n _this.dragStartMousePosition = null;\n _this.dragNode = void 0;\n _this.currentMouseOverDroppableNodeKey = null;\n _this.listRef = /*#__PURE__*/React.createRef();\n _this.onNodeDragStart = function (event, node) {\n var _this$state = _this.state,\n expandedKeys = _this$state.expandedKeys,\n keyEntities = _this$state.keyEntities;\n var onDragStart = _this.props.onDragStart;\n var eventKey = node.props.eventKey;\n _this.dragNode = node;\n _this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY\n };\n var newExpandedKeys = arrDel(expandedKeys, eventKey);\n _this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: _this.listRef.current.getIndentWidth()\n });\n _this.setExpandedKeys(newExpandedKeys);\n window.addEventListener('dragend', _this.onWindowDragEnd);\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n /**\n * [Legacy] Select handler is smaller than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n _this.onNodeDragEnter = function (event, node) {\n var _this$state2 = _this.state,\n expandedKeys = _this$state2.expandedKeys,\n keyEntities = _this$state2.keyEntities,\n dragChildrenKeys = _this$state2.dragChildrenKeys,\n flattenNodes = _this$state2.flattenNodes,\n indent = _this$state2.indent;\n var _this$props = _this.props,\n onDragEnter = _this$props.onDragEnter,\n onExpand = _this$props.onExpand,\n allowDrop = _this$props.allowDrop,\n direction = _this$props.direction;\n var _node$props = node.props,\n pos = _node$props.pos,\n eventKey = _node$props.eventKey;\n var _assertThisInitialize = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize.dragNode;\n // record the key of node which is latest entered, used in dragleave event.\n if (_this.currentMouseOverDroppableNodeKey !== eventKey) {\n _this.currentMouseOverDroppableNodeKey = eventKey;\n }\n if (!dragNode) {\n _this.resetDragState();\n return;\n }\n var _calcDropPosition = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition.dropPosition,\n dropLevelOffset = _calcDropPosition.dropLevelOffset,\n dropTargetKey = _calcDropPosition.dropTargetKey,\n dropContainerKey = _calcDropPosition.dropContainerKey,\n dropTargetPos = _calcDropPosition.dropTargetPos,\n dropAllowed = _calcDropPosition.dropAllowed,\n dragOverNodeKey = _calcDropPosition.dragOverNodeKey;\n if (\n // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed) {\n _this.resetDragState();\n return;\n }\n // Side effect for delay drag\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {\n if (_this.state.draggingNodeKey === null) return;\n var newExpandedKeys = _toConsumableArray(expandedKeys);\n var entity = getEntity(keyEntities, node.props.eventKey);\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n if (!('expandedKeys' in _this.props)) {\n _this.setExpandedKeys(newExpandedKeys);\n }\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent\n });\n }, 800);\n }\n // Skip if drag node is self\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n _this.resetDragState();\n return;\n }\n // Update drag over node and drag state\n _this.setState({\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed\n });\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter({\n event: event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys: expandedKeys\n });\n };\n _this.onNodeDragOver = function (event, node) {\n var _this$state3 = _this.state,\n dragChildrenKeys = _this$state3.dragChildrenKeys,\n flattenNodes = _this$state3.flattenNodes,\n keyEntities = _this$state3.keyEntities,\n expandedKeys = _this$state3.expandedKeys,\n indent = _this$state3.indent;\n var _this$props2 = _this.props,\n onDragOver = _this$props2.onDragOver,\n allowDrop = _this$props2.allowDrop,\n direction = _this$props2.direction;\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize2.dragNode;\n if (!dragNode) {\n return;\n }\n var _calcDropPosition2 = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition2.dropPosition,\n dropLevelOffset = _calcDropPosition2.dropLevelOffset,\n dropTargetKey = _calcDropPosition2.dropTargetKey,\n dropContainerKey = _calcDropPosition2.dropContainerKey,\n dropAllowed = _calcDropPosition2.dropAllowed,\n dropTargetPos = _calcDropPosition2.dropTargetPos,\n dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;\n if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n return;\n }\n // Update drag position\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {\n _this.resetDragState();\n }\n } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {\n _this.setState({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed,\n dragOverNodeKey: dragOverNodeKey\n });\n }\n onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n _this.onNodeDragLeave = function (event, node) {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (_this.currentMouseOverDroppableNodeKey === node.props.eventKey && !event.currentTarget.contains(event.relatedTarget)) {\n _this.resetDragState();\n _this.currentMouseOverDroppableNodeKey = null;\n }\n var onDragLeave = _this.props.onDragLeave;\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n // since stopPropagation() is called in treeNode\n // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n _this.onWindowDragEnd = function (event) {\n _this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n _this.onNodeDragEnd = function (event, node) {\n var onDragEnd = _this.props.onDragEnd;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n _this.dragNode = null;\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n _this.onNodeDrop = function (event, node) {\n var _this$getActiveItem;\n var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _this$state4 = _this.state,\n dragChildrenKeys = _this$state4.dragChildrenKeys,\n dropPosition = _this$state4.dropPosition,\n dropTargetKey = _this$state4.dropTargetKey,\n dropTargetPos = _this$state4.dropTargetPos,\n dropAllowed = _this$state4.dropAllowed;\n if (!dropAllowed) return;\n var onDrop = _this.props.onDrop;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n if (dropTargetKey === null) return;\n var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {\n active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,\n data: getEntity(_this.state.keyEntities, dropTargetKey).node\n });\n var dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n warning(!dropToChild, \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");\n var posArr = posToArr(dropTargetPos);\n var dropResult = {\n event: event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: _this.dragNode ? convertNodePropsToEventData(_this.dragNode.props) : null,\n dragNodesKeys: [_this.dragNode.props.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1])\n };\n if (!outsideTree) {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(dropResult);\n }\n _this.dragNode = null;\n };\n _this.cleanDragState = function () {\n var draggingNodeKey = _this.state.draggingNodeKey;\n if (draggingNodeKey !== null) {\n _this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null\n });\n }\n _this.dragStartMousePosition = null;\n _this.currentMouseOverDroppableNodeKey = null;\n };\n _this.triggerExpandActionExpand = function (e, treeNode) {\n var _this$state5 = _this.state,\n expandedKeys = _this$state5.expandedKeys,\n flattenNodes = _this$state5.flattenNodes;\n var expanded = treeNode.expanded,\n key = treeNode.key,\n isLeaf = treeNode.isLeaf;\n if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n return;\n }\n var node = flattenNodes.filter(function (nodeItem) {\n return nodeItem.key === key;\n })[0];\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(key, _this.getTreeNodeRequiredProps())), {}, {\n data: node.data\n }));\n _this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n _this.onNodeExpand(e, eventNode);\n };\n _this.onNodeClick = function (e, treeNode) {\n var _this$props3 = _this.props,\n onClick = _this$props3.onClick,\n expandAction = _this$props3.expandAction;\n if (expandAction === 'click') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e, treeNode);\n };\n _this.onNodeDoubleClick = function (e, treeNode) {\n var _this$props4 = _this.props,\n onDoubleClick = _this$props4.onDoubleClick,\n expandAction = _this$props4.expandAction;\n if (expandAction === 'doubleClick') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e, treeNode);\n };\n _this.onNodeSelect = function (e, treeNode) {\n var selectedKeys = _this.state.selectedKeys;\n var _this$state6 = _this.state,\n keyEntities = _this$state6.keyEntities,\n fieldNames = _this$state6.fieldNames;\n var _this$props5 = _this.props,\n onSelect = _this$props5.onSelect,\n multiple = _this$props5.multiple;\n var selected = treeNode.selected;\n var key = treeNode[fieldNames.key];\n var targetSelected = !selected;\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (selectedKey) {\n var entity = getEntity(keyEntities, selectedKey);\n if (!entity) return null;\n return entity.node;\n }).filter(function (node) {\n return node;\n });\n _this.setUncontrolledState({\n selectedKeys: selectedKeys\n });\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e.nativeEvent\n });\n };\n _this.onNodeCheck = function (e, treeNode, checked) {\n var _this$state7 = _this.state,\n keyEntities = _this$state7.keyEntities,\n oriCheckedKeys = _this$state7.checkedKeys,\n oriHalfCheckedKeys = _this$state7.halfCheckedKeys;\n var _this$props6 = _this.props,\n checkStrictly = _this$props6.checkStrictly,\n onCheck = _this$props6.onCheck;\n var key = treeNode.key;\n // Prepare trigger arguments\n var checkedObj;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e.nativeEvent\n };\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {\n return getEntity(keyEntities, checkedKey);\n }).filter(function (entity) {\n return entity;\n }).map(function (entity) {\n return entity.node;\n });\n _this.setUncontrolledState({\n checkedKeys: checkedKeys\n });\n } else {\n // Always fill first\n var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n // If remove, we do it again to correction\n if (!checked) {\n var keySet = new Set(_checkedKeys);\n keySet.delete(key);\n var _conductCheck2 = conductCheck(Array.from(keySet), {\n checked: false,\n halfCheckedKeys: _halfCheckedKeys\n }, keyEntities);\n _checkedKeys = _conductCheck2.checkedKeys;\n _halfCheckedKeys = _conductCheck2.halfCheckedKeys;\n }\n checkedObj = _checkedKeys;\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n _checkedKeys.forEach(function (checkedKey) {\n var entity = getEntity(keyEntities, checkedKey);\n if (!entity) return;\n var node = entity.node,\n pos = entity.pos;\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({\n node: node,\n pos: pos\n });\n });\n _this.setUncontrolledState({\n checkedKeys: _checkedKeys\n }, false, {\n halfCheckedKeys: _halfCheckedKeys\n });\n }\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(checkedObj, eventObj);\n };\n _this.onNodeLoad = function (treeNode) {\n var key = treeNode.key;\n var loadPromise = new Promise(function (resolve, reject) {\n // We need to get the latest state of loading/loaded keys\n _this.setState(function (_ref) {\n var _ref$loadedKeys = _ref.loadedKeys,\n loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,\n _ref$loadingKeys = _ref.loadingKeys,\n loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;\n var _this$props7 = _this.props,\n loadData = _this$props7.loadData,\n onLoad = _this$props7.onLoad;\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n return null;\n }\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var currentLoadedKeys = _this.state.loadedKeys;\n var newLoadedKeys = arrAdd(currentLoadedKeys, key);\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this.setUncontrolledState({\n loadedKeys: newLoadedKeys\n });\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n resolve();\n }).catch(function (e) {\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n // If exceed max retry times, we give up retry\n _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;\n if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {\n var currentLoadedKeys = _this.state.loadedKeys;\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n _this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key)\n });\n resolve();\n }\n reject(e);\n });\n return {\n loadingKeys: arrAdd(loadingKeys, key)\n };\n });\n });\n // Not care warning if we ignore this\n loadPromise.catch(function () {});\n return loadPromise;\n };\n _this.onNodeMouseEnter = function (event, node) {\n var onMouseEnter = _this.props.onMouseEnter;\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n event: event,\n node: node\n });\n };\n _this.onNodeMouseLeave = function (event, node) {\n var onMouseLeave = _this.props.onMouseLeave;\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n event: event,\n node: node\n });\n };\n _this.onNodeContextMenu = function (event, node) {\n var onRightClick = _this.props.onRightClick;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({\n event: event,\n node: node\n });\n }\n };\n _this.onFocus = function () {\n var onFocus = _this.props.onFocus;\n _this.setState({\n focused: true\n });\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n onFocus === null || onFocus === void 0 ? void 0 : onFocus.apply(void 0, args);\n };\n _this.onBlur = function () {\n var onBlur = _this.props.onBlur;\n _this.setState({\n focused: false\n });\n _this.onActiveChange(null);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n onBlur === null || onBlur === void 0 ? void 0 : onBlur.apply(void 0, args);\n };\n _this.getTreeNodeRequiredProps = function () {\n var _this$state8 = _this.state,\n expandedKeys = _this$state8.expandedKeys,\n selectedKeys = _this$state8.selectedKeys,\n loadedKeys = _this$state8.loadedKeys,\n loadingKeys = _this$state8.loadingKeys,\n checkedKeys = _this$state8.checkedKeys,\n halfCheckedKeys = _this$state8.halfCheckedKeys,\n dragOverNodeKey = _this$state8.dragOverNodeKey,\n dropPosition = _this$state8.dropPosition,\n keyEntities = _this$state8.keyEntities;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n };\n // =========================== Expanded ===========================\n /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n _this.setExpandedKeys = function (expandedKeys) {\n var _this$state9 = _this.state,\n treeData = _this$state9.treeData,\n fieldNames = _this$state9.fieldNames;\n var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n expandedKeys: expandedKeys,\n flattenNodes: flattenNodes\n }, true);\n };\n _this.onNodeExpand = function (e, treeNode) {\n var expandedKeys = _this.state.expandedKeys;\n var _this$state10 = _this.state,\n listChanging = _this$state10.listChanging,\n fieldNames = _this$state10.fieldNames;\n var _this$props8 = _this.props,\n onExpand = _this$props8.onExpand,\n loadData = _this$props8.loadData;\n var expanded = treeNode.expanded;\n var key = treeNode[fieldNames.key];\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n // Update selected keys\n var index = expandedKeys.indexOf(key);\n var targetExpanded = !expanded;\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n } else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n _this.setExpandedKeys(expandedKeys);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent\n });\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = _this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise.then(function () {\n // [Legacy] Refresh logic\n var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n flattenNodes: newFlattenTreeData\n });\n }).catch(function () {\n var currentExpandedKeys = _this.state.expandedKeys;\n var expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n _this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n };\n _this.onListChangeStart = function () {\n _this.setUncontrolledState({\n listChanging: true\n });\n };\n _this.onListChangeEnd = function () {\n setTimeout(function () {\n _this.setUncontrolledState({\n listChanging: false\n });\n });\n };\n // =========================== Keyboard ===========================\n _this.onActiveChange = function (newActiveKey) {\n var activeKey = _this.state.activeKey;\n var onActiveChange = _this.props.onActiveChange;\n if (activeKey === newActiveKey) {\n return;\n }\n _this.setState({\n activeKey: newActiveKey\n });\n if (newActiveKey !== null) {\n _this.scrollTo({\n key: newActiveKey\n });\n }\n onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(newActiveKey);\n };\n _this.getActiveItem = function () {\n var _this$state11 = _this.state,\n activeKey = _this$state11.activeKey,\n flattenNodes = _this$state11.flattenNodes;\n if (activeKey === null) {\n return null;\n }\n return flattenNodes.find(function (_ref2) {\n var key = _ref2.key;\n return key === activeKey;\n }) || null;\n };\n _this.offsetActiveKey = function (offset) {\n var _this$state12 = _this.state,\n flattenNodes = _this$state12.flattenNodes,\n activeKey = _this$state12.activeKey;\n var index = flattenNodes.findIndex(function (_ref3) {\n var key = _ref3.key;\n return key === activeKey;\n });\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n var item = flattenNodes[index];\n if (item) {\n var key = item.key;\n _this.onActiveChange(key);\n } else {\n _this.onActiveChange(null);\n }\n };\n _this.onKeyDown = function (event) {\n var _this$state13 = _this.state,\n activeKey = _this$state13.activeKey,\n expandedKeys = _this$state13.expandedKeys,\n checkedKeys = _this$state13.checkedKeys,\n fieldNames = _this$state13.fieldNames;\n var _this$props9 = _this.props,\n onKeyDown = _this$props9.onKeyDown,\n checkable = _this$props9.checkable,\n selectable = _this$props9.selectable;\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP:\n {\n _this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN:\n {\n _this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n }\n // >>>>>>>>>> Expand & Selection\n var activeItem = _this.getActiveItem();\n if (activeItem && activeItem.data) {\n var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();\n var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {\n data: activeItem.data,\n active: true\n }));\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT:\n {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.parent) {\n _this.onActiveChange(activeItem.parent.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT:\n {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n _this.onActiveChange(activeItem.children[0].key);\n }\n event.preventDefault();\n break;\n }\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {\n _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {\n _this.onNodeSelect({}, eventNode);\n }\n break;\n }\n }\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n };\n /**\n * Only update the value which is not in props\n */\n _this.setUncontrolledState = function (state) {\n var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!_this.destroyed) {\n var needSync = false;\n var allPassed = true;\n var newState = {};\n Object.keys(state).forEach(function (name) {\n if (name in _this.props) {\n allPassed = false;\n return;\n }\n needSync = true;\n newState[name] = state[name];\n });\n if (needSync && (!atomic || allPassed)) {\n _this.setState(_objectSpread(_objectSpread({}, newState), forceState));\n }\n }\n };\n _this.scrollTo = function (scroll) {\n _this.listRef.current.scrollTo(scroll);\n };\n return _this;\n }\n _createClass(Tree, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n this.onUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onUpdated();\n }\n }, {\n key: \"onUpdated\",\n value: function onUpdated() {\n var activeKey = this.props.activeKey;\n if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n this.setState({\n activeKey: activeKey\n });\n if (activeKey !== null) {\n this.scrollTo({\n key: activeKey\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n }, {\n key: \"resetDragState\",\n value: function resetDragState() {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n var _this$state14 = this.state,\n focused = _this$state14.focused,\n flattenNodes = _this$state14.flattenNodes,\n keyEntities = _this$state14.keyEntities,\n draggingNodeKey = _this$state14.draggingNodeKey,\n activeKey = _this$state14.activeKey,\n dropLevelOffset = _this$state14.dropLevelOffset,\n dropContainerKey = _this$state14.dropContainerKey,\n dropTargetKey = _this$state14.dropTargetKey,\n dropPosition = _this$state14.dropPosition,\n dragOverNodeKey = _this$state14.dragOverNodeKey,\n indent = _this$state14.indent;\n var _this$props10 = this.props,\n prefixCls = _this$props10.prefixCls,\n className = _this$props10.className,\n style = _this$props10.style,\n showLine = _this$props10.showLine,\n focusable = _this$props10.focusable,\n _this$props10$tabInde = _this$props10.tabIndex,\n tabIndex = _this$props10$tabInde === void 0 ? 0 : _this$props10$tabInde,\n selectable = _this$props10.selectable,\n showIcon = _this$props10.showIcon,\n icon = _this$props10.icon,\n switcherIcon = _this$props10.switcherIcon,\n draggable = _this$props10.draggable,\n checkable = _this$props10.checkable,\n checkStrictly = _this$props10.checkStrictly,\n disabled = _this$props10.disabled,\n motion = _this$props10.motion,\n loadData = _this$props10.loadData,\n filterTreeNode = _this$props10.filterTreeNode,\n height = _this$props10.height,\n itemHeight = _this$props10.itemHeight,\n virtual = _this$props10.virtual,\n titleRender = _this$props10.titleRender,\n dropIndicatorRender = _this$props10.dropIndicatorRender,\n onContextMenu = _this$props10.onContextMenu,\n onScroll = _this$props10.onScroll,\n direction = _this$props10.direction,\n rootClassName = _this$props10.rootClassName,\n rootStyle = _this$props10.rootStyle;\n var domProps = pickAttrs(this.props, {\n aria: true,\n data: true\n });\n // It's better move to hooks but we just simply keep here\n var draggableConfig;\n if (draggable) {\n if (_typeof(draggable) === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable\n };\n } else {\n draggableConfig = {};\n }\n }\n return /*#__PURE__*/React.createElement(TreeContext.Provider, {\n value: {\n prefixCls: prefixCls,\n selectable: selectable,\n showIcon: showIcon,\n icon: icon,\n switcherIcon: switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey: draggingNodeKey,\n checkable: checkable,\n checkStrictly: checkStrictly,\n disabled: disabled,\n keyEntities: keyEntities,\n dropLevelOffset: dropLevelOffset,\n dropContainerKey: dropContainerKey,\n dropTargetKey: dropTargetKey,\n dropPosition: dropPosition,\n dragOverNodeKey: dragOverNodeKey,\n indent: indent,\n direction: direction,\n dropIndicatorRender: dropIndicatorRender,\n loadData: loadData,\n filterTreeNode: filterTreeNode,\n titleRender: titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tree\",\n className: classNames(prefixCls, className, rootClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-line\"), showLine), _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames, \"\".concat(prefixCls, \"-active-focused\"), activeKey !== null), _classNames)),\n style: rootStyle\n }, /*#__PURE__*/React.createElement(NodeList, _extends({\n ref: this.listRef,\n prefixCls: prefixCls,\n style: style,\n data: flattenNodes,\n disabled: disabled,\n selectable: selectable,\n checkable: !!checkable,\n motion: motion,\n dragging: draggingNodeKey !== null,\n height: height,\n itemHeight: itemHeight,\n virtual: virtual,\n focusable: focusable,\n focused: focused,\n tabIndex: tabIndex,\n activeItem: this.getActiveItem(),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n onActiveChange: this.onActiveChange,\n onListChangeStart: this.onListChangeStart,\n onListChangeEnd: this.onListChangeEnd,\n onContextMenu: onContextMenu,\n onScroll: onScroll\n }, this.getTreeNodeRequiredProps(), domProps))));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: props\n };\n function needSync(name) {\n return !prevProps && name in props || prevProps && prevProps[name] !== props[name];\n }\n // ================== Tree Node ==================\n var treeData;\n // fieldNames\n var fieldNames = prevState.fieldNames;\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n }\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeData = props.treeData;\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n var entitiesMap = convertDataToEntities(treeData, {\n fieldNames: fieldNames\n });\n newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\n }\n }\n var keyEntities = newState.keyEntities || prevState.keyEntities;\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {\n newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n var cloneKeyEntities = _objectSpread({}, keyEntities);\n delete cloneKeyEntities[MOTION_KEY];\n newState.expandedKeys = Object.keys(cloneKeyEntities).map(function (key) {\n return cloneKeyEntities[key].key;\n });\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);\n newState.flattenNodes = flattenNodes;\n }\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n // ================= checkedKeys =================\n if (props.checkable) {\n var checkedKeyEntity;\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys\n };\n }\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n return newState;\n }\n }]);\n return Tree;\n}(React.Component);\nTree.defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n dropIndicatorRender: DropIndicator,\n allowDrop: function allowDrop() {\n return true;\n },\n expandAction: false\n};\nTree.TreeNode = TreeNode;\nexport default Tree;","import * as React from 'react';\nexport default function DropIndicator(_ref) {\n var dropPosition = _ref.dropPosition,\n dropLevelOffset = _ref.dropLevelOffset,\n indent = _ref.indent;\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style\n });\n}","import Tree from './Tree';\nimport TreeNode from './TreeNode';\nexport { TreeNode };\nexport default Tree;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\nimport warning from \"rc-util/es/warning\";\nimport React from 'react';\nimport TreeNode from './TreeNode';\nimport getEntity from './utils/keyUtil';\nexport { getPosition, isTreeNode } from './utils/treeUtil';\nexport function arrDel(list, value) {\n if (!list) return [];\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = (list || []).slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n var dragChildrenKeys = [];\n var entity = getEntity(keyEntities, dragNodeKey);\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n var _abstractDropNodeEnti;\n var clientX = event.clientX,\n clientY = event.clientY;\n var _event$target$getBoun = event.target.getBoundingClientRect(),\n top = _event$target$getBoun.top,\n height = _event$target$getBoun.height;\n // optional chain for testing\n var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n // find abstract drop node by horizontal offset\n var abstractDropNodeEntity = getEntity(keyEntities, targetNode.props.eventKey);\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n return flattenedNode.key === abstractDropNodeEntity.key;\n });\n var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n var prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = getEntity(keyEntities, prevNodeKey);\n }\n var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n var abstractDragOverEntity = abstractDropNodeEntity;\n var dragOverNodeKey = abstractDropNodeEntity.key;\n var dropPosition = 0;\n var dropLevelOffset = 0;\n // Only allow cross level drop when dragging on a non-expanded node\n if (!expandKeys.includes(initialAbstractDropNodeKey)) {\n for (var i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n var abstractDragDataNode = dragNode.props.data;\n var abstractDropDataNode = abstractDropNodeEntity.node;\n var dropAllowed = true;\n if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1\n }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n } else if ((abstractDragOverEntity.children || []).length && expandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n return {\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey: dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n dropAllowed: dropAllowed\n };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n if (multiple) {\n return selectedKeys.slice();\n }\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, _excluded);\n var childrenNodes = convertDataToTree(children, processor);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n key: props.key\n }, processProps(props)), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n // Convert keys to object format\n var keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (_typeof(keys) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = getEntity(keyEntities, key);\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n if (parent) {\n conductUp(parent.key);\n }\n }\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}","import warning from \"rc-util/es/warning\";\nimport getEntity from './keyUtil';\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n var filteredKeys = new Set();\n halfCheckedKeys.forEach(function (key) {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\nexport function isCheckDisabled(node) {\n var _ref = node || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n// Fill miss keys\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set();\n // Add checked keys top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children = entity.children,\n children = _entity$children === void 0 ? [] : _entity$children;\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n // Add checked keys from bottom to top\n var visitedKeys = new Set();\n for (var _level = maxLevel; _level >= 0; _level -= 1) {\n var _entities = levelEntities.get(_level) || new Set();\n _entities.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref2) {\n var key = _ref2.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n// Remove useless key\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set(halfKeys);\n // Remove checked keys from top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children2 = entity.children,\n children = _entity$children2 === void 0 ? [] : _entity$children2;\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n // Remove checked keys form bottom to top\n halfCheckedKeys = new Set();\n var visitedKeys = new Set();\n for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n var _entities2 = levelEntities.get(_level2) || new Set();\n _entities2.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref3) {\n var key = _ref3.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n var warningMissKeys = [];\n var syntheticGetCheckDisabled;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n // We only handle exist keys\n var keys = new Set(keyList.filter(function (key) {\n var hasEntity = !!getEntity(keyEntities, key);\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n return hasEntity;\n }));\n var levelEntities = new Map();\n var maxLevel = 0;\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach(function (key) {\n var entity = keyEntities[key];\n var level = entity.level;\n var levelSet = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n levelSet.add(entity);\n maxLevel = Math.max(maxLevel, level);\n });\n warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n return \"'\".concat(key, \"'\");\n }).join(', ')));\n var result;\n if (checked === true) {\n result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n } else {\n result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n return result;\n}","export default function getEntity(keyEntities, key) {\n return keyEntities[key];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport warning from \"rc-util/es/warning\";\nimport getEntity from './keyUtil';\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n title = _ref.title,\n _title = _ref._title,\n key = _ref.key,\n children = _ref.children;\n var mergedTitle = title || 'title';\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children'\n };\n}\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData, fieldNames) {\n var keys = new Map();\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode[fieldNames.key];\n var children = treeNode[fieldNames.children];\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n var key = treeNode.key;\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, _excluded);\n var dataNode = _objectSpread({\n key: key\n }, rest);\n var parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n var _fillFieldNames = fillFieldNames(fieldNames),\n fieldTitles = _fillFieldNames._title,\n fieldKey = _fillFieldNames.key,\n fieldChildren = _fillFieldNames.children;\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode[fieldKey], pos);\n // Pick matched title in field title list\n var mergedTitle;\n for (var i = 0; i < fieldTitles.length; i += 1) {\n var fieldTitle = fieldTitles[i];\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n }\n // Add FlattenDataNode into list\n var flattenNode = _objectSpread(_objectSpread({}, omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren]))), {}, {\n title: mergedTitle,\n key: mergedKey,\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n flattenList.push(flattenNode);\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n return flattenNode;\n });\n }\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(dataNodes, callback,\n// To avoid too many params, let use config instead of origin param\nconfig) {\n var mergedConfig = {};\n if (_typeof(config) === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = {\n externalGetKey: config\n };\n }\n mergedConfig = mergedConfig || {};\n // Init config\n var _mergedConfig = mergedConfig,\n childrenPropName = _mergedConfig.childrenPropName,\n externalGetKey = _mergedConfig.externalGetKey,\n fieldNames = _mergedConfig.fieldNames;\n var _fillFieldNames2 = fillFieldNames(fieldNames),\n fieldKey = _fillFieldNames2.key,\n fieldChildren = _fillFieldNames2.children;\n var mergeChildrenPropName = childrenPropName || fieldChildren;\n // Get keys\n var syntheticGetKey;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node[fieldKey], pos);\n };\n }\n // Process\n function processNode(node, index, parent, pathNodes) {\n var children = node ? node[mergeChildrenPropName] : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0';\n var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : [];\n // Process node if is not root\n if (node) {\n var key = syntheticGetKey(node, pos);\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes\n };\n callback(data);\n }\n // Process children node\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n }, connectNodes);\n });\n }\n }\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(dataNodes) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref2.initWrapper,\n processEntity = _ref2.processEntity,\n onProcessFinished = _ref2.onProcessFinished,\n externalGetKey = _ref2.externalGetKey,\n childrenPropName = _ref2.childrenPropName,\n fieldNames = _ref2.fieldNames;\n var /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n // Init config\n var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level,\n nodes = item.nodes;\n var entity = {\n node: node,\n nodes: nodes,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity;\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, {\n externalGetKey: mergedExternalGetKey,\n childrenPropName: childrenPropName,\n fieldNames: fieldNames\n });\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps(key, _ref3) {\n var expandedKeys = _ref3.expandedKeys,\n selectedKeys = _ref3.selectedKeys,\n loadedKeys = _ref3.loadedKeys,\n loadingKeys = _ref3.loadingKeys,\n checkedKeys = _ref3.checkedKeys,\n halfCheckedKeys = _ref3.halfCheckedKeys,\n dragOverNodeKey = _ref3.dragOverNodeKey,\n dropPosition = _ref3.dropPosition,\n keyEntities = _ref3.keyEntities;\n var entity = getEntity(keyEntities, key);\n var treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active,\n eventKey = props.eventKey;\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active,\n key: eventKey\n });\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n return eventData;\n}","import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from \"./Dom/canUseDom\";\nvar Portal = /*#__PURE__*/forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var parentRef = useRef();\n var containerRef = useRef();\n\n // Ref return nothing, only for wrapper check exist\n useImperativeHandle(ref, function () {\n return {};\n });\n\n // Create container in client side with sync to avoid useEffect not get ref\n var initRef = useRef(false);\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n parentRef.current = containerRef.current.parentNode;\n initRef.current = true;\n }\n\n // [Legacy] Used by `rc-trigger`\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 || didUpdate(props);\n });\n useEffect(function () {\n // Restore container to original place\n // React 18 StrictMode will unmount first and mount back for effect test:\n // https://reactjs.org/blog/2022/03/29/react-v18.html#new-strict-mode-behaviors\n if (containerRef.current.parentNode === null && parentRef.current !== null) {\n parentRef.current.appendChild(containerRef.current);\n }\n return function () {\n var _containerRef$current;\n // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 || (_containerRef$current = _containerRef$current.parentNode) === null || _containerRef$current === void 0 || _containerRef$current.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? /*#__PURE__*/ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/legacyUtil\";\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","let vendorPrefix;\n\nconst jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-',\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n const style = document.createElement('p').style;\n const testProp = 'Transform';\n for (const key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix()\n ? `${getVendorPrefix()}TransitionProperty`\n : 'transitionProperty';\n}\n\nexport function getTransformName() {\n return getVendorPrefix() ? `${getVendorPrefix()}Transform` : 'transform';\n}\n\nexport function setTransitionProperty(node, value) {\n const name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n const name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nexport function getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\n\nexport function getTransformXY(node) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n const matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0),\n };\n }\n return {\n x: 0,\n y: 0,\n };\n}\n\nconst matrix2d = /matrix\\((.*)\\)/;\nconst matrix3d = /matrix3d\\((.*)\\)/;\n\nexport function setTransformXY(node, xy) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n let arr;\n let match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, `matrix(${arr.join(',')})`);\n } else {\n const match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, `matrix3d(${arr.join(',')})`);\n }\n } else {\n setTransform(\n node,\n `translateX(${xy.x}px) translateY(${xy.y}px) translateZ(0)`,\n );\n }\n}\n","import {\n setTransitionProperty,\n getTransitionProperty,\n getTransformXY,\n setTransformXY,\n getTransformName,\n} from './propertyUtils';\n\nconst RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nlet getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n const originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n let value = v;\n if (typeof name === 'object') {\n for (const i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = `${value}px`;\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n let box;\n let x;\n let y;\n const doc = elem.ownerDocument;\n const body = doc.body;\n const docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = Math.floor(box.left);\n y = Math.floor(box.top);\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return {\n left: x,\n top: y,\n };\n}\n\nfunction getScroll(w, top) {\n let ret = w[`page${top ? 'Y' : 'X'}Offset`];\n const method = `scroll${top ? 'Top' : 'Left'}`;\n if (typeof ret !== 'number') {\n const d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n const pos = getClientPosition(el);\n const doc = el.ownerDocument;\n const w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n if (node.nodeType === 9) {\n return node;\n }\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n let computedStyle = cs;\n let val = '';\n const d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nconst _RE_NUM_NO_PX = new RegExp(`^(${RE_NUM})(?!px)[a-z%]+$`, 'i');\nconst RE_POS = /^(top|right|bottom|left)$/;\nconst CURRENT_STYLE = 'currentStyle';\nconst RUNTIME_STYLE = 'runtimeStyle';\nconst LEFT = 'left';\nconst PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n let ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n const style = elem.style;\n const left = style[LEFT];\n const rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle\n ? _getComputedStyle\n : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n let presetH = -999;\n let presetV = -999;\n const horizontalProperty = getOffsetDirection('left', option);\n const verticalProperty = getOffsetDirection('top', option);\n const oppositeHorizontalProperty = oppositeOffsetDirection(\n horizontalProperty,\n );\n const oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n let originalTransition = '';\n const originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = `${presetH}px`;\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = `${presetV}px`;\n }\n // force relayout\n forceRelayout(elem);\n const old = getOffset(elem);\n const originalStyle = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const preset = key === 'left' ? presetH : presetV;\n const off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n forceRelayout(elem);\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n const ret = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const off = offset[key] - originalOffset[key];\n if (key === dir) {\n ret[dir] = originalStyle[dir] + off;\n } else {\n ret[dir] = originalStyle[dir] - off;\n }\n }\n }\n css(elem, ret);\n}\n\nfunction setTransform(elem, offset) {\n const originalOffset = getOffset(elem);\n const originalXY = getTransformXY(elem);\n const resultXY = { x: originalXY.x, y: originalXY.y };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n const oriOffset = getOffset(elem);\n\n const oLeft = oriOffset.left.toFixed(0);\n const oTop = oriOffset.top.toFixed(0);\n const tLeft = offset.left.toFixed(0);\n const tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (\n option.useCssTransform &&\n getTransformName() in document.body.style\n ) {\n setTransform(elem, offset, option);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (let i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nconst BOX_MODELS = ['margin', 'border', 'padding'];\nconst CONTENT_INDEX = -1;\nconst PADDING_INDEX = 2;\nconst BORDER_INDEX = 1;\nconst MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n const old = {};\n const style = elem.style;\n let name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n let value = 0;\n let prop;\n let j;\n let i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n let cssProp;\n if (prop === 'border') {\n cssProp = `${prop}${which[i]}Width`;\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\nconst domUtils = {\n getParent(element) {\n let parent = element;\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n return parent;\n },\n};\n\neach(['Width', 'Height'], name => {\n domUtils[`doc${name}`] = refWin => {\n const d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[`scroll${name}`],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[`scroll${name}`],\n domUtils[`viewport${name}`](d),\n );\n };\n\n domUtils[`viewport${name}`] = win => {\n // pc browser includes scrollbar in window.innerWidth\n const prop = `client${name}`;\n const doc = win.document;\n const body = doc.body;\n const documentElement = doc.documentElement;\n const documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return (\n (doc.compatMode === 'CSS1Compat' && documentElementProp) ||\n (body && body[prop]) ||\n documentElementProp\n );\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n let extra = ex;\n if (isWindow(elem)) {\n return name === 'width'\n ? domUtils.viewportWidth(elem)\n : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width'\n ? domUtils.docWidth(elem)\n : domUtils.docHeight(elem);\n }\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n let borderBoxValue =\n name === 'width'\n ? Math.floor(elem.getBoundingClientRect().width)\n : Math.floor(elem.getBoundingClientRect().height);\n const isBorderBox = isBorderBoxFn(elem);\n let cssBoxValue = 0;\n if (\n borderBoxValue === null ||\n borderBoxValue === undefined ||\n borderBoxValue <= 0\n ) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (\n cssBoxValue === null ||\n cssBoxValue === undefined ||\n Number(cssBoxValue) < 0\n ) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = Math.floor(parseFloat(cssBoxValue)) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n const borderBoxValueOrIsBorderBox =\n borderBoxValue !== undefined || isBorderBox;\n const val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return (\n val +\n (extra === PADDING_INDEX\n ? -getPBMWidth(elem, ['border'], which)\n : getPBMWidth(elem, ['margin'], which))\n );\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nconst cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block',\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(...args) {\n let val;\n const elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, () => {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], name => {\n const first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[`outer${first}`] = (el, includeMargin) => {\n return (\n el &&\n getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX)\n );\n };\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = (elem, v) => {\n let val = v;\n if (val !== undefined) {\n if (elem) {\n const isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (const i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\nconst utils = {\n getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n const doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument,\n offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow,\n each,\n css,\n clone(obj) {\n let i;\n const ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n const overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix,\n getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n utils.mix(ret, args[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0,\n};\n\nmix(utils, domUtils);\n\nexport default utils;\n","import utils from './utils';\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nconst { getParent } = utils;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n }\n // ie 这个也不是完全可行\n /*\n <div style=\"width: 50px;height: 100px;overflow: hidden\">\n <div style=\"width: 50px;height: 100px;position: relative;\" id=\"d6\">\n 元素 6 高 100px 宽 50px<br/>\n </div>\n </div>\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent;\n let positionStyle = utils.css(element, 'position');\n const skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html'\n ? null\n : getParent(element);\n }\n\n for (\n parent = getParent(element);\n parent && parent !== body && parent.nodeType !== 9;\n parent = getParent(parent)\n ) {\n positionStyle = utils.css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nexport default getOffsetParent;\n","import utils from './utils';\n\nconst { getParent } = utils;\n\nexport default function isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent = null;\n for (\n parent = getParent(element);\n // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc;\n parent = getParent(parent)\n ) {\n const positionStyle = utils.css(parent, 'position');\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n return false;\n}\n","import utils from './utils';\nimport getOffsetParent from './getOffsetParent';\nimport isAncestorFixed from './isAncestorFixed';\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n const visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity,\n };\n let el = getOffsetParent(element);\n const doc = utils.getDocument(element);\n const win = doc.defaultView || doc.parentWindow;\n const body = doc.body;\n const documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if (\n (navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n (el !== body &&\n el !== documentElement &&\n utils.css(el, 'overflow') !== 'visible')\n ) {\n const pos = utils.offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(\n visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth,\n );\n visibleRect.bottom = Math.min(\n visibleRect.bottom,\n pos.top + el.clientHeight,\n );\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = getOffsetParent(el);\n }\n\n // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n let originalPosition = null;\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n const position = utils.css(element, 'position');\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n let documentWidth = documentElement.scrollWidth;\n let documentHeight = documentElement.scrollHeight;\n\n // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n const bodyStyle = window.getComputedStyle(body);\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n }\n\n // Reset element position after calculate the visible area\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n const maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n\n const maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 &&\n visibleRect.left >= 0 &&\n visibleRect.bottom > visibleRect.top &&\n visibleRect.right > visibleRect.left\n ? visibleRect\n : null;\n}\n\nexport default getVisibleRectForElement;\n","import utils from './utils';\n\nfunction getRegion(node) {\n let offset;\n let w;\n let h;\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n const win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win),\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\nexport default getRegion;\n","/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n const V = align.charAt(0);\n const H = align.charAt(1);\n const w = region.width;\n const h = region.height;\n\n let x = region.left;\n let y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y,\n };\n}\n\nexport default getAlignOffset;\n","import getAlignOffset from './getAlignOffset';\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n const p1 = getAlignOffset(refNodeRegion, points[1]);\n const p2 = getAlignOffset(elRegion, points[0]);\n const diff = [p2.left - p1.left, p2.top - p1.top];\n\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1]),\n };\n}\n\nexport default getElFuturePos;\n","/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nimport utils from '../utils';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport adjustForViewport from '../adjustForViewport';\nimport getRegion from '../getRegion';\nimport getElFuturePos from '../getElFuturePos';\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left < visibleRect.left ||\n elFuturePos.left + elRegion.width > visibleRect.right\n );\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top < visibleRect.top ||\n elFuturePos.top + elRegion.height > visibleRect.bottom\n );\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left > visibleRect.right ||\n elFuturePos.left + elRegion.width < visibleRect.left\n );\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top > visibleRect.bottom ||\n elFuturePos.top + elRegion.height < visibleRect.top\n );\n}\n\nfunction flip(points, reg, map) {\n const ret = [];\n utils.each(points, p => {\n ret.push(\n p.replace(reg, m => {\n return map[m];\n }),\n );\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n let n;\n if (/%$/.test(str)) {\n n = (parseInt(str.substring(0, str.length - 1), 10) / 100) * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n let points = align.points;\n let offset = align.offset || [0, 0];\n let targetOffset = align.targetOffset || [0, 0];\n let overflow = align.overflow;\n const source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n const newOverflowCfg = {};\n let fail = 0;\n const alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n // 当前节点可以被放置的显示区域\n const visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n // 当前节点所占的区域, left/top/width/height\n const elRegion = getRegion(source);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion);\n // 当前节点将要被放置的位置\n let elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n // 当前节点将要所处的区域\n let newElRegion = utils.merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (\n visibleRect &&\n (overflow.adjustX || overflow.adjustY) &&\n isTgtRegionVisible\n ) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 0);\n const newTargetOffset = flipOffset(targetOffset, 0);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 1);\n const newTargetOffset = flipOffset(targetOffset, 1);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailY(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n utils.mix(newElRegion, elFuturePos);\n }\n const isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n const isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n if (isStillFailX || isStillFailY) {\n let newPoints = points;\n\n // 重置对应部分的翻转逻辑\n if (isStillFailX) {\n newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n }\n if (isStillFailY) {\n newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n }\n\n points = newPoints;\n\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n }\n // 2. 只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(\n elFuturePos,\n elRegion,\n visibleRect,\n newOverflowCfg,\n );\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n utils.css(\n source,\n 'width',\n utils.width(source) + newElRegion.width - elRegion.width,\n );\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(\n source,\n 'height',\n utils.height(source) + newElRegion.height - elRegion.height,\n );\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如 <div 'relative'><el absolute></div>\n utils.offset(\n source,\n {\n left: newElRegion.left,\n top: newElRegion.top,\n },\n {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake,\n },\n );\n\n return {\n points,\n offset,\n targetOffset,\n overflow: newOverflowCfg,\n };\n}\n\nexport default doAlign;\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n","import utils from './utils';\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n const pos = utils.clone(elFuturePos);\n const size = {\n width: elRegion.width,\n height: elRegion.height,\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (\n overflow.resizeWidth &&\n pos.left >= visibleRect.left &&\n pos.left + size.width > visibleRect.right\n ) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (\n overflow.resizeHeight &&\n pos.top >= visibleRect.top &&\n pos.top + size.height > visibleRect.bottom\n ) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nexport default adjustForViewport;\n","import doAlign from './align';\nimport getOffsetParent from '../getOffsetParent';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport getRegion from '../getRegion';\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n const visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n const targetRegion = getRegion(target);\n\n return (\n !visibleRect ||\n targetRegion.left + targetRegion.width <= visibleRect.left ||\n targetRegion.top + targetRegion.height <= visibleRect.top ||\n targetRegion.left >= visibleRect.right ||\n targetRegion.top >= visibleRect.bottom\n );\n}\n\nfunction alignElement(el, refNode, align) {\n const target = align.target || refNode;\n const refNodeRegion = getRegion(target);\n\n const isTargetNotOutOfVisible = !isOutOfVisibleRect(\n target,\n align.overflow && align.overflow.alwaysByViewport,\n );\n\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\n\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\nexport default alignElement;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport { alignElement, alignPoint } from 'dom-align';\nimport isEqual from \"rc-util/es/isEqual\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport React from 'react';\nimport useBuffer from \"./hooks/useBuffer\";\nimport { isSamePoint, monitorResize, restoreFocus } from \"./util\";\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n /** Popup node ref */\n\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.align = align;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestAlign = _forceAlignPropsRef$c.align,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n var source = nodeRef.current;\n\n if (!latestDisabled && latestTarget && source) {\n var _result;\n\n var _element = getElement(latestTarget);\n\n var _point = getPoint(latestTarget);\n\n cacheRef.current.element = _element;\n cacheRef.current.point = _point;\n cacheRef.current.align = latestAlign; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (_element && isVisible(_element)) {\n _result = alignElement(source, _element, latestAlign);\n } else if (_point) {\n _result = alignPoint(source, _point, latestAlign);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && _result) {\n latestOnAlign(source, _result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Handle props change\n\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n point = _React$useState4[0],\n setPoint = _React$useState4[1];\n\n useLayoutEffect(function () {\n setElement(getElement(target));\n setPoint(getPoint(target));\n });\n React.useEffect(function () {\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point) || !isEqual(cacheRef.current.align, align)) {\n _forceAlign();\n }\n }); // Watch popup element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(nodeRef.current, _forceAlign);\n return cancelFn;\n }, [nodeRef.current]); // Watch target element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(element, _forceAlign);\n return cancelFn;\n }, [element]); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n React.useEffect(function () {\n if (monitorWindowResize) {\n var cancelFn = addEventListener(window, 'resize', _forceAlign);\n return cancelFn.remove;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if ( /*#__PURE__*/React.isValidElement(childNode)) {\n childNode = /*#__PURE__*/React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RcAlign = /*#__PURE__*/React.forwardRef(Align);\nRcAlign.displayName = 'Align';\nexport default RcAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n cancelTrigger();\n\n if (!calledRef.current || force === true) {\n if (callback(force) === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","import utils from '../utils';\nimport doAlign from './align';\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n let pageX;\n let pageY;\n\n const doc = utils.getDocument(el);\n const win = doc.defaultView || doc.parentWindow;\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n const tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0,\n };\n\n const pointInView =\n pageX >= 0 &&\n pageX <= scrollX + viewportWidth &&\n (pageY >= 0 && pageY <= scrollY + viewportHeight);\n\n // Provide default target point\n const points = [align.points[0], 'cc'];\n\n return doAlign(el, tgtRegion, { ...align, points }, pointInView);\n}\n\nexport default alignPoint;\n","// export this package's api\nimport Align from \"./Align\";\nexport default Align;","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useState from \"rc-util/es/hooks/useState\";\n/**\n * Popup should follow the steps for each component work correctly:\n * measure - check for the current stretch size\n * align - let component align the position\n * aligned - re-align again in case additional className changed the size\n * afterAlign - choice next step is trigger motion or finished\n * beforeMotion - should reset motion to invisible so that CSSMotion can do normal motion\n * motion - play the motion\n * stable - everything is done\n */\n\nvar StatusQueue = ['measure', 'alignPre', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n\n function setStatus(nextStatus) {\n setInternalStatus(nextStatus, true);\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from \"./useVisibleStatus\";\nimport { getMotion } from \"../utils/legacyUtil\";\nimport useStretchStyle from \"./useStretchStyle\";\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart,\n onClick = props.onClick;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n /**\n * `alignedClassName` may modify `source` size,\n * which means one time align may not move to the correct position at once.\n *\n * We will reset `alignTimes` for each status switch to `alignPre`\n * and let `rc-align` to align for multiple times to ensure get final stable place.\n * Currently we mark `alignTimes < 2` repeat align, it will increase if user report for align issue.\n * \n * Update:\n * In React 18. `rc-align` effect of align may faster than ref called trigger `forceAlign`.\n * We adjust this to `alignTimes < 2`.\n * We need refactor `rc-align` to support mark of `forceAlign` call if this still happen.\n */\n\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n alignTimes = _useState4[0],\n setAlignTimes = _useState4[1];\n\n var prepareResolveRef = useRef();\n useLayoutEffect(function () {\n if (status === 'alignPre') {\n setAlignTimes(0);\n }\n }, [status]); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n\n if (alignedClassName !== nextAlignedClassName) {\n setAlignedClassName(nextAlignedClassName);\n } // We will retry multi times to make sure that the element has been align in the right position.\n\n\n setAlignTimes(function (val) {\n return val + 1;\n });\n\n if (status === 'align') {\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // Delay to go to next status\n\n\n useLayoutEffect(function () {\n if (status === 'align') {\n // Repeat until not more align needed\n if (alignTimes < 3) {\n forceAlign();\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n }\n }, [alignTimes]); // ======================== Motion ========================\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex,\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n // Cannot interact with disappearing elements\n // https://github.com/ant-design/ant-design/issues/35051#issuecomment-1101340714\n pointerEvents: !visible && status !== 'stable' ? 'none' : undefined\n }, style); // Align status\n\n\n var alignDisabled = true;\n\n if (align !== null && align !== void 0 && align.points && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n var tgtWidth = element.offsetWidth,\n tgtHeight = element.offsetHeight;\n\n var _element$getBoundingC = element.getBoundingClientRect(),\n width = _element$getBoundingC.width,\n height = _element$getBoundingC.height; // Rect is more accurate than offset, use if near\n\n\n if (Math.abs(tgtWidth - width) < 1 && Math.abs(tgtHeight - height) < 1) {\n tgtWidth = width;\n tgtHeight = height;\n }\n\n setTargetSize({\n width: tgtWidth,\n height: tgtHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender,\n onClick = props.onClick;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"visible\", \"mobile\"];\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from \"./Mask\";\nimport PopupInner from \"./PopupInner\";\nimport MobilePopupInner from \"./MobilePopupInner\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from \"./utils/alignUtil\";\nimport Popup from \"./Popup\";\nimport TriggerContext from \"./context\";\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n // ensure `getContainer` will be called only once\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"popupRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"triggerRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"portalContainer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"attachId\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"clickOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"touchOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler1\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler2\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"mouseDownTimeout\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"focusTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preClickTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preTouchTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"delayTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasPopupMouseDown\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseMove\", function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseEnter\", function () {\n _this.clearDelayTimer();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseLeave\", function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenu\", function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenuClose\", function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseDown\", function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentClick\", function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getRootDomNode\", function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopupClassNameFromAlign\", function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getComponent\", function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender,\n onPopupClick = _this$props2.onPopupClick;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender,\n onClick: onPopupClick\n }), typeof popup === 'function' ? popup() : popup);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"attachParent\", function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getContainer\", function () {\n if (!_this.portalContainer) {\n // In React.StrictMode component will call render multiple time in first mount.\n // When you want to refactor with FC, useRef will also init multiple time and\n // point to different useRef instance which will create multiple element\n // (This multiple render will not trigger effect so you can not clean up this\n // in effect). But this is safe with class component since it always point to same class instance.\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n _this.portalContainer = popupContainer;\n }\n\n _this.attachParent(_this.portalContainer);\n\n return _this.portalContainer;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setPoint\", function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePortalUpdate\", function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"triggerContextValue\", {\n onPopupMouseDown: _this.onPopupMouseDown\n });\n\n var _popupVisible;\n\n if ('popupVisible' in props) {\n _popupVisible = !!props.popupVisible;\n } else {\n _popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: _popupVisible,\n popupVisible: _popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n }, {\n key: \"setPopupVisible\",\n value:\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: this.triggerContextValue\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n _defineProperty(Trigger, \"contextType\", TriggerContext);\n\n _defineProperty(Trigger, \"defaultProps\", {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n });\n\n return Trigger;\n}\nexport default generateTrigger(Portal);","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n if (target !== null && target !== void 0 && target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n return {\n remove: function remove() {\n if (target !== null && target !== void 0 && target.removeEventListener) {\n target.removeEventListener(eventType, callback, option);\n }\n }\n };\n}","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = findStyles(container).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option);\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","import React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element\n // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n if (isDOM(node)) {\n return node;\n }\n if (node instanceof React.Component) {\n return ReactDOM.findDOMNode(node);\n }\n return null;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from \"./isVisible\";\nfunction focusable(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (isVisible(node)) {\n var nodeName = node.nodeName.toLowerCase();\n var isFocusableElement =\n // Focusable element\n ['input', 'select', 'textarea', 'button'].includes(nodeName) ||\n // Editable element\n node.isContentEditable ||\n // Anchor with href element\n nodeName === 'a' && !!node.getAttribute('href');\n\n // Get tabIndex\n var tabIndexAttr = node.getAttribute('tabindex');\n var tabIndexNum = Number(tabIndexAttr);\n\n // Parse as number if validate\n var tabIndex = null;\n if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n tabIndex = tabIndexNum;\n } else if (isFocusableElement && tabIndex === null) {\n tabIndex = 0;\n }\n\n // Block focusable if disabled\n if (isFocusableElement && node.disabled) {\n tabIndex = null;\n }\n return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n }\n return false;\n}\nexport function getFocusNodeList(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n return focusable(child, includePositive);\n });\n if (focusable(node, includePositive)) {\n res.unshift(node);\n }\n return res;\n}\nvar lastFocusElement = null;\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function saveLastFocusNode() {\n lastFocusElement = document.activeElement;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function clearLastFocusNode() {\n lastFocusElement = null;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function backLastFocusNode() {\n if (lastFocusElement) {\n try {\n // 元素可能已经被移动了\n lastFocusElement.focus();\n\n /* eslint-disable no-empty */\n } catch (e) {\n // empty\n }\n /* eslint-enable no-empty */\n }\n}\n\nexport function limitTabRange(node, e) {\n if (e.keyCode === 9) {\n var tabNodeList = getFocusNodeList(node);\n var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n if (leavingTab) {\n var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n target.focus();\n e.preventDefault();\n }\n }\n}","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof Element) {\n if (element.offsetParent) {\n return true;\n }\n if (element.getBBox) {\n var _getBBox = element.getBBox(),\n width = _getBBox.width,\n height = _getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n }\n return false;\n});","import canUseDom from \"./canUseDom\";\nvar isStyleNameSupport = function isStyleNameSupport(styleName) {\n if (canUseDom() && window.document.documentElement) {\n var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n var documentElement = window.document.documentElement;\n return styleNameList.some(function (name) {\n return name in documentElement.style;\n });\n }\n return false;\n};\nvar isStyleValueSupport = function isStyleValueSupport(styleName, value) {\n if (!isStyleNameSupport(styleName)) {\n return false;\n }\n var ele = document.createElement('div');\n var origin = ele.style[styleName];\n ele.style[styleName] = value;\n return ele.style[styleName] !== origin;\n};\nexport function isStyleSupport(styleName, styleValue) {\n if (!Array.isArray(styleName) && styleValue !== undefined) {\n return isStyleValueSupport(styleName, styleValue);\n }\n return isStyleNameSupport(styleName);\n}","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom';\n// Let compiler not to search module usage\nvar fullClone = _objectSpread({}, ReactDOM);\nvar version = fullClone.version,\n reactRender = fullClone.render,\n unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\ntry {\n var mainVersion = Number((version || '').split('.')[0]);\n if (mainVersion >= 18) {\n createRoot = fullClone.createRoot;\n }\n} catch (e) {\n // Do nothing;\n}\nfunction toggleWarning(skip) {\n var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n }\n}\nvar MARK = '__rc_react_root__';\n\n// ========================== Render ==========================\n\nfunction modernRender(node, container) {\n toggleWarning(true);\n var root = container[MARK] || createRoot(container);\n toggleWarning(false);\n root.render(node);\n container[MARK] = root;\n}\nfunction legacyRender(node, container) {\n reactRender(node, container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _r(node, container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyRender(node, container);\n }\n}\nexport function render(node, container) {\n if (createRoot) {\n modernRender(node, container);\n return;\n }\n legacyRender(node, container);\n}\n\n// ========================= Unmount ==========================\nfunction modernUnmount(_x) {\n return _modernUnmount.apply(this, arguments);\n}\nfunction _modernUnmount() {\n _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", Promise.resolve().then(function () {\n var _container$MARK;\n (_container$MARK = container[MARK]) === null || _container$MARK === void 0 || _container$MARK.unmount();\n delete container[MARK];\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _modernUnmount.apply(this, arguments);\n}\nfunction legacyUnmount(container) {\n unmountComponentAtNode(container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _u(container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyUnmount(container);\n }\n}\nexport function unmount(_x2) {\n return _unmount.apply(this, arguments);\n}\nfunction _unmount() {\n _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(createRoot !== undefined)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\", modernUnmount(container));\n case 2:\n legacyUnmount(container);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _unmount.apply(this, arguments);\n}","/* eslint-disable no-param-reassign */\n\nvar cached;\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\n if (fresh || cached === undefined) {\n var inner = document.createElement('div');\n inner.style.width = '100%';\n inner.style.height = '200px';\n var outer = document.createElement('div');\n var outerStyle = outer.style;\n outerStyle.position = 'absolute';\n outerStyle.top = '0';\n outerStyle.left = '0';\n outerStyle.pointerEvents = 'none';\n outerStyle.visibility = 'hidden';\n outerStyle.width = '200px';\n outerStyle.height = '150px';\n outerStyle.overflow = 'hidden';\n outer.appendChild(inner);\n document.body.appendChild(outer);\n var widthContained = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var widthScroll = inner.offsetWidth;\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n document.body.removeChild(outer);\n cached = widthContained - widthScroll;\n }\n return cached;\n}\nfunction ensureSize(str) {\n var match = str.match(/^(.*)px$/);\n var value = Number(match === null || match === void 0 ? void 0 : match[1]);\n return Number.isNaN(value) ? getScrollBarSize() : value;\n}\nexport function getTargetScrollBarSize(target) {\n if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n return {\n width: 0,\n height: 0\n };\n }\n var _getComputedStyle = getComputedStyle(target, '::-webkit-scrollbar'),\n width = _getComputedStyle.width,\n height = _getComputedStyle.height;\n return {\n width: ensureSize(width),\n height: ensureSize(height)\n };\n}","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nexport default function omit(obj, fields) {\n var clone = _objectSpread({}, obj);\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n return clone;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n charSet checked classID className colSpan cols content contentEditable contextMenu\\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n mediaGroup method min minLength multiple muted name noValidate nonce open\\n optimum pattern placeholder poster preload radioGroup readOnly rel required\\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n\n/* eslint-enable max-len */\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\nfunction match(key, prefix) {\n return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\nexport default function pickAttrs(props) {\n var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var mergedConfig;\n if (ariaOnly === false) {\n mergedConfig = {\n aria: true,\n data: true,\n attr: true\n };\n } else if (ariaOnly === true) {\n mergedConfig = {\n aria: true\n };\n } else {\n mergedConfig = _objectSpread({}, ariaOnly);\n }\n var attrs = {};\n Object.keys(props).forEach(function (key) {\n if (\n // Aria\n mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) ||\n // Data\n mergedConfig.data && match(key, dataPrefix) ||\n // Attr\n mergedConfig.attr && propList.includes(key)) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(id);\n return caf(realId);\n};\nif (process.env.NODE_ENV !== 'production') {\n wrapperRaf.ids = function () {\n return rafIds;\n };\n}\nexport default wrapperRaf;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-param-reassign */\n\nimport { isValidElement } from 'react';\nimport { isFragment, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(function (ref) {\n return ref;\n });\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render)) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render)) {\n return false;\n }\n return true;\n}\nexport function supportNodeRef(node) {\n if (! /*#__PURE__*/isValidElement(node)) {\n return false;\n }\n if (isFragment(node)) {\n return false;\n }\n return supportRef(node);\n}\n/* eslint-enable */","export default function get(entity, path) {\n var current = entity;\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n current = current[path[i]];\n }\n return current;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;\n/* eslint-enable */","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toArray;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactIs = require(\"react-is\");\nfunction toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n _react.default.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if ((0, _reactIs.isFragment)(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = canUseDom;\nfunction canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = contains;\nfunction contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clearContainerCache = clearContainerCache;\nexports.injectCSS = injectCSS;\nexports.removeCSS = removeCSS;\nexports.updateCSS = updateCSS;\nvar _canUseDom = _interopRequireDefault(require(\"./canUseDom\"));\nvar _contains = _interopRequireDefault(require(\"./contains\"));\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nfunction injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!(0, _canUseDom.default)()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = findStyles(container).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nfunction removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !(0, _contains.default)(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nfunction clearContainerCache() {\n containerCache.clear();\n}\nfunction updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option);\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isStyleSupport = isStyleSupport;\nvar _canUseDom = _interopRequireDefault(require(\"./canUseDom\"));\nvar isStyleNameSupport = function isStyleNameSupport(styleName) {\n if ((0, _canUseDom.default)() && window.document.documentElement) {\n var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n var documentElement = window.document.documentElement;\n return styleNameList.some(function (name) {\n return name in documentElement.style;\n });\n }\n return false;\n};\nvar isStyleValueSupport = function isStyleValueSupport(styleName, value) {\n if (!isStyleNameSupport(styleName)) {\n return false;\n }\n var ele = document.createElement('div');\n var origin = ele.style[styleName];\n ele.style[styleName] = value;\n return ele.style[styleName] !== origin;\n};\nfunction isStyleSupport(styleName, styleValue) {\n if (!Array.isArray(styleName) && styleValue !== undefined) {\n return isStyleValueSupport(styleName, styleValue);\n }\n return isStyleNameSupport(styleName);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nvar _default = exports.default = KeyCode;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useEvent;\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useLayoutUpdateEffect = exports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _canUseDom = _interopRequireDefault(require(\"../Dom/canUseDom\"));\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && (0, _canUseDom.default)() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nvar useLayoutUpdateEffect = exports.useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nvar _default = exports.default = useLayoutEffect;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useMemo;\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useMergedState;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _useEvent = _interopRequireDefault(require(\"./useEvent\"));\nvar _useLayoutEffect = require(\"./useLayoutEffect\");\nvar _useState5 = _interopRequireDefault(require(\"./useState\"));\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nfunction useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = (0, _useState5.default)(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = (0, _useEvent.default)(onChange);\n var _useState3 = (0, _useState5.default)([mergedValue]),\n _useState4 = (0, _slicedToArray2.default)(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n (0, _useLayoutEffect.useLayoutUpdateEffect)(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n (0, _useLayoutEffect.useLayoutUpdateEffect)(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = (0, _useEvent.default)(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useSafeState;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar React = _interopRequireWildcard(require(\"react\"));\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nfunction useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = omit;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nfunction omit(obj, fields) {\n var clone = (0, _objectSpread2.default)({}, obj);\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n return clone;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.composeRef = composeRef;\nexports.fillRef = fillRef;\nexports.supportNodeRef = supportNodeRef;\nexports.supportRef = supportRef;\nexports.useComposeRef = useComposeRef;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _react = require(\"react\");\nvar _reactIs = require(\"react-is\");\nvar _useMemo = _interopRequireDefault(require(\"./hooks/useMemo\"));\n/* eslint-disable no-param-reassign */\n\nfunction fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if ((0, _typeof2.default)(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nfunction composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(function (ref) {\n return ref;\n });\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nfunction useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return (0, _useMemo.default)(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n}\nfunction supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = (0, _reactIs.isMemo)(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render)) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render)) {\n return false;\n }\n return true;\n}\nfunction supportNodeRef(node) {\n if (! /*#__PURE__*/(0, _react.isValidElement)(node)) {\n return false;\n }\n if ((0, _reactIs.isFragment)(node)) {\n return false;\n }\n return supportRef(node);\n}\n/* eslint-enable */","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = get;\nfunction get(entity, path) {\n var current = entity;\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n current = current[path[i]];\n }\n return current;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = set;\nexports.merge = merge;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _toArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toArray\"));\nvar _get = _interopRequireDefault(require(\"./get\"));\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = (0, _toArray2.default)(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = (0, _toConsumableArray2.default)(entity);\n } else {\n clone = (0, _objectSpread2.default)({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nfunction set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !(0, _get.default)(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return (0, _typeof2.default)(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nfunction merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = (0, _get.default)(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = (0, _get.default)(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || (0, _typeof2.default)(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat((0, _toConsumableArray2.default)(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.call = call;\nexports.default = void 0;\nexports.note = note;\nexports.noteOnce = noteOnce;\nexports.preMessage = void 0;\nexports.resetWarned = resetWarned;\nexports.warning = warning;\nexports.warningOnce = warningOnce;\n/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nvar preMessage = exports.preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nfunction warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nfunction note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nfunction resetWarned() {\n warned = {};\n}\nfunction call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nfunction warningOnce(valid, message) {\n call(warning, valid, message);\n}\nfunction noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nvar _default = exports.default = warningOnce;\n/* eslint-enable */","/**\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 _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport classNames from 'classnames';\n/**\n * Fill component to provided the scroll content real height.\n */\nvar Filler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var height = _ref.height,\n offsetY = _ref.offsetY,\n offsetX = _ref.offsetX,\n children = _ref.children,\n prefixCls = _ref.prefixCls,\n onInnerResize = _ref.onInnerResize,\n innerProps = _ref.innerProps,\n rtl = _ref.rtl,\n extra = _ref.extra;\n var outerStyle = {};\n var innerStyle = {\n display: 'flex',\n flexDirection: 'column'\n };\n if (offsetY !== undefined) {\n var _objectSpread2;\n // Not set `width` since this will break `sticky: right`\n outerStyle = {\n height: height,\n position: 'relative',\n overflow: 'hidden'\n };\n innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, (_objectSpread2 = {\n transform: \"translateY(\".concat(offsetY, \"px)\")\n }, _defineProperty(_objectSpread2, rtl ? 'marginRight' : 'marginLeft', -offsetX), _defineProperty(_objectSpread2, \"position\", 'absolute'), _defineProperty(_objectSpread2, \"left\", 0), _defineProperty(_objectSpread2, \"right\", 0), _defineProperty(_objectSpread2, \"top\", 0), _objectSpread2));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: outerStyle\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref2) {\n var offsetHeight = _ref2.offsetHeight;\n if (offsetHeight && onInnerResize) {\n onInnerResize();\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n style: innerStyle,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls)),\n ref: ref\n }, innerProps), children, extra)));\n});\nFiller.displayName = 'Filler';\nexport default Filler;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nfunction getPageXY(e, horizontal) {\n var obj = 'touches' in e ? e.touches[0] : e;\n return obj[horizontal ? 'pageX' : 'pageY'];\n}\nvar ScrollBar = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var prefixCls = props.prefixCls,\n rtl = props.rtl,\n scrollOffset = props.scrollOffset,\n scrollRange = props.scrollRange,\n onStartMove = props.onStartMove,\n onStopMove = props.onStopMove,\n onScroll = props.onScroll,\n horizontal = props.horizontal,\n spinSize = props.spinSize,\n containerSize = props.containerSize,\n style = props.style,\n propsThumbStyle = props.thumbStyle;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n dragging = _React$useState2[0],\n setDragging = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n pageXY = _React$useState4[0],\n setPageXY = _React$useState4[1];\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n startTop = _React$useState6[0],\n setStartTop = _React$useState6[1];\n var isLTR = !rtl;\n // ========================= Refs =========================\n var scrollbarRef = React.useRef();\n var thumbRef = React.useRef();\n // ======================= Visible ========================\n var _React$useState7 = React.useState(false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n visible = _React$useState8[0],\n setVisible = _React$useState8[1];\n var visibleTimeoutRef = React.useRef();\n var delayHidden = function delayHidden() {\n clearTimeout(visibleTimeoutRef.current);\n setVisible(true);\n visibleTimeoutRef.current = setTimeout(function () {\n setVisible(false);\n }, 3000);\n };\n // ======================== Range =========================\n var enableScrollRange = scrollRange - containerSize || 0;\n var enableOffsetRange = containerSize - spinSize || 0;\n // `scrollWidth` < `clientWidth` means no need to show scrollbar\n var canScroll = enableScrollRange > 0;\n // ========================= Top ==========================\n var top = React.useMemo(function () {\n if (scrollOffset === 0 || enableScrollRange === 0) {\n return 0;\n }\n var ptg = scrollOffset / enableScrollRange;\n return ptg * enableOffsetRange;\n }, [scrollOffset, enableScrollRange, enableOffsetRange]);\n // ====================== Container =======================\n var onContainerMouseDown = function onContainerMouseDown(e) {\n e.stopPropagation();\n e.preventDefault();\n };\n // ======================== Thumb =========================\n var stateRef = React.useRef({\n top: top,\n dragging: dragging,\n pageY: pageXY,\n startTop: startTop\n });\n stateRef.current = {\n top: top,\n dragging: dragging,\n pageY: pageXY,\n startTop: startTop\n };\n var onThumbMouseDown = function onThumbMouseDown(e) {\n setDragging(true);\n setPageXY(getPageXY(e, horizontal));\n setStartTop(stateRef.current.top);\n onStartMove();\n e.stopPropagation();\n e.preventDefault();\n };\n // ======================== Effect ========================\n // React make event as passive, but we need to preventDefault\n // Add event on dom directly instead.\n // ref: https://github.com/facebook/react/issues/9809\n React.useEffect(function () {\n var onScrollbarTouchStart = function onScrollbarTouchStart(e) {\n e.preventDefault();\n };\n var scrollbarEle = scrollbarRef.current;\n var thumbEle = thumbRef.current;\n scrollbarEle.addEventListener('touchstart', onScrollbarTouchStart);\n thumbEle.addEventListener('touchstart', onThumbMouseDown);\n return function () {\n scrollbarEle.removeEventListener('touchstart', onScrollbarTouchStart);\n thumbEle.removeEventListener('touchstart', onThumbMouseDown);\n };\n }, []);\n // Pass to effect\n var enableScrollRangeRef = React.useRef();\n enableScrollRangeRef.current = enableScrollRange;\n var enableOffsetRangeRef = React.useRef();\n enableOffsetRangeRef.current = enableOffsetRange;\n React.useEffect(function () {\n if (dragging) {\n var moveRafId;\n var onMouseMove = function onMouseMove(e) {\n var _stateRef$current = stateRef.current,\n stateDragging = _stateRef$current.dragging,\n statePageY = _stateRef$current.pageY,\n stateStartTop = _stateRef$current.startTop;\n raf.cancel(moveRafId);\n if (stateDragging) {\n var offset = getPageXY(e, horizontal) - statePageY;\n var newTop = stateStartTop;\n if (!isLTR && horizontal) {\n newTop -= offset;\n } else {\n newTop += offset;\n }\n var tmpEnableScrollRange = enableScrollRangeRef.current;\n var tmpEnableOffsetRange = enableOffsetRangeRef.current;\n var ptg = tmpEnableOffsetRange ? newTop / tmpEnableOffsetRange : 0;\n var newScrollTop = Math.ceil(ptg * tmpEnableScrollRange);\n newScrollTop = Math.max(newScrollTop, 0);\n newScrollTop = Math.min(newScrollTop, tmpEnableScrollRange);\n moveRafId = raf(function () {\n onScroll(newScrollTop, horizontal);\n });\n }\n };\n var onMouseUp = function onMouseUp() {\n setDragging(false);\n onStopMove();\n };\n window.addEventListener('mousemove', onMouseMove);\n window.addEventListener('touchmove', onMouseMove);\n window.addEventListener('mouseup', onMouseUp);\n window.addEventListener('touchend', onMouseUp);\n return function () {\n window.removeEventListener('mousemove', onMouseMove);\n window.removeEventListener('touchmove', onMouseMove);\n window.removeEventListener('mouseup', onMouseUp);\n window.removeEventListener('touchend', onMouseUp);\n raf.cancel(moveRafId);\n };\n }\n }, [dragging]);\n React.useEffect(function () {\n delayHidden();\n }, [scrollOffset]);\n // ====================== Imperative ======================\n React.useImperativeHandle(ref, function () {\n return {\n delayHidden: delayHidden\n };\n });\n // ======================== Render ========================\n var scrollbarPrefixCls = \"\".concat(prefixCls, \"-scrollbar\");\n var containerStyle = {\n position: 'absolute',\n visibility: visible && canScroll ? null : 'hidden'\n };\n var thumbStyle = {\n position: 'absolute',\n background: 'rgba(0, 0, 0, 0.5)',\n borderRadius: 99,\n cursor: 'pointer',\n userSelect: 'none'\n };\n if (horizontal) {\n // Container\n containerStyle.height = 8;\n containerStyle.left = 0;\n containerStyle.right = 0;\n containerStyle.bottom = 0;\n // Thumb\n thumbStyle.height = '100%';\n thumbStyle.width = spinSize;\n if (isLTR) {\n thumbStyle.left = top;\n } else {\n thumbStyle.right = top;\n }\n } else {\n // Container\n containerStyle.width = 8;\n containerStyle.top = 0;\n containerStyle.bottom = 0;\n if (isLTR) {\n containerStyle.right = 0;\n } else {\n containerStyle.left = 0;\n }\n // Thumb\n thumbStyle.width = '100%';\n thumbStyle.height = spinSize;\n thumbStyle.top = top;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarRef,\n className: classNames(scrollbarPrefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(scrollbarPrefixCls, \"-horizontal\"), horizontal), _defineProperty(_classNames, \"\".concat(scrollbarPrefixCls, \"-vertical\"), !horizontal), _defineProperty(_classNames, \"\".concat(scrollbarPrefixCls, \"-visible\"), visible), _classNames)),\n style: _objectSpread(_objectSpread({}, containerStyle), style),\n onMouseDown: onContainerMouseDown,\n onMouseMove: delayHidden\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: thumbRef,\n className: classNames(\"\".concat(scrollbarPrefixCls, \"-thumb\"), _defineProperty({}, \"\".concat(scrollbarPrefixCls, \"-thumb-moving\"), dragging)),\n style: _objectSpread(_objectSpread({}, thumbStyle), propsThumbStyle),\n onMouseDown: onThumbMouseDown\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n ScrollBar.displayName = 'ScrollBar';\n}\nexport default ScrollBar;","import * as React from 'react';\nexport function Item(_ref) {\n var children = _ref.children,\n setRef = _ref.setRef;\n var refFunc = React.useCallback(function (node) {\n setRef(node);\n }, []);\n return /*#__PURE__*/React.cloneElement(children, {\n ref: refFunc\n });\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n// Firefox has low performance of map.\nvar CacheMap = /*#__PURE__*/function () {\n function CacheMap() {\n _classCallCheck(this, CacheMap);\n this.maps = void 0;\n // Used for cache key\n // `useMemo` no need to update if `id` not change\n this.id = 0;\n this.maps = Object.create(null);\n }\n _createClass(CacheMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.maps[key] = value;\n this.id += 1;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.maps[key];\n }\n }]);\n return CacheMap;\n}();\nexport default CacheMap;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { warning } from 'rc-util';\nvar MAX_TIMES = 10;\nexport default function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHeight, syncScrollTop, triggerFlash) {\n var scrollRef = React.useRef();\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n syncState = _React$useState2[0],\n setSyncState = _React$useState2[1];\n // ========================== Sync Scroll ==========================\n useLayoutEffect(function () {\n if (syncState && syncState.times < MAX_TIMES) {\n // Never reach\n if (!containerRef.current) {\n setSyncState(function (ori) {\n return _objectSpread({}, ori);\n });\n return;\n }\n collectHeight();\n var targetAlign = syncState.targetAlign,\n originAlign = syncState.originAlign,\n index = syncState.index,\n offset = syncState.offset;\n var height = containerRef.current.clientHeight;\n var needCollectHeight = false;\n var newTargetAlign = targetAlign;\n var targetTop = null;\n // Go to next frame if height not exist\n if (height) {\n var mergedAlign = targetAlign || originAlign;\n // Get top & bottom\n var stackTop = 0;\n var itemTop = 0;\n var itemBottom = 0;\n var maxLen = Math.min(data.length - 1, index);\n for (var i = 0; i <= maxLen; i += 1) {\n var key = getKey(data[i]);\n itemTop = stackTop;\n var cacheHeight = heights.get(key);\n itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n stackTop = itemBottom;\n }\n // Check if need sync height (visible range has item not record height)\n var leftHeight = mergedAlign === 'top' ? offset : height - offset;\n for (var _i = maxLen; _i >= 0; _i -= 1) {\n var _key = getKey(data[_i]);\n var _cacheHeight = heights.get(_key);\n if (_cacheHeight === undefined) {\n needCollectHeight = true;\n break;\n }\n leftHeight -= _cacheHeight;\n if (leftHeight <= 0) {\n break;\n }\n }\n // Scroll to\n switch (mergedAlign) {\n case 'top':\n targetTop = itemTop - offset;\n break;\n case 'bottom':\n targetTop = itemBottom - height + offset;\n break;\n default:\n {\n var scrollTop = containerRef.current.scrollTop;\n var scrollBottom = scrollTop + height;\n if (itemTop < scrollTop) {\n newTargetAlign = 'top';\n } else if (itemBottom > scrollBottom) {\n newTargetAlign = 'bottom';\n }\n }\n }\n if (targetTop !== null) {\n syncScrollTop(targetTop);\n }\n // One more time for sync\n if (targetTop !== syncState.lastTop) {\n needCollectHeight = true;\n }\n }\n // Trigger next effect\n if (needCollectHeight) {\n setSyncState(_objectSpread(_objectSpread({}, syncState), {}, {\n times: syncState.times + 1,\n targetAlign: newTargetAlign,\n lastTop: targetTop\n }));\n }\n } else if (process.env.NODE_ENV !== 'production' && (syncState === null || syncState === void 0 ? void 0 : syncState.times) === MAX_TIMES) {\n warning(false, 'Seems `scrollTo` with `rc-virtual-list` reach the max limitation. Please fire issue for us. Thanks.');\n }\n }, [syncState, containerRef.current]);\n // =========================== Scroll To ===========================\n return function (arg) {\n // When not argument provided, we think dev may want to show the scrollbar\n if (arg === null || arg === undefined) {\n triggerFlash();\n return;\n }\n // Normal scroll logic\n raf.cancel(scrollRef.current);\n if (typeof arg === 'number') {\n syncScrollTop(arg);\n } else if (arg && _typeof(arg) === 'object') {\n var index;\n var align = arg.align;\n if ('index' in arg) {\n index = arg.index;\n } else {\n index = data.findIndex(function (item) {\n return getKey(item) === arg.key;\n });\n }\n var _arg$offset = arg.offset,\n offset = _arg$offset === void 0 ? 0 : _arg$offset;\n setSyncState({\n times: 0,\n index: index,\n offset: offset,\n originAlign: align\n });\n }\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { findListDiffIndex } from '../utils/algorithmUtil';\nexport default function useDiffItem(data, getKey, onDiff) {\n var _React$useState = React.useState(data),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevData = _React$useState2[0],\n setPrevData = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n diffItem = _React$useState4[0],\n setDiffItem = _React$useState4[1];\n React.useEffect(function () {\n var diff = findListDiffIndex(prevData || [], data || [], getKey);\n if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {\n onDiff === null || onDiff === void 0 ? void 0 : onDiff(diff.index);\n setDiffItem(data[diff.index]);\n }\n setPrevData(data);\n }, [data]);\n return [diffItem];\n}","/**\n * Get index with specific start index one by one. e.g.\n * min: 3, max: 9, start: 6\n *\n * Return index is:\n * [0]: 6\n * [1]: 7\n * [2]: 5\n * [3]: 8\n * [4]: 4\n * [5]: 9\n * [6]: 3\n */\nexport function getIndexByStartLoc(min, max, start, index) {\n var beforeCount = start - min;\n var afterCount = max - start;\n var balanceCount = Math.min(beforeCount, afterCount) * 2;\n // Balance\n if (index <= balanceCount) {\n var stepIndex = Math.floor(index / 2);\n if (index % 2) {\n return start + stepIndex + 1;\n }\n return start - stepIndex;\n }\n // One is out of range\n if (beforeCount > afterCount) {\n return start - (index - afterCount);\n }\n return start + (index - beforeCount);\n}\n/**\n * We assume that 2 list has only 1 item diff and others keeping the order.\n * So we can use dichotomy algorithm to find changed one.\n */\nexport function findListDiffIndex(originList, targetList, getKey) {\n var originLen = originList.length;\n var targetLen = targetList.length;\n var shortList;\n var longList;\n if (originLen === 0 && targetLen === 0) {\n return null;\n }\n if (originLen < targetLen) {\n shortList = originList;\n longList = targetList;\n } else {\n shortList = targetList;\n longList = originList;\n }\n var notExistKey = {\n __EMPTY_ITEM__: true\n };\n function getItemKey(item) {\n if (item !== undefined) {\n return getKey(item);\n }\n return notExistKey;\n }\n // Loop to find diff one\n var diffIndex = null;\n var multiple = Math.abs(originLen - targetLen) !== 1;\n for (var i = 0; i < longList.length; i += 1) {\n var shortKey = getItemKey(shortList[i]);\n var longKey = getItemKey(longList[i]);\n if (shortKey !== longKey) {\n diffIndex = i;\n multiple = multiple || shortKey !== getItemKey(longList[i + 1]);\n break;\n }\n }\n return diffIndex === null ? null : {\n index: diffIndex,\n multiple: multiple\n };\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar isFF = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && /Firefox/i.test(navigator.userAgent);\nexport default isFF;","import { useRef } from 'react';\nexport default (function (isScrollAtTop, isScrollAtBottom) {\n // Do lock for a wheel when scrolling\n var lockRef = useRef(false);\n var lockTimeoutRef = useRef(null);\n function lockScroll() {\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = true;\n lockTimeoutRef.current = setTimeout(function () {\n lockRef.current = false;\n }, 50);\n }\n // Pass to ref since global add is in closure\n var scrollPingRef = useRef({\n top: isScrollAtTop,\n bottom: isScrollAtBottom\n });\n scrollPingRef.current.top = isScrollAtTop;\n scrollPingRef.current.bottom = isScrollAtBottom;\n return function (deltaY) {\n var smoothOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var originScroll =\n // Pass origin wheel when on the top\n deltaY < 0 && scrollPingRef.current.top ||\n // Pass origin wheel when on the bottom\n deltaY > 0 && scrollPingRef.current.bottom;\n if (smoothOffset && originScroll) {\n // No need lock anymore when it's smooth offset from touchMove interval\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = false;\n } else if (!originScroll || lockRef.current) {\n lockScroll();\n }\n return !lockRef.current && originScroll;\n };\n});","import { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport isFF from '../utils/isFirefox';\nimport useOriginScroll from './useOriginScroll';\nexport default function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, horizontalScroll,\n/***\n * Return `true` when you need to prevent default event\n */\nonWheelDelta) {\n var offsetRef = useRef(0);\n var nextFrameRef = useRef(null);\n // Firefox patch\n var wheelValueRef = useRef(null);\n var isMouseScrollRef = useRef(false);\n // Scroll status sync\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n function onWheelY(event, deltaY) {\n raf.cancel(nextFrameRef.current);\n offsetRef.current += deltaY;\n wheelValueRef.current = deltaY;\n // Do nothing when scroll at the edge, Skip check when is in scroll\n if (originScroll(deltaY)) return;\n // Proxy of scroll events\n if (!isFF) {\n event.preventDefault();\n }\n nextFrameRef.current = raf(function () {\n // Patch a multiple for Firefox to fix wheel number too small\n // ref: https://github.com/ant-design/ant-design/issues/26372#issuecomment-679460266\n var patchMultiple = isMouseScrollRef.current ? 10 : 1;\n onWheelDelta(offsetRef.current * patchMultiple);\n offsetRef.current = 0;\n });\n }\n function onWheelX(event, deltaX) {\n onWheelDelta(deltaX, true);\n if (!isFF) {\n event.preventDefault();\n }\n }\n // Check for which direction does wheel do. `sx` means `shift + wheel`\n var wheelDirectionRef = useRef(null);\n var wheelDirectionCleanRef = useRef(null);\n function onWheel(event) {\n if (!inVirtual) return;\n // Wait for 2 frame to clean direction\n raf.cancel(wheelDirectionCleanRef.current);\n wheelDirectionCleanRef.current = raf(function () {\n wheelDirectionRef.current = null;\n }, 2);\n var deltaX = event.deltaX,\n deltaY = event.deltaY,\n shiftKey = event.shiftKey;\n var mergedDeltaX = deltaX;\n var mergedDeltaY = deltaY;\n if (wheelDirectionRef.current === 'sx' || !wheelDirectionRef.current && (shiftKey || false) && deltaY && !deltaX) {\n mergedDeltaX = deltaY;\n mergedDeltaY = 0;\n wheelDirectionRef.current = 'sx';\n }\n var absX = Math.abs(mergedDeltaX);\n var absY = Math.abs(mergedDeltaY);\n if (wheelDirectionRef.current === null) {\n wheelDirectionRef.current = horizontalScroll && absX > absY ? 'x' : 'y';\n }\n if (wheelDirectionRef.current === 'y') {\n onWheelY(event, mergedDeltaY);\n } else {\n onWheelX(event, mergedDeltaX);\n }\n }\n // A patch for firefox\n function onFireFoxScroll(event) {\n if (!inVirtual) return;\n isMouseScrollRef.current = event.detail === wheelValueRef.current;\n }\n return [onWheel, onFireFoxScroll];\n}","import { useRef } from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nvar SMOOTH_PTG = 14 / 15;\nexport default function useMobileTouchMove(inVirtual, listRef, callback) {\n var touchedRef = useRef(false);\n var touchYRef = useRef(0);\n var elementRef = useRef(null);\n // Smooth scroll\n var intervalRef = useRef(null);\n /* eslint-disable prefer-const */\n var cleanUpEvents;\n var onTouchMove = function onTouchMove(e) {\n if (touchedRef.current) {\n var currentY = Math.ceil(e.touches[0].pageY);\n var offsetY = touchYRef.current - currentY;\n touchYRef.current = currentY;\n if (callback(offsetY)) {\n e.preventDefault();\n }\n // Smooth interval\n clearInterval(intervalRef.current);\n intervalRef.current = setInterval(function () {\n offsetY *= SMOOTH_PTG;\n if (!callback(offsetY, true) || Math.abs(offsetY) <= 0.1) {\n clearInterval(intervalRef.current);\n }\n }, 16);\n }\n };\n var onTouchEnd = function onTouchEnd() {\n touchedRef.current = false;\n cleanUpEvents();\n };\n var onTouchStart = function onTouchStart(e) {\n cleanUpEvents();\n if (e.touches.length === 1 && !touchedRef.current) {\n touchedRef.current = true;\n touchYRef.current = Math.ceil(e.touches[0].pageY);\n elementRef.current = e.target;\n elementRef.current.addEventListener('touchmove', onTouchMove);\n elementRef.current.addEventListener('touchend', onTouchEnd);\n }\n };\n cleanUpEvents = function cleanUpEvents() {\n if (elementRef.current) {\n elementRef.current.removeEventListener('touchmove', onTouchMove);\n elementRef.current.removeEventListener('touchend', onTouchEnd);\n }\n };\n useLayoutEffect(function () {\n if (inVirtual) {\n listRef.current.addEventListener('touchstart', onTouchStart);\n }\n return function () {\n var _listRef$current;\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.removeEventListener('touchstart', onTouchStart);\n cleanUpEvents();\n clearInterval(intervalRef.current);\n };\n }, [inVirtual]);\n}","var MIN_SIZE = 20;\nexport function getSpinSize() {\n var containerSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var scrollRange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var baseSize = containerSize / scrollRange * 100;\n if (isNaN(baseSize)) {\n baseSize = 0;\n }\n baseSize = Math.max(baseSize, MIN_SIZE);\n baseSize = Math.min(baseSize, containerSize / 2);\n return Math.floor(baseSize);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"direction\", \"scrollWidth\", \"component\", \"onScroll\", \"onVirtualScroll\", \"onVisibleChange\", \"innerProps\", \"extraRender\", \"styles\"];\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport Filler from './Filler';\nimport ScrollBar from './ScrollBar';\nimport useChildren from './hooks/useChildren';\nimport useHeights from './hooks/useHeights';\nimport useScrollTo from './hooks/useScrollTo';\nimport useDiffItem from './hooks/useDiffItem';\nimport useFrameWheel from './hooks/useFrameWheel';\nimport useMobileTouchMove from './hooks/useMobileTouchMove';\nimport useOriginScroll from './hooks/useOriginScroll';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getSpinSize } from './utils/scrollbarUtil';\nimport { useEvent } from 'rc-util';\nimport { useGetSize } from './hooks/useGetSize';\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n overflowY: 'auto',\n overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n className = props.className,\n height = props.height,\n itemHeight = props.itemHeight,\n _props$fullHeight = props.fullHeight,\n fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n style = props.style,\n data = props.data,\n children = props.children,\n itemKey = props.itemKey,\n virtual = props.virtual,\n direction = props.direction,\n scrollWidth = props.scrollWidth,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n onScroll = props.onScroll,\n onVirtualScroll = props.onVirtualScroll,\n onVisibleChange = props.onVisibleChange,\n innerProps = props.innerProps,\n extraRender = props.extraRender,\n styles = props.styles,\n restProps = _objectWithoutProperties(props, _excluded);\n // ================================= MISC =================================\n var useVirtual = !!(virtual !== false && height && itemHeight);\n var inVirtual = useVirtual && data && (itemHeight * data.length > height || !!scrollWidth);\n var isRTL = direction === 'rtl';\n var mergedClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), isRTL), className);\n var mergedData = data || EMPTY_DATA;\n var componentRef = useRef();\n var fillerInnerRef = useRef();\n // =============================== Item Key ===============================\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n offsetTop = _useState2[0],\n setOffsetTop = _useState2[1];\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n offsetLeft = _useState4[0],\n setOffsetLeft = _useState4[1];\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n scrollMoving = _useState6[0],\n setScrollMoving = _useState6[1];\n var onScrollbarStartMove = function onScrollbarStartMove() {\n setScrollMoving(true);\n };\n var onScrollbarStopMove = function onScrollbarStopMove() {\n setScrollMoving(false);\n };\n // =============================== Item Key ===============================\n var getKey = React.useCallback(function (item) {\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n return item === null || item === void 0 ? void 0 : item[itemKey];\n }, [itemKey]);\n var sharedConfig = {\n getKey: getKey\n };\n // ================================ Scroll ================================\n function syncScrollTop(newTop) {\n setOffsetTop(function (origin) {\n var value;\n if (typeof newTop === 'function') {\n value = newTop(origin);\n } else {\n value = newTop;\n }\n var alignedTop = keepInRange(value);\n componentRef.current.scrollTop = alignedTop;\n return alignedTop;\n });\n }\n // ================================ Legacy ================================\n // Put ref here since the range is generate by follow\n var rangeRef = useRef({\n start: 0,\n end: mergedData.length\n });\n var diffItemRef = useRef();\n var _useDiffItem = useDiffItem(mergedData, getKey),\n _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n diffItem = _useDiffItem2[0];\n diffItemRef.current = diffItem;\n // ================================ Height ================================\n var _useHeights = useHeights(getKey, null, null),\n _useHeights2 = _slicedToArray(_useHeights, 4),\n setInstanceRef = _useHeights2[0],\n collectHeight = _useHeights2[1],\n heights = _useHeights2[2],\n heightUpdatedMark = _useHeights2[3];\n // ========================== Visible Calculation =========================\n var _React$useMemo = React.useMemo(function () {\n if (!useVirtual) {\n return {\n scrollHeight: undefined,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n // Always use virtual scroll bar in avoid shaking\n if (!inVirtual) {\n var _fillerInnerRef$curre;\n return {\n scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n var itemTop = 0;\n var startIndex;\n var startOffset;\n var endIndex;\n var dataLen = mergedData.length;\n for (var i = 0; i < dataLen; i += 1) {\n var item = mergedData[i];\n var key = getKey(item);\n var cacheHeight = heights.get(key);\n var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n // Check item top in the range\n if (currentItemBottom >= offsetTop && startIndex === undefined) {\n startIndex = i;\n startOffset = itemTop;\n }\n // Check item bottom in the range. We will render additional one item for motion usage\n if (currentItemBottom > offsetTop + height && endIndex === undefined) {\n endIndex = i;\n }\n itemTop = currentItemBottom;\n }\n // When scrollTop at the end but data cut to small count will reach this\n if (startIndex === undefined) {\n startIndex = 0;\n startOffset = 0;\n endIndex = Math.ceil(height / itemHeight);\n }\n if (endIndex === undefined) {\n endIndex = mergedData.length - 1;\n }\n // Give cache to improve scroll experience\n endIndex = Math.min(endIndex + 1, mergedData.length - 1);\n return {\n scrollHeight: itemTop,\n start: startIndex,\n end: endIndex,\n offset: startOffset\n };\n }, [inVirtual, useVirtual, offsetTop, mergedData, heightUpdatedMark, height]),\n scrollHeight = _React$useMemo.scrollHeight,\n start = _React$useMemo.start,\n end = _React$useMemo.end,\n fillerOffset = _React$useMemo.offset;\n rangeRef.current.start = start;\n rangeRef.current.end = end;\n // ================================= Size =================================\n var _React$useState = React.useState({\n width: 0,\n height: height\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n size = _React$useState2[0],\n setSize = _React$useState2[1];\n var onHolderResize = function onHolderResize(sizeInfo) {\n setSize({\n width: sizeInfo.width || sizeInfo.offsetWidth,\n height: sizeInfo.height || sizeInfo.offsetHeight\n });\n };\n // Hack on scrollbar to enable flash call\n var verticalScrollBarRef = useRef();\n var horizontalScrollBarRef = useRef();\n var horizontalScrollBarSpinSize = React.useMemo(function () {\n return getSpinSize(size.width, scrollWidth);\n }, [size.width, scrollWidth]);\n var verticalScrollBarSpinSize = React.useMemo(function () {\n return getSpinSize(size.height, scrollHeight);\n }, [size.height, scrollHeight]);\n // =============================== In Range ===============================\n var maxScrollHeight = scrollHeight - height;\n var maxScrollHeightRef = useRef(maxScrollHeight);\n maxScrollHeightRef.current = maxScrollHeight;\n function keepInRange(newScrollTop) {\n var newTop = newScrollTop;\n if (!Number.isNaN(maxScrollHeightRef.current)) {\n newTop = Math.min(newTop, maxScrollHeightRef.current);\n }\n newTop = Math.max(newTop, 0);\n return newTop;\n }\n var isScrollAtTop = offsetTop <= 0;\n var isScrollAtBottom = offsetTop >= maxScrollHeight;\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n // ================================ Scroll ================================\n var getVirtualScrollInfo = function getVirtualScrollInfo() {\n return {\n x: isRTL ? -offsetLeft : offsetLeft,\n y: offsetTop\n };\n };\n var lastVirtualScrollInfoRef = useRef(getVirtualScrollInfo());\n var triggerScroll = useEvent(function () {\n if (onVirtualScroll) {\n var nextInfo = getVirtualScrollInfo();\n // Trigger when offset changed\n if (lastVirtualScrollInfoRef.current.x !== nextInfo.x || lastVirtualScrollInfoRef.current.y !== nextInfo.y) {\n onVirtualScroll(nextInfo);\n lastVirtualScrollInfoRef.current = nextInfo;\n }\n }\n });\n function onScrollBar(newScrollOffset, horizontal) {\n var newOffset = newScrollOffset;\n if (horizontal) {\n flushSync(function () {\n setOffsetLeft(newOffset);\n });\n triggerScroll();\n } else {\n syncScrollTop(newOffset);\n }\n }\n // When data size reduce. It may trigger native scroll event back to fit scroll position\n function onFallbackScroll(e) {\n var newScrollTop = e.currentTarget.scrollTop;\n if (newScrollTop !== offsetTop) {\n syncScrollTop(newScrollTop);\n }\n // Trigger origin onScroll\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n triggerScroll();\n }\n var keepInHorizontalRange = function keepInHorizontalRange(nextOffsetLeft) {\n var tmpOffsetLeft = nextOffsetLeft;\n var max = scrollWidth - size.width;\n tmpOffsetLeft = Math.max(tmpOffsetLeft, 0);\n tmpOffsetLeft = Math.min(tmpOffsetLeft, max);\n return tmpOffsetLeft;\n };\n var onWheelDelta = useEvent(function (offsetXY, fromHorizontal) {\n if (fromHorizontal) {\n // Horizontal scroll no need sync virtual position\n flushSync(function () {\n setOffsetLeft(function (left) {\n var nextOffsetLeft = left + (isRTL ? -offsetXY : offsetXY);\n return keepInHorizontalRange(nextOffsetLeft);\n });\n });\n triggerScroll();\n } else {\n syncScrollTop(function (top) {\n var newTop = top + offsetXY;\n return newTop;\n });\n }\n });\n // Since this added in global,should use ref to keep update\n var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, !!scrollWidth, onWheelDelta),\n _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n onRawWheel = _useFrameWheel2[0],\n onFireFoxScroll = _useFrameWheel2[1];\n // Mobile touch move\n useMobileTouchMove(useVirtual, componentRef, function (deltaY, smoothOffset) {\n if (originScroll(deltaY, smoothOffset)) {\n return false;\n }\n onRawWheel({\n preventDefault: function preventDefault() {},\n deltaY: deltaY\n });\n return true;\n });\n useLayoutEffect(function () {\n // Firefox only\n function onMozMousePixelScroll(e) {\n if (useVirtual) {\n e.preventDefault();\n }\n }\n var componentEle = componentRef.current;\n componentEle.addEventListener('wheel', onRawWheel);\n componentEle.addEventListener('DOMMouseScroll', onFireFoxScroll);\n componentEle.addEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n return function () {\n componentEle.removeEventListener('wheel', onRawWheel);\n componentEle.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n componentEle.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n };\n }, [useVirtual]);\n // Sync scroll left\n useLayoutEffect(function () {\n if (scrollWidth) {\n setOffsetLeft(function (left) {\n return keepInHorizontalRange(left);\n });\n }\n }, [size.width, scrollWidth]);\n // ================================= Ref ==================================\n var delayHideScrollBar = function delayHideScrollBar() {\n var _verticalScrollBarRef, _horizontalScrollBarR;\n (_verticalScrollBarRef = verticalScrollBarRef.current) === null || _verticalScrollBarRef === void 0 ? void 0 : _verticalScrollBarRef.delayHidden();\n (_horizontalScrollBarR = horizontalScrollBarRef.current) === null || _horizontalScrollBarR === void 0 ? void 0 : _horizontalScrollBarR.delayHidden();\n };\n var _scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, function () {\n return collectHeight(true);\n }, syncScrollTop, delayHideScrollBar);\n React.useImperativeHandle(ref, function () {\n return {\n getScrollInfo: getVirtualScrollInfo,\n scrollTo: function scrollTo(config) {\n function isPosScroll(arg) {\n return arg && _typeof(arg) === 'object' && ('left' in arg || 'top' in arg);\n }\n if (isPosScroll(config)) {\n // Scroll X\n if (config.left !== undefined) {\n setOffsetLeft(keepInHorizontalRange(config.left));\n }\n // Scroll Y\n _scrollTo(config.top);\n } else {\n _scrollTo(config);\n }\n }\n };\n });\n // ================================ Effect ================================\n /** We need told outside that some list not rendered */\n useLayoutEffect(function () {\n if (onVisibleChange) {\n var renderList = mergedData.slice(start, end + 1);\n onVisibleChange(renderList, mergedData);\n }\n }, [start, end, mergedData]);\n // ================================ Extra =================================\n var getSize = useGetSize(mergedData, getKey, heights, itemHeight);\n var extraContent = extraRender === null || extraRender === void 0 ? void 0 : extraRender({\n start: start,\n end: end,\n virtual: inVirtual,\n offsetX: offsetLeft,\n offsetY: fillerOffset,\n rtl: isRTL,\n getSize: getSize\n });\n // ================================ Render ================================\n var listChildren = useChildren(mergedData, start, end, scrollWidth, setInstanceRef, children, sharedConfig);\n var componentStyle = null;\n if (height) {\n componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n if (useVirtual) {\n componentStyle.overflowY = 'hidden';\n if (scrollWidth) {\n componentStyle.overflowX = 'hidden';\n }\n if (scrollMoving) {\n componentStyle.pointerEvents = 'none';\n }\n }\n }\n var containerProps = {};\n if (isRTL) {\n containerProps.dir = 'rtl';\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n style: _objectSpread(_objectSpread({}, style), {}, {\n position: 'relative'\n }),\n className: mergedClassName\n }, containerProps, restProps), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onHolderResize\n }, /*#__PURE__*/React.createElement(Component, {\n className: \"\".concat(prefixCls, \"-holder\"),\n style: componentStyle,\n ref: componentRef,\n onScroll: onFallbackScroll,\n onMouseEnter: delayHideScrollBar\n }, /*#__PURE__*/React.createElement(Filler, {\n prefixCls: prefixCls,\n height: scrollHeight,\n offsetX: offsetLeft,\n offsetY: fillerOffset,\n scrollWidth: scrollWidth,\n onInnerResize: collectHeight,\n ref: fillerInnerRef,\n innerProps: innerProps,\n rtl: isRTL,\n extra: extraContent\n }, listChildren))), inVirtual && scrollHeight > height && /*#__PURE__*/React.createElement(ScrollBar, {\n ref: verticalScrollBarRef,\n prefixCls: prefixCls,\n scrollOffset: offsetTop,\n scrollRange: scrollHeight,\n rtl: isRTL,\n onScroll: onScrollBar,\n onStartMove: onScrollbarStartMove,\n onStopMove: onScrollbarStopMove,\n spinSize: verticalScrollBarSpinSize,\n containerSize: size.height,\n style: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBar,\n thumbStyle: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBarThumb\n }), inVirtual && scrollWidth && /*#__PURE__*/React.createElement(ScrollBar, {\n ref: horizontalScrollBarRef,\n prefixCls: prefixCls,\n scrollOffset: offsetLeft,\n scrollRange: scrollWidth,\n rtl: isRTL,\n onScroll: onScrollBar,\n onStartMove: onScrollbarStartMove,\n onStopMove: onScrollbarStopMove,\n spinSize: horizontalScrollBarSpinSize,\n containerSize: size.width,\n horizontal: true,\n style: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBar,\n thumbStyle: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBarThumb\n }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport raf from \"rc-util/es/raf\";\nimport CacheMap from '../utils/CacheMap';\nexport default function useHeights(getKey, onItemAdd, onItemRemove) {\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n updatedMark = _React$useState2[0],\n setUpdatedMark = _React$useState2[1];\n var instanceRef = useRef(new Map());\n var heightsRef = useRef(new CacheMap());\n var collectRafRef = useRef();\n function cancelRaf() {\n raf.cancel(collectRafRef.current);\n }\n function collectHeight() {\n var sync = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n cancelRaf();\n var doCollect = function doCollect() {\n instanceRef.current.forEach(function (element, key) {\n if (element && element.offsetParent) {\n var htmlElement = findDOMNode(element);\n var offsetHeight = htmlElement.offsetHeight;\n if (heightsRef.current.get(key) !== offsetHeight) {\n heightsRef.current.set(key, htmlElement.offsetHeight);\n }\n }\n });\n // Always trigger update mark to tell parent that should re-calculate heights when resized\n setUpdatedMark(function (c) {\n return c + 1;\n });\n };\n if (sync) {\n doCollect();\n } else {\n collectRafRef.current = raf(doCollect);\n }\n }\n function setInstanceRef(item, instance) {\n var key = getKey(item);\n var origin = instanceRef.current.get(key);\n if (instance) {\n instanceRef.current.set(key, instance);\n collectHeight();\n } else {\n instanceRef.current.delete(key);\n }\n // Instance changed\n if (!origin !== !instance) {\n if (instance) {\n onItemAdd === null || onItemAdd === void 0 ? void 0 : onItemAdd(item);\n } else {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(item);\n }\n }\n }\n useEffect(function () {\n return cancelRaf;\n }, []);\n return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Size info need loop query for the `heights` which will has the perf issue.\n * Let cache result for each render phase.\n */\nexport function useGetSize(mergedData, getKey, heights, itemHeight) {\n var _React$useMemo = React.useMemo(function () {\n return [new Map(), []];\n }, [mergedData, heights.id, itemHeight]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n key2Index = _React$useMemo2[0],\n bottomList = _React$useMemo2[1];\n var getSize = function getSize(startKey) {\n var endKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startKey;\n // Get from cache first\n var startIndex = key2Index.get(startKey);\n var endIndex = key2Index.get(endKey);\n // Loop to fill the cache\n if (startIndex === undefined || endIndex === undefined) {\n var dataLen = mergedData.length;\n for (var i = bottomList.length; i < dataLen; i += 1) {\n var _heights$get;\n var item = mergedData[i];\n var key = getKey(item);\n key2Index.set(key, i);\n var cacheHeight = (_heights$get = heights.get(key)) !== null && _heights$get !== void 0 ? _heights$get : itemHeight;\n bottomList[i] = (bottomList[i - 1] || 0) + cacheHeight;\n if (key === startKey) {\n startIndex = i;\n }\n if (key === endKey) {\n endIndex = i;\n }\n if (startIndex !== undefined && endIndex !== undefined) {\n break;\n }\n }\n }\n return {\n top: bottomList[startIndex - 1] || 0,\n bottom: bottomList[endIndex]\n };\n };\n return getSize;\n}","import * as React from 'react';\nimport { Item } from '../Item';\nexport default function useChildren(list, startIndex, endIndex, scrollWidth, setNodeRef, renderFunc, _ref) {\n var getKey = _ref.getKey;\n return list.slice(startIndex, endIndex + 1).map(function (item, index) {\n var eleIndex = startIndex + index;\n var node = renderFunc(item, eleIndex, {\n style: {\n width: scrollWidth\n }\n });\n var key = getKey(item);\n return /*#__PURE__*/React.createElement(Item, {\n key: key,\n setRef: function setRef(ele) {\n return setNodeRef(item, ele);\n }\n }, node);\n });\n}","import List from './List';\nexport default List;","/**\n * Copyright (c) 2015-present, Facebook, Inc.\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';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n self.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// Make sure we're in a Browser-like environment before importing polyfills\n// This prevents `fetch()` from being imported in a Node test environment\nif (typeof window !== 'undefined') {\n // fetch() polyfill for making API calls.\n require('whatwg-fetch');\n}\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// Support for...of (a commonly used syntax feature that requires Symbols)\nrequire('core-js/features/symbol');\n// Support iterable spread (...Set, ...Map)\nrequire('core-js/features/array/from');\n","/**\n * Copyright (c) 2015-present, Facebook, Inc.\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';\n\n// Polyfill stable language features.\n// It's recommended to use @babel/preset-env and browserslist\n// to only include the polyfills necessary for the target browsers.\nrequire('core-js/stable');\nrequire('regenerator-runtime/runtime');\n","/** @license React v16.14.0\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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(u(227));\nfunction ba(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var da=!1,ea=null,fa=!1,ha=null,ia={onError:function(a){da=!0;ea=a}};function ja(a,b,c,d,e,f,g,h,k){da=!1;ea=null;ba.apply(ia,arguments)}function ka(a,b,c,d,e,f,g,h,k){ja.apply(this,arguments);if(da){if(da){var l=ea;da=!1;ea=null}else throw Error(u(198));fa||(fa=!0,ha=l)}}var la=null,ma=null,na=null;\nfunction oa(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=na(c);ka(d,b,void 0,a);a.currentTarget=null}var pa=null,qa={};\nfunction ra(){if(pa)for(var a in qa){var b=qa[a],c=pa.indexOf(a);if(!(-1<c))throw Error(u(96,a));if(!sa[c]){if(!b.extractEvents)throw Error(u(97,a));sa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;if(ta.hasOwnProperty(h))throw Error(u(99,h));ta[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&ua(k[e],g,h);e=!0}else f.registrationName?(ua(f.registrationName,g,h),e=!0):e=!1;if(!e)throw Error(u(98,d,a));}}}}\nfunction ua(a,b,c){if(va[a])throw Error(u(100,a));va[a]=b;wa[a]=b.eventTypes[c].dependencies}var sa=[],ta={},va={},wa={};function xa(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];if(!qa.hasOwnProperty(c)||qa[c]!==d){if(qa[c])throw Error(u(102,c));qa[c]=d;b=!0}}b&&ra()}var ya=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),za=null,Aa=null,Ba=null;\nfunction Ca(a){if(a=ma(a)){if(\"function\"!==typeof za)throw Error(u(280));var b=a.stateNode;b&&(b=la(b),za(a.stateNode,a.type,b))}}function Da(a){Aa?Ba?Ba.push(a):Ba=[a]:Aa=a}function Ea(){if(Aa){var a=Aa,b=Ba;Ba=Aa=null;Ca(a);if(b)for(a=0;a<b.length;a++)Ca(b[a])}}function Fa(a,b){return a(b)}function Ga(a,b,c,d,e){return a(b,c,d,e)}function Ha(){}var Ia=Fa,Ja=!1,Ka=!1;function La(){if(null!==Aa||null!==Ba)Ha(),Ea()}\nfunction Ma(a,b,c){if(Ka)return a(b,c);Ka=!0;try{return Ia(a,b,c)}finally{Ka=!1,La()}}var Na=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Oa=Object.prototype.hasOwnProperty,Pa={},Qa={};\nfunction Ra(a){if(Oa.call(Qa,a))return!0;if(Oa.call(Pa,a))return!1;if(Na.test(a))return Qa[a]=!0;Pa[a]=!0;return!1}function Sa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction Ta(a,b,c,d){if(null===b||\"undefined\"===typeof b||Sa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f){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}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(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(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(Ta(b,c,e,d)&&(c=null),d||null===e?Ra(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar Ya=/^(.*)[\\\\\\/]/,E=\"function\"===typeof Symbol&&Symbol.for,Za=E?Symbol.for(\"react.element\"):60103,$a=E?Symbol.for(\"react.portal\"):60106,ab=E?Symbol.for(\"react.fragment\"):60107,bb=E?Symbol.for(\"react.strict_mode\"):60108,cb=E?Symbol.for(\"react.profiler\"):60114,db=E?Symbol.for(\"react.provider\"):60109,eb=E?Symbol.for(\"react.context\"):60110,fb=E?Symbol.for(\"react.concurrent_mode\"):60111,gb=E?Symbol.for(\"react.forward_ref\"):60112,hb=E?Symbol.for(\"react.suspense\"):60113,ib=E?Symbol.for(\"react.suspense_list\"):\n60120,jb=E?Symbol.for(\"react.memo\"):60115,kb=E?Symbol.for(\"react.lazy\"):60116,lb=E?Symbol.for(\"react.block\"):60121,mb=\"function\"===typeof Symbol&&Symbol.iterator;function nb(a){if(null===a||\"object\"!==typeof a)return null;a=mb&&a[mb]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function ob(a){if(-1===a._status){a._status=0;var b=a._ctor;b=b();a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}}\nfunction pb(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 ab:return\"Fragment\";case $a:return\"Portal\";case cb:return\"Profiler\";case bb:return\"StrictMode\";case hb:return\"Suspense\";case ib:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case eb:return\"Context.Consumer\";case db:return\"Context.Provider\";case gb:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\n\"ForwardRef\");case jb:return pb(a.type);case lb:return pb(a.render);case kb:if(a=1===a._status?a._result:null)return pb(a)}return null}function qb(a){var b=\"\";do{a:switch(a.tag){case 3:case 4:case 6:case 7:case 10:case 9:var c=\"\";break a;default:var d=a._debugOwner,e=a._debugSource,f=pb(a.type);c=null;d&&(c=pb(d.type));d=f;f=\"\";e?f=\" (at \"+e.fileName.replace(Ya,\"\")+\":\"+e.lineNumber+\")\":c&&(f=\" (created by \"+c+\")\");c=\"\\n in \"+(d||\"Unknown\")+f}b+=c;a=a.return}while(a);return b}\nfunction rb(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function sb(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction tb(a){var b=sb(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 xb(a){a._valueTracker||(a._valueTracker=tb(a))}function yb(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=sb(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function zb(a,b){var c=b.checked;return n({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}\nfunction Ab(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=rb(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 Bb(a,b){b=b.checked;null!=b&&Xa(a,\"checked\",b,!1)}\nfunction Cb(a,b){Bb(a,b);var c=rb(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\")?Db(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&Db(a,b.type,rb(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Eb(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 Db(a,b,c){if(\"number\"!==b||a.ownerDocument.activeElement!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function Fb(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function Gb(a,b){a=n({children:void 0},b);if(b=Fb(b.children))a.children=b;return a}\nfunction Hb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+rb(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Ib(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(u(91));return n({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Jb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(u(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(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 Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(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 Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=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!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;d<b.length&&!a.isPropagationStopped();d++)oa(a,b[d],c[d]);else b&&oa(a,b,c);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function mc(a){null!==a&&(kc=ic(kc,a));a=kc;kc=null;if(a){jc(a,lc);if(kc)throw Error(u(95));if(fa)throw a=ha,fa=!1,ha=null,a;}}\nfunction nc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function oc(a){if(!ya)return!1;a=\"on\"+a;var b=a in document;b||(b=document.createElement(\"div\"),b.setAttribute(a,\"return;\"),b=\"function\"===typeof b[a]);return b}var pc=[];function qc(a){a.topLevelType=null;a.nativeEvent=null;a.targetInst=null;a.ancestors.length=0;10>pc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c<a.ancestors.length;c++){b=a.ancestors[c];var e=nc(a.nativeEvent);d=a.topLevelType;var f=a.nativeEvent,g=a.eventSystemFlags;0===c&&(g|=64);for(var h=null,k=0;k<sa.length;k++){var l=sa[k];l&&(l=l.extractEvents(d,b,f,e,g))&&(h=\nic(h,l))}mc(h)}}function uc(a,b,c){if(!c.has(a)){switch(a){case \"scroll\":vc(b,\"scroll\",!0);break;case \"focus\":case \"blur\":vc(b,\"focus\",!0);vc(b,\"blur\",!0);c.set(\"blur\",null);c.set(\"focus\",null);break;case \"cancel\":case \"close\":oc(a)&&vc(b,a,!0);break;case \"invalid\":case \"submit\":case \"reset\":break;default:-1===ac.indexOf(a)&&F(a,b)}c.set(a,null)}}\nvar wc,xc,yc,zc=!1,Ac=[],Bc=null,Cc=null,Dc=null,Ec=new Map,Fc=new Map,Gc=[],Hc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),Ic=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction Jc(a,b){var c=cc(b);Hc.forEach(function(a){uc(a,b,c)});Ic.forEach(function(a){uc(a,b,c)})}function Kc(a,b,c,d,e){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:e,container:d}}\nfunction Lc(a,b){switch(a){case \"focus\":case \"blur\":Bc=null;break;case \"dragenter\":case \"dragleave\":Cc=null;break;case \"mouseover\":case \"mouseout\":Dc=null;break;case \"pointerover\":case \"pointerout\":Ec.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Fc.delete(b.pointerId)}}function Mc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=Kc(b,c,d,e,f),null!==b&&(b=Nc(b),null!==b&&xc(b)),a;a.eventSystemFlags|=d;return a}\nfunction Oc(a,b,c,d,e){switch(b){case \"focus\":return Bc=Mc(Bc,a,b,c,d,e),!0;case \"dragenter\":return Cc=Mc(Cc,a,b,c,d,e),!0;case \"mouseover\":return Dc=Mc(Dc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Ec.set(f,Mc(Ec.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Fc.set(f,Mc(Fc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Pc(a){var b=tc(a.target);if(null!==b){var c=dc(b);if(null!==c)if(b=c.tag,13===b){if(b=ec(c),null!==b){a.blockedOn=b;r.unstable_runWithPriority(a.priority,function(){yc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Qc(a){if(null!==a.blockedOn)return!1;var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);if(null!==b){var c=Nc(b);null!==c&&xc(c);a.blockedOn=b;return!1}return!0}\nfunction Sc(a,b,c){Qc(a)&&c.delete(b)}function Tc(){for(zc=!1;0<Ac.length;){var a=Ac[0];if(null!==a.blockedOn){a=Nc(a.blockedOn);null!==a&&wc(a);break}var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);null!==b?a.blockedOn=b:Ac.shift()}null!==Bc&&Qc(Bc)&&(Bc=null);null!==Cc&&Qc(Cc)&&(Cc=null);null!==Dc&&Qc(Dc)&&(Dc=null);Ec.forEach(Sc);Fc.forEach(Sc)}function Uc(a,b){a.blockedOn===b&&(a.blockedOn=null,zc||(zc=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Tc)))}\nfunction Vc(a){function b(b){return Uc(b,a)}if(0<Ac.length){Uc(Ac[0],a);for(var c=1;c<Ac.length;c++){var d=Ac[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Bc&&Uc(Bc,a);null!==Cc&&Uc(Cc,a);null!==Dc&&Uc(Dc,a);Ec.forEach(b);Fc.forEach(b);for(c=0;c<Gc.length;c++)d=Gc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Gc.length&&(c=Gc[0],null===c.blockedOn);)Pc(c),null===c.blockedOn&&Gc.shift()}\nvar Wc={},Yc=new Map,Zc=new Map,$c=[\"abort\",\"abort\",Xb,\"animationEnd\",Yb,\"animationIteration\",Zb,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\n\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",$b,\"transitionEnd\",\"waiting\",\"waiting\"];function ad(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1],f=\"on\"+(e[0].toUpperCase()+e.slice(1));f={phasedRegistrationNames:{bubbled:f,captured:f+\"Capture\"},dependencies:[d],eventPriority:b};Zc.set(d,b);Yc.set(d,f);Wc[e]=f}}\nad(\"blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),0);\nad(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);ad($c,2);for(var bd=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),cd=0;cd<bd.length;cd++)Zc.set(bd[cd],0);\nvar dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function F(a,b){vc(b,a,!1)}function vc(a,b,c){var d=Zc.get(b);switch(void 0===d?2:d){case 0:d=gd.bind(null,b,1,a);break;case 1:d=hd.bind(null,b,1,a);break;default:d=id.bind(null,b,1,a)}c?a.addEventListener(b,d,!0):a.addEventListener(b,d,!1)}function gd(a,b,c,d){Ja||Ha();var e=id,f=Ja;Ja=!0;try{Ga(e,a,b,c,d)}finally{(Ja=f)||La()}}function hd(a,b,c,d){ed(dd,id.bind(null,a,b,c,d))}\nfunction id(a,b,c,d){if(fd)if(0<Ac.length&&-1<Hc.indexOf(a))a=Kc(null,a,b,c,d),Ac.push(a);else{var e=Rc(a,b,c,d);if(null===e)Lc(a,d);else if(-1<Hc.indexOf(a))a=Kc(e,a,b,c,d),Ac.push(a);else if(!Oc(e,a,b,c,d)){Lc(a,d);a=rc(a,d,null,b);try{Ma(sc,a)}finally{qc(a)}}}}\nfunction Rc(a,b,c,d){c=nc(d);c=tc(c);if(null!==c){var e=dc(c);if(null===e)c=null;else{var f=e.tag;if(13===f){c=ec(e);if(null!==c)return c;c=null}else if(3===f){if(e.stateNode.hydrate)return 3===e.tag?e.stateNode.containerInfo:null;c=null}else e!==c&&(c=null)}}a=rc(a,d,c,b);try{Ma(sc,a)}finally{qc(a)}return null}\nvar jd={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},kd=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(jd).forEach(function(a){kd.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);jd[b]=jd[a]})});function ld(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||jd.hasOwnProperty(a)&&jd[a]?(\"\"+b).trim():b+\"px\"}\nfunction md(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ld(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var nd=n({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 od(a,b){if(b){if(nd[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(u(137,a,\"\"));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(u(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(u(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(u(62,\"\"));}}\nfunction pd(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}}var qd=Mb.html;function rd(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=cc(a);b=wa[b];for(var d=0;d<b.length;d++)uc(b[d],a,c)}function sd(){}\nfunction td(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}}function ud(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function vd(a,b){var c=ud(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=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=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();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=td(a.document)}return b}\nfunction yd(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)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0<b--;)Td(c[b],\"captured\",a);for(b=0;b<c.length;b++)Td(c[b],\"bubbled\",a)}}\nfunction Vd(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Sd(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a))}function Wd(a){a&&a.dispatchConfig.registrationName&&Vd(a._targetInst,null,a)}function Xd(a){jc(a,Ud)}var Yd=null,Zd=null,$d=null;\nfunction ae(){if($d)return $d;var a,b=Zd,c=b.length,d,e=\"value\"in Yd?Yd.value:Yd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return $d=e.slice(a,1<d?1-d:void 0)}function be(){return!0}function ce(){return!1}\nfunction G(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?be:ce;this.isPropagationStopped=ce;return this}\nn(G.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=be)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=be)},persist:function(){this.isPersistent=be},isPersistent:ce,destructor:function(){var a=this.constructor.Interface,\nb;for(b in a)this[b]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null;this.isPropagationStopped=this.isDefaultPrevented=ce;this._dispatchInstances=this._dispatchListeners=null}});G.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nG.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;n(e,c.prototype);c.prototype=e;c.prototype.constructor=c;c.Interface=n({},d.Interface,a);c.extend=d.extend;de(c);return c};de(G);function ee(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction fe(a){if(!(a instanceof this))throw Error(u(279));a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8<ke&&11>=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!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.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return me&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar ve={eventTypes:oe,extractEvents:function(a,b,c,d){var e;if(je)b:{switch(a){case \"compositionstart\":var f=oe.compositionStart;break b;case \"compositionend\":f=oe.compositionEnd;break b;case \"compositionupdate\":f=oe.compositionUpdate;break b}f=void 0}else se?qe(a,c)&&(f=oe.compositionEnd):\"keydown\"===a&&229===c.keyCode&&(f=oe.compositionStart);f?(me&&\"ko\"!==c.locale&&(se||f!==oe.compositionStart?f===oe.compositionEnd&&se&&(e=ae()):(Yd=d,Zd=\"value\"in Yd?Yd.value:Yd.textContent,se=!0)),f=ge.getPooled(f,\nb,c,d),e?f.data=e:(e=re(c),null!==e&&(f.data=e)),Xd(f),e=f):e=null;(a=le?te(a,c):ue(a,c))?(b=he.getPooled(oe.beforeInput,b,c,d),b.data=a,Xd(b)):b=null;return null===e?b:null===b?e:[e,b]}},we={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function xe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!we[a.type]:\"textarea\"===b?!0:!1}\nvar ye={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"blur change click focus input keydown keyup selectionchange\".split(\" \")}};function ze(a,b,c){a=G.getPooled(ye.change,a,b,c);a.type=\"change\";Da(c);Xd(a);return a}var Ae=null,Be=null;function Ce(a){mc(a)}function De(a){var b=Pd(a);if(yb(b))return a}function Ee(a,b){if(\"change\"===a)return b}var Fe=!1;ya&&(Fe=oc(\"input\")&&(!document.documentMode||9<document.documentMode));\nfunction Ge(){Ae&&(Ae.detachEvent(\"onpropertychange\",He),Be=Ae=null)}function He(a){if(\"value\"===a.propertyName&&De(Be))if(a=ze(Be,a,nc(a)),Ja)mc(a);else{Ja=!0;try{Fa(Ce,a)}finally{Ja=!1,La()}}}function Ie(a,b,c){\"focus\"===a?(Ge(),Ae=b,Be=c,Ae.attachEvent(\"onpropertychange\",He)):\"blur\"===a&&Ge()}function Je(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return De(Be)}function Ke(a,b){if(\"click\"===a)return De(b)}function Le(a,b){if(\"input\"===a||\"change\"===a)return De(b)}\nvar Me={eventTypes:ye,_isInputEventSupported:Fe,extractEvents:function(a,b,c,d){var e=b?Pd(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Ee;else if(xe(e))if(Fe)g=Le;else{g=Je;var h=Ie}else(f=e.nodeName)&&\"input\"===f.toLowerCase()&&(\"checkbox\"===e.type||\"radio\"===e.type)&&(g=Ke);if(g&&(g=g(a,b)))return ze(g,c,d);h&&h(a,e,b);\"blur\"===a&&(a=e._wrapperState)&&a.controlled&&\"number\"===e.type&&Db(e,\"number\",e.value)}},Ne=G.extend({view:null,detail:null}),\nOe={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pe(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Oe[a])?!!b[a]:!1}function Qe(){return Pe}\nvar Re=0,Se=0,Te=!1,Ue=!1,Ve=Ne.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Qe,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=Re;Re=a.screenX;return Te?\"mousemove\"===a.type?a.screenX-b:0:(Te=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;\nvar b=Se;Se=a.screenY;return Ue?\"mousemove\"===a.type?a.screenY-b:0:(Ue=!0,0)}}),We=Ve.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Xe={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"mouseout\",\"mouseover\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"mouseout\",\"mouseover\"]},pointerEnter:{registrationName:\"onPointerEnter\",dependencies:[\"pointerout\",\"pointerover\"]},pointerLeave:{registrationName:\"onPointerLeave\",\ndependencies:[\"pointerout\",\"pointerover\"]}},Ye={eventTypes:Xe,extractEvents:function(a,b,c,d,e){var f=\"mouseover\"===a||\"pointerover\"===a,g=\"mouseout\"===a||\"pointerout\"===a;if(f&&0===(e&32)&&(c.relatedTarget||c.fromElement)||!g&&!f)return null;f=d.window===d?d:(f=d.ownerDocument)?f.defaultView||f.parentWindow:window;if(g){if(g=b,b=(b=c.relatedTarget||c.toElement)?tc(b):null,null!==b){var h=dc(b);if(b!==h||5!==b.tag&&6!==b.tag)b=null}}else g=null;if(g===b)return null;if(\"mouseout\"===a||\"mouseover\"===\na){var k=Ve;var l=Xe.mouseLeave;var m=Xe.mouseEnter;var p=\"mouse\"}else if(\"pointerout\"===a||\"pointerover\"===a)k=We,l=Xe.pointerLeave,m=Xe.pointerEnter,p=\"pointer\";a=null==g?f:Pd(g);f=null==b?f:Pd(b);l=k.getPooled(l,g,c,d);l.type=p+\"leave\";l.target=a;l.relatedTarget=f;c=k.getPooled(m,b,c,d);c.type=p+\"enter\";c.target=f;c.relatedTarget=a;d=g;p=b;if(d&&p)a:{k=d;m=p;g=0;for(a=k;a;a=Rd(a))g++;a=0;for(b=m;b;b=Rd(b))a++;for(;0<g-a;)k=Rd(k),g--;for(;0<a-g;)m=Rd(m),a--;for(;g--;){if(k===m||k===m.alternate)break a;\nk=Rd(k);m=Rd(m)}k=null}else k=null;m=k;for(k=[];d&&d!==m;){g=d.alternate;if(null!==g&&g===m)break;k.push(d);d=Rd(d)}for(d=[];p&&p!==m;){g=p.alternate;if(null!==g&&g===m)break;d.push(p);p=Rd(p)}for(p=0;p<k.length;p++)Vd(k[p],\"bubbled\",l);for(p=d.length;0<p--;)Vd(d[p],\"captured\",c);return 0===(e&64)?[l]:[l,c]}};function Ze(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var $e=\"function\"===typeof Object.is?Object.is:Ze,af=Object.prototype.hasOwnProperty;\nfunction bf(a,b){if($e(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!af.call(b,c[d])||!$e(a[c[d]],b[c[d]]))return!1;return!0}\nvar cf=ya&&\"documentMode\"in document&&11>=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;g<f.length;g++)if(!e.has(f[g])){e=!1;break a}e=!0}f=!e}if(f)return null;e=b?Pd(b):window;switch(a){case \"focus\":if(xe(e)||\"true\"===e.contentEditable)ef=e,ff=b,gf=null;break;case \"blur\":gf=ff=ef=null;break;case \"mousedown\":hf=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":return hf=!1,jf(c,d);case \"selectionchange\":if(cf)break;\ncase \"keydown\":case \"keyup\":return jf(c,d)}return null}},lf=G.extend({animationName:null,elapsedTime:null,pseudoElement:null}),mf=G.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),nf=Ne.extend({relatedTarget:null});function of(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar pf={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},qf={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},rf=Ne.extend({key:function(a){if(a.key){var b=pf[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=of(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?qf[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Qe,charCode:function(a){return\"keypress\"===\na.type?of(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===a.type?of(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),sf=Ve.extend({dataTransfer:null}),tf=Ne.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Qe}),uf=G.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),vf=Ve.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in\na?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),wf={eventTypes:Wc,extractEvents:function(a,b,c,d){var e=Yc.get(a);if(!e)return null;switch(a){case \"keypress\":if(0===of(c))return null;case \"keydown\":case \"keyup\":a=rf;break;case \"blur\":case \"focus\":a=nf;break;case \"click\":if(2===c.button)return null;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":a=\nVe;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":a=sf;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":a=tf;break;case Xb:case Yb:case Zb:a=lf;break;case $b:a=uf;break;case \"scroll\":a=Ne;break;case \"wheel\":a=vf;break;case \"copy\":case \"cut\":case \"paste\":a=mf;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":a=\nWe;break;default:a=G}b=a.getPooled(e,b,c,d);Xd(b);return b}};if(pa)throw Error(u(101));pa=Array.prototype.slice.call(\"ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));ra();var xf=Nc;la=Qd;ma=xf;na=Pd;xa({SimpleEventPlugin:wf,EnterLeaveEventPlugin:Ye,ChangeEventPlugin:Me,SelectEventPlugin:kf,BeforeInputEventPlugin:ve});var yf=[],zf=-1;function H(a){0>zf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;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 L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(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(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});Wf=null}catch(c){throw null!==Wf&&(Wf=Wf.slice(a+1)),Jf(Of,gg),c;}finally{Yf=!1}}}function hg(a,b,c){c/=10;return 1073741821-(((1073741821-a+b/10)/c|0)+1)*c}function ig(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}var jg={current:null},kg=null,lg=null,mg=null;function ng(){mg=lg=kg=null}\nfunction og(a){var b=jg.current;H(jg);a.type._context._currentValue=b}function pg(a,b){for(;null!==a;){var c=a.alternate;if(a.childExpirationTime<b)a.childExpirationTime=b,null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);else if(null!==c&&c.childExpirationTime<b)c.childExpirationTime=b;else break;a=a.return}}function qg(a,b){kg=a;mg=lg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(a.expirationTime>=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(g<d){var ca={expirationTime:z.expirationTime,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null};null===x?(p=x=\nca,m=k):x=x.next=ca;g>l&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=e;e=c;if(\"function\"!==typeof d)throw Error(u(191,d));d.call(e)}}}var Dg=Wa.ReactCurrentBatchConfig,Eg=(new aa.Component).refs;function Fg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;0===a.expirationTime&&(a.updateQueue.baseState=c)}\nvar Jg={isMounted:function(a){return(a=a._reactInternalFiber)?dc(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=Gg(),d=Dg.suspense;\nc=Hg(c,a,d);d=wg(c,d);d.tag=2;void 0!==b&&null!==b&&(d.callback=b);xg(a,d);Ig(a,c)}};function Kg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!bf(c,d)||!bf(e,f):!0}\nfunction Lg(a,b,c){var d=!1,e=Af;var f=b.contextType;\"object\"===typeof f&&null!==f?f=sg(f):(e=L(b)?Bf:J.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Cf(a,e):Af);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Jg;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Mg(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Jg.enqueueReplaceState(b,b.state,null)}\nfunction Ng(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Eg;ug(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=sg(f):(f=L(b)?Bf:J.current,e.context=Cf(a,f));zg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Fg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Jg.enqueueReplaceState(e,e.state,null),zg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var Og=Array.isArray;\nfunction Pg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(u(309));var d=c.stateNode}if(!d)throw Error(u(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Eg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(u(284));if(!c._owner)throw Error(u(290,a));}return a}\nfunction Qg(a,b){if(\"textarea\"!==a.type)throw Error(u(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\"));}\nfunction Rg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Sg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Tg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Pg(a,b,c),d.return=a,d;d=Ug(c.type,c.key,c.props,null,a.mode,d);d.ref=Pg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==\nc.implementation)return b=Vg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Wg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function p(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Tg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Za:return c=Ug(b.type,b.key,b.props,null,a.mode,c),c.ref=Pg(a,null,b),c.return=a,c;case $a:return b=Vg(b,a.mode,c),b.return=a,b}if(Og(b)||\nnb(b))return b=Wg(b,a.mode,c,null),b.return=a,b;Qg(a,b)}return null}function x(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Za:return c.key===e?c.type===ab?m(a,b,c.props.children,d,e):k(a,b,c,d):null;case $a:return c.key===e?l(a,b,c,d):null}if(Og(c)||nb(c))return null!==e?null:m(a,b,c,d,null);Qg(a,c)}return null}function z(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=\na.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Za:return a=a.get(null===d.key?c:d.key)||null,d.type===ab?m(b,a,d.props.children,e,d.key):k(b,a,d,e);case $a:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Og(d)||nb(d))return a=a.get(c)||null,m(b,a,d,e,null);Qg(b,d)}return null}function ca(e,g,h,k){for(var l=null,t=null,m=g,y=g=0,A=null;null!==m&&y<h.length;y++){m.index>y?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;y<h.length;y++)m=p(e,h[y],k),null!==m&&(g=f(m,g,y),null===t?l=m:t.sibling=m,t=m);return l}for(m=d(e,m);y<h.length;y++)A=z(m,e,y,h[y],k),null!==A&&(a&&null!==A.alternate&&m.delete(null===A.key?y:A.key),g=f(A,g,y),null===t?l=A:t.sibling=A,t=A);a&&m.forEach(function(a){return b(e,a)});return l}function D(e,g,h,l){var k=nb(h);if(\"function\"!==typeof k)throw Error(u(150));h=k.call(h);\nif(null==h)throw Error(u(151));for(var m=k=null,t=g,y=g=0,A=null,q=h.next();null!==t&&!q.done;y++,q=h.next()){t.index>y?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){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,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a: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=\nd.sibling}d=Vg(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=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(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===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&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}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!$e(a[c],b[c]))return!1;return!0}\nfunction oh(a,b,c,d,e,f){lh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.expirationTime=0;jh.current=null===a||null===a.memoizedState?ph:qh;a=c(d,e);if(b.expirationTime===lh){f=0;do{b.expirationTime=0;if(!(25>f))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,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.expirationTime;if(l<lh){var m={expirationTime:k.expirationTime,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=m,f=d):h=h.next=m;l>N.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(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);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97<d?97:d,function(){var d=kh.suspense;kh.suspense=void 0===b?null:b;try{a(!1),c()}finally{kh.suspense=d}})}\nfunction zh(a,b,c){var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e={expirationTime:d,suspenseConfig:e,action:c,eagerReducer:null,eagerState:null,next:null};var f=b.pending;null===f?e.next=e:(e.next=f.next,f.next=e);b.pending=e;f=a.alternate;if(a===N||null!==f&&f===N)mh=!0,e.expirationTime=lh,N.expirationTime=lh;else{if(0===a.expirationTime&&(null===f||0===f.expirationTime)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.eagerReducer=f;e.eagerState=h;if($e(h,g))return}catch(k){}finally{}Ig(a,\nd)}}\nvar sh={readContext:sg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},ph={readContext:sg,useCallback:Kh,useContext:sg,useEffect:Eh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ch(4,2,Hh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Ch(4,2,a,b)},useMemo:function(a,b){var c=th();b=void 0===b?null:b;a=a();c.memoizedState=[a,\nb];return a},useReducer:function(a,b,c){var d=th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=zh.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=th();a={current:a};return b.memoizedState=a},useState:yh,useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=yh(a),d=c[0],e=c[1];Eh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=\nc}},[a,b]);return d},useTransition:function(a){var b=yh(!1),c=b[0];b=b[1];return[Kh(Nh.bind(null,b,a),[b,a]),c]}},qh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:wh,useRef:Bh,useState:function(){return wh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=wh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=\nwh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,b,a),[b,a]),c]}},rh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:xh,useRef:Bh,useState:function(){return xh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=xh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=xh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,\nb,a),[b,a]),c]}},Oh=null,Ph=null,Qh=!1;function Rh(a,b){var c=Sh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction Th(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 Uh(a){if(Qh){var b=Ph;if(b){var c=b;if(!Th(a,b)){b=Jd(c.nextSibling);if(!b||!Th(a,b)){a.effectTag=a.effectTag&-1025|2;Qh=!1;Oh=a;return}Rh(Oh,c)}Oh=a;Ph=Jd(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,Qh=!1,Oh=a}}function Vh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Oh=a}\nfunction Wh(a){if(a!==Oh)return!1;if(!Qh)return Vh(a),Qh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Gd(b,a.memoizedProps))for(b=Ph;b;)Rh(a,b),b=Jd(b.nextSibling);Vh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===Ad){if(0===b){Ph=Jd(a.nextSibling);break a}b--}else c!==zd&&c!==Cd&&c!==Bd||b++}a=a.nextSibling}Ph=null}}else Ph=Oh?Jd(a.stateNode.nextSibling):null;return!0}\nfunction Xh(){Ph=Oh=null;Qh=!1}var Yh=Wa.ReactCurrentOwner,rg=!1;function R(a,b,c,d){b.child=null===a?Yg(b,null,c,d):Xg(b,a.child,c,d)}function Zh(a,b,c,d,e){c=c.render;var f=b.ref;qg(b,e);d=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction ai(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!bi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ci(a,b,g,d,e,f);a=Ug(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e<f&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:bf,c(e,d)&&a.ref===b.ref))return $h(a,b,f);b.effectTag|=1;a=Sg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ci(a,b,c,d,e,f){return null!==a&&bf(a.memoizedProps,d)&&a.ref===b.ref&&(rg=!1,e<f)?(b.expirationTime=a.expirationTime,$h(a,b,f)):di(a,b,c,d,f)}function ei(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.effectTag|=128}function di(a,b,c,d,e){var f=L(c)?Bf:J.current;f=Cf(b,f);qg(b,e);c=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,c,e);return b.child}\nfunction fi(a,b,c,d,e){if(L(c)){var f=!0;Gf(b)}else f=!1;qg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),Lg(b,c,d),Ng(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l));var m=c.getDerivedStateFromProps,p=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;p||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l);tg=!1;var x=b.memoizedState;g.state=x;zg(b,d,g,e);k=b.memoizedState;h!==d||x!==k||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),k=b.memoizedState),(h=tg||Kg(b,c,h,d,x,k,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.effectTag|=4)):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,vg(a,b),h=b.memoizedProps,g.props=b.type===b.elementType?h:ig(b.type,h),k=g.context,l=c.contextType,\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l)),m=c.getDerivedStateFromProps,(p=\"function\"===typeof m||\"function\"===\ntypeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l),tg=!1,k=b.memoizedState,g.state=k,zg(b,d,g,e),x=b.memoizedState,h!==d||k!==x||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),x=b.memoizedState),(m=tg||Kg(b,c,h,d,k,x,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,l),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,l)),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=l,d=m):\n(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),d=!1);return gi(a,b,c,d,f,e)}\nfunction gi(a,b,c,d,e,f){ei(a,b);var g=0!==(b.effectTag&64);if(!d&&!g)return e&&Hf(b,c,!1),$h(a,b,f);d=b.stateNode;Yh.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.effectTag|=1;null!==a&&g?(b.child=Xg(b,a.child,null,f),b.child=Xg(b,null,h,f)):R(a,b,h,f);b.memoizedState=d.state;e&&Hf(b,c,!0);return b.child}function hi(a){var b=a.stateNode;b.pendingContext?Ef(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Ef(a,b.context,!1);dh(a,b.containerInfo)}\nvar ii={dehydrated:null,retryTime:0};\nfunction ji(a,b,c){var d=b.mode,e=b.pendingProps,f=M.current,g=!1,h;(h=0!==(b.effectTag&64))||(h=0!==(f&2)&&(null===a||null!==a.memoizedState));h?(g=!0,b.effectTag&=-65):null!==a&&null===a.memoizedState||void 0===e.fallback||!0===e.unstable_avoidThisFallback||(f|=1);I(M,f&1);if(null===a){void 0!==e.fallback&&Uh(b);if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=\nb;e.sibling=c;b.memoizedState=ii;b.child=e;return c}d=e.children;b.memoizedState=null;return b.child=Yg(b,null,d,c)}if(null!==a.memoizedState){a=a.child;d=a.sibling;if(g){e=e.fallback;c=Sg(a,a.pendingProps);c.return=b;if(0===(b.mode&2)&&(g=null!==b.memoizedState?b.child.child:b.child,g!==a.child))for(c.child=g;null!==g;)g.return=c,g=g.sibling;d=Sg(d,e);d.return=b;c.sibling=d;c.childExpirationTime=0;b.memoizedState=ii;b.child=c;return d}c=Xg(b,a.child,e.children,c);b.memoizedState=null;return b.child=\nc}a=a.child;if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;e.child=a;null!==a&&(a.return=e);if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=b;e.sibling=c;c.effectTag|=2;e.childExpirationTime=0;b.memoizedState=ii;b.child=e;return c}b.memoizedState=null;return b.child=Xg(b,a,e.children,c)}\nfunction ki(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);pg(a.return,b)}function li(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailExpiration:0,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailExpiration=0,g.tailMode=e,g.lastEffect=f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;R(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.effectTag|=64;else{if(null!==a&&0!==(a.effectTag&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&ki(a,c);else if(19===a.tag)ki(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(M,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===hh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);li(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===hh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}li(b,!0,c,null,f,b.lastEffect);break;case \"together\":li(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction $h(a,b,c){null!==a&&(b.dependencies=a.dependencies);var d=b.expirationTime;0!==d&&Bg(d);if(b.childExpirationTime<c)return null;if(null!==a&&b.child!==a.child)throw Error(u(153));if(null!==b.child){a=b.child;c=Sg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Sg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}var ni,oi,pi,qi;\nni=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&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}c.sibling.return=c.return;c=c.sibling}};oi=function(){};\npi=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;ch($g.current);a=null;switch(c){case \"input\":f=zb(g,f);d=zb(g,d);a=[];break;case \"option\":f=Gb(g,f);d=Gb(g,d);a=[];break;case \"select\":f=n({},f,{value:void 0});d=n({},d,{value:void 0});a=[];break;case \"textarea\":f=Ib(g,f);d=Ib(g,d);a=[];break;default:\"function\"!==typeof f.onClick&&\"function\"===typeof d.onClick&&(g.onclick=sd)}od(c,d);var h,k;c=null;for(h in f)if(!d.hasOwnProperty(h)&&f.hasOwnProperty(h)&&null!=f[h])if(\"style\"===\nh)for(k in g=f[h],g)g.hasOwnProperty(k)&&(c||(c={}),c[k]=\"\");else\"dangerouslySetInnerHTML\"!==h&&\"children\"!==h&&\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(va.hasOwnProperty(h)?a||(a=[]):(a=a||[]).push(h,null));for(h in d){var l=d[h];g=null!=f?f[h]:void 0;if(d.hasOwnProperty(h)&&l!==g&&(null!=l||null!=g))if(\"style\"===h)if(g){for(k in g)!g.hasOwnProperty(k)||l&&l.hasOwnProperty(k)||(c||(c={}),c[k]=\"\");for(k in l)l.hasOwnProperty(k)&&g[k]!==l[k]&&(c||(c={}),\nc[k]=l[k])}else c||(a||(a=[]),a.push(h,c)),c=l;else\"dangerouslySetInnerHTML\"===h?(l=l?l.__html:void 0,g=g?g.__html:void 0,null!=l&&g!==l&&(a=a||[]).push(h,l)):\"children\"===h?g===l||\"string\"!==typeof l&&\"number\"!==typeof l||(a=a||[]).push(h,\"\"+l):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&(va.hasOwnProperty(h)?(null!=l&&rd(e,h),a||g===l||(a=[])):(a=a||[]).push(h,l))}c&&(a=a||[]).push(\"style\",c);e=a;if(b.updateQueue=e)b.effectTag|=4}};\nqi=function(a,b,c,d){c!==d&&(b.effectTag|=4)};function ri(a,b){switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction si(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return L(b.type)&&Df(),null;case 3:return eh(),H(K),H(J),c=b.stateNode,c.pendingContext&&(c.context=c.pendingContext,c.pendingContext=null),null!==a&&null!==a.child||!Wh(b)||(b.effectTag|=4),oi(b),null;case 5:gh(b);c=ch(bh.current);var e=b.type;if(null!==a&&null!=b.stateNode)pi(a,b,e,d,c),a.ref!==b.ref&&(b.effectTag|=128);else{if(!d){if(null===b.stateNode)throw Error(u(166));\nreturn null}a=ch($g.current);if(Wh(b)){d=b.stateNode;e=b.type;var f=b.memoizedProps;d[Md]=b;d[Nd]=f;switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<ac.length;a++)F(ac[a],d);break;case \"source\":F(\"error\",d);break;case \"img\":case \"image\":case \"link\":F(\"error\",d);F(\"load\",d);break;case \"form\":F(\"reset\",d);F(\"submit\",d);break;case \"details\":F(\"toggle\",d);break;case \"input\":Ab(d,f);F(\"invalid\",d);rd(c,\"onChange\");break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};F(\"invalid\",d);rd(c,\"onChange\");break;case \"textarea\":Jb(d,f),F(\"invalid\",d),rd(c,\"onChange\")}od(e,f);a=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(a=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(a=[\"children\",\"\"+h]):va.hasOwnProperty(g)&&null!=h&&rd(c,g)}switch(e){case \"input\":xb(d);Eb(d,f,!0);break;case \"textarea\":xb(d);Lb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&\n(d.onclick=sd)}c=a;b.updateQueue=c;null!==c&&(b.effectTag|=4)}else{g=9===c.nodeType?c:c.ownerDocument;a===qd&&(a=Nb(e));a===qd?\"script\"===e?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;h<ac.length;h++)F(ac[h],a);h=d;break;case \"source\":F(\"error\",a);h=d;break;case \"img\":case \"image\":case \"link\":F(\"error\",a);F(\"load\",a);h=d;break;case \"form\":F(\"reset\",a);F(\"submit\",a);h=d;break;case \"details\":F(\"toggle\",a);h=d;break;case \"input\":Ab(a,d);h=zb(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;case \"option\":h=Gb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};h=n({},d,{value:void 0});F(\"invalid\",a);rd(c,\"onChange\");break;case \"textarea\":Jb(a,\nd);h=Ib(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;default:h=d}od(e,h);var k=h;for(f in k)if(k.hasOwnProperty(f)){var l=k[f];\"style\"===f?md(a,l):\"dangerouslySetInnerHTML\"===f?(l=l?l.__html:void 0,null!=l&&Qb(a,l)):\"children\"===f?\"string\"===typeof l?(\"textarea\"!==e||\"\"!==l)&&Rb(a,l):\"number\"===typeof l&&Rb(a,\"\"+l):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(va.hasOwnProperty(f)?null!=l&&rd(c,f):null!=l&&Xa(a,f,l,g))}switch(e){case \"input\":xb(a);Eb(a,d,!1);\nbreak;case \"textarea\":xb(a);Lb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+rb(d.value));break;case \"select\":a.multiple=!!d.multiple;c=d.value;null!=c?Hb(a,!!d.multiple,c,!1):null!=d.defaultValue&&Hb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof h.onClick&&(a.onclick=sd)}Fd(e,d)&&(b.effectTag|=4)}null!==b.ref&&(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)qi(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(u(166));\nc=ch(bh.current);ch($g.current);Wh(b)?(c=b.stateNode,d=b.memoizedProps,c[Md]=b,c.nodeValue!==d&&(b.effectTag|=4)):(c=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),c[Md]=b,b.stateNode=c)}return null;case 13:H(M);d=b.memoizedState;if(0!==(b.effectTag&64))return b.expirationTime=c,b;c=null!==d;d=!1;null===a?void 0!==b.memoizedProps.fallback&&Wh(b):(e=a.memoizedState,d=null!==e,c||null===e||(e=a.child.sibling,null!==e&&(f=b.firstEffect,null!==f?(b.firstEffect=e,e.nextEffect=f):(b.firstEffect=b.lastEffect=\ne,e.nextEffect=null),e.effectTag=8)));if(c&&!d&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(M.current&1))S===ti&&(S=ui);else{if(S===ti||S===ui)S=vi;0!==wi&&null!==T&&(xi(T,U),yi(T,wi))}if(c||d)b.effectTag|=4;return null;case 4:return eh(),oi(b),null;case 10:return og(b),null;case 17:return L(b.type)&&Df(),null;case 19:H(M);d=b.memoizedState;if(null===d)return null;e=0!==(b.effectTag&64);f=d.rendering;if(null===f)if(e)ri(d,!1);else{if(S!==ti||null!==a&&0!==(a.effectTag&\n64))for(f=b.child;null!==f;){a=hh(f);if(null!==a){b.effectTag|=64;ri(d,!1);e=a.updateQueue;null!==e&&(b.updateQueue=e,b.effectTag|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;for(d=b.child;null!==d;)e=d,f=c,e.effectTag&=2,e.nextEffect=null,e.firstEffect=null,e.lastEffect=null,a=e.alternate,null===a?(e.childExpirationTime=0,e.expirationTime=f,e.child=null,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null):(e.childExpirationTime=a.childExpirationTime,\ne.expirationTime=a.expirationTime,e.child=a.child,e.memoizedProps=a.memoizedProps,e.memoizedState=a.memoizedState,e.updateQueue=a.updateQueue,f=a.dependencies,e.dependencies=null===f?null:{expirationTime:f.expirationTime,firstContext:f.firstContext,responders:f.responders}),d=d.sibling;I(M,M.current&1|2);return b.child}f=f.sibling}}else{if(!e)if(a=hh(f),null!==a){if(b.effectTag|=64,e=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.effectTag|=4),ri(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!f.alternate)return b=\nb.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*$f()-d.renderingStartTime>d.tailExpiration&&1<c&&(b.effectTag|=64,e=!0,ri(d,!1),b.expirationTime=b.childExpirationTime=c-1);d.isBackwards?(f.sibling=b.child,b.child=f):(c=d.last,null!==c?c.sibling=f:b.child=f,d.last=f)}return null!==d.tail?(0===d.tailExpiration&&(d.tailExpiration=$f()+500),c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=$f(),c.sibling=null,b=M.current,I(M,e?b&1|2:b&1),c):null}throw Error(u(156,\nb.tag));}function zi(a){switch(a.tag){case 1:L(a.type)&&Df();var b=a.effectTag;return b&4096?(a.effectTag=b&-4097|64,a):null;case 3:eh();H(K);H(J);b=a.effectTag;if(0!==(b&64))throw Error(u(285));a.effectTag=b&-4097|64;return a;case 5:return gh(a),null;case 13:return H(M),b=a.effectTag,b&4096?(a.effectTag=b&-4097|64,a):null;case 19:return H(M),null;case 4:return eh(),null;case 10:return og(a),null;default:return null}}function Ai(a,b){return{value:a,source:b,stack:qb(b)}}\nvar Bi=\"function\"===typeof WeakSet?WeakSet:Set;function Ci(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=qb(c));null!==c&&pb(c.type);b=b.value;null!==a&&1===a.tag&&pb(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e;})}}function Di(a,b){try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(c){Ei(a,c)}}function Fi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Ei(a,c)}else b.current=null}\nfunction Gi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.effectTag&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ig(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:case 5:case 6:case 4:case 17:return}throw Error(u(163));}\nfunction Hi(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.destroy;c.destroy=void 0;void 0!==d&&d()}c=c.next}while(c!==b)}}function Ii(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}\nfunction Ji(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:Ii(3,c);return;case 1:a=c.stateNode;if(c.effectTag&4)if(null===b)a.componentDidMount();else{var d=c.elementType===c.type?b.memoizedProps:ig(c.type,b.memoizedProps);a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}b=c.updateQueue;null!==b&&Cg(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}Cg(c,b,a)}return;\ncase 5:a=c.stateNode;null===b&&c.effectTag&4&&Fd(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&&Vc(c))));return;case 19:case 17:case 20:case 21:return}throw Error(u(163));}\nfunction Ki(a,b,c){\"function\"===typeof Li&&Li(b);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 d=a.next;cg(97<c?97:c,function(){var a=d;do{var c=a.destroy;if(void 0!==c){var g=b;try{c()}catch(h){Ei(g,h)}}a=a.next}while(a!==d)})}break;case 1:Fi(b);c=b.stateNode;\"function\"===typeof c.componentWillUnmount&&Di(b,c);break;case 5:Fi(b);break;case 4:Mi(a,b,c)}}\nfunction Ni(a){var b=a.alternate;a.return=null;a.child=null;a.memoizedState=null;a.updateQueue=null;a.dependencies=null;a.alternate=null;a.firstEffect=null;a.lastEffect=null;a.pendingProps=null;a.memoizedProps=null;a.stateNode=null;null!==b&&Ni(b)}function Oi(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Pi(a){a:{for(var b=a.return;null!==b;){if(Oi(b)){var c=b;break a}b=b.return}throw Error(u(160));}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(u(161));}c.effectTag&16&&(Rb(b,\"\"),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Oi(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.effectTag&2)continue b;\nif(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}d?Qi(a,c,b):Ri(a,c,b)}\nfunction Qi(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=sd));else if(4!==d&&(a=a.child,null!==a))for(Qi(a,b,c),a=a.sibling;null!==a;)Qi(a,b,c),a=a.sibling}\nfunction Ri(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(Ri(a,b,c),a=a.sibling;null!==a;)Ri(a,b,c),a=a.sibling}\nfunction Mi(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(u(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Ki(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Ki(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Si(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:Hi(3,b);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Nd]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Bb(c,d);pd(a,e);b=pd(a,d);for(e=0;e<f.length;e+=2){var g=f[e],h=f[e+1];\"style\"===g?md(c,h):\"dangerouslySetInnerHTML\"===g?Qb(c,h):\"children\"===g?Rb(c,h):Xa(c,g,h,b)}switch(a){case \"input\":Cb(c,d);break;\ncase \"textarea\":Kb(c,d);break;case \"select\":b=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,a=d.value,null!=a?Hb(c,!!d.multiple,a,!1):b!==!!d.multiple&&(null!=d.defaultValue?Hb(c,!!d.multiple,d.defaultValue,!0):Hb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(u(162));b.stateNode.nodeValue=b.memoizedProps;return;case 3:b=b.stateNode;b.hydrate&&(b.hydrate=!1,Vc(b.containerInfo));return;case 12:return;case 13:c=b;null===b.memoizedState?\nd=!1:(d=!0,c=b.child,Ti=$f());if(null!==c)a:for(a=c;;){if(5===a.tag)f=a.stateNode,d?(f=f.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(f=a.stateNode,e=a.memoizedProps.style,e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null,f.style.display=ld(\"display\",e));else if(6===a.tag)a.stateNode.nodeValue=d?\"\":a.memoizedProps;else if(13===a.tag&&null!==a.memoizedState&&null===a.memoizedState.dehydrated){f=a.child.sibling;f.return=a;a=\nf;continue}else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===c)break;for(;null===a.sibling;){if(null===a.return||a.return===c)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}Ui(b);return;case 19:Ui(b);return;case 17:return}throw Error(u(163));}function Ui(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Bi);b.forEach(function(b){var d=Vi.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nvar Wi=\"function\"===typeof WeakMap?WeakMap:Map;function Xi(a,b,c){c=wg(c,null);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Yi||(Yi=!0,Zi=d);Ci(a,b)};return c}\nfunction $i(a,b,c){c=wg(c,null);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ci(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===aj?aj=new Set([this]):aj.add(this),Ci(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nvar bj=Math.ceil,cj=Wa.ReactCurrentDispatcher,dj=Wa.ReactCurrentOwner,V=0,ej=8,fj=16,gj=32,ti=0,hj=1,ij=2,ui=3,vi=4,jj=5,W=V,T=null,X=null,U=0,S=ti,kj=null,lj=1073741823,mj=1073741823,nj=null,wi=0,oj=!1,Ti=0,pj=500,Y=null,Yi=!1,Zi=null,aj=null,qj=!1,rj=null,sj=90,tj=null,uj=0,vj=null,wj=0;function Gg(){return(W&(fj|gj))!==V?1073741821-($f()/10|0):0!==wj?wj:wj=1073741821-($f()/10|0)}\nfunction Hg(a,b,c){b=b.mode;if(0===(b&2))return 1073741823;var d=ag();if(0===(b&4))return 99===d?1073741823:1073741822;if((W&fj)!==V)return U;if(null!==c)a=hg(a,c.timeoutMs|0||5E3,250);else switch(d){case 99:a=1073741823;break;case 98:a=hg(a,150,100);break;case 97:case 96:a=hg(a,5E3,250);break;case 95:a=2;break;default:throw Error(u(326));}null!==T&&a===U&&--a;return a}\nfunction Ig(a,b){if(50<uj)throw uj=0,vj=null,Error(u(185));a=xj(a,b);if(null!==a){var c=ag();1073741823===b?(W&ej)!==V&&(W&(fj|gj))===V?yj(a):(Z(a),W===V&&gg()):Z(a);(W&4)===V||98!==c&&99!==c||(null===tj?tj=new Map([[a,b]]):(c=tj.get(a),(void 0===c||c>b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){c=d.alternate;d.childExpirationTime<b&&(d.childExpirationTime=b);null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);if(null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}null!==e&&(T===e&&(Bg(b),S===vi&&xi(e,U)),yi(e,b));return e}\nfunction zj(a){var b=a.lastExpiredTime;if(0!==b)return b;b=a.firstPendingTime;if(!Aj(a,b))return b;var c=a.lastPingedTime;a=a.nextKnownPendingLevel;a=c>a?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2<c?2:c);break;case ui:xi(a,c);d=a.lastSuspendedTime;\nc===d&&(a.nextKnownPendingLevel=Ij(e));if(1073741823===lj&&(e=Ti+pj-$f(),10<e)){if(oj){var f=a.lastPingedTime;if(0===f||f>=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c<d&&(d=c));if(10<d){a.timeoutHandle=Hd(Jj.bind(null,a),d);break}Jj(a);break;case jj:if(1073741823!==lj&&null!==nj){f=lj;var g=nj;d=g.busyMinDurationMs|0;0>=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10<d){xi(a,c);a.timeoutHandle=\nHd(Jj.bind(null,a),d);break}}Jj(a);break;default:throw Error(u(329));}Z(a);if(a.callbackNode===b)return Bj.bind(null,a)}}return null}\nfunction yj(a){var b=a.lastExpiredTime;b=0!==b?b:1073741823;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&b===U||Ej(a,b);if(null!==X){var c=W;W|=fj;var d=Fj();do try{Kj();break}catch(e){Hj(a,e)}while(1);ng();W=c;cj.current=d;if(S===hj)throw c=kj,Ej(a,b),xi(a,b),Z(a),c;if(null!==X)throw Error(u(261));a.finishedWork=a.current.alternate;a.finishedExpirationTime=b;T=null;Jj(a);Z(a)}return null}function Lj(){if(null!==tj){var a=tj;tj=null;a.forEach(function(a,c){Cj(c,a);Z(c)});gg()}}\nfunction Mj(a,b){var c=W;W|=1;try{return a(b)}finally{W=c,W===V&&gg()}}function Nj(a,b){var c=W;W&=-2;W|=ej;try{return a(b)}finally{W=c,W===V&&gg()}}\nfunction Ej(a,b){a.finishedWork=null;a.finishedExpirationTime=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Id(c));if(null!==X)for(c=X.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Df();break;case 3:eh();H(K);H(J);break;case 5:gh(d);break;case 4:eh();break;case 13:H(M);break;case 19:H(M);break;case 10:og(d)}c=c.return}T=a;X=Sg(a.current,null);U=b;S=ti;kj=null;mj=lj=1073741823;nj=null;wi=0;oj=!1}\nfunction Hj(a,b){do{try{ng();jh.current=sh;if(mh)for(var c=N.memoizedState;null!==c;){var d=c.queue;null!==d&&(d.pending=null);c=c.next}lh=0;P=O=N=null;mh=!1;if(null===X||null===X.return)return S=hj,kj=b,X=null;a:{var e=a,f=X.return,g=X,h=b;b=U;g.effectTag|=2048;g.firstEffect=g.lastEffect=null;if(null!==h&&\"object\"===typeof h&&\"function\"===typeof h.then){var k=h;if(0===(g.mode&2)){var l=g.alternate;l?(g.updateQueue=l.updateQueue,g.memoizedState=l.memoizedState,g.expirationTime=l.expirationTime):(g.updateQueue=\nnull,g.memoizedState=null)}var m=0!==(M.current&1),p=f;do{var x;if(x=13===p.tag){var z=p.memoizedState;if(null!==z)x=null!==z.dehydrated?!0:!1;else{var ca=p.memoizedProps;x=void 0===ca.fallback?!1:!0!==ca.unstable_avoidThisFallback?!0:m?!1:!0}}if(x){var D=p.updateQueue;if(null===D){var t=new Set;t.add(k);p.updateQueue=t}else D.add(k);if(0===(p.mode&2)){p.effectTag|=64;g.effectTag&=-2981;if(1===g.tag)if(null===g.alternate)g.tag=17;else{var y=wg(1073741823,null);y.tag=2;xg(g,y)}g.expirationTime=1073741823;\nbreak a}h=void 0;g=b;var A=e.pingCache;null===A?(A=e.pingCache=new Wi,h=new Set,A.set(k,h)):(h=A.get(k),void 0===h&&(h=new Set,A.set(k,h)));if(!h.has(g)){h.add(g);var q=Oj.bind(null,e,k,g);k.then(q,q)}p.effectTag|=4096;p.expirationTime=b;break a}p=p.return}while(null!==p);h=Error((pb(g.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){a<lj&&2<a&&(lj=a);null!==b&&a<mj&&2<a&&(mj=a,nj=b)}function Bg(a){a>wi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1<X.effectTag&&(null!==\na.lastEffect?a.lastEffect.nextEffect=X:a.firstEffect=X,a.lastEffect=X))}else{b=zi(X);if(null!==b)return b.effectTag&=2047,b;null!==a&&(a.firstEffect=a.lastEffect=null,a.effectTag|=2048)}b=X.sibling;if(null!==b)return b;X=a}while(null!==X);S===ti&&(S=jj);return null}function Ij(a){var b=a.expirationTime;a=a.childExpirationTime;return b>a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1<c.effectTag?null!==c.lastEffect?(c.lastEffect.nextEffect=c,e=c.firstEffect):e=c:e=c.firstEffect;if(null!==e){var f=W;W|=gj;dj.current=null;Dd=fd;var g=xd();if(yd(g)){if(\"selectionStart\"in g)var h={start:g.selectionStart,end:g.selectionEnd};else a:{h=(h=g.ownerDocument)&&h.defaultView||window;var k=h.getSelection&&h.getSelection();if(k&&0!==k.rangeCount){h=k.anchorNode;var l=k.anchorOffset,\nm=k.focusNode;k=k.focusOffset;try{h.nodeType,m.nodeType}catch(wb){h=null;break a}var p=0,x=-1,z=-1,ca=0,D=0,t=g,y=null;b:for(;;){for(var A;;){t!==h||0!==l&&3!==t.nodeType||(x=p+l);t!==m||0!==k&&3!==t.nodeType||(z=p+k);3===t.nodeType&&(p+=t.nodeValue.length);if(null===(A=t.firstChild))break;y=t;t=A}for(;;){if(t===g)break b;y===h&&++ca===l&&(x=p);y===m&&++D===k&&(z=p);if(null!==(A=t.nextSibling))break;t=y;y=t.parentNode}t=A}h=-1===x||-1===z?null:{start:x,end:z}}else h=null}h=h||{start:0,end:0}}else h=\nnull;Ed={activeElementDetached:null,focusedElem:g,selectionRange:h};fd=!1;Y=e;do try{Tj()}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=e;do try{for(g=a,h=b;null!==Y;){var q=Y.effectTag;q&16&&Rb(Y.stateNode,\"\");if(q&128){var B=Y.alternate;if(null!==B){var w=B.ref;null!==w&&(\"function\"===typeof w?w(null):w.current=null)}}switch(q&1038){case 2:Pi(Y);Y.effectTag&=-3;break;case 6:Pi(Y);Y.effectTag&=-3;Si(Y.alternate,Y);break;case 1024:Y.effectTag&=-1025;break;case 1028:Y.effectTag&=\n-1025;Si(Y.alternate,Y);break;case 4:Si(Y.alternate,Y);break;case 8:l=Y,Mi(g,l,h),Ni(l)}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);w=Ed;B=xd();q=w.focusedElem;h=w.selectionRange;if(B!==q&&q&&q.ownerDocument&&wd(q.ownerDocument.documentElement,q)){null!==h&&yd(q)&&(B=h.start,w=h.end,void 0===w&&(w=B),\"selectionStart\"in q?(q.selectionStart=B,q.selectionEnd=Math.min(w,q.value.length)):(w=(B=q.ownerDocument||document)&&B.defaultView||window,w.getSelection&&\n(w=w.getSelection(),l=q.textContent.length,g=Math.min(h.start,l),h=void 0===h.end?g:Math.min(h.end,l),!w.extend&&g>h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q<B.length;q++)w=B[q],w.element.scrollLeft=w.left,w.element.scrollTop=w.top}fd=!!Dd;Ed=Dd=null;a.current=c;Y=e;do try{for(q=a;null!==Y;){var ub=Y.effectTag;ub&36&&Ji(q,Y.alternate,Y);if(ub&128){B=void 0;var vb=Y.ref;if(null!==vb){var Xc=Y.stateNode;switch(Y.tag){case 5:B=Xc;break;default:B=Xc}\"function\"===typeof vb?vb(B):vb.current=B}}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=\nnull;Vf();W=f}else a.current=c;if(qj)qj=!1,rj=a,sj=b;else for(Y=e;null!==Y;)b=Y.nextEffect,Y.nextEffect=null,Y=b;b=a.firstPendingTime;0===b&&(aj=null);1073741823===b?a===vj?uj++:(uj=0,vj=a):uj=0;\"function\"===typeof Uj&&Uj(c.stateNode,d);Z(a);if(Yi)throw Yi=!1,a=Zi,Zi=null,a;if((W&ej)!==V)return null;gg();return null}function Tj(){for(;null!==Y;){var a=Y.effectTag;0!==(a&256)&&Gi(Y.alternate,Y);0===(a&512)||qj||(qj=!0,dg(97,function(){Dj();return null}));Y=Y.nextEffect}}\nfunction Dj(){if(90!==sj){var a=97<sj?97:sj;sj=90;return cg(a,Vj)}}function Vj(){if(null===rj)return!1;var a=rj;rj=null;if((W&(fj|gj))!==V)throw Error(u(331));var b=W;W|=gj;for(a=a.current.firstEffect;null!==a;){try{var c=a;if(0!==(c.effectTag&512))switch(c.tag){case 0:case 11:case 15:case 22:Hi(5,c),Ii(5,c)}}catch(d){if(null===a)throw Error(u(330));Ei(a,d)}c=a.nextEffect;a.nextEffect=null;a=c}W=b;gg();return!0}\nfunction Wj(a,b,c){b=Ai(c,b);b=Xi(a,b,1073741823);xg(a,b);a=xj(a,1073741823);null!==a&&Z(a)}function Ei(a,b){if(3===a.tag)Wj(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){Wj(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===aj||!aj.has(d))){a=Ai(b,a);a=$i(c,a,1073741823);xg(c,a);c=xj(c,1073741823);null!==c&&Z(c);break}}c=c.return}}\nfunction Oj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);T===a&&U===c?S===vi||S===ui&&1073741823===lj&&$f()-Ti<pj?Ej(a,U):oj=!0:Aj(a,c)&&(b=a.lastPingedTime,0!==b&&b<c||(a.lastPingedTime=c,Z(a)))}function Vi(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=Gg(),b=Hg(b,a,null));a=xj(a,b);null!==a&&Z(a)}var Rj;\nRj=function(a,b,c){var d=b.expirationTime;if(null!==a){var e=b.pendingProps;if(a.memoizedProps!==e||K.current)rg=!0;else{if(d<c){rg=!1;switch(b.tag){case 3:hi(b);Xh();break;case 5:fh(b);if(b.mode&4&&1!==c&&e.hidden)return b.expirationTime=b.childExpirationTime=1,null;break;case 1:L(b.type)&&Gf(b);break;case 4:dh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;e=b.type._context;I(jg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){d=b.child.childExpirationTime;\nif(0!==d&&d>=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime<c&&(h.expirationTime=c);l=h.alternate;null!==l&&l.expirationTime<c&&(l.expirationTime=c);pg(h.return,c);k.expirationTime<c&&(k.expirationTime=c);break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=\ng}R(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,qg(b,c),e=sg(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,R(a,b,d,c),b.child;case 14:return e=b.type,f=ig(e,b.pendingProps),f=ig(e.type,f),ai(a,b,e,f,d,c);case 15:return ci(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),b.tag=1,L(d)?(a=!0,Gf(b)):a=!1,qg(b,c),Lg(b,d,e),Ng(b,d,e,c),gi(null,\nb,d,!0,a,c);case 19:return mi(a,b,c)}throw Error(u(156,b.tag));};var Uj=null,Li=null;function Yj(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Uj=function(a){try{b.onCommitFiberRoot(c,a,void 0,64===(a.current.effectTag&64))}catch(e){}};Li=function(a){try{b.onCommitFiberUnmount(c,a)}catch(e){}}}catch(d){}return!0}\nfunction Zj(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function Sh(a,b,c,d){return new Zj(a,b,c,d)}\nfunction bi(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Xj(a){if(\"function\"===typeof a)return bi(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gb)return 11;if(a===jb)return 14}return 2}\nfunction Sg(a,b){var c=a.alternate;null===c?(c=Sh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{expirationTime:b.expirationTime,\nfirstContext:b.firstContext,responders:b.responders};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Ug(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bi(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ab:return Wg(c.children,e,f,b);case fb:g=8;e|=7;break;case bb:g=8;e|=1;break;case cb:return a=Sh(12,c,b,e|8),a.elementType=cb,a.type=cb,a.expirationTime=f,a;case hb:return a=Sh(13,c,b,e),a.type=hb,a.elementType=hb,a.expirationTime=f,a;case ib:return a=Sh(19,c,b,e),a.elementType=ib,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case db:g=\n10;break a;case eb:g=9;break a;case gb:g=11;break a;case jb:g=14;break a;case kb:g=16;d=null;break a;case lb:g=22;break a}throw Error(u(130,null==a?a:typeof a,\"\"));}b=Sh(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function Wg(a,b,c,d){a=Sh(7,a,d,b);a.expirationTime=c;return a}function Tg(a,b,c){a=Sh(6,a,null,b);a.expirationTime=c;return a}\nfunction Vg(a,b,c){b=Sh(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction ak(a,b,c){this.tag=b;this.current=null;this.containerInfo=a;this.pingCache=this.pendingChildren=null;this.finishedExpirationTime=0;this.finishedWork=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=90;this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}\nfunction Aj(a,b){var c=a.firstSuspendedTime;a=a.lastSuspendedTime;return 0!==c&&c>=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;c<b&&(a.firstSuspendedTime=b);if(d>b||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime<b&&(a.retryTime=b)}function ek(a,b){dk(a,b);(a=a.alternate)&&dk(a,b)}\nfunction fk(a,b,c){c=null!=c&&!0===c.hydrate;var d=new ak(a,b,c),e=Sh(3,null,null,2===b?7:1===b?3:0);d.current=e;e.stateNode=d;ug(e);a[Od]=d.current;c&&0!==b&&Jc(a,9===a.nodeType?a:a.ownerDocument);this._internalRoot=d}fk.prototype.render=function(a){bk(a,this._internalRoot,null,null)};fk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;bk(null,a,null,function(){b[Od]=null})};\nfunction gk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function hk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new fk(a,0,b?{hydrate:!0}:void 0)}\nfunction ik(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=ck(g);h.call(a)}}bk(b,g,a,e)}else{f=c._reactRootContainer=hk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=ck(g);k.call(a)}}Nj(function(){bk(b,g,a,e)})}return ck(g)}function jk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:$a,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nwc=function(a){if(13===a.tag){var b=hg(Gg(),150,100);Ig(a,b);ek(a,b)}};xc=function(a){13===a.tag&&(Ig(a,3),ek(a,3))};yc=function(a){if(13===a.tag){var b=Gg();b=Hg(b,a,null);Ig(a,b);ek(a,b)}};\nza=function(a,b,c){switch(b){case \"input\":Cb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Qd(d);if(!e)throw Error(u(90));yb(d);Cb(d,e)}}}break;case \"textarea\":Kb(a,c);break;case \"select\":b=c.value,null!=b&&Hb(a,!!c.multiple,b,!1)}};Fa=Mj;\nGa=function(a,b,c,d,e){var f=W;W|=4;try{return cg(98,a.bind(null,b,c,d,e))}finally{W=f,W===V&&gg()}};Ha=function(){(W&(1|fj|gj))===V&&(Lj(),Dj())};Ia=function(a,b){var c=W;W|=2;try{return a(b)}finally{W=c,W===V&&gg()}};function kk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!gk(b))throw Error(u(200));return jk(a,b,null,c)}var lk={Events:[Nc,Pd,Qd,xa,ta,Xd,function(a){jc(a,Wd)},Da,Ea,id,mc,Dj,{current:!1}]};\n(function(a){var b=a.findFiberByHostInstance;return Yj(n({},a,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Wa.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=hc(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))})({findFiberByHostInstance:tc,bundleType:0,version:\"16.14.0\",\nrendererPackageName:\"react-dom\"});exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lk;exports.createPortal=kk;exports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(void 0===b){if(\"function\"===typeof a.render)throw Error(u(188));throw Error(u(268,Object.keys(a)));}a=hc(b);a=null===a?null:a.stateNode;return a};\nexports.flushSync=function(a,b){if((W&(fj|gj))!==V)throw Error(u(187));var c=W;W|=1;try{return cg(99,a.bind(null,b))}finally{W=c,gg()}};exports.hydrate=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!0,c)};exports.render=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!1,c)};\nexports.unmountComponentAtNode=function(a){if(!gk(a))throw Error(u(40));return a._reactRootContainer?(Nj(function(){ik(null,null,a,!1,function(){a._reactRootContainer=null;a[Od]=null})}),!0):!1};exports.unstable_batchedUpdates=Mj;exports.unstable_createPortal=function(a,b){return kk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!gk(c))throw Error(u(200));if(null==a||void 0===a._reactInternalFiber)throw Error(u(38));return ik(a,b,c,!1,d)};exports.version=\"16.14.0\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/** @license React v16.13.1\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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\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","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nlet batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport const setBatch = newBatch => batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\nexport const getBatch = () => batch;","import * as React from 'react';\nconst ContextKey = Symbol.for(`react-redux-context`);\nconst gT = typeof globalThis !== \"undefined\" ? globalThis :\n/* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n{};\n\nfunction getContext() {\n var _gT$ContextKey;\n\n if (!React.createContext) return {};\n const contextMap = (_gT$ContextKey = gT[ContextKey]) != null ? _gT$ContextKey : gT[ContextKey] = new Map();\n let realContext = contextMap.get(React.createContext);\n\n if (!realContext) {\n realContext = React.createContext(null);\n\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux';\n }\n\n contextMap.set(React.createContext, realContext);\n }\n\n return realContext;\n}\n\nexport const ReactReduxContext = /*#__PURE__*/getContext();\nexport default ReactReduxContext;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n\n/**\r\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\r\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext() {\n const contextValue = useContext(context);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a <Provider>');\n }\n\n return contextValue;\n };\n}\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const { store } = useReduxContext()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport const useReduxContext = /*#__PURE__*/createReduxContextHook();","import { useCallback, useDebugValue, useRef } from 'react';\nimport { createReduxContextHook, useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { ReactReduxContext } from '../components/Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStoreWithSelector = notInitialized;\nexport const initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nconst refEquality = (a, b) => a === b;\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context = ReactReduxContext) {\n const useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : createReduxContextHook(context);\n return function useSelector(selector, equalityFnOrOptions = {}) {\n const {\n equalityFn = refEquality,\n stabilityCheck = undefined,\n noopCheck = undefined\n } = typeof equalityFnOrOptions === 'function' ? {\n equalityFn: equalityFnOrOptions\n } : equalityFnOrOptions;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(`You must pass a function as an equality function to useSelector`);\n }\n }\n\n const {\n store,\n subscription,\n getServerState,\n stabilityCheck: globalStabilityCheck,\n noopCheck: globalNoopCheck\n } = useReduxContext();\n const firstRun = useRef(true);\n const wrappedSelector = useCallback({\n [selector.name](state) {\n const selected = selector(state);\n\n if (process.env.NODE_ENV !== 'production') {\n const finalStabilityCheck = typeof stabilityCheck === 'undefined' ? globalStabilityCheck : stabilityCheck;\n\n if (finalStabilityCheck === 'always' || finalStabilityCheck === 'once' && firstRun.current) {\n const toCompare = selector(state);\n\n if (!equalityFn(selected, toCompare)) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' + '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization', {\n state,\n selected,\n selected2: toCompare,\n stack\n });\n }\n }\n\n const finalNoopCheck = typeof noopCheck === 'undefined' ? globalNoopCheck : noopCheck;\n\n if (finalNoopCheck === 'always' || finalNoopCheck === 'once' && firstRun.current) {\n // @ts-ignore\n if (selected === state) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned the root state when called. This can lead to unnecessary rerenders.' + '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.', {\n stack\n });\n }\n }\n\n if (firstRun.current) firstRun.current = false;\n }\n\n return selected;\n }\n\n }[selector.name], [selector, globalStabilityCheck, stabilityCheck]);\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return <div>{counter}</div>\r\n * }\r\n */\n\nexport const useSelector = /*#__PURE__*/createSelectorHook();","export const notInitialized = () => {\n throw new Error('uSES not initialized!');\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n const batch = getBatch();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n\n };\n}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\nexport function createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners; // Reasons to keep the subscription active\n\n let subscriptionsAmount = 0; // Is this specific subscription subscribed (or only nested ones?)\n\n let selfSubscribed = false;\n\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener); // cleanup nested sub\n\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return selfSubscribed;\n }\n\n function trySubscribe() {\n subscriptionsAmount++;\n\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n subscriptionsAmount--;\n\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}","import * as React from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n// Matches logic in React's `shared/ExecutionEnvironment` file\n\nexport const canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexport const useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;","import * as React from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider({\n store,\n context,\n children,\n serverState,\n stabilityCheck = 'once',\n noopCheck = 'once'\n}) {\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n stabilityCheck,\n noopCheck\n };\n }, [store, serverState, stabilityCheck, noopCheck]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const {\n subscription\n } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = undefined;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nexport default Provider;","import { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext, createReduxContextHook } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context = ReactReduxContext) {\n const useReduxContext = // @ts-ignore\n context === ReactReduxContext ? useDefaultReduxContext : // @ts-ignore\n createReduxContextHook(context);\n return function useStore() {\n const {\n store\n } = useReduxContext(); // @ts-ignore\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport const useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context = ReactReduxContext) {\n const useStore = // @ts-ignore\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n const store = useStore(); // @ts-ignore\n\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n * <div>\r\n * <span>{value}</span>\r\n * <button onClick={increaseCounter}>Increase counter</button>\r\n * </div>\r\n * )\r\n * }\r\n */\n\nexport const useDispatch = /*#__PURE__*/createDispatchHook();","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"reactReduxForwardedRef\"];\n\n/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport hoistStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport defaultSelectorFactory from '../connect/selectorFactory';\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps';\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps';\nimport { mergePropsFactory } from '../connect/mergeProps';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport shallowEqual from '../utils/shallowEqual';\nimport warning from '../utils/warning';\nimport { ReactReduxContext } from './Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStore = notInitialized;\nexport const initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch<any>,\nadditionalSubscribeListener) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return () => {}; // Capture values for checking if and when this component unmounts\n\n let didUnsubscribe = false;\n let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n const latestStoreState = store.getState();\n let newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n\n additionalSubscribeListener();\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\r\n * Infers the type of props that a connector will inject into a component.\r\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps A function that extracts values from state\r\n * @param mapDispatchToProps Setup for dispatching actions\r\n * @param mergeProps Optional callback to merge state and dispatch props together\r\n * @param options Options for configuring the connection\r\n *\r\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const wrapWithConnect = WrappedComponent => {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(`You must pass a component to the function returned by connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n }\n\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n const {\n reactReduxForwardedRef\n } = props,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && // @ts-ignore\n isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = React.useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(`Could not find \"store\" in the context of ` + `\"${displayName}\". Either wrap the root component in a <Provider>, ` + `or pass a custom React context provider to <Provider> and the corresponding ` + `React context consumer to ${displayName} in connect options.`);\n } // Based on the previous check, one of these must be true\n\n\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n const subscription = createSubscription(store, didStoreComeFromProps ? undefined : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]); // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n const lastChildProps = React.useRef();\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef();\n const renderIsScheduled = React.useRef(false);\n const isProcessingDispatch = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef();\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n };\n\n return selector;\n }, [store, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n const subscribeForReact = React.useMemo(() => {\n const subscribe = reactListener => {\n if (!subscription) {\n return () => {};\n }\n\n return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n };\n\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n let actualChildProps;\n\n try {\n actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`;\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = undefined;\n childPropsFromStoreUpdate.current = undefined;\n lastChildProps.current = actualChildProps;\n }); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }))\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n\n const _Connect = React.memo(ConnectFunction);\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nexport default connect;","/**\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 React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<BrowserRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<HashRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n 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();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return <a {...props} />;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Link> outside a <Router>\");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <NavLink> outside a <Router>\");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return <Link {...props} />;\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n <RouterContext.Provider\n value={{\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }}\n >\n <HistoryContext.Provider\n children={this.props.children || null}\n value={this.props.history}\n />\n </RouterContext.Provider>\n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change <Router history>\"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Route> outside a <Router>\");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // <Switch> already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n <RouterContext.Provider value={props}>\n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n </RouterContext.Provider>\n );\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return <Router {...rest} history={history} staticContext={context} />;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","/** @license React v16.14.0\n * react-jsx-runtime.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=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.14.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function dependenciesChecker() {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/** @license React v0.19.1\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\n'use strict';var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported\"):F=0<a?Math.floor(1E3/a):5};var H=new MessageChannel,I=H.port2;H.port1.onmessage=\nfunction(){if(null!==D){var a=exports.unstable_now();G=a+F;try{D(!0,a)?I.postMessage(null):(C=!1,D=null)}catch(b){throw I.postMessage(null),b;}}else C=!1};f=function(a){D=a;C||(C=!0,I.postMessage(null))};g=function(a,b){E=y(function(){a(exports.unstable_now())},b)};h=function(){z(E);E=-1}}function J(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<K(e,b))a[d]=b,a[c]=e,c=d;else break a}}function L(a){a=a[0];return void 0===a?null:a}\nfunction M(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.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(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0<e?d+e:d;c=\"number\"===typeof c.timeout?c.timeout:Y(a)}else c=Y(a),e=d;c=e+c;a={id:P++,callback:b,priorityLevel:a,startTime:e,expirationTime:c,sortIndex:-1};e>d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime<Q.expirationTime||k()};exports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=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","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.39\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.39',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 500;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook',\n CHROMIUM_OS = 'Chromium OS',\n MAC_OS = 'Mac OS',\n SUFFIX_BROWSER = ' Browser';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i<arr.length; i++) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n return enums;\n },\n has = function (str1, str2) {\n return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n },\n lowerize = function (str) {\n return str.toLowerCase();\n },\n majorize = function (version) {\n return typeof(version) === STR_TYPE ? version.replace(/[^\\d\\.]/g, EMPTY).split('.')[0] : undefined;\n },\n trim = function (str, len) {\n if (typeof(str) === STR_TYPE) {\n str = str.replace(/^\\s\\s*/, EMPTY);\n return typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n if (!regex[j]) { break; }\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return map.hasOwnProperty('*') ? map['*'] : str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\\/ ]?([\\w\\.]*)/i, \n // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir\n // Trident based\n /(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio\n /(heytap|ovi)browser\\/([\\d\\.]+)/i, // HeyTap/Ovi\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /quark(?:pc)?\\/([-\\w\\.]+)/i // Quark\n ], [VERSION, [NAME, 'Quark']], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart Lenovo '+BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360' + SUFFIX_BROWSER]], [\n /\\b(qq)\\/([\\w\\.]+)/i // QQ\n ], [[NAME, /(.+)/, '$1Browser'], VERSION], [\n /(oculus|sailfish|huawei|vivo|pico)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, 'Sogou Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, 'Sogou Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/2345 Browser\n ], [NAME, VERSION], [\n /(lbbrowser|rekonq)/i, // LieBao Browser/Rekonq\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /(Klarna)\\/([\\w\\.]+)/i, // Klarna Shopping Browser for iOS & Android\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram/Snapchat\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /(wolvic)\\/([\\w\\.]+)/i // Wolvic\n ], [NAME, VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, [VERSION, /_/g, '.']], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-(?![lr])\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]((?!sm-[lr])[-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i, // Redmi Pad\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n /\\b(opd2\\d{3}a?) bui/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo(?!bc)\\w\\w)( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // TCL\n /droid [\\w\\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\\w*(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [\n\n // itel\n /(itel) ((\\w+))/i\n ], [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { 'tablet' : ['p10001l', 'w7001'], '*' : 'mobile' }]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // Nothing\n /droid.+; (a(?:015|06[35]|142p?))/i\n ], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /\\b(sm-[lr]\\d\\d[05][fnuw]?s?)\\b/i // Samsung Galaxy Watch\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n /(quest( \\d| pro)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n /\\b(libweb)/i\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i // Windows Phone\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /windows nt 6\\.2; (arm)/i, // Windows RT\n /windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, CHROMIUM_OS], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined;\n var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined;\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser[MAJOR] = majorize(_browser[VERSION]);\n // Brave-specific detection\n if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n _browser[NAME] = 'Brave';\n }\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n _device[TYPE] = MOBILE;\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n _device[MODEL] = 'iPad';\n _device[TYPE] = TABLET;\n }\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n if (_isSelfNav && !_os[NAME] && _uach && _uach.platform && _uach.platform != 'Unknown') {\n _os[NAME] = _uach.platform \n .replace(/chrome os/i, CHROMIUM_OS)\n .replace(/macos/i, MAC_OS); // backward compatibility\n }\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n","/**\n * @license React\n * use-sync-external-store-shim.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 e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.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 h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","/* eslint-disable no-prototype-builtins */\nvar g =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global) ||\n {}\n\nvar support = {\n searchParams: 'URLSearchParams' in g,\n iterable: 'Symbol' in g && 'iterator' in Symbol,\n blob:\n 'FileReader' in g &&\n 'Blob' in g &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in g,\n arrayBuffer: 'ArrayBuffer' in g\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n if (header.length != 2) {\n throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n }\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body._noBody) return\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type)\n var encoding = match ? match[1] : 'utf-8'\n reader.readAsText(blob, encoding)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n // eslint-disable-next-line no-self-assign\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._noBody = true;\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else if (support.blob) {\n return this.blob().then(readBlobAsArrayBuffer)\n } else {\n throw new Error('could not read as ArrayBuffer')\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal || (function () {\n if ('AbortController' in g) {\n var ctrl = new AbortController();\n return ctrl.signal;\n }\n }());\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n try {\n headers.append(key, value)\n } catch (error) {\n console.warn('Response ' + error.message)\n }\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n if (this.status < 200 || this.status > 599) {\n throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n }\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 200, statusText: ''})\n response.status = 0\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = g.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n // This check if specifically for when a user fetches a file locally from the file system\n // Only if the status is out of a normal range\n if (request.url.startsWith('file://') && (xhr.status < 200 || xhr.status > 599)) {\n options.status = 200;\n } else {\n options.status = xhr.status;\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request timed out'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && g.location.href ? g.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n var names = [];\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n names.push(normalizeName(name))\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n request.headers.forEach(function(value, name) {\n if (names.indexOf(name) === -1) {\n xhr.setRequestHeader(name, value)\n }\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!g.fetch) {\n g.fetch = fetch\n g.Headers = Headers\n g.Request = Request\n g.Response = Response\n}\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\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, toPropertyKey(descriptor.key), descriptor);\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}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : 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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n}\nfunction _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n \"default\": e\n };\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null\n },\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n[\"default\"] = e, t && t.set(e, n), n;\n}\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _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}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n 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}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}\nmodule.exports = _toArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\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}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar fround = require('../internals/math-fround');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER);\nvar getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW);\nvar setInternalState = InternalStateModule.set;\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(fround(number), 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key, getInternalState) {\n defineBuiltInAccessor(Constructor[PROTOTYPE], key, {\n configurable: true,\n get: function () {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var store = getInternalDataViewState(view);\n var intIndex = toIndex(index);\n var boolIsLittleEndian = !!isLittleEndian;\n if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX);\n var bytes = store.bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return boolIsLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var store = getInternalDataViewState(view);\n var intIndex = toIndex(index);\n var pack = conversion(+value);\n var boolIsLittleEndian = !!isLittleEndian;\n if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX);\n var bytes = store.bytes;\n var start = intIndex + store.byteOffset;\n for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n type: ARRAY_BUFFER,\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) {\n this.byteLength = byteLength;\n this.detached = false;\n }\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferState = getInternalArrayBufferState(buffer);\n var bufferLength = bufferState.byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw new RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw new RangeError(WRONG_LENGTH);\n setInternalState(this, {\n type: DATA_VIEW,\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset,\n bytes: bufferState.bytes\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState);\n addGetter($DataView, 'buffer', getInternalDataViewState);\n addGetter($DataView, 'byteLength', getInternalDataViewState);\n addGetter($DataView, 'byteOffset', getInternalDataViewState);\n }\n\n defineBuiltIns(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n var index = 0;\n var length = lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n var n = 0;\n for (; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key === key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first === entry) state.first = next;\n if (state.last === entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind === 'keys') return createIterResultObject(entry.key, false);\n if (kind === 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY === 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY === 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar $TypeError = TypeError;\n\n// `Date.prototype[@@toPrimitive](hint)` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nmodule.exports = function (hint) {\n anObject(this);\n if (hint === 'string' || hint === 'default') hint = 'string';\n else if (hint !== 'number') throw new $TypeError('Incorrect hint');\n return ordinaryToPrimitive(this, hint);\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\n/* global Bun -- Bun case */\nmodule.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string';\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n doesNotExceedSafeInteger(targetIndex + 1);\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n var list = [];\n var i = 0;\n for (; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar $Array = Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = $Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number !== number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number !== number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent += eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa += pow(2, mantissaLength);\n exponent -= eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\n// eslint-disable-next-line es/no-math-expm1 -- safe\nvar $expm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.es/ecma262/#sec-math.expm1\nmodule.exports = (!$expm1\n // Old FF bug\n // eslint-disable-next-line no-loss-of-precision -- required for old engines\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) !== -2e-17\n) ? function expm1(x) {\n var n = +x;\n return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1;\n} : $expm1;\n","'use strict';\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\n\nvar EPSILON = 2.220446049250313e-16; // Number.EPSILON\nvar INVERSE_EPSILON = 1 / EPSILON;\n\nvar roundTiesToEven = function (n) {\n return n + INVERSE_EPSILON - INVERSE_EPSILON;\n};\n\nmodule.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) {\n var n = +x;\n var absolute = abs(n);\n var s = sign(n);\n if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON;\n var a = (1 + FLOAT_EPSILON / EPSILON) * absolute;\n var result = a - (a - absolute);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity;\n return s * result;\n};\n","'use strict';\nvar floatRound = require('../internals/math-float-round');\n\nvar FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23;\nvar FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104\nvar FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126;\n\n// `Math.fround` method implementation\n// https://tc39.es/ecma262/#sec-math.fround\n// eslint-disable-next-line es/no-math-fround -- safe\nmodule.exports = Math.fround || function fround(x) {\n return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE);\n};\n","'use strict';\nvar log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// eslint-disable-next-line es/no-math-log10 -- safe\nmodule.exports = Math.log10 || function log10(x) {\n return log(x) * LOG10E;\n};\n","'use strict';\nvar log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.es/ecma262/#sec-math.log1p\n// eslint-disable-next-line es/no-math-log1p -- safe\nmodule.exports = Math.log1p || function log1p(x) {\n var n = +x;\n return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n);\n};\n","'use strict';\n// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n === 0 || n !== n ? n : n < 0 ? -1 : 1;\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result;\n} : $parseFloat;\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\n// Forced replacement object prototype accessors methods\nmodule.exports = IS_PURE || !fails(function () {\n // This feature detection crashes old WebKit\n // https://github.com/zloirock/core-js/issues/232\n if (WEBKIT && WEBKIT < 535) return;\n var key = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call, es/no-legacy-object-prototype-accessor-methods -- required for testing\n __defineSetter__.call(null, key, function () { /* empty */ });\n delete global[key];\n});\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENGINE_IS_BUN = require('../internals/engine-is-bun');\nvar USER_AGENT = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = global.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () {\n var version = global.Bun.version.split('.');\n return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.3/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr === '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\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'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\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 */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\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 */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\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 */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimEnd, trimRight }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\nmodule.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() {\n return $trimEnd(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimStart, trimLeft }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\nmodule.exports = forcedStringTrimMethod('trimStart') ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw new $RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw new $RangeError('Wrong offset');\n return offset;\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar round = Math.round;\n\nmodule.exports = function (it) {\n var value = round(it);\n return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toUint8Clamped = require('../internals/to-uint8-clamped');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar enforceInternalState = InternalStateModule.enforce;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n aTypedArrayConstructor(C);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n defineBuiltInAccessor(it, key, {\n configurable: true,\n get: function () {\n return getInternalState(this)[key];\n }\n });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isIntegralNumber(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructorPrototype);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw new RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw new RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructorPrototype);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor;\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict';\n/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","'use strict';\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\nvar toBigInt = require('../internals/to-big-int');\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, thisIsBigIntArray, value, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n thisIsBigIntArray = isBigIntArray(result);\n for (i = 0; length > i; i++) {\n value = mapping ? mapfn(O[i], i) : O[i];\n // FF30- typed arrays doesn't properly convert objects to typed array values\n result[i] = thisIsBigIntArray ? toBigInt(value) : +value;\n }\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray)));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar DataViewPrototype = DataView.prototype;\nvar nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);\nvar getUint8 = uncurryThis(DataViewPrototype.getUint8);\nvar setUint8 = uncurryThis(DataViewPrototype.setUint8);\n\nvar INCORRECT_SLICE = fails(function () {\n return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n slice: function slice(start, end) {\n if (nativeArrayBufferSlice && end === undefined) {\n return nativeArrayBufferSlice(anObject(this), start); // FF fix\n }\n var length = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n var viewSource = new DataView(this);\n var viewTarget = new DataView(result);\n var index = 0;\n while (first < fin) {\n setUint8(viewTarget, index++, getUint8(viewSource, first++));\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","'use strict';\nvar $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-findindex -- testing\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A;\n aCallable(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject !== Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isConstructor = require('../internals/is-constructor');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\n\nvar ISNT_GENERIC = fails(function () {\n function F() { /* empty */ }\n // eslint-disable-next-line es/no-array-of -- safe\n return !($Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.es/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n of: function of(/* ...args */) {\n var index = 0;\n var argumentsLength = arguments.length;\n var result = new (isConstructor(this) ? this : $Array)(argumentsLength);\n while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n result.length = argumentsLength;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight');\n\n// `Array.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.es/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.es/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O, 'number');\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nif (!hasOwn(DatePrototype, TO_PRIMITIVE)) {\n defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar makeBuiltIn = require('../internals/make-built-in');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) {\n if (!isCallable(this) || !isObject(O)) return false;\n var P = this.prototype;\n if (!isObject(P)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (P === O) return true;\n return false;\n }, HAS_INSTANCE) });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// eslint-disable-next-line es/no-math-acosh -- required for testing\nvar $acosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !$acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n || Math.floor($acosh(Number.MAX_VALUE)) !== 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n || $acosh(Infinity) !== Infinity;\n\n// `Math.acosh` method\n// https://tc39.es/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n acosh: function acosh(x) {\n var n = +x;\n return n < 1 ? NaN : n > 94906265.62425156\n ? log(n) + LN2\n : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-asinh -- required for testing\nvar $asinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\n\nfunction asinh(x) {\n var n = +x;\n return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1));\n}\n\nvar FORCED = !($asinh && 1 / $asinh(0) > 0);\n\n// `Math.asinh` method\n// https://tc39.es/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: FORCED }, {\n asinh: asinh\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-atanh -- required for testing\nvar $atanh = Math.atanh;\nvar log = Math.log;\n\nvar FORCED = !($atanh && 1 / $atanh(-0) < 0);\n\n// `Math.atanh` method\n// https://tc39.es/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: FORCED }, {\n atanh: function atanh(x) {\n var n = +x;\n return n === 0 ? n : log((1 + n) / (1 - n)) / 2;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.es/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n cbrt: function cbrt(x) {\n var n = +x;\n return sign(n) * pow(abs(n), 1 / 3);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.es/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n clz32: function clz32(x) {\n var n = x >>> 0;\n return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// eslint-disable-next-line es/no-math-cosh -- required for testing\nvar $cosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\nvar FORCED = !$cosh || $cosh(710) === Infinity;\n\n// `Math.cosh` method\n// https://tc39.es/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n cosh: function cosh(x) {\n var t = expm1(abs(x) - 1) + 1;\n return (t + 1 / (t * E * E)) * (E / 2);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.es/ecma262/#sec-math.expm1\n// eslint-disable-next-line es/no-math-expm1 -- required for testing\n$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 });\n","'use strict';\nvar $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.es/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-math-imul -- required for testing\nvar $imul = Math.imul;\n\nvar FORCED = fails(function () {\n return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2;\n});\n\n// `Math.imul` method\n// https://tc39.es/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n imul: function imul(x, y) {\n var UINT16 = 0xFFFF;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar log10 = require('../internals/math-log10');\n\n// `Math.log10` method\n// https://tc39.es/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n log10: log10\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.es/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n","'use strict';\nvar $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n log2: function log2(x) {\n return log(x) / LN2;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-math-sinh -- required for testing\n return Math.sinh(-2e-17) !== -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.es/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n sinh: function sinh(x) {\n var n = +x;\n return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.es/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n tanh: function tanh(x) {\n var n = +x;\n var a = expm1(n);\n var b = expm1(-n);\n return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n));\n }\n});\n","'use strict';\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","'use strict';\nvar $ = require('../internals/export');\nvar trunc = require('../internals/math-trunc');\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: trunc\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n // fast equal of /^0b[01]+$/i\n case 66:\n case 98:\n radix = 2;\n maxCode = 49;\n break;\n // fast equal of /^0o[0-7]+$/i\n case 79:\n case 111:\n radix = 8;\n maxCode = 55;\n break;\n default:\n return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.es/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n EPSILON: Math.pow(2, -52)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\n// `Number.isInteger` method\n// https://tc39.es/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isIntegralNumber\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.es/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n isSafeInteger: function isSafeInteger(number) {\n return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.es/ecma262/#sec-number.parseFloat\n// eslint-disable-next-line es/no-number-parsefloat -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, {\n parseFloat: parseFloat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n// eslint-disable-next-line es/no-number-parseint -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, {\n parseInt: parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar nativeToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = $String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return nativeToFixed(0.00008, 3) !== '0.000' ||\n nativeToFixed(0.9, 0) !== '1' ||\n nativeToFixed(1.255, 2) !== '1.25' ||\n nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number !== number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return $String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineGetter__: function __defineGetter__(P, getter) {\n definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true });\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineSetter__: function __defineSetter__(P, setter) {\n definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true });\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\n// eslint-disable-next-line es/no-object-isextensible -- safe\n$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, {\n isExtensible: $isExtensible\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar $isFrozen = Object.isFrozen;\n\nvar FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.es/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FORCED }, {\n isFrozen: function isFrozen(it) {\n if (!isObject(it)) return true;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true;\n return $isFrozen ? $isFrozen(it) : false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar $isSealed = Object.isSealed;\n\nvar FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.es/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FORCED }, {\n isSealed: function isSealed(it) {\n if (!isObject(it)) return true;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true;\n return $isSealed ? $isSealed(it) : false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var key = toPropertyKey(P);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var key = toPropertyKey(P);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-preventextensions -- safe\nvar $preventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.es/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-seal -- safe\nvar $seal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { $seal(1); });\n\n// `Object.seal` method\n// https://tc39.es/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n seal: function seal(it) {\n return $seal && isObject(it) ? $seal(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar functionApply = require('../internals/function-apply');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n // eslint-disable-next-line es/no-reflect -- required for testing\n Reflect.apply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.es/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n apply: function apply(target, thisArgument, argumentsList) {\n return functionApply(aCallable(target), thisArgument, anObject(argumentsList));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target === newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar fails = require('../internals/fails');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n // eslint-disable-next-line es/no-reflect -- required for testing\n Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.es/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n var key = toPropertyKey(propertyKey);\n anObject(attributes);\n try {\n definePropertyModule.f(target, key, attributes);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.es/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(target) {\n return objectGetPrototypeOf(anObject(target));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n if (descriptor) return isDataDescriptor(descriptor)\n ? descriptor.value\n : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.es/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Reflect.isExtensible` method\n// https://tc39.es/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible(target);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.es/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n if (objectPreventExtensions) objectPreventExtensions(target);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n anObject(target);\n aPossiblePrototype(proto);\n try {\n objectSetPrototypeOf(target, proto);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.es/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n var existingDescriptor, prototype, setter;\n if (!ownDescriptor) {\n if (isObject(prototype = getPrototypeOf(target))) {\n return set(prototype, propertyKey, V, receiver);\n }\n ownDescriptor = createPropertyDescriptor(0);\n }\n if (isDataDescriptor(ownDescriptor)) {\n if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n } else {\n setter = ownDescriptor.set;\n if (setter === undefined) return false;\n call(setter, receiver, V);\n } return true;\n}\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n var Constructor = function () { /* empty */ };\n var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true });\n // eslint-disable-next-line es/no-reflect -- required for testing\n return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n set: set\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr += charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = global.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.big` method\n// https://tc39.es/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n big: function big() {\n return createHTML(this, 'big', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.blink` method\n// https://tc39.es/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n blink: function blink() {\n return createHTML(this, 'blink', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.es/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n bold: function bold() {\n return createHTML(this, 'b', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar nativeEndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return nativeEndsWith\n ? nativeEndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontcolor` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n fontcolor: function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n fontsize: function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar $RangeError = RangeError;\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\nvar join = uncurryThis([].join);\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fromCodePoint: function fromCodePoint(x) {\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point');\n elements[i] = code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);\n } return join(elements, '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.italics` method\n// https://tc39.es/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n italics: function italics() {\n return createHTML(this, 'i', '', '');\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toObject = require('../internals/to-object');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.raw` method\n// https://tc39.es/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n raw: function raw(template) {\n var rawTemplate = toIndexedObject(toObject(template).raw);\n var literalSegments = lengthOfArrayLike(rawTemplate);\n if (!literalSegments) return '';\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (true) {\n push(elements, toString(rawTemplate[i++]));\n if (i === literalSegments) return join(elements, '');\n if (i < argumentsLength) push(elements, toString(arguments[i]));\n }\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.strike` method\n// https://tc39.es/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n strike: function strike() {\n return createHTML(this, 'strike', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sup` method\n// https://tc39.es/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n sup: function sup() {\n return createHTML(this, 'sup', '', '');\n }\n});\n","'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-right');\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, {\n trimEnd: trimEnd\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimLeft` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimleft\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, {\n trimLeft: trimStart\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimRight` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, {\n trimRight: trimEnd\n});\n","'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-left');\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, {\n trimStart: trimStart\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = global.RangeError;\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n var $this = this === undefined ? global : this;\n if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor($this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty($this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\nvar toBigInt = require('../internals/to-big-int');\nvar classof = require('../internals/classof');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar slice = uncurryThis(''.slice);\n\n// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\nvar CONVERSION_BUG = fails(function () {\n var count = 0;\n // eslint-disable-next-line es/no-typed-arrays -- safe\n new Int8Array(2).fill({ valueOf: function () { return count++; } });\n return count !== 1;\n});\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n aTypedArray(this);\n var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;\n return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);\n}, CONVERSION_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.es/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n && TypedArrayPrototype.values\n && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n return $join(aTypedArray(this), separator);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n var length = arguments.length;\n return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (typedArraySpeciesConstructor(O))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.es/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = new (aTypedArrayConstructor(this))(length);\n while (length > index) result[index] = arguments[index++];\n return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw new RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = arraySlice(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {\n nativeSort(new Uint16Array(2), null);\n}) && fails(function () {\n nativeSort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n nativeSort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return nativeSort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = typedArraySpeciesConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return join(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","'use strict';\nvar FREEZING = require('../internals/freezing');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar fails = require('../internals/fails');\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\n\nvar $Object = Object;\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray = Array.isArray;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = $Object.isExtensible;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = $Object.isFrozen;\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar isSealed = $Object.isSealed;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = $Object.freeze;\n// eslint-disable-next-line es/no-object-seal -- safe\nvar seal = $Object.seal;\n\nvar FROZEN = {};\nvar SEALED = {};\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\nvar WeakMapPrototype = $WeakMap.prototype;\nvar nativeSet = uncurryThis(WeakMapPrototype.set);\n\n// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them\nvar hasMSEdgeFreezingBug = function () {\n return FREEZING && fails(function () {\n var frozenArray = freeze([]);\n nativeSet(new $WeakMap(), frozenArray, 1);\n return !isFrozen(frozenArray);\n });\n};\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP) if (IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n defineBuiltIns(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n// Chakra Edge frozen keys fix\n} else if (hasMSEdgeFreezingBug()) {\n defineBuiltIns(WeakMapPrototype, {\n set: function set(key, value) {\n var arrayIntegrityLevel;\n if (isArray(key)) {\n if (isFrozen(key)) arrayIntegrityLevel = FROZEN;\n else if (isSealed(key)) arrayIntegrityLevel = SEALED;\n }\n nativeSet(this, key, value);\n if (arrayIntegrityLevel === FROZEN) freeze(key);\n if (arrayIntegrityLevel === SEALED) seal(key);\n return this;\n }\n });\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-map.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-set.constructor');\n","'use strict';\nvar global = require('../internals/global');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar Symbol = global.Symbol;\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n\nif (Symbol) {\n var descriptor = getOwnPropertyDescriptor(Symbol, 'dispose');\n // workaround of NodeJS 20.4 bug\n // https://github.com/nodejs/node/issues/48699\n // and incorrect descriptor from some transpilers and userland helpers\n if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n defineProperty(Symbol, 'dispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n }\n}\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, {\n clearImmediate: clearImmediate\n});\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.clear-immediate');\nrequire('../modules/web.set-immediate');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar microtask = require('../internals/microtask');\nvar aCallable = require('../internals/a-callable');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar process = global.process;\n\n// `queueMicrotask` method\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n$({ global: true, enumerable: true, dontCallGetSet: true }, {\n queueMicrotask: function queueMicrotask(fn) {\n validateArgumentsLength(arguments.length, 1);\n aCallable(fn);\n var domain = IS_NODE && process.domain;\n microtask(domain ? domain.bind(fn) : fn);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setTask = require('../internals/task').set;\nvar schedulersFix = require('../internals/schedulers-fix');\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, {\n setImmediate: setImmediate\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nvar safeGetBuiltIn = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n target: getInternalParamsState(params).entries,\n index: 0,\n kind: kind\n });\n}, URL_SEARCH_PARAMS, function next() {\n var state = getInternalIteratorState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n var entry = target[index];\n switch (state.kind) {\n case 'keys': return createIterResultObject(entry.key, false);\n case 'values': return createIterResultObject(entry.value, false);\n } return createIterResultObject([entry.key, entry.value], false);\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var entries = this.entries;\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw new TypeError('Expected sequence with length 2');\n push(entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var entries = this.entries;\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var state = setInternalState(this, new URLSearchParamsState(init));\n if (!DESCRIPTORS) this.size = state.entries.length;\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 2);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n if (!DESCRIPTORS) this.length++;\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name /* , value */) {\n var state = getInternalParamsState(this);\n var length = validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index];\n if (entry.key === key && (value === undefined || entry.value === value)) {\n splice(entries, index, 1);\n if (value !== undefined) break;\n } else index++;\n }\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name /* , value */) {\n var entries = getInternalParamsState(this).entries;\n var length = validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index++];\n if (entry.key === key && (value === undefined || entry.value === value)) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n return getInternalParamsState(this).entries.length;\n },\n configurable: true,\n enumerable: true\n});\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] === '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part === '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) === '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix === 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index === partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() === ':') {\n if (charAt(input, 1) !== ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex === 8) return;\n if (chr() === ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() === '.') {\n if (length === 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() === '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece === 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;\n }\n if (numbersSeen !== 4) return;\n break;\n } else if (chr() === ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex !== 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length === 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length === 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw new TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw new TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) {\n buffer += toLowerCase(chr);\n } else if (chr === ':') {\n if (stateOverride && (\n (url.isSpecial() !== hasOwn(specialSchemes, buffer)) ||\n (buffer === 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme === 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme === 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme === url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] === '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr === '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme === 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr === '/' && codePoints[pointer + 1] === '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr === '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr === EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr === '/' || (chr === '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr === '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr === '/' || chr === '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr === '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr !== '/' && chr !== '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr === '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint === ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer === '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme === 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr === ':' && !seenBracket) {\n if (buffer === '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride === HOSTNAME) return;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer === '') return INVALID_HOST;\n if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr === '[') seenBracket = true;\n else if (chr === ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer !== '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr === '/' || chr === '\\\\') state = FILE_SLASH;\n else if (base && base.scheme === 'file') {\n switch (chr) {\n case EOF:\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n break;\n case '?':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n break;\n case '#':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n break;\n default:\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr === '/' || chr === '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr === EOF || chr === '/' || chr === '\\\\' || chr === '?' || chr === '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer === '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host === 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr !== '/' && chr !== '\\\\') continue;\n } else if (!stateOverride && chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n state = PATH;\n if (chr !== '/') continue;\n } break;\n\n case PATH:\n if (\n chr === EOF || chr === '/' ||\n (chr === '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr === '?' || chr === '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n if (chr === \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr === '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) === '[') {\n if (charAt(input, input.length - 1) !== ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme === 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username !== '' || this.password !== '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme === 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw new TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme === 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme === 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port === '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search === '') {\n this.query = null;\n } else {\n if (charAt(search, 0) === '?') search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash === '') {\n this.fragment = null;\n return;\n }\n if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return call(URL.prototype.toString, this);\n }\n});\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _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}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\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 default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _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}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n 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}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _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}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"63\":\"0ee6153b\",\"82\":\"f90d733c\",\"142\":\"f9b991de\",\"218\":\"de36956b\",\"256\":\"6705acb5\",\"295\":\"c01b3cf3\",\"320\":\"5cc796f6\",\"354\":\"c256deb6\",\"356\":\"3bda2954\",\"375\":\"20147092\",\"389\":\"40d4270c\",\"449\":\"d37f6bfd\",\"499\":\"4fd2bc2d\",\"510\":\"1acc6149\",\"616\":\"9b73d202\",\"631\":\"b81a3154\",\"641\":\"907e2778\",\"681\":\"3e23501d\",\"703\":\"4e3faecc\",\"715\":\"217fd821\",\"775\":\"2190c17c\",\"783\":\"d9523882\",\"862\":\"4eb78ff2\",\"952\":\"b23fcdff\",\"965\":\"c85664bd\",\"988\":\"9ca29c7c\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"354\":\"e0210d33\",\"631\":\"e0210d33\",\"988\":\"f6e6bf67\"}[chunkId] + \".chunk.css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"qna:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"https://onlineforms-northernregion.flink.co.nz/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"354\":1,\"631\":1,\"988\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkqna\"] = self[\"webpackChunkqna\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(90284);\n"],"names":["_construct","Parent","args","Class","isNativeReflectConstruct","Reflect","construct","bind","a","push","apply","instance","Function","setPrototypeOf","prototype","arguments","_wrapNativeSuper","_cache","Map","undefined","fn","toString","call","indexOf","e","TypeError","has","get","set","Wrapper","getPrototypeOf","this","constructor","Object","create","value","enumerable","writable","configurable","CustomError","_Error","_inherits","_super","_createSuper","name","statusCode","description","_this","isPopup","length","_classCallCheck","_assertThisInitialized","Error","captureStackTrace","_createClass","getApiHeaders","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","headers","bearer","wrap","_context","prev","next","Headers","getMsalToken","sent","append","abrupt","stop","getApiHeadersLookup","_ref2","_callee2","_context2","_ref3","_callee3","token","accounts","request","_context3","msalInstance","getAllAccounts","scopes","process","account","acquireTokenSilent","then","response","accessToken","catch","acquireTokenRedirect","fetchWithErrorHanlding","_ref4","_callee4","apiUrl","options","timeout","controller","id","ok","status","errorMessage","_context4","AbortController","setTimeout","abort","fetch","_objectSpread","signal","clearTimeout","json","error","message","t0","_x","_x2","_x3","_ref5","_callee5","isAuth","customHeaders","_args5","_context5","forEach","h","key","method","credentials","appInsights","trackTrace","severityLevel","SeverityLevel","Information","properties","t1","trackException","exception","_x4","post","_ref6","_callee6","data","_args6","_context6","JSON","stringify","body","t2","_x5","_x6","throwCustomError","customError400Obj","_error$name","customObj","UNAUTHORISED_ERROR_MESSAGE","TOKEN_ERROR_MESSAGE","TIMEOUT_ERROR_MESSAGE","FORMS_ERROR_MESSAGE","FORM_BY_ID_ERROR_MESSAGE","FORMDEFINITION_BY_ID_ERROR_MESSAGE","ATTACHMENT_BY_ID_ERROR_MESSAGE","UPLOAD_DOCUMENTS_ERROR_MESSAGE","WORKFLOWS_BY_FORMID_ERROR_MESSAGE","POST_FORMDEFINITION_ERROR_MESSAGE","POST_RESPONSEFORM_ERROR_MESSAGE","UPLOAD_DOCUMENT_ERROR_MESSAGE","SUBMIT_WORKFLOW_ERROR_MESSGE","RESUME_WORKFLOW_ERROR_MESSAGE","APPROVE_WORKFLOW_ERROR_MESSAGE","DECLINE_WORKFLOW_ERROR_MESSAGE","UPSERT_WORKFLOW_ERROR_MESSAGE","TREE_BY_DOMAIN_ERROR_MESSAGE","GENERIC_ERROR_MESSAGE","GENERIC_POST_ERROR_MESSAGE","getToken","concat","customError","getUserPermissionByAppId","appId","userId","searchByName","appHierarchyId","searchByNameAd","getOrAddCapexUserByEmail","email","searchByPersonId","personId","getUsersByOrgHierarchy","_ref7","_callee7","organisationHierarchyId","domain","deepSearch","includeNewUser","_context7","postUser","_ref8","_callee8","_context8","_x7","postUserApp","_ref9","_callee9","_context9","_x8","postUserRole","_ref10","_callee10","_context10","_x9","getUserRolesByUserIdAndAppId","_ref11","_callee11","_context11","_x10","getAppRolesByAppId","_ref12","_callee12","_context12","_x11","getForms","_ref13","_callee13","filter","_context13","_x12","_x13","getFormById","_ref14","_callee14","_context14","formId","_x14","getFormDefinitionById","_ref15","_callee15","_context15","formDefinitionId","_x15","getAttachmentById","_ref16","_callee16","_context16","attachmentId","_x16","getUploadDocuments","_ref17","_callee17","_context17","_x17","getWorkflowsByFormId","_ref18","_callee18","_context18","responseFormId","_x18","getWorkflowHistoryByFormId","_ref19","_callee19","_context19","_x19","postWorkflowHistory","_ref20","_callee20","_context20","_x20","postFormDefinition","_ref21","_callee21","_context21","_x21","postResponseForm","_ref22","_callee22","_context22","_x22","uploadDocument","_ref23","_callee23","_context23","_x23","uploadRoC","_ref24","_callee24","_context24","_x24","deleteUploadDocument","_ref25","_callee25","_context25","_x25","submitWorkflow","_ref26","_callee26","comment","_args26","_context26","workflowDtos","action","_x26","getWorkflowApprovers","_ref27","_callee27","roleId","organisationId","_context27","_x27","resumeWorkflow","_ref28","_callee28","_args28","_context28","_x28","delegateWorkflow","_ref29","_callee29","delegateUserId","_args29","_context29","workflowDto","delegatedUserId","_x29","_x30","queryWorkflow","_ref30","_callee30","_args30","_context30","_x31","_x32","approveWorkflow","_ref31","_callee31","_args31","_context31","_x33","respondWorkflow","_ref32","_callee32","_args32","_context32","_x34","declineWorkflow","_ref33","_callee33","_args33","_context33","_x35","addWorkflow","_ref34","_callee34","_args34","_context34","_x36","editWorkflow","_ref35","_callee35","_args35","_context35","_x37","deleteWorkflow","_ref36","_callee36","_args36","_context36","_x38","resendPayrollEmail","_ref37","_callee37","_args37","_context37","_x39","deleteWorkflowsByResponseFormId","_ref39","_callee38","_ref38","_context38","_x40","getWorkflowsByTemplate","_ref40","_callee39","_context39","_x41","getTreeById","_ref41","_callee40","_context40","_x42","getTreeByDomain","_ref42","_callee41","parentId","allowAllSelect","hideChildren","_context41","_x43","getChildrenByDomain","_ref43","_callee42","_context42","_x44","getHierarchies","_ref44","_callee43","_context43","_x45","postHierarchy","_ref45","_callee44","_context44","_x46","getDelegateUserByUserId","_ref47","_callee46","_context46","_x48","getDelegateUserByForUserId","_ref48","_callee47","forUserId","_context47","_x49","postDelegateUser","_ref49","_callee48","_context48","_x50","getCMEFormById","_ref50","_callee49","_context49","_x51","getCPEFormById","_ref51","_callee50","_context50","_x52","postCPEForm","_ref52","_callee51","_context51","_x53","getRequestFormById","_ref53","_callee52","_context52","_x54","postRequestForm","_ref54","_callee53","_context53","_x55","saveByPayroll","_ref55","_callee54","_context54","_x56","getAttachmentsByFormId","_ref56","_callee55","_context55","_x57","getCMEAttachmentById","_ref57","_callee56","_context56","_x58","postAttachment","_ref58","_callee57","_context57","_x59","getLeaveLinesByFormId","_ref59","_callee58","_context58","_x60","postLeaveLines","_ref60","_callee59","_context59","_x61","deleteLeaveLineByFormId","_ref61","_callee60","_context60","_x62","getRequestLinesByFormId","_ref62","_callee61","_context61","_x63","getRequestLinesByParentFormId","_ref63","_callee62","_context62","parentFormId","_x64","postRequestLines","_ref64","_callee63","_context63","_x65","getBalanceByPersonId","_ref65","_callee64","_context64","_x66","getOpenCommitmentByPersonId","_ref66","_callee65","_context65","_x67","getTransByPersonIdAndPeriodDate","_ref67","_callee66","_context66","periodDate","_x68","postTrans","_ref68","_callee67","_context67","_x69","getCPEEnrolmentByPersonId","_ref69","_callee68","_context68","_x70","deleteCPEEnrolmentById","_ref70","_callee69","_context69","_x71","processCPEEnrolmentUpdate","_ref71","_callee70","_context70","_x72","getFormsByPersonId","_ref72","_callee71","_context71","_x73","getSMOLeaveFormsByPersonId","_ref73","_callee72","_context72","_x74","getActiveLeaveApplication","_ref74","_callee73","_context73","minLeaveDate","teamId","_x75","updateFormStatus","_ref75","_callee74","_context74","formGuid","_x76","updateFormIsRostered","_ref76","_callee75","_context75","isRostered","_x77","processLeaveRequest","_ref77","_callee76","_context76","statusId","_x78","rejectByPayroll","_ref78","_callee77","_context77","_x79","rejectByCountiesFinance","_ref79","_callee78","_context78","_x80","deleteForm","_ref80","_callee79","_context79","_x81","getFormApproval","_ref81","_callee80","approverId","workflowWaitingOnId","formTypeId","includeHistory","_context80","_x82","getLeaveReport","_ref82","_callee81","leaveFrom","leaveTo","params","_context81","Boolean","join","_x83","getPayrollForms","_ref83","_callee82","_context82","_x84","migrate","_ref84","_callee83","migrateUserId","_context83","oldUserId","newUserId","_x85","getMigrationPendingWorkflows","_ref85","_callee84","_context84","_x86","postDeleteForm","_ref86","_callee85","_context85","_x87","getPreviousItClaim","_ref88","_callee86","_ref87","categoryLookupId","excludeFormId","invoiceDate","_context86","_x88","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","strShimHasOwnProperty","ObjClass","ObjProto","ObjAssign","ObjCreate","ObjDefineProperty","ObjHasOwnProperty","getGlobal","globalThis","self","window","global","throwTypeError","objCreateFn","obj","type","tmpFunc","__assignFn","t","s","i","n","p","extendStaticsFn","d","b","__proto__","Array","__extendsFn","__","String","__spreadArrayFn","to","from","il","j","Constructor","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","_dynamicNames","_hasOwnProperty","prop","hasOwnProperty","_isObjectOrArrayPrototype","target","_isObjectArrayOrFunctionPrototype","_getObjProto","newProto","_forEachProp","func","props","getOwnProps","name_1","lp","_isDynamicCandidate","funcName","skipOwn","_throwTypeError","_hasVisited","values","_populatePrototype","proto","className","baseInstFuncs","setInstanceFunc","_createDynamicPrototype","dynProtoProxy","instFunc","currentDynProtoProxy","instFuncTable","canAddInst","objProto","visited","protoFunc","_getInstFunc","_getProtoFunc","instFuncs_1","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","classProto","thisTarget","thisProto","_checkPrototype","perfOptions","useBaseInst","instFuncs","_getInstanceFuncs","baseFuncs","_instFuncProxy","funcHost","theFunc","baseProto","_getBaseFuncs","setInstFuncs","LoggingSeverity","_InternalMessageId","BrowserDoesNotSupportLocalStorage","BrowserCannotReadLocalStorage","BrowserCannotReadSessionStorage","BrowserCannotWriteLocalStorage","BrowserCannotWriteSessionStorage","BrowserFailedRemovalFromLocalStorage","BrowserFailedRemovalFromSessionStorage","CannotSendEmptyTelemetry","ClientPerformanceMathError","ErrorParsingAISessionCookie","ErrorPVCalc","ExceptionWhileLoggingError","FailedAddingTelemetryToBuffer","FailedMonitorAjaxAbort","FailedMonitorAjaxDur","FailedMonitorAjaxOpen","FailedMonitorAjaxRSC","FailedMonitorAjaxSend","FailedMonitorAjaxGetCorrelationHeader","FailedToAddHandlerForOnBeforeUnload","FailedToSendQueuedTelemetry","FailedToReportDataLoss","FlushFailed","MessageLimitPerPVExceeded","MissingRequiredFieldSpecification","NavigationTimingNotSupported","OnError","SessionRenewalDateIsZero","SenderNotInitialized","StartTrackEventFailed","StopTrackEventFailed","StartTrackFailed","StopTrackFailed","TelemetrySampledAndNotSent","TrackEventFailed","TrackExceptionFailed","TrackMetricFailed","TrackPVFailed","TrackPVFailedCalc","TrackTraceFailed","TransmissionFailed","FailedToSetStorageBuffer","FailedToRestoreStorageBuffer","InvalidBackendResponse","FailedToFixDepricatedValues","InvalidDurationValue","TelemetryEnvelopeInvalid","CreateEnvelopeError","CannotSerializeObject","CannotSerializeObjectNonSerializable","CircularReferenceDetected","ClearAuthContextFailed","ExceptionTruncated","IllegalCharsInName","ItemNotInArray","MaxAjaxPerPVExceeded","MessageTruncated","NameTooLong","SampleRateOutOfRange","SetAuthContextFailed","SetAuthContextFailedAccountName","StringValueTooLong","StartCalledMoreThanOnce","StopCalledWithoutStart","TelemetryInitializerFailed","TrackArgumentsNotSpecified","UrlTooLong","SessionStorageBufferFull","CannotAccessCookie","IdTooLong","InvalidEvent","FailedMonitorAjaxSetRequestHeader","SendBrowserInfoOnUserInit","PluginException","NotificationException","SnippetScriptLoadFailure","InvalidInstrumentationKey","CannotParseAiBlobValue","InvalidContentBlob","TrackPageActionEventFailed","FailedAddingCustomDefinedRequestContext","InMemoryStorageBufferFull","strOnPrefix","strAttachEvent","strAddEventHelper","_objDefineProperty","objToString","isUndefined","isNullOrUndefined","isNotNullOrUndefined","isObject","isFunction","attachEvent","eventNameWithoutOn","handlerRef","useCapture","result","objForEachKey","callbackfn","strContains","search","isDate","isArray","isError","isString","isNumber","toISOString","date","pad","num","r","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toFixed","slice","arrForEach","arr","thisArg","len","idx","arrIndexOf","searchElement","fromIndex","Math","max","abs","arrMap","results","arrReduce","initialValue","strTrim","str","replace","_objKeysHasDontEnumBug","propertyIsEnumerable","_objKeysDontEnums","objKeys","objType","dontEnumsLength","objDefineAccessors","getProp","setProp","descriptor","dateNow","dt","Date","now","getTime","getExceptionName","object","setValue","field","valChk","srcChk","theValue","getSetValue","defValue","isNotTruthy","isTruthy","throwError","optimizeObject","theObject","strWindow","strDocument","strNavigator","strLocation","strConsole","strPerformance","strJSON","strCrypto","strMsCrypto","strMsie","strTrident","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","property","supported","getGlobalInst","gbl","hasWindow","getWindow","hasDocument","document","getDocument","hasNavigator","navigator","getNavigator","getHistory","history","getLocation","checkForMock","mockLocation","location","getPerformance","hasJSON","getJSON","isIE","nav","userAgent","toLowerCase","getIEVersion","userAgentStr","navigator_1","ua","parseInt","split","tridentVer","dumpObj","objectTypeDump","propertyValueDump","stack","isBeaconsSupported","sendBeacon","isFetchSupported","withKeepAlive","isSupported","useXDomainRequest","XDomainRequest","isXhrSupported","_debugListener","listenerFuncs","_aiNamespace","_listenerProxyFunc","config","dbgExt","getDebugExt","listener","ns","disableDbgExt","_getExtensionNamespace","_sanitizeDiagnosticText","text","_logToConsole","theConsole","console","logFunc","_InternalLogMessage","msgId","msg","isUserAct","_self","messageId","strProps","diagnosticText","dataType","safeGetLogger","core","logger","DiagnosticLogger","identifier","queue","_messageCount","_messageLogged","_getConfigValue","_debugExtMsg","diagLog","consoleLoggingLevel","telemetryLoggingLevel","maxInternalMessageLimit","enableDebugExceptions","throwInternal","severity","CRITICAL","logLevel","messageKey","logInternalMessage","warnToConsole","errorToConsole","resetInternalMessageCount","logMessage","throttleLimitMessage","throttleMessage","strExecutionContextKey","_defaultPerfManager","PerfEvent","payloadDetails","isAsync","theDetails_1","accessorDefined","start","isChildEvt","getCtx","ParentContextKey","ChildrenContextKey","setCtx","complete","childTime","childEvts","childEvt","time","exTime","payload","PerfManager","manager","ctx","src","fire","perfEvent","doPerfActiveKey","doPerf","mgrSource","getSource","details","perfMgr","perfEvt","currentActive","children","ex","TelemetryPluginChain","plugin","defItemCtx","_nextProxy","_hasProcessTelemetry","processTelemetry","_hasSetNext","setNextPlugin","_hasRun","getPlugin","getNext","setNext","nextPlugin","env","itemCtx","hasRun","item","sync","_createProxyChain","plugins","proxies","lastProxy","thePlugin","newProxy","ProcessTelemetryContext","startAt","proxy","add","_copyProxyChain","srcPlugins","_copyPluginChain","getCfg","getExtCfg","defaultValue","theConfig","extConfig","extensionConfig","getConfig","hasNext","processNext","createNew","strExtensionConfig","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_getTelCtx","isInitialized","setInitialized","currentCtx","rootCtx","_baseTelInit","extensions","pluginChain","getProcessTelContext","initialize","priority","initializePlugins","processContext","initPlugins","lastPlugin","sortPlugins","sort","extA","extB","bHasProcess","ChannelControllerPriority","ChannelController","_channelQueue","_addChannelQueue","queueItem","_checkQueuePriority","_base","queues","getChannelControls","channels","extensionQueue_1","_createChannelQueues","__extends","_staticInit","strToGMTString","strToUTCString","strCookie","strExpires","strEnabled","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","strEmpty","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_doc","_cookieCache","_globalCookieConfig","_gblCookieMgr","inst","createCookieMgr","_isMgrEnabled","cookieMgr","isEnabled","safeGetCookieMgr","getCookieMgr","cookieCfg","rootConfig","cookieMgrConfig","cookieMgrCfg","cookieDomain","cookiePath","cookieEnabled","_createCookieMgrConfig","_path","path","_domain","_enabled","enabled","areCookiesSupported","gblManager","setEnabled","maxAgeSec","substring","_extractParts","_isIE","expireMs","expiry","setTime","_formatDate","location_1","protocol","uaDisallowsSameSiteNone","setCookie","_setCookieValue","_formatCookieValue","getCookie","_getCookieValue","del","purge","_a","delCookie","WARNING","thePart","theDate","cookieValue","theCookie","searchLen","valLen","pos","strEndsWith","strNotificationManager","_createPerfManager","notificationMgr","EventsDiscardedReason","NotificationManager","listeners","perfEvtsSendAll","addNotificationListener","removeNotificationListener","index","splice","eventsSent","events","eventsDiscarded","reason","eventsSendRequest","sendReason","AppInsightsCore","_internalLogPoller","_notifyInvalidEvent","telemetryItem","getNotifyMgr","notificationManager","track","getPerfMgr","_validateTelemetryItem","pollInternalLogs","eventName","interval","diagnosticLogInterval","stopPollingInternalLogs","setInterval","iKey","instrumentationKey","baseType","baseData","clearInterval","BaseCore","_eventQueue","_channelController","_notificationManager","_perfManager","_cookieManager","_isInitialized","_extensions","loggingLevelConsole","getDebugListener","enablePerfMgr","allExtensions","__spreadArray","coreExtensions","channelExtensions","extPriorities","ext","extPriority","getTransmissionControls","releaseQueue","thePlugins","setCookieMgr","createPerfMgr","setPerfMgr","eventCnt","event","UInt32Mask","MaxUInt32","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","random","random32","signed","c","getRandomValues","Uint32Array","mwcRandom32","floor","strVisibilityChangeEvt","strPageHide","addEventHandler","callback","w","doc","addEventListeners","excludeEvents","added","excluded_1","addPageUnloadEventListener","addPageHideEventListener","pageUnloadAdded","evt","visibilityState","newId","maxLength","number","chars","charAt","generateW3CId","tmp","hexValues","oct","clockSequenceHi","substr","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","dataSanitizeKeyAndAddUniqueness","map","origLength","dataSanitizeKey","uniqueField","dsPadNumber","nameTrunc","dataSanitizeString","valueTrunc","dataSanitizeUrl","url","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeException","exceptionTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","measurements","tempMeasurements_1","measure","dataSanitizeId","input","_msgId","inputTrunc","DataPointType","DisabledPropertyName","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","strNotSpecified","strIkey","TelemetryItemCreator","envelopeName","customProperties","systemProperties","tags","EventData","ver","Event","aiDataContract","envelopeType","Trace","MetricData","metrics","DataPoint","kind","count","min","stdDev","Measurement","Metric","dataPoint","isNaN","PageViewData","stringToBoolOrDefault","msToTimeSpan","totalms","ms","round","sec","hour","days","getExtensionByName","extension","isCrossOriginError","lineNumber","columnNumber","PageView","durationMs","duration","PageViewPerformance","unused","cs4BaseData","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","PageViewPerfData","StackFrame","ExceptionDetails","hasFullStack","parsedStack","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_stringify","convertToString","_formatMessage","theEvent","errorType","evtMessage","_isStackDetails","_convertStackObj","errorStack","items","_getStackFromErrorObj","errorObj","lines","entry","_getOperaStack","_getErrorType","typeName","exec","_formatErrorCode","StorageType","DistributedTracingModes","Exception","exceptions","_isExceptionInternal","_ExceptionDetails","problemGroup","isManual","CreateAutoException","errorSrc","stackDetails","CreateFromInterface","__assign","toInterface","CreateSimpleException","assembly","fileName","line","formatError","outerId","_isExceptionDetailsInternal","frames","level_1","totalSizeInBytes_1","frame","theFrame","_StackFrame","regex","test","parsedFrame","sizeInBytes","left","right","size","acceptedLeft","acceptedRight","howMany","_parseStack","_formatStackTrace","sourceFrame","level","matches","match","baseSize","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","LocalStorage","storageType","uid","storage","setItem","fail","getItem","removeItem","_getSessionStorageObject","utlCanUseSessionStorage","SessionStorage","utlDisableStorage","utlGetLocalStorage","utlSetLocalStorage","utlRemoveStorage","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","createDomEvent","createEvent","initEvent","RequestHeaders","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","traceStateHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","requestContextHeaderLowerCase","_document","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","createElement","host","urlParseHost","href","urlGetAbsoluteUrl","urlGetCompleteUrl","absoluteUrl","toUpperCase","inclPort","fullHost","urlParseFullHost","port","_internalEndpoints","isInternalApplicationInsightsEndpoint","endpointUrl","CorrelationIdHelper","correlationIdPrefix","canIncludeCorrelationHeader","requestUrl","currentHost","disableCorrelationHeaders","correlationHeaderExcludePatterns","requestHost","enableCorsCorrelation","matchExists_1","includedDomains","correlationHeaderDomains","RegExp","excludedDomains","correlationHeaderExcludedDomains","getCorrelationContext","responseHeader","correlationId","getCorrelationContextValue","keyValues","keyValue","dateTimeUtilsNow","perf","timing","navigationStart","dateTimeUtilsDuration","end","RemoteDependencyData","commandName","success","resultCode","requestAPI","correlationContext","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","parsedUrl","pathname","pathName","AjaxHelperParseDependencyPath","PageViewManager","overridePageViewDuration","pageViewPerformanceManager","_logger","intervalHandle","itemQueue","pageViewPerformanceSent","_flushChannels","q","flush","trackPageView","pageView","title","uri","isPerformanceTimingSupported","sendPageViewInternal","customDuration","cb","pageViewSent","getPerformanceTiming","shouldCollectDuration","processed","isPerformanceTimingDataReady","pageViewPerformance","populatePageViewPerformanceEvent","isValid","sendPageViewPerformanceInternal","allItems","doFlush","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","trackPreviousPageVisit","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","pageVisitTime","prevPageVisitData","stopPageVisitTimer","startPageVisitTimer","currPageVisitData","PageVisitData","currPageVisitDataStr","pageVisitEndTime","pageVisitDataJsonStr","parse","pageVisitStartTime","PageViewPerformanceManager","MAX_DURATION_ALLOWED","navigationTiming","getPerformanceNavigationTiming","total","network","dom","startTime","connectEnd","requestStart","responseStart","responseEnd","loadEventEnd","isPerformanceNavigationTimingSupported","getEntriesByType","domainLookupStart","domLoading","durations","_i","botAgentNames","isGoogleBot","durationProperty","strEvent","_dispatchEvent","evnt","dispatchEvent","ApplicationInsights","_eventTracking","_pageTracking","_properties","autoRoutePVDelay","_prevUri","_currUri","doNotSendItem","telemetryInitializersCount","_telemetryInitializers","telemetryInitializer","trackEvent","EventTelemetry","startTrackEvent","stopTrackEvent","trace","trackMetric","metric","inPv","_pageViewManager","autoTrackPageVisitTime","_pageVisitTimeManager","refUri","referrer","trackPageViewPerformance","_pageViewPerformanceManager","startTrackPage","stopTrackPage","measurement","loc","sendExceptionInternal","theError","exceptionPartB","_onerror","_window","URL","_sendCORSException","errorString","addTelemetryInitializer","defaults","getDefaultConfig","isStorageUseDisabled","configGetters","accountId","sessionRenewalMs","sessionExpirationMs","sampleRate","samplingPercentage","sdkExtension","isBrowserLinkTrackingEnabled","PageName","PageUrl","average","sampleCount","trackPageVisitTime","browserLinkPaths_1","envelope","remoteData","_addDefaultTelemetryInitializers","Timing","pageViewItem","f","_history","_location","disableExceptionTracking","autoExceptionInstrumented","originalOnError_1","onerror","handled","enableUnhandledPromiseRejectionTracking","autoUnhandledPromiseInstrumented","onunhandledrejection_1","originalOnUnhandledRejection_1","_getReason","enableAutoRouteTracking","pushState","replaceState","_self_1","ret","namePrefix","addEventListener","context","telemetryTrace","traceID","traceLocationName","hash","enableDebug","disableFlushOnBeforeUnload","disableFlushOnUnload","Version","_events","BaseSendBuffer","_buffer","_bufferFullMessageSent","_get","_set","buffer","enqueue","eventsLimitInMem","emitLineDelimitedJson","clear","getItems","batchPayloads","ArraySendBuffer","markAsSent","clearSent","SessionStorageSendBuffer","bufferItems","_getBuffer","BUFFER_KEY","notDeliveredItems","SENT_BUFFER_KEY","_removePayloadsFromBuffer","payloads","remaining","prefixedKey","bufferJson","buffer_1","_setBuffer","MAX_BUFFER_SIZE","sentElements","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","applicationVersion","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceId","deviceIp","deviceLanguage","deviceLocale","deviceModel","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOS","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceType","deviceMachineName","deviceVMName","deviceBrowser","deviceBrowserVersion","locationIp","locationCountry","locationProvince","locationCity","operationId","operationName","operationParentId","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionId","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userStoreRegion","userAuthUserId","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalSdkVersion","internalAgentVersion","internalSnippet","internalSdkSrc","_this_1","Extensions","UserExt","DeviceExt","TraceExt","WebExt","AppExt","OSExt","SessionExt","SDKExt","CtxTagKeys","Envelope","Base","Data","AIData","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","iKeyNoDashes","envTags","itmExt","itmTags","extUser","user","authId","localId","extApp","app","sesId","extDevice","device","deviceClass","ip","model","web","browserLang","browserVer","browser","envData","envBaseData","envProps","screenRes","userConsent","extOs","os","extTrace","parentID","tgs","tg","theTags","EnvelopeCreator","_extractPartAExtensions","EnvelopeCreatorInit","EventEnvelopeCreator","customMeasurements","eventData","Serializer","_serializeObject","source","circularReferenceCheck","output","_serializeStringMap","_serializeArray","contract","isRequired","isHidden","isPresent","isObj","sources","expectedType","parseFloat","serialize","OfflineListener","isListening","_onlineStatus","_setOnline","_setOffline","ononline","onoffline","_navigator","onLine","isOnline","isOffline","Offline","HashCodeScoreGenerator","getHashCodeScore","getHashCode","INT_MAX_VALUE","charCodeAt","SamplingScoreGenerator","hashCodeGenerator","keys","getSamplingScore","Sample","samplingRate","samplingScoreGenerator","isSampledIn","_getResponseText","xhr","responseText","EnvelopeTypeCreator","strDuration","currentContextId","bd","pageType","isLoggedIn","pageViewData","exData","baseMetricData","remoteDepData","responseCode","Sender","_consecutiveErrors","_retryAt","_timeoutHandle","_serializer","_stamp_specific_redirects","_fallbackSender","_syncUnloadSender","_paused","_headers","_syncFetchPayload","_senderConfig","maxBatchInterval","maxBatchSizeInBytes","disableTelemetry","enableSessionStorageBuffer","isRetryDisabled","isBeaconApiDisabled","disableXhr","onunloadDisableFetch","onunloadDisableBeacon","convertUndefined","_checkResponsStatus","responseUrl","countOfItemsInPayload","res","_appId","_parseResponse","_checkAndUpdateEndPointUrl","_onError","_isRetriable","_resendPayload","_onPartialSuccess","_onSuccess","_doUnloadSend","_beaconSender","_doBeaconSend","batch","plainTextBatch","Blob","queued","droppedPayload","thePayload","_xhrSender","XMLHttpRequest","endPointUrl","open","setRequestHeader","headerName","onreadystatechange","_xhrReadyStateChange","_formatErrorMessageXhr","send","_fetchKeepAliveSender","payloadSize","_doFetchSender","_fetchSender","requestHeaders","batchLength","init","keepalive","Request","statusText","itemsReceived","itemsAccepted","errors","linearFactor","payload_1","delayInSeconds","SlotDelayInSeconds","backOffSlot","pow","backOffDelay","retryAfterTimeSpan","_setRetryTime","_setupTimer","retryInterval","timerValue","triggerSend","_clearScheduledTimer","_xdrSender","xdr","onload","_xdrOnLoad","_formatErrorMessageXdr","hostingProtocol","lastIndexOf","pause","resume","onunloadFlush","teardown","addHeader","_sender","_sample","disableIKeyValidationFlag","disableInstrumentationKeyValidation","_validateInstrumentationKey","customHeader","header","senderConfig","sendPostFunc","defaultEnvelopeIkey","aiEnvelope_1","constructEnvelope","doNotSendItem_1","callBack","readyState","responseURL","async","forcedSender","sendRequest","_getNotifyMgr","_notifySendRequest","ieVer","failed","retry","errors_1","reverse","extracted","orig","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","acquisitionSpan","renewalSpan","sessionCookiePostfix","_initializeAutomaticSessionWithData","session","sessionData","sessionReset","tokens","acqMs","renewalMs","acquisitionDate","renewalDate","_setCookie","nowMs","acq","renewalPeriodMs","acqTimeLeftMs","cookie","automaticSession","update","isExpired","storageValue","_initializeAutomaticSession","timeSinceAcqMs","timeSinceRenewalMs","getNewId","idLength","_renew","cookieUpdateInterval","backup","guid","renewal","Application","Device","Internal","sdkVersion","_validateUserInput","User","isNewUser","isUserCookieSet","userCookiePostfix","userCookieName","cookieSeparator","_generateNewId","_generateNewCookie","acqStr","accountAcquisitionDate","_setUserCookie","authCookie","authUserCookieName","authCookieString","decodeURI","authenticatedId","setAuthenticatedUserContext","authenticatedUserId","storeInCookie","encodeURI","clearAuthenticatedUserContext","Location","TelemetryTrace","strExt","strTags","_removeEmpty","TelemetryContext","defaultConfig","getSessionId","application","internal","sessionManager","autoSession","applySessionContext","applyOperatingSystemContxt","applyApplicationContext","build","applyDeviceContext","applyInternalContext","agentVersion","snippetVer","sdkSrc","applyLocationContext","applyOperationContext","applyWebContext","applyUserContext","cleanUp","PropertiesPlugin","_breezeChannel","_extensionConfig","theContext","userCtx","_processTelemetryInternal","aiInstrumentHooks","cbNames","strConstructor","_arrLoop","_doCallbacks","hooks","callDetails","cbArgs","hookCtx","hook","cbks","err","orgEx","hookErrorCb","_getOwner","checkPrototype","owner","InstrumentFunc","callbacks","aiHook_1","newFunc","aiHook","orgArgs","funcArgs","_createArgs","theArgs","arg","rslt","theHook","rm","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","strPerf","XHRMonitoringState","openDone","setRequestHeaderDone","sendDone","abortDone","stateChangeAttached","ajaxRecord","spanID","strResponseText","perfMark","completed","requestHeadersSize","responseReceivingDuration","callbackDuration","ajaxTotalDuration","aborted","requestSize","requestSentTime","responseStartedTime","responseFinishedTime","callbackFinishedTime","endTime","xhrMonitoringState","clientFailure","getAbsoluteUrl","getPathName","CreateTrackItem","ajaxType","enableRequestHeaderTracking","getResponse","dependency","ajaxData","perfTiming","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","normalizeJsName","newValue","val","perfAttempts","_populatePerfData","headerMap","responseHeaders","errorStatusText","responseType","Traceparent","traceId","spanId","traceFlag","DEFAULT_TRACE_FLAG","version","DEFAULT_VERSION","isValidTraceId","isValidSpanId","AJAX_MONITOR_PREFIX","strDiagLog","strAjaxData","strThrowInternal","strFetch","_markCount","_getFailedAjaxDiagnosticsMessage","_throwInternalCritical","ajaxMonitorInstance","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","ajaxDiagnosticsMessage","_indexOf","AjaxMonitor","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","strTrackDependencyDataInternal","_fetchInitialized","_xhrInitialized","_currentWindowHost","_config","getEmptyConfig","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_hooks","_disabledUrls","base","_canIncludeHeaders","rlt","ignoreHeaders","_hookProto","InstrumentProto","_isDisabledRequest","isDisabled","theUrl","theRegex","idx2","_isMonitoredXhrInstance","excludeAjaxDataValidation","ajaxValidation","initialized","_getAjaxCorrelationContext","responseHeadersString","getAllResponseHeaders","getResponseHeader","_createMarkId","performance_1","markId","entries","getEntriesByName","_findPerfResourceEntry","initiatorType","trackCallback","reportError","performance","maxAttempts","maxAjaxPerfLookupAttempts","retryDelay","ajaxPerfLookupDelay","attempt","locateResourceTiming","getEntries","entryType","clearMarks","_getFailedFetchDiagnosticsMessage","_reportFetchMetrics","_reportFetchError","failedProps","errorProps","_getFetchCorrelationContext","fetchDiagnosticsMessage","ctx_1","distributedTracingMode","enableAjaxErrorStatusText","enableAjaxPerfTracking","maxAjaxCallsPerView","enableResponseHeaderTracking","excludeRequestFromAutoTrackingPatterns","addRequestContext","AI","AI_AND_W3C","W3C","disableAjaxTracking","strPrototype","theOpen","_supportsAjaxMonitoring","req","_openHandler","_reportXhrError","ajaxResponse","responseHeaderMap_2","parts","shift","_onAjaxComplete","exceptionText","_attachToOnReadyStateChange","hkErr","includeCorrelationHeaders","_global","_supportsFetch","isPolyfill","polyfill","disableFetchTracking","fetchData","_createFetchRecord","newInit","rsp","responseHeaderMap_1","_instrumentFetch","propExt","extIx","trackDependencyData","currentWindowHost","traceparent","emptyConfig","parseConnectionString","connectionString","fields","kv","kvParts","endpointsuffix","locationPrefix","ingestionendpoint","ConfigurationManager","configValue","_internalSdkSrc","_ignoreUpdateSnippetProperties","Initialization","snippet","_snippetVersion","sv","cs","ingest","instrumentationkey","dependencies","DependenciesPlugin","getSKUDefaults","inPvp","channel","loadAppInsights","legacyMode","_updateSnippetProperties","emptyQueue","addHousekeepingBeforeUnload","updateSnippetDefinitions","chkSet","_loop_1","originalArguments","proxyAssign","length_1","appInsightsInstance","performHousekeeping","_sessionManager","excludePageUnloadEvents","disablePageUnloadEvents","product","isReactNative","getSender","cdns","scrpt","currentScript","ReactPlugin","_analyticsPlugin","addHistoryListener","pageViewTelemetry","getAppInsights","listen","locn","getBrowserAndOsInfo","parser","UAParser","browserInfo","getBrowser","osInfo","getOS","browserName","browserVersion","osName","osVersion","platform","browserHistory","createBrowserHistory","basename","reactPlugin","_defineProperty","lineno","colno","reduxState","store","getState","sourceFile","browserOs","msie","msie11","msedge","firefox","msalConfig","auth","clientId","authority","redirectUri","navigateToLoginRequestUrl","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","containsPii","LogLevel","Info","Verbose","Warning","loginRequest","Menus","listMenu","_jsx","Menu","m","Item","onClick","label","Dropdown","overlayClassName","overlay","Button","style","border","padding","backgroundColor","EllipsisOutlined","fontSize","verticalAlign","Alert","showIcon","Result","icon","Spin","documentMode","_jsxs","_Fragment","visible","footer","Modal","maskClosable","closable","destroyOnClose","Layout","InternalLayout","Header","Footer","Content","Sider","_InternalSiderContext","SiderContext","SignOutButton","useMsal","Popconfirm","placement","onConfirm","logoutType","logoutPopup","postLogoutRedirectUri","mainWindowRedirectUri","logoutRedirect","okText","cancelText","okButtonProps","danger","SignInButton","loginType","loginPopup","log","loginRedirect","useSelector","selectPersonId","formPersonId","selectFormPersonId","person","selectPerson","selectCmeFormId","selectForm","Row","fontWeight","color","whiteSpace","overflow","align","gutter","Col","fullName","display","alignItems","StatusTag","ORGS","AntdHeader","AntdLayout","AntdContent","AntdFooter","Logo","SubMenu","selectUser","organisation","alt","LogoWaitemata","Title","_user$firstName","_user$lastName","_ref2$showCmeFormHead","showCmeFormHeader","isAuthenticated","_useSelector","selectGlobal","screenTitle","showHeader","React","height","justify","lineHeight","span","Tooltip","firstName","lastName","Avatar","borderBottom","background","paddingLeft","flex","FormHeader","_ref$minDigits","minDigits","_ref$maxDigits","maxDigits","_ref$currency","currency","_ref$block","block","otherProps","_objectWithoutProperties","_excluded","combinedStyle","displayNumber","Number","toLocaleString","minimumFractionDigits","maximumFractionDigits","dispatch","questionId","_dispatch","_slicedToArray","answerAdded","answerEdited","Radio","onChange","__rest","getOwnPropertySymbols","InternalTimePicker","DatePicker","TimePicker","InternalRangePicker","RangePicker","ref","dropdownClassName","popupClassName","_extends","picker","mode","addon","renderExtraFooter","restProps","internalRenderExtraFooter","_ref$format","format","isNew","_ref$outputFormat","outputFormat","dateValue","moment","renderDateValue","AntdTimePicker","allowClear","showTime","suffixIcon","defaultChecked","lookup","l","code","AntdCheckbox","Group","tree","placeholder","AntdTreeSelect","treeDefaultExpandAll","width","dropdownStyle","maxHeight","treeData","showSearch","filterTreeNode","allowedFileTypes","_useState","useState","_useState2","setVisible","_useState3","_useState4","loading","setLoading","attachments","attachmentDispatch","isFormNew","saveFormDispatch","disabled","_attachmentDispatch","attachmentUpserted","fetchAttachmentById","onPreview","file","saveForm","customRequest","uploaded","fileContent","attachment","getBase64","_","fileType","some","notification","onSuccess","onError","finish","fileList","uploadProps","multiple","_attachment$","_excluded2","handleCancel","handleDelete","isDeleted","beforeUpload","hasError","endsWith","getFileType","includes","Upload","LIST_IGNORE","DeleteOutlined","Space","showUploadList","PlusOutlined","Badge","PaperClipOutlined","onRemove","VALUE_SPLIT","SHOW_PARENT","SHOW_CHILD","toPathKey","toPathKeys","isLeaf","option","fieldNames","_option$isLeaf","_option$fieldNames$ch","scrollIntoParentView","element","parent","parentElement","elementToParent","offsetTop","scrollTop","scrollTo","top","offsetHeight","formatStrategyValues","pathKeys","getKeyPathEntities","showCheckedStrategy","valueSet","Set","keyPathEntities","entity","child","node","toPathOptions","valueCells","stringMode","currentList","valueOptions","_loop","_currentList","_currentList2","_foundOption$fieldNam","valueCell","foundIndex","findIndex","foundOption","useRefFunc","funcRef","current","cacheFn","SEARCH_MARK","defaultFilter","opt","defaultRender","inputValue","prefixCls","Checkbox","_classNames","checked","halfChecked","checkable","CascaderContext","customCheckbox","classNames","FIX_LABEL","Column","activeValue","prevValuePath","onToggleOpen","onSelect","onActive","checkedSet","halfCheckedSet","loadingKeys","isSelectable","menuPrefixCls","menuItemPrefixCls","_React$useContext","changeOnSelect","expandTrigger","expandIcon","loadingIcon","dropdownMenuColumnStyle","hoverOpen","optionInfoList","_option$FIX_LABEL","searchOptions","isMergedLeaf","fullPath","_toConsumableArray","fullPathKey","isLoading","role","triggerOpenPath","nextValueCells","pop","triggerSelect","onDoubleClick","onMouseEnter","onMouseDown","preventDefault","stopPropagation","activeValueCells","setActiveValueCells","onKeyBoardSelect","_useBaseProps","useBaseProps","direction","searchValue","toggleOpen","rtl","_React$useMemo","activeIndex","currentOptions","mergedActiveIndexes","mergedActiveValueCells","nextActiveIndex","activeOptions","_React$useMemo2","validActiveValueCells","lastActiveIndex","lastActiveOptions","internalSetActiveValueCells","prevColumn","nextActiveCells","nextColumn","_lastActiveOptions$la","nextOption","find","onKeyDown","which","KeyCode","UP","DOWN","offset","currentIndex","offsetActiveOption","LEFT","RIGHT","BACKSPACE","ENTER","originOptions","ESC","onKeyUp","RefOptionList","_optionColumns$","_optionColumns$$optio","notFoundContent","containerRef","halfValues","dropdownPrefixCls","loadData","mergedPrefixCls","_React$useState","_React$useState2","setLoadingKeys","loadingKey","optionList","lastOption","_useActive","firstValueCells","useActive","_useActive2","onPathOpen","rawOptions","pathKey","internalLoadData","onPathSelect","valuePath","leaf","fromKeyboard","mergedOptions","optionColumns","activeValueCell","currentOption","subOptions","useKeyboard","selectValueCells","_containerRef$current","cellKeyPath","ele","querySelector","isEmpty","emptyList","columnProps","columnNodes","col","toRawValues","isMultipleValue","Cascader","_props$prefixCls","displayRender","onSearch","popupVisible","popupPlacement","onDropdownVisibleChange","onPopupVisibleChange","_props$expandIcon","_props$dropdownMatchS","dropdownMatchSelectWidth","_props$showCheckedStr","mergedId","useId","_useMergedState","useMergedState","postState","_useMergedState2","rawValues","setRawValues","mergedFieldNames","fillFieldNames","getPathKeyEntities","cacheRef","info","convertDataToEntities","initWrapper","wrapper","pathKeyEntities","processEntity","nodes","useEntities","getValueByKeyPath","_useMergedState3","_useMergedState4","mergedSearchValue","setSearchValue","_useSearchConfig","searchConfig","matchInputWidth","limit","_typeof","useSearchConfig","_useSearchConfig2","mergedShowSearch","_config$filter","_config$render","render","_config$limit","filteredOptions","dig","list","pathOptions","_objectSpread2","connectedPathOptions","useSearchOptions","getMissingValues","missingValues","existsValues","every","useMissingValues","_getMissingValues","_getMissingValues2","existValues","keyPathValues","_conductCheck","conductCheck","checkedKeys","halfCheckedKeys","checkedValues","halfCheckedValues","missingCheckedValues","displayValues","mergedDisplayRender","labels","mergedLabels","reduce","keyedLabel","_valueOptions","_valueOptions$option","_option$fieldNames$la","useDisplayValues","deduplicateKeys","triggerChange","nextValues","nextRawValues","valueOpt","triggerValues","triggerOptions","onInternalSelect","checkedPathKeys","halfCheckedPathKeys","existInChecked","existInMissing","nextCheckedValues","nextMissingValues","nextRawCheckedKeys","deDuplicatedKeys","mergedOpen","mergedDropdownClassName","mergedPlacement","cascaderContext","emptyOptions","minWidth","Provider","BaseSelect","onDisplayValuesChange","searchText","OptionList","nextVisible","getRawInputElement","RcCascader","defaultSearchRender","lower","lowerKeyword","cells","cur","fillCells","cell","originWorld","highlightKeyword","customizePrefixCls","customizeSize","customDisabled","_props$bordered","bordered","transitionName","_props$choiceTransiti","choiceTransitionName","_props$allowClear","getPopupContainer","customStatus","showArrow","rest","omit","_useContext","useContext","ConfigContext","getContextPopupContainer","getPrefixCls","renderEmpty","rootDirection","mergedDirection","isRtl","_useContext2","FormItemInputContext","contextStatus","hasFeedback","isFormItemInput","feedbackIcon","mergedStatus","getMergedStatus","mergedNotFoundContent","defaultRenderEmpty","rootPrefixCls","cascaderPrefixCls","_useCompactItemContex","useCompactItemContext","compactSize","compactItemClassnames","SizeContext","mergedSize","DisabledContext","mergedDisabled","mergedExpandIcon","LeftOutlined","RightOutlined","LoadingOutlined","spin","mergedShowArrow","_getIcons","getIcons","removeIcon","clearIcon","getStatusClassNames","inputIcon","getTransitionName","getTransitionDirection","deserialisedValue","AntdCascader","Option","Select","isSelectOptionOrSelectOptGroup","isSelectOption","isSelectOptGroup","AutoComplete","customizeInput","dataSource","childNodes","toArray","isValidElement","_childNodes","optionChildren","getInputElement","optionValue","ConfigConsumer","SECRET_COMBOBOX_MODE_DO_NOT_USE","RefAutoComplete","row","state","setState","isTouched","setIsTouched","handleDispatch","AntdAutoComplete","onBlur","filterOption","TotalNbv","selectTotalNbv","NumberDisplay","marginRight","TotalCost","selector","makeSelectSumByFormulaId","TotalOngoing","TotalFundingSource","selectTotalFundingSource","TotalFundingDifference","selectTotalFundingDifference","mappedLookup","selectAssetRc","RISK_COLORS","CRITICALITY_DESCRIPTIONS","RISK_DESCRIPTIONS","ColoredSquare","score","justifyContent","Legend","Risk","calculatedScore","SQUARE_WIDTH","textAlign","RiskMatrix","AssetCriticality","selectAssetCriticalityScore","OverallRiskAssetFailure","selectOverallRiskScore","convertedScore","OverallRiskConsequences","selectOverallRiskConsequences","selectMajorAssetCategory","domainCode","majorCategory","selectAnswerById","q3a","assetCategory","selectAssetCategory","major","minor","form","createOnString","createOn","dayjs","disabledDate","AgencyRow","useDispatch","selectAgencyById","agency","contactName","contactNumber","whyHowInvolved","PrintableText","Input","agencyUpserted","wordWrap","overflowWrap","selectAllAgencies","paddingBottom","DATE_FORMAT_STRING","DATE_TIME_FORMAT_STRING","QuestionTableRowDeleteButton","onDelete","position","QuestionTable","question","QuestionTableHeaderRow","questions","QuestionTableBodyRow","QuestionRow","isMandatory","depth","labelColWidth","inputColWidth","rowClassName","displayMode","QuestionComponent","QuestionTableFooterRow","addNewRow","QuestionTableCell","arePropsEqual","prevProps","nextProps","Question","instanceId","textAreaLines","inputType","prefix","suffix","commonProps","filteredLookup","inactive","InputDecider","Text","borderRadius","YesNo","TextArea","rows","RadioGroup","Label","TreeSelect","FileUploader","AssetRc","MajorCategory","MinorCategory","ProjectEndDate","Agencies","defaultFormState","isLocked","defaultAnswer","initialState","getFormulaValueIfExists","expression","formulaId","formulaValue","QuestionChild","isTable","validation","v","totalFundingDifference","standardValue","selectValueByQuestionId","shallowEqual","selectLookupByDomainCode","makeSelectLookupByDomainCode","selectTreeByDomainCode","makeSelectTreeByDomainCode","selectAttachmentById","makeSelectAttachmentsByQuestionId","selectFormId","selectFormState","selectFormulaValueById","makeSelectFormulaByRowId","calculatedValue","visibleFormulaId","selectVisibleFormulaValueById","visibleFormulaValue","calculatedVisibility","selectSession","setErrors","useEffect","acc","validator","answerAddedDispatcher","useCallback","answerUpserted","answerEditedDispatcher","attachmentDispatcher","fetchAttachmentByIdDispatcher","saveFormDispatcher","postForm","QuestionParent","selectChildQuestions","makeSelectChildQuestions","childQuestions","selectRowsByQuestionId","makeSelectRowsByQuestionId","initialisedRows","selectFormStateInitialisedRows","newSequence","selectSequence","sequence","rowAdded","rowInitialised","rowStatusEdited","getPropertyCi","deleteRowAndAnswers","sectionId","selectQuestionsBySectionId","makeSelectQuestionsBySectionId","qf","coord","cq","parentQuestionId","QuestionContainer","SectionParent","section","Section","SectionQuestionContainer","pageId","cols","QuestionList","sections","selectAllVisibleSectionsByCurrentPage","arrayFromSize","selectPageById","SectionContainer","CaretLeftOutlined","AntdIcon","CaretLeftOutlinedSvg","displayName","CaretRightOutlined","CaretRightOutlinedSvg","PrevButton","decrementPage","NextButton","incrementPage","HomeButton","HomeOutlined","CustomButton","currentValue","_ref$defaultOptions","defaultOptions","_ref$options","_ref$placeholder","setData","valueKey","includeLabel","selectOptions","defaultActiveFirstOption","query","_data","setEmail","_useState5","_useState6","outProp","_data$find","_returnUser$outProp","returnUser","Id","marginTop","SMALL","maxWidth","MEDIUM","LARGE","XLARGE","footerDescription","_ref$size","_ref$style","sizeStyle","getSize","dangerouslySetInnerHTML","createMarkup","_ref2$rowClassName","_ref3$isMandatory","_ref3$inputColWidth","_ref3$labelColWidth","_ref3$depth","QuestionLabelCol","isHeading","QuestionInputCol","_ref4$className","titleMarkup","Heading","marginBottom","_excluded3","SaveOutlined","SaveOutlinedSvg","ArrowLeftOutlined","ArrowLeftOutlinedSvg","ArrowRightOutlined","ArrowRightOutlinedSvg","BreadcrumbItem","_props$separator","separator","menu","dropdownProps","link","breadcrumbItem","mergeDropDownProps","DownOutlined","renderBreadcrumbNode","__ANT_BREADCRUMB_ITEM","BreadcrumbSeparator","__ANT_BREADCRUMB_SEPARATOR","defaultItemRender","route","routes","paths","isLastItem","breadcrumbName","paramsKeys","replacement","getBreadcrumbName","getPath","addChildPath","childPath","originalPaths","Breadcrumb","crumbs","_a$separator","_a$itemRender","itemRender","_a$params","itemProps","cloneElement","breadcrumbClassName","Separator","inlineStyle","TransButton","noStyle","mergedStyle","pointerEvents","tabIndex","keyCode","renderTitle","avatar","subTitle","extra","onBack","headingPrefixCls","hasHeading","backIcon","getBackIcon","backIconDom","LocaleReceiver","componentName","contextLocale","back","renderBack","hasTitle","compact","updateCompact","onResize","pageHeader","breadcrumb","breadcrumbRender","customizeClassName","ghost","defaultBreadcrumbDom","renderBreadcrumb","isBreadcrumbComponent","breadcrumbRenderDomFromProps","breadcrumbDom","ResizeObserver","renderChildren","renderFooter","ExpandAltOutlined","ExpandAltOutlinedSvg","ShrinkOutlined","ShrinkOutlinedSvg","save","setOverrideApprovalMode","isApprovalMode","isDraft","showComment","setShowComment","selectQnaIsLocked","createByUser","canLock","selectIsAppAdmin","PageHeader","hidden","lockToggled","LockOutlined","UnlockOutlined","isSilentSave","Comment","onOk","comments","postWorkflowHistoryThunk","category","initialValues","onCancel","CopyOutlined","CopyOutlinedSvg","EnterOutlined","EnterOutlinedSvg","ariaLabel","_ref$autoSize","autoSize","onSave","onEnd","component","_ref$enterIcon","enterIcon","inComposition","lastKeyCode","setCurrent","resizableTextArea","textArea","focus","setSelectionRange","confirmChange","trim","textClassName","textAreaClassName","ctrlKey","altKey","metaKey","shiftKey","onCompositionStart","onCompositionEnd","useMergedConfig","propConfig","templateConfig","support","conditions","mountRef","_a$component","Component","setContentRef","typographyDirection","contextDirection","mergedRef","composeRef","componentClassName","cuttable","sliceNodes","nodeList","currLen","currentNodeList","nextLen","restLen","enabledMeasure","onEllipsis","_React$useState2$","startLen","midLen","endLen","setCutLength","_React$useState3","_React$useState4","walkingState","setWalkingState","_React$useState5","_React$useState6","singleRowHeight","setSingleRowHeight","singleRowRef","midRowRef","totalLen","getNodesLen","mergedChildren","useIsomorphicLayoutEffect","ceil","_b","_midHeight","nextStartLen","nextEndLen","nextMidLen","measureStyle","margin","renderMeasure","content","zIndex","visibility","wordBreak","sliceNodeList","renderMeasureSlice","enabledEllipsis","isEllipsis","tooltipProps","getNode","defaultNode","needDom","toList","_c","ellipsis","editable","copyable","textLocale","useLocaleReceiver","typographyRef","editIconRef","textProps","_useMergedConfig","_useMergedConfig2","enableEdit","editConfig","editing","setEditing","_editConfig$triggerTy","triggerType","triggerEdit","edit","onStart","useUpdatedEffect","onEditClick","_useMergedConfig3","_useMergedConfig4","enableCopy","copyConfig","copied","setCopied","copyIdRef","copyOptions","cleanCopyId","onCopyClick","copy","onCopy","isLineClampSupport","setIsLineClampSupport","isTextOverflowSupport","setIsTextOverflowSupport","_React$useState7","_React$useState8","expanded","setExpanded","_React$useState9","_React$useState10","isJsEllipsis","setIsJsEllipsis","_React$useState11","_React$useState12","isNativeEllipsis","setIsNativeEllipsis","_React$useState13","_React$useState14","isNativeVisible","setIsNativeVisible","_useMergedConfig5","expandable","_useMergedConfig6","enableEllipsis","ellipsisConfig","mergedEnableEllipsis","_ellipsisConfig$rows","needMeasureEllipsis","isStyleSupport","cssEllipsis","isMergedEllipsis","cssTextOverflow","cssLineClamp","onExpandClick","onExpand","_React$useState15","_React$useState16","ellipsisWidth","setEllipsisWidth","_React$useState17","_React$useState18","ellipsisFontSize","setEllipsisFontSize","onJsEllipsis","jsEllipsis","textEle","currentEllipsis","scrollHeight","offsetWidth","scrollWidth","IntersectionObserver","observer","offsetParent","observe","disconnect","tooltip","topAriaLabel","Editable","renderExpand","expandContent","symbol","expand","renderEdit","editTitle","EditOutlined","renderCopy","tooltips","tooltipNodes","iconNodes","copyTitle","systemStr","CheckOutlined","getComputedStyle","resizeRef","EllipsisTooltip","Typography","WebkitLineClamp","Ellipsis","needEllipsis","renderNode","wrappedContext","underline","strong","keyboard","italic","currentContent","needed","tag","wrapperDecorations","renderExpanded","renderEllipsis","rel","mergedProps","navigate","mergedEllipsis","TITLE_ELE_LIST","tupleNum","_props$level","OriginTypography","Link","Paragraph","checkAnswerExistsForQuestion","answers","_answers$find","workflows","selectAllWorkflows","capitalAccoutant","_w$roleId","financeLead","_w$roleId2","validationMessage","selectAllAnswers","mentalHealthRcs","selectMentalHealthRcs","facilityRcs","selectFacilityRcs","totalCost","isProject","_selectFormulaById","selectFormulaById","isItDevice","_selectFormulaById2","rc","Approval","templateCode","enableReset","enableAdd","DEFAULT_KEYMEMBERS","limitTo","mandatory","noLimit","isBp","numericParser","currencyFormatter","getFormattedNumber","KeyMemberRow","bps","selectKeyMemberById","labelInValue","keyMemberUpserted","bp","PersonSearch","InputNumber","formatter","controls","addonBefore","keyMemberRemoved","selectAllKeyMembers","formStatus","selectFormStatus","setBps","isMounted","trimmed","sortedData","fetchApprovers","unwrap","jobTitle","keyMembersReceived","downloadFile","rowStyle","colStyle","paddingRight","selectApprovalSummary","projectCode","projectShortName","projectLongName","division","startDate","endDate","FPIMSetupType","projectBudget","fundedFrom","keyMembers","projectOutline","riskAddressed","alternatives","contactPerson","deliveryAddress","opex","Descriptions","column","labelStyle","contentStyle","fontStyle","itemDescription","quantity","unitPrice","wipAccount","lifeYears","accum","costType","years","amountPerYear","totalOngoingCost","colstyle","wtProjectCode","amount","k","ApprovalSummary","CapexApproval","Renderer","handlePrint","handlePrintPreview","selectIsLoading","overrideApprovalMode","_useSelector2","appType","homePath","showFormHeader","showFooter","detailedValidation","selectFormError","destroy","warning","onClose","sessionEdited","errorEdited","useNotification","_useNavigation","_pages","_pages2","pages","selectAllPages","currentPageId","selectCurrentPageId","currentPageIndex","currentPage","prevPageId","nextPageId","isPageValid","selectIsPageValid","useNavigation","_useNavigation2","prevButtonVisible","nextButtonVisible","useRef","showSteps","PageRender","SummaryRenderer","Page","KeyMembers","CapexFormHeader","RocFormHeader","tip","spinning","ResultModal","Steps","bottom","ConfidentialityStatement","validate","useHistory","workflowStatus","selectWorkflowStatus","resultModalProps","workflowStatusEdited","ExclamationOutlined","ExclamationOutlinedSvg","LockFilled","LockFilledSvg","CustomTag","Tag","ClockCircleOutlined","CalendarOutlined","CloseOutlined","Step","_React$Component","_len","_args","_key","_this$props","onStepClick","stepIndex","iconNode","_this$props2","progressDot","stepIcon","stepNumber","iconPrefix","icons","iconClassName","iconDot","_classNames2","_this$props3","active","_this$props3$status","wrapperStyle","tailContent","classString","stepItemStyle","accessibilityProps","renderIconNode","_this2","_this$props2$style","labelPlacement","initial","_this$props2$items","isNav","adjustedLabelPlacement","mergedItem","percent","_props$responsive","responsive","_props$current","xs","useBreakpoint","rtlDirection","getDirection","mergedItems","useLegacyItems","stepsClassName","RcSteps","progressWidth","Progress","strokeWidth","Grid","verticalStyle","horizontalStyle","_ref$responsive","screens","md","AntdSteps","AntdDatePicker","AntdSelect","valueField","showCode","conditionalValue","_option$children","tagRender","wordCount","handleKeyDown","AntdTextArea","minRows","ignoreOrg","setIgnoreOrg","fetchRoles","roles","selectAllRoles","roleName","types","_last$user$fullName","_last$user","_last$role","sequences","last","_t$user$fullName","_t$user","_t$role","COMMENT_LABELS","required","Form","rules","Promise","resolve","reject","validateTrigger","valuePropName","_Form$useForm","useForm","setUserId","changeUserId","setChangeUserId","_useState7","_useState8","setRoleId","_useState9","_useState10","setSequence","_useState11","_useState12","workflowType","setWorkflowType","selectWorkflowTypes","org","selectUserOrganisation","validateFields","resetFields","layout","preserve","trigger","ApproverSearch","RoleSelector","TypeSelector","SequenceSelector","utc","WhContainer","selectAllWorkflowHistoryIds","WhRow","selectWorkflowHistoryById","getTimezone","local","CommentOutlined","HistoryOutlined","HistoryOutlinedSvg","ReloadOutlined","ReloadOutlinedSvg","SendOutlined","SendOutlinedSvg","ApprovalButton","CheckCircleOutlined","DeclineButton","CloseCircleOutlined","QueryButton","DelegateButton","RespondButton","QuestionCircleOutlined","RightCircleOutlined","ActionButtons","workflow","onEdit","isCmeAdmin","useSecurity","isCme","EllipsisDropdownMenu","approvalRowStyle","Workflow","wfIsActive","isActive","isComplete","delegateUsers","completingUser","modifyOn","selectCommentByWorkflowId","borderTop","borderLeft","borderRight","WorkflowPerson","paddingTop","_delegateUsers$filter","replacingUser","du","otherDelegateUsers","workflowUser","replacedFullName","u","_u$user","_u$user2","ApproverDetailPopover","Popover","UserDisplayWithBadge","ReplacingUserText","OnBehalfUserText","textDecoration","WorkflowTypeContainer","initialApprovalState","isApproval","approvalType","approvalDispatch","_activeWorkflowQuery$","_ref$isValid","drawerVisible","setDrawerVisible","formOwner","selectFormOwner","selectDelegateUsers","selectFormDefinition","isSysAdmin","selectIsSysAdmin","approvalState","setApprovalState","activeWorkflow","activeWorkflowQuery","selectActiveWorkflowQuery","isRespondEnabled","isSubmitEnabled","isApprovalEnabled","isWorkflowEmpty","lastSubmitWorkflowHistory","selectLastSubmit","workflowError","selectWorkflowsError","workflowErrorEdited","fetchFromTemplate","onRestart","deleteWorkflowsByFormId","deleteAction","Drawer","drawerStyle","WorkflowHistory","submit","respond","approve","decline","delegate","validatePerson","createAsyncThunk","employeeId","validationErrorsEdited","fetchPersonById","rejectWithValue","fetchTeamUserRoles","_selectGlobal","fetchUserRoles","_selectGlobal2","postPerson","_selectGlobal3","fetchTree","_selectGlobal4","_selectGlobal5","postTeamMembership","isDefault","_selectGlobal6","fetchUserDelegates","myDelegateUsers","usersDelegatedForMe","postUserDelegate","thisPersonId","delegatedForUser","ccEmail","_ref23$isInactive","isInactive","adminSlice","createSlice","userRoles","userDelegates","teamUserRoles","teams","leaveApplications","validationErrors","reducers","personEdited","userRolesReceived","teamEdited","team","teamUserRolesReceived","statusEdited","extraReducers","_extraReducers","RESET_ADMIN","pending","fulfilled","rejected","sortedTeams","sortedRoles","sortedUserRoles","sorted","_adminSlice$actions","actions","selectAdminPerson","capex","admin","selectAdminUserRoles","selectAdminUserDelegates","selectAdminTeamUserRoles","selectAdminTree","selectAdminRoles","selectAdminStatus","selectAdminValidationErrors","selectAdminError","assetAccount","expenseAccount","depreciation","prorate","assetCategorySlice","rcsReceived","createSelector","fetchRcs","stateKey","viewOption","assetRcSlice","rcs","_action$payload","sortedRcs","assetRc","fetchDivisions","lookups","lookupsUpserted","divisionSlice","QUESTIONS","descripton","staticType","Value","SECTIONS","PAGES","FORMULAS","DEPENDENCIES","formulas","dispatchCapexForm","formDefinitionEdited","originId","ownerId","isLive","createBy","modifyBy","authoriseData","questionsReceived","pagesReceived","lookupsReceived","LOOKUPS","sectionsReceived","formulasReceived","dependencyReceived","globalEdited","orgRootId","SERVICES","keyMembersAdapter","createEntityAdapter","getInitialState","keyMembersSlice","upsertOne","removeOne","setAll","_keyMembersSlice$acti","_keyMembersAdapter$ge","getSelectors","selectAll","selectById","roleSlice","USER","APPROVER","ADMIN","SYSADMIN","redirect","isCmeUser","selectIsCmeUser","isCmeApprover","selectIsApprover","isCmeSysAdmin","defaultHomePath","homePathEdited","appContextEdited","fetchMigrationPendingWorkflows","fetchPayrollForms","validateCpeEnrolment","cpe","_$orderBy","fte","specialPlanYears","pcpe","maxStartDate","selectAdminCpeEnrolment","validationErrorsCpeEdited","payrollGroup","CME_CONFIG","Admin","RequireUserId","EnablePayrollGroup","postTeam","fetchMigrate","fetchCpeEnrolment","CME_APP_ID","postCpe","nzd","leave","fetchBalanceByPersonId","postDeleteCpeById","dollarsId","leaveId","fetchTeams","fetchTreeById","_ref38$allowAllSelect","_ref38$hideChildren","fetchTreeParentsOnly","_ref46","fetchLeaveApplications","periodEnding","postProcessLeaveRequest","_ref58$isInactive","cpeEnrolment","validationErrorsCpe","treeParentsOnly","editTree","payrollForms","migrationPendingWorkflows","cpeEnrolmentReceived","cme","selectAdminTeams","selectAdminLeaveApplications","selectAdminValidationErrorsCpe","selectAdminCpeData","today","startDates","_dollars$personId","_dollars$type","_dollars$isManualEnro","_dollars$isAlternateE","_dollars$specialPlanY","_dollars$qualifyingFT","_dollars$startDate","_dollars$endDate","_dollars$isTerminatio","_dollars$startDate2","_dollars$endDate2","_dollars$isTerminatio2","_dollars$type2","_dollars$isAlternateE2","_dollars$qualifyingFT2","_dollars$qualifyingFT3","dollars","unit","leaveUnit","isManualEnrolment","isAlternateEmploy","qualifyingFTE","entitlementAmount","entitlementAmountLeave","calculatedAmount","calculatedEntitlementAmount","calculatedAmountLeave","personCPEEnrolmentId","isTermination","proratedFte","selectAdminActiveCpeData","selectAdminTreeParentsOnly","selectAdminEditTree","selectPayrollForms","selectMigrationPendingWorkflows","attachmentReceived","attachmentAdapter","selectId","attachmentSlice","RESET_CME","_attachmentSlice$acti","_attachmentAdapter$ge","_state$cme","selectAllAttachment","createSelectAttachmentByRequestId","selectIds","requestId","lineId","balanceReceived","fetchOpenCommitmentByPersonId","openCommitmentReceived","getFinancialEndDate","year","WAITEMATA","month","fetchTrans","_periodDate","transReceived","balance","trans","openCommitment","balanceSlice","tranAdded","_balanceSlice$actions","selectBalances","selectBalanceType","_b$","selectBalanceDollar","_b$find","closeBalance","selectBalanceHours","_b$find2","selectBalanceDays","_b$find3","selectTrans","selectOpenCommitment","selectOpenDollar","o","selectOpenLeave","REQUEST_FORM_DEFINITION_ID","CPE_FORM_DEFINITION_ID","CPD_COURSE_CLAIM_FORM_DEFINITION_ID","WDHB","ItClaimLimitWithoutPreapproval","ItClaimLineLimit","ClinicalEquipmentEnabled","ApprovalBeforeCmoLimit","WreEnabled","WorkflowEnableAdd","CpdEnabled","CmeSupportEmail","DisableCmeXMonthsBeforeEndDate","AllowCancellingRequests","FinanceApproverIfOverLimit","Northland","defaultDateString","defaultDate","getCpdCourseForm","uuidv4","businessUnitId","companyId","courseName","courseDetails","courseLocation","leaveComments","courseIsOverseas","courseCountryLookupId","submitIsSupportingDocumentsAttached","submitIsNZDGST","isPersonConsentGiven","getCpeForm","validateCpeForm","_selectCpeFormData","isAnnualLeave","annualLeaveDates","selectCpeFormData","validationErrorListEdited","validationErrorList","cpeFormSlice","cpeFormReceived","cpeFormEdited","_cpeFormSlice$actions","cpeForm","selectCpeFormLeaveComments","selectCpeFormValidationErrorList","fetchLeaveReport","leaveReportReceived","fetchFormApproval","formApprovalReceived","postIsRostered","formApprovalSlice","leaveReportData","_formApprovalSlice$ac","selectFormApproval","formApproval","selectLeaveReport","selectFormApprovalWaitingOn","record","workflowWaitingOn","selectFormApprovalFrom","personName","selectFormApprovalStatus","formTeamSlice","formTeamEdited","formTeam","selectFormTeamId","selectDefaultFormTeam","selectCmeUserTeam","_teams$","defaultTeam","selectForUserDefaultFormTeam","selectCmeForUserTeam","_teams$2","selectFormTeam","defaultFormTeam","forUserDefaultFormTeam","adminPerson","dateFormat","LeaveContainer","leaveLines","selectCategoryLookup","categoryLookup","filteredCategoryLookup","dispatchProp","leaveLineAdded","leaveLineEdited","unitType","LeaveDateRowHeading","LeaveDateRow","HelpTooltip","leaveDate","numberOfUnits","disp","deleteLeave","leaveLineDeleted","LeaveLineDeleteModal","LeaveDateDisplay","LeaveSummaryContainer","cmeTravel","other","al","nonAl","dateRange","setDateRange","isModalVisible","setIsModalVisible","selectLeaveLinesStatus","selectAllLeaveLines","isDateRangeFilledOut","onDateRangeChange","dates","getNewLeaveLines","toDate","subtract","selectIsCmeLocked","selectLeaveError","maxDate","newLeaveDate","setNewLeaveDate","modalFooter","modalContent","leaveCommentsCpe","leaveCommentsReq","selectRequestFormLeaveComments","onLeaveCommentEdited","requestFormEdited","InputModal","deleteLeaveLines","validateAllLeaveLines","validateLeaveLines","leaveErrorEdited","maxUnit","getMaxLeaveUnitsByType","fetchLeaveLinesByFormId","leaveLinesReceived","leaveLinesRemoved","dateDiff","diff","counter","LEAVE_LINE_TEMPLATE","leaveLinesAdapter","leaveLine","shiftLookupId","leaveLineSlice","removeAll","addMany","_action$payload2","addOne","_leaveLineSlice$actio","_leaveLinesAdapter$ge","selectLeaveAmount","CME","selectLeaveUnitType","fetchMyLeaveHistory","myLeaveHistoryReceived","fetchMyHistory","myHistoryReceived","postFormStatus","myHistorySlice","leaveData","_myHistorySlice$actio","selectMyHistory","myHistory","selectMyLeaveHistory","selectMyHistoryStatus","selectMyHistoryError","selectOpenFormsCount","mh","requestLines","childrenRequestLines","fetchParentFormById","parentFormReceived","fetchChildrenRequestLinesByParentFormId","childrenRequestLinesReceived","parentFormSlice","_parentFormSlice$acti","selectParentFormId","parentForm","selectParentFormData","selectParentFormTypeId","selectParentRequestLines","selectAllChildrenRequestLines","selectParentRequestAmount","emolumentAmount","grossAmount","netAmount","selectParentOtherClaimAmount","personSlice","permission","getRequestForm","requestFormId","confirmationStep1","supplementaryData","validateRequestForm","_selectRequestFormDat","hasCourseRequest","leaveFormId","isLeaveSectionMandatory","isCourseClaim","selectRequestFormData","requestFormSlice","requestFormReceived","hasCourseRequestEdited","leaveFormSelected","stateEdited","_requestFormSlice$act","requestForm","selectRequestFormId","_state$form","_state$form$definitio","definition","isCpdCourseClaim","selectRequestFormStatus","selectRequestFormSupplementaryDataActiveCpe","getActiveCpeFromSupplementaryData","selectRequestFormTypeId","selectRequestFormValidationErrorList","activeCpe","fetchRequestLinesByFormId","requestLinesReceived","validateAllRequestLines","requestData","cpeData","attachmentCount","isClaim","selectAllRequestLines","validateRequestLine","requestLineUpserted","requestLinesAdapter","requestLine","CATEGORY_LOOKUP","excludeOrgs","isItCategory","_CATEGORY_LOOKUP$find","invoiceNumber","gstAmount","Intl","NumberFormat","REQUEST_LINE_TEMPLATE","requestDate","smartAmount","cmeDeductionAmount","isGst","prorateFactor","fbtRate","adjustmentAmount","checkAndFetchPrevClaim","oldState","newRequest","prevLine","isPrevClaimSearched","calculateGstAmount","isFx","calculateGrossAmount","requestLineEdited","_getState","isIt","fxRate","foreignAmount","newReq","entities","calculateEmolument","requestLineSlice","requestLineDeleted","requestLineAdded","_requestLineSlice$act","_requestLinesAdapter$","selectRequestLineIds","selectRequestLineById","selectRequestLineStatus","selectRequestClaimAmount","selectMaxRequestClaimGrossAmount","selectRequestClaimGrossAmount","selectRequestClaimEmolumentAmount","selectDefaultRequestLines","getDefaultRequestLines","ROC_CONFIDENTIALITY_STATEMENT","agenciesAdapter","agenciesSlice","agencyRemoved","agenciesReceived","_agenciesSlice$action","_agenciesAdapter$getS","roc","agencies","useLocation","localStorage","ErrorBoundary","errorInfo","componentStack","g","cancel","T","y","A","I","E","messagesCallback","bc","BroadcastChannel","onmessage","close","onMessage","postMessage","canBeUsed","averageResponseTime","microSeconds","L","ttl","timeMap","_removeTooOldValues","Symbol","iterator","delete","O","D","S","removeTimeout","channelName","uuid","eMIs","M","messagesCallbackTime","removeEventListener","P","C","x","R","B","closed","_isListening","_onMessageListener","_addEventListeners","_unSendMessagePromises","_beforeClose","_preparePromises","_state","N","U","Y","all","X","F","_channel","_options","isLeader","isDead","_isApplying","_reApply","_unloadFns","_listeners","_intervals","_duplicateListeners","_duplicateCalled","_onBeforeDie","die","V","responseTime","applyOnce","_awaitLeadershipPromise","fallbackInterval","onBeforeDie","postInternal","J","emitOnAllTabs","reset","_leaderElector","awaitLeadership","onIdle","onDuplicate","idle","isAllIdle","setAllIdle","G","sham","Proxy","valueOf","z","oldDate","lastActive","lastIdle","idleTime","pageX","pageY","tId","eventsBound","callbackRefs","debounce","throttle","_onAction","onAction","eventsThrottle","handleEvent","_handleEvent","startOnMount","startManually","_toggleIdleState","isIdle","getRemainingTime","getElapsedTime","getLastActiveTime","getLastIdleTime","getTotalIdleTime","getTotalActiveTime","_setupTabManager","_bindEvents","_unbindEvents","crossTab","assign","passive","capture","stopOnIdle","W","H","K","Q","Z","$","ee","te","ne","re","ie","se","ce","ue","ae","de","pe","oe","le","me","be","Te","_e","ye","propTypes","defaultProps","IdleTimer","setRemaining","useIdleTimer","LeaveClaimContainer","screenTitleEdited","Leave","_useParams","useParams","loadingEdited","fetchFormDefinitionById","fetchFormDefinition","fetchTreeByDomain","fetchAll","fetchCmeFormById","setup","onSubmit","postRequestFormComplete","adminError","formError","formErrorEdited","adminStatus","GlobalLoading","ready","setReady","securityStatus","selectSecurityStatus","selectSecurityError","fetchCommon","fetchWorkflowsByFormId","fetchWorkflowHistoryByFormId","fetchForm","fetchFormById","fetchAttachmentsByFormId","idGenerated","IeCheck","CmeWrapper","FormApproval","FormRedirector","CapexDashboard","Dashboard","MyHistory","ManageForms","Cme","Balance","Unauthenticated","UnauthenticatedCapex","CapexAdmin","Payroll","PayrollDashboard","Coordinator","CapexWrapper","PayrollFormJumper","RocWrapper","RoC","hasToken","selectAuthToken","login","HashRouter","Suspense","fallback","Switch","Route","CapexQna","LeaveClaim","GenericUnauthenticated","AuthenticatedTemplate","Router","UnauthenticatedTemplate","SignedOut","SignIn","hostname","ProtocolMode","MathUtils","decimalToHex","hex","GuidGenerator","cryptoObj","generateGuid","Uint8Array","guidHolder","guidResponse","isGuid","BrowserStringUtils","stringToUtf8Arr","sDOMStr","nChr","nArrLen","nStrLen","nMapIdx","aBytes","nIdx","nChrIdx","stringToArrayBuffer","dataString","ArrayBuffer","dataView","utf8ArrToString","sView","nPart","nLen","fromCharCode","Base64Encode","urlEncode","encodeURIComponent","encode","urlEncodeArr","inputArr","base64EncArr","inputUtf8Arr","eqLen","sB64Enc","nMod3","nUint24","uint6ToB64","nUint6","Base64Decode","decode","encodedString","base64DecToArr","base64String","nBlockSize","nInLen","nOutLen","nMod4","nOutIdx","nInIdx","b64ToUint6","charNum","BrowserAuthErrorMessage","desc","BrowserAuthError","errorCode","createPkceNotGeneratedError","errDetail","createCryptoNotAvailableError","createHttpMethodNotImplementedError","createEmptyNavigationUriError","createEmptyHashError","hashValue","createHashDoesNotContainStateError","createHashDoesNotContainKnownPropertiesError","createUnableToParseStateError","createStateInteractionTypeMismatchError","createInteractionInProgressError","createPopupWindowError","StringUtils","createEmptyWindowCreatedError","createUserCancelledError","createMonitorPopupTimeoutError","createMonitorIframeTimeoutError","createRedirectInIframeError","windowParentCheck","createBlockReloadInHiddenIframeError","createBlockAcquireTokenInPopupsError","createIframeClosedPrematurelyError","createSilentSSOInsufficientInfoError","createNoAccountError","createSilentPromptValueError","givenPrompt","createUnableToParseTokenRequestCacheError","createNoTokenRequestCacheError","createAuthRequestNotSetError","createNoCachedAuthorityError","createInvalidCacheTypeError","createNonBrowserEnvironmentError","createDatabaseNotOpenError","createNoNetworkConnectivityError","createPostRequestFailedError","errorDesc","endpoint","createGetRequestFailedError","createFailedToParseNetworkResponseError","AuthError","PkceGenerator","base64Encode","generateCodes","codeVerifier","generateCodeVerifier","generateCodeChallengeFromVerifier","codeChallenge","verifier","challenge","pkceCodeVerifier","sha256Digest","pkceHashedCodeVerifier","e_1","S256_HASH_ALG","PUBLIC_EXPONENT","BrowserCrypto","hasCryptoAPI","_keygenAlgorithmOptions","modulusLength","publicExponent","hasIECrypto","getMSCryptoDigest","getSubtleCryptoDigest","dataBuffer","crypto","generateKeyPair","extractable","usages","msCryptoGenerateKey","subtle","generateKey","exportJwk","msCryptoExportJwk","exportKey","KEY_FORMAT_JWK","importJwk","keyString","getJwkString","keyBuffer","msCryptoImportKey","importKey","sign","msCryptoSign","hasBrowserCrypto","algorithm","digest","digestOperation","msGenerateKey","msExportKey","resultBuffer","resultString","msImportKey","msSign","jwk","DatabaseStorage","dbName","tableName","dbOpen","openDB","indexedDB","createObjectStore","db","dbGet","transaction","objectStore","put","dbPut","CryptoOps","browserCrypto","b64Encode","b64Decode","guidGenerator","pkceGenerator","DB_NAME","TABLE_NAME","DB_VERSION","createNewGuid","base64Decode","generatePkceCodes","getPublicKeyThumbprint","EXTRACTABLE","POP_KEY_USAGES","keyPair","publicKey","publicKeyJwk","pubKeyThumprintObj","kty","publicJwkString","publicJwkBuffer","publicJwkHash","privateKey","privateKeyJwk","unextractablePrivateKey","requestMethod","resourceRequestMethod","requestUri","resourceRequestUri","signJwt","kid","cachedKeyPair","publicKeyJwkString","alg","encodedHeader","cnf","encodedPayload","tokenString","tokenBuffer","signatureBuffer","encodedSignature","DEFAULT_CRYPTO_IMPLEMENTATION","createUnexpectedError","ClientConfigurationErrorMessage","ClientConfigurationError","createRedirectUriEmptyError","createPostLogoutRedirectUriEmptyError","createClaimsRequestParsingError","claimsRequestParseError","createInsecureAuthorityUriError","urlString","createUrlParseError","urlParseError","createUrlEmptyError","createEmptyScopesArrayError","createClientIdSingleScopeError","inputScopes","createInvalidPromptError","promptValue","createInvalidClaimsRequestError","createEmptyLogoutRequestError","createEmptyTokenRequestError","createInvalidCodeChallengeMethodError","createInvalidCodeChallengeParamsError","createInvalidCloudDiscoveryMetadataError","createInvalidAuthorityMetadataError","createUntrustedAuthorityError","ClientAuthError","UrlString","_urlString","getHash","canonicalizeUri","defineProperty","lowerCaseUrl","validateAsUri","components","getUrlComponents","HostNameAndPort","PathSegments","Protocol","urlRemoveQueryStringParameter","appendQueryString","queryString","removeHashFromUrl","replaceTenantPath","tenantId","urlObject","pathArray","AADAuthorityConstants","COMMON","ORGANIZATIONS","constructAuthorityUriFromObject","parseHash","regEx","urlComponents","AbsolutePath","QueryString","pathSegments","getDomainFromUrl","relativeUrl","baseUrl","Constants","FORWARD_SLASH","baseComponents","hashString","hashIndex1","hashIndex2","getDeserializedHash","parsedHash","deserializedHash","queryStringToObject","createHashNotDeserializedError","hashContainsKnownProperties","parameters","error_description","ServerError","subError","ThrottlingUtils","generateThrottlingStorageKey","thumbprint","ThrottlingConstants","THROTTLING_PREFIX","preProcess","cacheManager","getThrottlingCache","throttleTime","CacheSchemaType","THROTTLING","errorCodes","EMPTY_STRING","postProcess","checkResponseStatus","checkResponseForRetryAfter","thumbprintValue","calculateThrottleTime","HeaderNames","RETRY_AFTER","error_codes","suberror","setThrottlingCache","currentSeconds","DEFAULT_THROTTLE_TIME_SECONDS","DEFAULT_MAX_THROTTLE_TIME_SECONDS","removeThrottle","homeAccountIdentifier","InteractionRequiredAuthErrorMessage","InteractionRequiredAuthSubErrorMessage","InteractionRequiredAuthError","isInteractionRequiredError","isInteractionRequiredErrorCode","isInteractionRequiredSubError","isInteractionRequiredErrorDesc","irErrorCode","isOpenIdConfigResponse","TimeUtils","nowSeconds","isTokenExpired","expiresOn","expirationSec","wasClockTurnedBack","cachedAt","delay","AuthorityMetadataEntity","expiresAt","AUTHORITY_METADATA_CONSTANTS","REFRESH_TIME_SECONDS","updateCloudDiscoveryMetadata","metadata","fromNetwork","aliases","preferred_cache","preferred_network","aliasesFromNetwork","updateEndpointMetadata","authorization_endpoint","token_endpoint","end_session_endpoint","issuer","endpointsFromNetwork","updateCanonicalAuthority","canonical_authority","resetExpiresAt","isAuthorityMetadataEntity","CACHE_KEY","RegionDiscovery","networkInterface","detectRegion","environmentRegion","regionDiscoveryMetadata","autodetectedRegionName","getRegionFromIMDS","IMDS_VERSION","localIMDSVersionResponse","ResponseCodes","httpSuccess","region_source","RegionDiscoverySources","IMDS","httpBadRequest","getCurrentVersion","currentIMDSVersion","FAILED_AUTO_DETECTION","currentIMDSVersionResponse","ENVIRONMENT_VARIABLE","sendGetRequestAsync","IMDS_ENDPOINT","IMDS_OPTIONS","IMDS_TIMEOUT","Authority","authorityOptions","canonicalAuthority","_canonicalAuthority","regionDiscovery","region_used","region_outcome","canonicalAuthorityUrlComponents","ADFS","AuthorityType","Adfs","Default","protocolMode","_canonicalAuthorityUrlComponents","discoveryComplete","replacePath","replaceTenant","createEndpointDiscoveryIncompleteError","tenant","cachedAuthorityParts","currentPart","cachedPart","authorityType","OIDC","resolveEndpointsAsync","metadataEntity","getAuthorityMetadataByAlias","hostnameAndPort","cloudDiscoverySource","endpointSource","AuthorityMetadataSource","CACHE","cacheKey","generateAuthorityMetadataCacheKey","setAuthorityMetadata","getEndpointMetadataFromConfig","CONFIG","isAuthoritySameType","getEndpointMetadataFromNetwork","azureRegionConfiguration","azureRegion","AZURE_REGION_AUTO_DISCOVER_FLAG","RegionDiscoveryOutcomes","AUTO_DETECTION_REQUESTED_SUCCESSFUL","AUTO_DETECTION_REQUESTED_FAILED","CONFIGURED_MATCHES_DETECTED","CONFIGURED_NOT_DETECTED","CONFIGURED_NO_AUTO_DETECTION","replaceWithRegionalInformation","NETWORK","createUnableToGetOpenidConfigError","defaultOpenIdConfigurationEndpoint","authorityMetadata","getCloudDiscoveryMetadataFromConfig","getCloudDiscoveryMetadataFromNetwork","cloudDiscoveryMetadata","parsedResponse","getCloudDiscoveryMetadataFromNetworkResponse","isInKnownAuthorities","createCloudDiscoveryMetadataFromHost","instanceDiscoveryEndpoint","AAD_INSTANCE_DISCOVERY_ENDPT","isCloudInstanceDiscoveryResponse","knownAuthorities","getPreferredCache","isAlias","isPublicCloudAuthority","KNOWN_PUBLIC_CLOUDS","buildRegionalAuthorityString","region","authorityUrlInstance","authorityUrlParts","hostNameAndPort","REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX","AuthorityFactory","createDiscoveredInstance","authorityUri","networkClient","acquireTokenAuthority","createInstance","authorityUrl","CredentialEntity","generateAccountId","generateAccountIdForCacheKey","homeAccountId","environment","generateCredentialId","generateCredentialIdForCacheKey","credentialType","realm","familyId","generateTarget","generateTargetForCacheKey","generateCredentialKey","generateCredentialCacheKey","generateType","CredentialType","ID_TOKEN","CacheType","ACCESS_TOKEN","REFRESH_TOKEN","createUnexpectedCredentialTypeError","getCredentialType","ACCESS_TOKEN_WITH_AUTH_SCHEME","NOT_DEFINED","Separators","CACHE_KEY_SEPARATOR","ScopeSet","scopeArr","trimArrayEntries","__spreadArrays","filteredInput","removeEmptyStringsFromArray","validateInputScopes","scope","fromString","inputScopeString","containsScope","lowerCaseScopesSet","printScopesLowerCase","containsScopeSet","scopeSet","asArray","containsOnlyOIDCScopes","defaultScopeCount","OIDC_SCOPES","defaultScope","appendScope","newScope","appendScopes","newScopes","createAppendScopeSetError","removeScope","createRemoveEmptyScopeFromSetError","removeOIDCScopes","unionScopeSets","otherScopes","createEmptyInputScopeSetError","unionScopes","intersectingScopeSets","sizeOtherScopes","getScopeCount","sizeThisScopes","array","printScopes","AuthToken","rawToken","createTokenNullOrEmptyError","claims","extractTokenClaims","encodedToken","decodedToken","decodeAuthToken","base64TokenPayload","JWSPayload","base64Decoded","createTokenParsingError","CacheManager","cryptoImpl","currentAccounts","getAccountsFilteredBy","accountValues","accountKey","accountInfo","toObject","AccountEntity","getAccountInfo","idToken","readIdTokenFromCache","idTokenClaims","secret","saveCacheRecord","cacheRecord","createNullOrUndefinedCacheRecord","setAccount","setIdTokenCredential","saveAccessToken","refreshToken","setRefreshTokenCredential","appMetadata","setAppMetadata","credential","currentTokenCache","getCredentialsFilteredBy","currentScopes","currentAccessTokens","accessTokens","tokenEntity","removeCredential","setAccessTokenCredential","accountFilter","getAccountsFilteredByInternal","allCacheKeys","getKeys","matchingAccounts","getAccount","matchHomeAccountId","matchEnvironment","matchRealm","getCredentialsFilteredByInternal","oboAssertion","matchingCredentials","idTokens","refreshTokens","credType","getSpecificCredential","matchOboAssertion","matchCredentialType","matchClientId","matchFamilyId","matchTarget","getAppMetadataFilteredBy","getAppMetadataFilteredByInternal","matchingAppMetadata","isAppMetadata","getAppMetadata","getAuthorityMetadataKeys","matchedEntity","isAuthorityMetadata","getAuthorityMetadata","removeAllAccounts","removeAccount","createNoAccountFoundError","removeAccountContext","ACCOUNT","cacheEntity","CREDENTIAL","removeAppMetadata","APP_METADATA","readCacheRecord","authScheme","cachedAccount","readAccountFromCache","cachedIdToken","cachedAccessToken","readAccessTokenFromCache","cachedRefreshToken","readRefreshTokenFromCache","cachedAppMetadata","readAppMetadataFromCache","generateAccountCacheKey","idTokenFilter","credentialCache","numIdTokens","createMultipleMatchingTokensInCacheError","AuthenticationScheme","POP","accessTokenFilter","numAccessTokens","familyRT","THE_FAMILY_ID","refreshTokenFilter","appMetadataFilter","appMetadataEntries","numAppMetadata","createMultipleMatchingAppMetadataInCacheError","isAppMetadataFOCI","cloudMetadata","entityScopeSet","requestTargetScopeSet","OFFLINE_ACCESS_SCOPE","getIdTokenCredential","getAccessTokenCredential","getRefreshTokenCredential","propertyName","DefaultStorageClass","setServerTelemetry","getServerTelemetry","containsKey","DEFAULT_SYSTEM_OPTIONS","tokenRenewalOffsetSeconds","preventCorsPreflight","DEFAULT_LOGGER_IMPLEMENTATION","piiLoggingEnabled","DEFAULT_NETWORK_IMPLEMENTATION","sendPostRequestAsync","DEFAULT_LIBRARY_INFO","sku","SKU","cpu","DEFAULT_CLIENT_CREDENTIALS","clientSecret","clientAssertion","CcsCredentialType","NetworkManager","sendPostRequest","tokenEndpoint","createNetworkError","KeyLocation","BaseClient","configuration","authOptions","userAuthOptions","userSystemOptions","systemOptions","userLoggerOption","storageImplementation","storageInterface","networkImplementation","cryptoImplementation","cryptoInterface","clientCredentials","libraryInfo","serverTelemetryManager","persistencePlugin","serializableCache","clientCapabilities","buildClientConfiguration","Logger","cryptoUtils","networkManager","createTokenRequestHeaders","ccsCred","CONTENT_TYPE","URL_FORM_CONTENT_TYPE","HOME_ACCOUNT_ID","clientInfo","buildClientInfoFromHomeAccountId","CCS_HEADER","utid","verbose","UPN","executePostToTokenEndpoint","clearTelemetryCache","updateAuthority","updatedAuthority","RequestValidator","validateRedirectUri","validatePrompt","prompt","promptValues","PromptValue","validateClaims","validateCodeChallengeParams","codeChallengeMethod","validateCodeChallengeMethod","CodeChallengeMethodValues","PLAIN","S256","sanitizeEQParams","eQParams","queryParams","RequestParameterBuilder","addResponseTypeCode","AADServerParamKeys","RESPONSE_TYPE","CODE_RESPONSE_TYPE","addResponseMode","responseMode","RESPONSE_MODE","ResponseMode","QUERY","addScopes","addOidcScopes","requestScopes","OIDC_DEFAULT_SCOPES","SCOPE","addClientId","CLIENT_ID","addRedirectUri","REDIRECT_URI","addPostLogoutRedirectUri","POST_LOGOUT_URI","addIdTokenHint","idTokenHint","ID_TOKEN_HINT","addDomainHint","domainHint","SSOTypes","DOMAIN_HINT","addLoginHint","loginHint","LOGIN_HINT","addCcsUpn","addCcsOid","addSid","sid","SID","addClaims","mergedClaims","addClientCapabilitiesToClaims","CLAIMS","addCorrelationId","CLIENT_REQUEST_ID","addLibraryInfo","X_CLIENT_SKU","X_CLIENT_VER","X_CLIENT_OS","X_CLIENT_CPU","addPrompt","PROMPT","addState","STATE","addNonce","nonce","NONCE","addCodeChallengeParams","CODE_CHALLENGE","CODE_CHALLENGE_METHOD","addAuthorizationCode","CODE","addDeviceCode","DEVICE_CODE","addRefreshToken","addCodeVerifier","CODE_VERIFIER","addClientSecret","CLIENT_SECRET","addClientAssertion","CLIENT_ASSERTION","addClientAssertionType","clientAssertionType","CLIENT_ASSERTION_TYPE","addOboAssertion","OBO_ASSERTION","addRequestTokenUse","tokenUse","REQUESTED_TOKEN_USE","addGrantType","grantType","GRANT_TYPE","addClientInfo","CLIENT_INFO","addExtraQueryParameters","eQparams","ClaimsRequestKeys","XMS_CC","addUsername","username","PasswordGrantConstants","addPassword","password","addPopToken","cnfString","TOKEN_TYPE","REQ_CNF","addServerTelemetry","X_CLIENT_CURR_TELEM","generateCurrentRequestHeaderValue","X_CLIENT_LAST_TELEM","generateLastRequestHeaderValue","addThrottling","X_MS_LIB_CAPABILITY","X_MS_LIB_CAPABILITY_VALUE","createQueryString","queryParameterArray","IdTokenEntity","createIdTokenEntity","idTokenEntity","isIdTokenEntity","AccessTokenEntity","createAccessTokenEntity","extExpiresOn","refreshOn","tokenType","atEntity","currentTime","extendedExpiresOn","BEARER","tokenClaims","createTokenClaimsRequiredError","keyId","isAccessTokenEntity","RefreshTokenEntity","createRefreshTokenEntity","rtEntity","isRefreshTokenEntity","accountEntity","accessTokenEntity","refreshTokenEntity","appMetadataEntity","ProtocolUtils","setRequestState","userState","meta","libraryState","generateLibraryState","RESOURCE_DELIM","createNoCryptoObjectError","stateObj","stateString","parseRequestState","createInvalidStateError","splitState","libraryStateString","libraryStateObj","userRequestState","PopTokenGenerator","generateCnf","kidThumbprint","reqCnf","xms_ksl","SW","signPopToken","shrClaims","resourceUrlString","resourceUrlComponents","at","ts","client_claims","AppMetadataEntity","generateAppMetadataKey","generateAppMetadataCacheKey","createAppMetadataEntity","isAppMetadataEntity","TokenCacheContext","tokenCache","hasChanged","ResponseHandler","cacheStorage","validateServerAuthorizationCodeResponse","serverResponseHash","cachedState","createStateNotFoundError","decodeURIComponent","createStateMismatchError","client_info","buildClientInfo","validateTokenResponse","serverResponse","errString","timestamp","correlation_id","trace_id","handleServerTokenResponse","serverTokenResponse","reqTimestamp","authCodePayload","handlingRefreshTokenResponse","id_token","idTokenObj","createNonceMismatchError","generateHomeAccountId","requestStateObj","generateCacheRecord","cacheContext","beforeCacheAccess","generateAccountKey","generateAuthenticationResult","afterCacheAccess","createInvalidCacheEnvironmentError","tid","generateAccountEntity","access_token","responseScopes","expiresIn","expires_in","extExpiresIn","ext_expires_in","refreshIn","refresh_in","tokenExpirationSeconds","extendedTokenExpirationSeconds","refreshOnSeconds","token_type","refresh_token","foci","CacheRecord","cloudGraphHostName","cloud_graph_host_name","msGraphhost","msgraph_host","createGenericAccount","createClientInfoEmptyError","createAccount","fromTokenCache","requestState","_d","oid","sub","uniqueId","fromCache","msGraphHost","AuthorizationCodeClient","getAuthCodeUrl","createAuthCodeUrlQueryString","authorizationEndpoint","acquireToken","createTokenRequestCannotBeMadeError","executeTokenRequest","responseHandler","handleFragmentResponse","hashFragment","hashUrlString","serverParams","createNoAuthCodeInServerResponseError","getLogoutUri","logoutRequest","createLogoutUrlQueryString","endSessionEndpoint","createTokenRequestBody","requestBody","queryParameters","createTokenQueryParameters","ccsCredential","CLIENT_INFO_SEPARATOR","parameterBuilder","tokenQueryParameters","assertion","assertionType","GrantType","AUTHORIZATION_CODE_GRANT","authenticationScheme","isEmptyObj","extraScopesToConsent","SELECT_ACCOUNT","NONE","accountSid","extractAccountSid","extraQueryParameters","RefreshTokenClient","acquireTokenByRefreshToken","createNoAccountInSilentRequestError","acquireTokenWithCachedRefreshToken","noFamilyRTInCache","ClientAuthErrorMessage","noTokensFoundError","clientMismatchErrorWithFamilyRT","Errors","INVALID_GRANT_ERROR","CLIENT_MISMATCH_ERROR","createNoTokensFoundError","refreshTokenRequest","REFRESH_TOKEN_GRANT","popTokenGenerator","SilentFlowClient","acquireCachedToken","tokenRefreshRequired","forceRefresh","setCacheOutcome","CacheOutcome","FORCE_REFRESH","createRefreshRequiredError","NO_CACHED_ACCESS_TOKEN","CACHED_ACCESS_TOKEN_EXPIRED","REFRESH_CACHED_ACCESS_TOKEN","incrementCacheHits","generateResultFromCacheRecord","ServerTelemetryEntity","failedRequests","cacheHits","isServerTelemetryEntity","validateKey","SERVER_TELEM_CONSTANTS","validateEntity","ServerTelemetryManager","telemetryRequest","cacheOutcome","NO_CACHE_HIT","apiId","wrapperSKU","wrapperVer","telemetryCacheKey","VALUE_SEPARATOR","platformFields","requestWithRegionDiscoveryFields","getRegionDiscoveryFields","SCHEMA_VERSION","CATEGORY_SEPARATOR","lastRequests","getLastRequests","maxErrors","maxErrorsToSend","errorCount","OVERFLOW_TRUE","OVERFLOW_FALSE","cacheFailedRequest","MAX_CACHED_ERRORS","UNKNOWN_ERROR","numErrorsFlushed","serverTelemEntity","serverTelemetryEntity","dataSize","MAX_LAST_HEADER_BYTES","regionDiscoveryFields","regionUsed","regionSource","regionOutcome","updateRegionDiscoveryMetadata","ThrottlingEntity","isThrottlingEntity","BrowserStorage","validateWindowStorage","windowStorage","BrowserCacheLocation","BrowserConfigurationAuthError","createStorageNotSupportedError","MemoryStorage","cacheKeys","BrowserProtocolUtils","extractBrowserRequestState","parseServerResponseFromHash","locationHash","BrowserCacheManager","cacheConfig","COOKIE_LIFE_MULTIPLIER","internalStorage","browserStorage","setupBrowserStorage","temporaryCacheStorage","setupTemporaryCacheStorage","migrateCacheEntries","idTokenKey","CACHE_PREFIX","PersistentCacheKeys","clientInfoKey","errorKey","ERROR","errorDescKey","ERROR_DESC","migrateCacheEntry","newKey","setTemporaryCache","validateAndParseJson","jsonValue","parsedJson","parsedAccount","isAccountEntity","parsedIdToken","accessTokenKey","parsedAccessToken","refreshTokenKey","parsedRefreshToken","appMetadataKey","parsedMetadata","serverTelemetryKey","serverTelemetry","getActiveAccount","activeAccountIdKey","generateCacheKey","ACTIVE_ACCOUNT","activeAccountId","getAccountInfoByFilter","localAccountId","setActiveAccount","accountObj","throttlingCacheKey","parsedThrottlingCache","throttlingCache","getTemporaryCache","itemCookie","getItemCookie","setItemCookie","clearItemCookie","__spread","cookieName","expires","cookieStr","getCookieExpirationTime","secureCookies","cookieList","clearMsalCookies","cookiePrefix","cookieKey","cookieLifeDays","toUTCString","getCache","setCache","startsWith","ADAL_ID_TOKEN","generateAuthorityKey","stateId","TemporaryCacheKeys","AUTHORITY","generateNonceKey","NONCE_IDTOKEN","generateStateKey","REQUEST_STATE","getCachedAuthority","stateCacheKey","authorityCacheKey","updateCacheEntries","authorityInstance","nonceCacheKey","CCS_CREDENTIAL","resetRequestCache","REQUEST_PARAMS","ORIGIN_URI","URL_HASH","INTERACTION_STATUS_KEY","cleanRequestByState","infoPii","cleanRequestByInteractionType","interactionType","stateValue","parsedState","cacheCodeRequest","authCodeRequest","encodedValue","getCachedRequest","encodedTokenRequest","parsedRequest","cachedAuthority","StubbedNetworkModule","FetchClient","HTTP_REQUEST_TYPE","GET","getFetchHeaders","getHeaderDict","reqBody","POST","e_3","optionsHeaders","headerDict","XhrClient","sendRequestAsync","setXhrHeaders","jsonResponse","networkResponse","headers_1","headerArr","headerVal","BrowserUtils","clearHash","contentWindow","origin","replaceHash","urlParts","isInIframe","isInPopup","opener","BrowserConstants","POPUP_NAME_PREFIX","getCurrentUri","getHomepage","getBrowserNetworkClient","blockReloadInHiddenIframes","blockRedirectInIframe","allowRedirectInIframe","isIframedApp","InteractionType","Redirect","blockAcquireTokenInPopups","blockNonBrowserEnvironment","isBrowserEnvironment","detectIEOrEdge","NavigationClient","navigateInternal","defaultNavigateWindow","navigateExternal","noHistory","DEFAULT_IFRAME_TIMEOUT_MS","InteractionHandler","authCodeModule","storageImpl","browserRequestLogger","authModule","handleCodeResponse","networkModule","authCodeResponse","nonceKey","cachedNonce","cloud_instance_host_name","updateTokenEndpointAuthority","cachedCcsCred","checkCcsCredentials","tokenResponse","cloudInstanceHostname","cloudInstanceAuthorityUri","cloudInstanceAuthority","errorPii","RedirectHandler","initiateAuthRequest","redirectStartPage","INTERACTION_IN_PROGRESS_VALUE","navigationOptions","ApiId","redirectTimeout","onRedirectNavigate","navigationClient","PopupUtils","unloadWindow","openPopup","urlNavigate","popupName","popup","popupWindow","verbosePii","openSizedPopup","currentWindow","winLeft","screenLeft","screenX","winTop","screenTop","screenY","innerWidth","documentElement","clientWidth","innerHeight","clientHeight","POPUP_WIDTH","POPUP_HEIGHT","Popup","cleanPopup","monitorPopupForSameOrigin","intervalId","POLL_INTERVAL_MS","generatePopupName","generateLogoutPopupName","PopupHandler","popupUtils","monitorPopupForHash","contentHash","SilentHandler","navigateFrameWait","loadFrame","loadFrameSync","monitorIframeForHash","iframe","timeoutMark","removeHiddenIframe","frameHandle","createHiddenIframe","authFrame","setAttribute","getElementsByTagName","appendChild","parentNode","removeChild","EventHandler","eventCallbacks","addEventCallback","callbackId","removeEventCallback","emitEvent","eventType","message_1","ClientApplication","userInputAuth","userInputCache","userInputSystem","DEFAULT_AUTH_OPTIONS","DEFAULT_AUTHORITY","AAD","DEFAULT_CACHE_OPTIONS","DEFAULT_LOGGER_OPTIONS","DEFAULT_BROWSER_SYSTEM_OPTIONS","loadFrameTimeout","windowHashTimeout","iframeHashTimeout","redirectNavigationTimeout","asyncPopups","buildConfiguration","redirectResponse","eventHandler","cacheOptions","DEFAULT_BROWSER_CACHE_MANAGER","handleRedirectPromise","EventType","HANDLE_REDIRECT_START","loggedInAccounts","redirectResponseKey","handleRedirectResponse","LOGIN_SUCCESS","ACQUIRE_TOKEN_SUCCESS","HANDLE_REDIRECT_END","ACQUIRE_TOKEN_FAILURE","LOGIN_FAILURE","interactionInProgress","responseHash","getRedirectResponseHash","validateAndExtractStateFromHash","loginRequestUrl","loginRequestUrlNormalized","currentUrlNormalized","handleHash","handleHashResult","processHashOnRedirect","homepage","isResponseHash","cachedHash","requestCorrelationId","platformStateObj","cachedRequest","clone","initializeServerTelemetryManager","currentAuthority","createAuthCodeClient","authClient","preflightBrowserEnvironmentCheck","ACQUIRE_TOKEN_START","LOGIN_START","validRequest","preflightInteractiveRequest","initializeAuthorizationCodeRequest","interactionHandler","navigateUrl","getRedirectStartPage","e_2","acquireTokenPopup","acquireTokenPopupAsync","popupParameters","POPUP_OPENED","ssoSilent","Silent","SSO_SILENT_START","acquireTokenByIframe","silentTokenResult","SSO_SILENT_SUCCESS","SSO_SILENT_FAILURE","e_4","silentRequest","initializeAuthorizationRequest","silentTokenHelper","e_5","ACQUIRE_TOKEN_NETWORK_START","initializeBaseRequest","acquireTokenSilent_silentFlow","createRefreshTokenClient","refreshTokenClient","e_6","isServerError","isInvalidGrantError","acquireTokenSilent_authCode","silentHandler","msalFrame","logout","validLogoutRequest","initializeLogoutRequest","LOGOUT_START","logoutUri","accountInfoIsEqual","LOGOUT_SUCCESS","e_7","LOGOUT_FAILURE","LOGOUT_END","logoutPopupAsync","requestAuthority","e_8","e_9","getAccountByUsername","userName","allAccounts","getAccountByHomeId","getAccountByLocalId","getRedirectUri","requestRedirectUri","requestStartPage","getDiscoveredAuthority","getClientConfiguration","clientConfig","createSilentFlowClient","discoveredAuthority","MSAL_SKU","createInMemoryRedirectUnavailableError","telemetryPayload","browserState","validatedRequest","FRAGMENT","adalIdTokenString","adalIdToken","IdToken","upn","generatedPkceParams","S256_CODE_CHALLENGE_METHOD","getLogger","setLogger","initializeWrapperLibrary","setNavigationClient","PublicClientApplication","activeSilentTokenRequests","DEFAULT_REQUEST","silentRequestKey","cachedResponse","acquireTokenSilentAsync","silentAuthClient","cachedToken","tokenRenewalResult","tokenRenewalError_1","Bowser","isValidBrowser","satisfies","chrome","edge","safari","opera","samsung","MsalProvider","App","getElementById","serviceWorker","registration","unregister","_errors","toNumber","invertNumber","ERROR_DIV_ZERO","ERROR_NAME","ERROR_VALUE","first","SYMBOL","Infinity","exp1","exp2","symbolParts","foundFormula","formulajs","nestedFormula","isFactory","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","arr2","availableOperators","evaluateByOperator","operator","registerOperation","ampersand","divide","equal","power","formulaFunction","greaterThan","greaterThanOrEqual","lessThan","lessThanOrEqual","multiply","notEqual","minus","_o","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","yy","symbols_","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","callVariable","trimEdges","n1","callFunction","cellValue","rangeValue","table","defaultActions","parseError","recoverable","vstack","lstack","recovering","lexer","sharedState","setInput","yylloc","yyloc","ranges","preErrorSymbol","newState","expected","lex","yyval","error_rule_depth","locateNearestErrorRecoveryRule","stack_probe","errStr","showPosition","first_line","last_line","first_column","last_column","range","EOF","_input","_more","_backtrack","done","matched","conditionStack","ch","unput","oldLines","more","backtrack_lexer","less","pastInput","past","upcomingInput","pre","test_match","indexed_rule","tempMatch","_currentRules","begin","condition","popState","topState","stateStackSize","yy_","$avoiding_name_collisions","YY_START","Parser","string","_arrayWithHoles","_arr","_n","_s","_iterableToArrayLimit","_nonIterableRest","rowLabelToIndex","COLUMN_LABEL_BASE","COLUMN_LABEL_BASE_LENGTH","columnLabelToIndex","LABEL_EXTRACT_REGEXP","extractLabel","_label$toUpperCase$ma2","columnAbs","rowAbs","isAbsolute","toLabel","rowLabel","rowIndexToLabel","columnLabel","columnIndexToLabel","_defineProperties","_setPrototypeOf","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_possibleConstructorReturn","_Emitter","subClass","superClass","protoProps","staticProps","GrammarParser","errorName","_throwError","variable","_callVariable","_callFunction","_callCellValue","_callRangeValue","variables","functions","setVariable","errorParser","getVariable","emit","getFunction","_extractLabel2","_value","startLabel","endLabel","_extractLabel4","startRow","startColumn","_extractLabel6","endRow","endColumn","startCell","endCell","valid","isErrorValid","Emitter","answersAdapter","_dependencies$entitie","dependentFormulas","formula","sd","_answers$entities$id","_answers$entities$id2","_parser$parse","formulaEdited","valuesByRow","answersSlice","answersReceived","answerRemoved","_answersSlice$actions","_answersAdapter$getSe","selectAnswersError","attachmentsReceived","t3","t4","deleteAttachmentsByQuestionId","selectAllAttachments","attachmentsAdapter","attachmentsSlice","_attachmentsSlice$act","_attachmentsAdapter$g","selectAttachmentsError","dependencyAdapter","dependencySlice","dependencyAdded","dependencyEdited","_dependencySlice$acti","_dependencyAdapter$ge","selectAllDependencies","selectDependenciesError","modifyByUser","appContext","getTitleByFormTypeId","parentFormTypeId","getFormName","invalidQuestions","joinedText","selectAllInvalidQuestionsByCurrentPage","trees","selectAllLookups","selectAllSections","selectAllQuestions","selectAllFormulas","selectAllTrees","mapStatusToLock","rowsReceived","formulasEdited","formStateEdited","responseData","treesReceived","formToPost","selectFormToPost","mapCmeStatusToQnaStatus","postCpeForm","postCpeApi","formDataEdited","postCpeFormComplete","_args7","selectAllCmeAttachments","isCpeFormTable","_yield$getCMEFormById","balances","commitments","workflowHistories","prevLines","requestLinesWithPrevLines","returnedId","returnedFormId","pl","workflowsReceived","workflowHistoryReceived","fetchPermission","fetchCpeFormById","_yield$getCPEFormById","fetchRequestFormById","_yield$getRequestForm","defaultTitle","postRequestFormApi","_args12","postByPayroll","_selectUser","_args13","formSlice","appTypeEdited","_formSlice$actions","selectPersonIdForNewForm","myPersonId","selectNotMyApproval","selectActiveWorkflow","_w$user","selectIsLocked","_queryWorkflow$user","selectIsCmeCoordinator","amCmeCoordinator","formulasAdapter","formulasSlice","formulaAdded","upsertMany","_formulasSlice$action","_formulasAdapter$getS","selectFormulasError","globalSlice","_Object$entries","_Object$entries$_i","_globalSlice$actions","selectGlobalLoading","fetchLeaveManager","leaveManagerReceived","leaveManagerSlice","combineReducers","leaveManager","security","workflowHistory","errorReducer","createDeepEqualSelector","createSelectorCreator","defaultMemoize","isEqual","selectLookupsError","selectPagesError","selectSectionsError","selectQuestionsError","selectRowsError","selectTreesError","errorState","_len2","_key2","selectQuestionsByPage","allQuestions","allLookups","_trees$find","selectAllRows","answer","rowId","selectAllSectionsByCurrentPage","_formulas$find","selectAllVisibleQuestions","_formulas$find2","selectAllVisibleQuestionsByCurrentPage","selectStaticQuestions","selectStaticAnswerOrganisationHiearchyId","qs","as","_as$find","formData","purchases","funding","assetCategories","_getAnswer","_getAnswer2","getAnswer","answerId","_answer$value","getFormula","reasonforInvestment","projectNumber","isNewRequest","projectBudgetArray","_getAnswer3","_getAnswer4","_getAnswer5","_getAnswer$descriptio","_getAnswer6","_getAnswer7","_getAnswer8","q3b","ac","q2","q4","fundingArray","_getAnswer9","_getAnswer10","sourceProjectCode","sourceCommitment","sourceWtProjectCode","opexArray","_getAnswer$descriptio2","_getAnswer11","_getAnswer12","_getAnswer13","_getAnswer14","formState","approvalSummary","_as$find2","fsQ","cost","selectServiceImpact","selectPatientStaffImpact","selectLikelihoodOfAssetFailing","serviceImpact","patientStaffImpact","selectLikelihoodScore","likelihood","selectWeighting1","selectWeighting2","_answers$find2","selectWeighting3","_answers$find3","selectLikelihoodConsequences","_answers$find4","con1","con2","con3","missingMandatoryKeyMembers","errorQuestions","answerObject","childrenErrors","pq","lookupsAdapter","lookupsSlice","_lookupsSlice$actions","_lookupsAdapter$getSe","pagesAdapter","pagesSlice","_pagesSlice$actions","_pagesAdapter$getSele","pageDecremented","questionsAdapter","questionsSlice","_questionsAdapter$get","rowsAdapter","sortComparer","_formula$valuesByRow","_row$id","_toPropertyKey","rowRemoved","rowsSlice","rowUpdated","updateOne","rowsUpdated","updateMany","_rowsSlice$actions","_rowsAdapter$getSelec","sectionsAdapter","sectionsSlice","_sectionsAdapter$getS","_ref3$userId","forPersonPermissionEdited","permissionEdited","securitySlice","authToken","forPersonPermission","permissionLoaded","selectedPermission","permissionSelected","_securitySlice$action","selectAppPermission","selectPermissionLoaded","_state$security$user","isAppAdmin","privilege","isSystemAdmin","selectIsCmeClaimant","_CME_CONFIG$org","xMonthsBeforeEndDate","selectIsCpdClaimant","_CME_CONFIG$org2","_i$actions","_i$actions2","configureStore","reducer","rootReducer","middleware","getDefaultMiddleware","devTools","treesAdapter","treeUpserted","treesSlice","_treesSlice$actions","_treesAdapter$getSele","workflowHistoryAdapter","workflowId","_selectForm","tempId","workflowHistoryAdded","workflowHistorySlice","workflowHistoryStatusEdited","_workflowHistorySlice","_workflowHistoryAdapt","selectAllWorkflowHistoryRaw","selectAllWorkflowHistory","wh","_wh$filter$sort","_wh$filter$sort2","_wh$filter$sort2$","workflowsAdapter","newWorkflowTemplate","newWorkflow","resendPayrollEmailThunk","rejectPayroll","rejectCountiesFinance","workflowsSlice","_workflowsSlice$actio","_workflowsAdapter$get","fromWh","fromWorkflowHistoryId","html","__html","reader","FileReader","readAsDataURL","validationType","isInteger","blob","b64toBlob","msSaveOrOpenBlob","createObjectURL","download","click","getFile","byteString","atob","ab","ia","getAnyValueForSorting","sortAnyValue","sortDirection","valueA","valueB","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","opacity","toHsv","hsv","rgbToHsv","toHex","rgbToHex","getHue","light","hue","getSaturation","saturation","getValue","generate","opts","patterns","pColor","inputToRGB","colorString","_hsv","_colorString","theme","rgb1","rgb2","mix","presetPrimaryColors","red","volcano","orange","gold","yellow","lime","green","cyan","blue","geekblue","purple","magenta","grey","presetPalettes","presetDarkPalettes","primary","exports","_default","require","__esModule","module","isIconDefinition","normalizeAttrs","attrs","class","camelCase","rootProps","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","twoToneColorPalette","secondaryColor","calculated","IconBase","colors","styleStr","csp","IconContext","updateCSS","prepend","useInsertStyles","warn","fill","getTwoToneColors","setTwoToneColors","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","ReactIcon","Icon","rotate","Context","_React$useContext$pre","rootClassName","iconTabIndex","svgStyle","msTransform","transform","getTwoToneColor","createContext","CalendarOutlinedSvg","CheckCircleFilled","CheckCircleFilledSvg","CheckCircleOutlinedSvg","CheckOutlinedSvg","ClockCircleOutlinedSvg","CloseCircleFilled","CloseCircleFilledSvg","CloseCircleOutlinedSvg","CloseOutlinedSvg","CommentOutlinedSvg","DeleteOutlinedSvg","DownOutlinedSvg","EditOutlinedSvg","EllipsisOutlinedSvg","ExclamationCircleFilled","ExclamationCircleFilledSvg","ExclamationCircleOutlined","ExclamationCircleOutlinedSvg","EyeOutlined","EyeOutlinedSvg","FileOutlined","FileOutlinedSvg","HomeOutlinedSvg","InfoCircleFilled","InfoCircleFilledSvg","InfoCircleOutlined","InfoCircleOutlinedSvg","LeftOutlinedSvg","LoadingOutlinedSvg","LockOutlinedSvg","PaperClipOutlinedSvg","PlusOutlinedSvg","QuestionCircleOutlinedSvg","RightCircleOutlinedSvg","RightOutlinedSvg","SearchOutlined","SearchOutlinedSvg","UnlockOutlinedSvg","_interopRequireDefault","_slicedToArray2","_defineProperty2","_objectWithoutProperties2","nodeInterop","default","_getRequireWildcardCache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","_interopRequireWildcard","_classnames","_Context","_IconBase","_twoTonePrimaryColor","_utils","WeakMap","cacheBabelInterop","cacheNodeInterop","forwardRef","_CheckCircleFilled","_AntdIcon","_CheckCircleOutlined","_CheckOutlined","_CloseCircleFilled","_CloseCircleOutlined","_CloseOutlined","_CopyOutlined","_EditOutlined","_EnterOutlined","_ExclamationCircleFilled","_ExclamationCircleOutlined","_InfoCircleFilled","_InfoCircleOutlined","_LoadingOutlined","_typeof3","_react","_colors","iconStyles","_typeof2","svgBaseProps","_warning","_dynamicCSS","_camelCase","focusable","BrowserConfigurationAuthErrorMessage","givenStorageLocation","createRedirectCallbacksNotSetError","createStubPcaInstanceCalledError","InteractionStatus","WrapperSKU","rawClientInfo","decodedClientInfo","createClientInfoDecodingError","clientInfoParts","CacheAccountType","ADFS_ACCOUNT_TYPE","MSAV1_ACCOUNT_TYPE","MSA","MSSTS_ACCOUNT_TYPE","MSSTS","GENERIC_ACCOUNT_TYPE","GENERIC","createUnexpectedAccountTypeError","accountInterface","preferred_username","emails","_f","serverClientInfo","authType","accountA","accountB","compareClaims","claimsMatch","accountAClaims","accountBClaims","iat","AuthErrorMessage","errDesc","clientInfoDecodingError","clientInfoEmptyError","tokenParsingError","nullOrEmptyToken","endpointResolutionError","networkError","unableToGetOpenidConfigError","hashNotDeserialized","blankGuidGenerated","invalidStateError","stateMismatchError","stateNotFoundError","nonceMismatchError","nonceNotFoundError","multipleMatchingTokens","multipleMatchingAccounts","multipleMatchingAppMetadata","tokenRequestCannotBeMade","appendEmptyScopeError","removeEmptyScopeError","appendScopeSetError","emptyInputScopeSetError","DeviceCodePollingCancelled","DeviceCodeExpired","DeviceCodeUnknownError","NoAccountInSilentRequest","invalidCacheRecord","invalidCacheEnvironment","noAccountFound","CachePluginError","noCryptoObj","invalidCacheType","unexpectedAccountType","unexpectedCredentialType","invalidAssertion","invalidClientCredential","userTimeoutReached","tokenClaimsRequired","noAuthorizationCodeFromServer","noAzureRegionDetected","accessTokenEntityNullError","caughtError","caughtExtractionError","invalidRawTokenString","hashParamObj","invalidState","missingState","createNonceNotFoundError","missingNonce","createMultipleMatchingAccountsInCacheError","createAppendEmptyScopeToSetError","givenScope","appendError","createDeviceCodeCancelledError","createDeviceCodeExpiredError","createDeviceCodeUnknownError","createCachePluginError","createInvalidAssertionError","createInvalidCredentialError","createUserTimeoutReachedError","packageName","packageVersion","localCallback","executeCallback","warningPii","tracePii","isPiiLoggingEnabled","LIBRARY_NAME","DEFAULT_AUTHORITY_HOST","NO_ACCOUNT","CONSUMER_UTID","OPENID_SCOPE","PROFILE_SCOPE","EMAIL_SCOPE","CODE_GRANT_TYPE","RT_GRANT_TYPE","FRAGMENT_RESPONSE_MODE","AUTHORIZATION_PENDING","LOGIN","CONSENT","CREATE","MAX_CUR_HEADER_BYTES","JWSSig","strObj","jsonParseHelper","matchPattern","pattern","stubbedPublicClientApplication","EventMessageUtils","getInteractionStatusFromEvent","Login","SsoSilent","AcquireToken","HandleRedirect","Logout","None","defaultMsalContext","inProgress","MsalContext","Consumer","getChildrenOrFunction","useMemo","setAccounts","Startup","setInProgress","arrayA","arrayB","comparisonArray","elementA","elementB","accountArraysAreEqual","contextValue","React__default","accountIdentifiers","matchAccount","useIsAuthenticated","_useMsal2","_useMsal","initialStateValue","currentAccount","useAccount","hasAuthenticated","setHasAuthenticated","rgbToRgb","bound01","rgbToHsl","hue2rgb","hslToRgb","hsvToRgb","mod","allow3Char","pad2","rgbaToHex","allow4Char","convertDecimalToHex","rgbaToArgbHex","convertHexToDecimal","parseIntFromHex","numberInputToObject","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellowgreen","rgb","stringInputToObject","isValidCSSUnit","convertToPercentage","boundAlpha","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","rgba","hsl","hsla","hsva","hex3","hex6","hex4","hex8","named","TinyColor","originalInput","roundA","gradientType","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","getAlpha","setAlpha","alpha","isMonochrome","toHsl","toHsvString","toHslString","toHexString","toHex8","toHex8String","toHexShortString","allowShortChar","toRgbString","toPercentageRgb","fmt","toPercentageRgbString","rnd","toName","formatSet","formattedString","hasAlpha","lighten","clamp01","brighten","darken","tint","shade","desaturate","saturate","greyscale","analogous","slices","part","complement","monochromatic","modification","splitcomplement","onBackground","fg","bg","triad","polyad","tetrad","increment","equals","tinycolor","readability","color1","color2","c1","c2","isReadable","wcag2","readabilityLevel","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","colorList_1","toMsFilter","firstColor","secondColor","hex8String","secondHex8String","fromRatio","ratio","newColor","legacyRandom","totalColors","seed","randomWithin","colorInput","namedColor","bounds","defineColor","hueRange","parsed","getHueRange","pickHue","luminosity","saturationRange","getColorInfo","sMin","sMax","pickSaturation","bMin","lowerBounds","s1","v1","s2","v2","getMinimumBrightness","bMax","pickBrightness","bounds_1","bound","brightnessRange","isOnePointZero","isPercent","isPercentage","categories","mathTrig","statistical","engineering","dateTime","root","BETADIST","BETA","DIST","BETAINV","INV","BINOMDIST","BINOM","CEILING","ISOCEILING","MATH","CEILINGMATH","CEILINGPRECISE","PRECISE","CHIDIST","CHISQ","CHIDISTRT","RT","CHIINV","CHIINVRT","CHITEST","TEST","CONFIDENCE","NORM","COVAR","COVARIANCE","COVARIANCEP","COVARIANCES","CRITBINOM","EXPONDIST","EXPON","ERFCPRECISE","ERFC","ERFPRECISE","ERF","FDIST","FDISTRT","FINVRT","FINV","FLOOR","FLOORMATH","FLOORPRECISE","FTEST","GAMMADIST","GAMMA","GAMMAINV","GAMMALNPRECISE","GAMMALN","HYPGEOMDIST","HYPGEOM","LOGINV","LOGNORM","LOGNORMINV","LOGNORMDIST","MODE","SNGL","MODEMULT","MULT","MODESNGL","NEGBINOMDIST","NEGBINOM","NETWORKDAYSINTL","NETWORKDAYS","INTL","NORMDIST","NORMINV","NORMSDIST","NORMSINV","PERCENTILE","EXC","PERCENTILEEXC","PERCENTILEINC","INC","PERCENTRANK","PERCENTRANKEXC","PERCENTRANKINC","POISSON","POISSONDIST","QUARTILE","QUARTILEEXC","QUARTILEINC","RANK","EQ","RANKAVG","AVG","RANKEQ","SKEWP","SKEW","STDEV","STDEVP","STDEVS","TDIST","TDISTRT","TINV","TTEST","VAR","VARP","VARS","WEIBULL","WEIBULLDIST","WORKDAYINTL","WORKDAY","ZTEST","stats","maths","utils","evalExpression","arrayEach","findResultIndex","database","criterias","maxCriteriaLength","currentCriteriaResult","hasMatchingCriteria","criteria","criteriaField","tokenizedCriteria","createToken","TOKEN_TYPE_LITERAL","compute","FINDFIELD","DAVERAGE","resultIndexes","targetFields","sum","div0","DCOUNT","targetValues","COUNT","DCOUNTA","COUNTA","DGET","DMAX","maxValue","DMIN","minValue","DPRODUCT","DSTDEV","DSTDEVP","DSUM","SUM","DVAR","DVARP","d1900","UTC","WEEK_STARTS","WEEK_TYPES","WEEKEND_TYPES","isLeapYear","getMonth","daysBetween","start_date","end_date","serial","addOn","DATE","day","parseNumber","anyIsError","DATEVALUE","date_text","modifier","DAY","serial_number","parseDate","getDate","DAYS","DAYS360","parseBool","ed","sm","em","smd","getFullYear","emd","EDATE","months","setMonth","EOMONTH","HOUR","getHours","INTERVAL","second","ISOWEEKNUM","setHours","setDate","getDay","yearStart","MINUTE","getMinutes","MONTH","holidays","weekend","getTimezoneOffset","getUTCDay","dec","holiday","NOW","SECOND","getSeconds","TIME","minute","TIMEVALUE","time_text","TODAY","WEEKDAY","return_type","WEEKNUM","week_start","jan","inc","YEAR","YEARFRAC","basis","sy","ey","ylength","date1","date2","year1","mar1year1","year2","mar1year2","feb29Between","jStat","bessel","isValidBinaryNumber","BESSELI","besseli","BESSELJ","besselj","BESSELK","besselk","BESSELY","bessely","BIN2DEC","stringified","BIN2HEX","places","REPT","BIN2OCT","BITAND","number1","number2","BITLSHIFT","BITOR","BITRSHIFT","BITXOR","COMPLEX","real","imaginary","CONVERT","from_unit","to_unit","units","binary_prefixes","Yi","Zi","Ei","Pi","Ti","Gi","Mi","ki","unit_prefixes","base_from_unit","base_to_unit","from_multiplier","to_multiplier","from_binary_prefix","from_unit_prefix","to_binary_prefix","to_unit_prefix","na","DEC2BIN","DEC2HEX","DEC2OCT","DELTA","lower_bound","upper_bound","erf","erfc","GESTEP","step","HEX2BIN","negative","decimal","HEX2DEC","HEX2OCT","IMABS","inumber","IMREAL","IMAGINARY","sqrt","plus","IMARGUMENT","PI","atan","IMCONJUGATE","IMCOS","cos","exp","sin","IMCOSH","IMCOT","IMDIV","IMSIN","inumber1","inumber2","unit1","unit2","den","IMEXP","IMLN","IMLOG10","IMLOG2","IMPOWER","IMPRODUCT","IMSEC","IMSECH","IMSINH","IMSQRT","IMCSC","IMCSCH","IMSUB","IMSUM","flatten","IMTAN","OCT2BIN","OCT2DEC","OCT2HEX","validDate","ensureDate","ACCRINT","issue","settlement","rate","par","frequency","ACCRINTM","AMORDEGRC","AMORLINC","COUPDAYBS","COUPDAYS","COUPDAYSNC","COUPNCD","COUPNUM","COUPPCD","CUMIPMT","periods","payment","PMT","interest","FV","CUMPRINC","principal","DB","salvage","life","period","ceiling","DDB","factor","DISC","DOLLARDE","dollar","fraction","LN10","LN2","DOLLARFR","DURATION","EFFECT","term","FVSCHEDULE","schedule","parseNumberArray","future","INTRATE","IPMT","present","IRR","guess","irrResult","irrResultDeriv","frac","positive","newRate","epsRate","resultValue","resultRate","contLoop","ISPMT","MDURATION","MIRR","finance_rate","reinvest_rate","payments","incomes","NPV","NOMINAL","NPER","ODDFPRICE","ODDFYIELD","ODDLPRICE","ODDLYIELD","PDURATION","PPMT","PRICE","PRICEDISC","PRICEMAT","PV","RATE","y0","y1","x0","epsMax","x1","RECEIVED","RRI","SLN","SYD","TBILLEQ","maturity","discount","TBILLPRICE","TBILLYIELD","price","VDB","XNPV","parseDateArray","YIELD","YIELDDISC","YIELDMAT","CELL","TYPE","error_val","nil","INFO","ISBLANK","ISBINARY","ISERR","isFinite","ISERROR","ISEVEN","ISFORMULA","ISLOGICAL","ISNA","ISNONTEXT","ISNUMBER","ISODD","ISREF","ISTEXT","NA","SHEET","SHEETS","information","AND","CHOOSE","FALSE","IF","then_value","otherwise_value","IFERROR","valueIfError","IFNA","value_if_na","NOT","logical","OR","TRUE","XOR","SWITCH","targetValue","argc","switchCount","switchSatisfied","hasDefaultClause","defaultClause","MATCH","lookupValue","lookupArray","matchType","indexValue","VLOOKUP","needle","rangeLookup","HLOOKUP","transposedTable","transpose","ABS","ACOS","acos","ACOSH","ACOT","ACOTH","AGGREGATE","function_num","ref1","ref2","AVERAGE","MAX","MIN","PRODUCT","MEDIAN","ARABIC","CM","CD","XC","XL","IX","IV","ASIN","asin","ASINH","ATAN","ATAN2","number_x","number_y","atan2","ATANH","BASE","radix","min_length","significance","precision","ROUND","COMBIN","number_chosen","FACT","COMBINA","COS","COSH","COT","COTH","e2","CSC","CSCH","DECIMAL","DEGREES","EVEN","EXP","MEMOIZED_FACT","FACTDOUBLE","GCD","r0","ri","INT","ISO","LCM","LN","LOG10E","LOG2E","LOG","LOG10","MOD","dividend","divisor","modulus","MROUND","MULTINOMIAL","ODD","temp","POWER","QUOTIENT","numerator","denominator","RADIANS","RAND","RANDBETWEEN","ROMAN","digits","roman","ROUNDDOWN","ROUNDUP","SEC","SECH","SERIESSUM","coefficients","SIGN","SIN","SINH","SQRT","SQRTPI","SQRT1_2","SQRT2","SUBTOTAL","function_code","ADD","num1","num2","MINUS","DIVIDE","MULTIPLY","factor1","factor2","GTE","LT","LTE","value1","value2","NE","POW","exponent","argsToArray","SUMIF","isWildcard","SUMIFS","n_range_elements","criteriaLength","isMeetCondition","computedResult","SUMPRODUCT","_ij","arrays","SUMSQ","numbers","SUMX2MY2","array_x","array_y","SUMX2PY2","SUMXMY2","TAN","TANH","TRUNC","UNIQUE","hasElement","FLATTEN","ARGS2ARRAY","REFERENCE","reference","opening","JOIN","NUMBERS","el","misc","AVEDEV","mean","AVERAGEA","AVERAGEIF","average_range","average_count","AVERAGEIFS","beta","cumulative","cdf","pdf","probability","inv","successes","trials","binomial","RANGE","successes2","chisquare","observed","dof","xsqr","ChiSq","COLUMN","matrix","COLUMNS","normalci","tci","CORREL","array1","array2","corrcoeff","COUNTBLANK","COUNTIN","blanks","COUNTIF","COUNTIFS","COUNTUNIQUE","mean1","mean2","covariance","DEVSQ","lambda","exponential","d1","d2","centralF","sumOfSquares","x2","FISHER","FISHERINV","e2y","FORECAST","data_y","data_x","xmean","ymean","FREQUENCY","bins","gammafn","gamma","gammaln","GAUSS","normal","GEOMEAN","geomean","GROWTH","known_y","known_x","new_x","use_const","avg_x","avg_y","avg_xy","avg_xx","new_y","HARMEAN","INTERCEPT","KURT","sigma","stdev","LINEST","LOGEST","lognormal","MAXA","arrayValuesToNumbers","median","MINA","currentItem","maxItems","negbin","PEARSON","den1","den2","fl","cleanFloat","uniques","PERMUT","PERMUTATIONA","PHI","poisson","PROB","upper","quart","order","ROW","ROWS","RSQ","m2","m3","SLOPE","STANDARDIZE","STDEVA","VARA","STDEVPA","VARPA","STEYX","lft","TRANSPOSE","df","studentt","mean_x","mean_y","s_x","s_y","TREND","new_data_x","linest","TRIMMEAN","ASC","BAHTTEXT","CHAR","CLEAN","CONCATENATE","trueFound","falseFound","DBCS","DOLLAR","EXACT","text1","text2","FIND","find_text","within_text","FIXED","HTML2TEXT","LEN","LOWER","MID","NUMBERVALUE","decimal_separator","group_separator","PRONETIC","PROPER","txt","REGEXEXTRACT","regular_expression","REGEXMATCH","full","REGEXREPLACE","REPLACE","new_text","SEARCH","foundAt","SPLIT","SUBSTITUTE","old_text","occurrence","TEXT","TRIM","UNICHAR","UNICODE","UPPER","VALUE","flattenShallow","aIsArray","bIsArray","isFlat","bool","up","parseMatrix","pnarr","iteratee","validSymbols","TOKEN_TYPE_OPERATOR","SUPPORTED_TOKENS","analyzeTokens","literalValue","analyzedTokens","unshift","expressionLength","cursorIndex","processedValue","processedSymbol","char","tokenizeExpression","evaluate","EMPTY_LIST","UNIQUE_ID","useScrollLocker","lock","mergedLock","useLayoutEffect","scrollbarSize","getTargetScrollBarSize","isOverflow","removeCSS","inline","getPortalContainer","getContainer","canUseDom","autoLock","_props$autoDestroy","debug","autoDestroy","shouldRender","setShouldRender","mergedRender","innerContainer","setInnerContainer","customizeContainer","_useDom","appendedRef","queueCreate","OrderContext","setQueue","mergedQueueCreate","appendFn","cleanup","_ele$parentElement","useDom","_useDom2","defaultContainer","mergedContainer","childRef","supportRef","useComposeRef","nextInline","renderInline","reffedChildren","createPortal","nn","rn","freeze","isFrozen","tn","en","on","revocable","revoke","for","ownKeys","getOwnPropertyNames","getOwnPropertyDescriptors","deleteProperty","un","produce","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","op","an","createThunkMiddleware","extraArgument","thunk","withExtraArgument","createDraftSafeSelector","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","__REDUX_DEVTOOLS_EXTENSION__","isPlainObject","createAction","prepareAction","actionCreator","prepared","__spreadValues","isAction","isValidKey","MiddlewareArray","species","EnhancerArray","freezeDraftable","isDraftable","createNextState","curryGetDefaultMiddleware","middlewareArray","immutableCheck","serializableCheck","actionCreatorCheck","isBoolean","thunkMiddleware","IS_PRODUCTION","curriedGetDefaultMiddleware","_g","preloadedState","_h","enhancers","finalMiddleware","middlewareEnhancer","applyMiddleware","finalCompose","compose2","defaultEnhancers","storeEnhancers","composedEnhancer","createStore","executeReducerBuilderCallback","builderCallback","defaultCaseReducer","actionsMap","actionMatchers","builder","addCase","typeOrActionCreator","addMatcher","matcher","addDefaultCase","_reducer","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","buildReducer","finalCaseReducers","mapOrBuilderCallback","finalActionMatchers","finalDefaultCaseReducer","isStateFunction","frozenInitialState_1","caseReducers","cr","previousState","caseReducer","isDraft2","isDraftable2","createNextState2","draft","createReducer","actionMatchers_1","reducerName","prepareCallback","maybeReducerWithPrepare","prepare","createSingleArgumentStateOperator","mutator","createStateOperator","isPayloadActionArgument","arg2","runMutator","isDraft3","createNextState3","selectIdValue","ensureEntitiesArray","splitAddedUpdatedEntities","newEntities","updated","newEntities_1","changes","createUnsortedStateAdapter","addOneMutably","ids","addManyMutably","newEntities_2","setOneMutably","removeManyMutably","didMutate","updateManyMutably","updates","newKeys","updatesPerEntity","didMutateIds","original2","hasNewKey","takeNewKey","upsertManyMutably","setOne","setMany","newEntities_3","removeMany","stateFactory","additionalState","selectorsFactory","selectState","selectEntities","selectTotal","selectGlobalizedEntities","stateAdapter","models","merge","setManyMutably","appliedUpdates","updates_1","resortEntities","allEntities","newSortedIds","areArraysEqual","createSortedStateAdapter","nanoid","commonProperties","RejectWithValue","FulfillWithMeta","miniSerializeError","simpleError","commonProperties_1","createAsyncThunk2","typePrefix","payloadCreator","__spreadProps","requestStatus","serializeError","rejectedWithValue","AC","class_1","onabort","throwIfAborted","abortReason","idGenerator","abortController","promise2","__async","conditionResult","abortedPromise","getPendingMeta","race","fulfillWithValue","finalAction","err_1","dispatchConditionRejection","unwrapResult","withTypes","alm","queueMicrotask","promise","createQueueWithTimer","notify","requestAnimationFrame","enableES5","define","_superPropBase","receiver","stackToCall","once","defaultPrevented","AbortSignal","createEventObject","bubbles","cancelable","polyfillNeeded","__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL","abortableFetchDecorator","patchTargets","_patchTargets","_patchTargets$Request","NativeRequest","NativeAbortController","_patchTargets$__FORCE","realFetch","isPrototypeOf","abortError","DOMException","cancellation","toStringTag","_abortableFetch","isThenable","thing","clickedRef","onInternalClose","timeoutId","autoFocus","buttonProps","convertLegacyProps","actionFn","returnValueOfOnOk","quitOnNullishReturnValue","handlePromiseOnOk","PresetStatusColorTypes","tuple","PresetColorTypes","getDataOrAriaProps","getRenderPropValue","propValue","flexible","setFlexible","detectFlexGapSupported","useForceUpdate","_React$useReducer","getCollapsedHeight","getRealHeight","skipOpacityTransition","deadline","collapseMotion","motionName","onAppearStart","onEnterStart","onAppearActive","onEnterActive","onLeaveStart","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","motionDeadline","motion","autoAdjustOverflowEnabled","adjustX","adjustY","autoAdjustOverflowDisabled","targetOffset","getOverflowOptions","autoAdjustOverflow","getPlacements","_config$arrowWidth","arrowWidth","_config$horizontalArr","horizontalArrowShift","_config$verticalArrow","verticalArrowShift","arrowPointAtCenter","placementMap","points","topLeft","leftTop","topRight","rightTop","bottomRight","rightBottom","bottomLeft","leftBottom","placements","ignoreShake","isFragment","replaceElement","responsiveArray","responsiveMap","lg","xl","xxl","subscribers","subUid","responsiveObserve","matchHandlers","pointMap","subscribe","register","unsubscribe","screen","matchMediaQuery","handler","mql","removeListener","matchMedia","addListener","flexGapSupported","canUseDocElement","flexDirection","rowGap","wrapperRaf","myId","restFrames","raf","internalCallback","pid","styleForPseudo","Wave","animationStart","destroyed","waveColor","insertExtraNode","extraNode","attributeName","getAttributeName","isNotGrey","borderColor","nodeRoot","getRootNode","ownerDocument","nodeBody","Document","nodeType","Node","ELEMENT_NODE","getValidateContainer","attachTo","onTransitionStart","onTransitionEnd","resetEffect","animationName","bindAnimationEvent","getAttribute","tagName","getPropertyValue","clickWaveTimeoutId","animationStartId","renderWave","Element","innerHTML","contains","contextType","_this$state","errorDescription","iconMapFilled","iconMapOutlined","IconNode","iconType","CloseIcon","isClosable","closeText","closeIcon","handleClose","banner","_a$className","onMouseLeave","afterClose","_a$closeIcon","setClosed","getType","isShowIcon","alertCls","dataOrAriaProps","CSSMotion","motionAppear","motionEnter","motionClassName","motionStyle","SizeContextProvider","originSize","InternalAvatar","groupSize","scale","setScale","mounted","setMounted","isImgExist","setIsImgExist","avatarNodeRef","avatarChildrenRef","avatarNodeMergeRef","setScaleParam","childrenWidth","nodeWidth","_props$gap","gap","childrenToRender","_props$shape","shape","_props$size","customSize","srcSet","draggable","crossOrigin","others","needResponsive","responsiveSizeStyle","currentBreakpoint","currentSize","sizeCls","hasImageElement","transformString","childrenStyle","WebkitTransform","sizeChildrenStyle","_props$className","maxCount","maxStyle","cls","_props$maxPopoverPlac","maxPopoverPlacement","_props$maxPopoverTrig","maxPopoverTrigger","childrenWithProps","numOfChildren","childrenShow","childrenHidden","isPresetColor","_ref$placement","colorInPreset","ribbonCls","colorStyle","cornerColorStyle","UnitNumber","_ref$offset","getOffset","SingleNumber","unitNodes","offsetStyle","originCount","originValue","prevValue","setPrevValue","prevCount","setPrevCount","transition","unitNumberList","prevIndex","singleUnit","show","newProps","numberNodes","numberList","boxShadow","oriProps","customizeScrollNumberPrefixCls","scrollNumberPrefixCls","_a$count","_a$overflowCount","overflowCount","_a$dot","dot","_a$size","_a$showZero","showZero","numberedDisplayCount","isZero","hasStatus","showAsDot","mergedCount","countRef","livingCount","displayCountRef","displayCount","isDotRef","titleNode","statusTextNode","displayNode","statusCls","statusStyle","badgeClassName","statusTextColor","isDot","scrollNumberCls","scrollNumberStyle","ScrollNumber","Ribbon","GroupSizeContext","classes","getCollapsedWidth","getRealWidth","existIcon","removeOnLeave","rxTwoCNChar","isTwoCNChar","isUnBorderedButtonType","spaceChildren","needInserted","isPrevChildPure","childList","isCurrentChildPure","lastIndex","lastChild","SPACE","insertSpace","InternalButton","_props$loading","_props$type","_props$ghost","_props$block","_props$htmlType","htmlType","innerLoading","hasTwoCNChar","setHasTwoCNChar","autoInsertSpaceInButton","buttonRef","isNeedInserted","loadingOrDelay","delayTimer","buttonText","textContent","handleClick","autoInsertSpace","sizeFullname","large","small","middle","linkButtonRestProps","LoadingIcon","kids","buttonNode","__ANT_BUTTON","GroupContext","InternalCheckboxGroup","_a$options","registeredValues","setRegisteredValues","getOptions","groupPrefixCls","domProps","toggleOption","optionIndex","registerValue","prevValues","cancelValue","CheckboxGroup","InternalCheckbox","_a$indeterminate","indeterminate","_a$skipGroup","skipGroup","checkboxGroup","contextDisabled","checkboxProps","checkboxClass","ariaChecked","RcCheckbox","__ANT_CHECKBOX","DisabledContextProvider","originDisabled","suffixCls","withConfigConsumer","cons","configProps","basicPrefixCls","Empty","image","PRESENTED_IMAGE_SIMPLE","_props$locale","locale","_ANT_MARK__","changeConfirmLocale","getMemoizedContextValue","exist","LocaleContext","dynamicStyleMark","registerTheme","globalPrefixCls","formatColor","updater","fillColor","colorVal","colorPalettes","primaryColors","primaryActiveColor","successColor","warningColor","errorColor","infoColor","cssList","getStyle","globalIconPrefixCls","PASSED_PROPS","getGlobalPrefixCls","getGlobalIconPrefixCls","globalConfig","getIconPrefixCls","getRootPrefixCls","ProviderChildren","componentSize","space","virtual","legacyLocale","parentContext","iconPrefixCls","componentDisabled","propName","memoedConfig","prevConfig","currentConfig","prevKeys","currentKeys","memoIconContextValue","childNode","validateMessages","defaultLocale","defaultValidateMessages","ValidateMessagesContext","LocaleProvider","ConfigProvider","getNow","getFixedDate","getEndDate","endOf","getWeekDay","weekday","localeData","firstDayOfWeek","getYear","getHour","getMinute","getSecond","addYear","addMonth","addDate","setYear","setHour","setMinute","setSecond","isAfter","isValidate","getWeekFirstDay","getWeekFirstDate","getWeek","week","getShortWeekDays","weekdaysMin","getShortMonths","monthsShort","_format","formats","fallbackFormatList","formatText","matchFormat","matchText","_date","noteOnce","SwapRightOutlined","SwapRightOutlinedSvg","HIDDEN_STYLE","_ref$prevIcon","prevIcon","_ref$nextIcon","nextIcon","_ref$superPrevIcon","superPrevIcon","_ref$superNextIcon","superNextIcon","onSuperPrev","onSuperNext","onPrev","onNext","PanelContext","hideNextBtn","hidePrevBtn","generateConfig","viewDate","onPrevDecades","onNextDecades","hideHeader","headerPrefixCls","yearNumber","startYear","DECADE_DISTANCE_COUNT","endYear","nextTime","setDateTime","newDate","getLastDay","lastDay","monthShow","PanelBody","rowNum","colNum","prefixColumn","baseDate","getCellClassName","getCellText","getCellNode","getCellDate","titleCell","headerCells","onDateMouseEnter","onDateMouseLeave","cellPrefixCls","rowStartDate","currentDate","getCellDateDisabled","cellDate","DECADE_UNIT_DIFF_DES","DECADE_UNIT_DIFF","decadeYearNumber","startDecadeYear","endDecadeYear","baseDecadeYear","DECADE_COL_COUNT","startDecadeNumber","endDecadeNumber","scrollIds","cancelAnimationFrame","perTick","createKeyDownHandler","onLeftRight","onCtrlLeftRight","onUpDown","onPageUpDown","onEnter","PAGE_UP","PAGE_DOWN","getDefaultFormat","use12Hours","mergedFormat","getInputSize","defaultSize","globalClickFunc","clickCallbacks","PickerModeMap","quarter","elementsContains","elements","onViewDateChange","operationRef","onPanelChange","panelPrefixCls","onDecadesChange","DecadeHeader","DecadeBody","isNullEqual","isSameYear","getQuarter","isSameQuarter","quarter1","quarter2","isSameMonth","month1","month2","isSameDate","isSameWeek","time1","time2","isSameTime","isInRange","getClosingViewDate","formatValue","parseValue","formatList","getDisabledFromRange","currentMode","startMonth","leftPad","retProps","updateValues","newValues","hideDisabledOptions","ulRef","liRefs","scrollRef","li","tryOrNextFrame","isVisible","waitElementReady","_scrollRef$current","shouldUnitsUpdate","prevUnits","nextUnits","generateUnits","disabledUnits","integerStep","isPM","activeColumnIndex","showHour","showMinute","showSecond","_props$hourStep","hourStep","_props$minuteStep","minuteStep","_props$secondStep","secondStep","disabledHours","disabledMinutes","disabledSeconds","disabledTime","columns","contentPrefixCls","columnPrefixCls","originHour","disabledConfig","mergedDisabledHours","mergedDisabledMinutes","mergedDisabledSeconds","rawHours","memorizedRawHours","_React$useMemo3","AMPMDisabled","hourValue","_React$useMemo4","AMDisabled","PMDisabled","hours","hourMeta","hourLabel","minutes","seconds","isNewPM","newHour","newMinute","newSecond","mergedHour","mergedMinute","mergedSecond","newDisabledMinutes","availableMinute","newDisabledSeconds","availableSecond","utilSetTime","useTimeSelection","addColumnNode","columnValue","onColumnSelect","valueIndex","unitLen","nextUnit","TimeUnitColumn","PMIndex","_props$format","_props$use12Hours","bodyOperationRef","setActiveColumnIndex","columnsCount","TimeHeader","TimeBody","useCellClassName","rangedValue","hoverRangedValue","isInView","isSameCell","offsetCell","prevDate","nextDate","rangeStart","rangeEnd","hoverStart","hoverEnd","isRangeHovered","isRangeStart","isRangeEnd","isHoverStart","isHoverEnd","isHoverEdgeStart","isHoverEdgeEnd","rowCount","dateRender","RangeContext","weekFirstDay","monthStartDate","startDateWeekDay","alignStartDate","getWeekStartDate","weekDaysLocale","shortWeekDays","onNextMonth","onPrevMonth","onNextYear","onPrevYear","onYearClick","onMonthClick","monthsLocale","shortMonths","yearNode","yearFormat","monthNode","monthFormat","monthYearNodes","monthBeforeYear","_props$panelName","panelName","keyboardConfig","_onSelect","onYearChange","onMonthChange","DateHeader","DateBody","ACTIVE_PANEL","activePanel","setActivePanel","dateOperationRef","timeOperationRef","timeProps","TAB","nextActivePanel","getNextActive","selectedDate","disabledTimes","DatePanel","TimePanel","rowPrefixCls","monthCellRender","baseMonth","MonthHeader","MonthBody","baseQuarter","quarterFormat","QuarterHeader","QuarterBody","onPrevDecade","onNextDecade","onDecadeClick","YEAR_DECADE_COUNT","yearPrefixCls","baseYear","YEAR_COL_COUNT","currentYearNumber","sourceMode","onDecadeChange","YearHeader","YearBody","getExtraFooter","getRanges","presetNode","okNode","_ref$rangeList","rangeList","_ref$components","needConfirmButton","onNow","okDisabled","showNow","rangeItem","button","CALENDAR_PANEL_MODE","pickerValue","defaultPickerValue","_props$picker","_props$tabIndex","showToday","onPickerValueChange","_onOk","isHourStepValid","isMinuteStepValid","isSecondStepValid","panelContext","panelDivRef","panelRef","onContextSelect","hideRanges","defaultOpenValue","inRange","panelPosition","initRef","mergedValue","setInnerValue","defaultDateObject","setInnerViewDate","setViewDate","getInternalNextMode","nextMode","getNextMode","_useMergedState5","_useMergedState6","mergedMode","setInnerMode","panelNode","setSourceMode","onInternalKeyDown","selectable","operationFnc","isDateMode","extraFooter","rangesNode","todayNode","pickerProps","newMode","viewValue","DecadePanel","YearPanel","MonthPanel","QuarterPanel","WeekPanel","DatetimePanel","lowerBoundTime","lowerBoundHour","lowerBoundMinute","getLowerBoundTime","adjustedNow","todayCls","BUILT_IN_PLACEMENTS","popupElement","popupStyle","dropdownAlign","Trigger","showAction","hideAction","builtinPlacements","popupTransitionName","popupAlign","usePickerInput","isClickOutside","triggerOpen","forwardKeyDown","_onKeyDown","blurToCancel","_onFocus","onFocus","_onBlur","currentFocusedKey","_ref$key","typing","setTyping","focused","setFocused","delayBlurTimer","preventBlurRef","valueChangedRef","preventDefaultRef","inputProps","SHIFT","activeElement","shadowRoot","_e$composedPath","composed","composedPath","getTargetFromEvent","clickedOutside","queueFunc","useTextValueMapping","valueTexts","onTextChange","setInnerText","valueTextsRef","resetText","valText","useValueTexts","firstValueText","fullValueTexts","formatStr","useHoverValue","valueText","internalSetValue","immediately","_useValueTexts","firstText","onLeave","InnerPicker","inputReadOnly","defaultOpen","pickerRef","panelRender","onOpenChange","onMouseUp","onContextMenu","_props$autoComplete","autoComplete","inputRender","inputRef","inputDivRef","selectedValue","setSelectedValue","postOpen","newOpen","triggerInnerOpen","_useValueTexts2","_useTextValueMapping","newText","inputDate","_useTextValueMapping2","triggerTextChange","_usePickerInput","_usePickerInput2","_usePickerInput2$","blur","_useHoverValue","_useHoverValue2","hoverValue","panelProps","PickerPanel","suffixNode","clearNode","panel","mergedInputProps","readOnly","inputNode","PickerTrigger","Picker","getStartEndDistance","startNext","getDistance","compareFunc","decade1","decade2","isSameDecade","useRangeViewDates","defaultDates","defaultViewDates","setDefaultViewDates","viewDates","setInternalViewDates","getRangeViewDate","newViewDates","anotherIndex","reorderValues","canValueTrigger","allowEmpty","InnerRangePicker","_classNames3","_classNames4","_disabledTime","onCalendarChange","activePickerIndex","openRecordsRef","startInputDivRef","endInputDivRef","separatorRef","startInputRef","endInputRef","arrowRef","mergedActivePickerIndex","setMergedActivePickerIndex","_useRangeViewDates","_useRangeViewDates2","getViewDate","postValues","_useMergedState7","_useMergedState8","mergedModes","setInnerModes","triggerModesChange","modes","_useRangeDisabled","disabledStart","disabledEnd","weekFirstDate","monthNumber","quarterNumber","useRangeDisabled","_useRangeDisabled2","disabledStartDate","disabledEndDate","_useMergedState9","_useMergedState10","startOpen","endOpen","popupMinWidth","setPopupMinWidth","triggerRef","_triggerOpen","openRecords","triggerOpenAndFocus","sourceIndex","startValue","endValue","startStr","endStr","canStartValueTrigger","canEndValueTrigger","nextOpenIndex","sharedTextHooksProps","startValueTexts","firstStartValueText","_useValueTexts3","_useValueTexts4","endValueTexts","firstEndValueText","_onTextChange","startText","triggerStartTextChange","resetStartText","_useTextValueMapping3","_useTextValueMapping4","endText","triggerEndTextChange","resetEndText","rangeHoverValue","setRangeHoverValue","setHoverRangedValue","startHoverValue","onStartEnter","onStartLeave","_useHoverValue3","_useHoverValue4","endHoverValue","onEndEnter","onEndLeave","getSharedInputHookProps","startInputProps","startFocused","startTyping","_usePickerInput3","_usePickerInput4","endInputProps","_usePickerInput4$","endFocused","endTyping","renderPanel","panelHoverRangedValue","panelShowTime","timeDefaultValues","panelDateRender","arrowLeft","panelLeft","arrowMarginLeft","offsetLeft","arrowPositionStyle","rangePanel","panels","nextViewDate","showDoublePanel","leftPanel","newViewDate","rightPanel","mergedNodes","marginLeft","renderPanels","inputSharedProps","activeBarLeft","activeBarWidth","activeBarPositionStyle","getPlaceholder","customizePlaceholder","lang","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","timePickerLocale","getRangePlaceholder","rangeYearPlaceholder","rangeQuarterPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","rangePlaceholder","transPlacement2DropdownAlign","Components","getTimeProps","firstFormat","showTimeObj","_generateSinglePicker","getPicker","customizeGetPopupContainer","innerRef","useImperativeHandle","additionalProps","additionalOverrideProps","mergedPicker","formItemContext","enUS","RCPicker","WeekPicker","MonthPicker","YearPicker","QuarterPicker","generateSinglePicker","customGetPopupContainer","RCRangePicker","generateRangePicker","MergedDatePicker","generatePicker","momentGenerateConfig","backToToday","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","dayFormat","dateTimeFormat","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","CalendarLocale","TimePickerLocale","notEmpty","itemPrefixCls","colon","colSpan","renderCells","showLabel","showContent","rootLabelStyle","rootContentStyle","_ref3$props","_ref3$props$prefixCls","_ref3$props$span","Cell","descContext","DescriptionsContext","vertical","DEFAULT_COLUMN_MAP","getFilledItem","rowRestCol","_ref$column","_ref$colon","setScreens","mergedColumn","breakpoint","getColumn","ResponsiveObserve","newScreens","tmpRow","mergedSpan","getRows","DescriptionsItem","eventHandlers","onMouseOver","parseWidthHeight","sentinelStyle","outline","DrawerPopup","_pushConfig$distance","_pushConfig","forceRender","rootStyle","contentWrapperStyle","mask","maskMotion","maskClassName","maskStyle","afterOpenChange","sentinelStartRef","sentinelEndRef","_panelRef$current","preventScroll","pushed","setPushed","DrawerContext","pushDistance","distance","mergedContext","pull","_parentContext$push","_parentContext$pull","_parentContext$pull2","maskNode","maskRef","motionMaskClassName","motionMaskStyle","motionProps","onVisibleChanged","leavedClassName","motionRef","pickAttrs","DrawerPanel","containerStyle","_sentinelStartRef$cur","_sentinelEndRef$curre","_props$open","_props$placement","_props$autoFocus","_props$keyboard","_props$width","_props$mask","_props$maskClosable","animatedVisible","setAnimatedVisible","lastActiveRef","drawerPopupProps","_lastActiveRef$curren","Portal","defaultPushState","_props$closable","_props$push","_props$closeIcon","bodyStyle","headerStyle","footerStyle","customizeGetContainer","afterVisibleChange","_afterOpenChange","closeIconNode","drawerClassName","mergedWidth","mergedHeight","motionLeave","NoCompactStyle","NoFormStyle","override","RcDrawer","isOpen","motionPlacement","footerClassName","topCenter","bottomCenter","_props$arrow","arrow","animation","_props$placements","Placements","overlayStyle","_props$trigger","triggerVisible","setTriggerVisible","mergedVisible","onVisibleChange","focusMenuRef","handleCloseMenuAndReturnFocus","_triggerRef$current","_triggerRef$current$t","_triggerRef$current$t2","_triggerRef$current$t3","focusMenu","_triggerRef$current2","_triggerRef$current2$","_triggerRef$current2$2","_triggerRef$current2$3","firstElement","getFocusNodeList","popupRef","getElement","focusResult","useAccessibility","getMenuElement","overlayElement","getOverlayElement","triggerHideAction","popupAnimation","stretch","minOverlayWidthMatchTrigger","alignPoint","getMinOverlayWidthMatchTrigger","newVisible","onVisibleChangeProp","onPopupClick","onOverlayClick","childrenProps","childClassName","openClassName","getOpenClassName","DropdownButton","_props$icon","_props$buttonsRender","buttonsRender","buttons","mouseEnterDelay","mouseLeaveDelay","destroyPopupOnHide","_buttonsRender","_buttonsRender2","leftButtonToRender","rightButtonToRender","Compact","dropdownRender","_props$mouseEnterDela","_props$mouseLeaveDela","_props$autoAdjustOver","only","dropdownTrigger","triggerActions","setOpen","onInnerOpenChange","useEvent","nextOpen","overlayClassNameCustomized","pointAtCenter","onMenuClick","RcDropdown","overlayNode","OverrideProvider","getPlacement","viewBox","xmlns","fillRule","cx","cy","rx","ry","defaultEmptyImg","DefaultEmptyImg","simpleEmptyImg","SimpleEmptyImg","_a$image","imageStyle","des","imageNode","PRESENTED_IMAGE_DEFAULT","FormContext","labelAlign","itemRef","NoStyleItemContext","FormProvider","providerProps","RcFormProvider","FormItemPrefixContext","formItemInputContext","newFormItemInputContext","newContext","useDebounce","cacheValue","setCacheValue","toErrorEntity","errorStatus","ErrorList","help","helpStatus","_ref$errors","_ref$warnings","warnings","fieldId","baseClassName","debounceErrors","debounceWarnings","fullKeyList","helpProps","holderProps","holderClassName","holderStyle","CSSMotionList","itemClassName","itemStyle","overflowY","overflowX","defaultView","frameElement","scrollMode","boundary","skipOverflowHiddenElements","scrollingElement","visualViewport","scrollX","pageXOffset","scrollY","pageYOffset","getBoundingClientRect","borderLeftWidth","borderTopWidth","borderRightWidth","borderBottomWidth","scrollLeft","isOptionsObject","targetIsDetached","behavior","computeOptions","canSmoothScroll","scroll","defaultBehavior","formItemNameBlackList","defaultItemNamePrefixCls","candidate","getFieldId","namePath","formName","toNamePathStr","_useRcForm","useRcForm","rcForm","itemsRef","wrapForm","__INTERNAL__","namePathStr","scrollToField","scrollIntoView","getFieldInstance","InternalForm","contextSize","contextForm","_props$disabled","labelWrap","labelCol","wrapperCol","hideRequiredMark","_props$layout","scrollToFirstError","requiredMark","onFinishFailed","restFormProps","contextValidateMessages","mergedRequiredMark","mergedColon","formClassName","_useForm","formContextValue","FieldForm","defaultScrollToFirstError","errorFields","htmlFor","_useLocaleReceiver","formLocale","contextLabelAlign","contextLabelCol","contextColon","mergedLabelCol","mergedLabelAlign","labelClsBasic","labelColClassName","labelChildren","computedColon","toTooltipProps","_tooltipProps$icon","restTooltipProps","tooltipNode","optional","labelClassName","formItemRender","_internalItemRender","onErrorVisibleChanged","formContext","mergedWrapperCol","subFormContext","inputDom","errorListDom","flexWrap","extraProps","extraDom","errorList","iconMap","validating","ItemHolder","validateStatus","onSubItemMetaChange","hasHelp","setMarginBottom","mergedValidateStatus","touched","formItemStatusContext","FormItemLabel","FormItemInput","MemoInput","childProps","FormItem","shouldUpdate","messageVariables","isRenderProps","notifyParentMetaChange","contextValidateTrigger","FieldContext","mergedValidateTrigger","hasName","hasValidName","listContext","ListContext","fieldKeyPathRef","_useFrameState","frameRef","batchRef","destroyRef","useFrameState","_useFrameState2","subFieldErrors","setSubFieldErrors","validated","setMeta","subMeta","uniqueKeys","prevSubFieldErrors","mergedNameKey","warningList","subFieldError","mergedErrors","mergedWarnings","getItemRef","childrenRef","nameStr","originRef","useItemRef","renderLayout","baseChildren","Field","onMetaChange","nextMeta","keyInfo","getKey","_keyInfo","fieldKey","restPath","control","renderMeta","mergedName","rule","warningOnly","ruleEntity","mergedControl","describedbyArr","_a2","_c2","watchingChildProps","useStatus","useFormItemStatus","List","operation","useFormInstance","useWatch","RowContext","sizes","_React$useContext2","supportFlexGap","sizeClassObj","sizeProps","propSize","horizontalGutter","verticalGutter","parseFlex","refreshOnChange","screensRef","forceUpdate","supportScreens","useInternalBreakpoint","useMergePropByScreen","oriProp","curVal","clacMergeAlignOrJustify","_props$gutter","curScreens","setCurScreens","mergeAlign","mergeJustify","useFlexGapSupport","gutterRef","currentGutter","gutters","getGutter","_gutters","_gutters2","gutterH","gutterV","rowContext","UpOutlined","UpOutlinedSvg","supportBigInt","BigInt","trimNumber","numStr","trimStr","splitNumber","integerStr","decimalStr","negativeStr","fullStr","isE","getNumberPrecision","decimalMatch","validateNumber","num2str","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","getDecupleSteps","stepStr","NumberDecimal","empty","isInvalidate","maxPrecision","negate","BigIntDecimal","integer","decimalLen","nan","trimRet","padStart","decimalLength","getMark","getIntegerStr","getDecimalStr","padEnd","maxDecimalLength","_trimNumber","alignDecimal","hydrateValueStr","NaN","getMiniDecimal","separatorStr","cutOnly","_trimNumber2","precisionDecimalStr","numberWithoutDecimal","advancedNum","repeat","StepHandler","upNode","downNode","upDisabled","downDisabled","onStep","stepTimeoutRef","onStepRef","onStepMouseDown","loopStep","onStopStep","isMobile","handlerClassName","upClassName","downClassName","sharedHandlerProps","unselectable","getDecimalValue","decimalValue","getDecimalIfValidate","_props$step","upHandler","downHandler","_props$controls","decimalSeparator","onInput","onPressEnter","inputClassName","setFocus","userTypingRef","compositionRef","shiftKeyRef","setDecimalValue","getPrecision","userTyping","mergedParser","parsedStr","inputValueRef","mergedFormatter","mergedPrecision","initValue","setInternalInputValue","setInputValue","maxDecimal","minDecimal","lessEquals","_useCursor","selectionRef","selectionStart","selectionEnd","beforeTxt","afterTxt","_selectionRef$current","startPos","beforeLastChar","newIndex","useCursor","_useCursor2","recordCursor","restoreCursor","getRangeValue","triggerValueUpdate","newDecimal","updateValue","isRangeValidate","onNextPromise","idRef","useFrame","collectInputValue","inputStr","finalDecimal","nextInputStr","onInternalStep","_inputRef$current","stepDecimal","updatedValue","flushInputValue","parsedValue","useLayoutUpdateEffect","currentParsedValue","onBeforeInput","addonAfter","upIcon","downIcon","controlsTemp","mergeSize","inputNumberClass","RcInputNumber","affixWrapperCls","wrapperClassName","addonClassName","addonBeforeNode","addonAfterNode","mergedWrapperClassName","mergedGroupClassName","fixControlledValue","resolveOnChange","currentTarget","cloneNode","triggerFocus","cursor","inputHasPrefixSuffix","hasPrefixSuffix","prevHasPrefixSuffix","mergedAllowClear","removePasswordTimeout","useRemovePasswordTimeout","RcInput","affixWrapperClassName","groupClassName","ClearableInputType","ClearableLabeledInput","handleReset","needClear","statusContext","renderClearIcon","renderTextAreaWithClearIcon","fixEmojiLength","setTriggerValue","isCursorInEnd","preValue","triggerValue","newTriggerValue","_a$bordered","_a$showCount","showCount","clearableInputRef","compositing","setCompositing","oldCompositionValueRef","oldSelectionStartRef","handleSetValue","hasMaxLength","RcTextArea","resize","textareaNode","valueLength","dataCount","triggerOnMount","removePasswordTimeoutRef","hasAttribute","removeAttribute","timer","groupFormItemContext","EyeInvisibleOutlined","EyeInvisibleOutlinedSvg","defaultIconRender","ActionMap","hover","_props$visibilityTogg","visibilityToggle","visibilityControlled","prevState","renderPassword","customizeInputPrefixCls","inputPrefixCls","_props$action","_props$iconRender","iconRender","iconTrigger","iconProps","getIcon","omittedProps","_props$enterButton","enterButton","customOnSearch","customOnChange","composedRef","searchIcon","btnClassName","enterButtonAsElement","isAntdButton","InternalInput","Search","Password","BarsOutlined","BarsOutlinedSvg","dimensionMaxMap","generateId","_a$defaultCollapsed","defaultCollapsed","_a$theme","_a$style","_a$collapsible","collapsible","_a$reverseArrow","reverseArrow","_a$width","_a$collapsedWidth","collapsedWidth","zeroWidthTriggerStyle","onCollapse","onBreakpoint","siderHook","LayoutContext","collapsed","setCollapsed","below","setBelow","handleSetCollapsed","responsiveHandlerRef","responsiveHandler","addSider","removeSider","toggle","siderCollapsed","divProps","rawWidth","siderWidth","isNumeric","zeroWidthTrigger","defaultTrigger","triggerDom","divStyle","siderCls","renderSider","generator","BasicComponent","Basic","BasicLayout","siders","setSiders","hasSider","currentId","_props$componentName","antLocale","defaultLocaleData","localeFromContext","localeCode","typeTemplate","Pagination","Calendar","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","filterCheckall","filterSearchPlaceholder","emptyText","selectInvert","selectNone","selectionAll","sortTitle","collapse","triggerDesc","triggerAsc","cancelSort","justOkText","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","remove","selectCurrent","removeCurrent","uploading","removeFile","uploadError","previewFile","whitespace","invalid","regexp","mismatch","Image","preview","OverrideContext","IdContext","getMenuId","eventKey","useMenuId","MenuContext","InheritableContextProvider","locked","inheritableContext","mergeProps","EmptyList","PathRegisterContext","useMeasure","PathTrackerContext","useFullPath","parentKeyPath","PathUserContext","HOME","END","ArrowKeys","getFocusableElements","container","getNextFocusElement","parentQueryContainer","focusMenuElement","sameLevelFocusableMenuElementList","focusIndex","activeKey","getKeyPath","triggerActiveKey","triggerAccessibilityOpen","originOnKeyDown","rafRef","activeRef","cleanRaf","key2element","element2key","refreshElements","getFocusElement","focusMenuKey","offsetObj","isRootLevel","_inline","_horizontal","_vertical","_offsets","inlineTrigger","horizontal","inlineSub","horizontalSub","verticalSub","sibling","tryFocus","menuElement","focusTargetElement","targetKey","targetElement","focusableElements","findContainerUL","controlId","keyPath","parentKey","parentMenuElement","PATH_SPLIT","getPathStr","OVERFLOW_KEY","useKeyRecords","internalForceUpdate","key2pathRef","path2keyRef","overflowKeys","setOverflowKeys","updateRef","registerPath","connectedPath","unregisterPath","refreshOverflowKeys","includeOverflow","isSubPathKey","getSubPathKeys","useMemoCallback","funRef","_funRef$current","uniquePrefix","internalId","onInactive","domEvent","useDirectionStyle","inlineIndent","warnItemProp","restInfo","LegacyMenuItem","attribute","elementRef","passedProps","Overflow","InternalMenuItem","warnKey","itemIcon","domDataId","onItemClick","overflowDisabled","contextItemIcon","selectedKeys","_internalRenderMenuItem","PrivateContext","itemCls","legacyMenuItemRef","mergedEleRef","connectedKeys","getEventInfo","mergedItemIcon","activeProps","selected","directionStyle","optionRoleProps","isSelected","MenuItem","connectedKeyPath","InternalSubMenuList","SubMenuList","parseChildren","_eventKey","_child$props","cloneProps","convertItemsToNodes","mergedKey","MenuItemGroup","Divider","parseItems","placementsRtl","getMotion","defaultMotions","popupPlacementMap","PopupTrigger","popupOffset","subMenuOpenDelay","subMenuCloseDelay","triggerSubMenuAction","forceSubMenuRender","innerVisible","setInnerVisible","targetMotion","targetMotionRef","mergedMotion","visibleRef","popupMotion","InlineSubMenuList","fixedMode","sameModeRef","setDestroy","originOnVisibleChanged","MenuContextProvider","InternalSubMenu","internalPopupClose","onTitleClick","onTitleMouseEnter","onTitleMouseLeave","openKeys","contextExpandIcon","_internalRenderSubMenuItem","subMenuPrefixCls","originOpen","childrenSelected","childrenActive","setChildrenActive","triggerChildrenActive","newActive","mergedActive","onMergedItemClick","popupId","isSubMenu","triggerModeRef","triggerMode","listNode","_childList$","_ref$prefixCls","_ref$tabIndex","_ref$mode","inlineCollapsed","disabledOverflow","_ref$subMenuOpenDelay","_ref$subMenuCloseDela","defaultOpenKeys","defaultActiveFirst","_ref$selectable","_ref$multiple","defaultSelectedKeys","onDeselect","_ref$inlineIndent","_ref$triggerSubMenuAc","_ref$overflowedIndica","overflowedIndicator","overflowedIndicatorPopupClassName","openAnimation","openTransitionName","setUUID","useUUID","mergedOpenKeys","setMergedOpenKeys","triggerOpenKeys","doUpdate","flushSync","inlineCacheOpenKeys","setInlineCacheOpenKeys","mergedInlineCollapsed","isInlineMode","internalMode","setInternalMode","internalInlineCollapsed","setInternalInlineCollapsed","lastVisibleIndex","setLastVisibleIndex","allVisible","_useKeyRecords","registerPathContext","pathUserContext","mergedActiveKey","setMergedActiveKey","_childList$find","_containerRef$current2","_containerRef$current3","shouldFocusKey","mergedSelectKeys","setMergedSelectKeys","onInternalClick","newSelectKeys","selectInfo","triggerSelection","onInternalOpenChange","newOpenKeys","subPathKeys","getInternalPopupContainer","privateContext","wrappedChildList","itemComponent","dir","renderRawItem","renderRawRest","omitItems","originOmitItems","INVALIDATE","RESPONSIVE","ssr","newLastIndex","InternalMenuItemGroup","ExportMenu","ItemGroup","dashed","firstLevel","renderItem","_this$context","disableMenuItemTitleTooltip","tooltipTitle","childrenLength","returnNode","renderItemChildren","_this$context2","wrapNode","antdMenuTheme","parentPath","titleIsSpan","RcSubMenu","MenuDivider","useItems","InternalMenu","_props$theme","_internalDisableMenuItemTitleTooltip","mergedSelectable","menuClassName","RcMenu","messageInstance","defaultTop","defaultDuration","localPrefixCls","hasTransitionName","getKeyThenIncreaseKey","getRCNotificationInstance","_globalConfig","instanceConfig","RCNotification","newInstance","typeToIcon","typeList","getRCNoticeProps","IconComponent","messageClass","api","closePromise","notice","removeNotice","filled","attachTypeApi","originalApi","isArgsProps","useMessage","getRcNotificationInstance","innerInstance","noticeProps","holderCallback","_useRCNotification","useRCNotification","_useRCNotification2","hookNotify","holder","hookApiRef","createUseMessage","useOriginId","reactId","innerId","setInnerId","nextId","Mask","maskProps","getMotionName","getScroll","ariaId","bodyProps","modalRender","holderRef","changeActive","footerNode","headerNode","closer","MemoChildren","mousePosition","dialogRef","transformOrigin","setTransformOrigin","onPrepare","elementOffset","rect","parentWindow","onAppearPrepare","onEnterPrepare","Panel","Dialog","_props$visible","_props$focusTriggerAf","focusTriggerAfterClose","wrapStyle","wrapClassName","wrapProps","maskTransitionName","maskAnimation","lastOutSideActiveElementRef","wrapperRef","contentRef","contentClickRef","contentTimeoutRef","onWrapperClick","_contentRef$current","focusDialogContent","DialogWrap","_props$destroyOnClose","_afterClose","handleOk","centered","defaultFooter","getConfirmLocale","_props$okType","okType","_props$confirmLoading","confirmLoading","cancelButtonProps","closeIconToRender","wrapClassNameExtended","okCancel","autoFocusButton","cancelButton","ActionButton","triggerCancel","defaultRootPrefixCls","confirm","createDocumentFragment","param","destroyFns","reactUnmount","runtimeLocale","reactRender","ConfirmDialog","configUpdate","withWarn","withInfo","withSuccess","withError","withConfirm","HookModal","innerConfig","setInnerConfig","newConfig","originConfig","ElementsHolder","_props","_usePatchElement","setElements","originElements","usePatchElement","_usePatchElement2","patchElement","modalWarn","OriginModal","useModal","actionQueue","setActionQueue","getConfirmFunc","withFunc","closeFunc","modalRef","modal","destroyAction","updateAction","destroyAll","newLocale","defaultGetContainer","defaultCloseIcon","notificationInstance","defaultBottom","defaultPrefixCls","defaultPlacement","getPlacementStyle","getNotificationInstance","_args$placement","_args$getContainer","cacheInstance","notificationClass","Notification","durationArg","btn","_args$closeIcon","autoMarginTag","createUseNotification","Overlay","_props$showCancel","showCancel","defaultVisible","settingOpen","prefixClsConfirm","overlayClassNames","_overlay","_props$overlayStyle","mergedOverlay","strokeColor","strokeLinecap","trailColor","trailWidth","gapPosition","useTransitionDuration","pathsRef","prevTimeStamp","pathStyle","transitionDuration","isBrowserClient","retId","getUUID","stripPercentToNumber","VIEW_BOX_SIZE","getCircleStyle","perimeter","perimeterWithoutGap","rotateDeg","gapDegree","stepSpace","offsetDeg","positionDeg","strokeDashoffset","stroke","strokeDasharray","fillOpacity","_defaultProps$props","steps","_defaultProps$props$g","gradientId","radius","stepCount","circleStyle","percentList","strokeColorList","gradient","y2","stopColor","stepPtg","stackPtg","circleStyleForStack","elem","getStepStokeList","ptg","getStokeList","validProgress","progress","getSuccessPercent","successPercent","getPercentage","realSuccessPercent","_props$trailColor","_props$strokeLinecap","circleSize","circleWidth","gapPos","isGradient","_ref2$success","getStrokeColor","RCCircle","handleGradient","directionConfig","_strokeColor$from","_strokeColor$to","_strokeColor$directio","sortedGradients","gradients","tempArr","formattedKey","sortGradient","backgroundImage","backgroundProps","trailStyle","percentStyle","successPercentStyle","successSegment","_props$percent","_props$strokeWidth","stepWidth","styledSteps","ProgressStatuses","_props$showInfo","showInfo","progressStatus","getPercentNumber","getProgressStatus","progressInfo","isLineType","percentNumber","renderProcessInfo","strokeColorNotArray","strokeColorNotGradient","Line","Circle","RadioGroupContext","RadioGroupContextProvider","RadioOptionTypeContext","RadioOptionTypeContextProvider","InternalRadio","groupContext","radioOptionTypeContext","radioPrefixCls","optionType","radioProps","wrapperClassString","_props$buttonStyle","buttonStyle","ev","lastValue","RadioButton","__ANT_RADIO","WarningFilled","WarningFilledSvg","strokeLinejoin","IconMap","ExceptionMap","noFound","serverError","unauthorized","ExceptionStatus","SVGComponent","Extra","_ref3$status","PRESENTED_IMAGE_403","PRESENTED_IMAGE_404","PRESENTED_IMAGE_500","InternalSelect","mergedNotFound","_a$listHeight","listHeight","_a$listItemHeight","listItemHeight","isMultiple","selectProps","rcSelectRtlDropdownClassName","mergedClassName","RcSelect","menuItemSelectedIcon","OptGroup","mergedClearIcon","getSuffixIconNode","arrowIcon","mergedSuffixIcon","iconCls","SpaceCompactItemContext","compactItemContext","compactDirection","isFirstItem","CompactItem","clx","marginDirection","SpaceContext","horizontalSize","verticalSize","latestIndex","spaceSize","CompoundedSpace","_props$direction","_props$wrap","getNumberSize","keepEmpty","mergedAlign","cn","spaceContext","gapStyle","columnGap","defaultIndicator","spinPrefixCls","_props$spinning","customSpinning","shouldDelay","setSpinning","updateSpinning","renderSpin","spinClassName","spinElement","indicator","dotClassName","renderIndicator","containerClassName","SpinFC","spinClassProps","setDefaultIndicator","PresetColorRegex","PresetStatusColorRegex","InternalTag","_a$closable","tagStyle","presetColor","tagClassName","handleCloseClick","isNeedWave","tagProps","tagNode","CheckableTag","getDisabledCompatibleChildren","elementType","__ANT_SWITCH","_splitObject","picked","omitted","splitObject","spanStyle","isNoTitle","getTooltipPlacements","_props$arrowPointAtCe","getTooltipContainer","overlayInnerStyle","tempOpen","childCls","customOverlayClassName","formattedOverlayInnerStyle","arrowContentStyle","RcTooltip","getOverlay","vis","onPopupAlign","domNode","arrowContent","isCheckDisabled","disableCheckbox","isNil","TreeSelectContext","treeExpandAction","LegacyContext","treeExpandedKeys","treeDefaultExpandedKeys","onTreeExpand","treeIcon","showTreeIcon","switcherIcon","treeLine","treeNodeFilterProp","treeLoadedKeys","treeMotion","onTreeLoad","keyEntities","treeRef","memoTreeData","mergedCheckedKeys","_treeRef$current","lowerSearchValue","expandedKeys","setExpandedKeys","searchExpandedKeys","setSearchExpandedKeys","mergedExpandedKeys","getAllKeys","onListMouseDown","setActiveKey","activeEntity","_treeRef$current2","_treeRef$current3","treeProps","loadedKeys","Tree","itemHeight","showLine","checkStrictly","defaultExpandAll","onActiveChange","onCheck","onLoad","treeNode","expandAction","SHOW_ALL","strategy","convertChildrenToData","_ref$props","childData","fillLegacyProps","dataNode","useTreeData","simpleMode","pId","rootPId","keyNodes","rootNodeList","parseSimpleTreeData","_props$autoClearSearc","autoClearSearchValue","_props$treeNodeFilter","treeNodeLabelProp","treeCheckable","treeCheckStrictly","treeDataSimpleMode","_props$listHeight","_props$listItemHeight","treeConduction","mergedCheckable","mergedLabelInValue","mergedMultiple","internalValue","setInternalValue","_title","mergedTreeData","_useDataEntities","valueEntities","useDataEntities","splitRawValues","newRawValues","missingRawValues","existRawValues","filteredTreeData","fieldChildren","filterOptionFunc","upperStr","keepAll","useFilterTreeData","getLabel","titleList","toLabeledValues","draftValues","isRawValue","convert2LabelValues","rawDisabled","_rawLabel","rawLabel","rawValue","rawHalfChecked","labeledItem","rawMixedLabeledValues","fullCheckValues","halfCheckValues","rawLabeledValues","rawHalfLabeledValues","_useCheckedKeys","rawHalfCheckedValues","useCheckedKeys","_useCheckedKeys2","rawCheckedValues","_useCache","valueLabels","valueLabelsCache","filledValues","_item$label","mergedLabel","useCache","labeledValues","_keyEntities$key$node","_keyEntities$key","_keyEntities$key$node2","targetItem","rawDisplayValues","firstVal","cachedDisplayValues","eventValues","formattedKeyList","returnRawValues","returnLabeledValues","additionalInfo","triggerNode","generateMap","parentIncluded","included","TreeNode","checkedNode","val1","val2","fillAdditionalInfo","returnValues","onOptionSelect","selectedKey","_node$mergedFieldName","_splitRawValues","keyList","onInternalDropdownVisibleChange","legacyParam","treeSelectContext","legacyContext","GenericTreeSelect","InternalTreeSelect","_switcherIcon","_a$treeIcon","_a$choiceTransitionNa","treePrefixCls","treeSelectPrefixCls","RcTreeSelect","nodeProps","renderSwitcherIcon","CaretDownFilled","CaretDownFilledSvg","MinusSquareOutlined","MinusSquareOutlinedSvg","PlusSquareOutlined","PlusSquareOutlinedSvg","treeNodeProps","showLeafIcon","leafIcon","leafCls","switcherCls","switcher","getBody","upload","onProgress","onprogress","loaded","FormData","filename","getError","withCredentials","acceptedFiles","acceptedFilesArray","mimeType","baseMimeType","validType","lowerFileName","lowerType","affixList","affix","files","isAccepted","_traverseFileTree","isFile","webkitRelativePath","defineProperties","isDirectory","dirReader","createReader","readEntries","entryList","loopFiles","entryItem","webkitGetAsEntry","AjaxUploader","_Component","getUid","reqs","fileInput","_isMounted","accept","directory","attrAccept","uploadFiles","onFileDrop","traverseFileTree","dataTransfer","_file","originFiles","postFiles","processFile","onBatchStart","parsedFile","transformedFile","mergedAction","mergedData","parsedData","mergedParsedFile","File","saveFileInput","defaultRequest","requestOption","_this$props4","openFileDialogOnClick","dirProps","webkitdirectory","onDrop","onDragOver","aria","uploader","saveUploader","AjaxUpload","multipart","FileTwoTone","FileTwoToneSvg","PictureTwoTone","PictureTwoToneSvg","file2Obj","lastModified","lastModifiedDate","originFileObj","updateFileList","nextFileList","fileIndex","getFileItem","matchKey","isImageFileType","isImageUrl","thumbUrl","filenameWithoutSuffix","extname","MEASURE_SIZE","previewImage","canvas","cssText","getContext","img","drawWidth","drawHeight","offsetX","offsetY","drawImage","dataURL","toDataURL","revokeObjectURL","_reader","DownloadOutlined","DownloadOutlinedSvg","listType","progressProps","actionIconRender","isImgUrl","showPreviewIcon","showRemoveIcon","showDownloadIcon","customPreviewIcon","previewIcon","customRemoveIcon","customDownloadIcon","downloadIcon","onDownload","setMergedStatus","showProgress","setShowProgress","progressRafRef","spanClassName","uploadingClassName","thumbnail","aClassName","infoUploadingClass","linkProps","downloadOrDelete","picture","listItemNameClass","iconAndPreview","loadingProgress","listContainerNameClass","listItemMotion","InternalUploadList","_props$listType","_props$previewFile","_props$isImageUrl","_props$items","_props$showPreviewIco","_props$showRemoveIcon","_props$showDownloadIc","_props$progress","appendAction","_props$appendActionVi","appendActionVisible","setMotionAppear","previewDataUrl","onInternalPreview","onInternalDownload","internalIconRender","fileIcon","customIcon","btnProps","btnIcon","handlePreview","handleDownload","listClassNames","motionKeyList","animationDirection","motionConfig","ListItem","__awaiter","_arguments","InternalUpload","defaultFileList","_props$showUploadList","propLocale","_props$data","_props$multiple","_props$accept","_props$supportServerR","supportServerRender","mergedFileList","setMergedFileList","dragState","setDragState","onInternalChange","changedFileList","cloneList","changeInfo","batchFileInfoList","filteredFileInfoList","objectFileList","newFileList","fileObj","triggerFileObj","handleRemove","currentFile","removedFileList","removed","removeFileItem","rcUploadProps","fileListArgs","transformFile","renderUploadList","buttonVisible","UploadList","dragCls","onDragLeave","RcUpload","uploadButtonStyle","uploadButtonCls","uploadButton","Dragger","_type","_extends2","_placements","Fragment","_styleChecker","_canUseDom","_KeyCode","noop","resetWarned","_en_US","_rcCheckbox","_configProvider","_Group","_DisabledContext","_toConsumableArray2","_omit","_Checkbox","memo","_tinycolor","defaultIconPrefixCls","configConsumerProps","_useMemo","_validateMessagesContext","_localeProvider","_LocaleReceiver","_default2","_message","_notification","_cssVariables","_SizeContext","ANT_MARK","_en_US2","_rcFieldForm","_classCallCheck2","_createClass2","_inherits2","_createSuper2","_reactNode","_statusUtils","_rcInput","_Compact","_useRemovePasswordTimeout","_rcTextarea","_ClearableLabeledInput","_Input","_locale","_en_US3","_en_US4","localeValues","_useNotification","getInstance","_rcNotification","_useMessage","_regeneratorRuntime2","_toArray","_rcTooltip","_motion","_useLayoutEffect","_tooltip","_copyToClipboard","_rcResizeObserver","_transButton","_Editable","_useMergedConfig7","_useUpdatedEffect","_Typography","_Ellipsis","_EllipsisTooltip","_TextArea","_Base","rawAsap","task","requestFlush","scan","newLength","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","makeRequestCallFromTimer","timeoutHandle","handleTimer","createTextNode","characterData","makeRequestCallFromMutationObserver","factory","BESSEL","_horner","_bessel_iter","f0","f1","tdx","f2","_bessel_wrap","bessel0","bessel1","nonzero","b0_a1a","b0_a2a","b0_a1b","b0_a2b","a1","a2","xx","b1_a1a","b1_a2a","b1_a1b","b1_a2b","jsum","bjp","bj","bjm","tox","b0_a","b0_b","b1_a","b1_b","bip","bi","bim","DO_NOT_EXPORT_BESSEL","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","getAndroidVersionName","getVersionPrecision","compareVersions","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chrome","Chromium","Electron","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","android","bada","blackberry","chromium","electron","epiphany","generic","googlebot","google_search","k_meleon","maxthon","mz","naver","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","uc","vivaldi","webos","wechat","yandex","tablet","mobile","desktop","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","getParser","getResult","_ua","parsedResult","getUA","parseBrowser","describe","getBrowserName","getBrowserVersion","parseOS","getOSName","getOSVersion","getPlatform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","isOS","isPlatform","isBrowser","compareVersion","isEngine","is","versionName","vendor","hasOwn","argType","inner","deselectCurrent","clipboardToIE11Formatting","reselectPrevious","selection","createRange","getSelection","clip","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","clipboardData","clearData","selectNodeContents","addRange","execCommand","copyKey","removeRange","removeAllRanges","weekdays","utcOffset","$L","$u","$x","$offset","$d","$y","$M","$D","$W","$H","$m","$s","$ms","getMilliseconds","$utils","isSame","startOf","isBefore","$g","unix","$locale","weekStart","$set","daysInMonth","invalidDate","meridiem","YY","YYYY","MM","MMM","MMMM","DD","dd","ddd","weekdaysShort","dddd","HH","hh","mm","ss","SSS","toJSON","extend","$i","isDayjs","Ls","$localOffset","isUTC","spliceOne","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","createLocation","currentLocation","hashIndex","searchIndex","parsePath","URIError","resolvePathname","createTransitionManager","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","canUseDOM","getConfirmation","PopStateEvent","HashChangeEvent","getHistoryState","invariant","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props$forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","nextKeys","goBack","goForward","unblock","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","calcRdx","toVector","_init","retZero","retOne","retIdent","seq","_random_fn","setRandom","dimensions","rowa","submat","arange","ind","cola","diag","nrow","antidiag","objArr","toAlter","ncol","cumreduce","alter","zeros","ones","rand","identity","symmetric","cnt","hival","rl","_slice","rcSlice","colSlice","rowSlice","sliceAssign","nl","ml","diagonal","diagArray","mat","jProto","funcs","passfunc","ascNum","sumsqrd","sumsqerr","sumrow","prod","low","high","unique","meansqerr","arrlen","cumsum","cumprod","diffs","arrLen","rank","distinctNumbers","numberCounts","sortedDistinctNumbers","numberRanks","currentRank","numMaxCount","mode_arr","variance","flag","pooledvariance","samples","deviation","dev","pooledstdev","meandev","meddev","coeffvar","quartiles","quantiles","quantilesArray","alphap","betap","aleph","sortedArray","quantileVals","percentile","exclusive","realIndex","percentileOfScore","strict","histogram","binCnt","binWidth","arr1","arr1Len","sq_dev","spearmancoeff","stanMoment","mu","skewSum","skewness","kurtosis","fullbool","tmpthis","callbackFunction","argsToPass","curriedFunction","vector","cof","ser","loggam","xp","gl","gl0","yi","fact","xden","xnum","gammap","lowRegGamma","aln","ap","ITMAX","factorialln","factorial","combination","combinationln","permutation","betafn","betaln","betacf","aa","fpmin","qab","qap","qam","gammapinv","pp","lna1","afac","EPS","gln","ty","isneg","erfcinv","ibetainv","lna","lnb","b1","ibeta","bt","randn","randg","oalph","betinc","eps","c9","a0","b0","m9","laplaceSign","tukeyWprob","rr","cc","nleg","ihalf","C1","C2","C3","bb","wlar","wincr1","wincr2","xleg","aleg","qsqz","wincr","pr_w","blb","binc","bub","einsum","cc1","wi","elsum","jj","qexpo","rinsum","tukeyQinv","p0","q0","p1","q1","p2","p3","q3","p4","c3","c4","c5","vmax","ps","newthis","sample","vals","fnfunc","df1","df2","cauchy","invgamma","kumaraswamy","noncentralt","ncp","tol","min_iterations","flip","prob","lastvalue","std","pareto","dof2","weibull","uniform","betacdf","hypgeom","scaledPDF","samplesDone","scaledCDF","sumarr","sampleSmall","sampleLarge","slam","loglam","invalpha","vr","us","lam","triangular","arcsine","laplace","tukey","nmeans","nlegq","ihalfq","eps1","eps2","dhaf","dquar","deigh","dlarg","ulen1","ulen2","ulen3","ulen4","xlegq","alegq","ulen","f2lf","f21","ff4","ans","otsum","twa1","maxiter","valx0","valx1","isUsable","nrescols","rescols","outer","norm","nnorm","angle","aug","newarr","gauss_jordan","det","alen","alend","rowshift","colshift","mrow","mcol","gauss_elimination","maug","pivot","maxrow","triaUpSolve","matrix_mode","triaLowSolve","lu","cholesky","gauss_jacobi","xv","xk","gauss_seidel","SOR","householder","QR","qr2","lstsq","R_I","Aj","cAi","Ij","cIi","qr_solve","array_mode","Q1","RI","Q2","jacobi","maxim","theta","rungekutta","t_j","u_j","k1","k2","k3","romberg","h1","richardson","h_min","simpson","hermite","dF","dl","lagrange","cubic_spline","sq","gauss_quadrature","PCA","temp1","temp2","Bt","Vt","differenceOfProportions","n2","pooled","zscore","ztest","sides","tscore","ttest","anovafscore","expVar","sampMean","sampSampMean","tmpargs","unexpVar","anovaftest","ftest","fscore","anovaftes","qscore","qtest","tukeyhsd","means","change","significant","pvalue","oneSidedDifferenceOfProportions","twoSidedDifferenceOfProportions","sub_regress","exog","var_count","endog_index","exog_index","ols","endog","nobs","df_model","df_resid","coef","predict","resid","ybar","SSE","SSR","SST","R2","t_test","subModelList","sigmaHat","seBetaHat","tStatistic","pValue","leftppf","interval95","F_test","F_statistic","ols_wrap","adjust_R2","buildxmatrix","matrixRows","builddxmatrix","buildjxmatrix","jMat","pass","buildymatrix","buildjymatrix","matrixmult","regress","jMatX","jMatY","innerinv","xtranspxinv","xtransp","regresst","compile","jMatYBar","yBar","yAverage","anova","residuals","msr","sse","mse","sst","mst","r2","fratio","rmse","r2adj","sds","covar","xtranspx","matrixsubtract","accumulator","initAccum","reAsciiWord","getRawTag","objectToString","symToStringTag","arrayMap","isSymbol","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","baseSlice","castSlice","hasUnicode","stringToArray","methodName","strSymbols","chr","trailing","arrayReduce","deburr","words","reApos","deburrLetter","basePropertyOf","freeGlobal","objectProto","nativeObjectToString","isOwn","unmasked","reHasUnicode","reHasUnicodeWord","freeSelf","asciiToArray","unicodeToArray","reWhitespace","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","rsEmoji","reUnicodeWord","capitalize","createCompounder","word","upperFirst","nativeMax","nativeMin","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","reLatin","reComboMark","baseGetTag","isObjectLike","FUNC_ERROR_TEXT","HASH_UNDEFINED","PLACEHOLDER","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","INFINITY","NAN","MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","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","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reNoMatch","reUnescapedString","rsComboRange","rsComboMarksRange","rsVarRange","rsApos","rsZWJ","contextProps","templateCounter","typedArrayTags","cloneableTags","stringEscapes","freeParseFloat","freeParseInt","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","binding","nodeIsArrayBuffer","isArrayBuffer","nodeIsDate","nodeIsMap","isMap","nodeIsRegExp","isRegExp","nodeIsSet","isSet","nodeIsTypedArray","isTypedArray","arrayAggregator","setter","arrayEachRight","arrayEvery","predicate","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayPush","arrayReduceRight","arraySome","asciiSize","baseProperty","baseFindKey","collection","eachFunc","baseFindIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","baseReduce","baseTimes","baseTrim","baseUnary","baseValues","cacheHas","charsStartIndex","chrSymbols","charsEndIndex","escapeHtmlChar","escapeStringChar","mapToArray","overArg","replaceHolders","setToArray","setToPairs","stringSize","unicodeSize","unescapeHtmlChar","runInContext","pick","arrayProto","funcProto","coreJsData","funcToString","idCounter","maskSrcKey","IE_PROTO","objectCtorString","oldDash","reIsNative","Buffer","allocUnsafe","getPrototype","objectCreate","spreadableSymbol","isConcatSpreadable","symIterator","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeNow","nativeParseInt","nativeRandom","nativeReverse","DataView","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolValueOf","lodash","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","Hash","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","copyArray","baseClamp","arrayShuffle","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","baseAggregator","baseEach","baseAssign","copyObject","baseAt","skip","baseClone","bitmask","customizer","isDeep","isFull","initCloneArray","getTag","isFunc","cloneBuffer","initCloneObject","getSymbolsIn","copySymbolsIn","keysIn","baseAssignIn","getSymbols","copySymbols","Ctor","cloneArrayBuffer","byteOffset","byteLength","cloneDataView","cloneTypedArray","cloneRegExp","initCloneByTag","stacked","subValue","getAllKeysIn","baseConformsTo","baseDelay","baseDifference","isCommon","valuesLength","computed","valuesIndex","templateSettings","getMapData","pairs","LARGE_ARRAY_SIZE","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","baseFilter","baseFlatten","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","keysFunc","symbolsFunc","baseGt","baseHas","baseHasIn","baseIntersection","othLength","othIndex","caches","seen","baseInvoke","baseIsArguments","baseIsEqual","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othProps","objStacked","othStacked","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","baseIsNative","baseIteratee","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","mergeFunc","safeGet","isTyped","isArrayLikeObject","toPlainObject","baseMergeDeep","baseNth","baseOrderBy","iteratees","orders","getIteratee","comparer","baseSortBy","objCriteria","othCriteria","ordersLength","compareAscending","compareMultiple","basePickBy","baseSet","basePullAll","basePullAt","indexes","previous","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","constant","baseShuffle","baseSome","baseSortedIndex","retHighest","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseUniq","createSet","seenIndex","baseUpdate","baseWhile","isDrop","baseWrapperValue","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","arrayBuffer","typedArray","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","createAggregator","initializer","createAssigner","assigner","guard","isIterateeCall","iterable","createCaseFirst","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","prereq","thru","getFuncName","getData","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","countHolders","newHolders","createRecurry","arrLength","oldArray","reorder","createInverter","toIteratee","baseInverter","createMathOperation","createOver","arrayFunc","createPadding","charsLength","toFinite","baseRange","createRelationalOperation","wrapFunc","isCurry","newData","setWrapToString","createRound","toInteger","pair","createToPairs","baseToPairs","createWrap","srcBitmask","newBitmask","isCombo","mergeData","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","arrStacked","arrValue","otherFunc","isKeyable","stubArray","hasPath","hasFunc","isLength","ctorString","isMaskable","stubFalse","otherArgs","shortOut","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","stamp","memoize","memoizeCapped","quote","subString","difference","differenceBy","differenceWith","findLastIndex","head","intersection","mapped","intersectionBy","intersectionWith","pullAll","pullAt","union","unionBy","unionWith","unzip","group","unzipWith","without","xor","xorBy","xorWith","zip","zipWith","chain","interceptor","wrapperAt","countBy","findLast","forEachRight","groupBy","invokeMap","keyBy","partition","sortBy","before","bindKey","WRAP_BIND_FLAG","defer","resolver","memoized","Cache","overArgs","transforms","funcsLength","partial","partialRight","rearg","gt","gte","lt","lte","iteratorToArray","remainder","toLength","isBinary","assignIn","assignInWith","assignWith","propsIndex","propsLength","defaultsDeep","mergeWith","invert","invertBy","invoke","CLONE_DEEP_FLAG","basePick","pickBy","toPairs","toPairsIn","kebabCase","lowerCase","lowerFirst","snakeCase","startCase","upperCase","hasUnicodeWord","unicodeWords","asciiWords","bindAll","methodNames","flow","flowRight","methodOf","mixin","over","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","multiplier","multiplicand","minuend","subtrahend","after","castArray","chunk","cond","conforms","baseConforms","curry","curryRight","drop","dropRight","dropRightWhile","dropWhile","baseFill","flatMap","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","fromPairs","functionsIn","mapKeys","mapValues","matchesProperty","nthArg","omitBy","orderBy","propertyOf","pullAllBy","pullAllWith","sampleSize","setWith","shuffle","sortedUniq","sortedUniqBy","spread","tail","take","takeRight","takeRightWhile","takeWhile","tap","toPath","isArrLike","unary","uniq","uniqBy","uniqWith","unset","updateWith","valuesIn","zipObject","zipObjectDeep","entriesIn","extendWith","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","escape","escapeRegExp","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","baseInRange","isElement","isEqualWith","isMatch","isMatchWith","isNative","isNull","isSafeInteger","isWeakMap","isWeakSet","strictLastIndexOf","maxBy","meanBy","minBy","stubObject","stubString","stubTrue","nth","noConflict","strLength","floating","reduceRight","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sumBy","template","settings","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","times","toLower","toSafeInteger","toUpper","trimEnd","trimStart","truncate","omission","newEnd","unescape","each","eachRight","VERSION","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","isRight","view","getView","iterLength","takeCount","iterIndex","commit","wrapped","hookCallback","setHookCallback","hasOwnProp","isObjectEmpty","createUTC","createLocalOrUTC","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","getParsingFlags","_pf","_isValid","flags","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","createInvalid","fun","momentProperties","updateInProgress","momentPropertiesLen","_isAMomentObject","_l","_tzm","_isUTC","_offset","Moment","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastWeek","sameElse","calendar","mom","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","longDateFormat","defaultLongDateFormat","LTS","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","ww","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","addUnitAlias","shorthand","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","getPrioritizedUnits","unitsObj","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","strictRegex","getParseRegexForToken","unescapeFormat","regexEscape","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","MILLISECOND","WEEK","modMonth","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","setFullYear","createUTCDate","setUTCFullYear","firstWeekOffset","dow","doy","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","minl","normalizeLocale","chooseLocale","loadLocale","isLocaleNameSane","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","configFromArray","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","weekdayOverflow","curWeek","GG","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","prototypeMin","prototypeMax","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","quarters","weeks","isoWeek","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","compareArrays","dontConvert","lengthDiff","offsetFromString","chunkOffset","cloneWithOffset","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","createAdder","isAdding","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","sod","calendarFormat","localInput","isBetween","inclusivity","localFrom","localTo","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","keepOffset","inspect","datetime","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","get$1","listMonthsImpl","out","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME_SECONDS","TIME_MS","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","symbols","isarray","pathToRegexp","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","asterisk","escapeGroup","escapeString","encodeURIComponentPretty","pretty","segment","attachKeys","sensitive","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","asap","LAST_ERROR","IS_ERROR","_y","_z","_A","doResolve","handle","deferred","_B","onFulfilled","onRejected","tryCallOne","handleResolved","getThen","finale","_C","Handler","tryCallTwo","_D","safeThen","valuePromise","NULL","UNDEFINED","ZERO","EMPTYSTRING","iterableToArray","onSettledFulfill","onSettledReject","mapAllSettled","getAggregateError","AggregateError","allSettled","any","promises","hasResolved","rejectionReasons","resolveOnce","rejectionCheck","DEFAULT_WHITELIST","RangeError","disable","matchWhitelist","enable","displayId","rejections","onUnhandled","allRejections","whitelist","logged","logError","_E","onHandled","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","getShim","ReactPropTypes","bigint","arrayOf","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","_props$defaultChecked","setRawValue","_inputRef$current2","nativeEvent","HOOK_MARK","warningFunc","getFieldValue","getFieldsValue","getFieldError","getFieldWarning","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","setFields","setFieldValue","setFieldsValue","getInternalHooks","initEntityValue","registerField","useSubscribe","setInitialValues","destroyForm","setCallbacks","registerWatch","getFields","setValidateMessages","setPreserve","getInitialValue","formatRegExp","convertFieldsError","isEmptyValue","isNativeStringType","asyncSerialArray","original","AsyncValidationError","asyncMap","_pending","flattenArr","flattenObjArr","firstFields","objArrKeys","objArrLength","asyncParallelArray","complementError","fieldValue","fullFields","fullField","deepMerge","urlReg","required$1","messages","pattern$2","includeBoundaries","v4","v6seg","v6","v46Exact","v4exact","v6exact","ipv4","ipv6","getUrlRegex","ENUM$1","ruleType","enum","validators","boolean","float","dateObject","newMessages","cloned","Schema","_messages","_proto","source_","oc","messages$1","series","getValidationMethod","doIt","deep","defaultField","addFullField","schema","suppressWarning","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","errs","finalErrors","asyncValidator","suppressValidatorError","messageIndex","AsyncValidator","RawAsyncValidator","replaceMessage","CODE_LOGIC_ERROR","validateRule","_validateRule","cloneRule","originValidator","subRuleField","subResults","fillVariableResult","ruleIndex","mergedMessage","validateRules","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","w1","i1","w2","i2","rulePromises","_finishOnFirstFailed","finishOnFirstFailed","_finishOnAllFailed","finishOnAllFailed","errorsList","ruleError","getNamePath","cloneByNamePathList","namePathList","newStore","containsNamePath","partialMatch","matchNamePath","subNamePath","nameUnit","defaultGetValueFromEvent","move","moveIndex","EMPTY_ERRORS","requireUpdate","nextValue","resetCount","isListField","cancelRegisterFunc","_fieldContext$prefixN","fieldContext","prefixName","_this$props3$rules","_meta","getMeta","metaCache","prevStore","_this$props4$dependen","onReset","curValue","namePathMatch","dirty","validatePromise","triggerMetaEvent","refresh","reRender","relatedFields","triggerName","_ref2$validateOnly","validateOnly","rootPromise","_this$props5","_this$props5$validate","validateDebounce","filteredRules","getRules","ruleErrors","_ruleErrors$forEach","nextErrors","nextWarnings","_ref4$errors","isList","prevValidating","_meta2","getOnlyChild","getControlled","toChildrenArray","_this$props6","getValueFromEvent","normalize","getValueProps","mergedGetValueProps","originTriggerFunc","originTrigger","_this$props7","cancelRegister","returnChildNode","_this$getOnlyChild","wrapperListContext","keyManager","parentPrefixName","_ref3$value","getNewValue","operations","indexSet","keysIndex","_move","listValue","NameMap","kvs","_cell$match","_cell$match2","FormStore","forceRootUpdate","formHooked","subscribable","_this$prevWithoutPres","nextStore","prevWithoutPreserves","updateStore","getFieldEntities","isMergedPreserve","isPreserve","watchList","allValues","fieldEntities","pure","nameList","getFieldsMap","INVALIDATE_NAME_PATH","filterFunc","mergedNameList","mergedFilterFunc","mergedStrict","warningUnhooked","getFieldEntitiesForNamePathList","filteredNameList","_isListField","_isList","getErrors","getWarnings","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","isNamePathListTouched","namePathListEntities","testField","records","requiredFieldEntities","_requiredFieldEntitie","skipExist","resetWithFieldInitialValue","notifyObservers","notifyWatch","fieldData","fieldPreserve","mergedPreserve","_prevStore","triggerDependenciesUpdate","_namePath","mergedInfo","onStoreChange","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","isFieldDirty","filedErrors","onFieldsChange","changedFields","fieldName","provideNameList","promiseList","TMP_SPLIT","validateNamePathList","recursive","allPromiseFinish","lastValidatePromise","resultNamePathList","returnPromise","outOfDate","triggerNamePathList","onFinish","formRef","formStore","getForm","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","onFormChange","onFormFinish","formsRef","forms","newForms","_ref$component","_ref$validateTrigger","_onFieldsChange","_onFinish","formInstance","_getInternalHooks","childrenNode","childrenRenderProps","prevFieldsRef","sourceKeys","targetKeys","sourceValue","isSimilar","wrapperNode","_restProps$onReset","useWatchWarning","_args$","_args$2","_form","isFormInstance","valueStr","valueStrRef","isValidForm","namePathRef","nextValueStr","RefForm","hasAddon","inputElement","affixWrapperPrefixCls","clearIconCls","getClearIcon","wrapperCls","addonCls","htmlSize","select","_inputRef$current3","handleChange","handleFocus","handleBlur","BaseInput","getSuffix","DomWrapper","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","STEP_PREPARED","makePrefixMap","styleProp","prefixes","vendorPrefixes","domSupport","win","animationend","transitionend","getVendorPrefixes","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","transitionType","cacheElementRef","callbackRef","onInternalMotionEnd","removeMotionEvents","FULL_STEP_QUEUE","SIMPLE_STEP_QUEUE","SkipStep","DoStep","prepareOnly","setStep","_useNextFrame","nextFrameRef","cancelNextFrame","nextFrame","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","STEP_QUEUE","nextStep","doNext","transitionSupport","_props$removeOnLeave","eventProps","supportMotion","contextMotion","isSupportTransition","nodeRef","wrapperNodeRef","_useStatus","_ref$motionEnter","_ref$motionAppear","_ref$motionLeave","motionLeaveImmediately","onLeavePrepare","asyncVisible","setAsyncVisible","setStatus","setStyle","mountedRef","deadlineRef","getDomElement","updateMotionEndStatus","canEnd","_useDomMotionEvents","useDomMotionEvents","patchMotionEvents","getEventHandlers","targetStatus","_useStepQueue","useStepQueue","newStep","_eventHandlers$step","_useStepQueue2","startStep","nextStatus","nextEventHandlers","firstMountChangeRef","HTMLElement","findDOMNode","_useStatus2","statusStep","renderedRef","motionChildren","setNodeRef","fillRef","statusSuffix","motionCls","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","parseKeys","MOTION_PROP_NAMES","OriginCSSMotion","removeKey","nextKeyEntities","_onVisibleChanged","onAllRemoved","changedVisible","parsedKeyObjects","mixedKeyEntities","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","diffKeys","prevEntity","Notice","closeTimer","clearCloseTimer","noticeKey","startCloseTimer","updateMark","restartCloseTimer","componentClass","dataOrAriaAttributeProps","ReactDOM","getUuid","notices","hookRefs","originNotice","_originNotice$key","noticeIndex","updatedNotices","userPassKey","_ref2$notice","noticePropsMap","noticeKeys","_notice$onClose","_this2$noticePropsMap","div","called","unmount","createdRef","firstMount","noticeEle","_reactDom","_Notice","InternalItem","invalidate","responsiveDisabled","registerSize","itemKey","_props$component","mergedHidden","internalRegisterSize","overflowStyle","overflowProps","itemNode","useBatcher","updateFuncRef","MessageChannel","port1","port2","channelUpdate","unstable_batchedUpdates","useEffectState","notifyEffectUpdate","setStateValue","OverflowContext","InternalRawItem","_restProps","contextClassName","restContext","RawItem","defaultRenderRest","omittedItems","_props$itemWidth","itemWidth","renderRest","fullySSR","_useEffectState","_useEffectState2","containerWidth","setContainerWidth","mergedContainerWidth","_useEffectState3","_useEffectState4","itemWidths","setItemWidths","_useEffectState5","_useEffectState6","prevRestWidth","setPrevRestWidth","_useEffectState7","_useEffectState8","restWidth","setRestWidth","_useEffectState9","_useEffectState10","suffixWidth","setSuffixWidth","suffixFixedStart","setSuffixFixedStart","setDisplayCount","mergedDisplayCount","restReady","setRestReady","mergedRestWidth","isResponsive","shouldResponsive","showRest","mergedRenderItem","updateDisplayCount","suffixFixedStartVal","notReady","getItemWidth","totalWidth","currentItemWidth","displayRest","suffixStyle","restNode","itemSharedProps","internalRenderItemNode","restContextProps","mergedRenderRest","overflowNode","ForwardOverflow","items_per_page","jump_to","jump_to_confirm","page","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","CollectionContext","elementListeners","resizeObserver","_elementListeners$get","_rs","SingleObserver","onCollectionResize","sizeRef","canRef","getDom","_elementRef$current","nativeElement","propsRef","onInternalResize","_propsRef$current","_target$getBoundingCl","fixedWidth","fixedHeight","mergedOffsetWidth","mergedOffsetHeight","sizeInfo","currentElement","unobserve","RefResizeObserver","Collection","onBatchResize","resizeIdRef","resizeInfosRef","BaseSelectContext","useLock","lockRef","timeoutRef","customizeIcon","customizeIconProps","_onMouseDown","WebkitUserSelect","_inputNode2","_inputNode2$props","activeDescendantId","_onChange","onPaste","_onCompositionStart","_onCompositionEnd","_inputNode","originProps","onOriginKeyDown","onOriginChange","onOriginMouseDown","onOriginCompositionStart","onOriginCompositionEnd","RefInput","isTitleType","getTitle","_value$key","onPreventMouseDown","effect","deps","maxTagCount","maxTagTextLength","_props$maxTagPlacehol","maxTagPlaceholder","omittedValues","onInputChange","onInputPaste","onInputKeyDown","onInputMouseDown","onInputCompositionStart","onInputCompositionEnd","measureRef","inputWidth","setInputWidth","selectionPrefixCls","inputEditable","defaultRenderSelector","itemDisabled","TransBtn","selectionNode","valueItem","displayLabel","strLabel","customizeRenderSelector","inputChanged","setInputChanged","combobox","hasTextInput","hiddenStyle","renderPlaceholder","Selector","compositionStatusRef","tokenWithEnter","onSearchSubmit","domRef","_useLock","_useLock2","getInputMouseDown","setInputMouseDown","pastedTextRef","triggerOnSearch","sharedProps","currentKeyCode","WIN_KEY","ALT","META","WIN_KEY_RIGHT","CTRL","SEMICOLON","EQUALS","CAPS_LOCK","CONTEXT_MENU","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","replacedText","selectNode","MultipleSelector","SingleSelector","msTouchAction","inputMouseDown","ForwardSelector","SelectTrigger","getTriggerDOMNode","onPopupMouseEnter","popupNode","builtInPlacements","getBuiltInPlacements","mergedTransitionName","getPopupElement","RefSelectTrigger","childrenAsData","injectPropsWithOption","newOption","DEFAULT_OMIT_PROPS","_customizeRawInputEle","omitDomProps","_props$notFoundConten","onClear","onActiveValueChange","onSearchSplit","tokenSeparators","_props$showAction","setMobile","selectorDomRef","selectorRef","listRef","_useDelayReset","setBool","delayRef","cancelLatest","useDelayReset","_useDelayReset2","mockFocused","setMockFocused","cancelSetMockFocused","_selectorRef$current","_selectorRef$current2","_listRef$current","_displayValues$","customizeInputElement","customizeRawInputElement","customizeRawInputRef","innerOpen","setInnerOpen","emptyListContent","tokenSeparator","onInternalSearch","fromTyping","isCompositing","newSearchText","patchLabels","separate","restTokens","prevList","unitStr","getSeparatedContent","getClearLock","setClearLock","focusRef","activeTimeoutIds","onTriggerVisibleChange","newWidth","customizedTrigger","onGlobalMouseDown","useSelectTriggerControl","arrowNode","baseSelectContext","_selectorRef$current4","selectorNode","_selectorRef$current3","_len3","restArgs","_key3","_listRef$current2","clearLock","cloneDisplayValues","removedDisplayValue","_listRef$current3","optionOnly","_ref2$props","convertNodeToOption","onPopupScroll","SelectContext","flattenOptions","onActiveValue","memoFlattenOptions","getEnabledActiveIndex","_memoFlattenOptions$c","setActiveIndex","setActive","flattenItem","onSelectValue","appVersion","omitFieldNameList","itemData","fullHeight","onScroll","itemIndex","groupOption","_data$title","groupTitle","optionPrefixCls","optionClassName","iconVisible","optionTitle","onMouseMove","OMIT_DOM_PROPS","backfill","filterSort","optionFilterProp","optionLabelProp","mergedFilterOption","parsedOptions","labelOptions","setLabelOptions","labelOptionsMap","isChildren","useOptions","rawKey","rawTitle","_val$value","_option$key","_cacheRef$current","prevValueCache","prevOptionCache","patchedValues","_prevValueCache$get","valueCache","optionCache","_values$","_useCache2","mergedValues","getMixedOption","firstValue","_mergedValues$","strValue","hasValue","createTagOption","fieldOptions","fieldLabel","customizeFilter","upperSearch","wrapOption","subItem","useFilterOptions","cloneOptions","existOptions","filledSearchOptions","orderedFilteredOptions","displayOptions","flattenList","_fillFieldNames","isGroupOption","grpLabel","newVal","_mergedValues$index","returnOptions","setActiveValue","accessibilityIndex","setAccessibilityIndex","mergedDefaultActiveFirstOption","_ref2$source","getSelectEnt","_option$key2","_getSelectEnt","_getSelectEnt2","wrappedValue","_option","_getSelectEnt3","_getSelectEnt4","_wrappedValue","_option2","cloneValues","mergedSelect","selectContext","realVirtual","formatted","patchValues","newRawValue","TypedSelect","hiddenTextarea","SIZING_STYLE","computedStyleCache","calculateAutoSizeStyle","uiTextNode","maxRows","_calculateNodeStyling","boxSizing","paddingSize","borderSize","nodeInfo","sizingStyle","calculateNodeStyling","minHeight","onInternalAutoSize","setMergedValue","textareaRef","needAutoSize","resizeState","setResizeState","autoSizeStyle","setAutoSizeStyle","startResize","textareaStyles","_textareaRef$current","fixFirefoxAutoScroll","resizeRafRef","mergedAutoSizeStyle","saveTextArea","ResizableTextArea","_props$align","_props$destroyTooltip","destroyTooltipOnHide","destroyTooltip","keepParent","afterPopupVisibleChange","defaultPopupVisible","Indent","isStart","isEnd","ICON_OPEN","ICON_CLOSE","InternalTreeNode","dragNodeHighlight","selectHandle","cacheIndent","onSelectorClick","onNodeClick","convertNodePropsToEventData","onSelectorDoubleClick","onNodeDoubleClick","onNodeSelect","onNodeCheck","isCheckable","targetChecked","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onDragStart","onNodeDragStart","onDragEnter","onNodeDragEnter","onNodeDragOver","onNodeDragLeave","onDragEnd","onNodeDragEnd","onNodeDrop","onNodeExpand","setSelectHandle","getNodeState","hasChildren","getEntity","syncLoadData","_this$props$context","onNodeLoad","isDraggable","nodeDraggable","renderDragHandler","_this$props$context2","renderSwitcherIconDom","switcherIconFromProps","switcherIconFromCtx","renderSwitcher","_switcherIconDom","switcherIconDom","renderCheckbox","$custom","renderIcon","renderSelector","$icon","_this$props6$title","_this$props$context3","titleRender","wrapClass","currentIcon","$title","renderDropIndicator","_this$props$context4","dropLevelOffset","dropPosition","indent","dropIndicatorRender","dragOverNodeKey","showIndicator","mergedIndent","treeSelectable","_this$props8","dragOver","dragOverGapTop","dragOverGapBottom","_this$props$context5","dropContainerKey","dropTargetKey","draggingNodeKey","isEndNode","mergedDraggable","draggableWithoutDisabled","dragging","ariaSelected","ContextTreeNode","TreeContext","isTreeNode","_objectDestructuringEmpty","MotionTreeNode","motionNodes","motionType","onOriginMotionStart","onMotionStart","onOriginMotionEnd","onMotionEnd","treeNodeRequiredProps","targetVisible","triggerMotionEndRef","triggerMotionEnd","triggerStart","triggerEnd","setFirstMount","useUnmount","getTreeNodeProps","getExpandRange","shorter","longer","shorterStartIndex","shorterEndNode","longerStartIndex","longerEndIndex","MOTION_KEY","MotionNode","MotionEntity","MotionFlattenData","getMinimumRangeTransitionRange","NodeList","activeItem","onListChangeStart","onListChangeEnd","indentMeasurerRef","getIndentWidth","prevExpandedKeys","setPrevExpandedKeys","prevData","setPrevData","transitionData","setTransitionData","transitionRange","setTransitionRange","setMotionType","dataRef","latestData","diffExpanded","prevLen","findExpandedKeys","keyIndex","rangeNodes","newTransitionData","_keyIndex","_rangeNodes","_newTransitionData","getAccessibilityPath","VirtualList","originList","fullList","originSet","delayedDragEnterLogic","loadingRetryTimes","dragChildrenKeys","dropTargetPos","dropAllowed","flattenNodes","listChanging","dragStartMousePosition","dragNode","currentMouseOverDroppableNodeKey","clientX","clientY","newExpandedKeys","arrDel","getDragChildrenKeys","onWindowDragEnd","_this$state2","allowDrop","_node$props","_calcDropPosition","calcDropPosition","persist","arrAdd","resetDragState","_this$state3","_calcDropPosition2","relatedTarget","cleanDragState","_this$getActiveItem","outsideTree","_this$state4","abstractDropNodeProps","getTreeNodeRequiredProps","getActiveItem","dropToChild","posArr","posToArr","dropResult","dragNodesKeys","dropToGap","triggerExpandActionExpand","_this$state5","nodeItem","eventNode","_this$state6","targetSelected","selectedNodes","setUncontrolledState","checkedObj","_this$state7","oriCheckedKeys","oriHalfCheckedKeys","eventObj","checkedNodes","checkedKey","_checkedKeys","_halfCheckedKeys","keySet","_conductCheck2","checkedNodesPositions","loadPromise","_ref$loadedKeys","_ref$loadingKeys","currentLoadedKeys","newLoadedKeys","onRightClick","_this$state8","_this$state9","flattenTreeData","_this$state10","targetExpanded","newFlattenTreeData","currentExpandedKeys","expandedKeysToRestore","newActiveKey","_this$state11","offsetActiveKey","_this$state12","_this$state13","_this$props9","atomic","forceState","needSync","allPassed","onUpdated","draggableConfig","_this$state14","_this$props10","_this$props10$tabInde","convertTreeToData","entitiesMap","checkedKeyEntity","autoExpandParent","defaultExpandParent","conductExpandParent","cloneKeyEntities","defaultExpandedKeys","calcSelectedKeys","parseCheckedKeys","defaultCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","dragNodeKey","isLastChild","treeNodeEntity","targetNode","startMousePosition","flattenedNodes","expandKeys","_abstractDropNodeEnti","_event$target$getBoun","rawDropLevelOffset","abstractDropNodeEntity","nodeIndex","flattenedNode","prevNodeKey","initialAbstractDropNodeKey","abstractDragOverEntity","abstractDragDataNode","abstractDropDataNode","isFirstChild","dropNode","keyProps","conductUp","removeFromCheckedKeys","filteredKeys","getCheckDisabled","syntheticGetCheckDisabled","warningMissKeys","hasEntity","levelEntities","maxLevel","levelSet","_entity$children","childEntity","visitedKeys","_level","allChecked","partialChecked","fillConductCheck","halfKeys","_entity$children2","_level2","cleanConductCheck","getPosition","mergedTitle","rootNodes","_treeNode$props","parsedChildren","treeNodeList","fieldTitles","expandedKeySet","fieldTitle","flattenNode","dataNodes","onProcessFinished","externalGetKey","childrenPropName","mergedExternalGetKey","posEntities","syntheticGetKey","_mergedConfig","_fillFieldNames2","mergeChildrenPropName","processNode","pathNodes","connectNodes","parentPos","subNode","subIndex","traverseDataNodes","didUpdate","parentRef","isPointsEq","isAlignPoint","vendorPrefix","jsCssMap","Webkit","Moz","getVendorPrefix","getTransformName","setTransitionProperty","transitionProperty","setTransform","getComputedStyleX","matrix2d","matrix3d","forceRelayout","originalStyle","css","getScrollLeft","getScrollTop","box","docElem","clientLeft","clientTop","getClientPosition","isWindow","_RE_NUM_NO_PX","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","getOffsetDirection","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","off","_dir","_off","setTransform$1","originalXY","getTransformXY","resultXY","xy","match2d","setTransformXY","isBorderBoxFn","computedStyle","rsLeft","pixelLeft","BOX_MODELS","CONTENT_INDEX","PADDING_INDEX","BORDER_INDEX","getPBMWidth","cssProp","domUtils","getParent","getWH","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","documentElementProp","compatMode","cssShow","getWHIgnoreDisplay","swap","includeMargin","oriOffset","oLeft","oTop","tLeft","tTop","useCssTransform","setOffset","getWindowScrollLeft","getWindowScrollTop","getOffsetParent","positionStyle","nodeName","getParent$1","getVisibleRectForElement","alwaysByViewport","visibleRect","originalPosition","documentWidth","documentHeight","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","outerWidth","outerHeight","getAlignOffset","getElFuturePos","elRegion","refNodeRegion","isFailX","elFuturePos","isFailY","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","newElRegion","newPoints","newOffset","newTargetOffset","isCompleteFailX","_newPoints","_newOffset","_newTargetOffset","isCompleteFailY","isStillFailX","isStillFailY","_newPoints2","resizeWidth","resizeHeight","adjustForViewport","alignElement","refNode","isTargetNotOutOfVisible","targetRegion","isOutOfVisibleRect","__getOffsetParent","__getVisibleRectForElement","monitorResize","prevWidth","prevHeight","getPoint","point","Align","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","forceAlignPropsRef","_useBuffer","calledRef","cancelTrigger","force","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestAlign","latestOnAlign","_result","_element","_point","tgtPoint","pointInView","restoreFocus","_useBuffer2","_forceAlign","cancelForceAlign","setElement","setPoint","forceAlign","RcAlign","StatusQueue","PopupInner","getRootDomNode","getClassNameFromAlign","onTouchStart","alignRef","alignedClassName","setAlignedClassName","_useStretchStyle","targetSize","setTargetSize","tgtWidth","tgtHeight","_element$getBoundingC","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","doMeasure","setInternalStatus","cancelRaf","useVisibleStatus","_useVisibleStatus2","goNextStatus","alignTimes","setAlignTimes","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","originHandler","alignDisabled","onMouseDownCapture","onTouchStartCapture","MobilePopupInner","_props$mobile","_props$mobile$popupMo","popupRender","serInnerVisible","inMobile","setInMobile","returnEmptyString","returnDocument","ALL_HANDLERS","PortalComponent","_popupVisible","fireEvents","delaySetPopupVisible","clearDelayTimer","_this$popupRef$curren","isFocusToShow","focusTime","focusDelay","preClickTime","preTouchTime","isBlurToHide","blurDelay","setPopupVisible","isContextMenuToShow","preTime","isClickToShow","isClickToHide","hasPopupMouseDown","mouseDownTimeout","onPopupMouseDown","getPopupDomNode","isContextMenuOnly","getPopupClassNameFromAlign","getAlignPopupClassName","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","onPopupMouseLeave","popupContainer","attachId","mountNode","attachParent","portalContainer","prevPopupVisible","componentDidUpdate","currentDocument","clickOutsideHandler","onDocumentClick","touchOutsideHandler","contextMenuOutsideHandler1","onContextMenuClose","contextMenuOutsideHandler2","clearOutsideHandler","_this$popupRef$curren2","placementStr","baseAlign","getAlignFromPlacement","delayS","childPros","_this$popupRef$curren3","childCallback","_this$props11","newChildProps","createTwoChains","childrenClassName","portal","handlePortalUpdate","getComponent","TriggerContext","triggerContextValue","addEventListenerWrap","APPEND_ORDER","APPEND_PRIORITY","MARK_KEY","containerCache","findStyles","injectCSS","_option$priority","mergedOrder","getOrder","isPrependQueue","styleNode","firstChild","existStyle","nodePriority","insertBefore","nextSibling","findExistNode","existNode","cachedRealContainer","placeholderStyle","syncRealContainer","_option$csp","_option$csp2","_option$csp3","newNode","SVGElement","isDOM","includePositive","isFocusableElement","isContentEditable","tabIndexAttr","tabIndexNum","querySelectorAll","getBBox","_getBBox","_width","_height","isStyleNameSupport","styleName","styleNameList","isStyleValueSupport","styleValue","MAC_ENTER","NUM_CENTER","PAUSE","PRINT_SCREEN","INSERT","DELETE","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","NUMLOCK","DASH","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","isCharacterKey","createRoot","fullClone","unmountComponentAtNode","toggleWarning","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","usingClientEntryPoint","MARK","modernRender","legacyRender","modernUnmount","_modernUnmount","_container$MARK","legacyUnmount","_unmount","cached","getScrollBarSize","fresh","outerStyle","widthContained","widthScroll","ensureSize","_getComputedStyle","fnRef","memoFn","_fnRef$current","useInternalLayoutEffect","firstMountRef","defaultStateValue","innerValue","postMergedValue","onChangeFn","ignoreDestroy","useSafeState","obj1","obj2","shallow","refSet","deepEqual","circular","newLevel","agent","propList","ariaPrefix","dataPrefix","mergedConfig","ariaOnly","attr","caf","rafUUID","rafIds","callRef","leftTimes","realId","refs","refList","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","internalSet","removeIfUndefined","_paths","createEmpty","internalMerge","parentLoopSet","loopSet","warned","preWarningFns","note","warningOnce","preMessage","Children","_reactIs","clearContainerCache","_contains","_useEvent","supportNodeRef","_toArray2","$$typeof","ContextConsumer","ContextProvider","Lazy","Profiler","StrictMode","SuspenseList","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType","getModuleId","typeOf","Filler","onInnerResize","innerProps","innerStyle","getPageXY","touches","ScrollBar","scrollOffset","scrollRange","onStartMove","onStopMove","spinSize","containerSize","propsThumbStyle","thumbStyle","setDragging","pageXY","setPageXY","startTop","setStartTop","isLTR","scrollbarRef","thumbRef","visibleTimeoutRef","delayHidden","enableScrollRange","enableOffsetRange","canScroll","stateRef","onThumbMouseDown","onScrollbarTouchStart","scrollbarEle","thumbEle","enableScrollRangeRef","enableOffsetRangeRef","moveRafId","_stateRef$current","stateDragging","statePageY","stateStartTop","newTop","tmpEnableScrollRange","tmpEnableOffsetRange","newScrollTop","scrollbarPrefixCls","setRef","refFunc","CacheMap","maps","MAX_TIMES","useDiffItem","onDiff","diffItem","setDiffItem","targetList","shortList","longList","originLen","targetLen","notExistKey","__EMPTY_ITEM__","getItemKey","diffIndex","shortKey","findListDiffIndex","isScrollAtTop","isScrollAtBottom","lockTimeoutRef","scrollPingRef","deltaY","smoothOffset","originScroll","useFrameWheel","inVirtual","horizontalScroll","onWheelDelta","offsetRef","wheelValueRef","isMouseScrollRef","useOriginScroll","wheelDirectionRef","wheelDirectionCleanRef","deltaX","mergedDeltaX","mergedDeltaY","absX","absY","isFF","patchMultiple","onWheelY","onWheelX","detail","SMOOTH_PTG","MIN_SIZE","getSpinSize","EMPTY_DATA","ScrollStyle","overflowAnchor","RawList","_props$fullHeight","onVirtualScroll","extraRender","styles","useVirtual","isRTL","componentRef","fillerInnerRef","setOffsetTop","setOffsetLeft","scrollMoving","setScrollMoving","onScrollbarStartMove","onScrollbarStopMove","sharedConfig","syncScrollTop","alignedTop","maxScrollHeightRef","keepInRange","rangeRef","diffItemRef","_useDiffItem","_useHeights","onItemAdd","onItemRemove","updatedMark","setUpdatedMark","instanceRef","heightsRef","collectRafRef","collectHeight","doCollect","htmlElement","useHeights","_useHeights2","setInstanceRef","heights","heightUpdatedMark","_fillerInnerRef$curre","startIndex","startOffset","endIndex","itemTop","dataLen","cacheHeight","currentItemBottom","fillerOffset","setSize","verticalScrollBarRef","horizontalScrollBarRef","horizontalScrollBarSpinSize","verticalScrollBarSpinSize","maxScrollHeight","getVirtualScrollInfo","lastVirtualScrollInfoRef","triggerScroll","nextInfo","onScrollBar","newScrollOffset","keepInHorizontalRange","nextOffsetLeft","tmpOffsetLeft","offsetXY","fromHorizontal","_useFrameWheel","_useFrameWheel2","onRawWheel","onFireFoxScroll","cleanUpEvents","touchedRef","touchYRef","intervalRef","onTouchMove","currentY","onTouchEnd","useMobileTouchMove","onMozMousePixelScroll","componentEle","delayHideScrollBar","_verticalScrollBarRef","_horizontalScrollBarR","_scrollTo","triggerFlash","syncState","setSyncState","ori","targetAlign","originAlign","needCollectHeight","newTargetAlign","targetTop","stackTop","itemBottom","maxLen","leftHeight","_cacheHeight","lastTop","_arg$offset","useScrollTo","getScrollInfo","renderList","key2Index","bottomList","startKey","endKey","_heights$get","useGetSize","extraContent","listChildren","renderFunc","useChildren","componentStyle","containerProps","verticalScrollBar","verticalScrollBarThumb","horizontalScrollBar","horizontalScrollBarThumb","ba","da","ea","fa","ha","ja","la","ma","oa","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeNamespace","mustUseProperty","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","setAttributeNS","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","Ya","Za","$a","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","_status","qb","_debugOwner","_debugSource","return","rb","sb","xb","_valueTracker","stopTracking","tb","yb","zb","_wrapperState","initialChecked","Ab","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","defaultSelected","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","namespaceURI","MSApp","execUnsafeLocalFunction","Rb","nodeValue","Sb","Tb","animationiteration","animationstart","Ub","Vb","Wb","Xb","Yb","Zb","$b","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","pc","qc","topLevelType","targetInst","ancestors","eventSystemFlags","sc","containerInfo","tc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","cd","unstable_UserBlockingPriority","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","zoom","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","kd","ld","setProperty","nd","menuitem","area","br","embed","hr","keygen","wbr","od","pd","qd","rd","td","ud","vd","wd","compareDocumentPosition","xd","HTMLIFrameElement","yd","contentEditable","zd","Ad","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","Interface","isDefaultPrevented","returnValue","eventPool","fe","destructor","getPooled","cancelBubble","eventPhase","timeStamp","isTrusted","ge","he","je","ke","beforeInput","compositionEnd","compositionStart","compositionUpdate","qe","ve","we","tel","xe","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Ue","Ve","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","$e","af","bf","cf","ef","ff","gf","hf","jf","anchorNode","anchorOffset","focusNode","focusOffset","kf","lf","elapsedTime","pseudoElement","mf","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","rf","sf","tf","targetTouches","changedTouches","uf","vf","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","cg","dg","eg","hg","ig","jg","kg","mg","ng","og","_currentValue","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","ug","updateQueue","baseState","baseQueue","shared","effects","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","enqueueSetState","Gg","Hg","Ig","enqueueReplaceState","enqueueForceUpdate","Kg","shouldComponentUpdate","isPureReactComponent","Lg","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_owner","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","implementation","Vg","Wg","Xg","Yg","Zg","ah","bh","dh","eh","fh","gh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","nh","oh","ph","qh","rh","sh","uh","vh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useReducer","useDebugValue","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","ReactCurrentOwner","Zh","$h","ai","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","hi","pendingContext","ni","oi","pi","qi","retryTime","ji","unstable_avoidThisFallback","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","mi","si","wasMultiple","onclick","createElementNS","ti","ui","vi","xi","zi","Ai","Bi","WeakSet","Ci","Fi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","componentWillUnmount","Di","Ni","Oi","Qi","Ri","_reactRootContainer","Si","Ui","Vi","Wi","Xi","componentDidCatch","aj","Rj","cj","dj","ej","fj","gj","hj","ij","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","setStart","setEnd","vb","Uj","Vj","Wj","_ctor","ob","Xj","_calculateChangedBits","unstable_observedBits","Zj","isReactComponent","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hk","kk","jk","Lj","lk","Events","findFiberByHostInstance","__REACT_DEVTOOLS_GLOBAL_HOOK__","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","AsyncMode","ConcurrentMode","getBatch","ContextKey","gT","_gT$ContextKey","contextMap","realContext","ReactReduxContext","createReduxContextHook","useReduxContext","useSyncExternalStoreWithSelector","refEquality","createSelectorHook","useDefaultReduxContext","equalityFnOrOptions","equalityFn","_ref$equalityFn","_ref$stabilityCheck","stabilityCheck","noopCheck","_useReduxContext","subscription","getServerState","globalStabilityCheck","wrappedSelector","selectedState","addNestedSub","nullListeners","createSubscription","parentSub","subscriptionsAmount","selfSubscribed","handleChangeWrapper","onStateChange","trySubscribe","isSubscribed","createListenerCollection","tryUnsubscribe","cleanupListener","notifyNestedSubs","getListeners","serverState","_ref$noopCheck","createStoreHook","useStore","createDispatchHook","useDefaultStore","newBatch","objA","objB","keysA","keysB","initializeConnect","useSyncExternalStore","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","_onClick","_objectWithoutPropertiesLoose","isModifiedEvent","_ref2$component","__RouterContext","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","ariaCurrent","_ref$ariaCurrent","activeClassName","_ref$activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","escapedPath","matchPath","classnames","joinClassnames","MAX_SIGNED_31_BIT_INT","commonjsGlobal","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","emitter","handlers","changedBits","createEventEmitter","_inheritsLoose","oldValue","_Component2","onUpdate","_proto2","createNamedContext","historyContext","_pendingLocation","staticContext","computeRootMatch","isExact","cache$1","cacheLimit$1","cacheCount$1","_options$exact","_options$strict","_options$sensitive","pathCache","compilePath$1","_compilePath","context$1","computedMatch","isEmptyChildren","createURL","staticHandler","__self","__source","jsx","jsxs","keyPrefix","IsSomeRendererActing","PureComponent","_currentValue2","_threadCount","createFactory","createRef","lazy","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","PROBE_UNKNOWN_ACTION","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","previousStateForKey","nextStateForKey","middlewares","middlewareAPI","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootRecord","rval","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","NOT_FOUND","defaultEqualityCheck","equalityCheckOrOptions","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","maxSize","resultEqualityCheck","createCacheKeyComparator","createSingletonCache","cacheIndex","createLruCache","matchingEntry","clearCache","memoizeOptionsFromArgs","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption2","finalMemoizeOptions","dep","dependencyTypes","getDependencies","memoizedResultFunc","lastResult","recomputations","resetRecomputations","MapShim","getIndex","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","resolvePending","timeoutCallback","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","attributes","subtree","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","unstable_forceFrameRate","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","evtArr","evts","liveEvents","TinyEmitter","getRangeAt","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","VENDOR","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","MAC_OS","SUFFIX_BROWSER","enumerize","enums","str1","str2","lowerize","rgxMapper","strMapper","windowsVersionMap","EDGE","_uach","userAgentData","_rgxmap","mergedRegexes","_isSelfNav","_browser","brave","isBrave","getCPU","_cpu","getDevice","_device","standalone","maxTouchPoints","_engine","_os","setUA","CPU","DEVICE","ENGINE","OS","jQuery","Zepto","getSnapshot","rnds8","rng","msCrypto","REGEX","byteToHex","buf","rnds","searchParams","viewClasses","isArrayBufferView","isView","normalizeName","normalizeValue","iteratorFor","consumed","_noBody","bodyUsed","fileReaderReady","readBlobAsArrayBuffer","readAsArrayBuffer","bufferClone","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","_bodyFormData","URLSearchParams","_bodyArrayBuffer","isConsumed","encoding","readAsText","readBlobAsText","readArrayBufferAsText","methods","upcased","normalizeMethod","reParamSearch","bytes","parseHeaders","rawHeaders","Response","bodyInit","redirectStatuses","abortXhr","ontimeout","fixUrl","arrayLikeToArray","toPropertyKey","possibleConstructorReturn","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","assertThisInitialized","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","nonIterableSpread","hint","prim","toPrimitive","isCallable","tryToString","$TypeError","argument","isConstructor","$String","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","unicode","it","fails","isExtensible","NATIVE_ARRAY_BUFFER","DESCRIPTORS","classof","createNonEnumerableProperty","defineBuiltIn","defineBuiltInAccessor","InternalStateModule","enforceInternalState","enforce","getInternalState","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","klass","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","KEY","forced","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","getTypedArrayConstructor","uncurryThis","FunctionName","defineBuiltIns","anInstance","toIntegerOrInfinity","fround","IEEE754","arrayFill","arraySlice","setToStringTag","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_INDEX","getInternalArrayBufferState","getterFor","getInternalDataViewState","setInternalState","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","$DataView","DataViewPrototype","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","isLittleEndian","intIndex","boolIsLittleEndian","conversion","INCORRECT_ARRAY_BUFFER_NAME","testView","$setInt8","setInt8","getInt8","setUint8","unsafe","detached","bufferState","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toAbsoluteIndex","lengthOfArrayLike","deletePropertyOrThrow","copyWithin","argumentsLength","endPos","$forEach","STRICT_METHOD","arrayMethodIsStrict","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","toIndexedObject","createMethod","IS_INCLUDES","$this","IndexedObject","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","boundFunction","filterReject","$lastIndexOf","NEGATIVE_ZERO","FORCED","V8_VERSION","SPECIES","METHOD_NAME","foo","aCallable","IS_RIGHT","SILENT_ON_NON_WRITABLE_LENGTH_SET","fin","insertionSort","comparefn","llength","rlength","lindex","rindex","mergeSort","originalArray","arraySpeciesConstructor","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tryGet","iterate","defineIterator","createIterResultObject","setSpecies","fastKey","internalStateGetterFor","getConstructor","CONSTRUCTOR_NAME","ADDER","AS_ENTRIES","getEntry","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","getWeakData","ArrayIterationModule","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","isForced","InternalMetadataModule","checkCorrectnessOfIteration","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","getOwnPropertyDescriptorModule","definePropertyModule","error1","requireObjectCoercible","quot","createPropertyDescriptor","bitmap","propertyKey","ordinaryToPrimitive","makeBuiltIn","defineGlobalProperty","simple","nonConfigurable","nonWritable","documentAll","IS_HTMLDDA","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","documentCreateElement","DOMTokenListPrototype","IS_DENO","IS_NODE","Bun","Deno","UA","Pebble","versions","v8","webkit","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","regexpExec","RegExpPrototype","SHAM","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","forceStringMethod","$exec","doesNotExceedSafeInteger","flattenIntoArray","sourceLen","mapper","targetIndex","mapFn","preventExtensions","NATIVE_BIND","FunctionPrototype","$Function","factories","partArgs","getDescriptor","uncurryThisWithBind","namespace","getMethod","Iterators","usingIterator","replacer","rawLength","keysLength","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","captures","namedCaptures","tailPos","check","getBuiltIn","mantissaLength","mantissa","exponentLength","eMax","eBias","rt","nBits","NewTargetPrototype","functionToString","inspectSource","hiddenKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","onFreeze","NATIVE_WEAK_MAP","sharedKey","OBJECT_ALREADY_INITIALIZED","facade","$documentAll","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","feature","detection","POLYFILL","NATIVE","USE_SYMBOL_AS_UID","stopped","ResultPrototype","unboundFunction","iterFn","IS_RECORD","IS_ITERATOR","INTERRUPTED","callFn","innerResult","innerError","returnThis","IteratorConstructor","ENUMERABLE_NEXT","IS_PURE","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","PrototypeOfArrayIteratorPrototype","arrayIterator","CONFIGURABLE_LENGTH","TEMPLATE","$expm1","expm1","EPSILON","INVERSE_EPSILON","FLOAT_EPSILON","FLOAT_MAX_VALUE","FLOAT_MIN_VALUE","absolute","roundTiesToEven","floatRound","log10","log1p","trunc","macrotask","Queue","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","queueMicrotaskDescriptor","microtask","exit","enter","nextTick","PromiseCapability","$$resolve","$$reject","globalIsFinite","whitespaces","$parseFloat","trimmedString","$parseInt","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","alphabet","activeXDocument","definePropertiesModule","enumBugKeys","SCRIPT","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","NullProtoObject","ActiveXObject","iframeDocument","JS","NullProtoObjectViaIFrame","Properties","V8_PROTOTYPE_DEFINE_BUG","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","$getOwnPropertyNames","windowNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","$propertyIsEnumerable","NASHORN_BUG","WEBKIT","__defineSetter__","uncurryThisAccessor","aPossiblePrototype","CORRECT_SETTER","objectGetPrototypeOf","IE_BUG","TO_ENTRIES","IE_WORKAROUND","pref","NativePromiseConstructor","IS_BROWSER","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability","promiseCapability","Target","Source","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","raw","sticky","charsAdded","strCopy","multiline","hasIndices","ignoreCase","dotAll","unicodeSets","regExpFlags","$RegExp","MISSED_STICKY","ENGINE_IS_BUN","USER_AGENT","validateArgumentsLength","WRAP","scheduler","hasTimeArg","firstParamIndex","boundArgs","TAG","SHARED","copyright","license","aConstructor","defaultConstructor","CONVERT_TO_STRING","codeAt","$repeat","IS_END","fillString","fillLen","stringFiller","intMaxLength","fillStr","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","$RangeError","digitToBasic","digit","adapt","numPoints","baseMinusTMin","ucs2decode","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","encoded","$trimEnd","forcedStringTrimMethod","$trimStart","ltrim","rtrim","SymbolPrototype","TO_PRIMITIVE","NATIVE_SYMBOL","keyFor","$location","setImmediate","clearImmediate","Dispatch","ONREADYSTATECHANGE","run","runner","eventListener","globalPostMessageDefer","importScripts","toPositiveInteger","BYTES","exoticToPrim","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","isIntegralNumber","toOffset","toUint8Clamped","typedArrayFrom","nativeDefineProperty","nativeGetOwnPropertyDescriptor","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","addElement","typedArrayOffset","$length","$len","arrayFromConstructorAndList","typedArraySpeciesConstructor","isBigIntArray","toBigInt","thisIsBigIntArray","speciesConstructor","postfix","params2","passed","wrappedWellKnownSymbolModule","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","arrayBufferModule","nativeArrayBufferSlice","viewSource","viewTarget","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","spreadable","addToUnscopables","$filter","$findIndex","FIND_INDEX","SKIPS_HOLES","$find","flat","depthArg","$includes","ARRAY_ITERATOR","Arguments","$map","$reduceRight","CHROME_VERSION","$reduce","nativeSlice","HAS_SPECIES_SUPPORT","internalSort","FF","IE_OR_EDGE","V8","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","itemsLength","arrayLength","getSortCompare","setArrayLength","deleteCount","insertCount","actualDeleteCount","actualStart","pv","dateToPrimitive","DatePrototype","HAS_INSTANCE","FUNCTION_NAME_EXISTS","nameRE","regExpExec","getReplacerFunction","$stringify","numberToString","tester","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","$acosh","acosh","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","clz32","$cosh","cosh","$hypot","hypot","aLen","larg","$imul","imul","UINT16","xn","yn","yl","log2","sinh","tanh","thisNumberValue","NUMBER","NativeNumber","PureNumberNamespace","NumberPrototype","third","maxCode","NumberWrapper","primValue","toNumeric","nativeToFixed","dataToString","fractionDigits","fractDigits","__defineGetter__","$entries","$freeze","fromEntries","$getOwnPropertySymbols","nativeGetPrototypeOf","$isFrozen","$isSealed","isSealed","__lookupGetter__","__lookupSetter__","$preventExtensions","$seal","seal","$values","newPromiseCapabilityModule","perform","capability","$promiseResolve","alreadyCalled","OwnPromiseCapability","nativeThen","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","UNHANDLED_REJECTION","callReaction","reaction","exited","rejection","onHandleUnhandled","isReject","notified","reactions","isUnhandled","internalReject","internalResolve","executor","PromiseWrapper","promiseResolve","onFinally","PromiseConstructorWrapper","CHECK_WRAPPER","functionApply","thisArgument","argumentsList","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","newTarget","$args","isDataDescriptor","objectPreventExtensions","objectSetPrototypeOf","existingDescriptor","ownDescriptor","getRegExpFlags","proxyAccessor","NativeRegExp","SyntaxError","stringIndexOf","IS_NCG","CORRECT_NEW","BASE_FORCED","RegExpWrapper","rawFlags","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","brackets","ncg","groupid","groupname","handleNCG","handleDotAll","INDICES_SUPPORT","calls","$toString","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","createHTML","forcedStringHTMLMethod","big","blink","bold","codePointAt","notARegExp","correctIsRegExpLogic","nativeEndsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","fixed","fontcolor","fontsize","$fromCodePoint","fromCodePoint","italics","STRING_ITERATOR","fixRegExpWellKnownSymbolLogic","advanceStringIndex","nativeMatch","maybeCallNative","fullUnicode","matchStr","$padEnd","$padStart","rawTemplate","literalSegments","getSubstitution","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","UNSAFE_SUBSTITUTE","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","replacerArgs","sameValue","nativeSearch","searcher","previousLastIndex","callRegExpExec","MAX_UINT32","$push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","nativeSplit","internalSplit","lim","lastLength","lastLastIndex","separatorCopy","splitter","unicodeMatching","nativeStartsWith","strike","sup","trimLeft","trimRight","$trim","defineWellKnownSymbol","nativeObjectCreate","getOwnPropertyNamesExternal","defineSymbolToPrimitive","HIDDEN","QObject","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","fallbackDefineProperty","ObjectPrototypeDescriptor","setSymbolDescriptor","$defineProperties","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","thisSymbolValue","symbolDescriptiveString","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","sym","u$ArrayCopyWithin","$every","$fill","actualValue","fromSpeciesAndList","createTypedArrayConstructor","$indexOf","ArrayIterators","arrayValues","arrayKeys","arrayEntries","ITERATOR_IS_VALUES","typedArrayValues","$join","WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS","TO_OBJECT_BUG","$some","ACCEPT_INCORRECT_ARGUMENTS","beginIndex","$toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","InternalWeakMap","collectionWeak","FROZEN","SEALED","IS_IE11","$WeakMap","WeakMapPrototype","nativeSet","nativeDelete","nativeHas","nativeGet","frozenArray","arrayIntegrityLevel","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","setTask","schedulersFix","USE_NATIVE_URL","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","safeGetBuiltIn","nativeFetch","RequestPrototype","HeadersPrototype","percentSequence","percentDecode","deserialize","replacements","URLSearchParamsIterator","URLSearchParamsState","parseObject","parseQuery","bindURL","entryIterator","entryNext","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","$value","getAll","found","headersHas","headersSet","wrapRequestOptions","RequestConstructor","arrayFrom","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_C0_CONTROL_OR_SPACE","TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","maxIndex","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","http","https","wss","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","isSingleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","URLState","isBase","failure","stateOverride","codePoints","bufferCodePoints","pointer","seenAt","seenBracket","seenPasswordToken","scheme","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","address","pieceIndex","parseIPv6","partsLength","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","setHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","nativeRevokeObjectURL","asyncGeneratorStep","gen","_next","_throw","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","leafPrototypes","def","chunkId","miniCssF","dataWebpackPrefix","script","needAttach","scripts","charset","onScriptComplete","doneFns","nmd","loadStylesheet","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","oldTag","linkTag","realHref","createStylesheet","installedCssChunks","miniCss","installedChunks","installedChunkData","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal"],"sourceRoot":""}