();\n\n const dispatcher = {\n postPageVisited: (data: IVisitedPagePayload) =>\n dispatch(TrafficAnalyticsActions.postVisitedPageStart(data)),\n };\n const { selectedPhase } = useAppSelector((state: IApplicationState) => ({\n selectedPhase: state.cboViewSummary.selectedPhase,\n }));\n\n useEffect(() => {\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.DCA,\n name: selectedEnagagementName,\n id: selectedEnagagementId,\n clientName: selectedClientName,\n });\n\n const dcaAuthUrl = getDCAAuthUrl();\n const dcaAuthenticated: any = isEngagement\n ? storage.getItemSession(STORAGE_CONSTANTS.dcaEngAuthenticated)\n : storage.getItemSession(STORAGE_CONSTANTS.dcaAuthenticated);\n if (dcaAuthenticated == 'true') {\n console.log('DCA Dashboard- DCA authenticated');\n setAuthenticated(true);\n } else {\n console.log('DCA not authenticated');\n setAuthenticated(false);\n const path =\n window.location?.pathname == routes.cboEngagementSummary\n ? `${window.location?.pathname}#${selectedPhase}`\n : window.location?.pathname;\n storage.setItem(STORAGE_CONSTANTS.authOriginatorUrl, path);\n window.location.href = dcaAuthUrl;\n }\n return () => {\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.DCA,\n name: selectedEnagagementName,\n id: selectedEnagagementId,\n clientName: selectedClientName,\n });\n };\n }, []);\n\n const getIframeUrl = (instanceUrl?: string) => {\n return `${formatUrl(instanceUrl ?? '')}/login#cboone`;\n };\n\n return (\n \n {authenticated && (\n \n \n )}\n
\n );\n};\n\nexport default DCADashboard;\n","import React, { useState, useEffect } from 'react';\nimport Loader from '../../../components/Loader/Loader';\nimport '../TruNorthDashboard/TruNorthDashboard.less';\nimport { handleZoom } from '../../../libs/helper/HelperFunctions';\nimport {\n IVisitedPagePayload,\n SectionType,\n TrafficAnalyticsActions,\n} from '../../../libs/store/actions/WebAnalytics/TrafficAnalyticsActions';\nimport { useDispatch } from 'react-redux';\nimport { IProduct } from '../../../libs/models/cbo/EngagementModels';\nimport { digitalTesterDemoInstanceConfig } from '../KeyAssetsConstant';\n\ninterface IAssetProps {\n selectedAssetConfig?: IProduct;\n isEngagement?: boolean;\n selectedEnagagementName?: string;\n selectedEnagagementId?: string;\n selectedClientName?: string;\n}\n\nconst DigitalTesterDashboard = ({\n isEngagement,\n selectedAssetConfig,\n selectedEnagagementName,\n selectedEnagagementId,\n selectedClientName,\n}: IAssetProps) => {\n const dispatch = useDispatch();\n const [isLoading, setIsLoading] = useState(true);\n const dispatcher = {\n postPageVisited: (data: IVisitedPagePayload) =>\n dispatch(TrafficAnalyticsActions.postVisitedPageStart(data)),\n };\n\n useEffect(() => {\n handleZoom('assess-iframe');\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.DIGITALTESTER,\n id: selectedEnagagementId,\n name: selectedEnagagementName,\n clientName: selectedClientName,\n });\n return () => {\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.DIGITALTESTER,\n id: selectedEnagagementId,\n name: selectedEnagagementName,\n clientName: selectedClientName,\n });\n };\n }, []);\n\n return (\n \n \n \n
\n );\n};\n\nexport default DigitalTesterDashboard;\n","import React, { useState, useEffect } from 'react';\nimport Loader from '../../../components/Loader/Loader';\nimport { formatUrl, handleZoom } from '../../../libs/helper/HelperFunctions';\nimport {\n IVisitedPagePayload,\n SectionType,\n TrafficAnalyticsActions,\n} from '../../../libs/store/actions/WebAnalytics/TrafficAnalyticsActions';\nimport { useDispatch } from 'react-redux';\nimport { truNorthCodeDiscoveryDemoInstanceConfig } from '../KeyAssetsConstant';\nimport { IProduct } from '../../../libs/models/cbo/EngagementModels';\n\ninterface IAssetProps {\n url?: string;\n selectedAssetConfig?: IProduct;\n isEngagement?: boolean;\n selectedEnagagementName?: string;\n selectedEnagagementId?: string;\n selectedClientName?: string;\n}\n\nconst InnowakeDiscoveryDashboard = ({\n isEngagement,\n selectedAssetConfig,\n selectedEnagagementName,\n selectedEnagagementId,\n selectedClientName,\n}: IAssetProps) => {\n const dispatch = useDispatch();\n const [isLoading, setIsLoading] = useState(true);\n const dispatcher = {\n postPageVisited: (data: IVisitedPagePayload) =>\n dispatch(TrafficAnalyticsActions.postVisitedPageStart(data)),\n };\n\n useEffect(() => {\n handleZoom('assess-iframe');\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.TRUNORTH_CODE_DISCOVERY,\n name: selectedEnagagementName,\n id: selectedEnagagementId,\n clientName: selectedClientName,\n });\n return () => {\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.TRUNORTH_CODE_DISCOVERY,\n name: selectedEnagagementName,\n id: selectedEnagagementId,\n clientName: selectedClientName,\n });\n };\n }, []);\n\n const getIframeUrl = (instanceUrl?: string, projectId?: string) => {\n return `${formatUrl(instanceUrl ?? '')}/#/project-${projectId}/dashboard`;\n };\n\n return (\n \n \n \n
\n );\n};\n\nexport default InnowakeDiscoveryDashboard;\n","\nexport const AssetAuthorisationtLabels = {\n cwbTitle: 'Cloud Work Book',\n cwbSubtitle:\n 'Cloud Workbook is a framework developed by Deloitte’s cloud practitioners to help clients quickly acquire meaningful and actionable insights to determine their right path to cloud, assess the total cost of ownership, and optimize the organizational structure to get the highest value from cloud investments',\n cwbPopupWindowName: 'Authentication CWB',\n cmsPopupWindowName: 'Authentication CMS',\n assessPopupWindowName: 'Authentication Assess',\n};\n\nexport const AssetAuthorisationModalLabels = {\n assessSuccess : 'Assess Authorized Successfully',\n assessFailed: 'Assess Authorization failed',\n cwbSuccess: 'Cloud Work Book Authorized Successfully',\n cwbFailed: 'Cloud Work Book Authorization failed',\n cmsSuccess: 'Open Cloud Authorized Successfully',\n cmsFailed: 'Open Cloud Authorization failed',\n ok: 'OK',\n};\nexport enum AssestStatus {\n CONFIGURE = 'configure',\n SUCCESS = 'success',\n EXPIRED = 'expired',\n}\nexport const cmsAuthorisationState = {\n title: 'Open Cloud',\n subtitle:\n 'Cloud Managed Services can help Deloitte clients by simplifying the management of existing and new cloud workloads',\n icon: `${process.env.PUBLIC_URL}/icons/cloud-asset3.svg`,\n assetStatus: AssestStatus.SUCCESS,\n};\n\nexport const cb360AuthorisationState = {\n title: 'CB 360',\n subtitle:\n 'Cloud Managed Services can help Deloitte clients by simplifying the management of existing and new cloud workloads',\n icon: `${process.env.PUBLIC_URL}/icons/cloud-asset3.svg`,\n assetStatus: AssestStatus.SUCCESS,\n};\n\nexport const AssetAuthorisationState = [\n {\n title: 'Deloitte Cloud Accelerator',\n subtitle:\n 'DCA enables the creation of environments to support the application development lifecycle. It helps deploy cloud resources required for the application ensuring the resources follow best practices and security guidelines. It provides a one click deployment of the Cloud Environment using Infrastructure as Code (IaC) capabilities',\n icon: `${process.env.PUBLIC_URL}/icons/cloud-asset2.svg`,\n assetStatus: AssestStatus.CONFIGURE,\n },\n\n {\n title: 'DevOps Cloud Platform',\n subtitle:\n 'DCP is an AllOps platform that automates continuous improvement throughout the development cycle, offers real-time insights into DevSecOps pipelines, and executes compliance rules on cloud resources',\n icon: `${process.env.PUBLIC_URL}/icons/cloud-asset4.svg`,\n assetStatus: AssestStatus.CONFIGURE,\n },\n {\n title: 'Cloud Billing 360',\n subtitle:\n 'Cloud Billing 360 provides information on spending on the cloud resources provisioned. It Provides the cost summary, credit summary, cost optimization summary and carbon footprint. We can create budgets, alerts as well as view the cost allocations.',\n icon: `${process.env.PUBLIC_URL}/icons/cb360.png`,\n assetStatus: AssestStatus.SUCCESS,\n },\n {\n title: 'COFTA',\n subtitle:\n 'Cognitive Functional Test Automation (COFTA) is an AI-enabled solution complements functional testing by converting test cases written in plain English to auto.',\n icon: `${process.env.PUBLIC_URL}/icons/testing-icon-1.svg`,\n assetStatus: AssestStatus.SUCCESS,\n },\n];\n\nexport const POPUP_WINDOW_CONFIG =\n 'left=350,top=150,width=600,height=350,resizable=no,toolbar=no,menubar=no,location=no,status=no,popup=yes';\n","import React, { useState, useEffect } from 'react';\nimport Loader from '../../../components/Loader/Loader';\nimport '../TruNorthDashboard/TruNorthDashboard.less';\nimport {\n AssetAuthorisationtLabels as LABELS,\n POPUP_WINDOW_CONFIG,\n} from '../../AssetAuthorisation/AssetAuthorisationConstants';\nimport AxiosInstance from '../../../libs/services/AxiosInstance';\nimport { useHistory } from 'react-router';\nimport { routes } from '../../../navigation/Routes';\nimport { handleZoom } from '../../../libs/helper/HelperFunctions';\nimport { useDispatch } from 'react-redux';\nimport {\n IVisitedPagePayload,\n SectionType,\n TrafficAnalyticsActions,\n} from '../../../libs/store/actions/WebAnalytics/TrafficAnalyticsActions';\nimport { IProduct } from '../../../libs/models/cbo/EngagementModels';\nimport { talkQEDemoInstanceConfig } from '../KeyAssetsConstant';\n\ninterface IAssetProps {\n selectedAssetConfig?: IProduct;\n isEngagement?: boolean;\n selectedEnagagementName?: string;\n selectedEnagagementId?: string;\n selectedClientName?: string;\n}\n\nconst TalkQEDashboard = ({\n isEngagement,\n selectedAssetConfig,\n selectedEnagagementName,\n selectedEnagagementId,\n selectedClientName,\n}: IAssetProps) => {\n const dispatch = useDispatch();\n const [isLoading, setIsLoading] = useState(true);\n const history = useHistory();\n const instance = AxiosInstance.create();\n const [url, seturl] = useState('');\n\n const dispatcher = {\n postPageVisited: (data: IVisitedPagePayload) =>\n dispatch(TrafficAnalyticsActions.postVisitedPageStart(data)),\n };\n\n useEffect(() => {\n const instanceUrl = isEngagement\n ? selectedAssetConfig?.instanceUrl\n : talkQEDemoInstanceConfig.demoInstanceUrl;\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.TALKQE,\n name: selectedEnagagementName,\n id: selectedEnagagementId,\n clientName: selectedClientName,\n });\n instance\n .get(`${instanceUrl}/auth/sso`)\n .then((response) => {\n let authorisationWindow: any;\n authorisationWindow = window.open(\n response.data,\n LABELS.assessPopupWindowName,\n POPUP_WINDOW_CONFIG,\n );\n\n window.addEventListener('message', (event: MessageEvent) => {\n if (event.origin === instanceUrl) {\n if (event.data === `${instanceUrl}/talkqe/#/?ssoLoginSuccess=true`) {\n seturl(event.data);\n authorisationWindow?.close();\n setIsLoading(false);\n } else if (event.data === `${instanceUrl}/talkqe/#/forbidden`) {\n console.log('Forbidden');\n authorisationWindow?.close();\n setIsLoading(false);\n history.push(routes.cboDashboard);\n }\n }\n });\n })\n .catch(function (error) {\n console.log(error);\n });\n return () => {\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.TALKQE,\n name: selectedEnagagementName,\n id: selectedEnagagementId,\n clientName: selectedClientName,\n });\n };\n }, []);\n\n useEffect(() => {\n url && handleZoom('assess-iframe');\n }, [url]);\n\n return (\n \n {url && (\n \n \n )}\n
\n );\n};\nexport default TalkQEDashboard;\n","import React from 'react';\nimport { Button, Drawer, Typography } from 'antd';\nimport TruNorthDashboard from './TruNorthDashboard/TruNorthDashboard';\nimport Cb360Dashboard from './Cb360Dashboard/Cb360Dashboard';\nimport CwbDashboard from './CwbDashboard/CwbDashboard';\nimport DCADashboard from './DCADashboard/DCADashboard';\nimport {\n CBOKeyAssetsDisplayName as LABELS,\n TruNorthFeature,\n CBOKeyAssets,\n CBOKeyAssetsDisplayName,\n} from '../../containers/CBOSidebar/CBOSidebarConstants';\nimport './KeyAssets.less';\nimport TalkQEDashboard from './TalkQEDashboard/TalkQEDashboard';\nimport CMSDashboard from './CMSDashboard/CMSDashboard';\nimport OperateEdgeDashboard from './OperateEdgeDashboard/OperateEdgeDashboard';\nimport InnowakeDiscoveryDashboard from './InnowakeDiscoveryDashboard/InnowakeDiscoveryDashboard';\nimport ApiVaultDashboard from './ApiVaultDashboard/ApiVaultDashboard';\nimport DigitalTesterDashboard from './DigitalTesterDashboard/DigitalTesterDashboard';\nimport { IProduct } from '../../libs/models/cbo/EngagementModels';\nimport CBOTruNorthDecomposeDashboard from './CBOTruNorthDecomposeDashboard/CBOTruNorthDecomposeDashboard';\nimport { useAppSelector, IApplicationState } from '../../libs/store/reducers';\n\ninterface IKeyAssetsProps {\n visible: boolean;\n onClose: () => void;\n title: string;\n url?: string;\n assetName?: string;\n assetUrl?: string;\n selectedAssetConfig?: IProduct;\n isEngagement?: boolean;\n selectedEnagagementName?: string;\n selectedEnagagementId?: string;\n}\n\nconst KeyAssets = ({\n visible,\n onClose,\n title,\n assetName,\n assetUrl,\n selectedAssetConfig,\n isEngagement,\n selectedEnagagementName,\n selectedEnagagementId,\n}: IKeyAssetsProps) => {\n const { selectedClientName } = useAppSelector((state: IApplicationState) => ({\n selectedClientName: state.cboViewSummary.selectedClientName,\n }));\n\n return (\n \n }\n >\n {assetName == CBOKeyAssets.cboTruNorthModernizationCentral && (\n \n )}\n {title == LABELS.cboCB360Asset && (\n \n )}\n {title == LABELS.cboCWBAsset && (\n \n )}\n {title == LABELS.cboDCAAsset && (\n \n )}\n {(title == LABELS.cboTruNorthDecomposeModernization ||\n title === LABELS.cboTruNorthDecomposeDecomposition) && (\n \n )}\n {title == LABELS.cboTalkQEAsset && (\n \n )}\n {title == LABELS.cboCOFTAAsset && }\n {title == LABELS.cms && (\n \n )}\n {title == LABELS.operateEdge && (\n \n )}\n {title == LABELS.truNorthCodeDiscovery && (\n \n )}\n {title == LABELS.cboApiVault && (\n \n )}\n {title == LABELS.cboDCPAsset && (\n \n )}\n {title == LABELS.cboDigitalTester && (\n \n )}\n \n );\n};\n\nexport default KeyAssets;\n","import { IProduct } from '../../libs/models/cbo/EngagementModels';\n\nexport const truNorthModernizationCentralDemoInstanceConfig = {\n demoInstanceUrl: 'https://corebusinessone.trunorth.deloitte.com/', //'https://nightly.trunorth.deloitte.com/'\n healthCheckUrl: 'https://corebusinessone.trunorth.deloitte.com/core/actuator/health', //'https://nightly.trunorth.deloitte.com/core/actuator/health', //\n portfolioid: '712144a4-e09d-4bc0-b152-49839de9381c', //'42725702-547f-4f00-9dea-d426d8edb3d8', //\n portfolioName: 'Core Business One Demo', // 'CBO Demo', //\n projectName: 'Cloud Optimization', //'Datacenter Exit',\n realm: 'TruNorth', //'TruNorth'\n authDomainUrl: 'https://auth.trunorth.deloitte.com',\n demoJiraInstanceUrl: 'https://iriseu.deloitte.com/projects/CBOPCM',\n};\n\nexport const truNorthCodeDiscoveryDemoInstanceConfig = {\n demoInstanceUrl: 'https://appmodil.deloitte.com/mining', //'https://mining.amm.us.deloitte.com/sandbox/',\n projectId: '1', //3\n apiProjectId: '8',\n};\n\nexport const talkQEDemoInstanceConfig = {\n demoInstanceUrl: 'https://demotalkqe.deloitte.com',\n};\n\nexport const digitalTesterDemoInstanceConfig = {\n demoInstanceUrl: 'https://qadt.deloitte.com',\n};\n\nexport const dcaDemoInstanceConfig = {\n demoInstanceUrl: 'https://cbo.dca.deloitte.com/', //old url https://dev.dca.deloitte.com/login#cboone\n};\n\nexport const cwbemoInstanceConfig = {\n demoInstanceUrl: 'https://cwb.deloitte.com/',\n};\n\nexport const OperateEdgeDemoInstanceConfig = {\n demoInstanceUrl: 'https://preprod-operateedge.deloitte.com/',\n appId: '30563',\n};\n\nexport const apiVaultDemoInstanceConfig = {\n demoInstanceUrl: 'https://deloittetouchellp30community.force.com/s/',\n};\n\nexport const cb360DemoInstanceConfig = {\n demoInstanceUrl: 'https://demo-qa-cb360.us.deloitte.com', //'https://qasite-cb360.us.deloitte.com/',\n demoAccessTokenAPIUrl: 'https://demo-qa-apigw-cb360.us.deloitte.com', //'https://qasite-apigw-cb360.us.deloitte.com/authz/auth/token',\n};\n\nexport const cmsDemoInstanceConfig = {\n demoInstanceUrl: 'https://deloitteauthqa.opencloudportal.com/',\n};\n\nexport const depGitHubPilotInstanceConfig = {\n demoInstanceUrl: 'https://github.com/Deloitte-US-Consulting/dep-demo',\n};\n\nexport const depKuberneteServicesInstanceConfig = {\n demoInstanceUrl: 'https://github.com/Deloitte-US-Engineering/ska-core',\n};\n\nexport const SmartPMODemoInstanceConfig = {\n demoInstanceUrl: 'https://app.smartsheet.com',\n};\n\nexport const depDemoInstanceConfig = {\n demoInstanceUrl: 'https://engineeringplatforms.deloitte.com', // old URL 'https://dep.test.deloitteinnovation.us',\n demoGitRepoList: ['dep-demo'],\n demoKMSInstanceUrl:\n 'https://kms-cbone-main-use1.cbone.eac-apilot.dep.deloitteinnovation.us/argocd',\n};\n\nexport const processBionicsConfig = {\n demoInstanceUrl:\n 'https://deloitte-us-partner-sandbox.us-1.celonis.cloud/package-manager/ui/views/ui/spaces/d8a24dcf-f864-47e2-a22c-f9ff7d315dac/nodes/40122610-cba3-4b6a-9c0d-0bb250f7a02c?inventory-network-analysis--tab-column_2ce1d4fd-abd9-47a6-8418-038b1f9c4237-0=tab-6927208d-c126-4be9-94a5-1fedc995c988',\n};\nexport const DigitalMaturityDiagnosticConfig = {\n viewMoreUrl: 'https://resources.deloitte.com/sites/global/Services/ft/Pages/DMAT.aspx',\n};\nexport const automatedVUCAAssessmentConfig = {\n viewMoreUrl: 'https://app.smartsheet.com/folders/9F8jQPPCX7HxCmxQfjpj7hQFvMp7HmrMGgCfC6f1',\n};\n\nexport const AIAssistConfig = {\n demoJiranstanceUrl: 'https://iriseu.deloitte.com/projects/CBOPCM',\n};\n\nexport const trunorthDecomposeDemoInstanceConfig = {\n demoInstanceUrl: 'https://db-cutter.amm.us.deloitte.com/prod',\n demoJiraInstanceUrl: 'https://iriseu.deloitte.com/projects/CBOPCM',\n};\n","import React, { useState, useEffect } from 'react';\nimport Loader from '../../../components/Loader/Loader';\nimport { formatUrl, handleZoom } from '../../../libs/helper/HelperFunctions';\nimport {\n IVisitedPagePayload,\n SectionType,\n TrafficAnalyticsActions,\n} from '../../../libs/store/actions/WebAnalytics/TrafficAnalyticsActions';\nimport { useDispatch } from 'react-redux';\nimport { IProduct } from '../../../libs/models/cbo/EngagementModels';\nimport { OperateEdgeDemoInstanceConfig } from '../KeyAssetsConstant';\nimport { useAppSelector, IApplicationState } from '../../../libs/store/reducers';\nimport { featureNames } from '../../CBOEngagementSummary/CBOEngagementSummaryConstants';\n\ninterface IAssetProps {\n selectedAssetConfig?: IProduct;\n isEngagement?: boolean;\n selectedEnagagementName?: string;\n selectedEnagagementId?: string;\n isViewMore?: boolean;\n selectedClientName?: string;\n}\n\nconst OperateEdgeDashboard = ({\n isEngagement,\n selectedAssetConfig,\n selectedEnagagementName,\n selectedEnagagementId,\n isViewMore,\n selectedClientName,\n}: IAssetProps) => {\n const dispatch = useDispatch();\n const [isLoading, setIsLoading] = useState(true);\n const dispatcher = {\n postPageVisited: (data: IVisitedPagePayload) =>\n dispatch(TrafficAnalyticsActions.postVisitedPageStart(data)),\n };\n\n const { selectedFeature } = useAppSelector((state: IApplicationState) => ({\n selectedFeature: state.cboViewSummary.selectedFeature,\n }));\n useEffect(() => {\n handleZoom('assess-iframe');\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.OPERATEEDGE,\n name: selectedEnagagementName,\n id: selectedEnagagementId,\n clientName: selectedClientName,\n });\n return () => {\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.OPERATEEDGE,\n name: selectedEnagagementName,\n id: selectedEnagagementId,\n clientName: selectedClientName,\n });\n };\n }, []);\n\n const getFeatureRoute = () => {\n switch (selectedFeature) {\n case featureNames?.problemInsights:\n return 'problem-insights/dashboard';\n\n case featureNames.incidentDetails:\n case featureNames.incidentDetails:\n case featureNames.incidentSummaryByStatus:\n return 'service/incident';\n\n case featureNames.learningCenter:\n return 'report/dashboard';\n case featureNames?.transitions:\n return 'transition/tdashboard';\n default:\n return '';\n }\n };\n const getIframeUrl = () => {\n return selectedAssetConfig?.configDone\n ? `${formatUrl(selectedAssetConfig?.instanceUrl ?? '')}/OPI.OE/app/${getFeatureRoute()}`\n : `${formatUrl(\n OperateEdgeDemoInstanceConfig.demoInstanceUrl ?? '',\n )}/OPI.OE/app/${getFeatureRoute()}`;\n };\n\n return (\n \n \n \n
\n );\n};\n\nexport default OperateEdgeDashboard;\n","import React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router';\nimport { Modal, Typography } from 'antd';\nimport { STORAGE_CONSTANTS, useStorage, storage } from '../../../libs/services/LocalStorage';\nimport { routes } from '../../../navigation/Routes';\nimport { getAssessAuthUrl } from '../../CBOLogin/CBOLoginConstants';\nimport {\n AssetAuthorisationtLabels as LABELS,\n POPUP_WINDOW_CONFIG,\n} from '../../AssetAuthorisation/AssetAuthorisationConstants';\nimport './TruNorthDashboard.less';\nimport Loader from '../../../components/Loader/Loader';\nimport AxiosInstance from '../../../libs/services/AxiosInstance';\nimport { useAppSelector, IApplicationState } from '../../../libs/store/reducers';\nimport { formatUrl, handleZoom } from '../../../libs/helper/HelperFunctions';\nimport { useDispatch } from 'react-redux';\nimport {\n IVisitedPagePayload,\n SectionType,\n TrafficAnalyticsActions,\n} from '../../../libs/store/actions/WebAnalytics/TrafficAnalyticsActions';\nimport { truNorthModernizationCentralDemoInstanceConfig } from '../KeyAssetsConstant';\nimport { IProduct } from '../../../libs/models/cbo/EngagementModels';\nimport { API_ROUTE_CBO } from '../../../libs/services/ApiRoute';\n\ninterface IAssetProps {\n url?: string;\n selectedAssetConfig?: IProduct;\n isEngagement?: boolean;\n selectedEnagagementName?: string;\n selectedEnagagementId?: string;\n selectedClientName?: string;\n}\nconst TruNorthDashboard = ({\n url,\n selectedAssetConfig,\n isEngagement,\n selectedEnagagementName,\n selectedEnagagementId,\n selectedClientName,\n}: IAssetProps) => {\n const dispatch = useDispatch();\n const history = useHistory();\n const [showAssess, setshowAssess] = useState(false);\n const [isReachable, setIsReachable] = useState(true);\n const instance = AxiosInstance.create();\n const { selectedPhase } = useAppSelector((state: IApplicationState) => ({\n selectedPhase: state.cboViewSummary.selectedPhase,\n }));\n\n const handleAssessConfig = () => {\n const authUrl = getAssessAuthUrl(\n selectedAssetConfig?.configDone\n ? formatUrl(selectedAssetConfig?.authDomainUrl ?? '')\n : truNorthModernizationCentralDemoInstanceConfig.authDomainUrl,\n selectedAssetConfig?.configDone\n ? selectedAssetConfig?.realm\n : truNorthModernizationCentralDemoInstanceConfig.realm,\n );\n const path =\n window.location?.pathname == routes.cboEngagementSummary\n ? `${window.location?.pathname}#${selectedPhase}`\n : window.location?.pathname;\n storage.setItem(STORAGE_CONSTANTS.authOriginatorUrl, path);\n window.location.href = authUrl;\n };\n\n const dispatcher = {\n postPageVisited: (data: IVisitedPagePayload) =>\n dispatch(TrafficAnalyticsActions.postVisitedPageStart(data)),\n };\n\n useEffect(() => {\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.TRUNORTH_MODERNIZATION_CENTRAL,\n name: selectedEnagagementName,\n id: selectedEnagagementId,\n clientName: selectedClientName,\n });\n instance\n .get(\n isEngagement\n ? formatUrl(selectedAssetConfig?.healthCheckUrl!)\n : selectedAssetConfig?.configDone\n ? formatUrl(selectedAssetConfig?.healthCheckUrl!)\n : formatUrl(truNorthModernizationCentralDemoInstanceConfig.healthCheckUrl),\n )\n .then(function (response) {\n console.log('Health check Response', response);\n\n setIsReachable(true);\n const tokenExpiry: any = selectedAssetConfig?.configDone\n ? storage.getItemSession(STORAGE_CONSTANTS.assessConfigTokenExpiry)\n : storage.getItemSession(STORAGE_CONSTANTS.assessTokenExpiry);\n const assessToken: any = selectedAssetConfig?.configDone\n ? storage.getItemSession(STORAGE_CONSTANTS.assessConfigAccessToken)\n : storage.getItemSession(STORAGE_CONSTANTS.assessAccessToken);\n if (assessToken) {\n setshowAssess(true); // if active session token is there show portlet\n } else {\n setshowAssess(false);\n handleAssessConfig();\n }\n // if (assessToken || tokenExpiry) {\n // if (Math.round(Date.now() / 1000) > parseInt(tokenExpiry || '')) {\n // setshowAssess(false);\n // handleAssessConfig();\n // } else {\n // setshowAssess(true); //if token valid show portlet\n // }\n // } else if (!assessToken || !tokenExpiry) {\n // setshowAssess(false);\n // handleAssessConfig();\n // }\n })\n .catch(function (error) {\n console.log('Error', error);\n setIsReachable(false);\n });\n return () => {\n if (selectedAssetConfig?.configDone) {\n storage?.removeSessionItem(STORAGE_CONSTANTS.assessConfigTokenExpiry);\n storage?.removeSessionItem(STORAGE_CONSTANTS.assessConfigAccessToken);\n } else {\n storage?.removeSessionItem(STORAGE_CONSTANTS.assessTokenExpiry);\n storage?.removeSessionItem(STORAGE_CONSTANTS.assessAccessToken);\n }\n\n dispatcher.postPageVisited({\n sectionType: isEngagement ? SectionType.ENG_ASSET : SectionType.PURSUIT_ASSET,\n assetName: SectionType.TRUNORTH_MODERNIZATION_CENTRAL,\n id: selectedEnagagementId,\n name: selectedEnagagementName,\n clientName: selectedClientName,\n });\n };\n }, []);\n\n const getIframeUrl = (instanceUrl?: string, portfolioId?: string) => {\n return `${formatUrl(instanceUrl ?? '')}/portfolios/${portfolioId}/portfolio`;\n };\n\n const loadIframe = () => {\n return (\n \n \n );\n };\n\n return (\n \n {isReachable ? (\n loadIframe()\n ) : (\n <>\n

\n
\n Please connect to VPN and try again\n \n >\n )}\n
\n );\n};\n\nexport default TruNorthDashboard;\n","export const AssessmentDetailsLabels = {\n legend: 'Legend',\n clickIndustry: 'Click here to see Industry chart',\n industryAverage: 'Industry Average',\n yourScore: 'Your Score',\n assessmentCategories: 'Assessment by Categories',\n loadingTitle: 'Fetching Charts ...',\n};\n\nexport const AssessmentDetailsColor = [\n ['#da2a1e', '#f9dad8'],\n ['#ffce03', '#ffe785'],\n ['#88bd29', '#d2eca1'],\n];\n\nexport const AssessmentDetailsLegendRanges = [\n [0, 50],\n [50, 75],\n [75, 100],\n];\n\nexport const IndustryChartColor = ['#E4D354', '#29908F'];\n\nexport const RecommendationsLabels = {\n cwbInsight: 'Deloitte CWB Insight',\n more: 'Click here for more..',\n highScoreMessage:\n 'Organization is outperforming the industry in this dimension. Continue to periodically review this dimension and adapt for a successful cloud adoption journey',\n};\n\nexport const getLowScoreMessage = (subCategory: string): string =>\n `Organization is comparable to the industry benchmark. Prioritize and focus efforts to improve ${subCategory} for seamless cloud adoption`;\n","import ColorScale from 'color-scales';\nimport moment from 'moment';\nimport jwt_decode from 'jwt-decode';\nimport {\n Environment,\n localhostEnvironments,\n CBOdevEnvironments,\n CBOprodEnvironments,\n} from '../../AppConstants';\nimport { AssessmentDetailsColor } from '../../containers/OpsModelAssessment/OpsModelAssessmentReportsConstants';\nimport { IUploadFileBody, LandingZoneStatus } from '../models/BuildDeployModels';\nimport { storage, STORAGE_CONSTANTS } from '../services/LocalStorage';\nimport { store } from '../store';\nimport ExcelJS from 'exceljs';\nimport { saveAs } from 'file-saver';\nimport { IReportConfig } from '../models/cbo/SmartStartModel';\n\ntype IDecodedToken = {\n auth_time: number;\n client_id: string;\n exp: number;\n iat: number;\n iss: string;\n jti: string;\n scope: string;\n sub: string;\n token_use: string;\n username: string;\n version: number;\n};\n\nexport const logOut = () => {\n const authTokenBasic = storage.getItem(STORAGE_CONSTANTS.authTokenBasic);\n storage.clearAll();\n storage.setItem(STORAGE_CONSTANTS.authTokenBasic, authTokenBasic!);\n store.dispatch({ type: 'LOG_OUT' });\n window.open('/#/login', '_self');\n};\n\nexport const dollarFormatter = (value: number) => `$${value.toFixed(2)}`;\n\nexport const getFormattedTimestamp = (dateTime: string) => {\n const formattedDateTime = new Date(dateTime);\n return formattedDateTime.toString().split('GMT')[0];\n};\n\nexport const getEnv = () => {\n if (CBOdevEnvironments.includes(window.location.hostname)) return Environment.DEV;\n if (localhostEnvironments.includes(window.location.hostname)) return Environment.LOCALHOST;\n if (CBOprodEnvironments.includes(window.location.hostname)) {\n return Environment.PROD;\n } else return Environment.PROD;\n};\n\nexport const isAuthenticated = (): boolean => {\n const accessToken = storage.getItem(STORAGE_CONSTANTS.accessToken);\n const userId = storage.getItem(STORAGE_CONSTANTS.userId);\n if (accessToken && userId) {\n // const decodedAccessToken: IDecodedToken = jwt_decode(accessToken);\n // if (decodedAccessToken.exp >= Math.round(Date.now()/1000)){\n return true;\n // }\n }\n return false;\n};\n\nexport const isAuthorized = (action: string, data: string[]): boolean => {\n return data?.includes(action);\n};\n// Creating a promise which opens an connection to listen to the given endpoint\nexport const listenerApiHelper = (endpoint: string) => {\n return new Promise(function (resolve, reject) {\n const evtSource = new EventSource(endpoint);\n\n evtSource.addEventListener('message', (event) => {\n if (event.data.toLowerCase().includes(LandingZoneStatus.CREATED.toLowerCase())) {\n evtSource.close();\n resolve(event.data);\n } else if (event.data.toLowerCase().includes(LandingZoneStatus.ERROR.toLowerCase())) {\n evtSource.close();\n resolve(event.data);\n } else {\n reject();\n }\n });\n });\n};\n\n// Method to upload File onto S3\nexport const uploadFile = (url: string, body: IUploadFileBody): Promise => {\n const formData = new FormData();\n Object.entries(body).forEach(([key, value]) => {\n formData.append(key, value);\n });\n return fetch(url, {\n method: 'POST',\n body: formData,\n });\n};\n\nexport const getNextFiveYears = (year: string): string[] => {\n return [0, 1, 2, 3, 4, 5].map((add) => (parseInt(year) + add).toString());\n};\n\nexport const calculatePercentageFromScore = (score: number): number => (score * 100) / 4;\n\nexport const getOpsModelColorScale = (percent: number): string => {\n if (percent < 50) {\n const colors = AssessmentDetailsColor[0] as string[];\n const colorScale = new ColorScale(0, 50, colors);\n return colorScale.getColor(percent).toHexString();\n } else if (percent < 75) {\n const colors = AssessmentDetailsColor[1] as string[];\n const colorScale = new ColorScale(50, 75, colors);\n return colorScale.getColor(percent).toHexString();\n } else {\n const colors = AssessmentDetailsColor[2] as string[];\n const colorScale = new ColorScale(75, 100, colors);\n return colorScale.getColor(percent).toHexString();\n }\n};\n\n//Method to check wether the string is valid JSON\nexport const jsonStringValidator = (value: string) => {\n try {\n JSON.parse(value);\n } catch (e) {\n return false;\n }\n return true;\n};\nexport const timeSince = (time: Date) => {\n let date = new Date().setDate(time.getDate());\n date = time.getTime();\n const time_formats = [\n [60, 'seconds', 1], // 60\n [3600, 'minute(s)', 60], // 60*60, 60\n [86400, 'hour(s)', 3600], // 60*60*24, 60*60\n [604800, 'day(s)', 86400], // 60*60*24*7, 60*60*24\n [2419200, 'week(s)', 604800], // 60*60*24*7*4, 60*60*24*7\n [29030400, 'month(s)', 2419200], // 60*60*24*7*4*12, 60*60*24*7*4\n [2903040000, 'year(s)', 29030400], // 60*60*24*7*4*12*100, 60*60*24*7*4*12\n ];\n const seconds = (+new Date() - date) / 1000,\n token = 'ago',\n list_choice = 1;\n\n if (seconds === 0) {\n return 'Just now';\n }\n\n let i = 0,\n format;\n while ((format = time_formats[i++]))\n if (seconds < Number(format[0])) {\n if (typeof format[2] === 'string') {\n return format[list_choice];\n } else\n return (\n (Math.floor(seconds / format[2]) as unknown as string) +\n ' ' +\n (format[1] as unknown as string) +\n ' ' +\n token\n );\n }\n return time;\n};\n\n//Method to Get TimeStamp of day from current timestamp\nexport const getTimeDayStamp = (days: number) => moment().subtract(days, 'days').format();\n\n//Method to open url in new tab\nexport const openInNewTab = (url: string) => {\n const newWindow = window.open(url, '_blank', 'noopener,noreferrer');\n if (newWindow) newWindow.opener = null;\n};\n\n//helper function to handle the viewport on zoom change\nexport const handleZoom = (className: string) => {\n const selectedZoom =\n storage.getItem(STORAGE_CONSTANTS.zoomValue) ??\n document.body?.className?.split(' ')?.filter((cl) => cl.includes('zoom'))?.[0] ??\n 'zoom-plus';\n const existingZoomClasses = document\n .getElementsByClassName(className)?.[0]\n ?.className?.split(' ')\n ?.filter((cl) => cl.includes('vh-zoom'));\n existingZoomClasses?.map((zoomClass) => {\n document.getElementsByClassName(className)?.[0]?.classList?.remove(zoomClass);\n });\n document.getElementsByClassName(className)?.[0]?.classList.add(`vh-${selectedZoom}`);\n};\n\n//function to remove the / atg the end of url if it exist\nexport const formatUrl = (url: string) => {\n if (url?.charAt(url.length - 1) == '/') {\n url = url?.slice(0, -1);\n }\n return url;\n};\n\n//CBO-3580_AI_AUTO_ENHANCE_CODE : export to excel functionality made resusable\nexport const generateAndDownloadExcel = async (\n jsonData: any[],\n columns: any[],\n filename: string,\n) => {\n const workbook = new ExcelJS.Workbook();\n\n const worksheet = workbook?.addWorksheet(filename);\n\n // Define columns\n worksheet.columns = columns;\n\n // Add rows from JSON data\n jsonData?.forEach((data) => {\n worksheet?.addRow(data);\n });\n\n // Apply styles to header\n const headerRow = worksheet?.getRow(1);\n headerRow.font = { bold: true, size: 12 };\n\n // Use exceljs's built-in functionality to write the workbook to a buffer\n const buffer = await workbook.xlsx.writeBuffer();\n\n // Use file-saver to save the file client-side\n const blob = new Blob([buffer], {\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n });\n saveAs(blob, `${filename}.xlsx`);\n};\n\n/**\n * Generates an Excel report based on the provided configuration and triggers a download of the file.\n * CBO-4367_AI_AUTO_NEW_CODE\n *\n * @param {IReportConfig} reportConfig - The configuration object for the report, including worksheets, columns, and data.\n *\n * @returns {Promise} A promise that resolves when the Excel file has been generated and downloaded.\n *\n * @example\n * const reportConfig = {\n * filename: 'Report',\n * worksheets: [\n * {\n * sheetName: 'Sheet1',\n * columns: [\n * { header: 'Column1', key: 'col1', width: 10 },\n * { header: 'Column2', key: 'col2', width: 20 },\n * ],\n * data: [\n * { col1: 'Data1', col2: 'Data2' },\n * { col1: 'Data3', col2: 'Data4' },\n * ],\n * },\n * ],\n * };\n *\n * generateAndDownloadExcelReport(reportConfig);\n */\nexport const generateAndDownloadExcelReport = async (reportConfig: IReportConfig) => {\n const workbook = new ExcelJS.Workbook();\n\n reportConfig?.worksheets?.forEach((sheet) => {\n const worksheet = workbook?.addWorksheet(sheet?.sheetName);\n\n // Define columns\n worksheet.columns = sheet?.columns;\n\n // Add rows from JSON data\n sheet?.data?.forEach((data) => {\n worksheet?.addRow(data);\n });\n\n // Apply styles to header\n const headerRow = worksheet?.getRow(1);\n headerRow.font = { bold: true, size: 11 };\n headerRow.eachCell((cell) => {\n cell.fill = {\n type: 'pattern',\n\n pattern: 'solid',\n fgColor: { argb: 'EDEDED' },\n };\n });\n // Apply border to all cells\n worksheet.eachRow((row) => {\n row.eachCell((cell) => {\n cell.border = {\n top: { style: 'thin' },\n left: { style: 'thin' },\n bottom: { style: 'thin' },\n right: { style: 'thin' },\n };\n });\n });\n });\n\n // Use exceljs's built-in functionality to write the workbook to a buffer\n const buffer = await workbook.xlsx.writeBuffer();\n\n // Use file-saver to save the file client-side\n const blob = new Blob([buffer], {\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n });\n saveAs(blob, `${reportConfig?.filename}.xlsx`);\n};\n\n// To remove the cookie\nexport const removeCookie = (name: string) => {\n document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\n};\n\n/**\n * Rounds a number to a specified number of decimal places.\n * @param num - The number to round.\n * @param decimalPlaces - The number of decimal places to display.\n * @returns The rounded number.\n */\nexport const roundToDecimalPlaces = (num: number, decimalPlaces: number): number => {\n if (isNaN(num)) return 0;\n const factor = Math.pow(10, decimalPlaces);\n return Math.round(num * factor) / factor;\n};\n\n/**\n * Converts an image ArrayBuffer to a base64 string.\n * @param data - The image ArrayBuffer.\n * @returns A promise that resolves with the base64 string.\n * CBO-3939_AI_AUTO_NEW_CODE: Added this function to convert image to base64\n */\nexport const convertImageToBase64 = (data: ArrayBuffer) => {\n const blob = new Blob([data], { type: 'image/jpeg' });\n const reader = new FileReader();\n return new Promise((resolve, reject) => {\n reader.onloadend = () => {\n const result = reader.result;\n if (typeof result === 'string') {\n const base64String = result.split(',')[1];\n resolve(base64String);\n } else {\n reject(new Error('Failed to convert image to base64'));\n }\n };\n reader.onerror = () => {\n reject(new Error('Failed to read image file'));\n };\n reader.readAsDataURL(blob);\n });\n};\n\n/**\n * Converts a string to camel case.\n * @param str - The string to convert.\n * @returns The camel case version of the string.\n */\nexport const toCamelCase = (str: string): string => {\n return str?.toLowerCase()?.slice(0, 1)?.toUpperCase() + str?.toLowerCase()?.slice(1);\n};\n\nexport const toPascalCase = (str: string): string => {\n return str?.toLowerCase()?.slice(0, 1)?.toUpperCase() + str?.toLowerCase()?.slice(1);\n};\n","import { CloudServiceProvider } from '../../AppConstants';\n\nexport interface ILandingZoneResponse {\n LandingZoneName: string;\n CurrentStatus: LandingZoneStatus;\n LandingZoneId: string;\n Errors: string;\n Sector: ILandingZoneSector;\n GCPProjectId: string;\n MicroserviceInfo: {\n status: LzMicroserviceStatus;\n ids: string;\n };\n CloudServiceProvider: CloudServiceProvider;\n CreatedOn: string;\n}\nexport enum ILandingZoneSector {\n GENERAL = 'GENERAL',\n CONSUMER = 'CONSUMER',\n FINANCIAL = 'FINANCIAL SERVICES',\n ENERGY = 'ENERGY, RESOURCES & INDUSTRIALS',\n GOVERNMENT = 'GOVERNMENT & PUBLIC SERVICES',\n HEALTH = 'HEALTHCARE',\n TECHNOLOGY = 'TECHNOLOGY, MEDIA & TELECOMMUNICATION',\n}\n\nexport enum LandingZoneStatus {\n CREATED = 'Created',\n IN_PROGRESS = 'In Progress',\n ERROR = 'Error',\n DELETE_IN_PROFRESS = 'delete in progress',\n}\n\nexport enum LzMicroserviceStatus {\n NOT_ENABLED = 'notEnabled',\n CREATED = 'Created',\n IN_PROGRESS = 'inProgress',\n ERROR = 'Error',\n}\n\nexport interface IUploadFileBody {\n key: string;\n AWSAccessKeyId: string;\n 'x-amz-security-token': string;\n policy: string;\n signature: string;\n file?: File;\n}\n\nexport interface IGetPresignedURLToUploadResponse {\n message: string;\n url: {\n url: string;\n fields: IUploadFileBody;\n };\n}\n\nexport interface IGetPresignedURLResponse {\n message: string;\n url: string;\n}\n\nexport interface IBuildDeployErrorState {\n errorKey: string;\n errorValue: string[];\n}\n\nexport enum IDeployStatus {\n DEPLOYED = 'Deployed',\n YET_TO_START = 'Yet To Start',\n}\n","export interface IAssetData {\n asset_id?: string;\n assetName: string;\n description: string;\n capabilities: ICapability[];\n category: string;\n assetLink: string;\n}\n\nexport enum SmartStartAction {\n ADD = 'add',\n DELETE = 'delete',\n NOCHANGE = 'nochange',\n}\nexport enum MOFAction {\n ADD = 'new',\n DELETE = 'delete',\n UPDATE = 'modify',\n}\n\nexport enum SmartStartCategory {\n GPS = 'GPS',\n COMMERCIAL = 'Commercial',\n}\n\nexport interface ICapability {\n capabilityName: string;\n capabilityId: string;\n action: SmartStartAction;\n}\n\nexport interface ISearchFilterSmartStartResponse {\n assetData: IAssetData[];\n count: number;\n}\n\nexport interface IAddSmartStartDataResponse {\n asset_id: string;\n}\nexport interface IAddMOFMappingResponse {\n asset_id: string;\n}\nexport interface ISmartStartMOF {\n asset_id?: string;\n assetName?: string;\n mappingId: string;\n gpsCommercial?: string;\n op?: string;\n offering?: string;\n marketOffering?: string;\n l1code?: string;\n l2code?: string;\n l3code?: string;\n action?: MOFAction;\n}\n\nexport interface ISmartStartCapability {\n capabilityName: string;\n capabilityId: string;\n asset_id: string;\n assetName: string;\n}\n\nexport interface IAllSmartStartDataResponse {\n smartStartList: IAssetData[];\n mofList: ISmartStartMOF[];\n capList: ISmartStartCapability[];\n}\n\nexport interface IReportColumn {\n header: string;\n key: string;\n width?: number;\n}\n\nexport interface IReportWorksheetConfig {\n sheetName: string;\n columns: IReportColumn[];\n data: any[];\n}\n\nexport interface IReportConfig {\n filename: string;\n worksheets: IReportWorksheetConfig[];\n}\nexport interface ISmartStartMOFDetailsResponse {\n ssid: string;\n marketOfferingMapping: ISmartStartMOF[];\n}\n\nexport interface ISmartStartDeleteResponse {\n successMessage: string;\n}\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n const threshold = 1000 / freq;\n let timer = null;\n return function throttled() {\n const force = this === true;\n\n const now = Date.now();\n if (force || now - timestamp > threshold) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n timestamp = now;\n return fn.apply(null, arguments);\n }\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n timestamp = Date.now();\n return fn.apply(null, arguments);\n }, threshold - (now - timestamp));\n }\n };\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\n\nexport default (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n }, freq);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport progressEventReducer from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType} = _config;\n let onCanceled;\n function done() {\n if (_config.cancelToken) {\n _config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (_config.signal) {\n _config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n _config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (typeof _config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof _config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (cancel) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = cancel instanceof Error ? cancel : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal &&\n (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = unsubscribe;\n\n return [signal, () => {\n timer && clearTimeout(timer);\n timer = null;\n }];\n}\n\nexport default composeSignals;\n","\n\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n for await (const chunk of iterable) {\n yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n const iterator = readBytes(stream, chunkSize, encode);\n\n let bytes = 0;\n\n return new ReadableStream({\n type: 'bytes',\n\n async pull(controller) {\n const {done, value} = await iterator.next();\n\n if (done) {\n controller.close();\n onFinish();\n return;\n }\n\n let len = value.byteLength;\n onProgress && onProgress(bytes += len);\n controller.enqueue(new Uint8Array(value));\n },\n cancel(reason) {\n onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport progressEventReducer from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst fetchProgressDecorator = (total, fn) => {\n const lengthComputable = total != null;\n return (loaded) => setTimeout(() => fn({\n lengthComputable,\n total,\n loaded\n }));\n}\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst supportsRequestStream = isReadableStreamSupported && (() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n})();\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported && !!(()=> {\n try {\n return utils.isReadableStream(new Response('').body);\n } catch(err) {\n // return undefined\n }\n})();\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n return (await new Request(body).arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n composeSignals([signal, cancelToken], timeout) : [];\n\n let finished, request;\n\n const onFinish = () => {\n !finished && setTimeout(() => {\n composedSignal && composedSignal.unsubscribe();\n });\n\n finished = true;\n }\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n requestContentLength,\n progressEventReducer(onUploadProgress)\n ), null, encodeText);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'cors' : 'omit';\n }\n\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n withCredentials\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n responseContentLength,\n progressEventReducer(onDownloadProgress, true)\n ), isStreamResponse && onFinish, encodeText),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && onFinish();\n\n stopTimeout && stopTimeout();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n onFinish();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from 'axios';\n\nexport default axios;\n","import { useEffect, useState } from 'react';\n\nclass Storage {\n private readonly localstorage = window.localStorage;\n private readonly sessionstorage = window.sessionStorage;\n\n public setItemSession(key: string, item: string) {\n this.sessionstorage.setItem(key, item);\n }\n public getItemSession(key: string) {\n return this.sessionstorage.getItem(key);\n }\n public setItem(key: string, item: string) {\n this.localstorage.setItem(key, item);\n }\n\n public getItem(key: string) {\n return this.localstorage.getItem(key);\n }\n\n public removeItem(key: string) {\n this.localstorage.removeItem(key);\n }\n public removeSessionItem(key: string) {\n this.sessionstorage.removeItem(key);\n }\n\n public clearAll() {\n this.localstorage.clear();\n this.sessionstorage.clear();\n }\n}\nexport const STORAGE_CONSTANTS = {\n userId: 'userId',\n userType: 'userType',\n accessToken: 'accessToken',\n authTokenBasic: 'authTokenBasic',\n refreshToken: 'refreshToken',\n cwbIdToken: 'cwbIdToken',\n cwbAccessToken: 'cwbAccessToken',\n cwbRefreshToken: 'cwbRefreshToken',\n cwbTokenExpiry: 'cwbTokenExpiry',\n cmsAccessToken: 'cmsAccessToken',\n cmsRefreshToken: 'cmsRefreshToken',\n assessAccessToken: 'assessAccessToken',\n assessConfigAccessToken: 'assessConfigAccessToken',\n assessTokenExpiry: 'assessTokenExpiry',\n assessConfigTokenExpiry: 'assessConfigTokenExpiry',\n vpnConnected: 'vpnConnected',\n hideRegister: 'hideRegister',\n cwbUserDetails: 'cwbUserDetails',\n userName: 'userName',\n userDetails: 'userDetails',\n email: 'email',\n authorizeNowModalOpened: 'authorizeNowModalOpened',\n sessionToken: 'sessionToken',\n cbAccessToken: 'cbAccessToken',\n userGroup: 'userGroup',\n first_login_response: 'first_login_response',\n idToken: 'idToken',\n fetchingRefreshToken: 'fetchingRefreshToken',\n adRefreshToken: 'adRefreshToken',\n adAccessToken: 'adAccessToken',\n authOriginatorUrl: 'authOriginatorUrl',\n sessionState: 'sessionState',\n assessSSOTimeout: 'assessSSOTimeout',\n useProfilePic: 'useProfilePic',\n dcaAuthenticated: 'dcaAuthenticated',\n dcaEngAuthenticated: 'dcaEngAuthenticated',\n cwbAuthenticated: 'cwbAuthenticated',\n turboCodeDemoAuthenticated: 'turboCodeDemoAuthenticated',\n turboCodeConfigAuthenticated: 'turboCodeConfigAuthenticated',\n turboCodeDemoAPIAuthenticated: 'turboCodeDemoAPIAuthenticated',\n turboCodeConfigAPIAuthenticated: 'turboCodeConfigAPIAuthenticated',\n zoomValue: 'zoomValue',\n keyAssetList: 'KeyAssetList',\n isEngagement: 'isEngagement',\n turboCodeAuthorizing: 'turboCodeAuthorizing',\n depAuthenticated: 'depAuthenticated',\n dtDemoAPIAccessToken: 'dtDemoAPIAccessToken',\n dtConfigAPIAccessToken: 'dtConfigAPIAccessToken',\n fetchingDTCredential: 'fetchingDTCredential',\n fetchingDTAccessToken: 'fetchingDTAccessToken',\n msalInteractionStatus: 'msal.interaction.status',\n};\n\nexport const storage = new Storage();\n\nexport const useStorage = (key: string): string | null => {\n const [item, setItem] = useState(storage.getItem(key));\n\n useEffect(() => {\n const handleStorageChange = () => {\n setItem(storage.getItem(key));\n };\n\n window.addEventListener('storage', handleStorageChange);\n\n return () => window.removeEventListener('storage', handleStorageChange);\n }, [key]);\n\n return item;\n};\n","import {\n I5YrPlDataResponse,\n IAnalyticsChartResponse,\n IChartPayload,\n IComputeCostDataResponse,\n IDimensionList,\n IStorageCostDataResponse,\n} from '../../models/AnalyticsModels';\nimport { IDimensionState } from '../state/AnalyticsState';\nimport { IStoreAction } from '../StoreHelper';\n\nexport enum AnalyticsActionTypes {\n GET_CHART_DATA_STARTED = 'GET_CHART_DATA_REQUEST',\n GET_CHART_DATA_SUCCESS = 'GET_CHART_DATA_SUCCESS',\n GET_CHART_DATA_ERROR = 'GET_CHART_DATA_ERROR',\n GET_FIVE_YR_PL_DATA_STARTED = 'GET_FIVE_YR_PL_DATA_STARTED',\n GET_FIVE_YR_PL_DATA_SUCCESS = 'GET_FIVE_YR_PL_DATA_SUCCESS',\n GET_FIVE_YR_PL_DATA_ERROR = 'GET_FIVE_YR_PL_DATA_ERROR',\n GET_COMPUTE_COST_DATA_STARTED = 'GET_COMPUTE_COST_DATA_STARTED',\n GET_COMPUTE_COST_DATA_SUCCESS = 'GET_COMPUTE_COST_DATA_SUCCESS',\n GET_COMPUTE_COST_DATA_ERROR = 'GET_COMPUTE_COST_DATA_ERROR',\n GET_STORAGE_COST_DATA_STARTED = 'GET_STORAGE_COST_DATA_STARTED',\n GET_STORAGE_COST_DATA_SUCCESS = 'GET_STORAGE_COST_DATA_SUCCESS',\n GET_STORAGE_COST_DATA_ERROR = 'GET_STORAGE_COST_DATA_ERROR',\n GET_ASSESSMENT_DETAILS_STARTED = 'GET_ASSESSMENT_DETAILS_STARTED',\n GET_ASSESSMENT_DETAILS_SUCCESS = 'GET_ASSESSMENT_DETAILS_SUCCESS',\n GET_ASSESSMENT_DETAILS_ERROR = 'GET_ASSESSMENT_DETAILS_ERROR',\n GET_CATEGORIES_STARTED = 'GET_CATEGORIES_STARTED',\n GET_CATEGORIES_SUCCESS = 'GET_CATEGORIES_SUCCESS',\n GET_CATEGORIES_ERROR = 'GET_CATEGORIES_ERROR',\n \n RESET_ANALYTICS_STATE_DATA = 'RESET_ANALYTICS_STATE_DATA',\n}\n\nexport type AnalyticsActionPayload =\n | IChartPayload\n | Error\n | IAnalyticsChartResponse\n | I5YrPlDataResponse\n | IComputeCostDataResponse\n | IStorageCostDataResponse\n | IDimensionState\n | string\n | null;\n\nexport type AnalyticsAction = IStoreAction;\nexport class AnalyticsActions {\n public static getChartStart(data: IChartPayload): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_CHART_DATA_STARTED,\n data,\n };\n }\n public static getChartSuccess(data: IAnalyticsChartResponse): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_CHART_DATA_SUCCESS,\n data,\n };\n }\n public static getChartError(error: Error): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_CHART_DATA_ERROR,\n data: error,\n };\n }\n\n public static get5YrPlDataStart(data: IChartPayload): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_FIVE_YR_PL_DATA_STARTED,\n data,\n };\n }\n public static get5YrPlDataSuccess(data: I5YrPlDataResponse): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_FIVE_YR_PL_DATA_SUCCESS,\n data,\n };\n }\n public static get5YrPlDataError(error: Error): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_FIVE_YR_PL_DATA_ERROR,\n data: error,\n };\n }\n\n public static getComputeCostDataStart(data: IChartPayload): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_COMPUTE_COST_DATA_STARTED,\n data,\n };\n }\n public static getComputeCostDataSuccess(data: IComputeCostDataResponse): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_COMPUTE_COST_DATA_SUCCESS,\n data,\n };\n }\n public static getComputeCostDataError(error: Error): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_COMPUTE_COST_DATA_ERROR,\n data: error,\n };\n }\n\n public static getStorageCostDataStart(data: IChartPayload): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_STORAGE_COST_DATA_STARTED,\n data,\n };\n }\n public static getStorageCostDataSuccess(data: IStorageCostDataResponse): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_STORAGE_COST_DATA_SUCCESS,\n data,\n };\n }\n public static getStorageCostDataError(error: Error): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_STORAGE_COST_DATA_ERROR,\n data: error,\n };\n }\n public static getAssessmentDataStart(data: string): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_ASSESSMENT_DETAILS_STARTED,\n data,\n };\n }\n public static getAssessmentDataSuccess(data: IDimensionState): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_ASSESSMENT_DETAILS_SUCCESS,\n data,\n };\n }\n public static getAssessmentDataError(error: Error): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_ASSESSMENT_DETAILS_ERROR,\n data: error,\n };\n }\n public static getCategoriesDataStart(data: string): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_CATEGORIES_STARTED,\n data,\n };\n }\n public static getCategoriesDataSuccess(data: IDimensionState): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_CATEGORIES_SUCCESS,\n data,\n };\n }\n public static getCategoriesDataError(error: Error): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.GET_CHART_DATA_ERROR,\n data: error,\n };\n }\n\n public static resetAnalyticsStateData(): AnalyticsAction {\n return {\n type: AnalyticsActionTypes.RESET_ANALYTICS_STATE_DATA,\n };\n }\n}\n","import { ILandingZoneResponse } from '../../models/BuildDeployModels';\nimport { ICheckMicroServicesPatternStatus } from '../../models/DashboardModels';\nimport {\n IArchitectureCatalogueResponse,\n IDeploymentsResponse,\n ILandingZoneState,\n IFormInterface,\n} from '../state/BuildDeployState';\nimport { IStoreAction } from '../StoreHelper';\n\nexport enum BuildDeployActionTypes {\n GET_ARCHITECTURE_LIST_STARTED = 'GET_ARCHITECTURE_LIST_STARTED',\n GET_ARCHITECTURE_LIST_SUCCESS = 'GET_ARCHITECTURE_LIST_SUCCESS',\n GET_ARCHITECTURE_LIST_ERROR = 'GET_ARCHITECTURE_LIST_ERROR',\n GET_DEPLOYMENT_DETAILS_STARTED = 'GET_DEPLOYMENT_DETAILS_STARTED',\n GET_DEPLOYMENT_DETAILS_SUCCESS = 'GET_DEPLOYMENT_DETAILS_SUCCESS',\n GET_DEPLOYMENT_DETAILS_ERROR = 'GET_DEPLOYMENT_DETAILS_ERROR',\n GET_BUILD_DEPLOY_DETAILS_STARTED = 'GET_BUILD_DEPLOY_DETAILS_STARTED',\n GET_BUILD_DEPLOY_DETAILS_SUCCESS = 'GET_BUILD_DEPLOY_DETAILS_SUCCESS',\n GET_BUILD_DEPLOY_DETAILS_ERROR = 'GET_BUILD_DEPLOY_DETAILS_ERROR',\n CHECK_MICROSERVIVES_PATTERN_STATUS = 'CHECK_MICROSERVIVES_PATTERN_STATUS',\n\n GET_LANDING_ZONE_LIST_SUCCESS = 'GET_LANDING_ZONE_LIST_SUCCESS',\n RESET_BUILD_DEPLOY_STATE = 'RESET_BUILD_DEPLOY_STATE',\n\n GET_MULTICLOUD_YAML_CONTENT_STARTED = 'GET_MULTICLOUD_YAML_CONTENT_STARTED',\n GET_MULTICLOUD_YAML_CONTENT_SUCCESS = 'GET_MULTICLOUD_YAML_CONTENT_SUCCESS',\n GET_MULTICLOUD_YAML_CONTENT_ERROR = 'GET_MULTICLOUD_YAML_CONTENT_ERROR',\n}\n\nexport interface IConfigureLandingZoneError {\n error: Error;\n index: number;\n}\nexport interface ILandingZoneErrorResponse {\n [error: string]: string[];\n}\n\nexport type BuildDeployActionPayload =\n | boolean\n | ILandingZoneState[]\n | IArchitectureCatalogueResponse[]\n | IDeploymentsResponse[]\n | ILandingZoneResponse\n | ILandingZoneResponse[]\n | ICheckMicroServicesPatternStatus\n | Error\n | number\n | string\n | IFormInterface;\n\nexport type BuildDeployAction = IStoreAction;\nexport class BuildDeployActions {\n public static getArchitectureListStarted(data?: string): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_ARCHITECTURE_LIST_STARTED,\n data,\n };\n }\n public static getArchitectureListSuccess(\n data: IArchitectureCatalogueResponse[],\n ): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_ARCHITECTURE_LIST_SUCCESS,\n data,\n };\n }\n public static getArchitectureListError(data: Error): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_ARCHITECTURE_LIST_ERROR,\n data,\n };\n }\n\n public static getBuildDeployDetailStarted(data?: string): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_BUILD_DEPLOY_DETAILS_STARTED,\n data,\n };\n }\n public static getBuildDeployDetailsSuccess(data: ILandingZoneState[]): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_BUILD_DEPLOY_DETAILS_SUCCESS,\n data,\n };\n }\n public static getBuildDeployDetailsError(data: Error): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_BUILD_DEPLOY_DETAILS_ERROR,\n data,\n };\n }\n\n public static getDeploymentDetailStarted(data: string): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_DEPLOYMENT_DETAILS_STARTED,\n data,\n };\n }\n public static getDeploymentDetailsSuccess(data: IDeploymentsResponse[]): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_DEPLOYMENT_DETAILS_SUCCESS,\n data,\n };\n }\n public static getDeploymentDetailsError(data: Error): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_DEPLOYMENT_DETAILS_ERROR,\n data,\n };\n }\n\n public static resetBuildDeployStateData(): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.RESET_BUILD_DEPLOY_STATE,\n };\n }\n public static getLandingZoneListSuccess(data: ILandingZoneResponse[]): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_LANDING_ZONE_LIST_SUCCESS,\n data,\n };\n }\n\n public static checkMicroServicesPatternStatus(\n data: ICheckMicroServicesPatternStatus,\n ): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.CHECK_MICROSERVIVES_PATTERN_STATUS,\n data,\n };\n }\n //Dont Dlete\n\n public static getMultiCloudYamlContentStarted(data: IFormInterface): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_MULTICLOUD_YAML_CONTENT_STARTED,\n data,\n };\n }\n public static getMultiCloudYamlContentSuccess(data: any): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_MULTICLOUD_YAML_CONTENT_SUCCESS,\n data,\n };\n }\n\n public static getMultiCloudYamlContentError(data: Error): BuildDeployAction {\n return {\n type: BuildDeployActionTypes.GET_MULTICLOUD_YAML_CONTENT_ERROR,\n data,\n };\n }\n}\n","import {\n IHeatmapPayload,\n IHeatmapResponse,\n} from '../../models/CloudSuitabilityModels';\nimport { IStoreAction } from '../StoreHelper';\n\nexport enum CloudSuitabilityActionTypes {\n GET_HEATMAP_DATA_STARTED = 'GET_HEATMAP_DATA_STARTED',\n GET_HEATMAP_DATA_SUCCESS = 'GET_HEATMAP_DATA_SUCCESS',\n GET_HEATMAP_DATA_ERROR = 'GET_HEATMAP_DATA_ERROR',\n GET_APP_SCOPE_ADJUSTMENT_STARTED = 'GET_APP_SCOPE_ADJUSTMENT_STARTED',\n GET_APP_SCOPE_ADJUSTMENT_SUCCESS = 'GET_APP_SCOPE_ADJUSTMENT_SUCCESS',\n GET_APP_SCOPE_ADJUSTMENT_ERROR = 'GET_APP_SCOPE_ADJUSTMENT_ERROR',\n GET_APP_INSCOPE_STARTED = 'GET_APP_INSCOPE_STARTED',\n GET_APP_INSCOPE_SUCCESS = 'GET_APP_INSCOPE_SUCCESS',\n GET_APP_INSCOPE_ERROR = 'GET_APP_INSCOPE_ERROR',\n GET_APP_ADJUSTMENT_COUNT_STARTED = 'GET_APP_ADJUSTMENT_COUNT_STARTED',\n GET_APP_ADJUSTMENT_COUNT_SUCCESS = 'GET_APP_ADJUSTMENT_COUNT_SUCCESS',\n GET_APP_ADJUSTMENT_COUNT_ERROR = 'GET_APP_ADJUSTMENT_COUNT_ERROR',\n \n RESET_CLOUD_SUITABILITY_STATE='RESET_CLOUD_SUITABILITY_STATE'\n}\n\nexport type CloudSuitabilityActionPayload =\n | Error\n | null\n | IHeatmapPayload\n | IHeatmapResponse\n\nexport type CloudSuitabilityAction = IStoreAction<\n CloudSuitabilityActionTypes,\n CloudSuitabilityActionPayload\n>;\n\nexport class CloudSuitabilityActions {\n public static getHeatmapDataStart(data: IHeatmapPayload): CloudSuitabilityAction {\n return {\n type: CloudSuitabilityActionTypes.GET_HEATMAP_DATA_STARTED,\n data,\n };\n }\n public static getHeatmapDataSuccess(data: IHeatmapResponse): CloudSuitabilityAction {\n return {\n type: CloudSuitabilityActionTypes.GET_HEATMAP_DATA_SUCCESS,\n data,\n };\n }\n public static getHeatmapDataError(error: Error): CloudSuitabilityAction {\n return {\n type: CloudSuitabilityActionTypes.GET_HEATMAP_DATA_ERROR,\n data: error,\n };\n }\n public static resetCloudSuitabilityStateData(): CloudSuitabilityAction {\n return {\n type: CloudSuitabilityActionTypes.RESET_CLOUD_SUITABILITY_STATE\n };\n }\n}\n","import {\n ICboLoginResponse,\n IChangePasswordPayload,\n ICustomLoginPayload,\n ICustomLoginResponse,\n ILoginPayload,\n ILoginResponse,\n IRegisterUserPayload,\n ITangraLoginPayload,\n ITangraLoginResponse,\n} from '../../models/LoginModels';\nimport { IStoreAction } from '../StoreHelper';\n\nexport enum LoginActionTypes {\n TANGRA_LOGIN_REQUEST = 'TANGRA_LOGIN_REQUEST',\n TANGRA_LOGIN_SUCCESS = 'TANGRA_LOGIN_SUCCESS',\n TANGRA_LOGIN_ERROR = 'TANGRA_LOGIN_ERROR',\n SESSION_LOGIN_TOKEN_START = 'SESSION_LOGIN_TOKEN_START',\n SESSION_LOGIN_TOKEN_SUCCESS = 'SESSION_LOGIN_TOKEN_SUCCESS',\n SESSION_LOGIN_TOKEN_ERROR = 'SESSION_LOGIN_TOKEN_ERROR',\n POST_SESSION_LOGIN_TOKEN_START = 'POST_SESSION_LOGIN_TOKEN_START',\n POST_SESSION_LOGIN_TOKEN_SUCCESS = 'POST_SESSION_LOGIN_TOKEN_SUCCESS',\n POST_SESSION_LOGIN_TOKEN_ERROR = 'POST_SESSION_LOGIN_TOKEN_ERROR',\n CUSTOM_LOGIN_START = 'CUSTOM_LOGIN_START',\n CUSTOM_LOGIN_SUCCESS = 'CUSTOM_LOGIN_SUCCESS',\n CUSTOM_LOGIN_ERROR = 'CUSTOM_LOGIN_ERROR',\n CHANGE_PASSWORD_START = 'CHANGE_PASSWORD_START',\n CHANGE_PASSWORD_SUCCESS = 'CHANGE_PASSWORD_SUCCESS',\n CHANGE_PASSWORD_ERROR = 'CHANGE_PASSWORD_ERROR',\n}\n\nexport type LoginActionPayload =\n | ICustomLoginPayload\n | IChangePasswordPayload\n | ICustomLoginResponse\n | ILoginPayload\n | IRegisterUserPayload\n | ILoginResponse\n | ITangraLoginPayload\n | ITangraLoginResponse\n | ICboLoginResponse\n | Error\n | null;\n\nexport type LoginAction = IStoreAction;\nexport class LoginActions {\n\n public static postTangraLoginStart(data: ITangraLoginPayload): LoginAction {\n return {\n type: LoginActionTypes.TANGRA_LOGIN_REQUEST,\n data,\n };\n }\n public static postTangraLoginSuccess(data: ICboLoginResponse): LoginAction {\n return {\n type: LoginActionTypes.TANGRA_LOGIN_SUCCESS,\n data,\n };\n }\n public static postTangraLoginError(error: any): LoginAction {\n return {\n type: LoginActionTypes.TANGRA_LOGIN_ERROR,\n data: error,\n };\n }\n\n public static sessionTokenStart(): LoginAction {\n return {\n type: LoginActionTypes.SESSION_LOGIN_TOKEN_START,\n };\n }\n public static sessionTokenSuccess(): LoginAction {\n return {\n type: LoginActionTypes.SESSION_LOGIN_TOKEN_SUCCESS,\n };\n }\n public static sessionTokenError(error: Error): LoginAction {\n return {\n type: LoginActionTypes.SESSION_LOGIN_TOKEN_ERROR,\n data: error,\n };\n }\n\n public static sessionTokenPostStart(): LoginAction {\n return {\n type: LoginActionTypes.POST_SESSION_LOGIN_TOKEN_START,\n };\n }\n public static sessionTokenPostSuccess(): LoginAction {\n return {\n type: LoginActionTypes.POST_SESSION_LOGIN_TOKEN_SUCCESS,\n };\n }\n public static sessionTokenPostError(error: Error): LoginAction {\n return {\n type: LoginActionTypes.POST_SESSION_LOGIN_TOKEN_ERROR,\n data: error,\n };\n }\n\n //Start: Custom Login\n public static postCustomLoginStart(data: ICustomLoginPayload): LoginAction {\n return {\n type: LoginActionTypes.CUSTOM_LOGIN_START,\n data,\n };\n }\n public static postCustomLoginSuccess(data: ICustomLoginResponse): LoginAction {\n return {\n type: LoginActionTypes.CUSTOM_LOGIN_SUCCESS,\n data,\n };\n }\n public static postCustomLoginError(error: any): LoginAction {\n return {\n type: LoginActionTypes.CUSTOM_LOGIN_ERROR,\n data: error,\n };\n }\n\n public static postChangePasswordStart(data: IChangePasswordPayload): LoginAction {\n return {\n type: LoginActionTypes.CHANGE_PASSWORD_START,\n data,\n };\n }\n public static postChangePasswordSuccess(data: ICustomLoginResponse): LoginAction {\n return {\n type: LoginActionTypes.CHANGE_PASSWORD_SUCCESS,\n data,\n };\n }\n public static postChangePasswordError(error: any): LoginAction {\n return {\n type: LoginActionTypes.CHANGE_PASSWORD_ERROR,\n data: error,\n };\n }\n //End: Custom Login\n}\n","import { IStoreAction } from '../StoreHelper';\n\nexport enum SidebarActionTypes {\n SET_SIDEBAR_KEY = 'SET_SIDEBAR_KEY',\n TOGGLE_LOGOUT = 'TOGGLE_LOGOUT',\n}\n\nexport type SidebarActionPayload = boolean | string;\n\nexport type SidebarAction = IStoreAction;\nexport class SidebarActions {\n public static setSidebarKey(data: string): SidebarAction {\n return {\n type: SidebarActionTypes.SET_SIDEBAR_KEY,\n data,\n };\n }\n\n public static toggleLogout(data: boolean): SidebarAction {\n return {\n type: SidebarActionTypes.TOGGLE_LOGOUT,\n data,\n };\n }\n}\n","import { IShowToastPayload } from '../../models/ToastModels';\nimport { IStoreAction } from '../StoreHelper';\n\nexport enum ToastActionTypes {\n SHOW_TOAST = 'SHOW_TOAST',\n HIDE_TOAST = 'HIDE_TOAST',\n}\n\nexport type ToastActionPayload = IShowToastPayload;\n\nexport type ToastAction = IStoreAction;\nexport class ToastActions {\n public static showToast(data: IShowToastPayload): ToastAction {\n return {\n type: ToastActionTypes.SHOW_TOAST,\n data,\n };\n }\n\n public static hideToast(): ToastAction {\n return {\n type: ToastActionTypes.HIDE_TOAST,\n };\n }\n}\n","import { IUserResponse } from '../../models/UserModels';\nimport { IStoreAction } from '../StoreHelper';\n\nexport enum UserActionTypes {\n USER_REQUEST = 'USER_REQUEST',\n USER_SUCCESS = 'USER_SUCCESS',\n USER_ERROR = 'USER_ERROR',\n}\n\nexport type UserActionPayload = string | IUserResponse | Error | null;\n\nexport type UserAction = IStoreAction;\n\nexport class UserActions {\n public static getUserStart(): UserAction {\n return {\n type: UserActionTypes.USER_REQUEST,\n };\n }\n public static getUserSuccess(data: IUserResponse): UserAction {\n return {\n type: UserActionTypes.USER_SUCCESS,\n data,\n };\n }\n public static getUserError(error: Error): UserAction {\n return {\n type: UserActionTypes.USER_ERROR,\n data: error,\n };\n }\n}\n","import { IStoreAction } from '../../StoreHelper';\n\nexport enum HitsAnalyticsActionTypes {\n GET_NEW_VS_RETURNING_USER_DATA_START = 'GET_NEW_VS_RETURNING_USER_DATA_START',\n GET_NEW_VS_RETURNING_USER_DATA_SUCCESS = 'GET_NEW_VS_RETURNING_USER_DATA_SUCCESS',\n GET_NEW_VS_RETURNING_USER_DATA_ERROR = 'GET_NEW_VS_RETURNING_USER_DATA_ERROR',\n\n GET_ACTIVE_USERS_DATA_START = 'GET_ACTIVE_USERS_DATA_START',\n GET_ACTIVE_USERS_DATA_SUCCESS = 'GET_ACTIVE_USERS_DATA_SUCCESS',\n GET_ACTIVE_USERS_DATA_ERROR = 'GET_ACTIVE_USERS_DATA_ERROR',\n\n GET_USERS_VISITS_DATA_START = 'GET_USERS_VISITS_DATA_START',\n GET_USERS_VISITS_DATA_SUCCESS = 'GET_USERS_VISITS_DATA_SUCCESS',\n GET_USERS_VISITS_DATA_ERROR = 'GET_USERS_VISITS_DATA_ERROR',\n\n GET_PAGE_VIEWS_DATA_START = 'GET_PAGE_VIEWS_DATA_START',\n GET_PAGE_VIEWS_DATA_SUCCESS = 'GET_PAGE_VIEWS_DATA_SUCCESS',\n GET_PAGE_VIEWS_DATA_ERROR = 'GET_PAGE_VIEWS_DATA_ERROR',\n\n GET_BOUNCE_RATE_DATA_START = 'GET_BOUNCE_RATE_DATA_START',\n GET_BOUNCE_RATE_DATA_SUCCESS = 'GET_BOUNCE_RATE_DATA_SUCCESS',\n GET_BOUNCE_RATE_DATA_ERROR = 'GET_BOUNCE_RATE_DATA_ERROR',\n}\n\nexport interface IAnalyticsPieChartResponse {\n name: number;\n value: number;\n}\n\nexport interface IChartValues {\n x: string;\n y: number;\n}\n\nexport interface IAnalyticsAreaChartResponse {\n chartValues: IChartValues[];\n totalCount: number;\n}\nexport interface IActiveUsersPayload {\n sortBy: string;\n}\n\nexport type HitsAnalyticsActionPayload =\n | Error\n | string\n | IAnalyticsPieChartResponse[]\n | IAnalyticsAreaChartResponse\n | IActiveUsersPayload;\n\nexport type HitsAnalyticsAction = IStoreAction<\n HitsAnalyticsActionTypes,\n HitsAnalyticsActionPayload\n>;\n\nexport class HitsAnalyticsActions {\n public static getNewVsReturningUsersStart(): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_NEW_VS_RETURNING_USER_DATA_START,\n };\n }\n public static getNewVsReturningUsersSuccess(\n data: IAnalyticsPieChartResponse[],\n ): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_NEW_VS_RETURNING_USER_DATA_SUCCESS,\n data,\n };\n }\n public static getNewVsReturningUsersError(error: Error): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_NEW_VS_RETURNING_USER_DATA_ERROR,\n data: error,\n };\n }\n\n public static getActiveUserDataStart(data: IActiveUsersPayload): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_ACTIVE_USERS_DATA_START,\n data,\n };\n }\n public static getActiveUserDataSuccess(data: IAnalyticsAreaChartResponse): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_ACTIVE_USERS_DATA_SUCCESS,\n data,\n };\n }\n public static getActiveUserDataError(error: Error): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_ACTIVE_USERS_DATA_ERROR,\n data: error,\n };\n }\n\n public static getUserVisitsDataStart(): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_USERS_VISITS_DATA_START,\n };\n }\n public static getUserVisitsDataSuccess(data: IAnalyticsAreaChartResponse): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_USERS_VISITS_DATA_SUCCESS,\n data,\n };\n }\n public static getUserVisitsDataError(error: Error): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_USERS_VISITS_DATA_ERROR,\n data: error,\n };\n }\n public static getPageViewsDataStart(): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_PAGE_VIEWS_DATA_START,\n };\n }\n public static getPageViewsDataSuccess(data: IAnalyticsAreaChartResponse): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_PAGE_VIEWS_DATA_SUCCESS,\n data,\n };\n }\n public static getPageViewsDataError(error: Error): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_PAGE_VIEWS_DATA_ERROR,\n data: error,\n };\n }\n\n public static getBounceRateDataStart(): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_BOUNCE_RATE_DATA_START,\n };\n }\n public static getBounceRateDataSuccess(data: IAnalyticsAreaChartResponse): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_BOUNCE_RATE_DATA_SUCCESS,\n data,\n };\n }\n public static getBounceRateDataError(error: Error): HitsAnalyticsAction {\n return {\n type: HitsAnalyticsActionTypes.GET_BOUNCE_RATE_DATA_ERROR,\n data: error,\n };\n }\n}\n","/* eslint-disable max-lines */\nimport { CloudServiceProvider } from '../../../../AppConstants';\nimport {\n IAnalyticsUserListResponse,\n IEngagementKeyAssetsData,\n IFiscalYear,\n IPursuitAnalyticsResponse,\n IPursuitEngagementResponse,\n IPursuitEngReportsPayload,\n IPursuitsEngagementAccumulativePayload,\n IPursuitsEngagementAccumulativeResponse,\n IPursuitsEngagementsOverallSummaryResponse,\n IPursuitsEngReportsResponse,\n IUserActivityListResponse,\n IUserAnalyticsPayload,\n} from '../../../models/cbo/cboWebAnalyticsModel';\nimport { IJourney } from '../../../models/cbo/EngagementModels';\nimport { IStoreAction } from '../../StoreHelper';\n\nexport enum TrafficAnalyticsActionTypes {\n POST_VISITED_PAGE_ACTION_START = 'POST_VISITED_PAGE_ACTION_START',\n POST_VISITED_PAGE_ACTION_SUCCESS = 'POST_VISITED_PAGE_ACTION_SUCCESS',\n POST_VISITED_PAGE_ACTION_ERROR = 'POST_VISITED_PAGE_ACTION_ERROR',\n\n GET_MOST_VISITED_CAPABILITIES_START = 'GET_MOST_VISITED_CAPABILITIES_START',\n GET_MOST_VISITED_CAPABILITIES_SUCCESS = 'GET_MOST_VISITED_CAPABILITIES_SUCCESS',\n GET_MOST_VISITED_CAPABILITIES_ERROR = 'GET_MOST_VISITED_CAPABILITIES_ERROR',\n\n GET_CAPABILITIES_BY_PHASE_START = 'GET_CAPABILITIES_BY_PHASE_START',\n GET_CAPABILITIES_BY_PHASE_SUCCESS = 'GET_CAPABILITIES_BY_PHASE_SUCCESS',\n GET_CAPABILITIES_BY_PHASE_ERROR = 'GET_CAPABILITIES_BY_PHASE_ERROR',\n\n GET_KEY_ASSETS_COUNT_START = 'GET_KEY_ASSETS_COUNT_START',\n GET_KEY_ASSETS_COUNT_SUCCESS = 'GET_KEY_ASSETS_COUNT_SUCCESS',\n GET_KEY_ASSETS_COUNT_ERROR = 'GET_KEY_ASSETS_COUNT_ERROR',\n\n GET_PURSUIT_ENGAGEMENT_START = 'GET_PURSUIT_ENGAGEMENT_START',\n GET_PURSUIT_ENGAGEMENT_ERROR = 'GET_PURSUIT_ENGAGEMENT_ERROR',\n GET_PURSUIT_ENGAGEMENT_SUCCESS = 'GET_PURSUIT_ENGAGEMENT_SUCCESS',\n\n RESET_ANALYTICS_DATA = 'RESET_ANALYTICS_DATA',\n\n //CBO-3309:generated action types for user activity and user list\n GET_ANALYTICS_USER_LIST_START = 'GET_ANALYTICS_USER_LIST_START',\n GET_ANALYTICS_USER_LIST_SUCCESS = 'GET_ANALYTICS_USER_LIST_SUCCESS',\n GET_ANALYTICS_USER_LIST_ERROR = 'GET_ANALYTICS_USER_LIST_ERROR',\n GET_USER_ACTIVITY_START = 'GET_USER_ACTIVITY_START',\n GET_USER_ACTIVITY_SUCCESS = 'GET_USER_ACTIVITY_SUCCESS',\n GET_USER_ACTIVITY_ERROR = 'GET_USER_ACTIVITY_ERROR',\n GET_ACTIVE_PURSUITS_ANALYTICS_START = 'GET_ACTIVE_PURSUITS_ANALYTICS_START',\n GET_ACTIVE_PURSUITS_ANALYTICS_SUCCESS = 'GET_ACTIVE_PURSUITS_ANALYTICS_SUCCESS',\n GET_ACTIVE_PURSUITS_ANALYTICS_ERROR = 'GET_ACTIVE_PURSUITS_ANALYTICS_ERROR',\n\n GET_OVERALL_SUMMARY_STATUS_REPORT_START = 'GET_OVERALL_SUMMARY_STATUS_REPORT_START',\n GET_OVERALL_SUMMARY_STATUS_REPORT_SUCCESS = 'GET_OVERALL_SUMMARY_STATUS_REPORT_SUCCESS',\n GET_OVERALL_SUMMARY_STATUS_REPORT_ERROR = 'GET_OVERALL_SUMMARY_STATUS_REPORT_ERROR',\n\n GET_PURSUIT_ACCUMULATIVE_DATA_START = 'GET_PURSUIT_ACCUMULATIVE_DATA_START',\n GET_PURSUIT_ACCUMULATIVE_DATA_SUCCESS = 'GET_PURSUIT_ACCUMULATIVE_DATA_SUCCESS',\n GET_PURSUIT_ACCUMULATIVE_DATA_ERROR = 'GET_PURSUIT_ACCUMULATIVE_DATA_ERROR',\n\n GET_ENGAGEMENT_ACCUMULATIVE_DATA_START = 'GET_ENGAGEMENT_ACCUMULATIVE_DATA_START',\n GET_ENGAGEMENT_ACCUMULATIVE_DATA_SUCCESS = 'GET_ENGAGEMENT_ACCUMULATIVE_DATA_SUCCESS',\n GET_ENGAGEMENT_ACCUMULATIVE_DATA_ERROR = 'GET_ENGAGEMENT_ACCUMULATIVE_DATA_ERROR',\n\n GET_FISCAL_YEARS_METADATA_START = 'GET_FISCAL_YEARS_METADATA_START',\n GET_FISCAL_YEARS_METADATA_SUCCESS = 'GET_FISCAL_YEARS_METADATA_SUCCESS',\n GET_FISCAL_YEARS_METADATA_ERROR = 'GET_FISCAL_YEARS_METADATA_ERROR',\n\n GET_PURSUIT_ENG_REPORTS_TABLE_START = 'GET_PURSUIT_ENG_REPORTS_TABLE_START',\n GET_PURSUIT_ENG_REPORTS_TABLE_SUCCESS = 'GET_PURSUIT_ENG_REPORTS_TABLE_SUCCESS',\n GET_PURSUIT_ENG_REPORTS_TABLE_ERROR = 'GET_PURSUIT_ENG_REPORTS_TABLE_ERROR',\n}\n\nexport interface IMostVisitedSectionPayload {\n startDate: string;\n}\nexport interface IPursuitVsEngageemntPayload {\n category: string;\n}\n\nexport interface IMostVisitedArchPayload {\n architectureType: string;\n}\n\nexport enum SectionType {\n ASSET_AUTHORIZATION = 'assetAuthorization',\n VIEW_SUMMARY = 'viewSummary',\n USER_MANAGEMENT = 'userManagement',\n CLIENT_ENGAGEMENT_MANAGEMENT = 'clientEngagementManagement',\n TRUNORTH_MODERNIZATION_CENTRAL = 'TruNorth Modernization Central',\n APIVAULT = 'Api Vault',\n CB360 = 'CB360',\n CMS = 'Cloud Managed Services',\n COFTA = 'COFTA',\n CWB = 'Cloud Work Book',\n DCA = 'DCA',\n DCP = 'DCP',\n TRUNORTH_CODE_DISCOVERY = 'TruNorth Code Discovery',\n TRUNORTHDECOMPOSE = 'TruNorth Decompose',\n OPERATEEDGE = 'Operate Edge',\n TURBOCODE = 'Turbo Code',\n TALKQE = 'TalkQE',\n DIGITALTESTER = 'Digital Tester',\n PROCESSBIONICS = 'Process Bionics',\n DEP = 'DEP',\n ENGAGEMENTMARKETPLACE = 'engagementMarketplace',\n PURSUITMARKETPLACE = 'pursuitMarketplace',\n CBOMARKETPLACESEARCH = 'cboMarketplaceSearch',\n ENG_DASHBOARD = 'engagementDashboard',\n PURSUIT_DASHBOARD = 'pursuitDashboard',\n ADDPURSUIT = 'addPursuit',\n EDITPURSUIT = 'editPursuit',\n DELETEPURSUIT = 'deletePursuit',\n DELETEENGAGEMENT = 'deleteEngagement',\n EDITENGAGEMENT = 'editEngagement',\n CAPABILITYMANAGEMENT = 'capabilityManagement',\n SAVEPURSUIT = 'savePursuit',\n PURSUIT_STATUS = 'updatedPursuitStatus',\n SAVE_PURSUIT_CONFIG = 'savePursuitConfig',\n SAVE_ENGAGEMENT_CONFIG = 'saveEngagementConfig',\n SAVE_ENG_MARKETPLACE_CONFIG = 'saveEngagementMarketplaceConfig',\n SAVE_PURSUIT_MARKETPLACE_CONFIG = 'savePursuitMarketplaceConfig',\n GETENGCONFIGMARKETPLACE = 'getEngConfigMarketplace',\n GETPURSUITCONFIGMARKETPLACE = 'getPursuitConfigMarketplace',\n SAVEPURSUITCONFIGMARKETPLACE = 'savePursuitConfigMarketplace', //CONFIGURE MARKETPLACE\n SAVEENGCONFIGMARKETPLACE = 'saveEngConfigMarketplace', //CONFIGURE MARKETPLACE\n VIEWPURSUITSUMMARY = 'viewPursuitSummary',\n VIEWENGAGEMENTSUMMARY = 'viewEngagementSummary',\n GETPURSUITASSETCONFIG = 'getPursuitAssetConfig',\n GETENGAGEMENTASSETCONFIG = 'getEngagementAssetConfig',\n SAVEPURSUITASSETCONFIG = 'savePursuitAssetConfig',\n SAVEENGAGEMENTASSETCONFIG = 'saveEngagementAssetConfig',\n PURSUIT_ASSET = 'pursuit-asset',\n ENG_ASSET = 'engagement-asset',\n ASSET = 'asset',\n LOGIN = 'Login',\n}\n\nexport enum PageType {\n ENG_DASHBOARD = 'engagementDashboard',\n PURSUIT_DASHBOARD = 'pursuitDashboard',\n CAPABILITY_MANAGEMENT = 'capabilityManagement',\n CLIENT_ENGAGEMENT_MANAGEMENT = 'clientEngagementManagement',\n GETENGAGEMENTASSETCONFIG = 'getEngagementAssetConfig',\n GETPURSUITASSETCONFIG = 'getPursuitAssetConfig',\n VIEWENGAGEMENTSUMMARY = 'viewEngagementSummary',\n VIEWPURSUITSUMMARY = 'viewPursuitSummary',\n CBOMARKETPLACESEARCH = 'cboMarketplaceSearch',\n USER_MANAGEMENT = 'userManagement',\n}\n\nexport interface ICapabilitiesByPhaseResponse {\n phase: string;\n percentage: number;\n}\n\nexport interface IVisitedPagePayload {\n sectionType: SectionType | string;\n pageType?: string;\n activityId?: string;\n name?: string;\n id?: string;\n assetName?: string;\n user_name?: string;\n clientId?: string;\n clientName?: string;\n}\n\nexport interface ICapabilitiesCount {\n totalCount: string;\n capabilityName: string;\n}\nexport interface IMostVisitedCapabilitiesResponse {\n phase: string;\n capabilities: ICapabilitiesCount[];\n}\nexport type TrafficAnalyticsActionPayload =\n | Error\n | string\n | IVisitedPagePayload\n | IMostVisitedCapabilitiesResponse[]\n | ICapabilitiesByPhaseResponse[]\n | IEngagementKeyAssetsData[]\n | IPursuitEngagementResponse\n | IPursuitVsEngageemntPayload\n | IUserAnalyticsPayload\n | IUserActivityListResponse\n | IAnalyticsUserListResponse\n | IPursuitAnalyticsResponse\n | IPursuitsEngagementsOverallSummaryResponse\n | IPursuitsEngagementAccumulativeResponse[]\n | IPursuitsEngagementAccumulativePayload\n | IFiscalYear[]\n | IPursuitEngReportsPayload\n | IPursuitsEngReportsResponse;\n\nexport type TrafficAnalyticsAction = IStoreAction<\n TrafficAnalyticsActionTypes,\n TrafficAnalyticsActionPayload\n>;\n\nexport class TrafficAnalyticsActions {\n public static postVisitedPageStart(data: IVisitedPagePayload): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.POST_VISITED_PAGE_ACTION_START,\n data,\n };\n }\n public static postVisitedPageSuccess(): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.POST_VISITED_PAGE_ACTION_SUCCESS,\n };\n }\n public static postVisitedPageError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.POST_VISITED_PAGE_ACTION_ERROR,\n data: error,\n };\n }\n\n public static getMostVisitedCapabilitiesStart(data: string): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_MOST_VISITED_CAPABILITIES_START,\n data,\n };\n }\n public static getMostVisitedCapabilitiesSuccess(\n data: IMostVisitedCapabilitiesResponse[],\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_MOST_VISITED_CAPABILITIES_SUCCESS,\n data,\n };\n }\n public static getMostVisitedCapabilitiesError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_MOST_VISITED_CAPABILITIES_ERROR,\n data: error,\n };\n }\n\n public static getCapabilitiesByPhaseStart(data: string): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_CAPABILITIES_BY_PHASE_START,\n data,\n };\n }\n public static getCapabilitiesByPhaseSuccess(\n data: ICapabilitiesByPhaseResponse[],\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_CAPABILITIES_BY_PHASE_SUCCESS,\n data,\n };\n }\n public static getCapabilitiesByPhasError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_CAPABILITIES_BY_PHASE_ERROR,\n data: error,\n };\n }\n\n public static getKeyAssetsCountStart(data: string): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_KEY_ASSETS_COUNT_START,\n data,\n };\n }\n public static getKeyAssetsCountSuccess(data: IEngagementKeyAssetsData[]): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_KEY_ASSETS_COUNT_SUCCESS,\n data,\n };\n }\n public static getKeyAssetsCountError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_KEY_ASSETS_COUNT_ERROR,\n data: error,\n };\n }\n\n public static getPursuitEngagementsDataStart(\n data: IPursuitVsEngageemntPayload,\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_PURSUIT_ENGAGEMENT_START,\n data,\n };\n }\n public static getPursuitEngagementsDataSuccess(\n data: IPursuitEngagementResponse,\n ): TrafficAnalyticsAction {\n return { type: TrafficAnalyticsActionTypes.GET_PURSUIT_ENGAGEMENT_SUCCESS, data };\n }\n public static getPursuitEngagementsDataError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_PURSUIT_ENGAGEMENT_ERROR,\n data: error,\n };\n }\n public static resetAnalyticsData(): TrafficAnalyticsAction {\n return { type: TrafficAnalyticsActionTypes.RESET_ANALYTICS_DATA };\n }\n\n //CBO-3309:generated actions for user activity and user list\n public static getAnalyticsUserListStart(data: IUserAnalyticsPayload): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_ANALYTICS_USER_LIST_START,\n data,\n };\n }\n public static getAnalyticsUserListSuccess(\n data: IAnalyticsUserListResponse,\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_ANALYTICS_USER_LIST_SUCCESS,\n data,\n };\n }\n public static getAnalyticsUserListError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_ANALYTICS_USER_LIST_ERROR,\n data: error,\n };\n }\n\n public static getUserActivityStart(data: IUserAnalyticsPayload): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_USER_ACTIVITY_START,\n data,\n };\n }\n public static getUserActivitySuccess(data: IUserActivityListResponse): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_USER_ACTIVITY_SUCCESS,\n data,\n };\n }\n public static getUserActivityError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_USER_ACTIVITY_ERROR,\n data: error,\n };\n }\n public static getActivePursuitsAnalyticsStart(\n data: IUserAnalyticsPayload,\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_ACTIVE_PURSUITS_ANALYTICS_START,\n data,\n };\n }\n public static getActivePursuitsAnalyticsSuccess(\n data: IPursuitAnalyticsResponse,\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_ACTIVE_PURSUITS_ANALYTICS_SUCCESS,\n data,\n };\n }\n public static getActivePursuitsAnalyticsError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_ACTIVE_PURSUITS_ANALYTICS_ERROR,\n data: error,\n };\n }\n\n public static getPursuitEngOverallSummaryStarted(data: string): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_OVERALL_SUMMARY_STATUS_REPORT_START,\n data,\n };\n }\n public static getPursuitEngOverallSummarySuccess(\n data: IPursuitsEngagementsOverallSummaryResponse,\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_OVERALL_SUMMARY_STATUS_REPORT_SUCCESS,\n data,\n };\n }\n public static getPursuitEngOverallSummaryError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_OVERALL_SUMMARY_STATUS_REPORT_ERROR,\n data: error,\n };\n }\n public static getPursuitAccumulativeDataStart(\n data: IPursuitsEngagementAccumulativePayload,\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_PURSUIT_ACCUMULATIVE_DATA_START,\n data,\n };\n }\n public static getPursuitAccumulativeDataSuccess(\n data: IPursuitsEngagementAccumulativeResponse[],\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_PURSUIT_ACCUMULATIVE_DATA_SUCCESS,\n data,\n };\n }\n public static getPursuitAccumulativeDataError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_PURSUIT_ACCUMULATIVE_DATA_ERROR,\n data: error,\n };\n }\n public static getEngagementAccumulativeDataStart(\n data: IPursuitsEngagementAccumulativePayload,\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_ENGAGEMENT_ACCUMULATIVE_DATA_START,\n data,\n };\n }\n public static getEngagementAccumulativeDataSuccess(\n data: IPursuitsEngagementAccumulativeResponse[],\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_ENGAGEMENT_ACCUMULATIVE_DATA_SUCCESS,\n data,\n };\n }\n public static getEngagementAccumulativeDataError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_ENGAGEMENT_ACCUMULATIVE_DATA_ERROR,\n data: error,\n };\n }\n public static getFiscalYearsMetadataStart(): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_FISCAL_YEARS_METADATA_START,\n };\n }\n public static getFiscalYearsMetadataSuccess(data: IFiscalYear[]): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_FISCAL_YEARS_METADATA_SUCCESS,\n data,\n };\n }\n public static getFiscalYearsMetadataError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_FISCAL_YEARS_METADATA_ERROR,\n data: error,\n };\n }\n\n public static getPursuitEngReportsTableStart(\n data: IPursuitEngReportsPayload,\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_PURSUIT_ENG_REPORTS_TABLE_START,\n data,\n };\n }\n public static getPursuitEngReportsTableSuccess(\n data: IPursuitsEngReportsResponse,\n ): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_PURSUIT_ENG_REPORTS_TABLE_SUCCESS,\n data,\n };\n }\n public static getPursuitEngReportsTableError(error: Error): TrafficAnalyticsAction {\n return {\n type: TrafficAnalyticsActionTypes.GET_PURSUIT_ENG_REPORTS_TABLE_ERROR,\n data: error,\n };\n }\n}\n","import {\n ICapability,\n IEditCapabilityPayload,\n IFeaturesList,\n IKeyAssetsList,\n} from '../../../models/cbo/CapabilityManagementModel';\nimport { IStoreAction } from '../../StoreHelper';\n\nexport enum CapabilityActionTypes {\n GET_CAPABILITY_DATA_STARTED = 'GET_CAPABILITY_DATA_STARTED',\n GET_CAPABILITY_DATA_SUCCESS = 'GET_CAPABILITY_DATA_SUCCESS',\n GET_CAPABILITY_DATA_ERROR = 'GET_CAPABILITY_DATA_ERROR',\n\n UPDATE_CAPABILITY_DATA_STARTED = 'UPDATE_CAPABILITY_DATA_STARTED',\n UPDATE_CAPABILITY_DATA_SUCCESS = 'UPDATE_CAPABILITY_DATA_SUCCESS',\n UPDATE_CAPABILITY_DATA_ERROR = 'UPDATE_CAPABILITY_DATA_ERROR',\n\n GET_KEY_ASSETS_DATA_STARTED = 'GET_KEY_ASSETS_DATA_STARTED',\n GET_KEY_ASSETS_DATA_SUCCESS = 'GET_KEY_ASSETS_DATA_SUCCESS',\n GET_KEY_ASSETS_DATA_ERROR = 'GET_KEY_ASSETS_DATA_ERROR',\n\n UPDATE_KEY_ASSETS_DATA_STARTED = 'UPDATE_KEY_ASSETS_DATA_STARTED',\n UPDATE_KEY_ASSETS_DATA_SUCCESS = 'UPDATE_KEY_ASSETS_DATA_SUCCESS',\n UPDATE_KEY_ASSETS_DATA_ERROR = 'UPDATE_KEY_ASSETS_DATA_ERROR',\n\n GET_FEATURES_DATA_STARTED = 'GET_FEATURES_DATA_STARTED',\n GET_FEATURES_DATA_SUCCESS = 'GET_FEATURES_DATA_SUCCESS',\n GET_FEATURES_DATA_ERROR = 'GET_FEATURES_DATA_ERROR',\n\n ADD_CAPABILITY_DATA_STARTED = 'ADD_CAPABILITY_DATA_STARTED',\n ADD_CAPABILITY_DATA_SUCCESS = 'ADD_CAPABILITY_DATA_SUCCESS',\n ADD_CAPABILITY_DATA_ERROR = 'ADD_CAPABILITY_DATA_ERROR',\n}\n\nexport type CapabilityActionPayload =\n | Error\n | null\n | string\n | ICapability[]\n | ICapability\n | IKeyAssetsList\n | IKeyAssetsList[]\n | IFeaturesList[]\n | IEditCapabilityPayload\n | string[];\n\nexport type CapabilityManagementAction = IStoreAction<\n CapabilityActionTypes,\n CapabilityActionPayload\n>;\nexport class CapabilityManagementActions {\n public static getCapabilityDataStart(): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.GET_CAPABILITY_DATA_STARTED,\n };\n }\n public static getCapabilityDataSuccess(data: ICapability[]): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.GET_CAPABILITY_DATA_SUCCESS,\n data,\n };\n }\n public static getCapabilityDataError(error: Error): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.GET_CAPABILITY_DATA_ERROR,\n data: error,\n };\n }\n\n public static updateCapabilityDataStart(\n data: IEditCapabilityPayload,\n ): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.UPDATE_CAPABILITY_DATA_STARTED,\n data,\n };\n }\n\n public static updateCapabilityDataSuccess(): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.UPDATE_CAPABILITY_DATA_SUCCESS,\n };\n }\n public static updateCapabilityDataError(error: Error): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.UPDATE_CAPABILITY_DATA_ERROR,\n data: error,\n };\n }\n\n public static getKeyAssetsDataStart(): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.GET_KEY_ASSETS_DATA_STARTED,\n };\n }\n public static getKeyAssetsDataSuccess(data: IKeyAssetsList[]): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.GET_KEY_ASSETS_DATA_SUCCESS,\n data,\n };\n }\n public static getKeyAssetsDataError(error: Error): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.GET_KEY_ASSETS_DATA_ERROR,\n data: error,\n };\n }\n\n public static updateKeyAssetsDataStart(data: IKeyAssetsList): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.UPDATE_KEY_ASSETS_DATA_STARTED,\n data,\n };\n }\n public static updateKeyAssetsDataSuccess(): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.UPDATE_KEY_ASSETS_DATA_SUCCESS,\n };\n }\n public static updateKeyAssetsDataError(error: Error): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.UPDATE_KEY_ASSETS_DATA_ERROR,\n data: error,\n };\n }\n\n public static getFeaturesDataStart(): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.GET_FEATURES_DATA_STARTED,\n };\n }\n public static getFeaturesDataSuccess(data: IFeaturesList[]): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.GET_FEATURES_DATA_SUCCESS,\n data,\n };\n }\n public static getFeaturesDataError(error: Error): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.GET_FEATURES_DATA_ERROR,\n data: error,\n };\n }\n public static addCapability(data: IEditCapabilityPayload): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.ADD_CAPABILITY_DATA_STARTED,\n data,\n };\n }\n public static addCapabilityDataSuccess(): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.ADD_CAPABILITY_DATA_SUCCESS,\n };\n }\n public static addCapabilityDataError(error: Error): CapabilityManagementAction {\n return {\n type: CapabilityActionTypes.ADD_CAPABILITY_DATA_ERROR,\n data: error,\n };\n }\n}\n","import {\n IAssetDetailPayload,\n IEngagementAssetsObject,\n IEngagementAssetsPayload,\n IMarketplaceAssetModal,\n IMarketplaceAssetPayload,\n} from '../../../models/cbo/CboMarketplaceModels';\nimport { IStoreAction } from '../../StoreHelper';\n\nexport enum CboMarketplaceActionTypes {\n SET_SELECTED_JOURNEY_NAME = 'SET_SELECTED_JOURNEY_NAME',\n SET_SELECTED_BASE_JOURNEY_NAME = 'SET_SELECTED_BASE_JOURNEY_NAME',\n GET_MARKETPLACE_MANDATORY_ASSET_STARTED = 'GET_MARKETPLACE_MANDATORY_ASSET_STARTED',\n GET_MARKETPLACE_MANDATORY_ASSET_SUCCESS = 'GET_MARKETPLACE_MANDATORY_ASSET_SUCCESS',\n GET_MARKETPLACE_MANDATORY_ASSET_ERROR = 'GET_MARKETPLACE_MANDATORY_ASSET_ERROR',\n GET_MARKETPLACE_RECOMMENDED_ASSET_STARTED = 'GET_MARKETPLACE_RECOMMENDED_ASSET_STARTED',\n GET_MARKETPLACE_RECOMMENDED_ASSET_SUCCESS = 'GET_MARKETPLACE_RECOMMENDED_ASSET_SUCCESS',\n GET_MARKETPLACE_RECOMMENDED_ASSET_ERROR = 'GET_MARKETPLACE_RECOMMENDED_ASSET_ERROR',\n ADD_MARKETPLACE_ASSET_STARTED = 'ADD_MARKETPLACE_ASSET_STARTED',\n ADD_MARKETPLACE_ASSET_SUCCESS = 'ADD_MARKETPLACE_ASSET_SUCCESS',\n ADD_MARKETPLACE_ASSET_ERROR = 'ADD_MARKETPLACE_ASSET_ERROR',\n GET_MARKETPLACE_ASSET_DETAILS_STARTED = 'GET_MARKETPLACE_ASSET_DETAILS_STARTED',\n GET_MARKETPLACE_ASSET_DETAILS_SUCCESS = 'GET_MARKETPLACE_ASSET_DETAILS_SUCCESS',\n GET_MARKETPLACE_ASSET_DETAILS_ERROR = 'GET_MARKETPLACE_ASSET_DETAILS_ERROR',\n SET_SELECTED_MARKETPLACE_TAB = 'SET_SELECTED_MARKETPLACE_TAB',\n SET_IS_SMARTSTARTS_CLICKED = 'SET_IS_SMARTSTARTS_CLICKED',\n}\n\nexport type CboMarketplacePayload =\n | string\n | string[]\n | IEngagementAssetsObject\n | IEngagementAssetsPayload\n | IMarketplaceAssetModal\n | IMarketplaceAssetPayload\n | IAssetDetailPayload\n | boolean\n | Error;\n\nexport type CboMarketplaceAction = IStoreAction;\n/* export type CboMarketplaceDocsAction = IStoreAction; */\nexport class CboMarketplaceActions {\n public static setSelectedJourneyName(data: string[]): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.SET_SELECTED_JOURNEY_NAME,\n data,\n };\n }\n\n public static setSelectedBaseJourneyName(data: string): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.SET_SELECTED_BASE_JOURNEY_NAME,\n data,\n };\n }\n\n public static getMarketplaceMandatoryAssetsStart(\n data: IMarketplaceAssetPayload,\n ): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.GET_MARKETPLACE_MANDATORY_ASSET_STARTED,\n data,\n };\n }\n\n public static getMarketplaceMandatoryAssetsSuccess(\n data: IEngagementAssetsObject,\n ): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.GET_MARKETPLACE_MANDATORY_ASSET_SUCCESS,\n data,\n };\n }\n public static getMarketplaceMandatoryAssetsError(error: Error): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.GET_MARKETPLACE_MANDATORY_ASSET_ERROR,\n data: error,\n };\n }\n\n public static getMarketplaceRecommendedAssetsStart(\n data: IMarketplaceAssetPayload,\n ): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.GET_MARKETPLACE_RECOMMENDED_ASSET_STARTED,\n data,\n };\n }\n\n public static getMarketplaceRecommendedAssetsSuccess(\n data: IEngagementAssetsObject,\n ): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.GET_MARKETPLACE_RECOMMENDED_ASSET_SUCCESS,\n data,\n };\n }\n public static getMarketplaceRecommendedAssetsError(error: Error): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.GET_MARKETPLACE_RECOMMENDED_ASSET_ERROR,\n data: error,\n };\n }\n\n //post selected documents against journey\n public static addMarketplaceAssetsStart(data: IEngagementAssetsPayload): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.ADD_MARKETPLACE_ASSET_STARTED,\n data,\n };\n }\n\n public static addMarketplaceAssetsSuccess(): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.ADD_MARKETPLACE_ASSET_SUCCESS,\n };\n }\n public static addMarketplaceAssetsError(error: Error): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.ADD_MARKETPLACE_ASSET_ERROR,\n data: error,\n };\n }\n\n //get selected Asset Details for mandatory smartstart assets\n public static getMarketplaceAssetDetailsStart(data: IAssetDetailPayload): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.GET_MARKETPLACE_ASSET_DETAILS_STARTED,\n data,\n };\n }\n\n public static getMarketplaceAssetDetailsSuccess(\n data: IMarketplaceAssetModal,\n ): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.GET_MARKETPLACE_ASSET_DETAILS_SUCCESS,\n data,\n };\n }\n public static getMarketplaceAssetDetailsError(error: Error): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.GET_MARKETPLACE_ASSET_DETAILS_ERROR,\n data: error,\n };\n }\n public static setSelectedMarketplaceTab(data: string): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.SET_SELECTED_MARKETPLACE_TAB,\n data,\n };\n }\n public static setIsSmartstartsClicked(data: boolean): CboMarketplaceAction {\n return {\n type: CboMarketplaceActionTypes.SET_IS_SMARTSTARTS_CLICKED,\n data,\n };\n }\n}\n","import {\n IMarketplaceSystemTags,\n IFilterPayload,\n IPostFilterResponse,\n ISearchAndFilterAssetsPayload,\n ISearchAndFilterAssetsResponse,\n IJourneyFilter,\n IImportantLinks,\n} from '../../../models/cbo/CboMarketplaceSearchModels';\nimport { IJourneyList } from '../../../models/cbo/JourneyBuilderModel';\nimport { IStoreAction } from '../../StoreHelper';\n\nexport enum CboMarketplaceSearchActionTypes {\n GET_ASSET_METADATA_STARTED = 'GET_ASSET_METADATA_STARTED',\n GET_ASSET_METADATA_SUCCESS = 'GET_ASSET_METADATA_SUCCESS',\n GET_ASSET_METADATA_ERROR = 'GET_ASSET_METADATA_ERROR',\n GET_SYSTEM_TAGS_STARTED = 'GET_SYSTEM_TAGS_STARTED',\n GET_SYSTEM_TAGS_SUCCESS = 'GET_SYSTEM_TAGS_SUCCESS',\n GET_SYSTEM_TAGS_ERROR = 'GET_SYSTEM_TAGS_ERROR',\n GET_SEARCH_FILTER_DATA_STARTED = 'GET_SEARCH_FILTER_DATA_STARTED',\n GET_SEARCH_FILTER_DATA_SUCCESS = 'GET_SEARCH_FILTER_DATA_SUCCESS',\n GET_SEARCH_FILTER_DATA_ERROR = 'GET_SEARCH_FILTER_DATA_ERROR',\n POST_FILTER_URL_DATA_STARTED = 'POST_FILTER_URL_DATA_STARTED',\n POST_FILTER_URL_DATA_SUCCESS = 'POST_FILTER_URL_DATA_SUCCESS',\n POST_FILTER_URL_DATA_ERROR = 'POST_FILTER_URL_DATA_ERROR',\n GET_URL_DATA_STARTED = 'GET_URL_DATA_STARTED',\n GET_URL_DATA_SUCCESS = 'GET_URL_DATA_SUCCESS',\n GET_URL_DATA_ERROR = 'GET_URL_DATA_ERROR',\n RESET_FILTER_DATA= 'RESET_FILTER_DATA',\n GET_FILTER_JOURNEY_LIST_STARTED='GET_FILTER_JOURNEY_LIST_STARTED',\n GET_FILTER_JOURNEY_LIST_SUCCESS='GET_FILTER_JOURNEY_LIST_SUCCESS',\n GET_FILTER_JOURNEY_LIST_ERROR='GET_FILTER_JOURNEY_LIST_ERROR',\n GET_IMPORTANT_LINKS_DATA_STARTED='GET_IMPORTANT_LINKS_DATA_STARTED',\n GET_IMPORTANT_LINKS_DATA_SUCCESS='GET_IMPORTANT_LINKS_DATA_SUCCESS',\n GET_IMPORTANT_LINKS_DATA_ERROR='GET_IMPORTANT_LINKS_DATA_ERROR'\n}\n\nexport type CboMarketplaceSearchPayload =\n | string\n | Error\n | string[]\n | IMarketplaceSystemTags\n | ISearchAndFilterAssetsPayload\n | ISearchAndFilterAssetsResponse\n | IFilterPayload\n | IPostFilterResponse\n | IJourneyFilter[]\n | IImportantLinks[]\n\nexport type CboMarketplaceSearchAction = IStoreAction<\n CboMarketplaceSearchActionTypes,\n CboMarketplaceSearchPayload\n>;\nexport class CboMarketplaceSearchActions {\n // meta data\n public static getAssetsMetaDataStart(): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_ASSET_METADATA_STARTED,\n };\n }\n public static getAssetsMetaDataSuccess(data: string[]): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_ASSET_METADATA_SUCCESS,\n data,\n };\n }\n public static getAssetsMetaDataError(error: Error): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_ASSET_METADATA_ERROR,\n data: error,\n };\n }\n\n // system tags\n public static getSystemTagsDataStart(): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_SYSTEM_TAGS_STARTED,\n };\n }\n public static getSystemTagsDataSuccess(\n data: IMarketplaceSystemTags,\n ): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_SYSTEM_TAGS_SUCCESS,\n data,\n };\n }\n public static getSystemTagsDataError(error: Error): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_SYSTEM_TAGS_ERROR,\n data: error,\n };\n }\n\n // search and filter\n public static getSearchFilterDataStart(\n data: ISearchAndFilterAssetsPayload,\n ): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_SEARCH_FILTER_DATA_STARTED,\n data,\n };\n }\n public static getSearchFilterDataSuccess(\n data: ISearchAndFilterAssetsResponse,\n ): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_SEARCH_FILTER_DATA_SUCCESS,\n data,\n };\n }\n public static getSearchFilterDataError(error: Error): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_SEARCH_FILTER_DATA_ERROR,\n data: error,\n };\n }\n\n // filter url POST\n public static postFilterUrlDataStart(data: IFilterPayload): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.POST_FILTER_URL_DATA_STARTED,\n data,\n };\n }\n public static postFilterUrlDataSuccess(data: IPostFilterResponse): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.POST_FILTER_URL_DATA_SUCCESS,\n data,\n };\n }\n public static postFilterUrlDataError(error: Error): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.POST_FILTER_URL_DATA_ERROR,\n data: error,\n };\n }\n\n // filter url GET\n public static getFilterDataStart(data:string): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_URL_DATA_STARTED,\n data,\n };\n }\n public static getFilterDataSuccess(data: IFilterPayload): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_URL_DATA_SUCCESS,\n data,\n };\n }\n public static getFilterDataError(error: Error): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_URL_DATA_ERROR,\n data: error,\n };\n }\n\n // filter journey List\n public static getFilterJourneyListStart(): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_FILTER_JOURNEY_LIST_STARTED,\n };\n }\n public static getFilterJourneyListSuccess(data:IJourneyFilter[]): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_FILTER_JOURNEY_LIST_SUCCESS,\n data\n };\n }\n public static getFilterJourneyListError(error: Error): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_FILTER_JOURNEY_LIST_ERROR,\n data: error,\n };\n }\n\n //important links\n public static getImportantLinksStart(data:string): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_IMPORTANT_LINKS_DATA_STARTED,\n data\n };\n }\n public static getImportantLinksSuccess(data:IImportantLinks[]): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_IMPORTANT_LINKS_DATA_SUCCESS,\n data\n };\n }\n public static getImportantLinksError(error: Error): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.GET_IMPORTANT_LINKS_DATA_ERROR,\n data: error,\n };\n }\n\n //reset filter data\n public static resetFilterData(): CboMarketplaceSearchAction {\n return {\n type: CboMarketplaceSearchActionTypes.RESET_FILTER_DATA\n }\n }\n}\n","import { IConfigurePayload } from '../../../models/cbo/EngagementModels';\nimport { IFeatureUpdatePayload } from '../../../models/cbo/EngagementSummaryGraphModel';\nimport {\n ICapabilitiesSequence,\n ICapabilityReorderPayload,\n IViewSummaryResponsePayload,\n} from '../../state/cbo/CboViewSummaryState';\nimport { IStoreActionWithFlags } from '../../StoreHelper';\n\nexport enum CboViewSummaryActionTypes {\n SET_SELECTED_ENAGEMENT_ID = 'SET_SELECTED_ENAGEMENT_ID',\n SET_SELECTED_ENAGEMENT_NAME = 'SET_SELECTED_ENAGEMENT_NAME',\n SET_IS_ENAGEMENT = 'SET_IS_ENAGEMENT',\n SET_SELECTED_PHASE = 'SET_SELECTED_PHASE',\n SET_SELECTED_FEATURE = 'SET_SELECTED_FEATURE',\n SET_SELECTED_ASSET = 'SET_SELECTED_ASSET',\n SET_SELECTED_ENGAGEMENT_CLIENT_LOGO = 'SET_SELECTED_ENGAGEMENT_CLIENT_LOGO',\n RESET_SELECTED_ENAGEMENT_ID = 'RESET_SELECTED_ENAGEMENT_ID',\n POST_CAPABILITY_ORDER_STARTED = 'POST_CAPABILITY_ORDER_STARTED',\n POST_CAPABILITY_ORDER_SUCCESS = 'POST_CAPABILITY_ORDER_SUCCESS',\n POST_CAPABILITY_ORDER_ERROR = 'POST_CAPABILITY_ORDER_ERROR',\n PATCH_FEATURE_UPDATE_STARTED = 'PATCH_FEATURE_UPDATE_STARTED',\n PATCH_FEATURE_UPDATE_SUCCESS = 'PATCH_FEATURE_UPDATE_SUCCESS',\n PATCH_FEATURE_UPDATE_ERROR = 'PATCH_FEATURE_UPDATE_ERROR',\n SET_SELECTED_CLIENT_ID = 'SET_SELECTED_CLIENT_ID',\n SET_SELECTED_CLIENT_NAME = 'SET_SELECTED_CLIENT_NAME',\n RESET_SELECTED_CLIENT_NAME = 'RESET_SELECTED_CLIENT_NAME',\n}\n\nexport type CboViewSummaryActionPayload =\n | boolean\n | string\n | Error\n | IViewSummaryResponsePayload\n | ICapabilityReorderPayload\n | ICapabilitiesSequence[]\n | IFeatureUpdatePayload\n | IConfigurePayload;\n\nexport type CboViewSummaryAction = IStoreActionWithFlags<\n CboViewSummaryActionTypes,\n CboViewSummaryActionPayload,\n Record\n>;\n\nexport class CboViewSummaryActions {\n public static setIsEngagement(data: boolean): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.SET_IS_ENAGEMENT,\n data,\n };\n }\n\n public static setSelectedPhase(data: string): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.SET_SELECTED_PHASE,\n data,\n };\n }\n public static setSelectedFeature(data: string): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.SET_SELECTED_FEATURE,\n data,\n };\n }\n\n public static setSelectedAsset(data: string): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.SET_SELECTED_ASSET,\n data,\n };\n }\n\n public static setSelectedEngagementId(data: string): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.SET_SELECTED_ENAGEMENT_ID,\n data,\n };\n }\n public static setSelectedEngagementName(data: string): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.SET_SELECTED_ENAGEMENT_NAME,\n data,\n };\n }\n public static setSelectedClientId(data: string): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.SET_SELECTED_CLIENT_ID,\n data,\n };\n }\n public static setSelectedClientName(data: string): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.SET_SELECTED_CLIENT_NAME,\n data,\n };\n }\n public static setSelectedClientLogo(data: string): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.SET_SELECTED_ENGAGEMENT_CLIENT_LOGO,\n data,\n };\n }\n public static resetSelectedEngagementId(): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.RESET_SELECTED_ENAGEMENT_ID,\n };\n }\n\n public static PostCapabilityOrderStart(data: ICapabilityReorderPayload): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.POST_CAPABILITY_ORDER_STARTED,\n data,\n };\n }\n public static PostCapabilityOrderSuccess(data: ICapabilitiesSequence[]): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.POST_CAPABILITY_ORDER_SUCCESS,\n data,\n };\n }\n public static PostCapabilityOrderError(error: Error): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.POST_CAPABILITY_ORDER_ERROR,\n data: error,\n };\n }\n\n public static patchFeatureUpdateStart(data: IFeatureUpdatePayload): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.PATCH_FEATURE_UPDATE_STARTED,\n data,\n };\n }\n public static patchFeatureUpdateSuccess(): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.PATCH_FEATURE_UPDATE_SUCCESS,\n };\n }\n public static patchFeatureUpdateError(error: Error): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.PATCH_FEATURE_UPDATE_ERROR,\n data: error,\n };\n }\n public static resetSelectedClientName(): CboViewSummaryAction {\n return {\n type: CboViewSummaryActionTypes.RESET_SELECTED_CLIENT_NAME,\n };\n }\n}\n","import { IClientResponse, IEngagementResponse, IClientAddPayload , IClientUpdatePayload, IEngagementAddPayload, IEngagementUpdatePayload, IEngagementDeletePayload} from '../../../models/cbo/ClientEngagementManagementModel';\nimport { IStoreAction } from '../../StoreHelper';\n \nexport enum ClientEngagementActionTypes {\n GET_CLIENTS_DATA_STARTED = 'GET_CLIENTS_DATA_STARTED',\n GET_CLIENTS_DATA_SUCCESS = 'GET_CLIENTS_DATA_SUCCESS',\n GET_CLIENTS_DATA_ERROR = 'GET_CLIENTS_DATA_ERROR',\n GET_ENGAGEMENTS_DATA_STARTED = 'GET_ENGAGEMENTS_DATA_STARTED',\n GET_ENGAGEMENTS_DATA_SUCCESS = 'GET_ENGAGEMENTS_DATA_SUCCESS',\n GET_ENGAGEMENTS_DATA_ERROR = 'GET_ENGAGEMENTS_DATA_ERROR',\n ADD_CLIENT_DATA_STARTED = 'ADD_CLIENT_DATA_STARTED',\n ADD_CLIENT_DATA_SUCCESS = 'ADD_CLIENT_DATA_SUCCESS',\n ADD_CLIENT_DATA_ERROR = 'ADD_CLIENT_DATA_ERROR',\n UPDATE_CLIENT_DATA_STARTED = 'UPDATE_CLIENT_DATA_STARTED',\n UPDATE_CLIENT_DATA_SUCCESS = 'UPDATE_CLIENT_DATA_SUCCESS',\n UPDATE_CLIENT_DATA_ERROR = 'UPDATE_CLIENT_DATA_ERROR',\n ADD_ENGAGEMENT_DATA_STARTED = 'ADD_ENGAGEMENT_DATA_STARTED',\n ADD_ENGAGEMENT_DATA_SUCCESS = 'ADD_ENGAGEMENT_DATA_SUCCESS',\n ADD_ENGAGEMENT_DATA_ERROR = 'ADD_ENGAGEMENT_DATA_ERROR',\n UPDATE_ENGAGEMENT_DATA_STARTED = 'UPDATE_ENGAGEMENT_DATA_STARTED',\n UPDATE_ENGAGEMENT_DATA_SUCCESS = 'UPDATE_ENGAGEMENT_DATA_SUCCESS',\n UPDATE_ENGAGEMENT_DATA_ERROR = 'UPDATE_ENGAGEMENT_DATA_ERROR',\n DELETE_CLIENT_DATA_STARTED = 'DELETE_CLIENT_DATA_STARTED',\n DELETE_CLIENT_DATA_SUCCESS = 'DELETE_CLIENT_DATA_SUCCESS',\n DELETE_CLIENT_DATA_ERROR = 'DELETE_CLIENT_DATA_ERROR',\n DELETE_ENGAGEMENT_DATA_STARTED = 'DELETE_ENGAGEMENT_DATA_STARTED',\n DELETE_ENGAGEMENT_DATA_SUCCESS = 'DELETE_ENGAGEMENT_DATA_SUCCESS',\n DELETE_ENGAGEMENT_DATA_ERROR = 'DELETE_ENGAGEMENT_DATA_ERROR',\n GET_CLIENTS_NAME_DATA_STARTED='GET_CLIENTS_NAME_DATA_STARTED',\n GET_CLIENTS_NAME_DATA_SUCCESS='GET_CLIENTS_NAME_DATA_SUCCESS',\n GET_CLIENTS_NAME_DATA_ERROR='GET_CLIENTS_NAME_DATA_ERROR'\n}\n\nexport type ClientEngagementActionPayload =\n | Error\n | null\n | string\n | IClientResponse[]\n | IEngagementResponse[]\n | IClientAddPayload\n | IClientUpdatePayload\n | IEngagementAddPayload\n | IEngagementUpdatePayload\n | IEngagementDeletePayload\n\nexport type ClientEngagementManagementAction = IStoreAction<\nClientEngagementActionTypes,\nClientEngagementActionPayload>;\n export class ClientEngagementManagementActions {\n public static getClientsDataStart(): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.GET_CLIENTS_DATA_STARTED\n };\n }\n public static getClientsDataSuccess(data: IClientResponse[]): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.GET_CLIENTS_DATA_SUCCESS,\n data,\n };\n }\n public static getClientsDataError(error: Error): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.GET_CLIENTS_DATA_ERROR,\n data: error,\n };\n }\n\n //client without logo\n public static getClientNamesDataStart(): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.GET_CLIENTS_NAME_DATA_STARTED,\n };\n }\n public static getClientNamesDataSuccess(data: IClientResponse[]): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.GET_CLIENTS_NAME_DATA_SUCCESS,\n data,\n };\n }\n public static getClientNamesDataError(error: Error): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.GET_CLIENTS_NAME_DATA_ERROR,\n data: error,\n };\n }\n\n public static getEngagementsDataStart(data: string | undefined): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.GET_ENGAGEMENTS_DATA_STARTED,\n data,\n };\n }\n public static getEngagementsDataSuccess(data: IEngagementResponse[]): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.GET_ENGAGEMENTS_DATA_SUCCESS,\n data,\n };\n }\n public static getEngagementsDataError(error: Error): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.GET_ENGAGEMENTS_DATA_ERROR,\n data: error,\n };\n }\n\n public static addClientStart(data: IClientAddPayload): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.ADD_CLIENT_DATA_STARTED,\n data,\n };\n }\n public static addClientSuccess(): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.ADD_CLIENT_DATA_SUCCESS\n };\n }\n public static addClientError(error: Error): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.ADD_CLIENT_DATA_ERROR,\n data: error,\n };\n }\n\n public static updateClientStart(data: IClientUpdatePayload): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.UPDATE_CLIENT_DATA_STARTED,\n data,\n };\n }\n public static updateClientSuccess(): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.UPDATE_CLIENT_DATA_SUCCESS\n };\n }\n public static updateClientError(error: Error): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.UPDATE_CLIENT_DATA_ERROR,\n data: error,\n };\n }\n\n public static addEngagementStart(data: IEngagementAddPayload): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.ADD_ENGAGEMENT_DATA_STARTED,\n data,\n };\n }\n public static addEngagementSuccess(): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.ADD_ENGAGEMENT_DATA_SUCCESS\n };\n }\n public static addEngagementError(error: Error): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.ADD_ENGAGEMENT_DATA_ERROR,\n data: error,\n };\n }\n\n public static updateEngagementStart(data: IEngagementUpdatePayload): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.UPDATE_ENGAGEMENT_DATA_STARTED,\n data,\n };\n }\n public static updateEngagementSuccess(): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.UPDATE_ENGAGEMENT_DATA_SUCCESS\n };\n }\n public static updateEngagementError(error: Error): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.UPDATE_ENGAGEMENT_DATA_ERROR,\n data: error,\n };\n }\n\n public static deleteClientDataStart(data: string): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.DELETE_CLIENT_DATA_STARTED,\n data,\n };\n }\n public static deleteClientDataSuccess(): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.DELETE_CLIENT_DATA_SUCCESS,\n };\n }\n public static deleteClientDataError(data: Error): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.DELETE_CLIENT_DATA_ERROR,\n data\n };\n }\n public static deleteEngagementDataStart(data: IEngagementDeletePayload): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.DELETE_ENGAGEMENT_DATA_STARTED,\n data,\n };\n }\n public static deleteEngagementDataSuccess(): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.DELETE_ENGAGEMENT_DATA_SUCCESS,\n };\n }\n public static deleteEngagementDataError(data: Error): ClientEngagementManagementAction {\n return {\n type: ClientEngagementActionTypes.DELETE_ENGAGEMENT_DATA_ERROR,\n data\n };\n }\n }\n","import { IMarketplaceAssetPayload } from '../../../models/cbo/CboMarketplaceModels';\nimport {\n IADAccessTokenResponse,\n IConversionPayload,\n IConfigurePayload,\n IEngagementConfigurationPayload,\n IEngagementConfigurationResponse,\n IEngagementConfigurationSaveResponse,\n IJourneyCapabilitiesData,\n IKeyAssetsIconResponseListObject,\n IPredefinedJourneyResponse,\n IProduct,\n IValidatePursuitPayload,\n IValidatePursuitResponse,\n IJourneyCapabilitiesResponse,\n IEngagementClosureDatePayload,\n IStatusUpdateResponse,\n ITagsResponse,\n} from '../../../models/cbo/EngagementModels';\n\nimport { IStoreActionWithFlags } from '../../StoreHelper';\n\nexport enum EngagementActionTypes {\n GET_CE_PREDEFINED_JOURNEY_LIST_STARTED = 'GET_CE_PREDEFINED_JOURNEY_LIST_STARTED',\n GET_CE_PREDEFINED_JOURNEY_LIST_SUCCESS = 'GET_CE_PREDEFINED_JOURNEY_LIST_SUCCESS',\n GET_CE_PREDEFINED_JOURNEY_LIST_ERROR = 'GET_CE_PREDEFINED_JOURNEY_LIST_ERROR',\n GET_JOURNEYCAPABILITY_DATA_STARTED = 'GET_JOURNEYCAPABILITY_DATA_STARTED',\n GET_JOURNEYCAPABILITY_DATA_SUCCESS = 'GET_JOURNEYCAPABILITY_DATA_SUCCESS',\n GET_JOURNEYCAPABILITY_DATA_ERROR = 'GET_JOURNEYCAPABILITY_DATA_ERROR',\n GET_ENGAGEMENTCONFIG_DATA_STARTED = 'GET_ENGAGEMENTCONFIG_DATA_STARTED',\n GET_ENGAGEMENTCONFIG_DATA_SUCCESS = 'GET_ENGAGEMENTCONFIG_DATA_SUCCESS',\n GET_ENGAGEMENTCONFIG_DATA_ERROR = 'GET_ENGAGEMENTCONFIG_DATA_ERROR',\n SAVE_ENGAGEMENTCONFIG_DATA_STARTED = 'SAVE_ENGAGEMENTCONFIG_DATA_STARTED',\n SAVE_ENGAGEMENTCONFIG_DATA_SUCCESS = 'SAVE_ENGAGEMENTCONFIG_DATA_SUCCESS',\n SAVE_ENGAGEMENTCONFIG_DATA_ERROR = 'SAVE_ENGAGEMENTCONFIG_DATA_ERROR',\n RESET_SELECTED_ENGAGEMENT = 'RESET_SELECTED_ENGAGEMENT',\n GET_AD_ACCESS_TOKEN_STARTED = 'GET_AD_ACCESS_TOKEN_STARTED',\n GET_AD_ACCESS_TOKEN_SUCCESS = 'GET_AD_ACCESS_TOKEN_SUCCESS',\n GET_AD_ACCESS_TOKEN_ERROR = 'GET_AD_ACCESS_TOKEN_ERROR',\n GET_KEY_ASSETS_ICONS_LIST_STARTED = 'GET_KEY_ASSETS_ICONS_LIST_STARTED',\n GET_KEY_ASSETS_ICONS_LIST_SUCCESS = 'GET_KEY_ASSETS_ICONS_LIST_SUCCESS',\n GET_KEY_ASSETS_ICONS_LIST_ERROR = 'GET_KEY_ASSETS_ICONS_LIST_ERROR',\n GET_KEY_ASSETS_LIST_STARTED = 'GET_KEY_ASSETS_LIST_STARTED',\n GET_KEY_ASSETS_LIST_SUCCESS = 'GET_KEY_ASSETS_LIST_SUCCESS',\n GET_KEY_ASSETS_LIST_ERROR = 'GET_KEY_ASSETS_LIST_ERROR',\n GET_CONVERSION_DATA_STARTED = 'GET_CONVERSION_DATA_STARTED',\n GET_CONVERSION_DATA_SUCCESS = 'GET_CONVERSION_DATA_SUCCESS',\n GET_CONVERSION_DATA_ERROR = 'GET_CONVERSION_DATA_ERROR',\n GET_DOMAIN_DATA_SUCCESS = 'GET_DOMAIN_DATA_SUCCESS',\n GET_DOMAIN_DATA_ERROR = 'GET_DOMAIN_DATA_ERROR',\n GET_DOMAIN_DATA_STARTED = 'GET_DOMAIN_DATA_STARTED',\n RESST_SUMMARY_DATA = 'RESST_SUMMARY_DATA,',\n VALIDATE_PURSUIT_NAME_STARTED = 'VALIDATE_PURSUIT_NAME_STARTED',\n VALIDATE_PURSUIT_NAME_SUCCESS = 'VALIDATE_PURSUIT_NAME_SUCCESS',\n VALIDATE_PURSUIT_NAME_ERROR = 'VALIDATE_PURSUIT_NAME_ERROR',\n POST_ENG_CLOSURE_DATE_STARTED = 'POST_ENG_CLOSURE_DATE_STARTED',\n POST_ENG_CLOSURE_DATE_SUCCESS = 'POST_ENG_CLOSURE_DATE_SUCCESS',\n POST_ENG_CLOSURE_DATE_ERROR = 'POST_ENG_CLOSURE_DATE_ERROR',\n RESET_PURSUIT_STATUS_RESPONSE = 'RESET_PURSUIT_STATUS_RESPONSE',\n RESET_ENGAGEMENT_STATUS_RESPONSE = 'RESET_ENGAGEMENT_STATUS_RESPONSE',\n GET_TAGS_LIST_STARTED = 'GET_TAGS_LIST_STARTED',\n GET_TAGS_LIST_SUCCESS = 'GET_TAGS_LIST_SUCCESS',\n GET_TAGS_LIST_ERROR = 'GET_TAGS_LIST_ERROR',\n RESET_TAGS_LIST = 'RESET_TAGS_LIST',\n}\n\nexport type EngagementActionPayload =\n | Error\n | null\n | string\n | string[]\n | IEngagementConfigurationPayload\n | IPredefinedJourneyResponse[]\n | IJourneyCapabilitiesData[]\n | IJourneyCapabilitiesResponse\n | IEngagementConfigurationResponse\n | IEngagementConfigurationSaveResponse\n | IADAccessTokenResponse\n | IProduct[]\n | IKeyAssetsIconResponseListObject[]\n | IConversionPayload\n | IConfigurePayload\n | IMarketplaceAssetPayload\n | IValidatePursuitPayload\n | IValidatePursuitResponse\n | String[]\n | IEngagementClosureDatePayload\n | IStatusUpdateResponse\n | ITagsResponse[];\n\nexport type EngagementAction = IStoreActionWithFlags<\n EngagementActionTypes,\n EngagementActionPayload,\n Record\n>;\n/**\n * Represents a collection of static methods that generate engagement actions.\n */\nexport class EngagementActions {\n public static getPredefinedJourneyListStart(): EngagementAction {\n return {\n type: EngagementActionTypes.GET_CE_PREDEFINED_JOURNEY_LIST_STARTED,\n };\n }\n public static getPredefinedJourneyListSuccess(\n data: IPredefinedJourneyResponse[],\n ): EngagementAction {\n return {\n type: EngagementActionTypes.GET_CE_PREDEFINED_JOURNEY_LIST_SUCCESS,\n data,\n };\n }\n public static getPredefinedJourneyListError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.GET_CE_PREDEFINED_JOURNEY_LIST_ERROR,\n data: error,\n };\n }\n public static getjourneyCapabilityDataStart(data: string[]): EngagementAction {\n return {\n type: EngagementActionTypes.GET_JOURNEYCAPABILITY_DATA_STARTED,\n data,\n };\n }\n public static getDomainListDataStart(): EngagementAction {\n return {\n type: EngagementActionTypes.GET_DOMAIN_DATA_STARTED,\n };\n }\n\n public static getDomainListDataSuccess(data: String[]): EngagementAction {\n return {\n type: EngagementActionTypes.GET_DOMAIN_DATA_SUCCESS,\n data,\n };\n }\n public static getDomainListDataError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.GET_DOMAIN_DATA_ERROR,\n data: error,\n };\n }\n\n public static getjourneyCapabilityDataSuccess(\n data: IJourneyCapabilitiesResponse,\n ): EngagementAction {\n return {\n type: EngagementActionTypes.GET_JOURNEYCAPABILITY_DATA_SUCCESS,\n data,\n };\n }\n public static getjourneyCapabilityDataError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.GET_JOURNEYCAPABILITY_DATA_ERROR,\n data: error,\n };\n }\n\n public static getEngagementConfigDataStart(data: IConfigurePayload): EngagementAction {\n return {\n type: EngagementActionTypes.GET_ENGAGEMENTCONFIG_DATA_STARTED,\n data,\n };\n }\n public static getEngagementConfigDataSuccess(\n data: IEngagementConfigurationResponse,\n isEngagement: boolean,\n ): EngagementAction {\n return {\n type: EngagementActionTypes.GET_ENGAGEMENTCONFIG_DATA_SUCCESS,\n data,\n flag: { isEngagement },\n };\n }\n public static getEngagementConfigDataError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.GET_ENGAGEMENTCONFIG_DATA_ERROR,\n data: error,\n };\n }\n\n public static saveEngagementConfigDataStart(\n data: IEngagementConfigurationPayload,\n ): EngagementAction {\n return {\n type: EngagementActionTypes.SAVE_ENGAGEMENTCONFIG_DATA_STARTED,\n data,\n };\n }\n public static saveEngagementConfigDataSuccess(\n data: IEngagementConfigurationSaveResponse,\n ): EngagementAction {\n return {\n type: EngagementActionTypes.SAVE_ENGAGEMENTCONFIG_DATA_SUCCESS,\n data,\n };\n }\n public static saveEngagementConfigDataError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.SAVE_ENGAGEMENTCONFIG_DATA_ERROR,\n data: error,\n };\n }\n\n public static resetSelectedEngagement(): EngagementAction {\n return {\n type: EngagementActionTypes.RESET_SELECTED_ENGAGEMENT,\n };\n }\n\n public static getADAccessTokenStart(data: string): EngagementAction {\n return {\n type: EngagementActionTypes.GET_AD_ACCESS_TOKEN_STARTED,\n data,\n };\n }\n public static getADAccessTokenSuccess(data: IADAccessTokenResponse): EngagementAction {\n return {\n type: EngagementActionTypes.GET_AD_ACCESS_TOKEN_SUCCESS,\n data,\n };\n }\n public static getADAccessTokenError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.GET_AD_ACCESS_TOKEN_ERROR,\n data: error,\n };\n }\n public static getKeyAssetsIconListStart(): EngagementAction {\n return {\n type: EngagementActionTypes.GET_KEY_ASSETS_ICONS_LIST_STARTED,\n };\n }\n public static getKeyAssetsIconListSuccess(\n data: IKeyAssetsIconResponseListObject[],\n ): EngagementAction {\n return {\n type: EngagementActionTypes.GET_KEY_ASSETS_ICONS_LIST_SUCCESS,\n data,\n };\n }\n public static getKeyAssetsIconListError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.GET_KEY_ASSETS_ICONS_LIST_ERROR,\n data: error,\n };\n }\n\n public static getKeyAssetsListStart(data: IMarketplaceAssetPayload): EngagementAction {\n return {\n type: EngagementActionTypes.GET_KEY_ASSETS_LIST_STARTED,\n data,\n };\n }\n public static getKeyAssetsListSuccess(data: IProduct[]): EngagementAction {\n return {\n type: EngagementActionTypes.GET_KEY_ASSETS_LIST_SUCCESS,\n data,\n };\n }\n public static getKeyAssetsListError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.GET_KEY_ASSETS_ICONS_LIST_ERROR,\n data: error,\n };\n }\n\n //conversion\n public static getConversionDataStart(data: IConversionPayload): EngagementAction {\n return {\n type: EngagementActionTypes.GET_CONVERSION_DATA_STARTED,\n data,\n };\n }\n public static getConversionDataSuccess(data: IStatusUpdateResponse): EngagementAction {\n return {\n type: EngagementActionTypes.GET_CONVERSION_DATA_SUCCESS,\n data,\n };\n }\n public static getConversionDataError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.GET_CONVERSION_DATA_ERROR,\n data: error,\n };\n }\n\n public static resetSummaryData(): EngagementAction {\n return {\n type: EngagementActionTypes.RESST_SUMMARY_DATA,\n };\n }\n\n //Start: CBO-3027_AI_AUTO_ENHANCE_CODE\n\n public static validatePursuitNameStart(data: IValidatePursuitPayload): EngagementAction {\n return {\n type: EngagementActionTypes.VALIDATE_PURSUIT_NAME_STARTED,\n data,\n };\n }\n public static validatePursuitNameSuccess(data: IValidatePursuitResponse): EngagementAction {\n return {\n type: EngagementActionTypes.VALIDATE_PURSUIT_NAME_SUCCESS,\n data,\n };\n }\n public static validatePursuitNameError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.VALIDATE_PURSUIT_NAME_ERROR,\n data: error,\n };\n }\n\n public static postEngagementClosureDateStarted(\n data: IEngagementClosureDatePayload,\n ): EngagementAction {\n return {\n type: EngagementActionTypes.POST_ENG_CLOSURE_DATE_STARTED,\n data,\n };\n }\n public static postEngagementClosureDateSuccess(data: IStatusUpdateResponse): EngagementAction {\n return {\n type: EngagementActionTypes.POST_ENG_CLOSURE_DATE_SUCCESS,\n data,\n };\n }\n public static postEngagementClosureDateError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.POST_ENG_CLOSURE_DATE_ERROR,\n data: error,\n };\n }\n public static resetPursuitStatusResponse(): EngagementAction {\n return {\n type: EngagementActionTypes.RESET_PURSUIT_STATUS_RESPONSE,\n };\n }\n public static resetEngagementStatusResponse(): EngagementAction {\n return {\n type: EngagementActionTypes.RESET_ENGAGEMENT_STATUS_RESPONSE,\n };\n }\n public static getTagsListStart(data: string): EngagementAction {\n return {\n type: EngagementActionTypes.GET_TAGS_LIST_STARTED,\n data,\n };\n }\n public static getTagsListSuccess(data: ITagsResponse[]): EngagementAction {\n return {\n type: EngagementActionTypes.GET_TAGS_LIST_SUCCESS,\n data,\n };\n }\n public static getTagsListError(error: Error): EngagementAction {\n return {\n type: EngagementActionTypes.GET_TAGS_LIST_ERROR,\n data: error,\n };\n }\n public static resetTagsList(): EngagementAction {\n return {\n type: EngagementActionTypes.RESET_TAGS_LIST,\n };\n }\n}\n","import { IStoreActionWithFlags } from '../../StoreHelper';\nimport {\n IConfigurePayload,\n IEngagementConfigurationResponse,\n IEngagementListForAdminRequestPayload,\n IEngagementListForAdminResponse,\n IEngagementResponse,\n} from '../../../models/cbo/EngagementModels';\nexport enum EngagementSummaryActionTypes {\n GET_ENGAGEMENT_SUMMARY_STARTED = 'GET_ENGAGEMENT_SUMMARY_STARTED',\n GET_ENGAGEMENT_SUMMARY_SUCCESS = 'GET_ENGAGEMENT_SUMMARY_SUCCESS',\n GET_ENGAGEMENT_SUMMARY_ERROR = 'GET_ENGAGEMENT_SUMMARY_ERROR',\n GET_ENGAGEMENT_SUMMARY_FOR_ADMIN_STARTED = 'GET_ENGAGEMENT_SUMMARY_FOR_ADMIN_STARTED',\n GET_ENGAGEMENT_SUMMARY_FOR_ADMIN_SUCCESS = 'GET_ENGAGEMENT_SUMMARY_FOR_ADMIN_SUCCESS',\n GET_ENGAGEMENT_SUMMARY_FOR_ADMIN_ERROR = 'GET_ENGAGEMENT_SUMMARY_FOR_ADMIN_ERROR',\n DELETE_ENGAGEMENTCONFIG_DATA_STARTED = 'DELETE_ENGAGEMENTCONFIG_DATA_STARTED',\n DELETE_ENGAGEMENTCONFIG_DATA_SUCCESS = 'DELETE_ENGAGEMENTCONFIG_DATA_SUCCESS',\n DELETE_ENGAGEMENTCONFIG_DATA_ERROR = 'DELETE_ENGAGEMENTCONFIG_DATA_ERROR',\n RESET_DELETE_ENGAGEMENT_SUCCESSFULL = 'RESET_DELETE_ENGAGEMENT_SUCCESSFULL',\n // fetch data\n\n deleteEngagementConfigDataError = 'deleteEngagementConfigDataError',\n}\nexport type EngagementSummaryActionPayload =\n | boolean\n | Error\n | IEngagementResponse\n | number\n | string\n | IEngagementConfigurationResponse\n | IEngagementListForAdminRequestPayload\n | IEngagementListForAdminResponse\n | IConfigurePayload;\n\nexport type EngagementSummaryAction = IStoreActionWithFlags<\n EngagementSummaryActionTypes,\n EngagementSummaryActionPayload,\n Record\n>;\n\nexport class EngagementSummaryActions {\n public static getEngagementStarted(\n data: IEngagementListForAdminRequestPayload,\n ): EngagementSummaryAction {\n return {\n type: EngagementSummaryActionTypes.GET_ENGAGEMENT_SUMMARY_STARTED,\n data,\n };\n }\n public static getEngagemenSuccess(\n data: IEngagementResponse,\n isEngagement: boolean,\n ): EngagementSummaryAction {\n return {\n type: EngagementSummaryActionTypes.GET_ENGAGEMENT_SUMMARY_SUCCESS,\n data,\n flag: { isEngagement },\n };\n }\n public static getEngagementError(data: Error): EngagementSummaryAction {\n return {\n type: EngagementSummaryActionTypes.GET_ENGAGEMENT_SUMMARY_ERROR,\n data,\n };\n }\n public static getEngagementListForAdminStarted(\n data: IEngagementListForAdminRequestPayload,\n ): EngagementSummaryAction {\n return {\n type: EngagementSummaryActionTypes.GET_ENGAGEMENT_SUMMARY_FOR_ADMIN_STARTED,\n data,\n };\n }\n public static getEngagementListForAdminSuccess(\n data: IEngagementListForAdminResponse,\n isEngagement: boolean,\n isExport: boolean,\n ): EngagementSummaryAction {\n return {\n type: EngagementSummaryActionTypes.GET_ENGAGEMENT_SUMMARY_FOR_ADMIN_SUCCESS,\n data,\n flag: { isEngagement, isExport },\n };\n }\n public static getEngagementListForAdminError(data: Error): EngagementSummaryAction {\n return {\n type: EngagementSummaryActionTypes.GET_ENGAGEMENT_SUMMARY_FOR_ADMIN_ERROR,\n data,\n };\n }\n public static deleteEngagementConfigDataStart(data: IConfigurePayload): EngagementSummaryAction {\n return {\n type: EngagementSummaryActionTypes.DELETE_ENGAGEMENTCONFIG_DATA_STARTED,\n data,\n };\n }\n public static deleteEngagementConfigDataSuccess(): EngagementSummaryAction {\n return {\n type: EngagementSummaryActionTypes.DELETE_ENGAGEMENTCONFIG_DATA_SUCCESS,\n };\n }\n public static deleteEngagementConfigDataError(data: Error): EngagementSummaryAction {\n return {\n type: EngagementSummaryActionTypes.DELETE_ENGAGEMENTCONFIG_DATA_ERROR,\n data,\n };\n }\n public static resetDeleteEngagementSuccessfull(): EngagementSummaryAction {\n return {\n type: EngagementSummaryActionTypes.RESET_DELETE_ENGAGEMENT_SUCCESSFULL,\n };\n }\n}\n","/* eslint-disable max-lines */\nimport {\n IApplicationDipositioning,\n IWavePlan,\n} from '../../../../containers/CBOEngagementSummary/CboTrunorthGraphs/CboTrunorthConstants';\nimport {\n IDiscoveryMetrics,\n ISurveyMetrics,\n} from '../../../../containers/CBOEngagementSummary/CboTrunorthGraphs/CboTrunorthConstants';\nimport {\n ILearningCenterPayload,\n IDashboardCourseStatusResponse,\n ISummaryPractitionerDataResp,\n} from '../../../../containers/CBOEngagementSummary/operate/LearningCenter/LearningCenterConstants';\nimport { IProduct } from '../../../models/cbo/EngagementModels';\nimport {\n IJiraInitiativesResponse,\n ILiftAndShiftObject,\n IJiraInitiativesPayload,\n IJiraEpicsPayload,\n IJiraEpicsResponse,\n IJiraTasksPayload,\n IJiraTasksResponse,\n ISummaryMetricsPayload,\n IJiraTaskListResponse,\n IJiraIssueResponse,\n IOperateEndgeIncidentPayload,\n ICarbonFootPrintResponse,\n ICarbonCreditsResponse,\n IEnergySavingsResponse,\n IGreenCloudPayload,\n ILegacyGraphData,\n ILegacyDbData,\n ISummaryMetricsResp,\n IArtifactsGraphPayload,\n IArtifactsLOCResponse,\n IArtifactsResponse,\n IDecompositionResponse,\n ISQLGraphDataResponse,\n IAllSQLGraphPayload,\n IExecutionMetricDetailsResponse,\n IWorkflowListPayload,\n IWorkflowListResponse,\n IWorkflowReportResponse,\n IDEPAlertScanResponse,\n IDEPAlertScanPayload,\n ICodeQuality,\n ICodeQualityPayload,\n IIncidentChartsType,\n IIncidentDetails,\n IIncidentDetailsPayload,\n ICodespacesResponse,\n IProblemGroupOverviewResponse,\n IProblemInsightsAssignmentGroupData,\n IProblemInsightsPayload,\n IProblemInsightsRunDetailsData,\n IKMSResponse,\n IActiveSummaryResponse,\n IIssueSummaryResponse,\n IRiskSummaryResponse,\n ITransitionTableResponseData,\n IJiraStoriesPayload,\n IJiraStoryListResponse,\n IServersProgressionResponse,\n IAppsProgressionResponse,\n IMigrationPayload,\n IAppsProgressionMonthlyResponse,\n IServersProgressionMonthlyResponse,\n IMigrationArcheTypeListResponse,\n ITCOInsightsResponse,\n ICostTrendResponse,\n ICostAllocationSummaryResponse,\n IBlockersAndCausesResponse,\n IAllocationTrendResponse,\n ICloudCostSummaryCostTrendResponse,\n IServersByUpgradeResponse,\n IDispositionsByWaveData,\n IOtherSQLPayload,\n ISQLDMLPayload,\n IWorkflowPayload,\n IDefectAgeingResponse,\n INumberOfTestCasesResponse,\n ISeverityVsCreatedOnResponse,\n ITestRunStatusResponse,\n ITableCountResponse,\n ITaxonomyEditorData,\n} from '../../../models/cbo/EngagementSummaryGraphModel';\nimport { IStoreAction } from '../../StoreHelper';\nexport enum EngagementSummaryGraphActionTypes {\n GET_LIFT_SHIFT_CHART_STARTED = 'GET_LIFT_SHIFT_STARTED',\n GET_LIFT_SHIFT_CHART_SUCCESS = 'GET_LIFT_SHIFT_SUCCESS',\n GET_LIFT_SHIFT_CHART_ERROR = 'GET_LIFT_SHIFT_ERROR',\n GET_JIRA_INITIATIVE_STARTED = 'GET_JIRA_INITIATIVE_STARTED',\n GET_JIRA_INITIATIVE_SUCCESS = 'GET_JIRA_INITIATIVE_SUCCESS',\n GET_JIRA_INITIATIVE_ERROR = 'GET_JIRA_INITIATIVE_ERROR',\n GET_JIRA_EPICS_STARTED = 'GET_JIRA_EPICS_STARTED',\n GET_JIRA_EPICS_SUCCESS = 'GET_JIRA_EPICS_SUCCESS',\n GET_JIRA_EPICS_ERROR = 'GET_JIRA_EPICS_ERROR',\n GET_JIRA_TASKS_STARTED = 'GET_JIRA_TASKS_STARTED',\n GET_JIRA_TASKS_SUCCESS = 'GET_JIRA_TASKS_SUCCESS',\n GET_JIRA_TASKS_ERROR = 'GET_JIRA_TASKS_ERROR',\n GET_ALL_SQL_GRAPH_DATA_START = 'GET_ALL_SQL_GRAPH_DATA_START',\n GET_ALL_SQL_GRAPH_DATA_SUCCESS = 'GET_ALL_SQL_GRAPH_DATA_SUCCESS',\n GET_ALL_SQL_GRAPH_DATA_ERROR = 'GET_ALL_SQL_GRAPH_DATA_ERROR',\n GET_DML_SQL_GRAPH_DATA_START = 'GET_DML_SQL_GRAPH_DATA_START',\n GET_DML_SQL_GRAPH_DATA_SUCCESS = 'GET_DML_SQL_GRAPH_DATA_SUCCESS',\n GET_DML_SQL_GRAPH_DATA_ERROR = 'GET_DML_SQL_GRAPH_DATA_ERROR',\n GET_OTHER_SQL_GRAPH_DATA_START = 'GET_OTHER_SQL_GRAPH_DATA_START',\n GET_OTHER_SQL_GRAPH_DATA_SUCCESS = 'GET_OTHER_SQL_GRAPH_DATA_SUCCESS',\n GET_OTHER_SQL_GRAPH_DATA_ERROR = 'GET_OTHER_SQL_GRAPH_DATA_ERROR',\n GET_DCMPTN_GRAPH_DATA_START = 'GET_DCMPTN_GRAPH_DATA_START',\n GET_DCMPTN_GRAPH_DATA_SUCCESS = 'GET_DCMPTN_GRAPH_DATA_SUCCESS',\n GET_DCMPTN_GRAPH_DATA_ERROR = 'GET_DCMPTN_GRAPH_DATA_ERROR',\n GET_MISSING_ARTIFACT_DATA_START = 'GET_MISSING_ARTIFACT_DATA_START',\n GET_MISSING_ARTIFACT_DATA_SUCCESS = 'GET_MISSING_ARTIFACT_DATA_SUCCESS',\n GET_MISSING_ARTIFACT_DATA_ERROR = 'GET_MISSING_ARTIFACT_DATA_ERROR',\n GET_ANALYZED_ARTIFACT_DATA_START = 'GET_ANALYZED_ARTIFACT_DATA_START',\n GET_ANALYZED_ARTIFACT_DATA_SUCCESS = 'GET_ANALYZED_ARTIFACT_DATA_SUCCESS',\n GET_ANALYZED_ARTIFACT_DATA_ERROR = 'GET_ANALYZED_ARTIFACT_DATA_ERROR',\n GET_NUMBER_LOC_DATA_START = 'GET_NUMBER_LOC_DATA_START',\n GET_NUMBER_LOC_DATA_SUCCESS = 'GET_NUMBER_LOC_DATA_SUCCESS',\n GET_NUMBER_LOC_DATA_ERROR = 'GET_NUMBER_LOC_DATA_ERROR',\n\n GET_CODE_QUALITY_LOW_GRAPH_DATA_START = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_START',\n GET_CODE_QUALITY_LOW_GRAPH_DATA_SUCCESS = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_SUCCESS',\n GET_CODE_QUALITY_LOW_GRAPH_DATA_ERROR = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_ERROR',\n GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_FCC_START = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_FCC_START',\n GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_FCC_SUCCESS = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_FCC_SUCCESS',\n GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_FCC_ERROR = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_FCC_ERROR',\n GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_LCC_START = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_LCC_START',\n GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_LCC_SUCCESS = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_LCC_SUCCESS',\n GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_LCC_ERROR = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_LCC_ERROR',\n GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_SC_START = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_SC_START',\n GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_SC_SUCCESS = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_SC_SUCCESS',\n GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_SC_ERROR = 'GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_SC_ERROR',\n\n GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_START = 'GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_START',\n GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_SUCCESS = 'GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_SUCCESS',\n GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_ERROR = 'GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_ERROR',\n GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_FCC_START = 'GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_FCC_START',\n GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_FCC_SUCCESS = 'GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_FCC_SUCCESS',\n GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_FCC_ERROR = 'GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_FCC_ERROR',\n GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_LCC_START = 'GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_LCC_START',\n GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_LCC_SUCCESS = 'GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_LCC_SUCCESS',\n GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_LCC_ERROR = 'GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_LCC_ERROR',\n\n GET_CODE_QUALITY_HIGH_GRAPH_DATA_START = 'GET_CODE_QUALITY_HIGH_GRAPH_DATA_START',\n GET_CODE_QUALITY_HIGH_GRAPH_DATA_SUCCESS = 'GET_CODE_QUALITY_HIGH_GRAPH_DATA_SUCCESS',\n GET_CODE_QUALITY_HIGH_GRAPH_DATA_ERROR = 'GET_CODE_QUALITY_HIGH_GRAPH_DATA_ERROR',\n GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_FCC_START = 'GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_FCC_START',\n GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_FCC_SUCCESS = 'GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_FCC_SUCCESS',\n GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_FCC_ERROR = 'GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_FCC_ERROR',\n GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_LCC_START = 'GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_LCC_START',\n GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_LCC_SUCCESS = 'GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_LCC_SUCCESS',\n GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_LCC_ERROR = 'GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_LCC_ERROR',\n\n GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_START = 'GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_START',\n GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_SUCCESS = 'GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_SUCCESS',\n GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_ERROR = 'GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_ERROR',\n GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_FCC_START = 'GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_FCC_START',\n GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_FCC_SUCCESS = 'GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_FCC_SUCCESS',\n GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_FCC_ERROR = 'GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_FCC_ERROR',\n GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_LCC_START = 'GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_LCC_START',\n GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_LCC_SUCCESS = 'GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_LCC_SUCCESS',\n GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_LCC_ERROR = 'GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_LCC_ERROR',\n\n GET_METRICS_MODULE_DATA_START = 'GET_METRICS_MODULE_DATA_START',\n GET_METRICS_MODULE_DATA_SUCCESS = 'GET_METRICS_MODULE_DATA_SUCCESS',\n GET_METRICS_MODULE_DATA_ERROR = 'GET_METRICS_MODULE_DATA_ERROR',\n GET_PHYSICAL_FILES_DATA_START = 'GET_PHYSICAL_FILES_DATA_START',\n GET_PHYSICAL_FILES_DATA_SUCCESS = 'GET_PHYSICAL_FILES_DATA_SUCCESS',\n GET_PHYSICAL_FILES_DATA_ERROR = 'GET_PHYSICAL_FILES_DATA_ERROR',\n GET_PHYSICAL_LOC_DATA_START = 'GET_PHYSICAL_LOC_DATA_START',\n GET_PHYSICAL_LOC_DATA_SUCCESS = 'GET_PHYSICAL_LOC_DATA_SUCCESS',\n GET_PHYSICAL_LOC_DATA_ERROR = 'GET_PHYSICAL_LOC_DATA_ERROR',\n GET_SOURCE_LOC_DATA_START = 'GET_SOURCE_LOC_DATA_START',\n GET_SOURCE_LOC_DATA_SUCCESS = 'GET_SOURCE_LOC_DATA_SUCCESS',\n GET_SOURCE_LOC_DATA_ERROR = 'GET_SOURCE_LOC_DATA_ERROR',\n GET_COMMENT_LOC_DATA_START = 'GET_COMMENT_LOC_DATA_START',\n GET_COMMENT_LOC_DATA_SUCCESS = 'GET_COMMENT_LOC_DATA_SUCCESS',\n GET_COMMENT_LOC_DATA_ERROR = 'GET_COMMENT_LOC_DATA_ERROR',\n GET_DEAD_CODE_DATA_START = 'GET_DEAD_CODE_DATA_START',\n GET_DEAD_CODE_DATA_SUCCESS = 'GET_DEAD_CODE_DATA_SUCCESS',\n GET_DEAD_CODE_DATA_ERROR = 'GET_DEAD_CODE_DATA_ERROR',\n GET_MISSING_MODULE_DATA_START = 'GET_MISSING_MODULE_DATA_START',\n GET_MISSING_MODULE_DATA_SUCCESS = 'GET_MISSING_MODULE_DATA_SUCCESS',\n GET_MISSING_MODULE_DATA_ERROR = 'GET_MISSING_MODULE_DATA_ERROR',\n GET_ERRORS_DATA_START = 'GET_ERRORS_DATA_START',\n GET_ERRORS_DATA_SUCCESS = 'GET_ERRORS_DATA_SUCCESS',\n GET_ERRORS_DATA_ERROR = 'GET_ERRORS_DATA_ERROR',\n GET_JIRA_TABLE_INITIATIVE_STARTED = 'GET_JIRA_TABLE_INITIATIVE_STARTED',\n GET_JIRA_TABLE_INITIATIVE_SUCCESS = 'GET_JIRA_TABLE_INITIATIVE_SUCCESS',\n GET_JIRA_TABLE_INITIATIVE_ERROR = 'GET_JIRA_TABLE_INITIATIVE_ERROR',\n GET_JIRA_TABLE_EPICS_STARTED = 'GET_JIRA_TABLE_EPICS_STARTED',\n GET_JIRA_TABLE_EPICS_SUCCESS = 'GET_JIRA_TABLE_EPICS_SUCCESS',\n GET_JIRA_TABLE_EPICS_ERROR = 'GET_JIRA_TABLE_EPICS_ERROR',\n GET_APPLICATION_DISPOSITIONING_ERROR = 'GET_APPLICATION_DISPOSITIONING_ERROR',\n GET_APPLICATION_DISPOSITIONING_STARTED = 'GET_APPLICATION_DISPOSITIONING_STARTED',\n GET_APPLICATION_DISPOSITIONING_SUCCESS = 'GET_APPLICATION_DISPOSITIONING_SUCCESS',\n GET_WAVE_PLANE_ERROR = 'GET_WAVE_PLANE_ERROR',\n GET_WAVE_PLANE_STARTED = 'GET_WAVE_PLANE_STARTED',\n GET_WAVE_PLANE_SUCCESS = 'GET_WAVE_PLANE_SUCCESS',\n GET_JIRA_TASK_LIST_STARTED = 'GET_JIRA_TASK_LIST_STARTED',\n GET_JIRA_TASK_LIST_SUCCESS = 'GET_JIRA_TASK_LIST_SUCCESS',\n GET_JIRA_TASK_LIST_ERROR = 'GET_JIRA_TASK_LIST_ERROR',\n GET_JIRA_TABLE_STORY_LIST_STARTED = 'GET_JIRA_TABLE_STORY_LIST_STARTED',\n GET_JIRA_TABLE_STORY_LIST_SUCCESS = 'GET_JIRA_TABLE_STORY_LIST_SUCCESS',\n GET_JIRA_TABLE_STORY_LIST_ERROR = 'GET_JIRA_TABLE_STORY_LIST_ERROR',\n GET_JIRA_TABLE_TASK_LIST_STARTED = 'GET_JIRA_TABLE_TASK_LIST_STARTED',\n GET_JIRA_TABLE_TASK_LIST_SUCCESS = 'GET_JIRA_TABLE_TASK_LIST_SUCCESS',\n GET_JIRA_TABLE_TASK_LIST_ERROR = 'GET_JIRA_TABLE_TASK_LIST_ERROR',\n GET_INVENTORY_SURVEY_DATA_START = 'GET_INVENTORY_SURVEY_DATA_START',\n GET_INVENTORY_SURVEY_DATA_SUCCESS = 'GET_INVENTORY_SURVEY_DATA_SUCCESS',\n GET_INVENTORY_SURVEY_DATA_ERROR = 'GET_INVENTORY_SURVEY_DATA_ERROR',\n GET_BUSINESS_SURVEY_DATA_START = 'GET_BUSINESS_SURVEY_DATA_START',\n GET_BUSINESS_SURVEY_DATA_SUCCESS = 'GET_BUSINESS_SURVEY_DATA_SUCCESS',\n GET_BUSINESS_SURVEY_DATA_ERROR = 'GET_BUSINESS_SURVEY_DATA_ERROR',\n GET_DISCOVERY_METRICS_DATA_START = 'GET_DISCOVERY_METRICS_DATA_START',\n GET_DISCOVERY_METRICS_DATA_SUCCESS = 'GET_DISCOVERY_METRICS_DATA_SUCCESS',\n GET_DISCOVERY_METRICS_DATA_ERROR = 'GET_DISCOVERY_METRICS_DATA_ERROR',\n POST_INCIDENT_SUMMARY_TRENDS_STARTED = 'POST_INCIDENT_SUMMARY_TRENDS_STARTED',\n POST_INCIDENT_SUMMARY_TRENDS_SUCCESS = 'POST_INCIDENT_SUMMARY_TRENDS_SUCCESS',\n POST_INCIDENT_SUMMARY_TRENDS_ERROR = 'POST_INCIDENT_SUMMARY_TRENDS_ERROR',\n\n GET_INCIDENT_DETAILS_STARTED = 'GET_INCIDENT_DETAILS_STARTED',\n GET_INCIDENT_DETAILS_SUCCESS = 'GET_INCIDENT_DETAILS_SUCCESS',\n GET_INCIDENT_DETAILS_ERROR = 'GET_INCIDENT_DETAILS_ERROR',\n\n SET_KEY_ASSET_CONFIG_STARTED = 'SET_KEY_ASSET_CONFIG_STARTED',\n SET_KEY_ASSET_CONFIG_SUCCESS = 'SET_KEY_ASSET_CONFIG_SUCCESS',\n SET_KEY_ASSET_CONFIG_ERROR = 'SET_KEY_ASSET_CONFIG_ERROR',\n\n RESST_SUMMARY_GRAPH_DATA = 'RESST_SUMMARY_GRAPH_DATA',\n GET_JIRA_CURRENT_SPRINT_STARTED = 'GET_JIRA_CURRENT_SPRINT_STARTED',\n GET_JIRA_CURRENT_SPRINT_SUCCESS = 'GET_JIRA_CURRENT_SPRINT_SUCCESS',\n GET_JIRA_CURRENT_SPRINT_ERROR = 'GET_JIRA_CURRENT_SPRINT_ERROR',\n\n GET_CARBON_FOOT_PRINT_START = 'GET_CARBON_FOOT_PRINT_START',\n GET_CARBON_FOOT_PRINT_SUCCESS = 'GET_CARBON_FOOT_PRINT_SUCCESS',\n GET_CARBON_FOOT_PRINT_ERROR = 'GET_CARBON_FOOT_PRINT_ERROR',\n GET_CARBON_CREDITS_START = 'GET_CARBON_CREDITS_START',\n GET_CARBON_CREDITS_SUCCESS = 'GET_CARBON_CREDITS_SUCCESS',\n GET_CARBON_CREDITS_ERROR = 'GET_CARBON_CREDITS_ERROR',\n GET_ENERGY_SAVINGS_START = 'GET_ENERGY_SAVINGS_START',\n GET_ENERGY_SAVINGS_SUCCESS = 'GET_ENERGY_SAVINGS_SUCCESS',\n GET_ENERGY_SAVINGS_ERROR = 'GET_ENERGY_SAVINGS_ERROR',\n\n GET_LEARNING_CENTER_SUMMARY_START = 'GET_LEARNING_CENTER_SUMMARY_START',\n GET_LEARNING_CENTER_SUMMARY_SUCCESS = 'GET_LEARNING_CENTER_SUMMARY_SUCCESS',\n GET_LEARNING_CENTER_SUMMARY_ERROR = 'GET_LEARNING_CENTER_SUMMARY_ERROR',\n\n GET_COURSES_STATUS_START = 'GET_COURSES_STATUS_START',\n GET_COURSES_STATUS_SUCCESS = 'GET_COURSES_STATUS_SUCCESS',\n GET_COURSES_STATUS_ERROR = 'GET_COURSES_STATUS_ERROR',\n\n GET_LEGACY_DB_SUCCESS = 'GET_LEGACY_DB_SUCCESS',\n GET_LEGACY_DB_STARTED = 'GET_LEGACY_DB_STARTED',\n GET_LEGACY_DB_ERROR = 'GET_LEGACY_DB_ERROR',\n\n GET_LEGACY_GRAPH_SUCCESS = 'GET_LEGACY_GRAPH_SUCCESS',\n GET_LEGACY_GRAPH_STARTED = 'GET_LEGACY_GRAPH_STARTED',\n GET_LEGACY_GRAPH_ERROR = 'GET_LEGACY_GRAPH_ERROR',\n\n GET_WORKFLOW_LIST_STARTED = 'GET_WORKFLOW_LIST_STARTED',\n GET_WORKFLOW_LIST_SUCCESS = 'GET_WORKFLOW_LIST_SUCCESS',\n GET_WORKFLOW_LIST_ERROR = 'GET_WORKFLOW_LIST_ERROR',\n\n GET_WORKFLOW_METRICS_STARTED = 'GET_WORKFLOW_METRICS_STARTED',\n GET_WORKFLOW_METRICS_SUCCESS = 'GET_WORKFLOW_METRICS_SUCCESS',\n GET_WORKFLOW_METRICS_ERROR = 'GET_WORKFLOW_METRICS_ERROR',\n\n GET_WORKFLOW_REPORTS_STARTED = 'GET_WORKFLOW_REPORTS_STARTED',\n GET_WORKFLOW_REPORTS_SUCCESS = 'GET_WORKFLOW_REPORTS_SUCCESS',\n GET_WORKFLOW_REPORTS_ERROR = 'GET_WORKFLOW_REPORTS_ERROR',\n\n GET_DEPSCAN_ALERTS_STARTED = 'GET_DEPSCAN_ALERTS_STARTED',\n GET_DEPSCAN_ALERTS_SUCCESS = 'GET_DEPSCAN_ALERTS_SUCCESS',\n GET_DEPSCAN_ALERTS_ERROR = 'GET_DEPSCAN_ALERTS_ERROR',\n\n GET_DEP_CODES_SPACES_STARTED = 'GET_DEP_CODES_SPACES_STARTED',\n GET_DEP_CODES_SPACES_SUCCESS = 'GET_DEP_CODES_SPACES_SUCCESS',\n GET_DEP_CODES_SPACES_ERROR = 'GET_DEP_CODES_SPACES_ERROR',\n\n GET_RUN_ASSIGNMENT_LIST_STARTED = 'GET_RUN_ASSIGNMENT_LIST_STARTED',\n GET_RUN_ASSIGNMENT_LIST_SUCCESS = 'GET_RUN_ASSIGNMENT_LIST_SUCCESS',\n GET_RUN_ASSIGNMENT_LIST_ERROR = 'GET_RUN_ASSIGNMENT_LIST_ERROR',\n\n GET_RUN_DETAILS_STARTED = 'GET_RUN_DETAILS_STARTED',\n GET_RUN_DETAILS_SUCCESS = 'GET_RUN_DETAILS_SUCCESS',\n GET_RUN_DETAILS_ERROR = 'GET_RUN_DETAILS_ERROR',\n\n GET_PROBLEM_GROUP_OVERVIEW_STARTED = 'GET_PROBLEM_GROUP_OVERVIEW_STARTED',\n GET_PROBLEM_GROUP_OVERVIEW_SUCCESS = 'GET_PROBLEM_GROUP_OVERVIEW_SUCCESS',\n GET_PROBLEM_GROUP_OVERVIEW_ERROR = 'GET_PROBLEM_GROUP_OVERVIEW_ERROR',\n\n GET_KMS_RESPONSE_STARTED = 'GET_KMS_RESPONSE_STARTED',\n GET_KMS_RESPONSE_SUCCESS = 'GET_KMS_RESPONSE_SUCCESS',\n GET_KMS_RESPONSE_ERROR = 'GET_KMS_RESPONSE_ERROR',\n\n GET_RISK_SUMMARY_DATA_STARTED = 'GET_RISK_SUMMARY_DATA_STARTED',\n GET_RISK_SUMMARY_DATA_SUCCESS = 'GET_RISK_SUMMARY_DATA_SUCCESS',\n GET_RISK_SUMMARY_DATA_ERROR = 'GET_RISK_SUMMARY_DATA_ERROR',\n\n GET_ISSUE_SUMMARY_DATA_STARTED = 'GET_ISSUE_SUMMARY_DATA_STARTED',\n GET_ISSUE_SUMMARY_DATA_SUCCESS = 'GET_ISSUE_SUMMARY_DATA_SUCCESS',\n GET_ISSUE_SUMMARY_DATA_ERROR = 'GET_ISSUE_SUMMARY_DATA_ERROR',\n\n GET_ACTIVE_SUMMARY_DATA_STARTED = 'GET_ACTIVE_SUMMARY_DATA_STARTED',\n GET_ACTIVE_SUMMARY_DATA_SUCCESS = 'GET_ACTIVE_SUMMARY_DATA_SUCCESS',\n GET_ACTIVE_SUMMARY_DATA_ERROR = 'GET_ACTIVE_SUMMARY_DATA_ERROR',\n\n GET_TRANSITIONS_DATA_STARTED = 'GET_TRANSITIONS_DATA_STARTED',\n GET_TRANSITIONS_DATA_SUCCESS = 'GET_TRANSITIONS_DATA_SUCCESS',\n GET_TRANSITIONS_DATA_ERROR = 'GET_TRANSITIONS_DATA_ERROR',\n //CBO-2901_AI_AUTO_NEW_CODE : Added new action Types for AppProgressionData, ServerProgressionData and ArchetypeList\n\n GET_APPS_PROGRESSION_DATA_STARTED = 'GET_APPS_PROGRESSION_DATA_STARTED',\n GET_APPS_PROGRESSION_DATA_SUCCESS = 'GET_APPS_PROGRESSION_DATA_SUCCESS',\n GET_APPS_PROGRESSION_DATA_ERROR = 'GET_APPS_PROGRESSION_DATA_ERROR',\n\n GET_SERVERS_PROGRESSION_DATA_STARTED = 'GET_SERVERS_PROGRESSION_DATA_STARTED',\n GET_SERVERS_PROGRESSION_DATA_SUCCESS = 'GET_SERVERS_PROGRESSION_DATA_SUCCESS',\n GET_SERVERS_PROGRESSION_DATA_ERROR = 'GET_SERVERS_PROGRESSION_DATA_ERROR',\n\n GET_ARCHETYPE_LIST_STARTED = 'GET_ARCHETYPE_LIST_STARTED',\n GET_ARCHETYPE_LIST_SUCCESS = 'GET_ARCHETYPE_LIST_SUCCESS',\n GET_ARCHETYPE_LIST_ERROR = 'GET_ARCHETYPE_LIST_ERROR',\n\n //CBO-2901_AI_AUTO_NEW_CODE : Added new action Types for AppProgressionMonthlyData, ServerProgressionMonthlyData\n GET_APPS_PROGRESSION_MONTHLY_DATA_STARTED = 'GET_APPS_PROGRESSION_MONTHLY_DATA_STARTED',\n GET_APPS_PROGRESSION_MONTHLY_DATA_SUCCESS = 'GET_APPS_PROGRESSION_MONTHLY_DATA_SUCCESS',\n GET_APPS_PROGRESSION_MONTHLY_DATA_ERROR = 'GET_APPS_PROGRESSION_MONTHLY_DATA_ERROR',\n GET_SERVERS_PROGRESSION_MONTHLY_DATA_STARTED = 'GET_SERVERS_PROGRESSION_MONTHLY_DATA_STARTED',\n GET_SERVERS_PROGRESSION_MONTHLY_DATA_SUCCESS = 'GET_SERVERS_PROGRESSION_MONTHLY_DATA_SUCCESS',\n GET_SERVERS_PROGRESSION_MONTHLY_DATA_ERROR = 'GET_SERVERS_PROGRESSION_MONTHLY_DATA_ERROR',\n\n GET_TCO_INSIGHTS_STARTED = 'GET_TCO_INSIGHTS_STARTED',\n GET_TCO_INSIGHTS_SUCCESS = 'GET_TCO_INSIGHTS_SUCCESS',\n GET_TCO_INSIGHTS_ERROR = 'GET_TCO_INSIGHTS_ERROR',\n GET_COST_TRENDS_STARTED = 'GET_COST_TRENDS_STARTED',\n GET_COST_TRENDS_SUCCESS = 'GET_COST_TRENDS_SUCCESS',\n GET_COST_TRENDS_ERROR = 'GET_COST_TRENDS_ERROR',\n GET_COST_ALLOCATION_SUMMARY_STARTED = 'GET_COST_ALLOCATION_SUMMARY_STARTED',\n GET_COST_ALLOCATION_SUMMARY_SUCCESS = 'GET_COST_ALLOCATION_SUMMARY_SUCCESS',\n GET_COST_ALLOCATION_SUMMARY_ERROR = 'GET_COST_ALLOCATION_SUMMARY_ERROR',\n GET_BLOCKERS_CAUSES_DATA_STARTED = 'GET_BLOCKERS_CAUSES_DATA_STARTED',\n GET_BLOCKERS_CAUSES_DATA_SUCCESS = 'GET_BLOCKERS_CAUSES_DATA_SUCCESS',\n GET_BLOCKERS_CAUSES_DATA_ERROR = 'GET_BLOCKERS_CAUSES_DATA_ERROR',\n\n //CB360\n GET_ALLOCATION_TRENDS_DATA_STARTED = 'GET_ALLOCATION_TRENDS_DATA_STARTED',\n GET_ALLOCATION_TRENDS_DATA_SUCCESS = 'GET_ALLOCATION_TRENDS_DATA_SUCCESS',\n GET_ALLOCATION_TRENDS_DATA_ERROR = 'GET_ALLOCATION_TRENDS_DATA_ERROR',\n GET_CLOUD_COST_SUMMARY_COST_TREND_STARTED = 'GET_CLOUD_COST_SUMMARY_COST_TREND_STARTED',\n GET_CLOUD_COST_SUMMARY_COST_TREND_SUCCESS = 'GET_CLOUD_COST_SUMMARY_COST_TREND_SUCCESS',\n GET_CLOUD_COST_SUMMARY_COST_TREND_ERROR = 'GET_CLOUD_COST_SUMMARY_COST_TREND_ERROR',\n\n // CBO-3061_AI_AUTO_ENHANCE_CODE:Created new action types for ServersByUpgrade\n GET_SERVERS_BY_UPGRADE_STARTED = 'GET_SERVERS_BY_UPGRADE_STARTED',\n GET_SERVERS_BY_UPGRADE_SUCCESS = 'GET_SERVERS_BY_UPGRADE_SUCCESS',\n GET_SERVERS_BY_UPGRADE_ERROR = 'GET_SERVERS_BY_UPGRADE_ERROR',\n\n GET_DISPOSITIONS_BY_WAVE_STARTED = 'GET_DISPOSITIONS_BY_WAVE_STARTED',\n GET_DISPOSITIONS_BY_WAVE_SUCCESS = 'GET_DISPOSITIONS_BY_WAVE_SUCCESS',\n GET_DISPOSITIONS_BY_WAVE_ERROR = 'GET_DISPOSITIONS_BY_WAVE_ERROR',\n\n //CBO-4166_AI_AUTO_ENHANCE_CODE add new action type similar to above for DEFECT_AGEING, NUMBER_OF_TEST_CASES,SEVERITY_VS_CRERATEDON, TABLE_COUNT, TEST_RUN_STATUS\n GET_DEFECT_AGEING_STARTED = 'GET_DEFECT_AGEING_STARTED',\n GET_DEFECT_AGEING_SUCCESS = 'GET_DEFECT_AGEING_SUCCESS',\n GET_DEFECT_AGEING_ERROR = 'GET_DEFECT_AGEING_ERROR',\n GET_NUMBER_OF_TEST_CASES_STARTED = 'GET_NUMBER_OF_TEST_CASES_STARTED',\n GET_NUMBER_OF_TEST_CASES_SUCCESS = 'GET_NUMBER_OF_TEST_CASES_SUCCESS',\n GET_NUMBER_OF_TEST_CASES_ERROR = 'GET_NUMBER_OF_TEST_CASES_ERROR',\n GET_SEVERITY_VS_CREATEDON_STARTED = 'GET_SEVERITY_VS_CREATEDON_STARTED',\n GET_SEVERITY_VS_CREATEDON_SUCCESS = 'GET_SEVERITY_VS_CREATEDON_SUCCESS',\n GET_SEVERITY_VS_CREATEDON_ERROR = 'GET_SEVERITY_VS_CREATEDON_ERROR',\n GET_TABLE_COUNT_STARTED = 'GET_TABLE_COUNT_STARTED',\n GET_TABLE_COUNT_SUCCESS = 'GET_TABLE_COUNT_SUCCESS',\n GET_TABLE_COUNT_ERROR = 'GET_TABLE_COUNT_ERROR',\n GET_TEST_RUN_STATUS_STARTED = 'GET_TEST_RUN_STATUS_STARTED',\n GET_TEST_RUN_STATUS_SUCCESS = 'GET_TEST_RUN_STATUS_SUCCESS',\n GET_TEST_RUN_STATUS_ERROR = 'GET_TEST_RUN_STATUS_ERROR',\n\n GET_TAXONOMY_EDITOR_DATA_STARTED = 'GET_TAXONOMY_EDITOR_DATA_STARTED',\n GET_TAXONOMY_EDITOR_DATA_SUCCESS = 'GET_TAXONOMY_EDITOR_DATA_SUCCESS',\n GET_TAXONOMY_EDITOR_DATA_ERROR = 'GET_TAXONOMY_EDITOR_DATA_ERROR',\n}\n\nexport type EngagementSummaryGraphPayload =\n | string\n | string[]\n | ILiftAndShiftObject\n | Error\n | IJiraInitiativesResponse[]\n | IJiraInitiativesPayload\n | IJiraEpicsPayload\n | IJiraEpicsResponse\n | IJiraStoriesPayload\n | IJiraStoryListResponse\n | IJiraTasksPayload\n | IJiraTasksResponse\n | IAllSQLGraphPayload\n | ISQLDMLPayload\n | IOtherSQLPayload\n | ISQLGraphDataResponse[]\n | IDecompositionResponse[]\n | IArtifactsResponse[]\n | IArtifactsGraphPayload\n | IArtifactsLOCResponse[]\n | ICodeQualityPayload\n | ICodeQuality[]\n | ISummaryMetricsPayload\n | ISummaryMetricsResp[]\n | IJiraIssueResponse\n | IJiraTaskListResponse\n | IApplicationDipositioning\n | ISurveyMetrics\n | IDiscoveryMetrics\n | IWavePlan\n | IOperateEndgeIncidentPayload\n | IIncidentChartsType\n | IIncidentDetailsPayload\n | IIncidentDetails\n | IProduct\n | IGreenCloudPayload\n | ICarbonFootPrintResponse\n | ICarbonCreditsResponse\n | IEnergySavingsResponse\n | ILearningCenterPayload\n | IDashboardCourseStatusResponse[]\n | ISummaryPractitionerDataResp\n | ILegacyDbData[]\n | ILegacyGraphData\n | IWorkflowListPayload\n | IWorkflowListResponse[]\n | IExecutionMetricDetailsResponse\n | IWorkflowReportResponse\n | IWorkflowPayload\n | IDEPAlertScanResponse\n | IDEPAlertScanPayload\n | ICodespacesResponse[]\n | IProblemInsightsPayload\n | IProblemGroupOverviewResponse\n | IProblemInsightsRunDetailsData\n | IProblemInsightsAssignmentGroupData[]\n | IKMSResponse[]\n | IRiskSummaryResponse[]\n | IIssueSummaryResponse[]\n | IActiveSummaryResponse\n | ITransitionTableResponseData[]\n | IAppsProgressionResponse[]\n | IServersProgressionResponse[]\n | IAppsProgressionMonthlyResponse[]\n | IServersProgressionMonthlyResponse[]\n | IMigrationPayload\n | IMigrationArcheTypeListResponse\n | ITCOInsightsResponse\n | ICostTrendResponse[]\n | ICostAllocationSummaryResponse\n | IBlockersAndCausesResponse\n | IAllocationTrendResponse\n | ICloudCostSummaryCostTrendResponse[]\n | IServersByUpgradeResponse[]\n | IDispositionsByWaveData\n | IDefectAgeingResponse\n | INumberOfTestCasesResponse\n | ISeverityVsCreatedOnResponse\n | ITestRunStatusResponse\n | ITaxonomyEditorData[];\n\nexport type EngagementSummaryGraphAction = IStoreAction<\n EngagementSummaryGraphActionTypes,\n EngagementSummaryGraphPayload\n>;\n/* export type CboMarketplaceDocsAction = IStoreAction; */\nexport class EngagementSummaryGraphActions {\n //get liftshift pie-chart against journey\n public static getLiftAndShiftStart(): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LIFT_SHIFT_CHART_STARTED,\n };\n }\n\n public static getLiftAndShiftSuccess(data: ILiftAndShiftObject): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LIFT_SHIFT_CHART_SUCCESS,\n data,\n };\n }\n public static getLiftAndShiftError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LIFT_SHIFT_CHART_ERROR,\n data: error,\n };\n }\n\n //get liftshift issue-table against\n public static getJiraInititativeStart(\n data: IJiraInitiativesPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_INITIATIVE_STARTED,\n data,\n };\n }\n\n public static getJiraInititativeSuccess(\n data: IJiraInitiativesResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_INITIATIVE_SUCCESS,\n data,\n };\n }\n public static getJiraInititativeError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_INITIATIVE_ERROR,\n data: error,\n };\n }\n\n //Epics Action\n public static getJiraEpicsStart(data: IJiraEpicsPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_EPICS_STARTED,\n data,\n };\n }\n public static getJiraEpicsSuccess(data: IJiraEpicsResponse): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_EPICS_SUCCESS,\n data,\n };\n }\n public static getJiraEpicsError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_EPICS_ERROR,\n data: error,\n };\n }\n\n //Jira tasks Action\n public static getJiraTasksStart(data: IJiraTasksPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TASKS_STARTED,\n data,\n };\n }\n public static getJiraTasksSuccess(data: IJiraTasksResponse): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TASKS_SUCCESS,\n data,\n };\n }\n public static getJiraTasksError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TASKS_ERROR,\n data: error,\n };\n }\n\n //get Data for All SQL Graph of Language Migration\n public static getSQLGraphDataStart(data: IAllSQLGraphPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ALL_SQL_GRAPH_DATA_START,\n data,\n };\n }\n\n public static getSQLGraphDataSuccess(\n data: ISQLGraphDataResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ALL_SQL_GRAPH_DATA_SUCCESS,\n data,\n };\n }\n public static getSQLGraphDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ALL_SQL_GRAPH_DATA_ERROR,\n data: error,\n };\n }\n\n //get Data for DML SQL Graph of Language Migration\n public static getDMLSQLGraphDataStart(data: ISQLDMLPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DML_SQL_GRAPH_DATA_START,\n data,\n };\n }\n\n public static getDMLSQLGraphDataSuccess(\n data: ISQLGraphDataResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DML_SQL_GRAPH_DATA_SUCCESS,\n data,\n };\n }\n public static getDMLSQLGraphDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DML_SQL_GRAPH_DATA_ERROR,\n data: error,\n };\n }\n\n //get Data for Other SQL Graph of Language Migration\n public static getOtherSQLGraphDataStart(data: IOtherSQLPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_OTHER_SQL_GRAPH_DATA_START,\n data,\n };\n }\n\n public static getOtherSQLGraphDataSuccess(\n data: ISQLGraphDataResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_OTHER_SQL_GRAPH_DATA_SUCCESS,\n data,\n };\n }\n public static getOtherSQLGraphDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_OTHER_SQL_GRAPH_DATA_ERROR,\n data: error,\n };\n }\n\n //get Data for Decomposition Graph of Language Migration\n public static getDecompositionDataStart(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DCMPTN_GRAPH_DATA_START,\n data,\n };\n }\n\n public static getDecompositionDataSuccess(\n data: IDecompositionResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DCMPTN_GRAPH_DATA_SUCCESS,\n data,\n };\n }\n public static getDecompositionDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DCMPTN_GRAPH_DATA_ERROR,\n data: error,\n };\n }\n\n public static getMissingArtifactsDataStart(\n data: IArtifactsGraphPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_MISSING_ARTIFACT_DATA_START,\n data,\n };\n }\n\n public static getMissingArtifactsDataSuccess(\n data: IArtifactsResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_MISSING_ARTIFACT_DATA_SUCCESS,\n data,\n };\n }\n\n public static getMissingArtifactsDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_MISSING_ARTIFACT_DATA_ERROR,\n data: error,\n };\n }\n\n public static getAnalysedArtifactsDataStart(\n data: IArtifactsGraphPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ANALYZED_ARTIFACT_DATA_START,\n data,\n };\n }\n public static getAnalysedArtifactsDataSuccess(\n data: IArtifactsResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ANALYZED_ARTIFACT_DATA_SUCCESS,\n data,\n };\n }\n\n public static getAnalysedArtifactsDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ANALYZED_ARTIFACT_DATA_ERROR,\n data: error,\n };\n }\n\n public static getArtifactsLOCDataStart(\n data: IArtifactsGraphPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_NUMBER_LOC_DATA_START,\n data,\n };\n }\n public static getArtifactsLOCDataSuccess(\n data: IArtifactsLOCResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_NUMBER_LOC_DATA_SUCCESS,\n data,\n };\n }\n\n public static getArtifactsLOCDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_NUMBER_LOC_DATA_ERROR,\n data: error,\n };\n }\n\n //code quality\n //LOW\n public static getCodeQualityLowDataStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_START,\n data,\n };\n }\n\n public static getCodeQualityLowDataSuccess(data: ICodeQuality[]): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_SUCCESS,\n data,\n };\n }\n\n public static getCodeQualityLowDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_ERROR,\n data: error,\n };\n }\n //LOW FCC\n public static getCodeQualityLowDataForFCCStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_FCC_START,\n data,\n };\n }\n\n public static getCodeQualityLowDataForFCCSuccess(\n data: ICodeQuality[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_FCC_SUCCESS,\n data,\n };\n }\n\n public static getCodeQualityLowDataForFCCError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_FCC_ERROR,\n data: error,\n };\n }\n\n //LOW LCC\n public static getCodeQualityLowDataForLCCStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_LCC_START,\n data,\n };\n }\n\n public static getCodeQualityLowDataForLCCSuccess(\n data: ICodeQuality[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_LCC_SUCCESS,\n data,\n };\n }\n\n public static getCodeQualityLowDataForLCCError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_LCC_ERROR,\n data: error,\n };\n }\n\n //LOW SC\n public static getCodeQualityLowDataForSCStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_START,\n data,\n };\n }\n\n public static getCodeQualityLowDataForSCSuccess(\n data: ICodeQuality[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_SUCCESS,\n data,\n };\n }\n\n public static getCodeQualityLowDataForSCError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_ERROR,\n data: error,\n };\n }\n\n //MEDIUM\n public static getCodeQualityMediumDataStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_START,\n data,\n };\n }\n\n public static getCodeQualityMediumDataSuccess(\n data: ICodeQuality[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_SUCCESS,\n data,\n };\n }\n public static getCodeQualityMediumDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_ERROR,\n data: error,\n };\n }\n\n //MEDIUM FCC\n public static getCodeQualityMediumDataForFCCStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_FCC_START,\n data,\n };\n }\n\n public static getCodeQualityMediumDataForFCCSuccess(\n data: ICodeQuality[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_FCC_SUCCESS,\n data,\n };\n }\n public static getCodeQualityMediumDataForFCCError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_FCC_ERROR,\n data: error,\n };\n }\n\n //MEDIUM LCC\n public static getCodeQualityMediumDataForLCCStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_LCC_START,\n data,\n };\n }\n\n public static getCodeQualityMediumDataForLCCSuccess(\n data: ICodeQuality[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_LCC_SUCCESS,\n data,\n };\n }\n public static getCodeQualityMediumDataForLCCError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_LCC_ERROR,\n data: error,\n };\n }\n\n //HIGH\n public static getCodeQualityHighDataStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_START,\n data,\n };\n }\n\n public static getCodeQualityHighDataSuccess(data: ICodeQuality[]): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_SUCCESS,\n data,\n };\n }\n public static getCodeQualityHighDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_ERROR,\n data: error,\n };\n }\n\n //HIGH FCC\n public static getCodeQualityHighDataForFCCStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_FCC_START,\n data,\n };\n }\n\n public static getCodeQualityHighDataForFCCSuccess(\n data: ICodeQuality[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_FCC_SUCCESS,\n data,\n };\n }\n public static getCodeQualityHighDataForFCCError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_FCC_ERROR,\n data: error,\n };\n }\n\n //HIGH LCC\n public static getCodeQualityHighDataForLCCStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_LCC_START,\n data,\n };\n }\n\n public static getCodeQualityHighDataForLCCSuccess(\n data: ICodeQuality[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_LCC_SUCCESS,\n data,\n };\n }\n public static getCodeQualityHighDataForLCCError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_LCC_ERROR,\n data: error,\n };\n }\n\n //very high\n public static getCodeQualityVeryHighDataStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_START,\n data,\n };\n }\n\n public static getCodeQualityVeryHighDataSuccess(\n data: ICodeQuality[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_SUCCESS,\n data,\n };\n }\n public static getCodeQualityVeryHighDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_ERROR,\n data: error,\n };\n }\n\n //very high FCC\n public static getCodeQualityVeryHighDataForFCCStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_FCC_START,\n data,\n };\n }\n\n public static getCodeQualityVeryHighDataForFCCSuccess(\n data: ICodeQuality[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_FCC_SUCCESS,\n data,\n };\n }\n public static getCodeQualityVeryHighDataForFCCError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_FCC_ERROR,\n data: error,\n };\n }\n\n //very high LCC\n public static getCodeQualityVeryHighDataForLCCStart(\n data: ICodeQualityPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_LCC_START,\n data,\n };\n }\n\n public static getCodeQualityVeryHighDataForLCCSuccess(\n data: ICodeQuality[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_LCC_SUCCESS,\n data,\n };\n }\n public static getCodeQualityVeryHighDataForLCCError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_LCC_ERROR,\n data: error,\n };\n }\n\n //SUMMARY METRICS\n //Modules\n public static getMetricsModuleDataStart(\n data: ISummaryMetricsPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_METRICS_MODULE_DATA_START,\n data,\n };\n }\n\n public static getMetricsModuleDataSuccess(\n data: ISummaryMetricsResp[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_METRICS_MODULE_DATA_SUCCESS,\n data,\n };\n }\n public static getMetricsModuleDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_METRICS_MODULE_DATA_ERROR,\n data: error,\n };\n }\n\n //Physical files\n public static getPhysicalFilesDataStart(\n data: ISummaryMetricsPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_PHYSICAL_FILES_DATA_START,\n data,\n };\n }\n\n public static getPhysicalFilesDataSuccess(\n data: ISummaryMetricsResp[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_PHYSICAL_FILES_DATA_SUCCESS,\n data,\n };\n }\n public static getPhysicalFilesDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_PHYSICAL_FILES_DATA_ERROR,\n data: error,\n };\n }\n\n //Physical LOC\n public static getPhysicalLOCDataStart(\n data: ISummaryMetricsPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_PHYSICAL_LOC_DATA_START,\n data,\n };\n }\n\n public static getPhysicalLOCDataSuccess(\n data: ISummaryMetricsResp[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_PHYSICAL_LOC_DATA_SUCCESS,\n data,\n };\n }\n public static getPhysicalLOCDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_PHYSICAL_LOC_DATA_ERROR,\n data: error,\n };\n }\n\n //Source LOC\n public static getSourceLOCDataStart(data: ISummaryMetricsPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SOURCE_LOC_DATA_START,\n data,\n };\n }\n public static getSourceLOCDataSuccess(data: ISummaryMetricsResp[]): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SOURCE_LOC_DATA_SUCCESS,\n data,\n };\n }\n public static getSourceLOCDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SOURCE_LOC_DATA_ERROR,\n data: error,\n };\n }\n\n //Comment LOC\n public static getCommentLOCDataStart(data: ISummaryMetricsPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COMMENT_LOC_DATA_START,\n data,\n };\n }\n public static getCommentLOCDataSuccess(\n data: ISummaryMetricsResp[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COMMENT_LOC_DATA_SUCCESS,\n data,\n };\n }\n public static getCommentLOCDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COMMENT_LOC_DATA_ERROR,\n data: error,\n };\n }\n\n //dead CODE\n public static getDeadCodeDataStart(data: ISummaryMetricsPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEAD_CODE_DATA_START,\n data,\n };\n }\n public static getDeadCodeDataSuccess(data: ISummaryMetricsResp[]): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEAD_CODE_DATA_SUCCESS,\n data,\n };\n }\n public static getDeadCodeDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEAD_CODE_DATA_ERROR,\n data: error,\n };\n }\n\n //Missing Modules\n public static getMissingModulesDataStart(\n data: ISummaryMetricsPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_MISSING_MODULE_DATA_START,\n data,\n };\n }\n\n public static getMissingModulesDataSuccess(\n data: ISummaryMetricsResp[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_MISSING_MODULE_DATA_SUCCESS,\n data,\n };\n }\n public static getMissingModulesDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_MISSING_MODULE_DATA_ERROR,\n data: error,\n };\n }\n\n //Errors\n public static geErrorsDataStart(data: ISummaryMetricsPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ERRORS_DATA_START,\n data,\n };\n }\n\n public static geErrorsDataSuccess(data: ISummaryMetricsResp[]): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ERRORS_DATA_SUCCESS,\n data,\n };\n }\n public static geErrorsDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ERRORS_DATA_ERROR,\n data: error,\n };\n }\n\n public static getJiraTableInititativeStart(\n data: IJiraInitiativesPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_INITIATIVE_STARTED,\n data,\n };\n }\n\n public static getJiraTableInititativeSuccess(\n data: IJiraIssueResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_INITIATIVE_SUCCESS,\n data,\n };\n }\n public static getJiraTableInititativeError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_INITIATIVE_ERROR,\n data: error,\n };\n }\n\n //Jira Table Epics\n public static getJiraTableEpicsStart(data: IJiraEpicsPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_EPICS_STARTED,\n data,\n };\n }\n public static getJiraTableEpicsSuccess(data: IJiraIssueResponse): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_EPICS_SUCCESS,\n data,\n };\n }\n public static getJiraTableEpicsError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_EPICS_ERROR,\n data: error,\n };\n }\n\n // Cloud Migration Fecthing Tasks based on epic Id\n public static getJiraTaskListStart(data: IJiraTasksPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TASK_LIST_STARTED,\n data,\n };\n }\n public static getJiraTaskListSuccess(data: IJiraTaskListResponse): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TASK_LIST_SUCCESS,\n data,\n };\n }\n public static getJiraTaskListError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TASK_LIST_ERROR,\n data: error,\n };\n }\n\n //Jira Table Story list\n public static getJiraTableStoryListStart(\n data: IJiraStoriesPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_STORY_LIST_STARTED,\n data,\n };\n }\n public static getJiraTableStoryListSuccess(\n data: IJiraStoryListResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_STORY_LIST_SUCCESS,\n data,\n };\n }\n public static getJiraTableStoryListError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_STORY_LIST_ERROR,\n data: error,\n };\n }\n\n //Jira Table Task list\n public static getJiraIssueTaskListStart(data: IJiraTasksPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_TASK_LIST_STARTED,\n data,\n };\n }\n public static getJiraIssueTaskListSuccess(\n data: IJiraTaskListResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_TASK_LIST_SUCCESS,\n data,\n };\n }\n public static getJiraIssueTaskListError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_TASK_LIST_ERROR,\n data: error,\n };\n }\n\n // current sprint\n //Jira Table Task list\n public static getCurrentSprintStart(\n data: IJiraStoriesPayload | IJiraTasksPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_CURRENT_SPRINT_STARTED,\n data,\n };\n }\n public static getCurrentSprintSuccess(data: IJiraIssueResponse): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_CURRENT_SPRINT_SUCCESS,\n data,\n };\n }\n public static getCurrentSprintError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_JIRA_CURRENT_SPRINT_ERROR,\n data: error,\n };\n }\n public static getApplicationDispositioningStart(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_APPLICATION_DISPOSITIONING_STARTED,\n data,\n };\n }\n\n public static getApplicationDispositioningSuccess(\n data: IApplicationDipositioning,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_APPLICATION_DISPOSITIONING_SUCCESS,\n data,\n };\n }\n public static getApplicationDispositioningError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_APPLICATION_DISPOSITIONING_ERROR,\n };\n }\n //wave plan\n public static getWavePlanStart(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WAVE_PLANE_STARTED,\n data,\n };\n }\n\n public static getWavePlanSuccess(data: IWavePlan): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WAVE_PLANE_SUCCESS,\n data,\n };\n }\n public static getWavePlanError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WAVE_PLANE_ERROR,\n };\n }\n //inventory survey\n public static getInventortSurveyDataStart(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_INVENTORY_SURVEY_DATA_START,\n data,\n };\n }\n\n public static getInventortSurveyDataSuccess(data: ISurveyMetrics): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_INVENTORY_SURVEY_DATA_SUCCESS,\n data,\n };\n }\n public static getInventortSurveyDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_INVENTORY_SURVEY_DATA_ERROR,\n data: error,\n };\n }\n\n //business survey\n public static getBusinessSurveyDataStart(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_BUSINESS_SURVEY_DATA_START,\n data,\n };\n }\n\n public static getBusinessSurveyDataSuccess(data: ISurveyMetrics): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_BUSINESS_SURVEY_DATA_SUCCESS,\n data,\n };\n }\n public static getBusinessSurveyDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_BUSINESS_SURVEY_DATA_ERROR,\n data: error,\n };\n }\n\n //discovery metrics\n public static getDiscoveryMetricsDataStart(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DISCOVERY_METRICS_DATA_START,\n data,\n };\n }\n\n public static getDiscoveryMetricsDataSuccess(\n data: IDiscoveryMetrics,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DISCOVERY_METRICS_DATA_SUCCESS,\n data,\n };\n }\n public static getDiscoveryMetricsDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DISCOVERY_METRICS_DATA_ERROR,\n data: error,\n };\n }\n\n public static postIncidentSummaryAndTrendDataStart(\n data: IOperateEndgeIncidentPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.POST_INCIDENT_SUMMARY_TRENDS_STARTED,\n data,\n };\n }\n\n public static postIncidentSummaryAndTrendDataSuccess(\n data: IIncidentChartsType,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.POST_INCIDENT_SUMMARY_TRENDS_SUCCESS,\n data,\n };\n }\n public static postIncidentSummaryAndTrendDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.POST_INCIDENT_SUMMARY_TRENDS_ERROR,\n data: error,\n };\n }\n\n //INCIDENT- DETAILS\n public static postIncidentDetailsDataStart(\n data: IIncidentDetailsPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_INCIDENT_DETAILS_STARTED,\n data,\n };\n }\n public static postIncidentDetailsDataSuccess(\n data: IIncidentDetails,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_INCIDENT_DETAILS_SUCCESS,\n data,\n };\n }\n public static postIncidentDetailsDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_INCIDENT_DETAILS_ERROR,\n data: error,\n };\n }\n\n public static setKeyAssetConfigStarted(data: IProduct): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.SET_KEY_ASSET_CONFIG_STARTED,\n data,\n };\n }\n public static setKeyAssetConfigSuccess(): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.SET_KEY_ASSET_CONFIG_SUCCESS,\n };\n }\n public static setKeyAssetConfigError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.SET_KEY_ASSET_CONFIG_ERROR,\n data: error,\n };\n }\n\n public static resetSummaryGraphData(): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.RESST_SUMMARY_GRAPH_DATA,\n };\n }\n\n //Green Cloud\n public static getCarbonFootPrintDataStart(\n data: IGreenCloudPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CARBON_FOOT_PRINT_START,\n data,\n };\n }\n\n public static getCarbonFootPrintDataSuccess(\n data: ICarbonFootPrintResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CARBON_FOOT_PRINT_SUCCESS,\n data,\n };\n }\n public static getCarbonFootPrintDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CARBON_FOOT_PRINT_ERROR,\n data: error,\n };\n }\n\n public static getCarbonCreditsDataStart(data: IGreenCloudPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CARBON_CREDITS_START,\n data,\n };\n }\n\n public static getCarbonCreditsDataSuccess(\n data: ICarbonCreditsResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CARBON_CREDITS_SUCCESS,\n data,\n };\n }\n public static getCarbonCreditsDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CARBON_CREDITS_ERROR,\n data: error,\n };\n }\n\n public static getEnergySavingsDataStart(data: IGreenCloudPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ENERGY_SAVINGS_START,\n data,\n };\n }\n\n public static getEnergySavingsDataSuccess(\n data: IEnergySavingsResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ENERGY_SAVINGS_SUCCESS,\n data,\n };\n }\n public static getEnergySavingsDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ENERGY_SAVINGS_ERROR,\n data: error,\n };\n }\n\n public static getLearningSummaryPractitionerStart(\n data: ILearningCenterPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LEARNING_CENTER_SUMMARY_START,\n data,\n };\n }\n\n public static getLearningSummaryPractitionerSuccess(\n data: ISummaryPractitionerDataResp,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LEARNING_CENTER_SUMMARY_SUCCESS,\n data,\n };\n }\n public static getLearningSummaryPractitionerError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LEARNING_CENTER_SUMMARY_ERROR,\n data: error,\n };\n }\n\n public static getCourseStatusPractitionerStart(\n data: ILearningCenterPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COURSES_STATUS_START,\n data,\n };\n }\n\n public static getCourseStatusPractitionerSuccess(\n data: IDashboardCourseStatusResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COURSES_STATUS_SUCCESS,\n data,\n };\n }\n public static getCourseStatusPractitionerError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COURSES_STATUS_ERROR,\n data: error,\n };\n }\n\n // Legacy Graph Data\n public static getLegacyViewStart(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LEGACY_DB_STARTED,\n data,\n };\n }\n\n public static getLegacyViewSuccess(data: ILegacyDbData[]): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LEGACY_DB_SUCCESS,\n data,\n };\n }\n\n public static getLegacyViewError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LEGACY_DB_ERROR,\n data: error,\n };\n }\n\n // Legacy Graph Data\n public static getLegacyGraphStart(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LEGACY_GRAPH_STARTED,\n data,\n };\n }\n\n public static getLegacyGraphSuccess(data: ILegacyGraphData): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LEGACY_GRAPH_SUCCESS,\n data,\n };\n }\n\n public static getLegacyGraphError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_LEGACY_GRAPH_ERROR,\n data: error,\n };\n }\n\n public static getWorkflowsListStart(data: IWorkflowListPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WORKFLOW_LIST_STARTED,\n data,\n };\n }\n\n public static getWorkflowsListSuccess(\n data: IWorkflowListResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WORKFLOW_LIST_SUCCESS,\n data,\n };\n }\n public static getWorkflowsListError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WORKFLOW_LIST_ERROR,\n data: error,\n };\n }\n\n public static getWorkflowMetricDetailsStart(\n data: IWorkflowPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WORKFLOW_METRICS_STARTED,\n data,\n };\n }\n\n public static getWorkflowMetricDetailsSuccess(\n data: IExecutionMetricDetailsResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WORKFLOW_METRICS_SUCCESS,\n data,\n };\n }\n public static getWorkflowMetricDetailsError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WORKFLOW_METRICS_ERROR,\n data: error,\n };\n }\n\n public static getWorkflowReportStart(data: IWorkflowPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WORKFLOW_REPORTS_STARTED,\n data,\n };\n }\n\n public static getWorkflowReportSuccess(\n data: IWorkflowReportResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WORKFLOW_REPORTS_SUCCESS,\n data,\n };\n }\n public static getWorkflowReportError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_WORKFLOW_REPORTS_ERROR,\n data: error,\n };\n }\n\n public static startDepAlertsScanData(data: IDEPAlertScanPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEPSCAN_ALERTS_STARTED,\n data,\n };\n }\n\n public static successDepAlertsScanData(\n data: IDEPAlertScanResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEPSCAN_ALERTS_SUCCESS,\n data,\n };\n }\n\n public static errorDepAlertsScanData(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEPSCAN_ALERTS_ERROR,\n data: error,\n };\n }\n public static getDepCodesSpacesStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEP_CODES_SPACES_STARTED,\n data,\n };\n }\n\n public static getDepCodesSpacesSuccess(\n data: ICodespacesResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEP_CODES_SPACES_SUCCESS,\n data,\n };\n }\n\n public static getDepCodesSpacesError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEP_CODES_SPACES_ERROR,\n data: error,\n };\n }\n\n public static getRunAssignmentListStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_RUN_ASSIGNMENT_LIST_STARTED,\n data,\n };\n }\n\n public static getRunAssignmentListSuccess(\n data: IProblemInsightsAssignmentGroupData[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_RUN_ASSIGNMENT_LIST_SUCCESS,\n data,\n };\n }\n\n public static getRunAssignmentListError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_RUN_ASSIGNMENT_LIST_ERROR,\n data: error,\n };\n }\n\n public static getRunDetailsStarted(data: IProblemInsightsPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_RUN_DETAILS_STARTED,\n data,\n };\n }\n\n public static getRunDetailsSuccess(\n data: IProblemInsightsRunDetailsData,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_RUN_DETAILS_SUCCESS,\n data,\n };\n }\n\n public static getRunDetailsError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_RUN_DETAILS_ERROR,\n data: error,\n };\n }\n\n public static getProblemGroupOverviewStarted(\n data: IProblemInsightsPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_PROBLEM_GROUP_OVERVIEW_STARTED,\n data,\n };\n }\n\n public static getProblemGroupOverviewSuccess(\n data: IProblemGroupOverviewResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_PROBLEM_GROUP_OVERVIEW_SUCCESS,\n data,\n };\n }\n\n public static getProblemGroupOverviewError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_PROBLEM_GROUP_OVERVIEW_ERROR,\n data: error,\n };\n }\n\n public static getKMSApplicationsStarted(): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_KMS_RESPONSE_STARTED,\n };\n }\n\n public static getKMSApplicationsSuccess(data: IKMSResponse[]): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_KMS_RESPONSE_SUCCESS,\n data,\n };\n }\n\n public static getKMSApplicationsError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_KMS_RESPONSE_ERROR,\n data: error,\n };\n }\n\n public static riskSummaryDataStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_RISK_SUMMARY_DATA_STARTED,\n data,\n };\n }\n\n public static riskSummaryDataSuccess(data: IRiskSummaryResponse[]): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_RISK_SUMMARY_DATA_SUCCESS,\n data,\n };\n }\n\n public static riskSummaryDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_RISK_SUMMARY_DATA_ERROR,\n data: error,\n };\n }\n\n public static issueSummaryDataStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ISSUE_SUMMARY_DATA_STARTED,\n data,\n };\n }\n\n public static issueSummaryDataSuccess(\n data: IIssueSummaryResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ISSUE_SUMMARY_DATA_SUCCESS,\n data,\n };\n }\n\n public static issueSummaryDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ISSUE_SUMMARY_DATA_ERROR,\n data: error,\n };\n }\n\n public static activeSummaryDataStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ACTIVE_SUMMARY_DATA_STARTED,\n data,\n };\n }\n\n public static activeSummaryDataSuccess(\n data: IActiveSummaryResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ACTIVE_SUMMARY_DATA_SUCCESS,\n data,\n };\n }\n\n public static activeSummaryDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ACTIVE_SUMMARY_DATA_ERROR,\n data: error,\n };\n }\n\n public static transitionsDataStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TRANSITIONS_DATA_STARTED,\n data,\n };\n }\n\n public static transitionsDataSuccess(\n data: ITransitionTableResponseData[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TRANSITIONS_DATA_SUCCESS,\n data,\n };\n }\n\n public static transitionsDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TRANSITIONS_DATA_ERROR,\n data: error,\n };\n }\n //CBO-2901_AI_AUTO_NEW_CODE : Added new action for AppProgressionData, ServerProgressionData and ArchetypeList\n public static getAppProgressionStarted(data: IMigrationPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_APPS_PROGRESSION_DATA_STARTED,\n data,\n };\n }\n public static getAppProgressionSuccess(\n data: IAppsProgressionResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_APPS_PROGRESSION_DATA_SUCCESS,\n data,\n };\n }\n public static getAppProgressionError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_APPS_PROGRESSION_DATA_ERROR,\n data: error,\n };\n }\n\n public static getServersProgressionStarted(\n data: IMigrationPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SERVERS_PROGRESSION_DATA_STARTED,\n data,\n };\n }\n public static getServersProgressionSuccess(\n data: IServersProgressionResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SERVERS_PROGRESSION_DATA_SUCCESS,\n data,\n };\n }\n public static getServersProgressionError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SERVERS_PROGRESSION_DATA_ERROR,\n data: error,\n };\n }\n\n public static getArchetypeListStarted(data: IMigrationPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ARCHETYPE_LIST_STARTED,\n data,\n };\n }\n public static getArchetypeListSuccess(\n data: IMigrationArcheTypeListResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ARCHETYPE_LIST_SUCCESS,\n data,\n };\n }\n public static getArchetypeListError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ARCHETYPE_LIST_ERROR,\n data: error,\n };\n }\n\n //CBO-2901_AI_AUTO_NEW_CODE : Added new actions for AppProgressionMonthlyData, ServerProgressionMonthlyData\n\n public static getAppProgressionMonthlyDataStarted(\n data: IMigrationPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_APPS_PROGRESSION_MONTHLY_DATA_STARTED,\n data,\n };\n }\n public static getAppProgressionMonthlyDataSuccess(\n data: IAppsProgressionMonthlyResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_APPS_PROGRESSION_MONTHLY_DATA_SUCCESS,\n data,\n };\n }\n public static getAppProgressionMonthlyDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_APPS_PROGRESSION_MONTHLY_DATA_ERROR,\n data: error,\n };\n }\n public static getServerProgressionMonthlyDataStarted(\n data: IMigrationPayload,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SERVERS_PROGRESSION_MONTHLY_DATA_STARTED,\n data,\n };\n }\n public static getServerProgressionMonthlyDataSuccess(\n data: IServersProgressionMonthlyResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SERVERS_PROGRESSION_MONTHLY_DATA_SUCCESS,\n data,\n };\n }\n public static getServerProgressionMonthlyDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SERVERS_PROGRESSION_MONTHLY_DATA_ERROR,\n data: error,\n };\n }\n public static getTCOInsightsStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TCO_INSIGHTS_STARTED,\n data,\n };\n }\n public static getTCOInsightsSuccess(data: ITCOInsightsResponse): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TCO_INSIGHTS_SUCCESS,\n data,\n };\n }\n public static getTCOInsightsError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TCO_INSIGHTS_ERROR,\n data: error,\n };\n }\n //COST TRENDS\n public static getCostTrendsStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COST_TRENDS_STARTED,\n data,\n };\n }\n public static getCostTrendsSuccess(data: ICostTrendResponse[]): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COST_TRENDS_SUCCESS,\n data,\n };\n }\n public static getCostTrendsError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COST_TRENDS_ERROR,\n data: error,\n };\n }\n //ALLOCATIONSUMARY\n public static getCostAllocationSummaryStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COST_ALLOCATION_SUMMARY_STARTED,\n data,\n };\n }\n public static getCostAllocationSummarySuccess(\n data: ICostAllocationSummaryResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COST_ALLOCATION_SUMMARY_SUCCESS,\n data,\n };\n }\n public static getCostAllocationSummaryError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_COST_ALLOCATION_SUMMARY_ERROR,\n data: error,\n };\n }\n\n public static getBlockersandCausesStarted(data: IMigrationPayload): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_BLOCKERS_CAUSES_DATA_STARTED,\n data,\n };\n }\n\n public static getBlockersandCausesSuccess(\n data: IBlockersAndCausesResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_BLOCKERS_CAUSES_DATA_SUCCESS,\n data,\n };\n }\n\n public static getBlockersandCausesError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_BLOCKERS_CAUSES_DATA_ERROR,\n data: error,\n };\n }\n\n public static getAllocationTrendStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ALLOCATION_TRENDS_DATA_STARTED,\n data,\n };\n }\n public static getAllocationTrendSuccess(\n data: IAllocationTrendResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ALLOCATION_TRENDS_DATA_SUCCESS,\n data,\n };\n }\n public static getAllocationTrendError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_ALLOCATION_TRENDS_DATA_ERROR,\n data: error,\n };\n }\n public static getCloudCostSummaryCostTrendStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CLOUD_COST_SUMMARY_COST_TREND_STARTED,\n data,\n };\n }\n public static getCloudCostSummaryCostTrendSuccess(\n data: ICloudCostSummaryCostTrendResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CLOUD_COST_SUMMARY_COST_TREND_SUCCESS,\n data,\n };\n }\n public static getCloudCostSummaryCostTrendError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_CLOUD_COST_SUMMARY_COST_TREND_ERROR,\n data: error,\n };\n }\n // CBO-3061_AI_AUTO_ENHANCE_CODE:Created new actions for ServersByUpgrade\n\n public static getServersByUpgradeStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SERVERS_BY_UPGRADE_STARTED,\n data,\n };\n }\n public static getServersByUpgradeSuccess(\n data: IServersByUpgradeResponse[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SERVERS_BY_UPGRADE_SUCCESS,\n data,\n };\n }\n public static getServersByUpgradeError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SERVERS_BY_UPGRADE_ERROR,\n data: error,\n };\n }\n public static getDispositionsByWaveStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DISPOSITIONS_BY_WAVE_STARTED,\n data,\n };\n }\n public static getDispositionsByWaveSuccess(\n data: IDispositionsByWaveData,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DISPOSITIONS_BY_WAVE_SUCCESS,\n data,\n };\n }\n public static getDispositionsByWaveError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DISPOSITIONS_BY_WAVE_ERROR,\n data: error,\n };\n }\n\n //CBO-4166_AI_AUTO_ENHANCE_CODE create new methods for newly created actions GET_DEFECT_AGEING_STARTED', 'GET_DEFECT_AGEING_SUCCESS', 'GET_DEFECT_AGEING_ERROR', 'GET_NUMBER_OF_TEST_CASES_STARTED', 'GET_NUMBER_OF_TEST_CASES_SUCCESS', 'GET_NUMBER_OF_TEST_CASES_ERROR', 'GET_SEVERITY_VS_CREATEDON_STARTED', 'GET_SEVERITY_VS_CREATEDON_SUCCESS', 'GET_SEVERITY_VS_CREATEDON_ERROR', 'GET_TABLE_COUNT_STARTED', 'GET_TABLE_COUNT_SUCCESS', 'GET_TABLE_COUNT_ERROR', 'GET_TEST_RUN_STATUS_STARTED', 'GET_TEST_RUN_STATUS_SUCCESS', 'GET_TEST_RUN_STATUS_ERROR'\n public static getDefectAgeingStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEFECT_AGEING_STARTED,\n data,\n };\n }\n public static getDefectAgeingSuccess(data: IDefectAgeingResponse): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEFECT_AGEING_SUCCESS,\n data,\n };\n }\n public static getDefectAgeingError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_DEFECT_AGEING_ERROR,\n data: error,\n };\n }\n\n public static getNumberOfTestCasesStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_NUMBER_OF_TEST_CASES_STARTED,\n data,\n };\n }\n public static getNumberOfTestCasesSuccess(\n data: INumberOfTestCasesResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_NUMBER_OF_TEST_CASES_SUCCESS,\n data,\n };\n }\n public static getNumberOfTestCasesError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_NUMBER_OF_TEST_CASES_ERROR,\n data: error,\n };\n }\n\n public static getSeverityVsCreatedOnStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SEVERITY_VS_CREATEDON_STARTED,\n data,\n };\n }\n public static getSeverityVsCreatedOnSuccess(\n data: ISeverityVsCreatedOnResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SEVERITY_VS_CREATEDON_SUCCESS,\n data,\n };\n }\n public static getSeverityVsCreatedOnError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_SEVERITY_VS_CREATEDON_ERROR,\n data: error,\n };\n }\n\n public static getTableCountStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TABLE_COUNT_STARTED,\n data,\n };\n }\n public static getTableCountSuccess(data: ITableCountResponse): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TABLE_COUNT_SUCCESS,\n data,\n };\n }\n public static getTableCountError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TABLE_COUNT_ERROR,\n data: error,\n };\n }\n\n public static getTestRunStatusStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TEST_RUN_STATUS_STARTED,\n data,\n };\n }\n public static getTestRunStatusSuccess(\n data: ITestRunStatusResponse,\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TEST_RUN_STATUS_SUCCESS,\n data,\n };\n }\n public static getTestRunStatusError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TEST_RUN_STATUS_ERROR,\n data: error,\n };\n }\n\n public static getTaxonomyEditorDataStarted(data: string): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TAXONOMY_EDITOR_DATA_STARTED,\n data,\n };\n }\n public static getTaxonomyEditorDataSuccess(\n data: ITaxonomyEditorData[],\n ): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TAXONOMY_EDITOR_DATA_SUCCESS,\n data,\n };\n }\n public static getTaxonomyEditorDataError(error: Error): EngagementSummaryGraphAction {\n return {\n type: EngagementSummaryGraphActionTypes.GET_TAXONOMY_EDITOR_DATA_ERROR,\n data: error,\n };\n }\n}\n","import {\n IJourneyCapabilitiesData,\n IJourneyCapabilitiesResponse,\n} from '../../../models/cbo/EngagementModels';\nimport {\n IJourneyBuilderPayload,\n IJourneyList,\n IJourneyMarketplacePayload,\n IMarketplaceAssets,\n IPredefinedJourneyListMapping,\n ISubmitStatuspayload,\n IJourneyCapabilityListPayload,\n IRecommendedAssetsResponse,\n IJourneySaveResponse,\n IJourneyMapping,\n} from '../../../models/cbo/JourneyBuilderModel';\nimport { IStoreAction } from '../../StoreHelper';\n\nexport enum JourneyBuilderActionTypes {\n GET_JOURNEY_LIST_DATA_STARTED = 'GET_JOURNEY_LIST_DATA_STARTED',\n GET_JOURNEY_LIST_DATA_SUCCESS = 'GET_JOURNEY_LIST_DATA_SUCCESS',\n GET_JOURNEY_LIST_DATA_ERROR = 'GET_JOURNEY_LIST_DATA_ERROR',\n GET_PREDEFINED_JOURNEY_LIST_STARTED = 'GET_PREDEFINED_JOURNEY_LIST_STARTED',\n GET_PREDEFINED_JOURNEY_LIST_SUCCESS = 'GET_PREDEFINED_JOURNEY_LIST_SUCCESS',\n GET_PREDEFINED_JOURNEY_LIST_ERROR = 'GET_PREDEFINED_JOURNEY_LIST_ERROR',\n GET_CAPABILITES_FOR_PREDEFINED_JOURNEY_STARTED = 'GET_CAPABILITES_FOR_PREDEFINED_JOURNEY_STARTED',\n GET_CAPABILITES_FOR_PREDEFINED_JOURNEY_SUCCESS = 'GET_CAPABILITES_FOR_PREDEFINED_JOURNEY_SUCCESS',\n GET_CAPABILITES_FOR_PREDEFINED_JOURNEY_ERROR = 'GET_CAPABILITES_FOR_PREDEFINED_JOURNEY_ERROR',\n GET_JOURNEY_MANDATORY_ASSETS_STARTED = ' GET_JOURNEY_MANDATORY_ASSETS_STARTED',\n GET_JOURNEY_MANDATORY_ASSETS_SUCCESS = ' GET_JOURNEY_MANDATORY_ASSETS_SUCCESS',\n GET_JOURNEY_MANDATORY_ASSETS_ERROR = ' GET_JOURNEY_MANDATORY_ASSETS_ERROR',\n POST_JOURNEY_BUILDER_SAVE_STARTED = 'POST_JOURNEY_BUILDER_SAVE_STARTED',\n POST_JOURNEY_BUILDER_SAVE_SUCCESS = 'POST_JOURNEY_BUILDER_SAVE_ERROR',\n POST_JOURNEY_BUILDER_SAVE_ERROR = 'POST_JOURNEY_BUILDER_SAVE_ERROR',\n PATCH_JOURNEY_BUILDER_UPDATE_STARTED = 'PATCH_JOURNEY_BUILDER_UPDATE_STARTED',\n PATCH_JOURNEY_BUILDER_UPDATE_SUCCESS = 'PATCH_JOURNEY_BUILDER_UPDATE_ERROR',\n PATCH_JOURNEY_BUILDER_UPDATE_ERROR = 'PATCH_JOURNEY_BUILDER_UPDATE_ERROR',\n DELETE_DOCUMENT_DATA_STARTED = 'DELETE_DOCUMENT_DATA_STARTED',\n DELETE_DOCUMENT_DATA_SUCCESS = 'DELETE_DOCUMENT_DATA_SUCCESS',\n DELETE_DOCUMENT_DATA_ERROR = 'DELETE_DOCUMENT_DATA_ERROR',\n POST_SUBMIT_STATUS_STARTED = 'POST_SUBMIT_STATUS_STARTED',\n POST_SUBMIT_STATUS_SUCCESS = 'POST_SUBMIT_STATUS_SUCCESS',\n POST_SUBMIT_STATUS_ERROR = 'POST_SUBMIT_STATUS_ERROR',\n GET_JOURNEY_RECOMMENDED_ASSETS_STARTED = 'GET_JOURNEY_RECOMMENDED_ASSETS_STARTED',\n GET_JOURNEY_RECOMMENDED_ASSETS_SUCCESS = 'GET_JOURNEY_RECOMMENDED_ASSETS_SUCCESS',\n GET_JOURNEY_RECOMMENDED_ASSETS_ERROR = 'GET_JOURNEY_RECOMMENDED_ASSETS_ERROR',\n\n GET_BUSINESS_OBJECTIVES__STARTED = 'GET_BUSINESS_OBJECTIVES__STARTED',\n GET_BUSINESS_OBJECTIVES_SUCCESS = 'GET_BUSINESS_OBJECTIVES__SUCCESS',\n GET_BUSINESS_OBJECTIVES_ERROR = 'GET_BUSINESS_OBJECTIVES__ERROR',\n\n RESET_SAVE_JOURNEY_DATA = 'RESET_SAVE_JOURNEY_DATA',\n GET_JOURNEY_MAPPING_STARTED = 'GET_JOURNEY_MAPPING_STARTED',\n GET_JOURNEY_MAPPING_SUCCESS = 'GET_JOURNEY_MAPPING_SUCCESS',\n GET_JOURNEY_MAPPING_ERROR = 'GET_JOURNEY_MAPPING_LIST_ERROR',\n DELETE_JOURNEY_MAPPING_STARTED = 'DELETE_JOURNEY_MAPPING_STARTED',\n DELETE_JOURNEY_MAPPING_SUCCESS = 'DELETE_JOURNEY_MAPPING_SUCCESS',\n DELETE_JOURNEY_MAPPING_ERROR = 'DELETE_JOURNEY_MAPPING_LIST_ERROR',\n\n RESET_JOURNEY_BUILDER_DATA = 'RESET_JOURNEY_BUILDER_DATA',\n}\n\nexport type JourneyBuilderActionPayload =\n | Error\n | null\n | string\n | string[]\n | IJourneyList[]\n | IPredefinedJourneyListMapping[]\n | IJourneyCapabilitiesData[]\n | IJourneyCapabilitiesResponse\n | IJourneyBuilderPayload\n | ISubmitStatuspayload\n | IJourneyMarketplacePayload\n | IMarketplaceAssets[]\n | IJourneyCapabilityListPayload\n | IRecommendedAssetsResponse\n | IJourneySaveResponse\n | IJourneyMapping;\n\nexport type JourneyBuilderAction = IStoreAction<\n JourneyBuilderActionTypes,\n JourneyBuilderActionPayload\n>;\n\nexport class JourneyBuilderActions {\n public static getJourneyListStart(): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_LIST_DATA_STARTED,\n };\n }\n public static getJourneyListSuccess(data: IJourneyList[]): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_LIST_DATA_SUCCESS,\n data,\n };\n }\n public static getJourneyListError(data: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_LIST_DATA_ERROR,\n data,\n };\n }\n\n public static getCapabilitiesForPredefinedJourneyStart(\n data: IJourneyCapabilityListPayload,\n ): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_CAPABILITES_FOR_PREDEFINED_JOURNEY_STARTED,\n data,\n };\n }\n public static getCapabilitiesForPredefinedJourneySuccess(\n data: IJourneyCapabilitiesResponse,\n ): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_CAPABILITES_FOR_PREDEFINED_JOURNEY_SUCCESS,\n data,\n };\n }\n public static getCapabilitiesForPredefinedJourneyError(data: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_CAPABILITES_FOR_PREDEFINED_JOURNEY_ERROR,\n data,\n };\n }\n\n public static getPredefinedJourneyListStart(): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_PREDEFINED_JOURNEY_LIST_STARTED,\n };\n }\n public static getPredefinedJourneyListSuccess(\n data: IPredefinedJourneyListMapping[],\n ): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_PREDEFINED_JOURNEY_LIST_SUCCESS,\n data,\n };\n }\n public static getPredefinedJourneyListError(data: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_PREDEFINED_JOURNEY_LIST_ERROR,\n data,\n };\n }\n\n public static getJourneyMappingtError(data: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_MAPPING_ERROR,\n data,\n };\n }\n\n public static getJourneyMappingSuccess(data: IJourneyMapping): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_MAPPING_SUCCESS,\n data,\n };\n }\n\n public static getJourneyMappingStart(data: string): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_MAPPING_STARTED,\n data,\n };\n }\n\n //Actions related to Marketplace Asset GET API call\n public static getJourneyMandatoryAssetsStart(\n data: IJourneyMarketplacePayload,\n ): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_MANDATORY_ASSETS_STARTED,\n data,\n };\n }\n public static getJourneyMandatoryAssetsSuccess(data: IMarketplaceAssets[]): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_MANDATORY_ASSETS_SUCCESS,\n data,\n };\n }\n public static getJourneyMandatoryAssetsError(data: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_MANDATORY_ASSETS_ERROR,\n data,\n };\n }\n public static getJourneyRecommendedAssetsStart(\n data: IJourneyMarketplacePayload,\n ): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_RECOMMENDED_ASSETS_STARTED,\n data,\n };\n }\n public static getJourneyRecommendedAssetsSuccess(\n data: IRecommendedAssetsResponse,\n ): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_RECOMMENDED_ASSETS_SUCCESS,\n data,\n };\n }\n public static getJourneyRecommendedAssetsError(data: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_JOURNEY_RECOMMENDED_ASSETS_ERROR,\n data,\n };\n }\n\n public static postJourneyBuilderSaveStart(data: IJourneyBuilderPayload): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.POST_JOURNEY_BUILDER_SAVE_STARTED,\n data,\n };\n }\n public static postJourneyBuilderSaveSuccess(data: IJourneySaveResponse): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.POST_JOURNEY_BUILDER_SAVE_SUCCESS,\n data,\n };\n }\n public static postJourneyBuilderSaveError(error: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.POST_JOURNEY_BUILDER_SAVE_ERROR,\n data: error,\n };\n }\n\n public static patchJourneyBuilderUpdateStart(data: IJourneyBuilderPayload): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.PATCH_JOURNEY_BUILDER_UPDATE_STARTED,\n data,\n };\n }\n public static patchJourneyBuilderUpdateSuccess(data: IJourneySaveResponse): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.PATCH_JOURNEY_BUILDER_UPDATE_SUCCESS,\n data,\n };\n }\n public static patchJourneyBuilderUpdateError(error: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.PATCH_JOURNEY_BUILDER_UPDATE_ERROR,\n data: error,\n };\n }\n\n public static resetJourneySaveData(): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.RESET_SAVE_JOURNEY_DATA,\n };\n }\n\n public static deleteDocumentDataStart(data: string): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.DELETE_DOCUMENT_DATA_STARTED,\n data,\n };\n }\n public static deleteDocumentDataSuccess(): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.DELETE_DOCUMENT_DATA_SUCCESS,\n };\n }\n public static deleteDocumentDataError(data: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.DELETE_DOCUMENT_DATA_ERROR,\n data,\n };\n }\n\n public static PostSubmitStatusStart(data: ISubmitStatuspayload): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.POST_SUBMIT_STATUS_STARTED,\n data,\n };\n }\n public static PostSubmitStatusSuccess(): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.POST_SUBMIT_STATUS_SUCCESS,\n };\n }\n public static PostSubmitStatusError(error: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.POST_SUBMIT_STATUS_ERROR,\n data: error,\n };\n }\n\n public static getBusinessObjectivesStart(): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_BUSINESS_OBJECTIVES__STARTED,\n };\n }\n public static getBusinessObjectivesSuccess(data: string[]): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_BUSINESS_OBJECTIVES_SUCCESS,\n data,\n };\n }\n public static getBusinessObjectivesError(data: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.GET_BUSINESS_OBJECTIVES_ERROR,\n data,\n };\n }\n public static deleteJourneyError(data: Error): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.DELETE_JOURNEY_MAPPING_ERROR,\n data,\n };\n }\n\n public static deleteJourneySuccess(data: IJourneySaveResponse): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.DELETE_JOURNEY_MAPPING_SUCCESS,\n data,\n };\n }\n\n public static deleteJourneyStart(data: string): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.DELETE_JOURNEY_MAPPING_STARTED,\n data,\n };\n }\n\n public static resetJourneyBuilderData(): JourneyBuilderAction {\n return {\n type: JourneyBuilderActionTypes.RESET_JOURNEY_BUILDER_DATA,\n };\n }\n}\n","import { IStoreAction } from '../../StoreHelper';\n\nexport enum RBACActionTypes {\n GET_RBAC_DATA_STARTED = 'GET_RBAC_DATA_STARTED',\n GET_RBAC_DATA_SUCCESS = 'GET_RBAC_DATA_SUCCESS',\n GET_RBAC_DATA_ERROR = 'GET_RBAC_DATA_ERROR',\n}\nexport type RBACActionPayload =\n | Error\n | null\n | string[]\n\nexport type RBACAction = IStoreAction;\n export class RBACActions {\n public static getRBACDataStart(data: string[] ): RBACAction {\n return {\n type: RBACActionTypes.GET_RBAC_DATA_STARTED,\n data\n };\n }\n public static getRBACDataSuccess(data: string[]): RBACAction {\n return {\n type: RBACActionTypes.GET_RBAC_DATA_SUCCESS,\n data,\n };\n }\n public static getRBACDataError(error: Error): RBACAction {\n return {\n type: RBACActionTypes.GET_RBAC_DATA_ERROR,\n data: error,\n };\n }\n }\n","import { IRefreshTokenResponse } from '../../state/cbo/RefreshTokenState';\nimport { IStoreAction } from '../../StoreHelper';\n\nexport enum RefreshTokenActionTypes {\n REFRESH_TOKEN_STARTED = 'REFRESH_TOKEN_STARTED',\n REFRESH_TOKEN_SUCCESS = 'REFRESH_TOKEN_SUCCESS',\n REFRESH_TOKEN_ERROR = 'REFRESH_TOKEN_ERROR',\n}\nexport type RefreshTokenActionPayload =\n | Error\n | null\n | IRefreshTokenResponse\n | string\n\nexport type RefreshTokenAction = IStoreAction;\n export class RefreshTokenActions {\n public static refreshTokenStart(data: string ): RefreshTokenAction {\n return {\n type: RefreshTokenActionTypes.REFRESH_TOKEN_STARTED,\n data\n };\n }\n public static refreshTokenSuccess(data: IRefreshTokenResponse): RefreshTokenAction {\n return {\n type: RefreshTokenActionTypes.REFRESH_TOKEN_SUCCESS,\n data,\n };\n }\n public static refreshTokenError(error: Error): RefreshTokenAction {\n return {\n type: RefreshTokenActionTypes.REFRESH_TOKEN_ERROR,\n data: error,\n };\n }\n }\n","/**\n * This file contains action creators for the SmartStart feature in the application.\n * These actions are used to interact with the SmartStart-related data in the Redux store.\n * CBO-4362_AI_AUTO_NEW_CODE\n *\n * Example usage:\n *\n * import { SmartStartActions } from './SmartStartActions';\n *\n * dispatch(SmartStartActions.getSmartStartDataStart(payload));\n */\n\nimport {\n IMarketplaceSystemTags,\n ISearchAndFilterAssetsPayload,\n} from '../../../models/cbo/CboMarketplaceSearchModels';\nimport {\n IAllSmartStartDataResponse,\n IAddSmartStartDataResponse,\n IAssetData,\n ISearchFilterSmartStartResponse,\n ISmartStartMOF,\n ISmartStartMOFDetailsResponse,\n ISmartStartDeleteResponse,\n} from '../../../models/cbo/SmartStartModel';\nimport { IStoreAction } from '../../StoreHelper';\n\n// Action Types\nexport enum SmartStartActionTypes {\n GET_SMART_START_DATA_START = 'GET_SMART_START_DATA_START',\n GET_SMART_START_DATA_SUCCESS = 'GET_SMART_START_DATA_SUCCESS',\n GET_SMART_START_DATA_ERROR = 'GET_SMART_START_DATA_ERROR',\n\n GET_ALL_SMART_START_DATA_START = 'GET_ALL_SMART_START_DATA_START',\n GET_ALL_SMART_START_DATA_SUCCESS = 'GET_ALL_SMART_START_DATA_SUCCESS',\n GET_ALL_SMART_START_DATA_ERROR = 'GET_ALL_SMART_START_DATA_ERROR',\n GET_MOF_MAPPING_DETAILS_STARTED = 'GET_MOF_MAPPING_DETAILS_STARTED',\n GET_MOF_MAPPING_DETAILS_SUCCESS = 'GET_MOF_MAPPING_DETAILS_SUCCESS',\n GET_MOF_MAPPING_DETAILS_ERROR = 'GET_MOF_MAPPING_DETAILS_ERROR',\n\n ADD_SMART_START_DATA_STARTED = 'ADD_SMART_START_DATA_STARTED',\n ADD_SMART_START_DATA_SUCCESS = 'ADD_SMART_START_DATA_SUCCESS',\n ADD_SMART_START_DATA_ERROR = 'ADD_SMART_START_DATA_ERROR',\n\n DELETE_SMART_START_DATA_STARTED = 'DELETE_SMART_START_DATA_STARTED',\n DELETE_SMART_START_DATA_SUCCESS = 'DELETE_SMART_START_DATA_SUCCESS',\n DELETE_SMART_START_DATA_ERROR = 'DELETE_SMART_START_DATA_ERROR',\n\n ADD_SMART_START_MOF_MAPPING_STARTED = 'ADD_SMART_START_MOF_MAPPING_STARTED',\n ADD_SMART_START_MOF_MAPPING_SUCCESS = 'ADD_SMART_START_MOF_MAPPING_SUCCESS',\n ADD_SMART_START_MOF_MAPPING_ERROR = 'ADD_SMART_START_MOF_MAPPING_ERROR',\n\n GET_SMART_START_CATEGORIES_STARTED = 'GET_SMART_START_CATEGORIES_STARTED',\n GET_SMART_START_CATEGORIES_SUCCESS = 'GET_SMART_START_CATEGORIES_SUCCESS',\n GET_SMART_START_CATEGORIES_ERROR = 'GET_SMART_START_CATEGORIES_ERROR',\n\n SET_SELECTED_SMART_START_ID = 'SET_SELECTED_SMART_START_ID',\n\n GET_SMART_START_MOF_TAGS_STARTED = 'GET_SMART_START_MOF_TAGS_STARTED',\n GET_SMART_START_MOF_TAGS_SUCCESS = 'GET_SMART_START_MOF_TAGS_SUCCESS',\n GET_SMART_START_MOF_TAGS_ERROR = 'GET_SMART_START_MOF_TAGS_ERROR',\n\n RESET_SMART_START_DATA = 'RESET_SMART_START_DATA',\n}\n\nexport type SmartStartPayload =\n | string\n | Error\n | string[]\n | ISearchAndFilterAssetsPayload\n | ISearchFilterSmartStartResponse\n | IAllSmartStartDataResponse\n | ISmartStartMOFDetailsResponse\n | ISmartStartDeleteResponse\n | IAssetData\n | ISmartStartMOF\n | IMarketplaceSystemTags;\n\nexport type SmartStartAction = IStoreAction;\n\nexport class SmartStartActions {\n /**\n * Initiates the process to get SmartStart data.\n * CBO-4362_AI_AUTO_NEW_CODE\n * @param data - The payload containing search and filter criteria.\n * @returns The action object.\n */\n public static getSmartStartDataStart(data: ISearchAndFilterAssetsPayload): SmartStartAction {\n return {\n type: SmartStartActionTypes.GET_SMART_START_DATA_START,\n data,\n };\n }\n\n /**\n * Handles the success of getting SmartStart data.\n * CBO-4362_AI_AUTO_NEW_CODE\n * @param data - The response data.\n * @returns The action object.\n */\n public static getSmartStartDataSuccess(data: ISearchFilterSmartStartResponse): SmartStartAction {\n return {\n type: SmartStartActionTypes.GET_SMART_START_DATA_SUCCESS,\n data,\n };\n }\n\n /**\n * Handles the error of getting SmartStart data.\n * CBO-4362_AI_AUTO_NEW_CODE\n * @param error - The error object.\n * @returns The action object.\n */\n public static getSmartStartDataError(error: Error): SmartStartAction {\n return {\n type: SmartStartActionTypes.GET_SMART_START_DATA_ERROR,\n data: error,\n };\n }\n\n /**\n * Initiates the process to get all SmartStart data.\n * CBO-4367_AI_AUTO_NEW_CODE\n * @returns The action object.\n */\n public static getAllSmartStartDataStart(): SmartStartAction {\n return {\n type: SmartStartActionTypes.GET_ALL_SMART_START_DATA_START,\n };\n }\n\n /**\n * Handles the success of getting all SmartStart data.\n * CBO-4367_AI_AUTO_NEW_CODE\n * @param data - The response data.\n * @returns The action object.\n */\n public static getAllSmartStartDataSuccess(data: IAllSmartStartDataResponse): SmartStartAction {\n return {\n type: SmartStartActionTypes.GET_ALL_SMART_START_DATA_SUCCESS,\n data,\n };\n }\n\n /**\n * Handles the error of getting all SmartStart data.\n * CBO-4367_AI_AUTO_NEW_CODE\n * @param error - The error object.\n * @returns The action object.\n */\n public static getAllSmartStartDataError(error: Error): SmartStartAction {\n return {\n type: SmartStartActionTypes.GET_ALL_SMART_START_DATA_ERROR,\n data: error,\n };\n }\n\n /**\n * Initiates the process to get SmartStart MOF mapping details.\n * @param data - The identifier for the MOF mapping details.\n * @returns The action object.\n */\n public static getSmartStartMOFMappingDetailsListStarted(data: string) {\n return {\n type: SmartStartActionTypes.GET_MOF_MAPPING_DETAILS_STARTED,\n data,\n };\n }\n\n /**\n * Handles the success of getting SmartStart MOF mapping details.\n * @param data - The response data.\n * @returns The action object.\n */\n public static getSmartStartMOFDetailsListSuccess(data: ISmartStartMOFDetailsResponse) {\n return {\n type: SmartStartActionTypes.GET_MOF_MAPPING_DETAILS_SUCCESS,\n data,\n };\n }\n\n /**\n * Handles the error of getting SmartStart MOF mapping details.\n * @param error - The error object.\n * @returns The action object.\n */\n public static getSmartStartMOFDetailsListError(error: Error) {\n return {\n type: SmartStartActionTypes.GET_MOF_MAPPING_DETAILS_ERROR,\n data: error,\n };\n }\n\n /**\n * Initiates the process to add SmartStart data.\n * @param data - The asset data to be added.\n * @returns The action object.\n */\n public static addSmartStartDataStarted(data: IAssetData) {\n return {\n type: SmartStartActionTypes.ADD_SMART_START_DATA_STARTED,\n data,\n };\n }\n\n /**\n * Handles the success of adding SmartStart data.\n * @param data - The response data.\n * @returns The action object.\n */\n public static addSmartStartDataSuccess(data: IAddSmartStartDataResponse) {\n return {\n type: SmartStartActionTypes.ADD_SMART_START_DATA_SUCCESS,\n data,\n };\n }\n\n /**\n * Handles the error of adding SmartStart data.\n * @param error - The error object.\n * @returns The action object.\n */\n public static addSmartStartDataError(error: Error) {\n return {\n type: SmartStartActionTypes.ADD_SMART_START_DATA_ERROR,\n data: error,\n };\n }\n\n /**\n * Initiates the process to delete SmartStart data.\n * CBO-4407_AI_AUTO_NEW_CODE\n * @param data - The identifier for the data to be deleted.\n * @returns The action object.\n */\n public static deleteSmartStartDataStarted(data: string) {\n return {\n type: SmartStartActionTypes.DELETE_SMART_START_DATA_STARTED,\n data,\n };\n }\n\n /**\n * Handles the success of deleting SmartStart data.\n * CBO-4407_AI_AUTO_NEW_CODE\n * @returns The action object.\n */\n public static deleteSmartStartDataSuccess(data: ISmartStartDeleteResponse) {\n return {\n type: SmartStartActionTypes.DELETE_SMART_START_DATA_SUCCESS,\n data,\n };\n }\n\n /**\n * Handles the error of deleting SmartStart data.\n * CBO-4407_AI_AUTO_NEW_CODE\n * @param error - The error object.\n * @returns The action object.\n */\n public static deleteSmartStartDataError(error: Error) {\n return {\n type: SmartStartActionTypes.DELETE_SMART_START_DATA_ERROR,\n data: error,\n };\n }\n\n /**\n * Initiates the process to add MOF mapping.\n * @param data - The MOF data to be added.\n * @returns The action object.\n */\n public static addMOFMappingStarted(data: ISmartStartMOF) {\n return {\n type: SmartStartActionTypes.ADD_SMART_START_MOF_MAPPING_STARTED,\n data,\n };\n }\n\n /**\n * Handles the success of adding MOF mapping.\n * @returns The action object.\n */\n public static addMOFMappingSuccess() {\n return {\n type: SmartStartActionTypes.ADD_SMART_START_MOF_MAPPING_SUCCESS,\n };\n }\n\n /**\n * Handles the error of adding MOF mapping.\n * @param error - The error object.\n * @returns The action object.\n */\n public static addMOFMappingError(error: Error) {\n return {\n type: SmartStartActionTypes.ADD_SMART_START_MOF_MAPPING_ERROR,\n data: error,\n };\n }\n\n /**\n * Initiates the process to get SmartStart categories.\n * @returns The action object.\n */\n public static getSmartStartCategoriesStarted() {\n return {\n type: SmartStartActionTypes.GET_SMART_START_CATEGORIES_STARTED,\n };\n }\n\n /**\n * Handles the success of getting SmartStart categories.\n * @param data - The list of categories.\n * @returns The action object.\n */\n public static getSmartStartCategoriesSuccess(data: string[]) {\n return {\n type: SmartStartActionTypes.GET_SMART_START_CATEGORIES_SUCCESS,\n data,\n };\n }\n\n /**\n * Handles the error of getting SmartStart categories.\n * @param error - The error object.\n * @returns The action object.\n */\n public static getSmartStartCategoriesError(error: Error) {\n return {\n type: SmartStartActionTypes.GET_SMART_START_CATEGORIES_ERROR,\n data: error,\n };\n }\n\n /**\n * Initiates the process to get SmartStart MOF tags.\n * @returns The action object.\n */\n public static getSmartStartMOFTagsStarted() {\n return {\n type: SmartStartActionTypes.GET_SMART_START_MOF_TAGS_STARTED,\n };\n }\n\n /**\n * Handles the success of getting SmartStart MOF tags.\n * @param data - The MOF tags data.\n * @returns The action object.\n */\n public static getSmartStartMOFTagsSuccess(data: IMarketplaceSystemTags) {\n return {\n type: SmartStartActionTypes.GET_SMART_START_MOF_TAGS_SUCCESS,\n data,\n };\n }\n\n /**\n * Handles the error of getting SmartStart MOF tags.\n * @param error - The error object.\n * @returns The action object.\n */\n public static getSmartStartMOFTagsError(error: Error) {\n return {\n type: SmartStartActionTypes.GET_SMART_START_MOF_TAGS_ERROR,\n data: error,\n };\n }\n\n /**\n * Sets the selected SmartStart ID.\n * @param data - The selected SmartStart ID.\n * @returns The action object.\n */\n public static setSelectedSmartStartId(data: String) {\n return {\n type: SmartStartActionTypes.SET_SELECTED_SMART_START_ID,\n data,\n };\n }\n\n /**\n * Resets the SmartStart data.\n * @returns The action object.\n */\n public static resetSmartStartData() {\n return {\n type: SmartStartActionTypes.RESET_SMART_START_DATA,\n };\n }\n}\n","import { IEngagementResponse } from '../../../models/cbo/ClientEngagementManagementModel';\nimport { IEngagementListForAdminRequestPayload } from '../../../models/cbo/EngagementModels';\nimport {\n ICreateUserRequestBody,\n ICboUserManagementObject,\n IClientListMapping,\n IEditUserRequestBody,\n IShowUserClientPayload,\n} from '../../../models/cbo/UserManagementModel';\n\nimport { IStoreAction } from '../../StoreHelper';\n\nexport enum UserManagementActionTypes {\n GET_USER_LIST_STARTED = 'GET_USER_LIST_STARTED',\n GET_USER_LIST_SUCCESS = 'GET_USER_LIST_SUCCESS',\n GET_USER_LIST_ERROR = 'GET_USER_LIST_ERROR',\n GET_CLIENT_ENG_LIST_STARTED = 'GET_CLIENT_ENG_LIST_STARTED',\n GET_CLIENT_ENG_LIST_SUCCESS = 'GET_CLIENT_ENG_LIST_SUCCESS',\n GET_CLIENT_ENG_LIST_ERROR = 'GET_CLIENT_ENG_LIST_ERROR',\n ADD_USER_DATA_STARTED = 'ADD_USER_DATA_STARTED',\n ADD_USER_DATA_SUCCESS = 'ADD_USER_DATA_SUCCESS',\n ADD_USER_DATA_ERROR = 'ADD_USER_DATA_ERROR',\n EDIT_USER_STATUS_STARTED = 'EDIT_USER_STATUS_STARTED',\n EDIT_USER_STATUS_SUCCESS = 'EDIT_USER_STATUS_SUCCESS',\n EDIT_USER_STATUS_ERROR = 'EDIT_USER_STATUS_ERROR',\n UPDATE_USER_DATA_STARTED = 'UPDATE_USER_DATA_STARTED',\n UPDATE_USER_DATA_SUCCESS = 'UPDATE_USER_DATA_SUCCESS',\n UPDATE_USER_DATA_ERROR = 'UPDATE_USER_DATA_ERROR',\n GET_ROLE_METADATA_STARTED = 'GET_ROLE_METADATA_STARTED',\n GET_ROLE_METADATA_SUCCESS = 'GET_ROLE_METADATA_SUCCESS',\n GET_ROLE_METADATA_ERROR = 'GET_ROLE_METADATA_ERROR',\n GET_CLIENT_USER_STARTED = 'GET_CLIENT_USER_STARTED',\n GET_CLIENT_USER_SUCCESS = 'GET_CLIENT_USER_SUCCESS',\n GET_CLIENT_USER_ERROR = 'GET_CLIENT_USER_ERROR',\n\n SHOW_USER_CLIENT_STARTED = 'SHOW_USER_CLIENT_STARTED',\n SHOW_USER_CLIENT_SUCCESS = 'SHOW_USER_CLIENT_SUCCESS',\n SHOW_USER_CLIENT_ERROR = 'SHOW_USER_CLIENT_ERROR',\n}\n\nexport type UserManagementActionPayload =\n | Error\n | null\n | string\n | string[]\n | ICboUserManagementObject\n | ICboUserManagementObject[]\n | ICreateUserRequestBody\n | IClientListMapping[]\n | IEditUserRequestBody\n | IEngagementResponse[]\n | IEngagementResponse\n | IEngagementListForAdminRequestPayload\n | IShowUserClientPayload;\n\nexport type UserManagementAction = IStoreAction<\n UserManagementActionTypes,\n UserManagementActionPayload\n>;\n\nexport class UserManagementActions {\n public static getUserListStart(\n data: IEngagementListForAdminRequestPayload,\n ): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_USER_LIST_STARTED,\n data,\n };\n }\n public static getUserListSuccess(data: ICboUserManagementObject): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_USER_LIST_SUCCESS,\n data,\n };\n }\n public static getUserListError(error: Error): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_USER_LIST_ERROR,\n data: error,\n };\n }\n public static getClientEngListStart(): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_CLIENT_ENG_LIST_STARTED,\n };\n }\n public static getClientEngListSuccess(data: IClientListMapping[]): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_CLIENT_ENG_LIST_SUCCESS,\n data,\n };\n }\n public static getClientEngListError(error: Error): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_CLIENT_ENG_LIST_ERROR,\n data: error,\n };\n }\n\n public static addUserStart(data: ICreateUserRequestBody): UserManagementAction {\n return {\n type: UserManagementActionTypes.ADD_USER_DATA_STARTED,\n data,\n };\n }\n public static addUserSuccess(): UserManagementAction {\n return {\n type: UserManagementActionTypes.ADD_USER_DATA_SUCCESS,\n };\n }\n public static addUserError(error: Error): UserManagementAction {\n return {\n type: UserManagementActionTypes.ADD_USER_DATA_ERROR,\n data: error,\n };\n }\n public static editUserStatusStart(data: ICboUserManagementObject): UserManagementAction {\n return {\n type: UserManagementActionTypes.EDIT_USER_STATUS_STARTED,\n data,\n };\n }\n public static editUserStatusSuccess(): UserManagementAction {\n return {\n type: UserManagementActionTypes.EDIT_USER_STATUS_SUCCESS,\n };\n }\n public static editUserStatusError(error: Error): UserManagementAction {\n return {\n type: UserManagementActionTypes.EDIT_USER_STATUS_ERROR,\n data: error,\n };\n }\n public static editUserStart(data: IEditUserRequestBody): UserManagementAction {\n return {\n type: UserManagementActionTypes.UPDATE_USER_DATA_STARTED,\n data,\n };\n }\n public static editUserSuccess(): UserManagementAction {\n return {\n type: UserManagementActionTypes.UPDATE_USER_DATA_SUCCESS,\n };\n }\n public static editUserError(error: Error): UserManagementAction {\n return {\n type: UserManagementActionTypes.UPDATE_USER_DATA_ERROR,\n data: error,\n };\n }\n public static getRoleMetaDataStart(): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_ROLE_METADATA_STARTED,\n };\n }\n public static getRoleMetaDataSuccess(data: string[]): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_ROLE_METADATA_SUCCESS,\n data,\n };\n }\n public static getRoleMetaDataError(error: Error): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_ROLE_METADATA_ERROR,\n data: error,\n };\n }\n\n public static getClientUserStart(data: string): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_CLIENT_USER_STARTED,\n data,\n };\n }\n public static getClientUserSuccess(data: IEngagementResponse[]): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_CLIENT_USER_SUCCESS,\n data,\n };\n }\n public static getClientUserError(error: Error): UserManagementAction {\n return {\n type: UserManagementActionTypes.GET_CLIENT_USER_ERROR,\n data: error,\n };\n }\n // @CBO-2834_AI_AUTO_NEW_CODE:generated saction for show user's client's start, success and error\n public static showUserClientStart(data: IShowUserClientPayload): UserManagementAction {\n return {\n type: UserManagementActionTypes.SHOW_USER_CLIENT_STARTED,\n data,\n };\n }\n public static showUserClientSuccess(): UserManagementAction {\n return {\n type: UserManagementActionTypes.SHOW_USER_CLIENT_SUCCESS,\n };\n }\n public static showUserClientError(error: Error): UserManagementAction {\n return {\n type: UserManagementActionTypes.SHOW_USER_CLIENT_ERROR,\n data: error,\n };\n }\n}\n","export var KEY_PREFIX = 'persist:';\nexport var FLUSH = 'persist/FLUSH';\nexport var REHYDRATE = 'persist/REHYDRATE';\nexport var PAUSE = 'persist/PAUSE';\nexport var PERSIST = 'persist/PERSIST';\nexport var PURGE = 'persist/PURGE';\nexport var REGISTER = 'persist/REGISTER';\nexport var DEFAULT_VERSION = -1;","function _typeof(obj) { 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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel1: \n - merges 1 level of substate\n - skips substate if already modified\n*/\nexport default function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n } // otherwise hard set the new value\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}","import { KEY_PREFIX, REHYDRATE } from './constants';\n// @TODO remove once flow < 0.63 support is no longer required.\nexport default function createPersistoid(config) {\n // defaults\n var blacklist = config.blacklist || null;\n var whitelist = config.whitelist || null;\n var transforms = config.transforms || [];\n var throttle = config.throttle || 0;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var serialize;\n\n if (config.serialize === false) {\n serialize = function serialize(x) {\n return x;\n };\n } else if (typeof config.serialize === 'function') {\n serialize = config.serialize;\n } else {\n serialize = defaultSerialize;\n }\n\n var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n var lastState = {};\n var stagedState = {};\n var keysToProcess = [];\n var timeIterator = null;\n var writePromise = null;\n\n var update = function update(state) {\n // add any changed keys to the queue\n Object.keys(state).forEach(function (key) {\n if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n if (lastState[key] === state[key]) return; // value unchanged? noop\n\n if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n keysToProcess.push(key); // add key to queue\n }); //if any key is missing in the new state which was present in the lastState,\n //add it for processing too\n\n Object.keys(lastState).forEach(function (key) {\n if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n keysToProcess.push(key);\n }\n }); // start the time iterator if not running (read: throttle)\n\n if (timeIterator === null) {\n timeIterator = setInterval(processNextKey, throttle);\n }\n\n lastState = state;\n };\n\n function processNextKey() {\n if (keysToProcess.length === 0) {\n if (timeIterator) clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = keysToProcess.shift();\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key, lastState);\n }, lastState[key]);\n\n if (endState !== undefined) {\n try {\n stagedState[key] = serialize(endState);\n } catch (err) {\n console.error('redux-persist/createPersistoid: error serializing state', err);\n }\n } else {\n //if the endState is undefined, no need to persist the existing serialized content\n delete stagedState[key];\n }\n\n if (keysToProcess.length === 0) {\n writeStagedState();\n }\n }\n\n function writeStagedState() {\n // cleanup any removed keys just before write.\n Object.keys(stagedState).forEach(function (key) {\n if (lastState[key] === undefined) {\n delete stagedState[key];\n }\n });\n writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n if (blacklist && blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function onWriteFail(err) {\n // @TODO add fail handlers (typically storage full)\n if (writeFailHandler) writeFailHandler(err);\n\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('Error storing data', err);\n }\n }\n\n var flush = function flush() {\n while (keysToProcess.length !== 0) {\n processNextKey();\n }\n\n return writePromise || Promise.resolve();\n }; // return `persistoid`\n\n\n return {\n update: update,\n flush: flush\n };\n} // @NOTE in the future this may be exposed via config\n\nfunction defaultSerialize(data) {\n return JSON.stringify(data);\n}","import { KEY_PREFIX } from './constants';\nexport default function getStoredState(config) {\n var transforms = config.transforms || [];\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var debug = config.debug;\n var deserialize;\n\n if (config.deserialize === false) {\n deserialize = function deserialize(x) {\n return x;\n };\n } else if (typeof config.deserialize === 'function') {\n deserialize = config.deserialize;\n } else {\n deserialize = defaultDeserialize;\n }\n\n return storage.getItem(storageKey).then(function (serialized) {\n if (!serialized) return undefined;else {\n try {\n var state = {};\n var rawState = deserialize(serialized);\n Object.keys(rawState).forEach(function (key) {\n state[key] = transforms.reduceRight(function (subState, transformer) {\n return transformer.out(subState, key, rawState);\n }, deserialize(rawState[key]));\n });\n return state;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log(\"redux-persist/getStoredState: Error restoring data \".concat(serialized), err);\n throw err;\n }\n }\n });\n}\n\nfunction defaultDeserialize(serial) {\n return JSON.parse(serial);\n}","import { KEY_PREFIX } from './constants';\nexport default function purgeStoredState(config) {\n var storage = config.storage;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n return storage.removeItem(storageKey, warnIfRemoveError);\n}\n\nfunction warnIfRemoveError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('redux-persist/purgeStoredState: Error purging data stored state', err);\n }\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\nvar DEFAULT_TIMEOUT = 5000;\n/*\n @TODO add validation / handling for:\n - persisting a reducer which has nested _persist\n - handling actions that fire before reydrate is called\n*/\n\nexport default function persistReducer(config, baseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (!config) throw new Error('config is required for persistReducer');\n if (!config.key) throw new Error('key is required in persistor config');\n if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n }\n\n var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n var debug = config.debug || false;\n var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n var getStoredState = config.getStoredState || defaultGetStoredState;\n var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n var _persistoid = null;\n var _purge = false;\n var _paused = true;\n\n var conditionalUpdate = function conditionalUpdate(state) {\n // update the persistoid only if we are rehydrated and not paused\n state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n return state;\n };\n\n return function (state, action) {\n var _ref = state || {},\n _persist = _ref._persist,\n rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n var restState = rest;\n\n if (action.type === PERSIST) {\n var _sealed = false;\n\n var _rehydrate = function _rehydrate(payload, err) {\n // dev warning if we are already sealed\n if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n if (!_sealed) {\n action.rehydrate(config.key, payload, err);\n _sealed = true;\n }\n };\n\n timeout && setTimeout(function () {\n !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n }, timeout); // @NOTE PERSIST resumes if paused.\n\n _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n if (_persist) {\n // We still need to call the base reducer because there might be nested\n // uses of persistReducer which need to be aware of the PERSIST action\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n }\n\n if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n action.register(config.key);\n getStoredState(config).then(function (restoredState) {\n var migrate = config.migrate || function (s, v) {\n return Promise.resolve(s);\n };\n\n migrate(restoredState, version).then(function (migratedState) {\n _rehydrate(migratedState);\n }, function (migrateErr) {\n if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n _rehydrate(undefined, migrateErr);\n });\n }, function (err) {\n _rehydrate(undefined, err);\n });\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: {\n version: version,\n rehydrated: false\n }\n });\n } else if (action.type === PURGE) {\n _purge = true;\n action.result(purgeStoredState(config));\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === FLUSH) {\n action.result(_persistoid && _persistoid.flush());\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === PAUSE) {\n _paused = true;\n } else if (action.type === REHYDRATE) {\n // noop on restState if purging\n if (_purge) return _objectSpread({}, restState, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n }) // @NOTE if key does not match, will continue to default else below\n\n });\n\n if (action.key === config.key) {\n var reducedState = baseReducer(restState, action);\n var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n var _newState = _objectSpread({}, reconciledRest, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n })\n });\n\n return conditionalUpdate(_newState);\n }\n } // if we have not already handled PERSIST, straight passthrough\n\n\n if (!_persist) return baseReducer(state, action); // run base reducer:\n // is state modified ? return original : return updated\n\n var newState = baseReducer(restState, action);\n if (newState === restState) return state;\n return conditionalUpdate(_objectSpread({}, newState, {\n _persist: _persist\n }));\n };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { createStore } from 'redux';\nimport { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from './constants';\nvar initialState = {\n registry: [],\n bootstrapped: false\n};\n\nvar persistorReducer = function persistorReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case REGISTER:\n return _objectSpread({}, state, {\n registry: [].concat(_toConsumableArray(state.registry), [action.key])\n });\n\n case REHYDRATE:\n var firstIndex = state.registry.indexOf(action.key);\n\n var registry = _toConsumableArray(state.registry);\n\n registry.splice(firstIndex, 1);\n return _objectSpread({}, state, {\n registry: registry,\n bootstrapped: registry.length === 0\n });\n\n default:\n return state;\n }\n};\n\nexport default function persistStore(store, options, cb) {\n // help catch incorrect usage of passing PersistConfig in as PersistorOptions\n if (process.env.NODE_ENV !== 'production') {\n var optionsToTest = options || {};\n var bannedKeys = ['blacklist', 'whitelist', 'transforms', 'storage', 'keyPrefix', 'migrate'];\n bannedKeys.forEach(function (k) {\n if (!!optionsToTest[k]) console.error(\"redux-persist: invalid option passed to persistStore: \\\"\".concat(k, \"\\\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer.\"));\n });\n }\n\n var boostrappedCb = cb || false;\n\n var _pStore = createStore(persistorReducer, initialState, options && options.enhancer ? options.enhancer : undefined);\n\n var register = function register(key) {\n _pStore.dispatch({\n type: REGISTER,\n key: key\n });\n };\n\n var rehydrate = function rehydrate(key, payload, err) {\n var rehydrateAction = {\n type: REHYDRATE,\n payload: payload,\n err: err,\n key: key // dispatch to `store` to rehydrate and `persistor` to track result\n\n };\n store.dispatch(rehydrateAction);\n\n _pStore.dispatch(rehydrateAction);\n\n if (boostrappedCb && persistor.getState().bootstrapped) {\n boostrappedCb();\n boostrappedCb = false;\n }\n };\n\n var persistor = _objectSpread({}, _pStore, {\n purge: function purge() {\n var results = [];\n store.dispatch({\n type: PURGE,\n result: function result(purgeResult) {\n results.push(purgeResult);\n }\n });\n return Promise.all(results);\n },\n flush: function flush() {\n var results = [];\n store.dispatch({\n type: FLUSH,\n result: function result(flushResult) {\n results.push(flushResult);\n }\n });\n return Promise.all(results);\n },\n pause: function pause() {\n store.dispatch({\n type: PAUSE\n });\n },\n persist: function persist() {\n store.dispatch({\n type: PERSIST,\n register: register,\n rehydrate: rehydrate\n });\n }\n });\n\n if (!(options && options.manualPersist)) {\n persistor.persist();\n }\n\n return persistor;\n}","var createSymbol = function createSymbol(name) {\n return \"@@redux-saga/\" + name;\n};\n\nvar CANCEL =\n/*#__PURE__*/\ncreateSymbol('CANCEL_PROMISE');\nvar CHANNEL_END_TYPE =\n/*#__PURE__*/\ncreateSymbol('CHANNEL_END');\nvar IO =\n/*#__PURE__*/\ncreateSymbol('IO');\nvar MATCH =\n/*#__PURE__*/\ncreateSymbol('MATCH');\nvar MULTICAST =\n/*#__PURE__*/\ncreateSymbol('MULTICAST');\nvar SAGA_ACTION =\n/*#__PURE__*/\ncreateSymbol('SAGA_ACTION');\nvar SELF_CANCELLATION =\n/*#__PURE__*/\ncreateSymbol('SELF_CANCELLATION');\nvar TASK =\n/*#__PURE__*/\ncreateSymbol('TASK');\nvar TASK_CANCEL =\n/*#__PURE__*/\ncreateSymbol('TASK_CANCEL');\nvar TERMINATE =\n/*#__PURE__*/\ncreateSymbol('TERMINATE');\nvar SAGA_LOCATION =\n/*#__PURE__*/\ncreateSymbol('LOCATION');\n\nexport { CANCEL, CHANNEL_END_TYPE, IO, MATCH, MULTICAST, SAGA_ACTION, SAGA_LOCATION, SELF_CANCELLATION, TASK, TASK_CANCEL, TERMINATE };\n","import { TASK, SAGA_ACTION, MULTICAST, IO } from '@redux-saga/symbols';\n\nvar undef = function undef(v) {\n return v === null || v === undefined;\n};\nvar notUndef = function notUndef(v) {\n return v !== null && v !== undefined;\n};\nvar func = function func(f) {\n return typeof f === 'function';\n};\nvar number = function number(n) {\n return typeof n === 'number';\n};\nvar string = function string(s) {\n return typeof s === 'string';\n};\nvar array = Array.isArray;\nvar object = function object(obj) {\n return obj && !array(obj) && typeof obj === 'object';\n};\nvar promise = function promise(p) {\n return p && func(p.then);\n};\nvar iterator = function iterator(it) {\n return it && func(it.next) && func(it.throw);\n};\nvar iterable = function iterable(it) {\n return it && func(Symbol) ? func(it[Symbol.iterator]) : array(it);\n};\nvar task = function task(t) {\n return t && t[TASK];\n};\nvar sagaAction = function sagaAction(a) {\n return Boolean(a && a[SAGA_ACTION]);\n};\nvar observable = function observable(ob) {\n return ob && func(ob.subscribe);\n};\nvar buffer = function buffer(buf) {\n return buf && func(buf.isEmpty) && func(buf.take) && func(buf.put);\n};\nvar pattern = function pattern(pat) {\n return pat && (string(pat) || symbol(pat) || func(pat) || array(pat) && pat.every(pattern));\n};\nvar channel = function channel(ch) {\n return ch && func(ch.take) && func(ch.close);\n};\nvar stringableFunc = function stringableFunc(f) {\n return func(f) && f.hasOwnProperty('toString');\n};\nvar symbol = function symbol(sym) {\n return Boolean(sym) && typeof Symbol === 'function' && sym.constructor === Symbol && sym !== Symbol.prototype;\n};\nvar multicast = function multicast(ch) {\n return channel(ch) && ch[MULTICAST];\n};\nvar effect = function effect(eff) {\n return eff && eff[IO];\n};\n\nexport { array, buffer, channel, effect, func, iterable, iterator, multicast, notUndef, number, object, observable, pattern, promise, sagaAction, string, stringableFunc, symbol, task, undef };\n","import { TASK_CANCEL, TERMINATE, SAGA_LOCATION, SAGA_ACTION, IO, SELF_CANCELLATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { array, notUndef, pattern, multicast, channel, undef, effect, task, func, buffer, string, object } from '@redux-saga/is';\nimport delayP from '@redux-saga/delay-p';\n\nvar konst = function konst(v) {\n return function () {\n return v;\n };\n};\nvar kTrue =\n/*#__PURE__*/\nkonst(true);\n\nvar noop = function noop() {};\n\nif (process.env.NODE_ENV !== 'production' && typeof Proxy !== 'undefined') {\n noop =\n /*#__PURE__*/\n new Proxy(noop, {\n set: function set() {\n throw internalErr('There was an attempt to assign a property to internal `noop` function.');\n }\n });\n}\nvar identity = function identity(v) {\n return v;\n};\nvar hasSymbol = typeof Symbol === 'function';\nvar asyncIteratorSymbol = hasSymbol && Symbol.asyncIterator ? Symbol.asyncIterator : '@@asyncIterator';\nfunction check(value, predicate, error) {\n if (!predicate(value)) {\n throw new Error(error);\n }\n}\nvar assignWithSymbols = function assignWithSymbols(target, source) {\n _extends(target, source);\n\n if (Object.getOwnPropertySymbols) {\n Object.getOwnPropertySymbols(source).forEach(function (s) {\n target[s] = source[s];\n });\n }\n};\nvar flatMap = function flatMap(mapper, arr) {\n var _ref;\n\n return (_ref = []).concat.apply(_ref, arr.map(mapper));\n};\nfunction remove(array, item) {\n var index = array.indexOf(item);\n\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction once(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n fn();\n };\n}\n\nvar kThrow = function kThrow(err) {\n throw err;\n};\n\nvar kReturn = function kReturn(value) {\n return {\n value: value,\n done: true\n };\n};\n\nfunction makeIterator(next, thro, name) {\n if (thro === void 0) {\n thro = kThrow;\n }\n\n if (name === void 0) {\n name = 'iterator';\n }\n\n var iterator = {\n meta: {\n name: name\n },\n next: next,\n throw: thro,\n return: kReturn,\n isSagaIterator: true\n };\n\n if (typeof Symbol !== 'undefined') {\n iterator[Symbol.iterator] = function () {\n return iterator;\n };\n }\n\n return iterator;\n}\nfunction logError(error, _ref2) {\n var sagaStack = _ref2.sagaStack;\n\n /*eslint-disable no-console*/\n console.error(error);\n console.error(sagaStack);\n}\nvar internalErr = function internalErr(err) {\n return new Error(\"\\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\\n Error: \" + err + \"\\n\");\n};\nvar createSetContextWarning = function createSetContextWarning(ctx, props) {\n return (ctx ? ctx + '.' : '') + \"setContext(props): argument \" + props + \" is not a plain object\";\n};\nvar FROZEN_ACTION_ERROR = \"You can't put (a.k.a. dispatch from saga) frozen actions.\\nWe have to define a special non-enumerable property on those actions for scheduling purposes.\\nOtherwise you wouldn't be able to communicate properly between sagas & other subscribers (action ordering would become far less predictable).\\nIf you are using redux and you care about this behaviour (frozen actions),\\nthen you might want to switch to freezing actions in a middleware rather than in action creator.\\nExample implementation:\\n\\nconst freezeActions = store => next => action => next(Object.freeze(action))\\n\"; // creates empty, but not-holey array\n\nvar createEmptyArray = function createEmptyArray(n) {\n return Array.apply(null, new Array(n));\n};\nvar wrapSagaDispatch = function wrapSagaDispatch(dispatch) {\n return function (action) {\n if (process.env.NODE_ENV !== 'production') {\n check(action, function (ac) {\n return !Object.isFrozen(ac);\n }, FROZEN_ACTION_ERROR);\n }\n\n return dispatch(Object.defineProperty(action, SAGA_ACTION, {\n value: true\n }));\n };\n};\nvar shouldTerminate = function shouldTerminate(res) {\n return res === TERMINATE;\n};\nvar shouldCancel = function shouldCancel(res) {\n return res === TASK_CANCEL;\n};\nvar shouldComplete = function shouldComplete(res) {\n return shouldTerminate(res) || shouldCancel(res);\n};\nfunction createAllStyleChildCallbacks(shape, parentCallback) {\n var keys = Object.keys(shape);\n var totalCount = keys.length;\n\n if (process.env.NODE_ENV !== 'production') {\n check(totalCount, function (c) {\n return c > 0;\n }, 'createAllStyleChildCallbacks: get an empty array or object');\n }\n\n var completedCount = 0;\n var completed;\n var results = array(shape) ? createEmptyArray(totalCount) : {};\n var childCallbacks = {};\n\n function checkEnd() {\n if (completedCount === totalCount) {\n completed = true;\n parentCallback(results);\n }\n }\n\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n parentCallback.cancel();\n parentCallback(res, isErr);\n } else {\n results[key] = res;\n completedCount++;\n checkEnd();\n }\n };\n\n chCbAtKey.cancel = noop;\n childCallbacks[key] = chCbAtKey;\n });\n\n parentCallback.cancel = function () {\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCallbacks[key].cancel();\n });\n }\n };\n\n return childCallbacks;\n}\nfunction getMetaInfo(fn) {\n return {\n name: fn.name || 'anonymous',\n location: getLocation(fn)\n };\n}\nfunction getLocation(instrumented) {\n return instrumented[SAGA_LOCATION];\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\nvar BUFFER_OVERFLOW = \"Channel's Buffer overflow!\";\nvar ON_OVERFLOW_THROW = 1;\nvar ON_OVERFLOW_DROP = 2;\nvar ON_OVERFLOW_SLIDE = 3;\nvar ON_OVERFLOW_EXPAND = 4;\nvar zeroBuffer = {\n isEmpty: kTrue,\n put: noop,\n take: noop\n};\n\nfunction ringBuffer(limit, overflowAction) {\n if (limit === void 0) {\n limit = 10;\n }\n\n var arr = new Array(limit);\n var length = 0;\n var pushIndex = 0;\n var popIndex = 0;\n\n var push = function push(it) {\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n length++;\n };\n\n var take = function take() {\n if (length != 0) {\n var it = arr[popIndex];\n arr[popIndex] = null;\n length--;\n popIndex = (popIndex + 1) % limit;\n return it;\n }\n };\n\n var flush = function flush() {\n var items = [];\n\n while (length) {\n items.push(take());\n }\n\n return items;\n };\n\n return {\n isEmpty: function isEmpty() {\n return length == 0;\n },\n put: function put(it) {\n if (length < limit) {\n push(it);\n } else {\n var doubledLimit;\n\n switch (overflowAction) {\n case ON_OVERFLOW_THROW:\n throw new Error(BUFFER_OVERFLOW);\n\n case ON_OVERFLOW_SLIDE:\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n popIndex = pushIndex;\n break;\n\n case ON_OVERFLOW_EXPAND:\n doubledLimit = 2 * limit;\n arr = flush();\n length = arr.length;\n pushIndex = arr.length;\n popIndex = 0;\n arr.length = doubledLimit;\n limit = doubledLimit;\n push(it);\n break;\n\n default: // DROP\n\n }\n }\n },\n take: take,\n flush: flush\n };\n}\n\nvar none = function none() {\n return zeroBuffer;\n};\nvar fixed = function fixed(limit) {\n return ringBuffer(limit, ON_OVERFLOW_THROW);\n};\nvar dropping = function dropping(limit) {\n return ringBuffer(limit, ON_OVERFLOW_DROP);\n};\nvar sliding = function sliding(limit) {\n return ringBuffer(limit, ON_OVERFLOW_SLIDE);\n};\nvar expanding = function expanding(initialSize) {\n return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);\n};\n\nvar buffers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n none: none,\n fixed: fixed,\n dropping: dropping,\n sliding: sliding,\n expanding: expanding\n});\n\nvar TAKE = 'TAKE';\nvar PUT = 'PUT';\nvar ALL = 'ALL';\nvar RACE = 'RACE';\nvar CALL = 'CALL';\nvar CPS = 'CPS';\nvar FORK = 'FORK';\nvar JOIN = 'JOIN';\nvar CANCEL = 'CANCEL';\nvar SELECT = 'SELECT';\nvar ACTION_CHANNEL = 'ACTION_CHANNEL';\nvar CANCELLED = 'CANCELLED';\nvar FLUSH = 'FLUSH';\nvar GET_CONTEXT = 'GET_CONTEXT';\nvar SET_CONTEXT = 'SET_CONTEXT';\n\nvar effectTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n TAKE: TAKE,\n PUT: PUT,\n ALL: ALL,\n RACE: RACE,\n CALL: CALL,\n CPS: CPS,\n FORK: FORK,\n JOIN: JOIN,\n CANCEL: CANCEL,\n SELECT: SELECT,\n ACTION_CHANNEL: ACTION_CHANNEL,\n CANCELLED: CANCELLED,\n FLUSH: FLUSH,\n GET_CONTEXT: GET_CONTEXT,\n SET_CONTEXT: SET_CONTEXT\n});\n\nvar TEST_HINT = '\\n(HINT: if you are getting these errors in tests, consider using createMockTask from @redux-saga/testing-utils)';\n\nvar makeEffect = function makeEffect(type, payload) {\n var _ref;\n\n return _ref = {}, _ref[IO] = true, _ref.combinator = false, _ref.type = type, _ref.payload = payload, _ref;\n};\n\nvar isForkEffect = function isForkEffect(eff) {\n return effect(eff) && eff.type === FORK;\n};\n\nvar detach = function detach(eff) {\n if (process.env.NODE_ENV !== 'production') {\n check(eff, isForkEffect, 'detach(eff): argument must be a fork effect');\n }\n\n return makeEffect(FORK, _extends({}, eff.payload, {\n detached: true\n }));\n};\nfunction take(patternOrChannel, multicastPattern) {\n if (patternOrChannel === void 0) {\n patternOrChannel = '*';\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'take(patternOrChannel): patternOrChannel is undefined');\n }\n\n if (pattern(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types\");\n }\n\n return makeEffect(TAKE, {\n pattern: patternOrChannel\n });\n }\n\n if (multicast(patternOrChannel) && notUndef(multicastPattern) && pattern(multicastPattern)) {\n return makeEffect(TAKE, {\n channel: patternOrChannel,\n pattern: multicastPattern\n });\n }\n\n if (channel(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(channel) takes one argument but two were provided. Second argument is ignored.\");\n }\n\n return makeEffect(TAKE, {\n channel: patternOrChannel\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"take(patternOrChannel): argument \" + patternOrChannel + \" is not valid channel or a valid pattern\");\n }\n}\nvar takeMaybe = function takeMaybe() {\n var eff = take.apply(void 0, arguments);\n eff.payload.maybe = true;\n return eff;\n};\nfunction put(channel$1, action) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n check(channel$1, notUndef, 'put(channel, action): argument channel is undefined');\n check(channel$1, channel, \"put(channel, action): argument \" + channel$1 + \" is not a valid channel\");\n check(action, notUndef, 'put(channel, action): argument action is undefined');\n } else {\n check(channel$1, notUndef, 'put(action): argument action is undefined');\n }\n }\n\n if (undef(action)) {\n action = channel$1; // `undefined` instead of `null` to make default parameter work\n\n channel$1 = undefined;\n }\n\n return makeEffect(PUT, {\n channel: channel$1,\n action: action\n });\n}\nvar putResolve = function putResolve() {\n var eff = put.apply(void 0, arguments);\n eff.payload.resolve = true;\n return eff;\n};\nfunction all(effects) {\n var eff = makeEffect(ALL, effects);\n eff.combinator = true;\n return eff;\n}\nfunction race(effects) {\n var eff = makeEffect(RACE, effects);\n eff.combinator = true;\n return eff;\n} // this match getFnCallDescriptor logic\n\nvar validateFnDescriptor = function validateFnDescriptor(effectName, fnDescriptor) {\n check(fnDescriptor, notUndef, effectName + \": argument fn is undefined or null\");\n\n if (func(fnDescriptor)) {\n return;\n }\n\n var context = null;\n var fn;\n\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n check(fn, notUndef, effectName + \": argument of type [context, fn] has undefined or null `fn`\");\n } else if (object(fnDescriptor)) {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n check(fn, notUndef, effectName + \": argument of type {context, fn} has undefined or null `fn`\");\n } else {\n check(fnDescriptor, func, effectName + \": argument fn is not function\");\n return;\n }\n\n if (context && string(fn)) {\n check(context[fn], func, effectName + \": context arguments has no such method - \\\"\" + fn + \"\\\"\");\n return;\n }\n\n check(fn, func, effectName + \": unpacked fn argument (from [context, fn] or {context, fn}) is not a function\");\n};\n\nfunction getFnCallDescriptor(fnDescriptor, args) {\n var context = null;\n var fn;\n\n if (func(fnDescriptor)) {\n fn = fnDescriptor;\n } else {\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n } else {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n }\n\n if (context && string(fn) && func(context[fn])) {\n fn = context[fn];\n }\n }\n\n return {\n context: context,\n fn: fn,\n args: args\n };\n}\n\nvar isNotDelayEffect = function isNotDelayEffect(fn) {\n return fn !== delay;\n};\n\nfunction call(fnDescriptor) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var arg0 = typeof args[0] === 'number' ? args[0] : 'ms';\n check(fnDescriptor, isNotDelayEffect, \"instead of writing `yield call(delay, \" + arg0 + \")` where delay is an effect from `redux-saga/effects` you should write `yield delay(\" + arg0 + \")`\");\n validateFnDescriptor('call', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction apply(context, fn, args) {\n if (args === void 0) {\n args = [];\n }\n\n var fnDescriptor = [context, fn];\n\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('apply', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor([context, fn], args));\n}\nfunction cps(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('cps', fnDescriptor);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return makeEffect(CPS, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction fork(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('fork', fnDescriptor);\n check(fnDescriptor, function (arg) {\n return !effect(arg);\n }, 'fork: argument must not be an effect');\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return makeEffect(FORK, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction spawn(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('spawn', fnDescriptor);\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n return detach(fork.apply(void 0, [fnDescriptor].concat(args)));\n}\nfunction join(taskOrTasks) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('join(...tasks) is not supported any more. Please use join([...tasks]) to join multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"join([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else {\n check(taskOrTasks, task, \"join(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(JOIN, taskOrTasks);\n}\nfunction cancel(taskOrTasks) {\n if (taskOrTasks === void 0) {\n taskOrTasks = SELF_CANCELLATION;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('cancel(...tasks) is not supported any more. Please use cancel([...tasks]) to cancel multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"cancel([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else if (taskOrTasks !== SELF_CANCELLATION && notUndef(taskOrTasks)) {\n check(taskOrTasks, task, \"cancel(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(CANCEL, taskOrTasks);\n}\nfunction select(selector) {\n if (selector === void 0) {\n selector = identity;\n }\n\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'select(selector, [...]): argument selector is undefined');\n check(selector, func, \"select(selector, [...]): argument \" + selector + \" is not a function\");\n }\n\n return makeEffect(SELECT, {\n selector: selector,\n args: args\n });\n}\n/**\n channel(pattern, [buffer]) => creates a proxy channel for store actions\n**/\n\nfunction actionChannel(pattern$1, buffer$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(pattern$1, pattern, 'actionChannel(pattern,...): argument pattern is not valid');\n\n if (arguments.length > 1) {\n check(buffer$1, notUndef, 'actionChannel(pattern, buffer): argument buffer is undefined');\n check(buffer$1, buffer, \"actionChannel(pattern, buffer): argument \" + buffer$1 + \" is not a valid buffer\");\n }\n }\n\n return makeEffect(ACTION_CHANNEL, {\n pattern: pattern$1,\n buffer: buffer$1\n });\n}\nfunction cancelled() {\n return makeEffect(CANCELLED, {});\n}\nfunction flush(channel$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(channel$1, channel, \"flush(channel): argument \" + channel$1 + \" is not valid channel\");\n }\n\n return makeEffect(FLUSH, channel$1);\n}\nfunction getContext(prop) {\n if (process.env.NODE_ENV !== 'production') {\n check(prop, string, \"getContext(prop): argument \" + prop + \" is not a string\");\n }\n\n return makeEffect(GET_CONTEXT, prop);\n}\nfunction setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning(null, props));\n }\n\n return makeEffect(SET_CONTEXT, props);\n}\nvar delay =\n/*#__PURE__*/\ncall.bind(null, delayP);\n\nexport { all as $, ALL as A, compose as B, CALL as C, logError as D, wrapSagaDispatch as E, FORK as F, GET_CONTEXT as G, identity as H, buffers as I, JOIN as J, detach as K, take as L, fork as M, cancel as N, call as O, PUT as P, delay as Q, RACE as R, SELECT as S, TAKE as T, actionChannel as U, sliding as V, race as W, effectTypes as X, takeMaybe as Y, put as Z, putResolve as _, CPS as a, apply as a0, cps as a1, spawn as a2, join as a3, select as a4, cancelled as a5, flush as a6, getContext as a7, setContext as a8, CANCEL as b, check as c, ACTION_CHANNEL as d, expanding as e, CANCELLED as f, FLUSH as g, SET_CONTEXT as h, internalErr as i, getMetaInfo as j, kTrue as k, createAllStyleChildCallbacks as l, createEmptyArray as m, none as n, once as o, assignWithSymbols as p, makeIterator as q, remove as r, shouldComplete as s, noop as t, flatMap as u, getLocation as v, createSetContextWarning as w, asyncIteratorSymbol as x, shouldCancel as y, shouldTerminate as z };\n","function deferred() {\n var def = {};\n def.promise = new Promise(function (resolve, reject) {\n def.resolve = resolve;\n def.reject = reject;\n });\n return def;\n}\nfunction arrayOfDeferred(length) {\n var arr = [];\n\n for (var i = 0; i < length; i++) {\n arr.push(deferred());\n }\n\n return arr;\n}\n\nexport default deferred;\nexport { arrayOfDeferred };\n","import { CHANNEL_END_TYPE, MULTICAST, MATCH, SAGA_ACTION, CANCEL, SELF_CANCELLATION, TERMINATE, TASK, TASK_CANCEL, IO } from '@redux-saga/symbols';\nexport { CANCEL, SAGA_LOCATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport { string as string$1, array as array$1, stringableFunc, func, symbol as symbol$1, buffer, notUndef, promise, iterator, undef, object, channel as channel$1 } from '@redux-saga/is';\nimport { k as kTrue, e as expanding, c as check, o as once, r as remove, n as none, i as internalErr, T as TAKE, P as PUT, A as ALL, R as RACE, C as CALL, a as CPS, F as FORK, J as JOIN, b as CANCEL$1, S as SELECT, d as ACTION_CHANNEL, f as CANCELLED$1, g as FLUSH, G as GET_CONTEXT, h as SET_CONTEXT, j as getMetaInfo, l as createAllStyleChildCallbacks, m as createEmptyArray, p as assignWithSymbols, q as makeIterator, s as shouldComplete, t as noop, u as flatMap, v as getLocation, w as createSetContextWarning, x as asyncIteratorSymbol, y as shouldCancel, z as shouldTerminate, B as compose, D as logError, E as wrapSagaDispatch, H as identity } from './io-22ea0cf9.js';\nexport { I as buffers, K as detach } from './io-22ea0cf9.js';\nimport deferred from '@redux-saga/deferred';\nimport '@redux-saga/delay-p';\n\nvar queue = [];\n/**\n Variable to hold a counting semaphore\n - Incrementing adds a lock and puts the scheduler in a `suspended` state (if it's not\n already suspended)\n - Decrementing releases a lock. Zero locks puts the scheduler in a `released` state. This\n triggers flushing the queued tasks.\n**/\n\nvar semaphore = 0;\n/**\n Executes a task 'atomically'. Tasks scheduled during this execution will be queued\n and flushed after this task has finished (assuming the scheduler endup in a released\n state).\n**/\n\nfunction exec(task) {\n try {\n suspend();\n task();\n } finally {\n release();\n }\n}\n/**\n Executes or queues a task depending on the state of the scheduler (`suspended` or `released`)\n**/\n\n\nfunction asap(task) {\n queue.push(task);\n\n if (!semaphore) {\n suspend();\n flush();\n }\n}\n/**\n * Puts the scheduler in a `suspended` state and executes a task immediately.\n */\n\nfunction immediately(task) {\n try {\n suspend();\n return task();\n } finally {\n flush();\n }\n}\n/**\n Puts the scheduler in a `suspended` state. Scheduled tasks will be queued until the\n scheduler is released.\n**/\n\nfunction suspend() {\n semaphore++;\n}\n/**\n Puts the scheduler in a `released` state.\n**/\n\n\nfunction release() {\n semaphore--;\n}\n/**\n Releases the current lock. Executes all queued tasks if the scheduler is in the released state.\n**/\n\n\nfunction flush() {\n release();\n var task;\n\n while (!semaphore && (task = queue.shift()) !== undefined) {\n exec(task);\n }\n}\n\nvar array = function array(patterns) {\n return function (input) {\n return patterns.some(function (p) {\n return matcher(p)(input);\n });\n };\n};\nvar predicate = function predicate(_predicate) {\n return function (input) {\n return _predicate(input);\n };\n};\nvar string = function string(pattern) {\n return function (input) {\n return input.type === String(pattern);\n };\n};\nvar symbol = function symbol(pattern) {\n return function (input) {\n return input.type === pattern;\n };\n};\nvar wildcard = function wildcard() {\n return kTrue;\n};\nfunction matcher(pattern) {\n // prettier-ignore\n var matcherCreator = pattern === '*' ? wildcard : string$1(pattern) ? string : array$1(pattern) ? array : stringableFunc(pattern) ? string : func(pattern) ? predicate : symbol$1(pattern) ? symbol : null;\n\n if (matcherCreator === null) {\n throw new Error(\"invalid pattern: \" + pattern);\n }\n\n return matcherCreator(pattern);\n}\n\nvar END = {\n type: CHANNEL_END_TYPE\n};\nvar isEnd = function isEnd(a) {\n return a && a.type === CHANNEL_END_TYPE;\n};\nvar CLOSED_CHANNEL_WITH_TAKERS = 'Cannot have a closed channel with pending takers';\nvar INVALID_BUFFER = 'invalid buffer passed to channel factory function';\nvar UNDEFINED_INPUT_ERROR = \"Saga or channel was provided with an undefined action\\nHints:\\n - check that your Action Creator returns a non-undefined value\\n - if the Saga was started using runSaga, check that your subscribe source provides the action to its listeners\";\nfunction channel(buffer$1) {\n if (buffer$1 === void 0) {\n buffer$1 = expanding();\n }\n\n var closed = false;\n var takers = [];\n\n if (process.env.NODE_ENV !== 'production') {\n check(buffer$1, buffer, INVALID_BUFFER);\n }\n\n function checkForbiddenStates() {\n if (closed && takers.length) {\n throw internalErr(CLOSED_CHANNEL_WITH_TAKERS);\n }\n\n if (takers.length && !buffer$1.isEmpty()) {\n throw internalErr('Cannot have pending takers with non empty buffer');\n }\n }\n\n function put(input) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(input, notUndef, UNDEFINED_INPUT_ERROR);\n }\n\n if (closed) {\n return;\n }\n\n if (takers.length === 0) {\n return buffer$1.put(input);\n }\n\n var cb = takers.shift();\n cb(input);\n }\n\n function take(cb) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(cb, func, \"channel.take's callback must be a function\");\n }\n\n if (closed && buffer$1.isEmpty()) {\n cb(END);\n } else if (!buffer$1.isEmpty()) {\n cb(buffer$1.take());\n } else {\n takers.push(cb);\n\n cb.cancel = function () {\n remove(takers, cb);\n };\n }\n }\n\n function flush(cb) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(cb, func, \"channel.flush' callback must be a function\");\n }\n\n if (closed && buffer$1.isEmpty()) {\n cb(END);\n return;\n }\n\n cb(buffer$1.flush());\n }\n\n function close() {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n if (closed) {\n return;\n }\n\n closed = true;\n var arr = takers;\n takers = [];\n\n for (var i = 0, len = arr.length; i < len; i++) {\n var taker = arr[i];\n taker(END);\n }\n }\n\n return {\n take: take,\n put: put,\n flush: flush,\n close: close\n };\n}\nfunction eventChannel(subscribe, buffer) {\n if (buffer === void 0) {\n buffer = none();\n }\n\n var closed = false;\n var unsubscribe;\n var chan = channel(buffer);\n\n var close = function close() {\n if (closed) {\n return;\n }\n\n closed = true;\n\n if (func(unsubscribe)) {\n unsubscribe();\n }\n\n chan.close();\n };\n\n unsubscribe = subscribe(function (input) {\n if (isEnd(input)) {\n close();\n return;\n }\n\n chan.put(input);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n check(unsubscribe, func, 'in eventChannel: subscribe should return a function to unsubscribe');\n }\n\n unsubscribe = once(unsubscribe);\n\n if (closed) {\n unsubscribe();\n }\n\n return {\n take: chan.take,\n flush: chan.flush,\n close: close\n };\n}\nfunction multicastChannel() {\n var _ref;\n\n var closed = false;\n var currentTakers = [];\n var nextTakers = currentTakers;\n\n function checkForbiddenStates() {\n if (closed && nextTakers.length) {\n throw internalErr(CLOSED_CHANNEL_WITH_TAKERS);\n }\n }\n\n var ensureCanMutateNextTakers = function ensureCanMutateNextTakers() {\n if (nextTakers !== currentTakers) {\n return;\n }\n\n nextTakers = currentTakers.slice();\n };\n\n var close = function close() {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n closed = true;\n var takers = currentTakers = nextTakers;\n nextTakers = [];\n takers.forEach(function (taker) {\n taker(END);\n });\n };\n\n return _ref = {}, _ref[MULTICAST] = true, _ref.put = function put(input) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(input, notUndef, UNDEFINED_INPUT_ERROR);\n }\n\n if (closed) {\n return;\n }\n\n if (isEnd(input)) {\n close();\n return;\n }\n\n var takers = currentTakers = nextTakers;\n\n for (var i = 0, len = takers.length; i < len; i++) {\n var taker = takers[i];\n\n if (taker[MATCH](input)) {\n taker.cancel();\n taker(input);\n }\n }\n }, _ref.take = function take(cb, matcher) {\n if (matcher === void 0) {\n matcher = wildcard;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n if (closed) {\n cb(END);\n return;\n }\n\n cb[MATCH] = matcher;\n ensureCanMutateNextTakers();\n nextTakers.push(cb);\n cb.cancel = once(function () {\n ensureCanMutateNextTakers();\n remove(nextTakers, cb);\n });\n }, _ref.close = close, _ref;\n}\nfunction stdChannel() {\n var chan = multicastChannel();\n var put = chan.put;\n\n chan.put = function (input) {\n if (input[SAGA_ACTION]) {\n put(input);\n return;\n }\n\n asap(function () {\n put(input);\n });\n };\n\n return chan;\n}\n\nvar RUNNING = 0;\nvar CANCELLED = 1;\nvar ABORTED = 2;\nvar DONE = 3;\n\nfunction resolvePromise(promise, cb) {\n var cancelPromise = promise[CANCEL];\n\n if (func(cancelPromise)) {\n cb.cancel = cancelPromise;\n }\n\n promise.then(cb, function (error) {\n cb(error, true);\n });\n}\n\nvar current = 0;\nvar nextSagaId = (function () {\n return ++current;\n});\n\nvar _effectRunnerMap;\n\nfunction getIteratorMetaInfo(iterator, fn) {\n if (iterator.isSagaIterator) {\n return {\n name: iterator.meta.name\n };\n }\n\n return getMetaInfo(fn);\n}\n\nfunction createTaskIterator(_ref) {\n var context = _ref.context,\n fn = _ref.fn,\n args = _ref.args;\n\n // catch synchronous failures; see #152 and #441\n try {\n var result = fn.apply(context, args); // i.e. a generator function returns an iterator\n\n if (iterator(result)) {\n return result;\n }\n\n var resolved = false;\n\n var next = function next(arg) {\n if (!resolved) {\n resolved = true; // Only promises returned from fork will be interpreted. See #1573\n\n return {\n value: result,\n done: !promise(result)\n };\n } else {\n return {\n value: arg,\n done: true\n };\n }\n };\n\n return makeIterator(next);\n } catch (err) {\n // do not bubble up synchronous failures for detached forks\n // instead create a failed task. See #152 and #441\n return makeIterator(function () {\n throw err;\n });\n }\n}\n\nfunction runPutEffect(env, _ref2, cb) {\n var channel = _ref2.channel,\n action = _ref2.action,\n resolve = _ref2.resolve;\n\n /**\n Schedule the put in case another saga is holding a lock.\n The put will be executed atomically. ie nested puts will execute after\n this put has terminated.\n **/\n asap(function () {\n var result;\n\n try {\n result = (channel ? channel.put : env.dispatch)(action);\n } catch (error) {\n cb(error, true);\n return;\n }\n\n if (resolve && promise(result)) {\n resolvePromise(result, cb);\n } else {\n cb(result);\n }\n }); // Put effects are non cancellables\n}\n\nfunction runTakeEffect(env, _ref3, cb) {\n var _ref3$channel = _ref3.channel,\n channel = _ref3$channel === void 0 ? env.channel : _ref3$channel,\n pattern = _ref3.pattern,\n maybe = _ref3.maybe;\n\n var takeCb = function takeCb(input) {\n if (input instanceof Error) {\n cb(input, true);\n return;\n }\n\n if (isEnd(input) && !maybe) {\n cb(TERMINATE);\n return;\n }\n\n cb(input);\n };\n\n try {\n channel.take(takeCb, notUndef(pattern) ? matcher(pattern) : null);\n } catch (err) {\n cb(err, true);\n return;\n }\n\n cb.cancel = takeCb.cancel;\n}\n\nfunction runCallEffect(env, _ref4, cb, _ref5) {\n var context = _ref4.context,\n fn = _ref4.fn,\n args = _ref4.args;\n var task = _ref5.task;\n\n // catch synchronous failures; see #152\n try {\n var result = fn.apply(context, args);\n\n if (promise(result)) {\n resolvePromise(result, cb);\n return;\n }\n\n if (iterator(result)) {\n // resolve iterator\n proc(env, result, task.context, current, getMetaInfo(fn),\n /* isRoot */\n false, cb);\n return;\n }\n\n cb(result);\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runCPSEffect(env, _ref6, cb) {\n var context = _ref6.context,\n fn = _ref6.fn,\n args = _ref6.args;\n\n // CPS (ie node style functions) can define their own cancellation logic\n // by setting cancel field on the cb\n // catch synchronous failures; see #152\n try {\n var cpsCb = function cpsCb(err, res) {\n if (undef(err)) {\n cb(res);\n } else {\n cb(err, true);\n }\n };\n\n fn.apply(context, args.concat(cpsCb));\n\n if (cpsCb.cancel) {\n cb.cancel = cpsCb.cancel;\n }\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runForkEffect(env, _ref7, cb, _ref8) {\n var context = _ref7.context,\n fn = _ref7.fn,\n args = _ref7.args,\n detached = _ref7.detached;\n var parent = _ref8.task;\n var taskIterator = createTaskIterator({\n context: context,\n fn: fn,\n args: args\n });\n var meta = getIteratorMetaInfo(taskIterator, fn);\n immediately(function () {\n var child = proc(env, taskIterator, parent.context, current, meta, detached, undefined);\n\n if (detached) {\n cb(child);\n } else {\n if (child.isRunning()) {\n parent.queue.addTask(child);\n cb(child);\n } else if (child.isAborted()) {\n parent.queue.abort(child.error());\n } else {\n cb(child);\n }\n }\n }); // Fork effects are non cancellables\n}\n\nfunction runJoinEffect(env, taskOrTasks, cb, _ref9) {\n var task = _ref9.task;\n\n var joinSingleTask = function joinSingleTask(taskToJoin, cb) {\n if (taskToJoin.isRunning()) {\n var joiner = {\n task: task,\n cb: cb\n };\n\n cb.cancel = function () {\n if (taskToJoin.isRunning()) remove(taskToJoin.joiners, joiner);\n };\n\n taskToJoin.joiners.push(joiner);\n } else {\n if (taskToJoin.isAborted()) {\n cb(taskToJoin.error(), true);\n } else {\n cb(taskToJoin.result());\n }\n }\n };\n\n if (array$1(taskOrTasks)) {\n if (taskOrTasks.length === 0) {\n cb([]);\n return;\n }\n\n var childCallbacks = createAllStyleChildCallbacks(taskOrTasks, cb);\n taskOrTasks.forEach(function (t, i) {\n joinSingleTask(t, childCallbacks[i]);\n });\n } else {\n joinSingleTask(taskOrTasks, cb);\n }\n}\n\nfunction cancelSingleTask(taskToCancel) {\n if (taskToCancel.isRunning()) {\n taskToCancel.cancel();\n }\n}\n\nfunction runCancelEffect(env, taskOrTasks, cb, _ref10) {\n var task = _ref10.task;\n\n if (taskOrTasks === SELF_CANCELLATION) {\n cancelSingleTask(task);\n } else if (array$1(taskOrTasks)) {\n taskOrTasks.forEach(cancelSingleTask);\n } else {\n cancelSingleTask(taskOrTasks);\n }\n\n cb(); // cancel effects are non cancellables\n}\n\nfunction runAllEffect(env, effects, cb, _ref11) {\n var digestEffect = _ref11.digestEffect;\n var effectId = current;\n var keys = Object.keys(effects);\n\n if (keys.length === 0) {\n cb(array$1(effects) ? [] : {});\n return;\n }\n\n var childCallbacks = createAllStyleChildCallbacks(effects, cb);\n keys.forEach(function (key) {\n digestEffect(effects[key], effectId, childCallbacks[key], key);\n });\n}\n\nfunction runRaceEffect(env, effects, cb, _ref12) {\n var digestEffect = _ref12.digestEffect;\n var effectId = current;\n var keys = Object.keys(effects);\n var response = array$1(effects) ? createEmptyArray(keys.length) : {};\n var childCbs = {};\n var completed = false;\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n // Race Auto cancellation\n cb.cancel();\n cb(res, isErr);\n } else {\n cb.cancel();\n completed = true;\n response[key] = res;\n cb(response);\n }\n };\n\n chCbAtKey.cancel = noop;\n childCbs[key] = chCbAtKey;\n });\n\n cb.cancel = function () {\n // prevents unnecessary cancellation\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCbs[key].cancel();\n });\n }\n };\n\n keys.forEach(function (key) {\n if (completed) {\n return;\n }\n\n digestEffect(effects[key], effectId, childCbs[key], key);\n });\n}\n\nfunction runSelectEffect(env, _ref13, cb) {\n var selector = _ref13.selector,\n args = _ref13.args;\n\n try {\n var state = selector.apply(void 0, [env.getState()].concat(args));\n cb(state);\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runChannelEffect(env, _ref14, cb) {\n var pattern = _ref14.pattern,\n buffer = _ref14.buffer;\n var chan = channel(buffer);\n var match = matcher(pattern);\n\n var taker = function taker(action) {\n if (!isEnd(action)) {\n env.channel.take(taker, match);\n }\n\n chan.put(action);\n };\n\n var close = chan.close;\n\n chan.close = function () {\n taker.cancel();\n close();\n };\n\n env.channel.take(taker, match);\n cb(chan);\n}\n\nfunction runCancelledEffect(env, data, cb, _ref15) {\n var task = _ref15.task;\n cb(task.isCancelled());\n}\n\nfunction runFlushEffect(env, channel, cb) {\n channel.flush(cb);\n}\n\nfunction runGetContextEffect(env, prop, cb, _ref16) {\n var task = _ref16.task;\n cb(task.context[prop]);\n}\n\nfunction runSetContextEffect(env, props, cb, _ref17) {\n var task = _ref17.task;\n assignWithSymbols(task.context, props);\n cb();\n}\n\nvar effectRunnerMap = (_effectRunnerMap = {}, _effectRunnerMap[TAKE] = runTakeEffect, _effectRunnerMap[PUT] = runPutEffect, _effectRunnerMap[ALL] = runAllEffect, _effectRunnerMap[RACE] = runRaceEffect, _effectRunnerMap[CALL] = runCallEffect, _effectRunnerMap[CPS] = runCPSEffect, _effectRunnerMap[FORK] = runForkEffect, _effectRunnerMap[JOIN] = runJoinEffect, _effectRunnerMap[CANCEL$1] = runCancelEffect, _effectRunnerMap[SELECT] = runSelectEffect, _effectRunnerMap[ACTION_CHANNEL] = runChannelEffect, _effectRunnerMap[CANCELLED$1] = runCancelledEffect, _effectRunnerMap[FLUSH] = runFlushEffect, _effectRunnerMap[GET_CONTEXT] = runGetContextEffect, _effectRunnerMap[SET_CONTEXT] = runSetContextEffect, _effectRunnerMap);\n\n/**\n Used to track a parent task and its forks\n In the fork model, forked tasks are attached by default to their parent\n We model this using the concept of Parent task && main Task\n main task is the main flow of the current Generator, the parent tasks is the\n aggregation of the main tasks + all its forked tasks.\n Thus the whole model represents an execution tree with multiple branches (vs the\n linear execution tree in sequential (non parallel) programming)\n\n A parent tasks has the following semantics\n - It completes if all its forks either complete or all cancelled\n - If it's cancelled, all forks are cancelled as well\n - It aborts if any uncaught error bubbles up from forks\n - If it completes, the return value is the one returned by the main task\n **/\n\nfunction forkQueue(mainTask, onAbort, cont) {\n var tasks = [];\n var result;\n var completed = false;\n addTask(mainTask);\n\n var getTasks = function getTasks() {\n return tasks;\n };\n\n function abort(err) {\n onAbort();\n cancelAll();\n cont(err, true);\n }\n\n function addTask(task) {\n tasks.push(task);\n\n task.cont = function (res, isErr) {\n if (completed) {\n return;\n }\n\n remove(tasks, task);\n task.cont = noop;\n\n if (isErr) {\n abort(res);\n } else {\n if (task === mainTask) {\n result = res;\n }\n\n if (!tasks.length) {\n completed = true;\n cont(result);\n }\n }\n };\n }\n\n function cancelAll() {\n if (completed) {\n return;\n }\n\n completed = true;\n tasks.forEach(function (t) {\n t.cont = noop;\n t.cancel();\n });\n tasks = [];\n }\n\n return {\n addTask: addTask,\n cancelAll: cancelAll,\n abort: abort,\n getTasks: getTasks\n };\n}\n\n// there can be only a single saga error created at any given moment\n\nfunction formatLocation(fileName, lineNumber) {\n return fileName + \"?\" + lineNumber;\n}\n\nfunction effectLocationAsString(effect) {\n var location = getLocation(effect);\n\n if (location) {\n var code = location.code,\n fileName = location.fileName,\n lineNumber = location.lineNumber;\n var source = code + \" \" + formatLocation(fileName, lineNumber);\n return source;\n }\n\n return '';\n}\n\nfunction sagaLocationAsString(sagaMeta) {\n var name = sagaMeta.name,\n location = sagaMeta.location;\n\n if (location) {\n return name + \" \" + formatLocation(location.fileName, location.lineNumber);\n }\n\n return name;\n}\n\nfunction cancelledTasksAsString(sagaStack) {\n var cancelledTasks = flatMap(function (i) {\n return i.cancelledTasks;\n }, sagaStack);\n\n if (!cancelledTasks.length) {\n return '';\n }\n\n return ['Tasks cancelled due to error:'].concat(cancelledTasks).join('\\n');\n}\n\nvar crashedEffect = null;\nvar sagaStack = [];\nvar addSagaFrame = function addSagaFrame(frame) {\n frame.crashedEffect = crashedEffect;\n sagaStack.push(frame);\n};\nvar clear = function clear() {\n crashedEffect = null;\n sagaStack.length = 0;\n}; // this sets crashed effect for the soon-to-be-reported saga frame\n// this slightly streatches the singleton nature of this module into wrong direction\n// as it's even less obvious what's the data flow here, but it is what it is for now\n\nvar setCrashedEffect = function setCrashedEffect(effect) {\n crashedEffect = effect;\n};\n/**\n @returns {string}\n\n @example\n The above error occurred in task errorInPutSaga {pathToFile}\n when executing effect put({type: 'REDUCER_ACTION_ERROR_IN_PUT'}) {pathToFile}\n created by fetchSaga {pathToFile}\n created by rootSaga {pathToFile}\n*/\n\nvar toString = function toString() {\n var firstSaga = sagaStack[0],\n otherSagas = sagaStack.slice(1);\n var crashedEffectLocation = firstSaga.crashedEffect ? effectLocationAsString(firstSaga.crashedEffect) : null;\n var errorMessage = \"The above error occurred in task \" + sagaLocationAsString(firstSaga.meta) + (crashedEffectLocation ? \" \\n when executing effect \" + crashedEffectLocation : '');\n return [errorMessage].concat(otherSagas.map(function (s) {\n return \" created by \" + sagaLocationAsString(s.meta);\n }), [cancelledTasksAsString(sagaStack)]).join('\\n');\n};\n\nfunction newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont) {\n var _task;\n\n if (cont === void 0) {\n cont = noop;\n }\n\n var status = RUNNING;\n var taskResult;\n var taskError;\n var deferredEnd = null;\n var cancelledDueToErrorTasks = [];\n var context = Object.create(parentContext);\n var queue = forkQueue(mainTask, function onAbort() {\n cancelledDueToErrorTasks.push.apply(cancelledDueToErrorTasks, queue.getTasks().map(function (t) {\n return t.meta.name;\n }));\n }, end);\n /**\n This may be called by a parent generator to trigger/propagate cancellation\n cancel all pending tasks (including the main task), then end the current task.\n Cancellation propagates down to the whole execution tree held by this Parent task\n It's also propagated to all joiners of this task and their execution tree/joiners\n Cancellation is noop for terminated/Cancelled tasks tasks\n **/\n\n function cancel() {\n if (status === RUNNING) {\n // Setting status to CANCELLED does not necessarily mean that the task/iterators are stopped\n // effects in the iterator's finally block will still be executed\n status = CANCELLED;\n queue.cancelAll(); // Ending with a TASK_CANCEL will propagate the Cancellation to all joiners\n\n end(TASK_CANCEL, false);\n }\n }\n\n function end(result, isErr) {\n if (!isErr) {\n // The status here may be RUNNING or CANCELLED\n // If the status is CANCELLED, then we do not need to change it here\n if (result === TASK_CANCEL) {\n status = CANCELLED;\n } else if (status !== CANCELLED) {\n status = DONE;\n }\n\n taskResult = result;\n deferredEnd && deferredEnd.resolve(result);\n } else {\n status = ABORTED;\n addSagaFrame({\n meta: meta,\n cancelledTasks: cancelledDueToErrorTasks\n });\n\n if (task.isRoot) {\n var sagaStack = toString(); // we've dumped the saga stack to string and are passing it to user's code\n // we know that it won't be needed anymore and we need to clear it\n\n clear();\n env.onError(result, {\n sagaStack: sagaStack\n });\n }\n\n taskError = result;\n deferredEnd && deferredEnd.reject(result);\n }\n\n task.cont(result, isErr);\n task.joiners.forEach(function (joiner) {\n joiner.cb(result, isErr);\n });\n task.joiners = null;\n }\n\n function setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning('task', props));\n }\n\n assignWithSymbols(context, props);\n }\n\n function toPromise() {\n if (deferredEnd) {\n return deferredEnd.promise;\n }\n\n deferredEnd = deferred();\n\n if (status === ABORTED) {\n deferredEnd.reject(taskError);\n } else if (status !== RUNNING) {\n deferredEnd.resolve(taskResult);\n }\n\n return deferredEnd.promise;\n }\n\n var task = (_task = {}, _task[TASK] = true, _task.id = parentEffectId, _task.meta = meta, _task.isRoot = isRoot, _task.context = context, _task.joiners = [], _task.queue = queue, _task.cancel = cancel, _task.cont = cont, _task.end = end, _task.setContext = setContext, _task.toPromise = toPromise, _task.isRunning = function isRunning() {\n return status === RUNNING;\n }, _task.isCancelled = function isCancelled() {\n return status === CANCELLED || status === RUNNING && mainTask.status === CANCELLED;\n }, _task.isAborted = function isAborted() {\n return status === ABORTED;\n }, _task.result = function result() {\n return taskResult;\n }, _task.error = function error() {\n return taskError;\n }, _task);\n return task;\n}\n\nfunction proc(env, iterator$1, parentContext, parentEffectId, meta, isRoot, cont) {\n if (process.env.NODE_ENV !== 'production' && iterator$1[asyncIteratorSymbol]) {\n throw new Error(\"redux-saga doesn't support async generators, please use only regular ones\");\n }\n\n var finalRunEffect = env.finalizeRunEffect(runEffect);\n /**\n Tracks the current effect cancellation\n Each time the generator progresses. calling runEffect will set a new value\n on it. It allows propagating cancellation to child effects\n **/\n\n next.cancel = noop;\n /** Creates a main task to track the main flow */\n\n var mainTask = {\n meta: meta,\n cancel: cancelMain,\n status: RUNNING\n };\n /**\n Creates a new task descriptor for this generator.\n A task is the aggregation of it's mainTask and all it's forked tasks.\n **/\n\n var task = newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont);\n var executingContext = {\n task: task,\n digestEffect: digestEffect\n };\n /**\n cancellation of the main task. We'll simply resume the Generator with a TASK_CANCEL\n **/\n\n function cancelMain() {\n if (mainTask.status === RUNNING) {\n mainTask.status = CANCELLED;\n next(TASK_CANCEL);\n }\n }\n /**\n attaches cancellation logic to this task's continuation\n this will permit cancellation to propagate down the call chain\n **/\n\n\n if (cont) {\n cont.cancel = task.cancel;\n } // kicks up the generator\n\n\n next(); // then return the task descriptor to the caller\n\n return task;\n /**\n * This is the generator driver\n * It's a recursive async/continuation function which calls itself\n * until the generator terminates or throws\n * @param {internal commands(TASK_CANCEL | TERMINATE) | any} arg - value, generator will be resumed with.\n * @param {boolean} isErr - the flag shows if effect finished with an error\n *\n * receives either (command | effect result, false) or (any thrown thing, true)\n */\n\n function next(arg, isErr) {\n try {\n var result;\n\n if (isErr) {\n result = iterator$1.throw(arg); // user handled the error, we can clear bookkept values\n\n clear();\n } else if (shouldCancel(arg)) {\n /**\n getting TASK_CANCEL automatically cancels the main task\n We can get this value here\n - By cancelling the parent task manually\n - By joining a Cancelled task\n **/\n mainTask.status = CANCELLED;\n /**\n Cancels the current effect; this will propagate the cancellation down to any called tasks\n **/\n\n next.cancel();\n /**\n If this Generator has a `return` method then invokes it\n This will jump to the finally block\n **/\n\n result = func(iterator$1.return) ? iterator$1.return(TASK_CANCEL) : {\n done: true,\n value: TASK_CANCEL\n };\n } else if (shouldTerminate(arg)) {\n // We get TERMINATE flag, i.e. by taking from a channel that ended using `take` (and not `takem` used to trap End of channels)\n result = func(iterator$1.return) ? iterator$1.return() : {\n done: true\n };\n } else {\n result = iterator$1.next(arg);\n }\n\n if (!result.done) {\n digestEffect(result.value, parentEffectId, next);\n } else {\n /**\n This Generator has ended, terminate the main task and notify the fork queue\n **/\n if (mainTask.status !== CANCELLED) {\n mainTask.status = DONE;\n }\n\n mainTask.cont(result.value);\n }\n } catch (error) {\n if (mainTask.status === CANCELLED) {\n throw error;\n }\n\n mainTask.status = ABORTED;\n mainTask.cont(error, true);\n }\n }\n\n function runEffect(effect, effectId, currCb) {\n /**\n each effect runner must attach its own logic of cancellation to the provided callback\n it allows this generator to propagate cancellation downward.\n ATTENTION! effect runners must setup the cancel logic by setting cb.cancel = [cancelMethod]\n And the setup must occur before calling the callback\n This is a sort of inversion of control: called async functions are responsible\n of completing the flow by calling the provided continuation; while caller functions\n are responsible for aborting the current flow by calling the attached cancel function\n Library users can attach their own cancellation logic to promises by defining a\n promise[CANCEL] method in their returned promises\n ATTENTION! calling cancel must have no effect on an already completed or cancelled effect\n **/\n if (promise(effect)) {\n resolvePromise(effect, currCb);\n } else if (iterator(effect)) {\n // resolve iterator\n proc(env, effect, task.context, effectId, meta,\n /* isRoot */\n false, currCb);\n } else if (effect && effect[IO]) {\n var effectRunner = effectRunnerMap[effect.type];\n effectRunner(env, effect.payload, currCb, executingContext);\n } else {\n // anything else returned as is\n currCb(effect);\n }\n }\n\n function digestEffect(effect, parentEffectId, cb, label) {\n if (label === void 0) {\n label = '';\n }\n\n var effectId = nextSagaId();\n env.sagaMonitor && env.sagaMonitor.effectTriggered({\n effectId: effectId,\n parentEffectId: parentEffectId,\n label: label,\n effect: effect\n });\n /**\n completion callback and cancel callback are mutually exclusive\n We can't cancel an already completed effect\n And We can't complete an already cancelled effectId\n **/\n\n var effectSettled; // Completion callback passed to the appropriate effect runner\n\n function currCb(res, isErr) {\n if (effectSettled) {\n return;\n }\n\n effectSettled = true;\n cb.cancel = noop; // defensive measure\n\n if (env.sagaMonitor) {\n if (isErr) {\n env.sagaMonitor.effectRejected(effectId, res);\n } else {\n env.sagaMonitor.effectResolved(effectId, res);\n }\n }\n\n if (isErr) {\n setCrashedEffect(effect);\n }\n\n cb(res, isErr);\n } // tracks down the current cancel\n\n\n currCb.cancel = noop; // setup cancellation logic on the parent cb\n\n cb.cancel = function () {\n // prevents cancelling an already completed effect\n if (effectSettled) {\n return;\n }\n\n effectSettled = true;\n currCb.cancel(); // propagates cancel downward\n\n currCb.cancel = noop; // defensive measure\n\n env.sagaMonitor && env.sagaMonitor.effectCancelled(effectId);\n };\n\n finalRunEffect(effect, effectId, currCb);\n }\n}\n\nvar RUN_SAGA_SIGNATURE = 'runSaga(options, saga, ...args)';\nvar NON_GENERATOR_ERR = RUN_SAGA_SIGNATURE + \": saga argument must be a Generator function!\";\nfunction runSaga(_ref, saga) {\n var _ref$channel = _ref.channel,\n channel = _ref$channel === void 0 ? stdChannel() : _ref$channel,\n dispatch = _ref.dispatch,\n getState = _ref.getState,\n _ref$context = _ref.context,\n context = _ref$context === void 0 ? {} : _ref$context,\n sagaMonitor = _ref.sagaMonitor,\n effectMiddlewares = _ref.effectMiddlewares,\n _ref$onError = _ref.onError,\n onError = _ref$onError === void 0 ? logError : _ref$onError;\n\n if (process.env.NODE_ENV !== 'production') {\n check(saga, func, NON_GENERATOR_ERR);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var iterator$1 = saga.apply(void 0, args);\n\n if (process.env.NODE_ENV !== 'production') {\n check(iterator$1, iterator, NON_GENERATOR_ERR);\n }\n\n var effectId = nextSagaId();\n\n if (sagaMonitor) {\n // monitors are expected to have a certain interface, let's fill-in any missing ones\n sagaMonitor.rootSagaStarted = sagaMonitor.rootSagaStarted || noop;\n sagaMonitor.effectTriggered = sagaMonitor.effectTriggered || noop;\n sagaMonitor.effectResolved = sagaMonitor.effectResolved || noop;\n sagaMonitor.effectRejected = sagaMonitor.effectRejected || noop;\n sagaMonitor.effectCancelled = sagaMonitor.effectCancelled || noop;\n sagaMonitor.actionDispatched = sagaMonitor.actionDispatched || noop;\n sagaMonitor.rootSagaStarted({\n effectId: effectId,\n saga: saga,\n args: args\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (notUndef(dispatch)) {\n check(dispatch, func, 'dispatch must be a function');\n }\n\n if (notUndef(getState)) {\n check(getState, func, 'getState must be a function');\n }\n\n if (notUndef(effectMiddlewares)) {\n var MIDDLEWARE_TYPE_ERROR = 'effectMiddlewares must be an array of functions';\n check(effectMiddlewares, array$1, MIDDLEWARE_TYPE_ERROR);\n effectMiddlewares.forEach(function (effectMiddleware) {\n return check(effectMiddleware, func, MIDDLEWARE_TYPE_ERROR);\n });\n }\n\n check(onError, func, 'onError passed to the redux-saga is not a function!');\n }\n\n var finalizeRunEffect;\n\n if (effectMiddlewares) {\n var middleware = compose.apply(void 0, effectMiddlewares);\n\n finalizeRunEffect = function finalizeRunEffect(runEffect) {\n return function (effect, effectId, currCb) {\n var plainRunEffect = function plainRunEffect(eff) {\n return runEffect(eff, effectId, currCb);\n };\n\n return middleware(plainRunEffect)(effect);\n };\n };\n } else {\n finalizeRunEffect = identity;\n }\n\n var env = {\n channel: channel,\n dispatch: wrapSagaDispatch(dispatch),\n getState: getState,\n sagaMonitor: sagaMonitor,\n onError: onError,\n finalizeRunEffect: finalizeRunEffect\n };\n return immediately(function () {\n var task = proc(env, iterator$1, context, effectId, getMetaInfo(saga),\n /* isRoot */\n true, undefined);\n\n if (sagaMonitor) {\n sagaMonitor.effectResolved(effectId, task);\n }\n\n return task;\n });\n}\n\nfunction sagaMiddlewareFactory(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$context = _ref.context,\n context = _ref$context === void 0 ? {} : _ref$context,\n _ref$channel = _ref.channel,\n channel = _ref$channel === void 0 ? stdChannel() : _ref$channel,\n sagaMonitor = _ref.sagaMonitor,\n options = _objectWithoutPropertiesLoose(_ref, [\"context\", \"channel\", \"sagaMonitor\"]);\n\n var boundRunSaga;\n\n if (process.env.NODE_ENV !== 'production') {\n check(channel, channel$1, 'options.channel passed to the Saga middleware is not a channel');\n }\n\n function sagaMiddleware(_ref2) {\n var getState = _ref2.getState,\n dispatch = _ref2.dispatch;\n boundRunSaga = runSaga.bind(null, _extends({}, options, {\n context: context,\n channel: channel,\n dispatch: dispatch,\n getState: getState,\n sagaMonitor: sagaMonitor\n }));\n return function (next) {\n return function (action) {\n if (sagaMonitor && sagaMonitor.actionDispatched) {\n sagaMonitor.actionDispatched(action);\n }\n\n var result = next(action); // hit reducers\n\n channel.put(action);\n return result;\n };\n };\n }\n\n sagaMiddleware.run = function () {\n if (process.env.NODE_ENV !== 'production' && !boundRunSaga) {\n throw new Error('Before running a Saga, you must mount the Saga middleware on the Store using applyMiddleware');\n }\n\n return boundRunSaga.apply(void 0, arguments);\n };\n\n sagaMiddleware.setContext = function (props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning('sagaMiddleware', props));\n }\n\n assignWithSymbols(context, props);\n };\n\n return sagaMiddleware;\n}\n\nexport default sagaMiddlewareFactory;\nexport { END, channel, eventChannel, isEnd, multicastChannel, runSaga, stdChannel };\n","import createSagaMiddleware__default from '@redux-saga/core';\nexport * from '@redux-saga/core';\n\n\n\nexport default createSagaMiddleware__default;\n","import '@redux-saga/symbols';\nimport '@babel/runtime/helpers/esm/extends';\nimport { channel, stringableFunc, func, notUndef } from '@redux-saga/is';\nimport { q as makeIterator, L as take, M as fork, N as cancel, O as call, Q as delay, U as actionChannel, V as sliding, W as race, c as check } from './io-22ea0cf9.js';\nexport { U as actionChannel, $ as all, a0 as apply, O as call, N as cancel, a5 as cancelled, a1 as cps, Q as delay, X as effectTypes, a6 as flush, M as fork, a7 as getContext, a3 as join, Z as put, _ as putResolve, W as race, a4 as select, a8 as setContext, a2 as spawn, L as take, Y as takeMaybe } from './io-22ea0cf9.js';\nimport '@redux-saga/delay-p';\n\nvar done = function done(value) {\n return {\n done: true,\n value: value\n };\n};\n\nvar qEnd = {};\nfunction safeName(patternOrChannel) {\n if (channel(patternOrChannel)) {\n return 'channel';\n }\n\n if (stringableFunc(patternOrChannel)) {\n return String(patternOrChannel);\n }\n\n if (func(patternOrChannel)) {\n return patternOrChannel.name;\n }\n\n return String(patternOrChannel);\n}\nfunction fsmIterator(fsm, startState, name) {\n var stateUpdater,\n errorState,\n effect,\n nextState = startState;\n\n function next(arg, error) {\n if (nextState === qEnd) {\n return done(arg);\n }\n\n if (error && !errorState) {\n nextState = qEnd;\n throw error;\n } else {\n stateUpdater && stateUpdater(arg);\n var currentState = error ? fsm[errorState](error) : fsm[nextState]();\n nextState = currentState.nextState;\n effect = currentState.effect;\n stateUpdater = currentState.stateUpdater;\n errorState = currentState.errorState;\n return nextState === qEnd ? done(arg) : effect;\n }\n }\n\n return makeIterator(next, function (error) {\n return next(null, error);\n }, name);\n}\n\nfunction takeEvery(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action,\n setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yFork(action)\n };\n }\n }, 'q1', \"takeEvery(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLatest(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yCancel = function yCancel(task) {\n return {\n done: false,\n value: cancel(task)\n };\n };\n\n var task, action;\n\n var setTask = function setTask(t) {\n return task = t;\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return task ? {\n nextState: 'q3',\n effect: yCancel(task)\n } : {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n },\n q3: function q3() {\n return {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n }\n }, 'q1', \"takeLatest(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLeading(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yCall = function yCall(ac) {\n return {\n done: false,\n value: call.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action;\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yCall(action)\n };\n }\n }, 'q1', \"takeLeading(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction throttle(delayLength, patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, channel$1;\n\n var yTake = function yTake() {\n return {\n done: false,\n value: take(channel$1)\n };\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setChannel = function setChannel(ch) {\n return channel$1 = ch;\n };\n\n var needsChannel = !channel(patternOrChannel);\n\n if (!needsChannel) {\n setChannel(patternOrChannel);\n }\n\n return fsmIterator({\n q1: function q1() {\n var yActionChannel = {\n done: false,\n value: actionChannel(patternOrChannel, sliding(1))\n };\n return {\n nextState: 'q2',\n effect: yActionChannel,\n stateUpdater: setChannel\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yTake(),\n stateUpdater: setAction\n };\n },\n q3: function q3() {\n return {\n nextState: 'q4',\n effect: yFork(action)\n };\n },\n q4: function q4() {\n return {\n nextState: 'q2',\n effect: yDelay\n };\n }\n }, needsChannel ? 'q1' : 'q2', \"throttle(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction retry(maxTries, delayLength, fn) {\n var counter = maxTries;\n\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var yCall = {\n done: false,\n value: call.apply(void 0, [fn].concat(args))\n };\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yCall,\n errorState: 'q10'\n };\n },\n q2: function q2() {\n return {\n nextState: qEnd\n };\n },\n q10: function q10(error) {\n counter -= 1;\n\n if (counter <= 0) {\n throw error;\n }\n\n return {\n nextState: 'q1',\n effect: yDelay\n };\n }\n }, 'q1', \"retry(\" + fn.name + \")\");\n}\n\nfunction debounceHelper(delayLength, patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, raceOutput;\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n var yRace = {\n done: false,\n value: race({\n action: take(patternOrChannel),\n debounce: delay(delayLength)\n })\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yNoop = function yNoop(value) {\n return {\n done: false,\n value: value\n };\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setRaceOutput = function setRaceOutput(ro) {\n return raceOutput = ro;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yRace,\n stateUpdater: setRaceOutput\n };\n },\n q3: function q3() {\n return raceOutput.debounce ? {\n nextState: 'q1',\n effect: yFork(action)\n } : {\n nextState: 'q2',\n effect: yNoop(raceOutput.action),\n stateUpdater: setAction\n };\n }\n }, 'q1', \"debounce(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nvar validateTakeEffect = function validateTakeEffect(fn, patternOrChannel, worker) {\n check(patternOrChannel, notUndef, fn.name + \" requires a pattern or channel\");\n check(worker, notUndef, fn.name + \" requires a saga parameter\");\n};\n\nfunction takeEvery$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeEvery$1, patternOrChannel, worker);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n return fork.apply(void 0, [takeEvery, patternOrChannel, worker].concat(args));\n}\nfunction takeLatest$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLatest$1, patternOrChannel, worker);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n return fork.apply(void 0, [takeLatest, patternOrChannel, worker].concat(args));\n}\nfunction takeLeading$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLeading$1, patternOrChannel, worker);\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n return fork.apply(void 0, [takeLeading, patternOrChannel, worker].concat(args));\n}\nfunction throttle$1(ms, patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n check(patternOrChannel, notUndef, \"throttle requires a pattern or channel\");\n check(worker, notUndef, 'throttle requires a saga parameter');\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++) {\n args[_key4 - 3] = arguments[_key4];\n }\n\n return fork.apply(void 0, [throttle, ms, patternOrChannel, worker].concat(args));\n}\nfunction retry$1(maxTries, delayLength, worker) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++) {\n args[_key5 - 3] = arguments[_key5];\n }\n\n return call.apply(void 0, [retry, maxTries, delayLength, worker].concat(args));\n}\nfunction debounce(delayLength, pattern, worker) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++) {\n args[_key6 - 3] = arguments[_key6];\n }\n\n return fork.apply(void 0, [debounceHelper, delayLength, pattern, worker].concat(args));\n}\n\nexport { debounce, retry$1 as retry, takeEvery$1 as takeEvery, takeLatest$1 as takeLatest, takeLeading$1 as takeLeading, throttle$1 as throttle };\n","/**\n * API routes for the application.\n *\n * This file contains the definition of API routes used in the application. It provides a centralized\n * location to manage and access the various API endpoints used by the application.\n *\n * Example usage:\n *\n * import { API_ROUTE_CBO } from './libs/services/ApiRoute';\n *\n * // Accessing a specific API route\n * const loginRoute = API_ROUTE_CBO.CBO_LOGIN;\n *\n * // Using the API route in an API call\n * fetch(loginRoute)\n * .then(response => {\n * // Handle the response\n * })\n * .catch(error => {\n * // Handle the error\n * });\n */\n/**\n * API routes for the application.\n */\nexport const API_ROUTE_CBO = {\n CBO_LOGIN: 'login',\n GET_USER_PERMISSIONS: 'user/permission',\n CWB: {\n GET_ASSESSMENT_DATA: 'cwb/configurecomponents',\n CWB_SSO_URL: 'cwb/users/ssoLoginUrl',\n },\n GET_SESSION_TOKEN_DATA: 'user-activity',\n WORKFLOW: 'workflow',\n multiCloudYaml: 'multi-cloud-landing-zone/yaml',\n POST_CUSTOM_LOGIN: 'client/login',\n POST_CHANGE_PASSWORD: 'client/resetPassword',\n GET_PURSUITS: 'engagement/list',\n GET_ENGAGEMENTS: 'project/list',\n GET_JOURNEY_CAPABILITY: 'configure/capability',\n GET_PURSUIT_CONFIG: 'engagement/configure/:engagementId',\n GET_ENGAGEMENT_CONFIG: 'project/:engagementId',\n SAVE_PURSUIT_CONFIG: 'engagement/configure',\n VALIDATE_PURSUIT_NAME: 'pursuit/validatepursuitname',\n SAVE_ENGAGEMENT_CONFIG: 'project',\n DELETE_ENGAGEMENT: 'engagement/configure',\n GET_CLIENTS: 'client',\n GET_CLIENT_ENGAGEMENTS: 'engagement/client/:clientId',\n GET_CLIENT_ENG_MAPPINGS: 'engagement/client',\n SAVE_CLIENT: 'client',\n SAVE_ENGAGEMENT: 'engagement',\n DELETE_CLIENT: 'client/:clientId',\n GET_USER_LIST: 'admin/user',\n GET_MOST_VISITED_DATA: 'analytics/page',\n POST_VISITED_DATA: 'analytics/page',\n GET_CLOUD_ANALYTICS_DATA: 'cloud',\n GET_CLOUD_ASSESSMENT_DATA: 'cloud-assessment',\n GET_METRIC_ANALYTICS: 'analytics/engagement/metric',\n KEY_ASSETS_COUNT: '',\n NEW_VS_RETURNING_USERS: 'new-vs-returning-users',\n GET_USERS_VISITS_DATA: 'visits',\n GET_PAGE_VIEWS_DATA: 'page-views',\n BOUNCE_RATE_DATA: 'bounce-rate',\n GET_USER_ACTIVITY_DATA: 'analytics/user-activity',\n GET_ACTIVE_USERS_DATA: 'analytics/active-users/',\n GET_RBAC_DATA: 'policy',\n GET_ROLE_METADATA: 'roles',\n GET_CWB_AUTH_TOKEN: 'authorise/cwb',\n REFRESH_TOKEN: 'refresh-token',\n GET_ENGAGEMENT_ASSETS: 'project/asset/:engagementId',\n GET_PURSUIT_ASSETS: 'engagement/configure/assets/:engagementId',\n POST_PURSUIT_ASSETS: 'engagement/configure/assets',\n POST_ENGAGEMENT_ASSETS: 'project/asset',\n GET_JOURNEY_BUILDER_LIST: 'journey',\n GET_PREDEFINED_JOURNEY_LIST: 'journey/meta-data',\n GET_CE_PREDEFINED_JOURNEY_LIST: 'journey/metadata',\n GET_JOURNEY_MANDATORY_ASSETS: 'configure/capability/mandatory/assets',\n GET_JOURNEY_RECOMMENDED_ASSETS: 'journey/:journeyId/allAsset',\n POST_JOURNEY_BUILDER_SAVE: 'journey',\n DELETE_DOCUMENT: '',\n POST_SUBMIT_STATUS: 'journey/action',\n GET_ADDED_DOCUMENT_LIST: 'journey/:journeyId/assets',\n JOURNEY_BUILDER: 'journey',\n GET_BUSINESS_OBJECTIVES: 'journey/businessobjectives/metadata',\n GET_CAPABILITY: 'capability',\n GET_FEATURES: 'feature',\n GET_KEY_ASSETS: 'keyAssets',\n SAVE_CAPABILITY: 'capability',\n GET_LIFT_AND_SHIFT: 'jira/pie-chart',\n GET_JIRA_INITIATIVES: 'jira/initiatives',\n GET_JIRA_EPICS: 'jira/epics',\n GET_JIRA_TASKS: 'jira/tasks',\n GET_JIRA_TASKLIST: 'jira/:phase/taskList',\n POST_CAPABILITY_ORDER: 'engagement/configure/capability/order',\n GET_AD_ACCESS_TOKEN: 'ad_access_token',\n GET_SERVICE_ACCOUNT_AD_TOKEN: 'ad_token',\n GET_ENGAGEMENT_ASSET_DETAILS: 'journey/asset-details/:assetId/assetType/:assetType',\n GET_SQL_DATA: 'projects/:projectId/statements/aggregations',\n GET_DECOMPOSITION_GRAPH_DATA: 'api/v1/projects/:projectId/taxonomies',\n GET_ARTIFACTS_GRAPH_DATA: 'api/v1/projects/:projectId/modules/aggregations',\n POST_CODE_QUALITY: 'api/v1/projects/:projectId/modules/aggregations',\n GET_INNOWAKE_TOKEN: 'innowake-mining/token',\n GET_ASSET_CREDENTIAL: 'keyasset/credential',\n KEYCLOAK_TOKEN: 'protocol/openid-connect/token',\n GET_TABLE_JIRA_INITIATIVES: 'jira/:phase/initiativeList',\n GET_JIRA_TABLE_EPICS: 'jira/:phase/epicList',\n FEATURES: 'configure/engagement/features',\n ASSET_CATEGORY: 'marketplace/assetCategory',\n SYSTEM_TAGS: 'marketplace/tags',\n GET_FILTER_DATA: 'assets/url',\n POST_FILTER_DATA: 'assets/filterurl',\n GET_MARKETPLACE_ASSETS: 'marketplace/search/assets',\n GET_KEY_ASSETS_ICON_LIST: 'key-assets/icons',\n FEEDBACK: 'feedback',\n GET_JOURNEY_FILTER_LIST: 'marketplace/journey/capabilities',\n ADMIN_FEEDBACK: 'feedback/admin',\n GET_KEY_ASSETS_LIST: 'keyAssets',\n GET_ENG_KEY_ASSETS_LIST: 'project/keyAsset',\n GET_IMPORTANT_LINKS: 'dnet/search',\n ENGAGEMENT_CONVERSION: 'pursuit/status',\n GET_PURSUITS_ENGAGEMENT_METRICS: 'analytics/engagement/metric/PURVSENG',\n GET_JIRA_INITIATIVE: 'jira/project/:projectId/:phase?type=initiative',\n GET_PURSUIT_JIRA_INITIATIVE: 'jira/engagement/:pursuitId/:phase?type=initiative',\n GET_JIRA_EPIC: 'jira/project/:projectId/:phase',\n GET_PURSUIT_JIRA_EPIC: 'jira/engagement/:pursuitId/:phase',\n GET_JIRA_TASK: 'jira/project/:projectId/:phase',\n GET_PURSUIT_JIRA_TASK: 'jira/engagement/:pursuitId/:phase',\n GET_JIRA_STORY: 'jira/project/:projectId/:phase',\n GET_PURSUIT_JIRA_STORY: 'jira/engagement/:pursuitId/:phase',\n GET_JIRA_SPRINT: 'jira/project/:projectId/:phase?type=sprint',\n GET_PURSUIT_JIRA_SPRINT: 'jira/engagement/:pursuitId/:phase?type=sprint',\n\n POST_OPERATE_EDGE_INCIDENT_DATA: 'operateedge/incident/getIncidentData',\n POST_OPERATE_EDGE_ALL_GRAPHS: 'operateedge/incident/getIncidentAllGraphsData',\n\n GET_CLIENT_USER_MAPPING: 'admin/user/:userId',\n SHOW_USER_CLIENT: 'admin/user/:userId',\n UPDATE_KEY_ASSET_CONFIG: 'project/keyasset',\n UPDATE_PURSUIT_KEY_ASSET_CONFIG: 'engagement/keyasset/config',\n\n //CWB Eng specific\n GET_ENG_FIVE_YR_PL_DATA: 'cwb/project/:projectId/exportchartdata',\n GET_ENG_CHART_DATA: 'cwb/project/:projectId/bauvscloud',\n GET_ENG_COMPUTE_COST_DATA: 'cwb/project/:projectId/computecost',\n GET_ENG_STORAGE_COST_DATA: 'cwb/project/:projectId/storagecost',\n GET_ENG_HEATMAP_DATA: 'cwb/project/:projectId/heatmap',\n GET_ENG_ASSESSMENT_DATA: 'cwb/project/:projectId/configurecomponents', //pending\n GET_ENG_CATEGORIES_DATA: 'cwb/project/:projectId/assessmentdetailspopup', //pending\n GET_ENG_GREEN_CLOUD_DATA: 'cwb/project/:projectId/greencloud',\n\n //Pursuit Specific for CWB\n GET_PURSUIT_FIVE_YR_PL_DATA: 'cwb/engagement/:pursuitId/exportchartdata',\n GET_PURSUIT_CHART_DATA: 'cwb/engagement/:pursuitId/bauvscloud',\n GET_PURSUIT_COMPUTE_COST_DATA: 'cwb/engagement/:pursuitId/computecost',\n GET_PURSUIT_STORAGE_COST_DATA: 'cwb/engagement/:pursuitId/storagecost',\n GET_PURSUIT_HEATMAP_DATA: 'cwb/engagement/:pursuitId/heatmap',\n GET_PURSUIT_CATEGORIES_DATA: 'cwb/engagement/:pursuitId/assessmentdetailspopup',\n GET_PURSUIT_GREEN_CLOUD_DATA: 'cwb/engagement/:pursuitId/greencloud',\n\n //DCA Engagement Specific\n GET_ENG_S3_FILES: 'dca/project/:projectId/s3files ',\n LIST_ENG_LANDING_ZONES: 'dca/project/:projectId/landingzone',\n\n //DCA pursuit Specific\n GET_PURSUIT_S3_FILES: 'dca/engagement/:pursuitId/s3files ',\n LIST_PURSUIT_LANDING_ZONES: 'dca/engagement/:pursuitId/landingzone',\n\n // OperateEdge\n GET_ENG_OPERATE_EDGE_INCIDENT_DATA: 'operateedge/project/:projectId/incidentdata',\n GET_PURSUIT_OPERATE_EDGE_INCIDENT_DATA:\n 'operateedge/engagement/:pursuitId/incident/getIncidentData',\n GET_ENG_OPERATE_EDGE_ALL_GRAPHS: 'operateedge/project/:projectId/allincident',\n GET_PURSUIT_OPERATE_EDGE_ALL_GRAPHS:\n 'operateedge/engagement/:pursuitId/incident/getIncidentAllGraphsData',\n GET_ISSUE_BY_SEVERITY: 'smartsheet',\n\n GET_SMART_SHEETS: 'smartsheet',\n GET_DOMAIN_LIST: 'capability/domain/metadata',\n\n //TrunNorth Health check used for VPN check\n GET_HEALTH_CHECK: `/core/api/v1/health`,\n\n //LearningCenter\n GET_LEARNING_CENTER_SUMMARY_PURSUIT:\n 'operateedge/engagement/:pursuitId/report/GetTileAndBreakdownDetails',\n GET_LEARNING_CENTER_SUMMARY_ENG:\n 'operateedge/project/:engagementId/report/GetTileAndBreakdownDetails',\n GET_LEARNING_CENTER_COURSE_STATUS_PURSUIT:\n 'operateedge/engagement/:pursuitId/report/StatusWiseCoursesUsersStatusCount',\n GET_LEARNING_CENTER_COURSE_STATUS_ENG:\n 'operateedge/project/:engagementId/report/StatusWiseCoursesUsersStatusCount',\n\n // Manage Engagement Feature\n ENGAGEMENT_FEATURES: 'configure/project/features',\n\n //DEP\n GET_ENG_DEP_: 'dep/project/:projectId',\n GET_PURSUIT_DEP_: 'dep/engagement/:pursuitId',\n GET_ENG_DEP_CODESPACES: 'dep/codespace/project/:projectId',\n GET_PURSUIT_DEP_CODESPACES: 'dep/codespace/engagement/:pursuitId',\n\n //ProblemIsnights\n GET_ENG_PROBLEM_INSIGHTS_RUN_LIST: 'operateedge/project/:projectId/probleminsights/getdijobqueue',\n GET_PURSUIT_PROBLEM_INSIGHTS_RUN_LIST:\n 'operateedge/engagement/:engagementId/probleminsights/getdijobqueue',\n GET_ENG_PROBLEM_INSIGHTS_RUN_DETAILS:\n 'operateedge/project/:projectId/probleminsights/getrundetails',\n GET_PURSUIT_PROBLEM_INSIGHTS_RUN_DETAILS:\n 'operateedge/engagement/:engagementId/probleminsights/getrundetails',\n GET_ENG_PROBLEM_GROUP_OVERVIEW:\n 'operateedge/project/:projectId/probleminsights/getproblemgroupoverview',\n GET_PURSUIT_PROBLEM_GROUP_OVERVIEW:\n 'operateedge/engagement/:engagementId/probleminsights/getproblemgroupoverview',\n\n //KMS\n GET_KMS_APPLICATIONS: 'kms/applications',\n //Transitions Module\n GET_ENG_ACTIVITY_SUMMARY: 'operateedge/project/:engagementId/activity-summary',\n GET_ENG_TRANSITIONS: 'operateedge/project/:engagementId/transitions',\n GET_ENG_RISK_SUMMARY: 'operateedge/project/:engagementId/risk-summary',\n GET_ACTIVITY_SUMMARY: 'operateedge/engagement/:pursuitId/activity-summary',\n GET_TRANSITIONS: 'operateedge/engagement/:pursuitId/transitions',\n GET_RISK_SUMMARY: 'operateedge/engagement/:pursuitId/risk-summary',\n\n //CBO-2901_AI_AUTO_NEW_CODE : Added new API Routes for AppProgressionData, ServerProgressionData and ArchetypeList for both Pursuit and Engagement Modes\n //\n GET_ENG_ARCHETYPE_LIST: 'migrate/project/:engagementId/architype',\n GET_ARCHETYPE_LIST: 'migrate/engagement/:pursuitId/architype',\n\n GET_ENG_APP_PROGRESSION: 'migrate/project/:engagementId/app/status',\n GET_ENG_SERVER_PROGRESSION: 'migrate/project/:engagementId/server/status',\n GET_APP_PROGRESSION: 'migrate/engagement/:pursuitId/app/status',\n GET_SERVER_PROGRESSION: 'migrate/engagement/:pursuitId/server/status',\n\n GET_ENG_APP_PROGRESSION_MONTHLY: 'migrate/project/:engagementId/app/month/status',\n GET_ENG_SERVER_PROGRESSION_MONTHLY: 'migrate/project/:engagementId/server/month/status',\n GET_APP_PROGRESSION_MONTHLY: 'migrate/engagement/:pursuitId/app/month/status',\n GET_SERVER_PROGRESSION_MONTHLY: 'migrate/engagement/:pursuitId/server/month/status',\n //CB360\n GET_ENG_TCO_INSIGHTS: 'cb360/project/:engagementId/tcoinsight',\n GET_TCO_INSIGHTS: 'cb360/engagement/:engagementId/tcoinsight',\n GET_ENG_COST_TREND: 'cb360/project/:engagementId/costtrend',\n GET__COST_TREND: 'cb360/engagement/:engagementId/costtrend',\n GET_ENG_COST_ALLOCATION_SUMMARY: 'cb360/project/:engagementId/costallocationsummary',\n GET_COST_ALLOCATION_SUMMARY: 'cb360/engagement/:engagementId/costallocationsummary',\n\n GET_ALLOCATION_TREND: 'cb360/engagement/:engagementId/costallocationtrend',\n GET_ENG_ALLOCATION_TREND: 'cb360/project/:engagementId/costallocationtrend',\n GET_CLOUD_COST_SUMMARY_TREND: 'cb360/engagement/:engagementId/costsummarytrend',\n GET_ENG_CLOUD_COST_SUMMARY_TREND: 'cb360/project/:engagementId/costsummarytrend',\n //BlockersandCauses\n\n GET_ENG_BLOCKER_CAUSES: 'migrate/project/:engagementId/blocker/status',\n GET_BLOCKER_CAUSES: 'migrate/engagement/:pursuitId/blocker/status',\n GET_JOURNEY_MAPPING: 'journey/:journeyId/mapping',\n DELETE_JOURNEY: 'journey/:journeyId',\n\n GET_ENG_SERVERS_BY_UPGRADE: 'migrate/project/:engagementId/upgrade/status',\n GET_SERVERS_BY_UPGRADE: 'migrate/engagement/:engagementId/upgrade/status',\n\n GET_USER_ACTIVITY: 'analytics/user/:userMail/activity',\n GET_ANALYTICS_USER_LIST: 'analytics/unique/user',\n GET_PURSUIT_ANALYTICS: 'analytics/active/pursuit',\n GET_DISPOSITIONS_BY_WAVE: 'migrate/engagement/:pursuitId/wave/dispositions',\n GET_ENG_DISPOSITIONS_BY_WAVE: 'migrate/project/:engagementId/wave/dispositions',\n\n //innowake proxys\n\n GET_PURSUIT_SQL_DATA: 'innowake/engagement/:projectId/statements/aggregations',\n GET_ENG_SQL_DATA: 'innowake/project/:projectId/statements/aggregations',\n GET_PURSUIT_DECOMPOSITION_GRAPH_DATA: 'innowake/engagement/:projectId/taxonomies',\n GET_ENG_DECOMPOSITION_GRAPH_DATA: 'innowake/project/:projectId/taxonomies',\n GET_PURSUIT_ARTIFACTS_GRAPH_DATA: 'innowake/engagement/:projectId/modules/aggregations',\n GET_ENG_ARTIFACTS_GRAPH_DATA: 'innowake/project/:projectId/modules/aggregations',\n POST_PURSUIT_CODE_QUALITY: 'innowake/engagement/:projectId/modules/aggregations',\n POST_ENG_CODE_QUALITY: 'innowake/project/:projectId/modules/aggregations',\n\n // TruNorthProxies\n\n GET_ENG_APPLICATION_DISPOSITIONING: 'trunorth/project/:projectId/report/business-applications',\n GET_PURSUIT_APPLICATION_DISPOSITIONING:\n 'trunorth/engagement/:projectId/report/business-applications',\n GET_ENG_SURVEY_METRICS_INVENTORY: 'trunorth/project/:projectId/report/summary',\n GET_PURSUIT_SURVEY_METRICS_INVENTORY: 'trunorth/engagement/:projectId/report/summary',\n GET_ENG_SURVEY_METRICS_BUSINESS:\n 'trunorth/project/:projectId/report/business-applications/by-line-of-business',\n GET_PURSUIT_SURVEY_METRICS_BUSINESS:\n 'trunorth/engagement/:projectId/report/business-applications/by-line-of-business',\n GET_ENG_DISCOVERY_METRICS: 'trunorth/project/:projectId/report/portfolio-summary',\n GET_PURSUIT_DISCOVERY_METRICS: 'trunorth/engagement/:projectId/report/portfolio-summary',\n GET_ENG_WAVE_PLAN: 'trunorth/project/:projectId/report/wave-plan',\n GET_PURSUIT_WAVE_PLAN: 'trunorth/engagement/:projectId/report/wave-plan',\n\n // Digital Tester Proxies\n GET_ENG_WORKFLOWS_LIST: 'digital-tester/project/:projectId/workflow-details',\n GET_PURSUIT_WORKFLOWS_LIST: 'digital-tester/engagement/:projectId/workflow-details',\n GET_ENG_WORKFLOW_METRICS: 'digital-tester/project/:projectId/metrics-details/:workflowId',\n GET_PURSUIT_WORKFLOW_METRICS: 'digital-tester/engagement/:projectId/metrics-details/:workflowId',\n GET_ENG_WORKFLOW_REPORTS: 'digital-tester/project/:projectId/execution-details/:workflowId',\n GET_PURSUIT_WORKFLOW_REPORTS:\n 'digital-tester/engagement/:projectId/execution-details/:workflowId',\n\n //TalkQE Proxy\n GET_DEFECT_AGEING: 'talkqe/engagement/:projectId/defect-ageing',\n GET_NUMBER_OF_TEST_CASES: 'talkqe/engagement/:projectId/test-case-view',\n GET_SEVERITY_VS_CREATED_ON: 'talkqe/engagement/:projectId/severity-vs-created-on',\n GET_TEST_RUN_STATUS: 'talkqe/engagement/:projectId/test-run-status',\n GET_TABLE_COUNT: 'talkqe/engagement/:projectId/table-count',\n GET_ENG_DEFECT_AGEING: 'talkqe/project/:projectId/defect-ageing',\n GET_ENG_NUMBER_OF_TEST_CASES: 'talkqe/project/:projectId/test-case-view',\n GET_ENG_SEVERITY_VS_CREATED_ON: 'talkqe/project/:projectId/severity-vs-created-on',\n GET_ENG_TEST_RUN_STATUS: 'talkqe/project/:projectId/test-run-status',\n GET_ENG_TABLE_COUNT: 'talkqe/project/:projectId/table-count',\n\n //Web Analytics pursuits & Engagements Reports\n GET_PERIODWISE_PURSUITS_DATA: 'pursuit/report',\n GET_PERIODWISE_ENGAGEMENTS_DATA: 'engagement/report',\n GET_JOURNEYWISE_PURSUITS_ENG: 'journey/report',\n GET_OVERALL_SUMMARY_STATUS_REPORT: 'analytics/summary',\n GET_PURSUITS_ACCUMULATIVE_REPORT: 'analytics/pursuit/report',\n GET_ENGAGEMENTS_ACCUMULATIVE_REPORT: 'analytics/engagement/report',\n GET_FISCAL_YEARS_META_DATA: 'analytics/metadata',\n GET_PURSUIT_REPORTS_TABLE: 'analytics/pursuit/detailed-summary',\n GET_ENGAGEMENT_REPORTS_TABLE: 'analytics/engagement/detailed-summary',\n\n //TruNorth Decompose\n GET_ENG_TAXONOMY_EDITOR: 'trunorth-decompose/project/:engagementId/taxonomy',\n GET_PURSUIT_TAXONOMY_EDITOR: 'trunorth-decompose/engagement/:pursuitId/taxonomy',\n GET_PURSUIT_LEGACY_VIEW: 'trunorth-decompose/engagement/:projectId/legacy-db-details',\n GET_ENG_LEGACY_VIEW: 'trunorth-decompose/project/:projectId/legacy-db-details',\n GET_PURSUIT_LEGACY_GRAPH: 'trunorth-decompose/engagement/:projectId/legacy-db-graph-model',\n GET_ENG_LEGACY_GRAPH: 'trunorth-decompose/project/:projectId/legacy-db-graph-model',\n\n //eng closure date\n POST_ENGAGEMENT_CLOSURE_DATE: 'close/project/:projectId',\n\n //smartstart\n\n GET_SMARTSTART_MOF_DETAILS: 'asset/:assetId/mof-tags',\n GET_SMARTSTART: 'assets',\n GET_ALL_SMARTSTART: 'assets/export',\n ADD_SMART_START: 'asset',\n UPDATE_SMART_START: 'asset',\n ADD_SMART_START_MOF: 'asset/mof-tags',\n GET_SMARTSTART_CATEGORIES: 'asset/category',\n DELETE_SMART_START: 'asset/:assetId',\n GET_SMARTSTART_TAGS: 'asset/tags',\n\n //Tags\n GET_TAGS_LIST: 'tags/metadata',\n};\n","export enum LogLevel {\n None,\n Errors,\n Debug,\n Trace,\n}\nimport { ONECBO, CWB, DCA } from './AppConstants';\nimport { getAPIStackUrl } from './containers/CBOLogin/CBOLoginConstants';\n\nconst DCAurls: { [key: string]: string } = {\n local: 'https://jmly57rgw1.execute-api.us-east-1.amazonaws.com',\n dev: 'https://tangradcaapi.deloitte.com',\n};\nconst CBOurls: { [key: string]: string } = {\n stack_url: getAPIStackUrl(), //ONECBO.ONECBO_STACK_URL,\n localStack: getAPIStackUrl(), //ONECBO.ONECBO_STACK_URL,\n};\n\nconst CWBurls = {\n stack_url: CWB.STACK_URL,\n // staging: 'https://cloudworkbenchapi.deloitte.com',\n // prod: 'https://cloudworkbenchapi.deloitte.com',\n};\n\nconst DCPurls = 'https://3cm6q63da8.execute-api.us-east-1.amazonaws.com';\n\n// Using this as baseURL for migrated Tangra APIs. To be changed later to use as baseURL for all APIs of TangraBE\nconst tangraURLs: { [key: string]: string } = {\n stack_url: DCA.STACK_URL,\n // prod: 'https://qsp5weyu2a.execute-api.us-east-1.amazonaws.com/V1',\n // dev: 'https://jfsjlgmg74.execute-api.us-east-1.amazonaws.com/V1',\n};\n\nconst SocketURL: { [key: string]: string } = {\n prod: 'wss://0zl6fu078i.execute-api.us-east-1.amazonaws.com/staging',\n dev: 'wss://5hloccdggd.execute-api.us-east-1.amazonaws.com/staging',\n};\n// eslint-disable-next-line no-undef\nconst env = process.env.REACT_APP_API_ENV;\n\n/**\n * Setting BaseUrl\n *\n * If env vars have been set by envconsul it will use that.\n * Otherwise it will look for .env file with the REACT_APP_API_ENV, if not present it will default to localhost\n * */\n\nconst DCABaseUrl = DCAurls.local;\nconst TangraDCABaseUrl = DCAurls.dev;\nconst CwbBaseurls = CWBurls.stack_url;\nconst tangraBaseURL = tangraURLs.stack_url; //env ? tangraURLs[env] : tangraURLs.dev;\nconst socketBaseUrl = env ? SocketURL[env] : SocketURL.dev;\nconst cboBaseURL = CBOurls.stack_url;\nconst cboLocalStackURL = CBOurls['localStack'];\n\nexport const AppSettings = {\n CBOServer: cboBaseURL,\n DCAserver: DCABaseUrl,\n TangraDCAserver: TangraDCABaseUrl,\n cwbServer: CwbBaseurls,\n DCPServer: DCPurls,\n tangraURL: tangraBaseURL,\n logging: { logLevel: LogLevel.Errors },\n socketURL: socketBaseUrl,\n cboLocalServer: cboLocalStackURL,\n};\n\nexport const QuickLinksURL = {\n deloitte: 'https://www.deloitte.com/',\n deloitteCloudEngineering:\n 'https://www2.deloitte.com/global/en/pages/strategy-operations/solutions/cloud-engineering.html',\n cmsPortal: 'https://www.cms.com/',\n swagger: 'https://app.swaggerhub.com/apis-docs/soadity/icp-tangra/1.0.0#/',\n dcpKaibur: 'https://dcp.deloitte.dcpgreendot.com/',\n runTalkQE: 'http://talkqe-alb-2019878816.us-east-1.elb.amazonaws.com/TWB/#/',\n runCofta:\n 'https://appstream2.us-east-1.aws.amazon.com/authenticate?parameters=eyJ0eXBlIjoiRU5EX1VTRVIiLCJleHBpcmVzIjoiMTY2MjU2OTkxMSIsImF3c0FjY291bnRJZCI6IjU1NTc2OTc5MTgyNCIsInVzZXJJZCI6ImFrc2hjaG91ZGhhcnlAZGVsb2l0dGUuY29tIiwiY2F0YWxvZ1NvdXJjZSI6InN0YWNrL3Rlc3QyMmF1ZyIsImZsZWV0UmVmIjoiZmxlZXQvZmxlZXQtMjJhdWciLCJhcHBsaWNhdGlvbklkIjoiIiwidXNlckNvbnRleHQiOiIiLCJtYXhVc2VyRHVyYXRpb25JblNlY3MiOiI1NzYwMCJ9&signature=%2BgiavDJQm5jJFiw0yzl%2FEW%2F1ya9ZQCHw%2BJk2UAFa7rU%3D',\n splunkDashboard: 'http://splunk-lb-1636059872.us-east-1.elb.amazonaws.com',\n splunkDashboardGCP: 'http://34.107.238.204',\n};\n","import { AppSettings, LogLevel } from '../../AppSettings';\n\nexport class Logging {\n public static error(message?: string | undefined | null, ...optionalParams: any[]): boolean {\n if (AppSettings.logging.logLevel >= LogLevel.Errors) {\n if (message) {\n if (optionalParams && optionalParams.length > 0) {\n // eslint-disable-next-line\n console.error(message, optionalParams);\n } else {\n // eslint-disable-next-line\n console.error(message);\n }\n }\n return true;\n }\n return false;\n }\n\n public static debug(message?: string | undefined | null, ...optionalParams: any[]): boolean {\n if (AppSettings.logging.logLevel >= LogLevel.Debug) {\n if (message) {\n if (optionalParams && optionalParams.length > 0) {\n // eslint-disable-next-line\n console.log(message, optionalParams);\n } else {\n // eslint-disable-next-line\n console.log(message);\n }\n }\n return true;\n }\n return false;\n }\n\n public static trace(message?: string | undefined | null, ...optionalParams: any[]): boolean {\n if (AppSettings.logging.logLevel >= LogLevel.Trace) {\n if (message) {\n if (optionalParams && optionalParams.length > 0) {\n // eslint-disable-next-line\n console.log(message, optionalParams);\n } else {\n // eslint-disable-next-line\n console.log(message);\n }\n }\n return true;\n }\n return false;\n }\n\n public static traceData(data: T): T | undefined {\n return AppSettings.logging.logLevel >= LogLevel.Trace ? data : undefined;\n }\n}\n","/// \n/// Generates url: {AppSettings.service.baseUrl}/{this.serviceApi}\n// DO NOT append or prepend '/' here!\nexport type IDecodedToken = {\n auth_time: number;\n client_id: string;\n exp: number;\n iat: number;\n iss: string;\n jti: string;\n scope: string;\n sub: string;\n token_use: string;\n username: string;\n version: number;\n};\nexport enum ServiceType {\n Login = 'login',\n RefreshToken = 'icp/user/refreshToken',\n TCO = 'tco',\n CSP = 'csp',\n BuildDeploy = 'dca',\n user = 'user',\n DCP = 'dcp',\n None = '',\n Prod = 'Prod',\n OMA = 'oma',\n ANALYTICS = 'analytics',\n Mining = 'mining',\n}\n\n// Add base URLs and refresh token logic(if the server supports)\n// in ApiServiceBase.ts for a new server added here\nexport enum ServerType {\n cbo = 'cboBE',\n cwb = 'CWB',\n dca = 'DCA',\n tangraDCA = 'TangraDCA',\n dcp = 'DCP',\n none = '',\n tangra = 'TangraBE',\n dcaAdmin = 'DCAAdmin',\n localStack = 'localStack',\n operateEdge = 'operateEdge',\n cboProxyServer = 'cboProxyServer',\n}\n\nexport interface IApiAdditionalData {\n assetName: string;\n}\n","/* eslint-disable max-lines */\nimport * as axios from 'axios';\nimport { DUMMY_ACCESS_TOKEN } from '../../AppConstants';\nimport { AppSettings } from '../../AppSettings';\nimport { API_ROUTE_CBO } from './ApiRoute';\nimport AxiosInstance from './AxiosInstance';\nimport { HttpContentType } from './HttpContentType';\nimport { storage, STORAGE_CONSTANTS } from './LocalStorage';\nimport { IMultipartFormData } from './MultipartFormData.data';\nimport { QueryPath } from './QueryPath.data';\nimport { IApiAdditionalData, ServerType, ServiceType } from './ServiceType.data';\nimport { IProduct } from '../models/cbo/EngagementModels';\nimport { formatUrl, getEnv } from '../helper/HelperFunctions';\nimport { CBOKeyAssets } from '../../containers/CBOSidebar/CBOSidebarConstants';\nimport { congnitoConfiguration } from '../../configs/AWS';\n\n/// \n/// ApiServiceMock cannot inherit ApiService, because that's mocked and that would create an infinite loop, that's why we need ApiServiceBase.\n/// \nexport default abstract class ApiServiceBase {\n protected readonly serviceType: ServiceType;\n protected readonly serverType: ServerType;\n protected isFetchingToken = false;\n protected tokenSubscribers: any = [];\n\n constructor(serviceType: ServiceType, serverType: ServerType) {\n this.serviceType = serviceType;\n this.serverType = serverType;\n }\n\n public abstract get(\n path: QueryPath,\n additionalData?: IApiAdditionalData,\n ): Promise | T;\n\n public abstract post(\n path: QueryPath,\n body: any,\n addtionalData?: IApiAdditionalData,\n ): Promise | T;\n\n public abstract put(\n path: QueryPath,\n body: any,\n additionalData?: IApiAdditionalData,\n ): Promise | T;\n\n public abstract patch(\n path: QueryPath,\n body: any,\n additionalData?: IApiAdditionalData,\n ): Promise | T;\n\n public abstract delete(\n path: QueryPath,\n additionalData?: IApiAdditionalData,\n ): Promise;\n\n public abstract postMultipart(\n path: QueryPath,\n data: IMultipartFormData[],\n additionalData?: IApiAdditionalData,\n ): Promise | T;\n\n public abstract putMultipart(\n path: QueryPath,\n data: IMultipartFormData[],\n additionalData?: IApiAdditionalData,\n ): Promise | T;\n\n public abstract patchMultipart(\n path: QueryPath,\n data: IMultipartFormData[],\n additionalData?: IApiAdditionalData,\n ): Promise | T;\n\n /* tslint:disable:cyclomatic-complexity */\n public processError(error: any) {\n const errorCode = error.response ? error.response.status : 0;\n switch (errorCode) {\n case 404:\n return new Error('The request is not found');\n case 500:\n return new Error('Internal server error');\n case 401:\n return new Error(error?.response?.data);\n case 0:\n return new Error(`${error}. Please reload the page.`);\n case 402:\n\n case 403:\n case 400:\n case 422: {\n if (error.response.data.errors) {\n const err = error.response.data.errors;\n\n if (err instanceof Array) {\n const errArr = err;\n\n if (errArr.length > 0 && errArr[0]) {\n if (errArr[0].message) {\n return new Error(errArr[0].message.toString());\n } else if (errArr[0].Message) {\n return new Error(errArr[0].Message.toString());\n } else {\n return new Error(errArr[0].toString());\n }\n }\n } else if (err.message) {\n return new Error(err.message.toString());\n } else {\n return new Error(err.toString());\n }\n } else if (error.response.data) {\n return new Error(\n error.response.data.message ?? error.response.data ?? 'Something went wrong',\n );\n }\n\n return new Error('Internal server error');\n }\n default:\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return error;\n }\n }\n\n /* tslint:enable */\n protected getConfig(contentType: HttpContentType): axios.AxiosRequestConfig {\n let headers;\n if (\n this.serverType == ServerType.tangra ||\n this.serverType == ServerType.cbo ||\n this.serverType == ServerType.localStack\n ) {\n const cwbIdToken = storage.getItem(STORAGE_CONSTANTS.cwbIdToken);\n const userId = storage.getItem(STORAGE_CONSTANTS.userId);\n const userType = storage.getItem(STORAGE_CONSTANTS.userType);\n headers = this.serviceType.startsWith('user')\n ? {\n 'Content-Type': contentType.toString(),\n id_token: `Bearer ${cwbIdToken}`,\n access_token: storage.getItem(STORAGE_CONSTANTS.accessToken) || DUMMY_ACCESS_TOKEN,\n cwb_flag: `${Boolean(cwbIdToken)}`,\n userid: `${userId}`,\n user_type: `${userType}`,\n }\n : {\n 'Content-Type': contentType.toString(),\n access_token: storage.getItem(STORAGE_CONSTANTS.accessToken) || DUMMY_ACCESS_TOKEN,\n id_token: storage.getItem(STORAGE_CONSTANTS.idToken) || DUMMY_ACCESS_TOKEN,\n userid: `${userId}`,\n user_type: `${userType}`,\n };\n } else {\n headers = this.serviceType.startsWith('user')\n ? {\n 'Content-Type': contentType.toString(),\n id_token: `Bearer ${storage.getItem(STORAGE_CONSTANTS.cwbIdToken)}`,\n }\n : this.serviceType.startsWith('tco') ||\n this.serviceType.startsWith('csp') ||\n this.serviceType.startsWith('oma')\n ? {\n 'Content-Type': contentType.toString(),\n idtoken: `Bearer ${storage.getItem(STORAGE_CONSTANTS.cwbIdToken)}`,\n }\n : {\n 'Content-Type': contentType.toString(),\n idtoken: `Basic ${storage.getItem(STORAGE_CONSTANTS.authTokenBasic)}`,\n };\n }\n\n return { headers };\n }\n\n protected isAuthTokenRequired(path: string): boolean {\n return path.includes('/api');\n }\n\n protected getAxiosInstance(): axios.AxiosInstance {\n const instance = AxiosInstance.create();\n // const { baseUrl } = AppSettings;\n\n const subscribeTokenRefresh = (callBack: any) => {\n this.tokenSubscribers.push(callBack);\n };\n\n const onTokenRefreshed = (error: Error | null) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n this.tokenSubscribers.map((cb: any) => cb(error));\n this.tokenSubscribers = [];\n };\n\n const forceLogout = () => {\n this.isFetchingToken = false;\n storage.clearAll();\n window.location.href = `/#/login`;\n };\n\n instance.interceptors.response.use(\n (response: any) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return response;\n },\n (error: any) => {\n if (!error.response) {\n return Promise.reject(error);\n }\n\n if (\n error.response.status !== 403 &&\n error.response.status !== 401 &&\n error.response.status !== 400\n ) {\n return Promise.reject(error);\n }\n\n if (error.config.url.includes('login')) {\n return Promise.reject(error);\n }\n\n // If refreshToken API, force logout\n if (error.config.url.includes('refresh_token') && error.response.status === 400) {\n onTokenRefreshed(new Error('Unable to refresh access token'));\n forceLogout();\n return Promise.reject(error);\n }\n\n //CBO API gateway returns 403 for unauthorized access of a resource\n if (error.response.status === 403 && this.serverType === ServerType.cbo) {\n //Might need for future reference\n //window.location.href = (\"/cboAccessDenied\")\n }\n // CBO Access Token could be expired when CBO API fails with 401\n if (\n error.response.status === 401 &&\n (this.serverType === ServerType.tangra || this.serverType === ServerType.cbo)\n ) {\n if (!this.isFetchingToken) {\n this.isFetchingToken = true;\n\n const currentRefreshToken = storage.getItem(STORAGE_CONSTANTS.refreshToken);\n return instance\n .get(\n `${AppSettings.CBOServer}/${API_ROUTE_CBO.REFRESH_TOKEN}?refresh_token=${currentRefreshToken}`,\n {\n headers: {\n access_token:\n storage.getItem(STORAGE_CONSTANTS.accessToken) || DUMMY_ACCESS_TOKEN,\n userid: `${storage.getItem(STORAGE_CONSTANTS.userId)}`,\n user_type: `${storage.getItem(STORAGE_CONSTANTS.userType)}`,\n },\n },\n )\n .then((response) => {\n const { access_token } = response.data;\n this.isFetchingToken = false;\n storage.setItem(STORAGE_CONSTANTS.accessToken, access_token);\n error.config.headers.access_token = access_token;\n onTokenRefreshed(null);\n return instance(error.config);\n });\n } else {\n const initTokenSubscriber = new Promise((resolve, reject) => {\n subscribeTokenRefresh((errRefreshing: any) => {\n if (errRefreshing) {\n return reject(errRefreshing);\n }\n error.config.headers.access_token = storage.getItem(STORAGE_CONSTANTS.accessToken);\n return resolve(instance(error.config));\n });\n });\n return initTokenSubscriber;\n }\n }\n return Promise.reject(error);\n },\n );\n return instance;\n }\n\n protected getinstanceUrl(assetName?: string): string {\n let KeyAssetList = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.keyAssetList) ?? '[]',\n ) as IProduct[];\n return KeyAssetList?.find((asset) => asset.product == assetName)?.instanceUrl ?? '';\n }\n\n // Generates url: {AppSettings.service.baseUrl}/{this.serviceType}/{routeParam1}/{routeParam2}/.../{routeParamN}?{queryParam1key}={queryParam1val}&{queryParam2key}={queryParam2val}...\n // Query params with null, undefined or empty string won't be appended to the url.\n\n protected getUrl(path: QueryPath, additionalData?: IApiAdditionalData): string {\n let baseURL;\n if (this.serverType == ServerType.dca) baseURL = AppSettings.DCAserver;\n else if (this.serverType == ServerType.cbo) baseURL = AppSettings.CBOServer;\n else if (this.serverType == ServerType.localStack) baseURL = AppSettings.cboLocalServer;\n else if (this.serverType == ServerType.tangra) baseURL = AppSettings.tangraURL;\n else if (this.serverType == ServerType.tangraDCA) baseURL = AppSettings.TangraDCAserver;\n else if (this.serverType == ServerType.cwb) baseURL = AppSettings.cwbServer;\n\n let url: string = '';\n\n if (additionalData) {\n url = formatUrl(this.getinstanceUrl(additionalData?.assetName));\n } else {\n url = this.serviceType ? `${baseURL}/${this.serviceType}` : `${baseURL}`;\n }\n if (path) {\n if (path.route && path.route.length > 0) {\n for (const route of path.route) {\n if (route && route !== 'undefined') {\n url += `/${route}`;\n }\n }\n }\n\n if (path.query) {\n let separator = '?';\n for (const name in path.query) {\n if (path.query[name] != undefined) {\n url += `${separator}${encodeURI(name)}=${encodeURI(path.query[name]!.toString())}`;\n separator = '&';\n }\n }\n }\n }\n return url;\n }\n\n protected prepareMultiPartForm(data: IMultipartFormData[]): FormData {\n // It is expected that if a file is to be given a name that is different from the file system name,\n // the interface created for such objects will have a key named \"formDataName\" and another named \"file\" (names are self-explanatory)\n\n const formData = new FormData();\n for (const item of data) {\n const { content, name } = item;\n if (Array.isArray(content) && content.length > 0) {\n for (const element of content) {\n if (\n typeof element === 'object' &&\n Object.prototype.hasOwnProperty.call(element, 'formDataName')\n ) {\n formData.append(name, element.file, element.formDataName);\n } else {\n formData.append(name, element);\n }\n }\n } else if (\n typeof content === 'object' &&\n content !== null &&\n Object.prototype.hasOwnProperty.call(content, 'formDataName')\n ) {\n formData.append(name, content.file, content.formDataName);\n } else {\n formData.append(name, content);\n }\n }\n return formData;\n }\n}\n","export enum HttpContentType {\n Json = 'application/json',\n MultipartFormData = 'multipart/form-data',\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-misused-promises */\nimport { Logging } from '../helper/Logging';\nimport ApiServiceBase from './ApiServiceBase';\nimport { HttpContentType } from './HttpContentType';\nimport { IMultipartFormData } from './MultipartFormData.data';\nimport AxiosInstance from './AxiosInstance';\nimport { QueryPath } from './QueryPath.data';\n//import { ServiceType, ServerType } from './ServiceType.data';\nimport { ServerType, ServiceType, IDecodedToken, IApiAdditionalData } from './ServiceType.data';\nimport { storage, STORAGE_CONSTANTS } from './LocalStorage';\nimport jwt_decode from 'jwt-decode';\nimport { AppSettings } from '../../AppSettings';\nimport { API_ROUTE_CBO } from './ApiRoute';\nimport { routes } from '../../navigation/Routes';\nimport { CBOKeyAssets } from '../../containers/CBOSidebar/CBOSidebarConstants';\nimport { formatUrl, getEnv } from '../helper/HelperFunctions';\nimport { congnitoConfiguration } from '../../configs/AWS';\nimport { digitalTesterDemoInstanceConfig } from '../../containers/KeyAssets/KeyAssetsConstant';\nimport { AxiosResponse } from 'axios';\n/// \n/// ApiServiceMock cannot inherit ApiService, because that's mocked and that would create an infinite loop, that's why we need ApiServiceBase.\n/// \nexport default class ApiService extends ApiServiceBase {\n protected readonly serviceType: ServiceType;\n protected readonly serverType: ServerType;\n\n public constructor(serviceType: ServiceType, serverType: ServerType = ServerType.none) {\n super(serviceType, serverType);\n this.serviceType = serviceType;\n this.serverType = serverType;\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'false');\n }\n\n public checkRefreshToken(path: QueryPath): Promise {\n const token = storage.getItem(STORAGE_CONSTANTS.accessToken) || '';\n const refreshToken = storage.getItem(STORAGE_CONSTANTS.refreshToken) ?? '';\n const decodedAccessToken: IDecodedToken | '' = token ? jwt_decode(token) : '';\n\n if (\n decodedAccessToken &&\n decodedAccessToken.exp < Math.round(Date.now() / 1000) &&\n storage.getItem(STORAGE_CONSTANTS.fetchingRefreshToken) == 'false'\n ) {\n const instance = AxiosInstance.create();\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'true');\n return new Promise((resolve, reject) =>\n instance\n .get(\n `${AppSettings.CBOServer}/${API_ROUTE_CBO.REFRESH_TOKEN}?refresh_token=${refreshToken}`,\n {\n headers: {\n access_token: storage.getItem(STORAGE_CONSTANTS.accessToken) || '',\n userid: `${storage.getItem(STORAGE_CONSTANTS.userId)}`,\n user_type: `${storage.getItem(STORAGE_CONSTANTS.userType)}`,\n },\n },\n )\n .then((response) => {\n const { access_token, id_token } = response.data;\n storage.setItem(STORAGE_CONSTANTS.accessToken, access_token);\n storage.setItem(STORAGE_CONSTANTS.idToken, id_token);\n const IdToken: any = jwt_decode(id_token);\n storage.setItem(STORAGE_CONSTANTS.userGroup, JSON.parse(IdToken['roles']));\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'false');\n resolve(this.get(path));\n })\n .catch(function (error) {\n storage.clearAll();\n reject(error);\n window.location.href = routes.cbologin;\n }),\n );\n } else {\n return this.get(path);\n }\n }\n\n public getKeycloakToken(\n baseUrl: string,\n user: string,\n cred: string,\n clientId: string,\n clientSecret: string = '',\n grantType: string = 'password',\n ): Promise {\n const instance = AxiosInstance.create();\n const body = clientSecret\n ? `grant_type=${grantType}&client_id=${clientId}&client_secret=${clientSecret}&username=${user}&password=${cred}`\n : `grant_type=${grantType}&client_id=${clientId}&username=${user}&password=${cred}`;\n return instance.post(`${baseUrl}/${API_ROUTE_CBO.KEYCLOAK_TOKEN}`, body, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n });\n }\n\n public getCallPRomise(\n path: QueryPath,\n additionalData?: IApiAdditionalData,\n ): Promise {\n const instance = AxiosInstance.create();\n return new Promise((resolve, reject) =>\n instance.get(this.getUrl(path, additionalData), this.getConfig(HttpContentType.Json)).then(\n (res: any) => {\n Logging.trace(`ApiService.get ${this.getUrl(path, additionalData)} @Result`, {\n path,\n result: res,\n });\n resolve(res.data);\n },\n (err: any) => {\n Logging.error(`ApiService.get ${this.getUrl(path, additionalData)} @Error`, {\n path,\n error: err,\n });\n reject(this.processError(err));\n },\n ),\n );\n }\n\n public get(path: QueryPath, additionalData?: IApiAdditionalData): Promise {\n Logging.debug(`ApiService.get ${this.getUrl(path, additionalData)}`, { path });\n const token = storage.getItem(STORAGE_CONSTANTS.accessToken) || '';\n const refreshToken = storage.getItem(STORAGE_CONSTANTS.refreshToken) ?? '';\n const decodedAccessToken: IDecodedToken | '' = token ? jwt_decode(token) : '';\n\n if (decodedAccessToken) {\n if (\n decodedAccessToken.exp < Math.round(Date.now() / 1000) &&\n storage.getItem(STORAGE_CONSTANTS.fetchingRefreshToken) == 'false'\n ) {\n const instance = AxiosInstance.create({ withCredentials: false });\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'true');\n\n return new Promise((resolve, reject) =>\n instance\n .get(\n `${AppSettings.CBOServer}/${API_ROUTE_CBO.REFRESH_TOKEN}?refresh_token=${refreshToken}`,\n {\n headers: {\n access_token: storage.getItem(STORAGE_CONSTANTS.accessToken) || '',\n userid: `${storage.getItem(STORAGE_CONSTANTS.userId)}`,\n user_type: `${storage.getItem(STORAGE_CONSTANTS.userType)}`,\n },\n },\n )\n .then((response) => {\n const { access_token, id_token } = response.data;\n storage.setItem(STORAGE_CONSTANTS.accessToken, access_token);\n storage.setItem(STORAGE_CONSTANTS.idToken, id_token);\n const IdToken: any = jwt_decode(id_token);\n storage.setItem(STORAGE_CONSTANTS.userGroup, JSON.parse(IdToken['roles']));\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'false');\n resolve(\n new Promise((resolve, reject) =>\n instance\n .get(this.getUrl(path, additionalData), this.getConfig(HttpContentType.Json))\n .then(\n (res: any) => {\n Logging.trace(\n `ApiService.get ${this.getUrl(path, additionalData)} @Result`,\n {\n path,\n result: res,\n },\n );\n\n // Workaround for token request - needs to be reverted\n resolve(res.data);\n },\n (err: any) => {\n Logging.error(\n `ApiService.get ${this.getUrl(path, additionalData)} @Error`,\n {\n path,\n error: err,\n },\n );\n reject(this.processError(err));\n },\n ),\n ),\n );\n })\n .catch(function (error) {\n storage.clearAll();\n reject(new Error('Your session is expired. Please re-login'));\n }),\n );\n } else if (storage.getItem(STORAGE_CONSTANTS.fetchingRefreshToken) == 'true') {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(this.get(path));\n }, 1500);\n });\n } else {\n const instance = AxiosInstance.create();\n return new Promise((resolve, reject) =>\n instance\n .get(this.getUrl(path, additionalData), this.getConfig(HttpContentType.Json))\n .then(\n (res: any) => {\n Logging.trace(`ApiService.get ${this.getUrl(path, additionalData)} @Result`, {\n path,\n result: res,\n });\n\n // Workaround for token request - needs to be reverted\n resolve(res.data);\n },\n (err: any) => {\n Logging.error(`ApiService.get ${this.getUrl(path, additionalData)} @Error`, {\n path,\n error: err,\n });\n reject(this.processError(err));\n },\n ),\n );\n }\n } else {\n return new Promise((resolve, reject) => {\n reject();\n });\n }\n }\n\n public post(\n path: QueryPath,\n body: any,\n additionalData?: IApiAdditionalData,\n ): Promise {\n Logging.debug(`ApiService.post ${this.getUrl(path, additionalData)}`, {\n path,\n body,\n bodyJson: JSON.stringify(body),\n });\n const token = storage.getItem(STORAGE_CONSTANTS.accessToken) || '';\n const refreshToken = storage.getItem(STORAGE_CONSTANTS.refreshToken) ?? '';\n const decodedAccessToken: IDecodedToken | '' = token ? jwt_decode(token) : '';\n\n if (decodedAccessToken) {\n if (\n decodedAccessToken.exp < Math.round(Date.now() / 1000) &&\n storage.getItem(STORAGE_CONSTANTS.fetchingRefreshToken) == 'false'\n ) {\n const instance = AxiosInstance.create();\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'true');\n return new Promise((resolve, reject) =>\n instance\n .get(\n `${AppSettings.CBOServer}/${API_ROUTE_CBO.REFRESH_TOKEN}?refresh_token=${refreshToken}`,\n {\n headers: {\n access_token: storage.getItem(STORAGE_CONSTANTS.accessToken) || '',\n userid: `${storage.getItem(STORAGE_CONSTANTS.userId)}`,\n user_type: `${storage.getItem(STORAGE_CONSTANTS.userType)}`,\n },\n },\n )\n .then((response) => {\n const { access_token, id_token } = response.data;\n storage.setItem(STORAGE_CONSTANTS.accessToken, access_token);\n storage.setItem(STORAGE_CONSTANTS.idToken, id_token);\n const IdToken: any = jwt_decode(id_token);\n storage.setItem(STORAGE_CONSTANTS.userGroup, JSON.parse(IdToken['roles']));\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'false');\n resolve(\n new Promise((resolve, reject) =>\n instance\n .post(\n this.getUrl(path, additionalData),\n body,\n this.getConfig(HttpContentType.Json),\n )\n .then(\n (res: any) => {\n Logging.trace(\n `ApiService.post ${this.getUrl(path, additionalData)} @Result`,\n {\n path,\n body,\n bodyJson: JSON.stringify(body),\n result: res,\n },\n );\n resolve(res.data.data ? res.data.data : res.data);\n },\n (err: any) => {\n Logging.error(\n `ApiService.post ${this.getUrl(path, additionalData)} @Error`,\n {\n path,\n body,\n bodyJson: JSON.stringify(body),\n error: err,\n },\n );\n reject(this.processError(err));\n },\n ),\n ),\n );\n })\n .catch(function (error) {\n storage.clearAll();\n reject(new Error('Your session is expired. Please re-login'));\n }),\n );\n } else if (storage.getItem(STORAGE_CONSTANTS.fetchingRefreshToken) == 'true') {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(this.post(path, body));\n }, 1500);\n });\n } else {\n const instance = AxiosInstance.create();\n return new Promise((resolve, reject) =>\n instance\n .post(this.getUrl(path, additionalData), body, this.getConfig(HttpContentType.Json))\n .then(\n (res: any) => {\n Logging.trace(`ApiService.post ${this.getUrl(path, additionalData)} @Result`, {\n path,\n body,\n bodyJson: JSON.stringify(body),\n result: res,\n });\n resolve(res.data.data ? res.data.data : res.data);\n },\n (err: any) => {\n Logging.error(`ApiService.post ${this.getUrl(path, additionalData)} @Error`, {\n path,\n body,\n bodyJson: JSON.stringify(body),\n error: err,\n });\n reject(this.processError(err));\n },\n ),\n );\n }\n } else if (\n path.route?.includes(API_ROUTE_CBO.CBO_LOGIN) ||\n path.route?.includes(API_ROUTE_CBO.POST_CUSTOM_LOGIN) ||\n path.route?.includes(API_ROUTE_CBO.POST_CHANGE_PASSWORD)\n ) {\n const instance = AxiosInstance.create();\n return new Promise((resolve, reject) =>\n instance\n .post(this.getUrl(path, additionalData), body, this.getConfig(HttpContentType.Json))\n .then(\n (res: any) => {\n Logging.trace(`ApiService.post ${this.getUrl(path, additionalData)} @Result`, {\n path,\n body,\n bodyJson: JSON.stringify(body),\n result: res,\n });\n resolve(res.data.data ? res.data.data : res.data);\n },\n (err: any) => {\n Logging.error(`ApiService.post ${this.getUrl(path, additionalData)} @Error`, {\n path,\n body,\n bodyJson: JSON.stringify(body),\n error: err,\n });\n reject(this.processError(err));\n },\n ),\n );\n } else {\n return new Promise((resolve, reject) => {\n reject();\n });\n }\n }\n\n public delete(path: QueryPath, additionalData?: IApiAdditionalData): Promise {\n Logging.debug(`ApiService.delete ${this.getUrl(path, additionalData)}`, { path });\n const token = storage.getItem(STORAGE_CONSTANTS.accessToken) || '';\n const refreshToken = storage.getItem(STORAGE_CONSTANTS.refreshToken) ?? '';\n const decodedAccessToken: IDecodedToken | '' = token ? jwt_decode(token) : '';\n if (decodedAccessToken) {\n if (\n decodedAccessToken.exp < Math.round(Date.now() / 1000) &&\n storage.getItem(STORAGE_CONSTANTS.fetchingRefreshToken) == 'false'\n ) {\n const instance = AxiosInstance.create();\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'true');\n return new Promise((resolve, reject) =>\n instance\n .get(\n `${AppSettings.CBOServer}/${API_ROUTE_CBO.REFRESH_TOKEN}?refresh_token=${refreshToken}`,\n {\n headers: {\n access_token: storage.getItem(STORAGE_CONSTANTS.accessToken) || '',\n userid: `${storage.getItem(STORAGE_CONSTANTS.userId)}`,\n user_type: `${storage.getItem(STORAGE_CONSTANTS.userType)}`,\n },\n },\n )\n .then((response) => {\n const { access_token, id_token } = response.data;\n storage.setItem(STORAGE_CONSTANTS.accessToken, access_token);\n storage.setItem(STORAGE_CONSTANTS.idToken, id_token);\n const IdToken: any = jwt_decode(id_token);\n storage.setItem(STORAGE_CONSTANTS.userGroup, JSON.parse(IdToken['roles']));\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'false');\n resolve(\n new Promise((resolve, reject) =>\n instance\n .delete(this.getUrl(path, additionalData), this.getConfig(HttpContentType.Json))\n .then(\n (res: any) => {\n Logging.trace(\n `ApiService.delete ${this.getUrl(path, additionalData)} @Result`,\n {\n path,\n result: res,\n },\n );\n // Workaround for token request - needs to be reverted\n resolve(res.data.data || res.data);\n },\n (err: any) => {\n Logging.error(\n `ApiService.delete ${this.getUrl(path, additionalData)} @Error`,\n {\n path,\n error: err,\n },\n );\n reject(this.processError(err));\n },\n ),\n ),\n );\n })\n .catch(function (error) {\n storage.clearAll();\n reject(new Error('Your session is expired. Please re-login'));\n }),\n );\n } else if (storage.getItem(STORAGE_CONSTANTS.fetchingRefreshToken) == 'true') {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(this.delete(path));\n }, 1500);\n });\n } else {\n const instance = AxiosInstance.create();\n return new Promise((resolve, reject) =>\n instance\n .delete(this.getUrl(path, additionalData), this.getConfig(HttpContentType.Json))\n .then(\n (res: any) => {\n Logging.trace(`ApiService.delete ${this.getUrl(path, additionalData)} @Result`, {\n path,\n result: res,\n });\n resolve(res.data.data || res.data);\n },\n (err: any) => {\n Logging.error(`ApiService.delete ${this.getUrl(path, additionalData)} @Error`, {\n path,\n error: err,\n });\n reject(this.processError(err));\n },\n ),\n );\n }\n } else {\n return new Promise((resolve, reject) => {\n reject();\n });\n }\n }\n\n public patch(\n path: QueryPath,\n body: any,\n additionalData?: IApiAdditionalData,\n ): Promise {\n Logging.debug(`ApiService.put ${this.getUrl(path, additionalData)}`, {\n path,\n body,\n bodyJson: JSON.stringify(body),\n });\n const token = storage.getItem(STORAGE_CONSTANTS.accessToken) || '';\n const refreshToken = storage.getItem(STORAGE_CONSTANTS.refreshToken) ?? '';\n const decodedAccessToken: IDecodedToken | '' = token ? jwt_decode(token) : '';\n if (decodedAccessToken) {\n if (\n decodedAccessToken.exp < Math.round(Date.now() / 1000) &&\n storage.getItem(STORAGE_CONSTANTS.fetchingRefreshToken) == 'false'\n ) {\n const instance = AxiosInstance.create();\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'true');\n return new Promise((resolve, reject) =>\n instance\n .get(\n `${AppSettings.CBOServer}/${API_ROUTE_CBO.REFRESH_TOKEN}?refresh_token=${refreshToken}`,\n {\n headers: {\n access_token: storage.getItem(STORAGE_CONSTANTS.accessToken) || '',\n userid: `${storage.getItem(STORAGE_CONSTANTS.userId)}`,\n user_type: `${storage.getItem(STORAGE_CONSTANTS.userType)}`,\n },\n },\n )\n .then((response) => {\n const { access_token, id_token } = response.data;\n storage.setItem(STORAGE_CONSTANTS.accessToken, access_token);\n storage.setItem(STORAGE_CONSTANTS.idToken, id_token);\n const IdToken: any = jwt_decode(id_token);\n storage.setItem(STORAGE_CONSTANTS.userGroup, JSON.parse(IdToken['roles']));\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'false');\n resolve(\n new Promise((resolve, reject) =>\n instance\n .patch(\n this.getUrl(path, additionalData),\n body,\n this.getConfig(HttpContentType.Json),\n )\n .then(\n (res: any) => {\n Logging.trace(\n `ApiService.patch ${this.getUrl(path, additionalData)} @Result`,\n {\n path,\n body,\n bodyJson: JSON.stringify(body),\n result: res,\n },\n );\n resolve(res.data.data ? res.data.data : res.data);\n },\n (err: any) => {\n Logging.error(\n `ApiService.patch ${this.getUrl(path, additionalData)} @Error`,\n {\n path,\n body,\n bodyJson: JSON.stringify(body),\n error: err,\n },\n );\n reject(this.processError(err));\n },\n ),\n ),\n );\n })\n .catch(function (error) {\n storage.clearAll();\n reject(new Error('Your session is expired. Please re-login'));\n }),\n );\n } else if (storage.getItem(STORAGE_CONSTANTS.fetchingRefreshToken) == 'true') {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(this.patch(path, body));\n }, 1500);\n });\n } else {\n const instance = AxiosInstance.create();\n return new Promise((resolve, reject) =>\n instance\n .patch(this.getUrl(path, additionalData), body, this.getConfig(HttpContentType.Json))\n .then(\n (res: any) => {\n Logging.trace(`ApiService.patch ${this.getUrl(path, additionalData)} @Result`, {\n path,\n body,\n bodyJson: JSON.stringify(body),\n result: res,\n });\n resolve(res.data.data ? res.data.data : res.data);\n },\n (err: any) => {\n Logging.error(`ApiService.patch ${this.getUrl(path, additionalData)} @Error`, {\n path,\n body,\n bodyJson: JSON.stringify(body),\n error: err,\n });\n reject(this.processError(err));\n },\n ),\n );\n }\n } else {\n return new Promise((resolve, reject) => {\n reject();\n });\n }\n }\n\n public put(\n path: QueryPath,\n body: any,\n additionalData?: IApiAdditionalData,\n ): Promise {\n Logging.debug(`ApiService.put ${this.getUrl(path, additionalData)}`, {\n path,\n body,\n bodyJson: JSON.stringify(body),\n });\n const token = storage.getItem(STORAGE_CONSTANTS.accessToken) || '';\n const refreshToken = storage.getItem(STORAGE_CONSTANTS.refreshToken) ?? '';\n const decodedAccessToken: IDecodedToken | '' = token ? jwt_decode(token) : '';\n if (decodedAccessToken) {\n if (\n decodedAccessToken.exp < Math.round(Date.now() / 1000) &&\n storage.getItem(STORAGE_CONSTANTS.fetchingRefreshToken) == 'false'\n ) {\n const instance = AxiosInstance.create();\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'true');\n return new Promise((resolve, reject) =>\n instance\n .get(\n `${AppSettings.CBOServer}/${API_ROUTE_CBO.REFRESH_TOKEN}?refresh_token=${refreshToken}`,\n {\n headers: {\n access_token: storage.getItem(STORAGE_CONSTANTS.accessToken) || '',\n userid: `${storage.getItem(STORAGE_CONSTANTS.userId)}`,\n user_type: `${storage.getItem(STORAGE_CONSTANTS.userType)}`,\n },\n },\n )\n .then((response) => {\n const { access_token, id_token } = response.data;\n storage.setItem(STORAGE_CONSTANTS.accessToken, access_token);\n storage.setItem(STORAGE_CONSTANTS.idToken, id_token);\n const IdToken: any = jwt_decode(id_token);\n storage.setItem(STORAGE_CONSTANTS.userGroup, JSON.parse(IdToken['roles']));\n storage.setItem(STORAGE_CONSTANTS.fetchingRefreshToken, 'false');\n resolve(\n new Promise((resolve, reject) =>\n instance\n .put(\n this.getUrl(path, additionalData),\n body,\n this.getConfig(HttpContentType.Json),\n )\n .then(\n (res: any) => {\n Logging.trace(\n `ApiService.put ${this.getUrl(path, additionalData)} @Result`,\n {\n path,\n body,\n bodyJson: JSON.stringify(body),\n result: res,\n },\n );\n resolve(res.data.data ? res.data.data : res.data);\n },\n (err: any) => {\n Logging.error(\n `ApiService.put ${this.getUrl(path, additionalData)} @Error`,\n {\n path,\n body,\n bodyJson: JSON.stringify(body),\n error: err,\n },\n );\n reject(this.processError(err));\n },\n ),\n ),\n );\n })\n .catch(function (error) {\n storage.clearAll();\n reject(new Error('Your session is expired. Please re-login'));\n }),\n );\n } else if (storage.getItem(STORAGE_CONSTANTS.fetchingRefreshToken) == 'true') {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(this.put(path, body));\n }, 1500);\n });\n } else {\n const instance = AxiosInstance.create();\n return new Promise((resolve, reject) =>\n instance\n .put(this.getUrl(path, additionalData), body, this.getConfig(HttpContentType.Json))\n .then(\n (res: any) => {\n Logging.trace(`ApiService.put ${this.getUrl(path, additionalData)} @Result`, {\n path,\n body,\n bodyJson: JSON.stringify(body),\n result: res,\n });\n resolve(res.data.data ? res.data.data : res.data);\n },\n (err: any) => {\n Logging.error(`ApiService.put ${this.getUrl(path, additionalData)} @Error`, {\n path,\n body,\n bodyJson: JSON.stringify(body),\n error: err,\n });\n reject(this.processError(err));\n },\n ),\n );\n }\n } else {\n return new Promise((resolve, reject) => {\n reject();\n });\n }\n }\n\n public postMultipart(\n path: QueryPath,\n data: IMultipartFormData[],\n additionalData?: IApiAdditionalData,\n ): Promise {\n Logging.debug(`ApiService.postMultipart ${this.getUrl(path, additionalData)}`, {\n path,\n data,\n });\n const instance = AxiosInstance.create();\n return new Promise((resolve, reject) => {\n const formData = this.prepareMultiPartForm(data);\n return instance\n .post(\n this.getUrl(path, additionalData),\n formData,\n this.getConfig(HttpContentType.MultipartFormData),\n )\n .then(\n (res: any) => {\n Logging.trace(`ApiService.postMultipart ${this.getUrl(path, additionalData)} @Result`, {\n path,\n data,\n result: res,\n });\n resolve(res.data);\n },\n (err: any) => {\n Logging.error(`ApiService.postMultipart ${this.getUrl(path, additionalData)} @Error`, {\n path,\n data,\n error: err,\n });\n reject(this.processError(err));\n },\n );\n });\n }\n\n public putMultipart(\n path: QueryPath,\n data: IMultipartFormData[],\n additionalData?: IApiAdditionalData,\n ): Promise {\n Logging.debug(`ApiService.postMultipart ${this.getUrl(path, additionalData)}`, {\n path,\n data,\n });\n const instance = AxiosInstance.create();\n return new Promise((resolve, reject) => {\n const formData = this.prepareMultiPartForm(data);\n return instance\n .put(\n this.getUrl(path, additionalData),\n formData,\n this.getConfig(HttpContentType.MultipartFormData),\n )\n .then(\n (res: any) => {\n Logging.trace(`ApiService.putMultipart ${this.getUrl(path, additionalData)} @Result`, {\n path,\n data,\n result: res,\n });\n resolve(res.data);\n },\n (err: any) => {\n Logging.error(`ApiService.postMultipart ${this.getUrl(path, additionalData)} @Error`, {\n path,\n data,\n error: err,\n });\n reject(this.processError(err));\n },\n // eslint-disable-next-line max-lines\n );\n });\n }\n\n public patchMultipart(\n path: QueryPath,\n data: IMultipartFormData[],\n additionalData?: IApiAdditionalData,\n ): Promise {\n Logging.debug(`ApiService.patchMultipart ${this.getUrl(path, additionalData)}`, {\n path,\n data,\n });\n const instance = AxiosInstance.create();\n return new Promise((resolve, reject) => {\n const formData = this.prepareMultiPartForm(data);\n return instance\n .patch(\n this.getUrl(path, additionalData),\n formData,\n this.getConfig(HttpContentType.MultipartFormData),\n )\n .then(\n (res: any) => {\n Logging.trace(\n `ApiService.patchMultipart ${this.getUrl(path, additionalData)} @Result`,\n {\n path,\n data,\n result: res,\n },\n );\n resolve(res.data);\n },\n (err: any) => {\n Logging.error(`ApiService.patchMultipart ${this.getUrl(path, additionalData)} @Error`, {\n path,\n data,\n error: err,\n });\n reject(this.processError(err));\n },\n );\n });\n }\n}\n","import { CBOKeyAssets } from '../../../containers/CBOSidebar/CBOSidebarConstants';\nimport {\n I5YrPlDataResponse,\n IAnalyticsChartResponse,\n IChartPayload,\n IComputeCostDataResponse,\n IStorageCostDataResponse,\n} from '../../models/AnalyticsModels';\nimport { IProduct } from '../../models/cbo/EngagementModels';\nimport { API_ROUTE_CBO } from '../ApiRoute';\nimport ApiService from '../ApiService';\nimport ApiServiceBase from '../ApiServiceBase';\nimport { STORAGE_CONSTANTS, storage } from '../LocalStorage';\nimport { ServiceType, ServerType } from '../ServiceType.data';\n\nconst serviceType = ServiceType.TCO;\n\nexport class AnalyticsService {\n private readonly CWBservice: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n private readonly localService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.localStack);\n\n\n public getChartData(\n payload: IChartPayload,\n ): Promise | IAnalyticsChartResponse {\n const isEngagement = JSON.parse(storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false') as boolean;\n const keyAssetList = JSON.parse(storage.getItem(STORAGE_CONSTANTS.keyAssetList) ?? '[]') as IProduct[];\n const cwbAsset = keyAssetList?.find((keyAsset)=>keyAsset.product == CBOKeyAssets.cboCWBAsset);\n if (isEngagement) {\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_ENG_CHART_DATA.replace(':projectId', payload?.projectId!)}`]\n });\n } else {\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_PURSUIT_CHART_DATA.replace(':pursuitId', payload?.projectId!)}`]\n });\n }\n }\n\n public get5YrPlData(payload: IChartPayload): Promise | I5YrPlDataResponse {\n const isEngagement = JSON.parse(storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false') as boolean;\n const keyAssetList = JSON.parse(storage.getItem(STORAGE_CONSTANTS.keyAssetList) ?? '[]') as IProduct[];\n const cwbAsset = keyAssetList?.find((keyAsset)=>keyAsset.product == CBOKeyAssets.cboCWBAsset);\n if (isEngagement) {\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_ENG_FIVE_YR_PL_DATA.replace(':projectId', payload?.projectId!)}`]\n });\n } else {\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_PURSUIT_FIVE_YR_PL_DATA.replace(':pursuitId', payload?.projectId!)}`]\n });\n }\n }\n \n\n\n public getComputeCostData(\n payload: IChartPayload,\n ): Promise | IComputeCostDataResponse {\n const isEngagement = JSON.parse(storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false') as boolean;\n const keyAssetList = JSON.parse(storage.getItem(STORAGE_CONSTANTS.keyAssetList) ?? '[]') as IProduct[];\n const cwbAsset = keyAssetList?.find((keyAsset)=>keyAsset.product == CBOKeyAssets.cboCWBAsset);\n if (isEngagement) {\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_ENG_COMPUTE_COST_DATA.replace(':projectId', payload?.projectId!)}`]\n });\n } else {\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_PURSUIT_COMPUTE_COST_DATA.replace(':pursuitId', payload?.projectId!)}`]\n });\n }\n }\n\n public getStorageCostData(\n payload: IChartPayload,\n ): Promise | IStorageCostDataResponse {\n const isEngagement = JSON.parse(storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false') as boolean;\n const keyAssetList = JSON.parse(storage.getItem(STORAGE_CONSTANTS.keyAssetList) ?? '[]') as IProduct[];\n const cwbAsset = keyAssetList?.find((keyAsset)=>keyAsset.product == CBOKeyAssets.cboCWBAsset);\n if (isEngagement) {\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_ENG_STORAGE_COST_DATA.replace(':projectId', payload?.projectId!)}`]\n });\n } else {\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_PURSUIT_STORAGE_COST_DATA.replace(':pursuitId', payload?.projectId!)}`]\n });\n }\n }\n\n public getAssessmentData(\n payload: string,\n ): Promise | IComputeCostDataResponse {\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.CWB.GET_ASSESSMENT_DATA}`],\n });\n }\n public getCategoriesData(\n payload: string,\n ): Promise | IComputeCostDataResponse {\n const isEngagement = JSON.parse(storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false') as boolean;\n const keyAssetList = JSON.parse(storage.getItem(STORAGE_CONSTANTS.keyAssetList) ?? '[]') as IProduct[];\n const cwbAsset = keyAssetList?.find((keyAsset)=>keyAsset.product == CBOKeyAssets.cboCWBAsset);\n if(isEngagement){\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_ENG_CATEGORIES_DATA.replace(':projectId', cwbAsset?.engagementId!)}`]\n });\n }\n else{\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_PURSUIT_CATEGORIES_DATA.replace(':pursuitId', payload!)}`]\n });\n }\n }\n}\n\nconst analyticsService = new AnalyticsService();\nexport default analyticsService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport {\n I5YrPlDataResponse,\n IAnalyticsChartResponse,\n IChartPayload,\n IComputeCostDataResponse,\n IStorageCostDataResponse,\n} from '../../models/AnalyticsModels';\nimport AnalyticsService from '../../services/analytics/AnalyticsService';\nimport {\n AnalyticsAction,\n AnalyticsActions,\n AnalyticsActionTypes,\n} from '../actions/AnalyticsActions';\nimport { IDimensionState } from '../state/AnalyticsState';\n\nexport function* getChartDataWorker(action: AnalyticsAction) {\n try {\n const data = action.data as IChartPayload;\n const response: IAnalyticsChartResponse = (yield AnalyticsService.getChartData(data))!;\n yield put(AnalyticsActions.getChartSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(AnalyticsActions.getChartError(error));\n }\n }\n}\n\nexport function* get5YrPlDataWorker(action: AnalyticsAction) {\n try {\n const data = action.data as IChartPayload;\n const response: I5YrPlDataResponse = (yield AnalyticsService.get5YrPlData(data))!;\n yield put(AnalyticsActions.get5YrPlDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(AnalyticsActions.get5YrPlDataError(error));\n }\n }\n}\n\nexport function* getComputeCostDataWorker(action: AnalyticsAction) {\n try {\n const data = action.data as IChartPayload;\n const response: IComputeCostDataResponse = (yield AnalyticsService.getComputeCostData(data))!;\n yield put(AnalyticsActions.getComputeCostDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(AnalyticsActions.getComputeCostDataError(error));\n }\n }\n}\n\nexport function* getStorageCostDataWorker(action: AnalyticsAction) {\n try {\n const data = action.data as IChartPayload;\n const response: IStorageCostDataResponse = (yield AnalyticsService.getStorageCostData(data))!;\n yield put(AnalyticsActions.getStorageCostDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(AnalyticsActions.getStorageCostDataError(error));\n }\n }\n}\n\nexport function* getDimensionsDataWorker(action: AnalyticsAction) {\n try {\n const projectId = action.data as string;\n const response: IDimensionState = (yield AnalyticsService.getAssessmentData(projectId))!;\n yield put(AnalyticsActions.getAssessmentDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(AnalyticsActions.getAssessmentDataError(error));\n }\n }\n}\n\nexport function* getCategoriesDataWorker(action: AnalyticsAction) {\n try {\n const projectId = action.data as string;\n const response: IDimensionState = (yield AnalyticsService.getCategoriesData(projectId))!;\n yield put(AnalyticsActions.getCategoriesDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(AnalyticsActions.getCategoriesDataError(error));\n }\n }\n}\n\nexport function* analyticsWatcher() {\n yield takeEvery(AnalyticsActionTypes.GET_CHART_DATA_STARTED, getChartDataWorker);\n yield takeEvery(AnalyticsActionTypes.GET_FIVE_YR_PL_DATA_STARTED, get5YrPlDataWorker);\n yield takeEvery(AnalyticsActionTypes.GET_COMPUTE_COST_DATA_STARTED, getComputeCostDataWorker);\n yield takeEvery(AnalyticsActionTypes.GET_STORAGE_COST_DATA_STARTED, getStorageCostDataWorker);\n yield takeEvery(AnalyticsActionTypes.GET_ASSESSMENT_DETAILS_STARTED, getDimensionsDataWorker);\n yield takeEvery(AnalyticsActionTypes.GET_CATEGORIES_STARTED, getCategoriesDataWorker);\n}\n","import { storage, STORAGE_CONSTANTS } from '../../services/LocalStorage';\nimport {\n IArchitectureCatalogueResponse,\n IDeploymentsResponse,\n ILandingZoneState,\n IYamlContent,\n IFormInterface,\n} from '../../store/state/BuildDeployState';\nimport { API_ROUTE_CBO } from '../ApiRoute';\nimport ApiService from '../ApiService';\nimport ApiServiceBase from '../ApiServiceBase';\nimport { ServerType, ServiceType } from '../ServiceType.data';\nimport { IProduct } from '../../models/cbo/EngagementModels';\nimport { CBOKeyAssets } from '../../../containers/CBOSidebar/CBOSidebarConstants';\n\nexport class BuildDeployService {\n private readonly localService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.localStack);\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n\n private readonly tangraService: ApiServiceBase = new ApiService(ServiceType.None,ServerType.tangra);\n\n \n public getDeploymentsList(projectId: string): Promise | IDeploymentsResponse[] {\n let route: string[] = [];\n route = [`${API_ROUTE_CBO.WORKFLOW}/${projectId}`];\n return this.tangraService.get({ route: route });\n }\n\n public getMultiCloudYamlContent(payload: IFormInterface): Promise | IYamlContent {\n return this.tangraService.post(\n {\n route: [`${API_ROUTE_CBO.multiCloudYaml}`],\n },\n payload,\n );\n }\n public getArchitectureListServive(projectId?:string):| Promise| IArchitectureCatalogueResponse[] {\n const isEngagement = JSON.parse(storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false') as boolean;\n const keyAssetList = JSON.parse(storage.getItem(STORAGE_CONSTANTS.keyAssetList) ?? '[]') as IProduct[];\n const dcaAsset = keyAssetList?.find((keyAsset)=>keyAsset.product == CBOKeyAssets.cboDCAAsset);\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_S3_FILES.replace(':projectId', projectId!)}`]\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_PURSUIT_S3_FILES.replace(':pursuitId', projectId!)}`]\n }); \n \n }\n}\n\npublic getLandingZone(projectId: string): Promise | ILandingZoneState[] {\n const isEngagement = JSON.parse(storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false') as boolean;\n const keyAssetList = JSON.parse(storage.getItem(STORAGE_CONSTANTS.keyAssetList) ?? '[]') as IProduct[];\n const dcaAsset = keyAssetList?.find((keyAsset)=>keyAsset.product == CBOKeyAssets.cboDCAAsset);\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.LIST_ENG_LANDING_ZONES.replace(':projectId', projectId!)}`]\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.LIST_PURSUIT_LANDING_ZONES.replace(':pursuitId', projectId!)}`]\n });\n }\n}\n\n}\n\nconst buildDeployService = new BuildDeployService();\nexport default buildDeployService;\n","/* eslint-disable max-lines */\nimport { put, takeEvery } from 'redux-saga/effects';\nimport {\n ILandingZoneResponse,\n LandingZoneStatus,\n LzMicroserviceStatus,\n} from '../../models/BuildDeployModels';\nimport BuildDeployService from '../../services/BuildDeployService/BuildDeployService';\nimport {\n BuildDeployAction,\n BuildDeployActions,\n BuildDeployActionTypes,\n} from '../actions/BuildDeployActions';\nimport {\n IArchitectureCatalogueResponse,\n IDeploymentsResponse,\n ILandingZoneState,\n IFormInterface,\n} from '../state/BuildDeployState';\n\nexport function* getLandingZonesWorker(action: BuildDeployAction) {\n try {\n //API call to get all the landing zones\n const projectId = action.data as string;\n const landingZoneList: ILandingZoneResponse[] = yield BuildDeployService.getLandingZone(\n projectId,\n );\n const landingZones: ILandingZoneState[] = landingZoneList.map(\n ({\n LandingZoneName,\n CurrentStatus,\n CloudServiceProvider,\n LandingZoneId,\n Sector,\n GCPProjectId,\n MicroserviceInfo,\n Errors,\n }) => {\n const isEnabled = CurrentStatus === LandingZoneStatus.CREATED;\n const microServicesConfigured = MicroserviceInfo?.status === LzMicroserviceStatus.CREATED;\n const microServicesError = MicroserviceInfo?.status === LzMicroserviceStatus.ERROR;\n return {\n landingZoneId: LandingZoneId,\n landingZoneEnabled: isEnabled,\n landingZoneConfigured: isEnabled,\n landingZoneName: LandingZoneName,\n projectName: GCPProjectId,\n loadingLandingZone: !isEnabled,\n loadingEtlWorkload: false,\n sector: Sector,\n loadingMicroServicesWorkload: Boolean(\n isEnabled && MicroserviceInfo?.ids && !microServicesConfigured && !microServicesError,\n ),\n workLoadPatternMicroServicesEnabled: microServicesConfigured,\n workLoadPatternEtlEnabled: false,\n workLoadPatternMicroServicesConfigured: microServicesConfigured,\n workLoadPatternMicroServicesError: microServicesError,\n workLoadPatternEtlConfigured: false,\n cloudServiceProvider: CloudServiceProvider,\n workLoadPatternMicroServicesId: MicroserviceInfo?.ids,\n landingZoneStatus: CurrentStatus,\n errorMessage: Errors,\n };\n },\n );\n\n yield put(BuildDeployActions.getBuildDeployDetailsSuccess(landingZones));\n yield put(BuildDeployActions.getLandingZoneListSuccess(landingZoneList));\n \n\n for (const { landingZoneName, workLoadPatternMicroServicesId } of landingZones.filter(\n (landingZone) => landingZone.loadingMicroServicesWorkload,\n )) {\n if (workLoadPatternMicroServicesId)\n yield put(\n BuildDeployActions.checkMicroServicesPatternStatus({\n microServiceId: workLoadPatternMicroServicesId,\n landingZoneName: landingZoneName,\n }),\n );\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(BuildDeployActions.getBuildDeployDetailsError(error));\n }\n }\n}\nexport function* getArchitectureListWorker(action: BuildDeployAction) {\n try {\n const architectureList: IArchitectureCatalogueResponse[] =\n yield BuildDeployService.getArchitectureListServive(action?.data as string);\n yield put(\n BuildDeployActions.getArchitectureListSuccess(\n architectureList as IArchitectureCatalogueResponse[],\n ),\n );\n } catch (error) {\n if (error instanceof Error) {\n yield put(BuildDeployActions.getArchitectureListError(error));\n }\n }\n}\nexport function* getDeploymentsWorker(action: BuildDeployAction) {\n try {\n //API call to get all deployment work flows\n const projectId = action.data as string;\n const deployments: IDeploymentsResponse[] = yield BuildDeployService.getDeploymentsList(\n projectId,\n );\n\n yield put(BuildDeployActions.getDeploymentDetailsSuccess(deployments));\n } catch (error) {\n if (error instanceof Error) {\n yield put(BuildDeployActions.getDeploymentDetailsError(error));\n }\n }\n}\nexport function* getMultiCloudYamlContentWorker(action: BuildDeployAction) {\n try {\n const response: Record = yield BuildDeployService.getMultiCloudYamlContent(\n action.data as IFormInterface,\n );\n yield put(BuildDeployActions.getMultiCloudYamlContentSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(BuildDeployActions.getMultiCloudYamlContentError(error));\n }\n }\n}\n\nexport function* buildDeployWatcher() {\n yield takeEvery(BuildDeployActionTypes.GET_BUILD_DEPLOY_DETAILS_STARTED, getLandingZonesWorker);\n yield takeEvery(BuildDeployActionTypes.GET_ARCHITECTURE_LIST_STARTED, getArchitectureListWorker);\n yield takeEvery(BuildDeployActionTypes.GET_DEPLOYMENT_DETAILS_STARTED, getDeploymentsWorker);\n yield takeEvery(BuildDeployActionTypes.GET_MULTICLOUD_YAML_CONTENT_STARTED, getMultiCloudYamlContentWorker);\n}\n","import { CBOKeyAssets } from '../../../containers/CBOSidebar/CBOSidebarConstants';\nimport {IHeatmapPayload, IHeatmapResponse} from '../../models/CloudSuitabilityModels';\nimport { IProduct } from '../../models/cbo/EngagementModels';\nimport { API_ROUTE_CBO } from '../ApiRoute';\nimport ApiService from '../ApiService';\nimport ApiServiceBase from '../ApiServiceBase';\nimport { STORAGE_CONSTANTS, storage } from '../LocalStorage';\nimport { ServerType, ServiceType } from '../ServiceType.data';\n\nconst serviceType = ServiceType.CSP;\n\nexport class CloudSuitabilityService {\n //private readonly service: ApiServiceBase = new ApiService(serviceType, ServerType.cwb);\n private readonly CWBservice: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n private readonly localService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.localStack);\n\n\n public getHeatmapData(payload: IHeatmapPayload): Promise | IHeatmapResponse {\n const keyAssetList = JSON.parse(storage.getItem(STORAGE_CONSTANTS.keyAssetList) ?? '[]') as IProduct[];\n const cwbAsset = keyAssetList?.find((keyAsset)=>keyAsset.product == CBOKeyAssets.cboCWBAsset);\n const isEngagement = JSON.parse(storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false') as boolean;\n if (isEngagement) {\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_ENG_HEATMAP_DATA.replace(':projectId', payload?.projectId!)}`]\n });\n } else {\n return this.CWBservice.get({\n route: [`${API_ROUTE_CBO.GET_PURSUIT_HEATMAP_DATA.replace(':pursuitId', payload?.projectId!)}`]\n });\n \n }\n }\n}\n\nconst cloudSuitabilityService = new CloudSuitabilityService();\nexport default cloudSuitabilityService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport {IHeatmapPayload, IHeatmapResponse} from '../../models/CloudSuitabilityModels';\nimport CloudSuitabilityService from '../../services/CloudSuitabilityService/CloudSuitabilityService';\nimport {\n CloudSuitabilityAction,\n CloudSuitabilityActions,\n CloudSuitabilityActionTypes,\n} from '../actions/CloudSuitabilityActions';\n\nexport function* getHeatmapDataWorker(action: CloudSuitabilityAction) {\n try {\n const data = action.data as IHeatmapPayload;\n const response: IHeatmapResponse = (yield CloudSuitabilityService.getHeatmapData(data))!;\n yield put(CloudSuitabilityActions.getHeatmapDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(CloudSuitabilityActions.getHeatmapDataError(error));\n }\n }\n}\nexport function* cloudSuitabilityWatcher() {\n yield takeEvery(CloudSuitabilityActionTypes.GET_HEATMAP_DATA_STARTED, getHeatmapDataWorker);\n \n}\n","import {\n ICboLoginResponse,\n IChangePasswordPayload,\n ICustomLoginPayload,\n ICustomLoginResponse,\n ILoginPayload,\n ILoginResponse,\n ITangraLoginPayload,\n ITangraLoginResponse,\n} from '../../models/LoginModels';\nimport { API_ROUTE_CBO } from '../ApiRoute';\nimport ApiService from '../ApiService';\nimport ApiServiceBase from '../ApiServiceBase';\nimport { storage, STORAGE_CONSTANTS } from '../LocalStorage';\nimport { ServerType, ServiceType } from '../ServiceType.data';\n\nconst tangraServiceType = ServiceType.None;\nconst sessionServiceType = ServiceType.ANALYTICS;\n\nexport class LoginService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n\n private readonly tangraService: ApiServiceBase = new ApiService(\n tangraServiceType,\n ServerType.tangra,\n );\n\n private readonly sessionService: ApiServiceBase = new ApiService(\n sessionServiceType,\n ServerType.tangra,\n );\n\n public postTangraLogin(\n payload: ITangraLoginPayload,\n ): Promise | ICboLoginResponse {\n return this.cboService.post({ route: [API_ROUTE_CBO.CBO_LOGIN] }, payload);\n }\n\n public getSessionToken(): Promise | string {\n return this.cboService.post({ route: [API_ROUTE_CBO.GET_USER_ACTIVITY_DATA] }, {});\n }\n\n public postSessionToken(): Promise | string {\n const sessionToken = storage.getItem(STORAGE_CONSTANTS.sessionToken);\n return this.sessionService.patch(\n { route: [API_ROUTE_CBO.GET_SESSION_TOKEN_DATA] },\n { Id: sessionToken },\n );\n }\n\n public postCustomLogin(\n payload: ICustomLoginPayload,\n ): Promise | ICustomLoginResponse {\n return this.cboService.post({ route: [API_ROUTE_CBO.POST_CUSTOM_LOGIN] }, payload);\n }\n\n public postChangePassword(\n payload: IChangePasswordPayload,\n ): Promise | ICustomLoginResponse {\n return this.cboService.post({ route: [API_ROUTE_CBO.POST_CHANGE_PASSWORD] }, payload);\n }\n}\n\nconst loginService = new LoginService();\nexport default loginService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport { NotificationTypes } from '../../../components/Notifications/NotificationsConstants';\nimport { LoginLabels } from '../../../containers/CBOLogin/CBOLoginConstants';\nimport {\n ILoginPayload,\n ILoginResponse,\n ISessionTokenResponse,\n ITangraLoginPayload,\n ITangraLoginResponse,\n ICboLoginResponse,\n ICustomLoginPayload,\n IChangePasswordPayload,\n} from '../../models/LoginModels';\nimport { storage, STORAGE_CONSTANTS } from '../../services/LocalStorage';\nimport LoginService from '../../services/login/LoginService';\nimport { LoginAction, LoginActions, LoginActionTypes } from '../actions/LoginActions';\nimport { ToastActions } from '../actions/ToastActions';\nimport { NotificationPlacement } from 'antd/lib/notification';\nimport {\n SectionType,\n TrafficAnalyticsActions,\n} from '../actions/WebAnalytics/TrafficAnalyticsActions';\n\nexport function* postTangraLoginWorker(action: LoginAction) {\n try {\n const data = action.data as ITangraLoginPayload;\n const response: ICboLoginResponse = (yield LoginService.postTangraLogin(data))!;\n yield put(LoginActions.postTangraLoginSuccess(response));\n yield put(\n ToastActions.showToast({\n description: LoginLabels.succesfulLoginText,\n type: NotificationTypes.SUCCESS,\n }),\n );\n if (navigator.platform.indexOf('Win') !== -1) {\n yield put(\n ToastActions.showToast({\n description: ``,\n type: NotificationTypes.INFO,\n duration: 0,\n placement: 'top' as NotificationPlacement,\n }),\n );\n }\n yield put(LoginActions.sessionTokenStart());\n } catch (error) {\n yield put(LoginActions.postTangraLoginError(error));\n if (error instanceof Error) {\n yield put(LoginActions.postTangraLoginError(error));\n }\n }\n}\n\n//API Worker to fetch session token.\nexport function* getSessionToken(action: LoginAction) {\n try {\n const response: ISessionTokenResponse = (yield LoginService.getSessionToken())!;\n if (response?.activityId) {\n storage.setItem(STORAGE_CONSTANTS.sessionToken, response.activityId);\n yield put(LoginActions.sessionTokenSuccess());\n yield put(\n TrafficAnalyticsActions.postVisitedPageStart({\n sectionType: SectionType.LOGIN,\n }),\n );\n yield put(\n TrafficAnalyticsActions.postVisitedPageStart({\n sectionType: SectionType.PURSUIT_DASHBOARD,\n }),\n );\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(LoginActions.sessionTokenError(error));\n }\n }\n}\n\nexport function* postSessionToken(action: LoginAction) {\n try {\n const response: ISessionTokenResponse = (yield LoginService.postSessionToken())!;\n yield put(LoginActions.sessionTokenPostSuccess());\n } catch (error) {\n if (error instanceof Error) {\n yield put(LoginActions.sessionTokenPostError(error));\n }\n }\n}\n\nexport function* postCustomLogin(action: LoginAction) {\n try {\n const data = action.data as ICustomLoginPayload;\n const response: ICboLoginResponse = (yield LoginService.postCustomLogin(data))!;\n yield put(LoginActions.postCustomLoginSuccess(response));\n if (response?.id_token) {\n yield put(\n ToastActions.showToast({\n description: LoginLabels.succesfulLoginText,\n type: NotificationTypes.SUCCESS,\n }),\n );\n if (navigator.platform.indexOf('Win') !== -1) {\n yield put(\n ToastActions.showToast({\n description: ``,\n type: NotificationTypes.INFO,\n duration: 0,\n placement: 'top' as NotificationPlacement,\n }),\n );\n }\n yield put(LoginActions.sessionTokenStart());\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(LoginActions.postCustomLoginError(error));\n yield put(\n ToastActions.showToast({\n message: 'Login Failed!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* postChangePassword(action: LoginAction) {\n try {\n const data = action.data as IChangePasswordPayload;\n const response: ICboLoginResponse = (yield LoginService.postChangePassword(data))!;\n yield put(LoginActions.postChangePasswordSuccess(response));\n if (response?.id_token) {\n yield put(\n ToastActions.showToast({\n description: LoginLabels.succesfulLoginText,\n type: NotificationTypes.SUCCESS,\n }),\n );\n if (navigator.platform.indexOf('Win') !== -1) {\n yield put(\n ToastActions.showToast({\n description: ``,\n type: NotificationTypes.INFO,\n duration: 0,\n placement: 'top' as NotificationPlacement,\n }),\n );\n }\n yield put(LoginActions.sessionTokenStart());\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(LoginActions.postChangePasswordError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* loginWatcher() {\n yield takeEvery(LoginActionTypes.TANGRA_LOGIN_REQUEST, postTangraLoginWorker);\n yield takeEvery(LoginActionTypes.SESSION_LOGIN_TOKEN_START, getSessionToken);\n yield takeEvery(LoginActionTypes.POST_SESSION_LOGIN_TOKEN_START, postSessionToken);\n yield takeEvery(LoginActionTypes.CUSTOM_LOGIN_START, postCustomLogin);\n yield takeEvery(LoginActionTypes.CHANGE_PASSWORD_START, postChangePassword);\n}\n","import { IUserResponse } from '../../models/UserModels';\nimport { API_ROUTE_CBO } from '../ApiRoute';\nimport ApiService from '../ApiService';\nimport ApiServiceBase from '../ApiServiceBase';\nimport { ServerType, ServiceType } from '../ServiceType.data';\n\nconst serviceType = ServiceType.None;\n\nexport class UserService {\n private readonly service: ApiServiceBase = new ApiService(serviceType, ServerType.tangra);\n\n public getUser(): Promise | IUserResponse {\n return this.service.get({ route: [`${API_ROUTE_CBO.GET_USER_PERMISSIONS}`] });\n }\n}\n\nconst userService = new UserService();\nexport default userService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport { IUserResponse } from '../../models/UserModels';\nimport userService from '../../services/user/UserService';\nimport { UserActions, UserActionTypes } from '../actions/UserActions';\n\nexport function* getUserWorker() {\n try {\n const response: IUserResponse = (yield userService.getUser())!;\n\n yield put(UserActions.getUserSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(UserActions.getUserError(error));\n }\n }\n}\n\nexport function* userWatcher() {\n yield takeEvery(UserActionTypes.USER_REQUEST, getUserWorker);\n}\n","import {\n IActiveUsersPayload,\n IAnalyticsPieChartResponse,\n} from '../../store/actions/WebAnalytics/HitsAnalyticsActions';\nimport { API_ROUTE_CBO } from '../ApiRoute';\nimport ApiService from '../ApiService';\nimport ApiServiceBase from '../ApiServiceBase';\nimport { ServerType, ServiceType } from '../ServiceType.data';\n\nconst serviceType = ServiceType.ANALYTICS;\n\nexport class HitsAnalyticsService {\n private readonly CboService: ApiServiceBase = new ApiService(serviceType, ServerType.cbo);\n private readonly service: ApiServiceBase = new ApiService(serviceType, ServerType.tangra);\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n\n public getUserVsReturningUsers():\n | Promise\n | IAnalyticsPieChartResponse[] {\n const route: string[] = [`${API_ROUTE_CBO.NEW_VS_RETURNING_USERS}`];\n return this.CboService.get({\n route: route,\n });\n }\n\n /**ActiveUserson CBO */\n public getActiveUsersData(\n payload: IActiveUsersPayload,\n ): Promise | IAnalyticsPieChartResponse[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_ACTIVE_USERS_DATA}`];\n return this.cboService.get({\n route: route,\n query: { sortBy: payload.sortBy },\n });\n }\n /**End of ActiveUserson CBO */\n\n public getUserVisitsData(): Promise | IAnalyticsPieChartResponse[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_USERS_VISITS_DATA}`];\n return this.CboService.get({\n route: route,\n });\n }\n\n public getPageViewsData(): Promise | IAnalyticsPieChartResponse[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_PAGE_VIEWS_DATA}`];\n return this.CboService.get({\n route: route,\n });\n }\n\n public getBounceRateData(): Promise | IAnalyticsPieChartResponse[] {\n const route: string[] = [`${API_ROUTE_CBO.BOUNCE_RATE_DATA}`];\n return this.CboService.get({\n route: route,\n });\n }\n}\n\nconst hitsAnalyticsService = new HitsAnalyticsService();\nexport default hitsAnalyticsService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport HitsAnalyticsService from '../../../services/TrafficAnalyticsService/HitAnalyticsService';\nimport {\n HitsAnalyticsAction,\n HitsAnalyticsActions,\n HitsAnalyticsActionTypes,\n IActiveUsersPayload,\n IAnalyticsAreaChartResponse,\n IAnalyticsPieChartResponse,\n} from '../../actions/WebAnalytics/HitsAnalyticsActions';\n\nexport function* getNewVsReturningUserWorker(action: HitsAnalyticsAction) {\n try {\n const response: IAnalyticsPieChartResponse[] =\n (yield HitsAnalyticsService.getUserVsReturningUsers())!;\n yield put(HitsAnalyticsActions.getNewVsReturningUsersSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(HitsAnalyticsActions.getNewVsReturningUsersError(error));\n }\n }\n}\nexport function* getActiveUsersDataWorker(action: HitsAnalyticsAction) {\n try {\n const data = action.data as IActiveUsersPayload;\n const response: IAnalyticsAreaChartResponse =\n (yield HitsAnalyticsService.getActiveUsersData(data))!;\n yield put(HitsAnalyticsActions.getActiveUserDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(HitsAnalyticsActions.getActiveUserDataError(error));\n }\n }\n}\n\nexport function* getUserVisitsDataWorker(action: HitsAnalyticsAction) {\n try {\n const response: IAnalyticsAreaChartResponse = (yield HitsAnalyticsService.getUserVisitsData())!;\n yield put(HitsAnalyticsActions.getUserVisitsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(HitsAnalyticsActions.getUserVisitsDataError(error));\n }\n }\n}\n\nexport function* getPageVisitsDataWorker(action: HitsAnalyticsAction) {\n try {\n const response: IAnalyticsAreaChartResponse = (yield HitsAnalyticsService.getPageViewsData())!;\n yield put(HitsAnalyticsActions.getPageViewsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(HitsAnalyticsActions.getPageViewsDataError(error));\n }\n }\n}\n\nexport function* getBounceRateData(action: HitsAnalyticsAction) {\n try {\n const response: IAnalyticsAreaChartResponse = (yield HitsAnalyticsService.getBounceRateData())!;\n yield put(HitsAnalyticsActions.getBounceRateDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(HitsAnalyticsActions.getBounceRateDataError(error));\n }\n }\n}\n\nexport function* hitsAnalyticsWatcher() {\n yield takeEvery(\n HitsAnalyticsActionTypes.GET_NEW_VS_RETURNING_USER_DATA_START,\n getNewVsReturningUserWorker,\n );\n // yield takeEvery(HitsAnalyticsActionTypes.GET_CLOUD_STATUS_DATA_START, getCloudStatusData);\n yield takeEvery(HitsAnalyticsActionTypes.GET_ACTIVE_USERS_DATA_START, getActiveUsersDataWorker);\n yield takeEvery(HitsAnalyticsActionTypes.GET_USERS_VISITS_DATA_START, getUserVisitsDataWorker);\n yield takeEvery(HitsAnalyticsActionTypes.GET_PAGE_VIEWS_DATA_START, getPageVisitsDataWorker);\n yield takeEvery(HitsAnalyticsActionTypes.GET_BOUNCE_RATE_DATA_START, getBounceRateData);\n}\n","import {\n IAnalyticsUserListResponse,\n IEngagementKeyAssetsData,\n IFiscalYear,\n IOverallSummaryResponseData,\n IPursuitEngagementResponse,\n IPursuitEngReportsPayload,\n IPursuitsEngagementAccumulativePayload,\n IPursuitsEngReportsResponse,\n IUserActivityResponse,\n IUserAnalyticsPayload,\n} from '../../models/cbo/cboWebAnalyticsModel';\nimport {\n IMostVisitedCapabilitiesResponse,\n IVisitedPagePayload,\n ICapabilitiesByPhaseResponse,\n IPursuitVsEngageemntPayload,\n} from '../../store/actions/WebAnalytics/TrafficAnalyticsActions';\nimport { API_ROUTE_CBO } from '../ApiRoute';\nimport ApiService from '../ApiService';\nimport ApiServiceBase from '../ApiServiceBase';\nimport { ServerType, ServiceType } from '../ServiceType.data';\n\nconst serviceType = ServiceType.None;\n\nexport class TrafficAnalyticsService {\n private readonly CboService: ApiServiceBase = new ApiService(serviceType, ServerType.cbo);\n private readonly service: ApiServiceBase = new ApiService(\n ServiceType.ANALYTICS,\n ServerType.tangra,\n );\n\n public postVisitedMenu(payload: IVisitedPagePayload): Promise | string {\n const route: string[] = [`${API_ROUTE_CBO.POST_VISITED_DATA}`];\n return this.CboService.post({ route: route }, payload);\n }\n\n public getMostVisitedCapabilitiesPerPhase(\n metricType: string,\n ): Promise | IMostVisitedCapabilitiesResponse[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_METRIC_ANALYTICS}/${metricType}`];\n return this.CboService.get({ route: route });\n }\n\n public getCapabilitiesByPhase(\n metricType: string,\n ): Promise | ICapabilitiesByPhaseResponse[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_METRIC_ANALYTICS}/${metricType}`];\n return this.CboService.get({ route: route });\n }\n\n public getKeyAssetsCount(\n metricType: string,\n ): Promise | IEngagementKeyAssetsData[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_METRIC_ANALYTICS}/${metricType}`];\n return this.CboService.get({ route: route });\n }\n public getPursuitEngegementsData(\n payload: IPursuitVsEngageemntPayload,\n ): Promise | IPursuitEngagementResponse {\n const route: string[] = [`${API_ROUTE_CBO.GET_PURSUITS_ENGAGEMENT_METRICS}`];\n return this.CboService.get({\n route: route,\n query: { category: payload.category },\n });\n }\n //CBO-3309:generated services for user activity and user list\n public getAnalyticsUserListService(\n payload: IUserAnalyticsPayload,\n ): Promise | IAnalyticsUserListResponse {\n const route: string[] = [`${API_ROUTE_CBO.GET_ANALYTICS_USER_LIST}`];\n return this.CboService.get({\n route: route,\n query: {\n limit: payload?.limit,\n page: payload?.page,\n text: payload?.text,\n startdate: payload?.startdate,\n enddate: payload?.enddate,\n },\n });\n }\n public getUserActivityService(\n payload: IUserAnalyticsPayload,\n ): Promise | IUserActivityResponse {\n const route: string[] = [\n `${API_ROUTE_CBO.GET_USER_ACTIVITY.replace(':userMail', payload?.userMail ?? '')}`,\n ];\n return this.CboService.get({\n route: route,\n query: {\n limit: payload?.limit,\n page: payload?.page,\n },\n });\n }\n\n public getPursuitAnalyticsService(\n payload: IUserAnalyticsPayload,\n ): Promise | IUserActivityResponse {\n const route: string[] = [`${API_ROUTE_CBO.GET_PURSUIT_ANALYTICS}`];\n return this.CboService.get({\n route: route,\n query: {\n limit: payload?.limit,\n page: payload?.page,\n text: payload?.text,\n startdate: payload?.startdate,\n enddate: payload?.enddate,\n },\n });\n }\n\n public getPursuitEngOverallSummaryService(\n payload: string,\n ): Promise | IOverallSummaryResponseData[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_OVERALL_SUMMARY_STATUS_REPORT}`];\n return this.CboService.get({ route: route, query: { type: payload } });\n }\n public getPursuitAccumulativeDataService(\n payload: IPursuitsEngagementAccumulativePayload,\n ): Promise | IOverallSummaryResponseData[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_PURSUITS_ACCUMULATIVE_REPORT}`];\n return this.CboService.get({\n route: route,\n query: { reportType: payload?.reportType, fiscalYear: payload.fiscalYear },\n });\n }\n public getEngagementAccumulativeDataService(\n payload: IPursuitsEngagementAccumulativePayload,\n ): Promise | IOverallSummaryResponseData[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_ENGAGEMENTS_ACCUMULATIVE_REPORT}`];\n return this.CboService.get({\n route: route,\n query: { reportType: payload?.reportType, fiscalYear: payload.fiscalYear },\n });\n }\n\n public getFiscalYearMetaDataService(): Promise | IFiscalYear[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_FISCAL_YEARS_META_DATA}`];\n return this.CboService.get({ route: route });\n }\n\n public getPursuitEngReportsTableDataService(\n payload: IPursuitEngReportsPayload,\n ): Promise | IPursuitsEngReportsResponse {\n const route: string[] = [\n `${payload.isEngagement ? API_ROUTE_CBO.GET_ENGAGEMENT_REPORTS_TABLE : API_ROUTE_CBO.GET_PURSUIT_REPORTS_TABLE}`,\n ];\n delete payload?.isEngagement;\n return this.CboService.post({ route: route }, payload);\n }\n}\n\nconst trafficAnalyticsService = new TrafficAnalyticsService();\nexport default trafficAnalyticsService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport TrafficAnalyticsService from '../../../services/TrafficAnalyticsService/TrafficAnalyticsService';\nimport {\n IMostVisitedCapabilitiesResponse,\n IVisitedPagePayload,\n TrafficAnalyticsAction,\n TrafficAnalyticsActions,\n TrafficAnalyticsActionTypes,\n ICapabilitiesByPhaseResponse,\n IPursuitVsEngageemntPayload,\n} from '../../actions/WebAnalytics/TrafficAnalyticsActions';\nimport { storage, STORAGE_CONSTANTS } from '../../../services/LocalStorage';\nimport {\n IAnalyticsUserListResponse,\n IEngagementKeyAssetsData,\n IFiscalYear,\n IOverallSummaryResponseData,\n IPursuitAnalyticsResponse,\n IPursuitEngagementResponse,\n IPursuitEngReportsPayload,\n IPursuitsEngagementAccumulativePayload,\n IPursuitsEngagementAccumulativeResponse,\n IPursuitsEngagementsOverallSummaryResponse,\n IPursuitsEngReportsResponse,\n IUserActivityListResponse,\n IUserActivityResponse,\n IUserAnalyticsPayload,\n} from '../../../models/cbo/cboWebAnalyticsModel';\n\nexport function* postVisitedDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as IVisitedPagePayload;\n data.activityId = storage.getItem(STORAGE_CONSTANTS.sessionToken) ?? '';\n data.pageType = data?.pageType ? data?.pageType : '';\n const userDetails = JSON.parse(storage.getItem(STORAGE_CONSTANTS.userDetails) || '');\n data.user_name = userDetails?.name;\n yield TrafficAnalyticsService.postVisitedMenu(data)!;\n yield put(TrafficAnalyticsActions.postVisitedPageSuccess());\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.postVisitedPageError(error));\n }\n }\n}\n\nexport function* getMostVisitedCapabilitiesDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as string;\n const response: IMostVisitedCapabilitiesResponse[] =\n (yield TrafficAnalyticsService.getMostVisitedCapabilitiesPerPhase(data))!;\n yield put(TrafficAnalyticsActions.getMostVisitedCapabilitiesSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getMostVisitedCapabilitiesError(error));\n }\n }\n}\n\nexport function* getCapabilitiesByPhaseDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as string;\n const response: ICapabilitiesByPhaseResponse[] =\n (yield TrafficAnalyticsService.getCapabilitiesByPhase(data))!;\n yield put(TrafficAnalyticsActions.getCapabilitiesByPhaseSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getCapabilitiesByPhasError(error));\n }\n }\n}\n\nexport function* getKeyAssetsCountDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as string;\n const response: IEngagementKeyAssetsData[] =\n (yield TrafficAnalyticsService.getKeyAssetsCount(data))!;\n yield put(TrafficAnalyticsActions.getKeyAssetsCountSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getKeyAssetsCountError(error));\n }\n }\n}\n\nexport function* getPursuitsEngagementDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as IPursuitVsEngageemntPayload;\n const response: IPursuitEngagementResponse =\n (yield TrafficAnalyticsService.getPursuitEngegementsData(data))!;\n yield put(TrafficAnalyticsActions.getPursuitEngagementsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getPursuitEngagementsDataError(error));\n }\n }\n}\n\n//CBO-3309:generated sagas for user activity and user list\nexport function* getAnalyticsUserListDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as IUserAnalyticsPayload;\n const response: IAnalyticsUserListResponse =\n (yield TrafficAnalyticsService.getAnalyticsUserListService(data))!;\n if (response) {\n if (data?.isExport) {\n yield put(\n TrafficAnalyticsActions.getAnalyticsUserListSuccess({\n ...response,\n isExport: true,\n } as IAnalyticsUserListResponse),\n );\n } else {\n yield put(TrafficAnalyticsActions.getAnalyticsUserListSuccess(response));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getAnalyticsUserListError(error));\n }\n }\n}\nexport function* getUserActivityDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as IUserAnalyticsPayload;\n const response: IUserActivityListResponse =\n (yield TrafficAnalyticsService.getUserActivityService(data))!;\n yield put(TrafficAnalyticsActions.getUserActivitySuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getUserActivityError(error));\n }\n }\n}\n\nexport function* getPursuitAnalyticsDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as IUserAnalyticsPayload;\n const response: IPursuitAnalyticsResponse =\n (yield TrafficAnalyticsService.getPursuitAnalyticsService(data))!;\n if (response) {\n if (data?.isExport) {\n yield put(\n TrafficAnalyticsActions.getActivePursuitsAnalyticsSuccess({\n ...response,\n isExport: true,\n } as IPursuitAnalyticsResponse),\n );\n } else {\n yield put(TrafficAnalyticsActions.getActivePursuitsAnalyticsSuccess(response));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getActivePursuitsAnalyticsError(error));\n }\n }\n}\n\nexport function* getPursuitEngOverallSummaryDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as string;\n const response: IOverallSummaryResponseData[] =\n (yield TrafficAnalyticsService.getPursuitEngOverallSummaryService(data))!;\n if (response) {\n yield put(\n TrafficAnalyticsActions.getPursuitEngOverallSummarySuccess({\n overallSummaryData: response,\n reportType: data,\n } as IPursuitsEngagementsOverallSummaryResponse),\n );\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getActivePursuitsAnalyticsError(error));\n }\n }\n}\n\nexport function* getPursuitsAccumulativeDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as IPursuitsEngagementAccumulativePayload;\n const response: IPursuitsEngagementAccumulativeResponse[] =\n (yield TrafficAnalyticsService.getPursuitAccumulativeDataService(data))!;\n if (response) {\n yield put(TrafficAnalyticsActions.getPursuitAccumulativeDataSuccess(response));\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getActivePursuitsAnalyticsError(error));\n }\n }\n}\n\nexport function* getEngagementsAccumulativeDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as IPursuitsEngagementAccumulativePayload;\n const response: IPursuitsEngagementAccumulativeResponse[] =\n (yield TrafficAnalyticsService.getEngagementAccumulativeDataService(data))!;\n if (response) {\n yield put(TrafficAnalyticsActions.getEngagementAccumulativeDataSuccess(response));\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getActivePursuitsAnalyticsError(error));\n }\n }\n}\n\nexport function* getFiscalYearMetaDataWorker(action: TrafficAnalyticsAction) {\n try {\n const response: IFiscalYear[] = (yield TrafficAnalyticsService.getFiscalYearMetaDataService())!;\n yield put(TrafficAnalyticsActions.getFiscalYearsMetadataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getFiscalYearsMetadataError(error));\n }\n }\n}\n\nexport function* getPursuitEngReportsTableDataWorker(action: TrafficAnalyticsAction) {\n try {\n const data = action.data as IPursuitEngReportsPayload;\n const response: IPursuitsEngReportsResponse =\n yield TrafficAnalyticsService.getPursuitEngReportsTableDataService(data);\n yield put(TrafficAnalyticsActions.getPursuitEngReportsTableSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(TrafficAnalyticsActions.getPursuitEngReportsTableError(error));\n }\n }\n}\n\nexport function* trafficAnalyticsWatcher() {\n yield takeEvery(\n TrafficAnalyticsActionTypes.POST_VISITED_PAGE_ACTION_START,\n postVisitedDataWorker,\n );\n yield takeEvery(\n TrafficAnalyticsActionTypes.GET_CAPABILITIES_BY_PHASE_START,\n getCapabilitiesByPhaseDataWorker,\n );\n yield takeEvery(\n TrafficAnalyticsActionTypes.GET_MOST_VISITED_CAPABILITIES_START,\n getMostVisitedCapabilitiesDataWorker,\n );\n yield takeEvery(\n TrafficAnalyticsActionTypes.GET_PURSUIT_ENGAGEMENT_START,\n getPursuitsEngagementDataWorker,\n );\n yield takeEvery(\n TrafficAnalyticsActionTypes.GET_KEY_ASSETS_COUNT_START,\n getKeyAssetsCountDataWorker,\n );\n yield takeEvery(\n TrafficAnalyticsActionTypes.GET_ANALYTICS_USER_LIST_START,\n getAnalyticsUserListDataWorker,\n );\n yield takeEvery(TrafficAnalyticsActionTypes.GET_USER_ACTIVITY_START, getUserActivityDataWorker);\n yield takeEvery(\n TrafficAnalyticsActionTypes.GET_ACTIVE_PURSUITS_ANALYTICS_START,\n getPursuitAnalyticsDataWorker,\n );\n yield takeEvery(\n TrafficAnalyticsActionTypes.GET_OVERALL_SUMMARY_STATUS_REPORT_START,\n getPursuitEngOverallSummaryDataWorker,\n );\n yield takeEvery(\n TrafficAnalyticsActionTypes.GET_PURSUIT_ACCUMULATIVE_DATA_START,\n getPursuitsAccumulativeDataWorker,\n );\n yield takeEvery(\n TrafficAnalyticsActionTypes.GET_ENGAGEMENT_ACCUMULATIVE_DATA_START,\n getEngagementsAccumulativeDataWorker,\n );\n yield takeEvery(\n TrafficAnalyticsActionTypes.GET_FISCAL_YEARS_METADATA_START,\n getFiscalYearMetaDataWorker,\n );\n yield takeEvery(\n TrafficAnalyticsActionTypes.GET_PURSUIT_ENG_REPORTS_TABLE_START,\n getPursuitEngReportsTableDataWorker,\n );\n}\n","import { IMarketplaceAssetPayload } from '../../../models/cbo/CboMarketplaceModels';\nimport {\n IConversionPayload,\n IConfigurePayload,\n IEngagementConfigurationPayload,\n IEngagementConfigurationResponse,\n IEngagementListForAdminRequestPayload,\n IEngagementListForAdminResponse,\n IEngagementResponse,\n IKeyAssetsIconResponseListObject,\n IPredefinedJourneyResponse,\n IProduct,\n IValidatePursuitPayload,\n IJourneyCapabilitiesResponse,\n IEngagementClosureDatePayload,\n IStatusUpdateResponse,\n ITagsResponse,\n} from '../../../models/cbo/EngagementModels';\nimport { API_ROUTE_CBO } from '../../ApiRoute';\nimport ApiService from '../../ApiService';\nimport ApiServiceBase from '../../ApiServiceBase';\nimport { ServerType, ServiceType } from '../../ServiceType.data';\n\nexport class EngagementService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n private readonly localstack: ApiServiceBase = new ApiService(\n ServiceType.None,\n ServerType.localStack,\n );\n\n public getEngagementList(\n requestPayload: IEngagementListForAdminRequestPayload,\n ): Promise | IEngagementResponse[] {\n const route: string[] = [\n `${requestPayload.isEngagement ? API_ROUTE_CBO.GET_ENGAGEMENTS : API_ROUTE_CBO.GET_PURSUITS}`,\n ];\n const { isEngagement, page, limit, ...payload } = requestPayload;\n return this.cboService.post({ route }, payload);\n }\n\n public getEngagementListForAdmin(\n requestPayload: IEngagementListForAdminRequestPayload,\n ): Promise | IEngagementListForAdminResponse {\n const route: string[] = [\n `${requestPayload.isEngagement ? API_ROUTE_CBO.GET_ENGAGEMENTS : API_ROUTE_CBO.GET_PURSUITS}`,\n ];\n const { isEngagement, isExport, ...payload } = requestPayload;\n return this.cboService.post({ route }, payload);\n }\n\n public getPredefinedJourneyList():\n | Promise\n | IPredefinedJourneyResponse[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_CE_PREDEFINED_JOURNEY_LIST}`];\n return this.cboService.get({ route: route });\n }\n\n public getKeyAssetList(data: IMarketplaceAssetPayload): Promise | IProduct[] {\n const route: string[] = [\n `${\n data.isEngagement\n ? API_ROUTE_CBO.GET_ENG_KEY_ASSETS_LIST\n : API_ROUTE_CBO.GET_KEY_ASSETS_LIST\n }/${data.selectedEnagagementId}`,\n ];\n return this.cboService.get({ route: route });\n }\n\n public getJourneyCapability(\n data: string[],\n ): Promise | IJourneyCapabilitiesResponse {\n const route: string[] = [`${API_ROUTE_CBO.GET_JOURNEY_CAPABILITY}`];\n return this.cboService.post({ route }, data);\n }\n\n public getEngagementConfiguration(\n data: IConfigurePayload,\n ): Promise | IEngagementConfigurationResponse[] {\n const route: string[] = [\n `${\n data.isEngagement\n ? API_ROUTE_CBO.GET_ENGAGEMENT_CONFIG.replace(`:engagementId`, data?.engagementId ?? '')\n : API_ROUTE_CBO.GET_PURSUIT_CONFIG.replace(`:engagementId`, data?.engagementId ?? '')\n }`,\n ];\n return this.cboService.get({ route: route });\n }\n\n public saveEngagementConfiguration(\n data: IEngagementConfigurationPayload,\n ): Promise | IEngagementConfigurationPayload {\n if (data.isEngagement) {\n const route: string[] = [`${API_ROUTE_CBO.SAVE_ENGAGEMENT_CONFIG}`];\n delete data?.isEngagement, delete data?.stage, delete data?.conversionStatus;\n return this.cboService.patch({ route }, data);\n } else {\n const route: string[] = [`${API_ROUTE_CBO.SAVE_PURSUIT_CONFIG}`];\n delete data?.isEngagement;\n return this.cboService.post({ route }, data);\n }\n }\n\n public deleteEngagement(data: string): Promise | any {\n return this.cboService.delete({ route: [`${API_ROUTE_CBO.DELETE_ENGAGEMENT}/${data}`] });\n }\n\n public getADAccessToken(data: string): Promise | string {\n const route: string[] = [`${API_ROUTE_CBO.GET_AD_ACCESS_TOKEN}`];\n return this.cboService.post({ route }, { ad_refresh_token: data });\n }\n public postConversionData(\n data: IConversionPayload,\n ): Promise | IStatusUpdateResponse {\n return this.cboService.post(\n {\n route: [`${API_ROUTE_CBO.ENGAGEMENT_CONVERSION}`],\n },\n data,\n );\n }\n\n public getKeyAssetsIconList():\n | Promise\n | IKeyAssetsIconResponseListObject[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_KEY_ASSETS_ICON_LIST}`];\n return this.cboService.get({ route: route });\n }\n\n public getDomailList(): Promise | String[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_DOMAIN_LIST}`];\n return this.cboService.get({ route });\n }\n\n /**\n * Validates the pursuit name.\n * CBO-3027_AI_AUTO_ENHANCE_CODE\n *\n * @param data - The payload containing the pursuit name to be validated.\n * @returns A promise that resolves to the validated pursuit name payload.\n */\n public validatePursuitName(\n data: IValidatePursuitPayload,\n ): Promise | IValidatePursuitPayload {\n const route: string[] = [`${API_ROUTE_CBO.VALIDATE_PURSUIT_NAME}`];\n return this.cboService.post({ route }, data);\n }\n\n public postEngagementClosureDate(data: IEngagementClosureDatePayload) {\n const route: string[] = [\n `${API_ROUTE_CBO.POST_ENGAGEMENT_CLOSURE_DATE.replace(':projectId', data.engagementId!)}`,\n ];\n delete data.engagementId;\n return this.cboService.post({ route }, data);\n }\n\n public getTagsList(payload: string): Promise | ITagsResponse[] {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_TAGS_LIST}`],\n query: { tag: payload },\n });\n }\n}\n\nconst engagementService = new EngagementService();\nexport default engagementService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport { NotificationTypes } from '../../../../components/Notifications/NotificationsConstants';\nimport {\n IEngagementConfigurationResponse,\n IEngagementConfigurationPayload,\n IEngagementConfigurationSaveResponse,\n IPredefinedJourneyResponse,\n IADAccessTokenResponse,\n IKeyAssetsIconResponseListObject,\n IProduct,\n IConversionPayload,\n IConfigurePayload,\n IEngagementListForAdminRequestPayload,\n IEngagementResponse,\n IEngagementListForAdminResponse,\n IValidatePursuitPayload,\n IValidatePursuitResponse,\n IJourneyCapabilitiesResponse,\n IEngagementClosureDatePayload,\n IStatusUpdateResponse,\n ITagsResponse,\n} from '../../../models/cbo/EngagementModels';\nimport EngagementService from '../../../services/cbo/EnagementService/EngagementService';\nimport {\n EngagementAction,\n EngagementActions,\n EngagementActionTypes,\n} from '../../actions/cbo/EngagementAction';\nimport { ToastActions } from '../../actions/ToastActions';\nimport { IMarketplaceAssetPayload } from '../../../models/cbo/CboMarketplaceModels';\nimport { storage, STORAGE_CONSTANTS } from '../../../services/LocalStorage';\nimport engagementService from '../../../services/cbo/EnagementService/EngagementService';\nimport { EngagementSummaryActions } from '../../actions/cbo/EngagementSummaryAction';\n\nexport function* getPredefinedJourneyListWorker(action: EngagementAction) {\n try {\n const response: IPredefinedJourneyResponse[] =\n (yield EngagementService.getPredefinedJourneyList())!;\n yield put(EngagementActions.getPredefinedJourneyListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.getPredefinedJourneyListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getKeyAssetListWorker(action: EngagementAction) {\n try {\n const data = action.data as IMarketplaceAssetPayload;\n const response: IProduct[] = (yield EngagementService.getKeyAssetList(data))!;\n yield put(EngagementActions.getKeyAssetsListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.getKeyAssetsListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getJourneyCapabilityDataWorker(action: EngagementAction) {\n try {\n const data = action.data as string[];\n const response: IJourneyCapabilitiesResponse =\n (yield EngagementService.getJourneyCapability(data))!;\n yield put(EngagementActions.getjourneyCapabilityDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.getjourneyCapabilityDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getEngagementConfigDataWorker(action: EngagementAction) {\n try {\n const response: IEngagementConfigurationResponse =\n yield EngagementService.getEngagementConfiguration(action.data as IConfigurePayload)!;\n yield put(\n EngagementActions.getEngagementConfigDataSuccess(\n response,\n (action.data as IConfigurePayload).isEngagement ?? false,\n ),\n );\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.getEngagementConfigDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* saveEngagementConfigDataWorker(action: EngagementAction) {\n try {\n //const { data } = action;\n const response: IEngagementConfigurationSaveResponse =\n (yield EngagementService.saveEngagementConfiguration(\n action.data as IEngagementConfigurationPayload,\n ))!;\n yield put(EngagementActions.saveEngagementConfigDataSuccess(response));\n yield put(\n ToastActions.showToast({\n description: 'Pursuit Configuration saved successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.saveEngagementConfigDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getADAccessToken(action: EngagementAction) {\n try {\n const data = action.data as string;\n const response: IADAccessTokenResponse = yield EngagementService.getADAccessToken(data);\n yield put(EngagementActions.getADAccessTokenSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.getADAccessTokenError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getKeyAssetsIconListWorker(action: EngagementAction) {\n try {\n const response: IKeyAssetsIconResponseListObject[] =\n yield EngagementService.getKeyAssetsIconList();\n yield put(EngagementActions.getKeyAssetsIconListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.getKeyAssetsIconListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description:\n 'Something went wrong while fetching Key Assets Icon list! Please close the drawer and try gain! ',\n // description: 'Something went wrong while fetching Key Assets Icon! Please close the drawer and try gain! ' + error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* saveConversionDataWorker(action: EngagementAction) {\n try {\n // const { data } = action;\n const userGroup = storage.getItem(STORAGE_CONSTANTS.userGroup)\n ? (storage.getItem(STORAGE_CONSTANTS.userGroup)?.split(',') ?? [''])\n : [''];\n const data = action.data as IConversionPayload;\n const response: IStatusUpdateResponse = yield EngagementService.postConversionData(\n data as IConversionPayload,\n );\n yield put(\n ToastActions.showToast({\n description: data.isEngagement\n ? 'Engagement deleted successfully'\n : !data.isEngagement && data.stage == 'won'\n ? 'Pursuit is converted to engagement successfully'\n : 'Pursuit status is updated successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n yield put(EngagementActions.getConversionDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.getConversionDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getDomainListDataWorker(action: EngagementAction) {\n try {\n const response: String[] = (yield EngagementService.getDomailList())!;\n yield put(EngagementActions.getDomainListDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.getDomainListDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\n/**\n * Worker function for validating pursuit name.\n * CBO-3027_AI_AUTO_ENHANCE_CODE\n * @param action - The engagement action.\n */\nexport function* validatePursuitNameWorker(action: EngagementAction) {\n try {\n const response: IValidatePursuitResponse = (yield EngagementService.validatePursuitName(\n action.data as IValidatePursuitPayload,\n ))!;\n yield put(EngagementActions.validatePursuitNameSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.validatePursuitNameError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* postEngagementClosureDateWorker(action: EngagementAction) {\n try {\n const userGroup = storage.getItem(STORAGE_CONSTANTS.userGroup)\n ? (storage.getItem(STORAGE_CONSTANTS.userGroup)?.split(',') ?? [''])\n : [''];\n const response: IStatusUpdateResponse = (yield EngagementService.postEngagementClosureDate(\n action.data as IEngagementClosureDatePayload,\n ))!;\n yield put(EngagementActions.postEngagementClosureDateSuccess(response));\n\n yield put(\n ToastActions.showToast({\n description: 'Engagement status updated successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.postEngagementClosureDateError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* tagsListDataWorker(action: EngagementAction) {\n try {\n const data = action.data as string;\n let response: ITagsResponse[] = (yield EngagementService.getTagsList(data!))!;\n\n yield put(EngagementActions.getTagsListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.getTagsListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\nexport function* engagementWatcher() {\n yield takeEvery(\n EngagementActionTypes.GET_CE_PREDEFINED_JOURNEY_LIST_STARTED,\n getPredefinedJourneyListWorker,\n );\n yield takeEvery(\n EngagementActionTypes.GET_JOURNEYCAPABILITY_DATA_STARTED,\n getJourneyCapabilityDataWorker,\n );\n yield takeEvery(\n EngagementActionTypes.GET_ENGAGEMENTCONFIG_DATA_STARTED,\n getEngagementConfigDataWorker,\n );\n yield takeEvery(\n EngagementActionTypes.SAVE_ENGAGEMENTCONFIG_DATA_STARTED,\n saveEngagementConfigDataWorker,\n );\n yield takeEvery(EngagementActionTypes.GET_AD_ACCESS_TOKEN_STARTED, getADAccessToken);\n yield takeEvery(\n EngagementActionTypes.GET_KEY_ASSETS_ICONS_LIST_STARTED,\n getKeyAssetsIconListWorker,\n );\n yield takeEvery(EngagementActionTypes.GET_KEY_ASSETS_LIST_STARTED, getKeyAssetListWorker);\n yield takeEvery(EngagementActionTypes.GET_CONVERSION_DATA_STARTED, saveConversionDataWorker);\n yield takeEvery(EngagementActionTypes.GET_DOMAIN_DATA_STARTED, getDomainListDataWorker);\n yield takeEvery(EngagementActionTypes.VALIDATE_PURSUIT_NAME_STARTED, validatePursuitNameWorker);\n yield takeEvery(\n EngagementActionTypes.POST_ENG_CLOSURE_DATE_STARTED,\n postEngagementClosureDateWorker,\n );\n yield takeEvery(EngagementActionTypes.GET_TAGS_LIST_STARTED, tagsListDataWorker);\n}\n","/* eslint-disable max-lines */\nimport { put, select, takeEvery } from 'redux-saga/effects';\nimport BuildDeployService from '../../../services/BuildDeployService/BuildDeployService';\nimport engagementService from '../../../services/cbo/EnagementService/EngagementService';\nimport { BuildDeployAction, BuildDeployActions } from '../../actions/BuildDeployActions';\nimport {\n EngagementSummaryAction,\n EngagementSummaryActions,\n EngagementSummaryActionTypes,\n} from '../../actions/cbo/EngagementSummaryAction';\nimport {\n IConfigurePayload,\n IEngagementConfigurationResponse,\n IEngagementListForAdminRequestPayload,\n IEngagementListForAdminResponse,\n IEngagementResponse,\n} from '../../../models/cbo/EngagementModels';\nimport { IFormInterface } from '../..//state/BuildDeployState';\nimport { ToastActions } from '../../actions/ToastActions';\nimport { NotificationTypes } from '../../../../components/Notifications/NotificationsConstants';\nimport { storage, STORAGE_CONSTANTS } from '../../../services/LocalStorage';\n\nexport function* getEngagementListWorker(action: EngagementSummaryAction) {\n try {\n const { isEngagement } = action.data as IEngagementListForAdminRequestPayload;\n const engagementList: IEngagementResponse = yield engagementService.getEngagementList(\n action.data as IEngagementListForAdminRequestPayload,\n );\n yield put(EngagementSummaryActions.getEngagemenSuccess(engagementList, isEngagement ?? false));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryActions.getEngagementError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getEngagementListForAdminWorker(action: EngagementSummaryAction) {\n try {\n const engagementListForAdmin: IEngagementListForAdminResponse =\n yield engagementService.getEngagementListForAdmin(\n action.data as IEngagementListForAdminRequestPayload,\n );\n yield put(\n EngagementSummaryActions.getEngagementListForAdminSuccess(\n engagementListForAdmin,\n (action.data as IEngagementListForAdminRequestPayload)?.isEngagement ?? false,\n (action.data as IEngagementListForAdminRequestPayload)?.isExport ?? false,\n ),\n );\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryActions.getEngagementListForAdminError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* deleteEngagementDataWorker(action: EngagementSummaryAction) {\n try {\n const userGroup = storage.getItem(STORAGE_CONSTANTS.userGroup)\n ? (storage.getItem(STORAGE_CONSTANTS.userGroup)?.split(',') ?? [''])\n : [''];\n const data = action.data as IConfigurePayload;\n yield engagementService.deleteEngagement(data.engagementId);\n yield put(EngagementSummaryActions.deleteEngagementConfigDataSuccess());\n yield put(\n ToastActions.showToast({\n description: 'Pursuit deleted successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryActions.deleteEngagementConfigDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getMultiCloudYamlContentWorker(action: BuildDeployAction) {\n try {\n const response: Record = yield BuildDeployService.getMultiCloudYamlContent(\n action.data as IFormInterface,\n );\n yield put(BuildDeployActions.getMultiCloudYamlContentSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(BuildDeployActions.getMultiCloudYamlContentError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* engagementSummaryWatcher() {\n yield takeEvery(\n EngagementSummaryActionTypes.GET_ENGAGEMENT_SUMMARY_STARTED,\n getEngagementListWorker,\n );\n yield takeEvery(\n EngagementSummaryActionTypes.GET_ENGAGEMENT_SUMMARY_FOR_ADMIN_STARTED,\n getEngagementListForAdminWorker,\n );\n yield takeEvery(\n EngagementSummaryActionTypes.DELETE_ENGAGEMENTCONFIG_DATA_STARTED,\n deleteEngagementDataWorker,\n );\n}\n","import { IConfigurePayload } from '../../../models/cbo/EngagementModels';\nimport { IFeatureUpdatePayload } from '../../../models/cbo/EngagementSummaryGraphModel';\nimport {\n ICapabilityReorderPayload,\n IViewSummaryResponsePayload,\n} from '../../../store/state/cbo/CboViewSummaryState';\nimport { API_ROUTE_CBO } from '../../ApiRoute';\nimport ApiService from '../../ApiService';\nimport ApiServiceBase from '../../ApiServiceBase';\nimport { ServerType, ServiceType } from '../../ServiceType.data';\n\nexport class CboViewSummaryService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n\n public postCapabilityOrder(\n body: ICapabilityReorderPayload,\n ): Promise | ICapabilityReorderPayload {\n const route: string[] = [`${API_ROUTE_CBO.POST_CAPABILITY_ORDER}`];\n return this.cboService.post({ route: route }, body);\n }\n\n public patchFeaturesUpdate(\n body: IFeatureUpdatePayload,\n ): Promise | IFeatureUpdatePayload {\n const route: string[] = [\n `${body.isEngagement ? API_ROUTE_CBO.ENGAGEMENT_FEATURES : API_ROUTE_CBO.FEATURES}`,\n ];\n return this.cboService.patch({ route: route }, body);\n }\n}\n\nconst cboViewSummaryService = new CboViewSummaryService();\nexport default cboViewSummaryService;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { NotificationTypes } from '../../../../components/Notifications/NotificationsConstants';\nimport cboViewSummaryService from '../../../services/cbo/CboViewSummaryService/CboViewSummaryService';\nimport CboViewSummaryService from '../../../services/cbo/CboViewSummaryService/CboViewSummaryService';\nimport {\n CboViewSummaryAction,\n CboViewSummaryActions,\n CboViewSummaryActionTypes,\n} from '../../actions/cbo/CboViewSummaryAction';\nimport { ToastActions } from '../../actions/ToastActions';\nimport {\n ICapabilitiesSequence,\n ICapabilityReorderPayload,\n IViewSummaryResponsePayload,\n} from '../../state/cbo/CboViewSummaryState';\nimport {\n IConfigurePayload,\n IEngagementConfigurationResponse,\n} from '../../../models/cbo/EngagementModels';\nimport EngagementService from '../../../services/cbo/EnagementService/EngagementService';\nimport { EngagementActions } from '../../actions/cbo/EngagementAction';\nimport { IFeatureUpdatePayload } from '../../../models/cbo/EngagementSummaryGraphModel';\n\nexport function* postCapabilityOrderWorker(action: CboViewSummaryAction) {\n try {\n const body = action.data as ICapabilityReorderPayload;\n const response: ICapabilitiesSequence[] = yield CboViewSummaryService.postCapabilityOrder(body);\n yield put(CboViewSummaryActions.PostCapabilityOrderSuccess(response));\n yield put(\n ToastActions.showToast({\n description: 'Capabilities order updated!',\n type: NotificationTypes.SUCCESS,\n }),\n );\n } catch (error) {\n if (error instanceof Error) {\n yield put(CboViewSummaryActions.PostCapabilityOrderError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* patchFeaturesUpdateWorker(action: CboViewSummaryAction) {\n try {\n const body = action.data as IFeatureUpdatePayload;\n yield CboViewSummaryService.patchFeaturesUpdate(body);\n yield put(\n ToastActions.showToast({\n description: 'Feature(s) updated Successfully!',\n type: NotificationTypes.SUCCESS,\n }),\n );\n yield put(CboViewSummaryActions.patchFeatureUpdateSuccess());\n\n try {\n const response: IEngagementConfigurationResponse =\n yield EngagementService.getEngagementConfiguration({\n engagementId: body.engagementId,\n isEngagement: body.isEngagement,\n })!;\n yield put(EngagementActions.getEngagementConfigDataSuccess(response, body.isEngagement));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.getEngagementConfigDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(CboViewSummaryActions.patchFeatureUpdateError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* cboViewSummaryWatcher() {\n yield takeEvery(\n CboViewSummaryActionTypes.POST_CAPABILITY_ORDER_STARTED,\n postCapabilityOrderWorker,\n );\n yield takeEvery(\n CboViewSummaryActionTypes.PATCH_FEATURE_UPDATE_STARTED,\n patchFeaturesUpdateWorker,\n );\n}\n","import {\n IClientResponse,\n IClientAddPayload,\n IClientUpdatePayload,\n IEngagementResponse,\n IEngagementAddPayload,\n IEngagementUpdatePayload\n } from '../../../models/cbo/ClientEngagementManagementModel';\n import { API_ROUTE_CBO } from '../../ApiRoute';\n import ApiService from '../../ApiService';\n import ApiServiceBase from '../../ApiServiceBase';\n import { ServerType, ServiceType } from '../../ServiceType.data';\n \n export class ClientEngagementManagementService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n\n public getClientNames(): Promise | IClientResponse[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_CLIENTS}`];\n return this.cboService.get({ \n route: route , \n query:{isLogoRequired:'False'}\n });\n }\n\n public getClientList(): Promise | IClientResponse[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_CLIENTS}`];\n return this.cboService.get({ \n route: route , \n query:{isLogoRequired:'True'}\n });\n }\n \n public getEngagementList(data:string): Promise | IEngagementResponse[] {\n // const route: string[] = [`${API_ROUTE_CBO.GET_ENGAGEMENT_CONFIG.replace(`:engagementId`,data )}`];\n const route: string[] = [`${API_ROUTE_CBO.GET_CLIENT_ENGAGEMENTS.replace(`:clientId`,data )}`];\n return this.cboService.get({ route: route });\n }\n \n public addClient(data: IClientAddPayload): Promise | IClientAddPayload {\n const route: string[] = [`${API_ROUTE_CBO.SAVE_CLIENT}`];\n return this.cboService.post({ route }, data);\n }\n\n public updateClient(data: IClientUpdatePayload): Promise | IClientUpdatePayload {\n const route: string[] = [`${API_ROUTE_CBO.SAVE_CLIENT}`];\n return this.cboService.put({ route }, data);\n }\n\n public addEngagement(data: IEngagementAddPayload): Promise | IEngagementAddPayload {\n const route: string[] = [`${API_ROUTE_CBO.SAVE_ENGAGEMENT}`];\n return this.cboService.post({ route }, data.payload);\n }\n\n public updateEngagement(data: IEngagementUpdatePayload): Promise | IEngagementUpdatePayload {\n const route: string[] = [`${API_ROUTE_CBO.SAVE_ENGAGEMENT}`];\n return this.cboService.patch({ route }, data);\n }\n\n public deleteClient(data:string): Promise | string[] {\n const route: string[] = [`${API_ROUTE_CBO.DELETE_CLIENT.replace(`:clientId`,data )}`];\n return this.cboService.delete({ route: route });\n }\n \n }\n \n const clientEngagementManagementService = new ClientEngagementManagementService();\n export default clientEngagementManagementService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport { NotificationTypes } from '../../../../components/Notifications/NotificationsConstants';\nimport {\n IClientResponse,\n IEngagementResponse,\n IClientAddPayload,\n IClientUpdatePayload,\n IEngagementAddPayload,\n IEngagementUpdatePayload,\n IEngagementDeletePayload,\n} from '../../../models/cbo/ClientEngagementManagementModel';\nimport ClientEngagementManagementService from '../../../services/cbo/ClientEngagementManagementService/ClientEngagementManagementService';\nimport engagementService from '../../../services/cbo/EnagementService/EngagementService';\nimport {\n ClientEngagementManagementAction,\n ClientEngagementManagementActions,\n ClientEngagementActionTypes,\n} from '../../actions/cbo/ClientEngagementManagementAction';\nimport { ToastActions } from '../../actions/ToastActions';\n\nexport function* getClientsDataWorker() {\n try {\n const response: IClientResponse[] = (yield ClientEngagementManagementService.getClientList());\n yield put(ClientEngagementManagementActions.getClientsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.getClientsDataError(error));\n yield put(\n ToastActions.showToast({\n message: \"Error!!!\",\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getClientsNameDataWorker() {\n try {\n const response: IClientResponse[] = (yield ClientEngagementManagementService.getClientNames());\n yield put(ClientEngagementManagementActions.getClientNamesDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.getClientNamesDataError(error));\n yield put(\n ToastActions.showToast({\n message: \"Error!!!\",\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getEngagementsDataWorker(action: ClientEngagementManagementAction) {\n try {\n const data = action.data as string;\n const response: IEngagementResponse[] =\n (yield ClientEngagementManagementService.getEngagementList(data))!;\n yield put(ClientEngagementManagementActions.getEngagementsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.getEngagementsDataError(error));\n yield put(\n ToastActions.showToast({\n message: \"Error!!!\",\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* addClientDataWorker(action: ClientEngagementManagementAction) {\n try {\n const { data } = action;\n yield ClientEngagementManagementService.addClient(data as IClientAddPayload);\n yield put(\n ToastActions.showToast({\n description: 'Client added successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const clientList: IClientResponse[] = yield ClientEngagementManagementService.getClientList();\n yield put(ClientEngagementManagementActions.getClientsDataSuccess(clientList));\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.getClientsDataError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.addClientError(error));\n yield put(\n ToastActions.showToast({\n message: \"Error!!!\",\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* updateClientDataWorker(action: ClientEngagementManagementAction) {\n try {\n const { data } = action;\n yield ClientEngagementManagementService.updateClient(data as IClientUpdatePayload);\n yield put(\n ToastActions.showToast({\n description: 'Client updated successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const clientList: IClientResponse[] = yield ClientEngagementManagementService.getClientList();\n yield put(ClientEngagementManagementActions.getClientsDataSuccess(clientList));\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.getClientsDataError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.updateClientError(error));\n yield put(\n ToastActions.showToast({\n message: \"Error!!!\",\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* addEngagementDataWorker(action: ClientEngagementManagementAction) {\n try {\n const { data } = action;\n yield ClientEngagementManagementService.addEngagement(data as IEngagementAddPayload);\n yield put(\n ToastActions.showToast({\n description: 'Engagement added successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const response: IEngagementResponse[] =\n (yield ClientEngagementManagementService.getEngagementList(\n (data as IEngagementAddPayload).selectedClientId,\n ))!;\n yield put(ClientEngagementManagementActions.getEngagementsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.getEngagementsDataError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.addEngagementError(error));\n yield put(\n ToastActions.showToast({\n message: \"Error!!!\",\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* updateEngagementDataWorker(action: ClientEngagementManagementAction) {\n try {\n const { data } = action;\n yield ClientEngagementManagementService.updateEngagement(data as IEngagementUpdatePayload);\n yield put(\n ToastActions.showToast({\n description: 'Engagement updated successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const response: IEngagementResponse[] =\n (yield ClientEngagementManagementService.getEngagementList(\n (data as IEngagementUpdatePayload).clientId,\n ))!;\n yield put(ClientEngagementManagementActions.getEngagementsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.getEngagementsDataError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.updateEngagementError(error));\n yield put(\n ToastActions.showToast({\n message: \"Error!!!\",\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* deleteClientDataWorker(action: ClientEngagementManagementAction) {\n try {\n yield ClientEngagementManagementService.deleteClient(action.data as string);\n yield put(\n ToastActions.showToast({\n description: 'Client deleted successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const clientList: IClientResponse[] = yield ClientEngagementManagementService.getClientList();\n yield put(ClientEngagementManagementActions.getClientsDataSuccess(clientList));\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.getClientsDataError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.deleteClientDataError(error));\n yield put(\n ToastActions.showToast({\n message: \"Error!!!\",\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\nexport function* deleteEngagementDataWorker(action: ClientEngagementManagementAction) {\n try {\n const engagementDeletePayload = action.data as IEngagementDeletePayload;\n yield engagementService.deleteEngagement(engagementDeletePayload.engagementId as string);\n yield put(\n ToastActions.showToast({\n description: 'Engagement deleted successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const EngagementList: IEngagementResponse[] =\n yield ClientEngagementManagementService.getEngagementList(\n engagementDeletePayload.clientId as string,\n );\n yield put(ClientEngagementManagementActions.getEngagementsDataSuccess(EngagementList));\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.getEngagementsDataError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(ClientEngagementManagementActions.deleteEngagementDataError(error));\n yield put(\n ToastActions.showToast({\n message: \"Error!!!\",\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* clientEngagementManagementWatcher() {\n yield takeEvery(ClientEngagementActionTypes.GET_CLIENTS_DATA_STARTED, getClientsDataWorker);\n yield takeEvery(ClientEngagementActionTypes.GET_CLIENTS_NAME_DATA_STARTED, getClientsNameDataWorker);\n yield takeEvery(\n ClientEngagementActionTypes.GET_ENGAGEMENTS_DATA_STARTED,\n getEngagementsDataWorker,\n );\n yield takeEvery(ClientEngagementActionTypes.ADD_CLIENT_DATA_STARTED, addClientDataWorker);\n yield takeEvery(ClientEngagementActionTypes.UPDATE_CLIENT_DATA_STARTED, updateClientDataWorker);\n yield takeEvery(ClientEngagementActionTypes.ADD_ENGAGEMENT_DATA_STARTED, addEngagementDataWorker);\n yield takeEvery(\n ClientEngagementActionTypes.UPDATE_ENGAGEMENT_DATA_STARTED,\n updateEngagementDataWorker,\n );\n yield takeEvery(ClientEngagementActionTypes.DELETE_CLIENT_DATA_STARTED, deleteClientDataWorker);\n yield takeEvery(\n ClientEngagementActionTypes.DELETE_ENGAGEMENT_DATA_STARTED,\n deleteEngagementDataWorker,\n );\n}\n","import { API_ROUTE_CBO } from '../../ApiRoute';\nimport ApiService from '../../ApiService';\nimport ApiServiceBase from '../../ApiServiceBase';\nimport { ServerType, ServiceType } from '../../ServiceType.data';\nimport {\n ICboUserManagementObject,\n ICreateUserRequestBody,\n IClientListMapping,\n IEditUserRequestBody,\n IShowUserClientPayload,\n} from '../../../models/cbo/UserManagementModel';\nimport { IEngagementResponse } from '../../../models/cbo/ClientEngagementManagementModel';\nimport { IEngagementListForAdminRequestPayload } from '../../../models/cbo/EngagementModels';\nimport { STORAGE_CONSTANTS, storage } from '../../LocalStorage';\n\nexport class UserManagementService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n //private readonly localStak: ApiServiceBase = new ApiService(ServiceType.None, ServerType.localStack);\n\n public getUserList(\n requestPayload: IEngagementListForAdminRequestPayload,\n ): Promise | ICboUserManagementObject {\n if (requestPayload?.text?.trim().length !== 0)\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_USER_LIST}`],\n query: {\n limit: requestPayload.limit,\n page: requestPayload.page,\n text: requestPayload?.text,\n },\n });\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_USER_LIST}`],\n query: {\n limit: requestPayload.limit,\n page: requestPayload.page,\n },\n });\n }\n\n public getClientEngList(): Promise | IClientListMapping[] {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_CLIENT_ENG_MAPPINGS}`],\n });\n }\n\n public addUser(\n data: ICreateUserRequestBody,\n ): Promise | ICreateUserRequestBody {\n return this.cboService.post(\n {\n route: [`${API_ROUTE_CBO.GET_USER_LIST}`],\n },\n data,\n );\n }\n\n public editUserStatus(\n data: ICboUserManagementObject,\n ): Promise | ICboUserManagementObject {\n return this.cboService.patch(\n {\n route: [`${API_ROUTE_CBO.GET_USER_LIST}`],\n },\n data,\n );\n }\n\n public editUser(\n data: IEditUserRequestBody,\n ): Promise | IEditUserRequestBody {\n return this.cboService.patch(\n {\n route: [`${API_ROUTE_CBO.GET_USER_LIST}`],\n },\n data,\n );\n }\n\n public getRolesMetadata(): Promise | string[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_ROLE_METADATA}`];\n return this.cboService.get({ route: route });\n }\n\n public getClientUserMapping(\n data: string,\n ): Promise | IEngagementResponse[] {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_CLIENT_USER_MAPPING.replace(`:userId`, data)}`],\n });\n }\n // @CBO-2834_AI_AUTO_NEW_CODE:generated service function for show user's client\n public showUserClientService(payload: IShowUserClientPayload): Promise | string {\n const userId = storage.getItem(STORAGE_CONSTANTS.userId);\n return this.cboService.patch(\n {\n route: [`${API_ROUTE_CBO.SHOW_USER_CLIENT.replace(`:userId`, userId!)}`],\n },\n payload,\n );\n }\n}\n\nconst userManagementService = new UserManagementService();\nexport default userManagementService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport { NotificationTypes } from '../../../../components/Notifications/NotificationsConstants';\nimport { IEngagementResponse } from '../../../models/cbo/ClientEngagementManagementModel';\nimport {\n ICboUserManagementObject,\n ICreateUserRequestBody,\n IClientListMapping,\n IEditUserRequestBody,\n IShowUserClientPayload,\n} from '../../../models/cbo/UserManagementModel';\nimport UserManagementService from '../../../services/cbo/UserManagementService/UserManagementService';\nimport {\n UserManagementAction,\n UserManagementActions,\n UserManagementActionTypes,\n} from '../../actions/cbo/UserManagementAction';\nimport { ToastActions } from '../../actions/ToastActions';\nimport { IEngagementListForAdminRequestPayload } from '../../../models/cbo/EngagementModels';\nimport { STORAGE_CONSTANTS, storage } from '../../../services/LocalStorage';\n\nexport function* getUserListWorker(action: UserManagementAction) {\n try {\n const response: ICboUserManagementObject = yield UserManagementService.getUserList(\n action.data as IEngagementListForAdminRequestPayload,\n );\n yield put(UserManagementActions.getUserListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(UserManagementActions.getUserListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getClientUserWorker(action: UserManagementAction) {\n try {\n const data = action.data as string;\n const response: IEngagementResponse[] = yield UserManagementService.getClientUserMapping(data);\n yield put(UserManagementActions.getClientUserSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(UserManagementActions.getClientUserError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getClientEngListWorker() {\n try {\n const response: IClientListMapping[] = yield UserManagementService.getClientEngList();\n yield put(UserManagementActions.getClientEngListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(UserManagementActions.getClientEngListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* addUserDataWorker(action: UserManagementAction) {\n try {\n const { data } = action;\n yield UserManagementService.addUser(data as ICreateUserRequestBody);\n yield put(UserManagementActions.addUserSuccess());\n yield put(\n ToastActions.showToast({\n description: 'User added successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n yield put(UserManagementActions.getUserListStart({ limit: 10, page: 1 }));\n } catch (error) {\n if (error instanceof Error) {\n yield put(UserManagementActions.getUserListError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n yield put(UserManagementActions.addUserError(error));\n }\n }\n}\n\nexport function* editUserStatusDataWorker(action: UserManagementAction) {\n try {\n const { data } = action;\n yield UserManagementService.editUserStatus(data as ICboUserManagementObject);\n yield put(UserManagementActions.addUserSuccess());\n yield put(\n ToastActions.showToast({\n description: 'User Status Changed successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n yield put(UserManagementActions.getUserListStart({ limit: 10, page: 1 }));\n } catch (error) {\n if (error instanceof Error) {\n yield put(UserManagementActions.getUserListError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n yield put(UserManagementActions.addUserError(error));\n }\n }\n}\n\nexport function* updateUserDataWorker(action: UserManagementAction) {\n try {\n const { data } = action;\n yield UserManagementService.editUser(data as IEditUserRequestBody);\n yield put(UserManagementActions.editUserSuccess());\n yield put(\n ToastActions.showToast({\n description: 'User edited successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n yield put(UserManagementActions.getUserListStart({ limit: 10, page: 1 }));\n } catch (error) {\n if (error instanceof Error) {\n yield put(UserManagementActions.getUserListError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n yield put(UserManagementActions.editUserError(error));\n }\n }\n}\n\nexport function* getRoleMetaDataWorker() {\n try {\n const response: string[] = yield UserManagementService.getRolesMetadata();\n yield put(UserManagementActions.getRoleMetaDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(UserManagementActions.getRoleMetaDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n// @CBO-2834_AI_AUTO_NEW_CODE:generated saga function for show user's client\nexport function* showUserClientDataWorker(action: UserManagementAction) {\n try {\n const payload = action?.data as IShowUserClientPayload;\n const userId = storage.getItem(STORAGE_CONSTANTS.userId) ?? '';\n const response: string = yield UserManagementService.showUserClientService(payload);\n yield put(UserManagementActions.showUserClientSuccess());\n yield put(\n ToastActions.showToast({\n description: 'Client-User Mapping Updated Successfully!!!',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n yield put(UserManagementActions.getClientUserStart(userId));\n } catch (error) {\n if (error instanceof Error) {\n yield put(UserManagementActions.getClientUserError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(UserManagementActions.showUserClientError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* cboUserManagementWatcher() {\n yield takeEvery(UserManagementActionTypes.GET_USER_LIST_STARTED, getUserListWorker);\n yield takeEvery(UserManagementActionTypes.GET_CLIENT_ENG_LIST_STARTED, getClientEngListWorker);\n yield takeEvery(UserManagementActionTypes.ADD_USER_DATA_STARTED, addUserDataWorker);\n yield takeEvery(UserManagementActionTypes.EDIT_USER_STATUS_STARTED, editUserStatusDataWorker);\n yield takeEvery(UserManagementActionTypes.UPDATE_USER_DATA_STARTED, updateUserDataWorker);\n yield takeEvery(UserManagementActionTypes.GET_ROLE_METADATA_STARTED, getRoleMetaDataWorker);\n yield takeEvery(UserManagementActionTypes.GET_CLIENT_USER_STARTED, getClientUserWorker);\n yield takeEvery(UserManagementActionTypes.SHOW_USER_CLIENT_STARTED, showUserClientDataWorker);\n}\n"," import { API_ROUTE_CBO } from '../../ApiRoute';\n import ApiService from '../../ApiService';\n import ApiServiceBase from '../../ApiServiceBase';\n import { ServerType, ServiceType } from '../../ServiceType.data';\n\n export class RBACService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n\n public getRBACData(payload:string[]): Promise | string[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_RBAC_DATA}`];\n return this.cboService.post({ route: route }, payload);\n }\n\n }\n\n const rbacService = new RBACService();\n export default rbacService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport RBACService from '../../../services/cbo/RBACService/RBACService';\nimport {\n RBACAction, RBACActions, RBACActionTypes,\n} from '../../actions/cbo/RBACActions';\nimport { ToastActions } from \"../../actions/ToastActions\";\nimport { NotificationTypes } from \"../../../../components/Notifications/NotificationsConstants\";\n\nexport function* getRBACDataWorker(action: RBACAction) {\n try {\n const response: string[] = yield RBACService.getRBACData(action.data as string[]);\n yield put(RBACActions.getRBACDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(RBACActions.getRBACDataError(error));\n yield put(\n ToastActions.showToast({\n message: \"Error!!!\",\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* rbacWatcher() {\n yield takeEvery(RBACActionTypes.GET_RBAC_DATA_STARTED, getRBACDataWorker);\n}\n"," import { IRefreshTokenResponse } from '../../../store/state/cbo/RefreshTokenState';\nimport { API_ROUTE_CBO } from '../../ApiRoute';\n import ApiService from '../../ApiService';\n import ApiServiceBase from '../../ApiServiceBase';\n import { ServerType, ServiceType } from '../../ServiceType.data';\n\n export class RefreshTokenService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n\n public refreshToken(payload:string): Promise | IRefreshTokenResponse {\n const route: string[] = [`${API_ROUTE_CBO.REFRESH_TOKEN}?refresh_token=${payload}`];\n return this.cboService.get({ route: route });\n }\n }\n\n const refreshTokenService = new RefreshTokenService();\n export default refreshTokenService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport RefreshTokenService from '../../../services/cbo/RefreshTokenService/RefreshTokenService';\nimport {\n RefreshTokenAction, RefreshTokenActions, RefreshTokenActionTypes,\n} from '../../actions/cbo/RefreshTokenActions';\nimport { IRefreshTokenResponse } from '../../state/cbo/RefreshTokenState';\nimport { ToastActions } from \"../../actions/ToastActions\";\nimport { NotificationTypes } from \"../../../../components/Notifications/NotificationsConstants\";\n\nexport function* refreshTokenWorker(action: RefreshTokenAction) {\n try {\n const response: IRefreshTokenResponse = yield RefreshTokenService.refreshToken(action.data as string);\n yield put(RefreshTokenActions.refreshTokenSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(RefreshTokenActions.refreshTokenError(error));\n yield put(\n ToastActions.showToast({\n message: \"Error!!!\",\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* refreshTokenWatcher() {\n yield takeEvery(RefreshTokenActionTypes.REFRESH_TOKEN_STARTED, refreshTokenWorker);\n}\n","import { API_ROUTE_CBO } from '../../ApiRoute';\nimport ApiService from '../../ApiService';\nimport ApiServiceBase from '../../ApiServiceBase';\nimport { ServerType, ServiceType } from '../../ServiceType.data';\nimport {\n IAssetDetailPayload,\n IEngagementAssetsObject,\n IEngagementAssetsPayload,\n IMarketplaceAssetModal,\n IMarketplaceAssetPayload,\n} from '../../../models/cbo/CboMarketplaceModels';\n\nexport class MarketplaceService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n\n public getEngagementMandatoryAssets(\n data: IMarketplaceAssetPayload,\n ): Promise | IEngagementAssetsObject {\n return this.cboService.get({\n route: [\n `${\n data.isEngagement\n ? API_ROUTE_CBO.GET_ENGAGEMENT_ASSETS.replace(\n `:engagementId`,\n data.selectedEnagagementId,\n )\n : API_ROUTE_CBO.GET_PURSUIT_ASSETS.replace(`:engagementId`, data.selectedEnagagementId)\n }`,\n ],\n query: { assetType: 'Mandatory' },\n });\n }\n\n public getEngagementRecommendedAssets(\n data: IMarketplaceAssetPayload,\n ): Promise | IEngagementAssetsObject {\n return this.cboService.get({\n route: [\n `${\n data.isEngagement\n ? API_ROUTE_CBO.GET_ENGAGEMENT_ASSETS.replace(\n `:engagementId`,\n data.selectedEnagagementId,\n )\n : API_ROUTE_CBO.GET_PURSUIT_ASSETS.replace(`:engagementId`, data.selectedEnagagementId)\n }`,\n ],\n query: { assetType: 'Recommended' },\n });\n }\n\n public addEngagmentAsset(\n data: IEngagementAssetsPayload,\n ): Promise | IEngagementAssetsPayload {\n return this.cboService.patch(\n {\n route: [\n `${\n data.isEngagement\n ? API_ROUTE_CBO.POST_ENGAGEMENT_ASSETS\n : API_ROUTE_CBO.POST_PURSUIT_ASSETS\n }`,\n ],\n },\n data,\n );\n }\n\n public getEngagementAssetDetails(\n data: IAssetDetailPayload,\n ): Promise | IMarketplaceAssetModal {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENGAGEMENT_ASSET_DETAILS.replace(`:assetId`, data.assetId).replace(`:assetType`, data.assetType)}`,\n ],\n });\n }\n}\n\nconst marketplaceService = new MarketplaceService();\nexport default marketplaceService;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { NotificationTypes } from '../../../../components/Notifications/NotificationsConstants';\nimport {\n IAssetDetailPayload,\n IEngagementAssetsObject,\n IEngagementAssetsPayload,\n IMarketplaceAssetModal,\n IMarketplaceAssetPayload,\n} from '../../../models/cbo/CboMarketplaceModels';\nimport marketplaceService from '../../../services/cbo/CboMarketplace/CboMarketplaceService';\nimport {\n CboMarketplaceActions,\n CboMarketplaceAction,\n CboMarketplaceActionTypes,\n} from '../../actions/cbo/CboMarketplaceAction';\nimport { ToastActions } from '../../actions/ToastActions';\n\nexport function* getMandatoryAssetssWorker(action: CboMarketplaceAction) {\n try {\n const { isEngagement } = action.data as IMarketplaceAssetPayload;\n const response: IEngagementAssetsObject = yield marketplaceService.getEngagementMandatoryAssets(\n action.data as IMarketplaceAssetPayload,\n );\n yield put(CboMarketplaceActions.getMarketplaceMandatoryAssetsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(CboMarketplaceActions.getMarketplaceMandatoryAssetsError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getRecommendedAssetssWorker(action: CboMarketplaceAction) {\n try {\n const { isEngagement } = action.data as IMarketplaceAssetPayload;\n const response: IEngagementAssetsObject =\n yield marketplaceService.getEngagementRecommendedAssets(\n action.data as IMarketplaceAssetPayload,\n );\n yield put(CboMarketplaceActions.getMarketplaceRecommendedAssetsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(CboMarketplaceActions.getMarketplaceRecommendedAssetsError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* addEngagementAssetWorker(action: CboMarketplaceAction) {\n try {\n yield marketplaceService.addEngagmentAsset(action.data as IEngagementAssetsPayload);\n yield put(CboMarketplaceActions.addMarketplaceAssetsSuccess());\n yield put(\n ToastActions.showToast({\n description: 'Assets configured successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n } catch (error) {\n if (error instanceof Error) {\n yield put(\n ToastActions.showToast({\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n yield put(CboMarketplaceActions.addMarketplaceAssetsError(error));\n }\n }\n}\n\nexport function* getEngagementAssetDetailsWorker(action: CboMarketplaceAction) {\n try {\n const data = action.data as IAssetDetailPayload;\n const response: IMarketplaceAssetModal =\n yield marketplaceService.getEngagementAssetDetails(data);\n yield put(CboMarketplaceActions.getMarketplaceAssetDetailsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(CboMarketplaceActions.getMarketplaceAssetDetailsError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* cboMarketplaceWatcher() {\n yield takeEvery(\n CboMarketplaceActionTypes.GET_MARKETPLACE_MANDATORY_ASSET_STARTED,\n getMandatoryAssetssWorker,\n );\n yield takeEvery(\n CboMarketplaceActionTypes.GET_MARKETPLACE_RECOMMENDED_ASSET_STARTED,\n getRecommendedAssetssWorker,\n );\n yield takeEvery(\n CboMarketplaceActionTypes.ADD_MARKETPLACE_ASSET_STARTED,\n addEngagementAssetWorker,\n );\n yield takeEvery(\n CboMarketplaceActionTypes.GET_MARKETPLACE_ASSET_DETAILS_STARTED,\n getEngagementAssetDetailsWorker,\n );\n}\n","import {\n IJourneyCapabilitiesResponse,\n} from '../../../models/cbo/EngagementModels';\nimport {\n IDocumentDeletePayload,\n IJourneyBuilderPayload,\n IJourneyList,\n IJourneyMarketplacePayload,\n IMarketplaceAssets,\n IPrdefinedJouneyList,\n ISubmitStatuspayload,\n IJourneyCapabilityListPayload,\n IRecommendedAssetsResponse,\n IJourneyMapping\n} from '../../../models/cbo/JourneyBuilderModel';\nimport { API_ROUTE_CBO } from '../../ApiRoute';\nimport ApiService from '../../ApiService';\nimport ApiServiceBase from '../../ApiServiceBase';\nimport { ServerType, ServiceType } from '../../ServiceType.data';\n\nexport class JourneyBuilderService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n // private readonly localService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.localStack);\n\n public getJourneyList(): Promise | IJourneyList[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_JOURNEY_BUILDER_LIST}`];\n return this.cboService.get({ route: route });\n }\n\n public getPredefinedJourneyList(): Promise | IPrdefinedJouneyList[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_PREDEFINED_JOURNEY_LIST}`];\n return this.cboService.get({ route: route });\n }\n\n public getCapabilitiesForPredefinedJourney(\n data: IJourneyCapabilityListPayload,\n ): Promise | IJourneyCapabilitiesResponse {\n const route: string[] = [`${API_ROUTE_CBO.JOURNEY_BUILDER}/${data.journeyId}`];\n return this.cboService.get({ route: route, query: { action: data.action } });\n }\n\n public getJourneyMandatoryAssets(\n data: IJourneyMarketplacePayload,\n ): Promise | IMarketplaceAssets[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_JOURNEY_MANDATORY_ASSETS}`];\n return this.cboService.post({ route: route }, { capabilities: data.capabilities });\n }\n\n public getJourneyRecommendedAssets(\n data: IJourneyMarketplacePayload,\n ): Promise | IRecommendedAssetsResponse {\n const route: string[] = [\n `${API_ROUTE_CBO.GET_JOURNEY_RECOMMENDED_ASSETS.replace(`:journeyId`, data.journeyId)}`,\n ];\n return this.cboService.post(\n { route: route, query: { assetCategory: 'recommended', action: data.action } },\n { capabilities: data.capabilities },\n );\n }\n\n public postJourneyBuilderSave(\n body: IJourneyBuilderPayload,\n ): Promise | IJourneyBuilderPayload {\n const route: string[] = [`${API_ROUTE_CBO.POST_JOURNEY_BUILDER_SAVE}`];\n return this.cboService.post({ route: route }, body);\n }\n\n public deleteDocument(data: string): Promise | any {\n return this.cboService.delete({ route: [`${API_ROUTE_CBO.DELETE_DOCUMENT}/${data}`] });\n }\n\n public postSubmitStatus(\n body: ISubmitStatuspayload,\n ): Promise | IJourneyBuilderPayload {\n const route: string[] = [`${API_ROUTE_CBO.POST_SUBMIT_STATUS}`];\n return this.cboService.post({ route: route }, body);\n }\n\n public patchJourneyBuilderUpdate(\n body: IJourneyBuilderPayload,\n ): Promise | IJourneyBuilderPayload {\n const route: string[] = [`${API_ROUTE_CBO.JOURNEY_BUILDER}`];\n return this.cboService.patch({ route: route }, body);\n }\n\n public getBusinessObjectives(): Promise | string[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_BUSINESS_OBJECTIVES}`];\n return this.cboService.get({ route: route });\n }\n public getJourneyMapping(data:string): Promise | IJourneyMapping {\n const route: string[] = [`${API_ROUTE_CBO.GET_JOURNEY_MAPPING.replace(':journeyId', data!)}`];\n return this.cboService.get({ route: route });\n }\n public deleteJourney(data:string): Promise | any {\n const route: string[] = [`${API_ROUTE_CBO.DELETE_JOURNEY.replace(':journeyId', data!)}`];\n return this.cboService.delete({ route: route });\n }\n}\n\nconst journeyBuilderService = new JourneyBuilderService();\nexport default journeyBuilderService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport { NotificationTypes } from '../../../../components/Notifications/NotificationsConstants';\nimport { IJourneyCapabilitiesResponse } from '../../../models/cbo/EngagementModels';\nimport {\n IJourneyBuilderPayload,\n IJourneyList,\n IJourneyMarketplacePayload,\n IMarketplaceAssets,\n IPrdefinedJouneyList,\n IPredefinedJourneyListMapping,\n ISubmitStatuspayload,\n IJourneyCapabilityListPayload,\n IRecommendedAssetsResponse,\n IJourneySaveResponse,\n IJourneyMapping,\n} from '../../../models/cbo/JourneyBuilderModel';\nimport journeyBuilderService from '../../../services/cbo/JourneyBuilderService/JourneyBuilderService';\nimport JourneyBuilderService from '../../../services/cbo/JourneyBuilderService/JourneyBuilderService';\nimport {\n JourneyBuilderAction,\n JourneyBuilderActions,\n JourneyBuilderActionTypes,\n} from '../../actions/cbo/JourneyBuilderActions';\nimport { ToastActions } from '../../actions/ToastActions';\n\nexport function* getJourneyBuilderListWorker(action: JourneyBuilderAction) {\n try {\n const response: IJourneyList[] = yield JourneyBuilderService.getJourneyList();\n yield put(JourneyBuilderActions.getJourneyListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getJourneyListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getPredefinedJourneyListWorker(action: JourneyBuilderAction) {\n try {\n const response: IPrdefinedJouneyList[] = yield JourneyBuilderService.getPredefinedJourneyList();\n const mappedData: IPredefinedJourneyListMapping[] = response.map((data) => ({\n label: data.journeyName,\n value: data.journeyId,\n offering: data.offering,\n }));\n yield put(JourneyBuilderActions.getPredefinedJourneyListSuccess(mappedData));\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getPredefinedJourneyListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getJourneyCapabilityDataWorker(action: JourneyBuilderAction) {\n try {\n const data = action.data as IJourneyCapabilityListPayload;\n const response: IJourneyCapabilitiesResponse =\n (yield JourneyBuilderService.getCapabilitiesForPredefinedJourney(data))!;\n yield put(JourneyBuilderActions.getCapabilitiesForPredefinedJourneySuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getCapabilitiesForPredefinedJourneyError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getJourneyMandatoryAssetstWorker(action: JourneyBuilderAction) {\n try {\n const data = action.data as IJourneyMarketplacePayload;\n const response: IMarketplaceAssets[] =\n yield JourneyBuilderService.getJourneyMandatoryAssets(data);\n yield put(JourneyBuilderActions.getJourneyMandatoryAssetsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getJourneyListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\nexport function* getJourneyRecommendedAssetstWorker(action: JourneyBuilderAction) {\n try {\n const data = action.data as IJourneyMarketplacePayload;\n const response: IRecommendedAssetsResponse =\n yield JourneyBuilderService.getJourneyRecommendedAssets(data);\n yield put(JourneyBuilderActions.getJourneyRecommendedAssetsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getJourneyListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* postJourneyBuilderSaveWorker(action: JourneyBuilderAction) {\n try {\n const body = action.data as IJourneyBuilderPayload;\n const response: IJourneySaveResponse =\n yield JourneyBuilderService.postJourneyBuilderSave(body)!;\n yield put(JourneyBuilderActions.postJourneyBuilderSaveSuccess(response));\n yield put(\n ToastActions.showToast({\n description: 'Journey Saved!',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const response: IJourneyList[] = yield JourneyBuilderService.getJourneyList();\n yield put(JourneyBuilderActions.getJourneyListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getJourneyListError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.postJourneyBuilderSaveError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* patchJourneyBuilderUpdateWorker(action: JourneyBuilderAction) {\n try {\n const body = action.data as IJourneyBuilderPayload;\n const response: IJourneySaveResponse =\n yield JourneyBuilderService.patchJourneyBuilderUpdate(body)!;\n yield put(JourneyBuilderActions.patchJourneyBuilderUpdateSuccess(response));\n yield put(\n ToastActions.showToast({\n description: 'Journey Updated!',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const response: IJourneyList[] = yield JourneyBuilderService.getJourneyList();\n yield put(JourneyBuilderActions.getJourneyListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getJourneyListError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.patchJourneyBuilderUpdateError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* postSubmitStatusWorker(action: JourneyBuilderAction) {\n try {\n const body = action.data as ISubmitStatuspayload;\n yield JourneyBuilderService.postSubmitStatus(body)!;\n yield put(JourneyBuilderActions.PostSubmitStatusSuccess());\n yield put(\n ToastActions.showToast({\n description: `Journey - ${body.journeyName} has been successfully ${body.status}`,\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const response: IJourneyList[] = yield JourneyBuilderService.getJourneyList();\n yield put(JourneyBuilderActions.getJourneyListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getJourneyListError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.PostSubmitStatusError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* deleteDocumentDataWorker(action: JourneyBuilderAction) {\n try {\n const data = action.data as string;\n yield journeyBuilderService.deleteDocument(data);\n yield put(\n ToastActions.showToast({\n description: 'Document deleted successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getJourneyMandatoryAssetsError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getBusinessObjectivesWorker(action: JourneyBuilderAction) {\n try {\n const response: string[] = yield JourneyBuilderService.getBusinessObjectives();\n yield put(JourneyBuilderActions.getBusinessObjectivesSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getBusinessObjectivesError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getJourneyMappingWorker(action: JourneyBuilderAction) {\n try {\n const data = action.data as string;\n const response: IJourneyMapping = yield JourneyBuilderService.getJourneyMapping(data);\n\n yield put(JourneyBuilderActions.getJourneyMappingSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.deleteJourneyError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getJourneydeleteWorker(action: JourneyBuilderAction) {\n try {\n const data = action.data as string;\n const response: IJourneySaveResponse = yield JourneyBuilderService.deleteJourney(data);\n yield put(JourneyBuilderActions.deleteJourneySuccess(response));\n yield put(\n ToastActions.showToast({\n description: 'Journey deleted successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const response: IJourneyList[] = yield JourneyBuilderService.getJourneyList();\n yield put(JourneyBuilderActions.getJourneyListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getJourneyListError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(JourneyBuilderActions.getJourneyMappingtError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\nexport function* journeyBuilderWatcher() {\n yield takeEvery(\n JourneyBuilderActionTypes.GET_JOURNEY_LIST_DATA_STARTED,\n getJourneyBuilderListWorker,\n );\n yield takeEvery(\n JourneyBuilderActionTypes.GET_PREDEFINED_JOURNEY_LIST_STARTED,\n getPredefinedJourneyListWorker,\n );\n yield takeEvery(\n JourneyBuilderActionTypes.GET_CAPABILITES_FOR_PREDEFINED_JOURNEY_STARTED,\n getJourneyCapabilityDataWorker,\n );\n yield takeEvery(\n JourneyBuilderActionTypes.GET_JOURNEY_MANDATORY_ASSETS_STARTED,\n getJourneyMandatoryAssetstWorker,\n );\n yield takeEvery(\n JourneyBuilderActionTypes.GET_JOURNEY_RECOMMENDED_ASSETS_STARTED,\n getJourneyRecommendedAssetstWorker,\n );\n yield takeEvery(\n JourneyBuilderActionTypes.POST_JOURNEY_BUILDER_SAVE_STARTED,\n postJourneyBuilderSaveWorker,\n );\n yield takeEvery(\n JourneyBuilderActionTypes.PATCH_JOURNEY_BUILDER_UPDATE_STARTED,\n patchJourneyBuilderUpdateWorker,\n );\n yield takeEvery(JourneyBuilderActionTypes.DELETE_DOCUMENT_DATA_STARTED, deleteDocumentDataWorker);\n yield takeEvery(JourneyBuilderActionTypes.POST_SUBMIT_STATUS_STARTED, postSubmitStatusWorker);\n yield takeEvery(\n JourneyBuilderActionTypes.GET_BUSINESS_OBJECTIVES__STARTED,\n getBusinessObjectivesWorker,\n );\n yield takeEvery(JourneyBuilderActionTypes.GET_JOURNEY_MAPPING_STARTED, getJourneyMappingWorker);\n yield takeEvery(JourneyBuilderActionTypes.DELETE_JOURNEY_MAPPING_STARTED, getJourneydeleteWorker);\n}\n","import {\n ICapability,\n IEditCapabilityPayload,\n IFeaturesList,\n IKeyAssetsList,\n} from '../../../models/cbo/CapabilityManagementModel';\nimport { API_ROUTE_CBO } from '../../ApiRoute';\nimport ApiService from '../../ApiService';\nimport ApiServiceBase from '../../ApiServiceBase';\nimport { ServerType, ServiceType } from '../../ServiceType.data';\n\nexport class CapabilityManagementService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n private readonly localService: ApiServiceBase = new ApiService(\n ServiceType.None,\n ServerType.localStack,\n );\n\n public getCapabilityList(): Promise | ICapability[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_CAPABILITY}`];\n return this.cboService.get({ route: route });\n }\n\n public patchCapabilityData(body: IEditCapabilityPayload): Promise | ICapability {\n const route: string[] = [`${API_ROUTE_CBO.SAVE_CAPABILITY}`];\n return this.cboService.patch({ route: route }, body);\n }\n public addCapabilityData(body: IEditCapabilityPayload): Promise | ICapability {\n const route: string[] = [`${API_ROUTE_CBO.SAVE_CAPABILITY}`];\n return this.cboService.post({ route: route }, body);\n }\n\n public getKeyAssetsList(): Promise | IKeyAssetsList[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_KEY_ASSETS}`];\n return this.cboService.get({ route: route });\n }\n\n public updateKeyAssetsData(body: IKeyAssetsList): Promise | IKeyAssetsList {\n const route: string[] = [`${API_ROUTE_CBO.GET_KEY_ASSETS}`];\n return this.cboService.patch({ route: route }, body);\n }\n\n public getFeaturesList(): Promise | IFeaturesList[] {\n const route: string[] = [`${API_ROUTE_CBO.GET_FEATURES}`];\n return this.cboService.get({ route: route });\n }\n}\n\nconst capabilityManagementService = new CapabilityManagementService();\nexport default capabilityManagementService;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport { NotificationTypes } from '../../../../components/Notifications/NotificationsConstants';\nimport {\n ICapability,\n IEditCapabilityPayload,\n IFeaturesList,\n IKeyAssetsList,\n} from '../../../models/cbo/CapabilityManagementModel';\nimport CapabilityManagementService from '../../../services/cbo/CapabilityManagementService/CapabilityManagementService';\nimport engagementService from '../../../services/cbo/EnagementService/EngagementService';\nimport {\n CapabilityManagementAction,\n CapabilityManagementActions,\n CapabilityActionTypes,\n} from '../../actions/cbo/CapabilityManagementActions';\nimport { ToastActions } from '../../actions/ToastActions';\n\nexport function* getCapabilityDataWorker() {\n try {\n const response: ICapability[] = yield CapabilityManagementService.getCapabilityList();\n yield put(CapabilityManagementActions.getCapabilityDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(CapabilityManagementActions.getCapabilityDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* updateCapabilityDataWorker(action: CapabilityManagementAction) {\n try {\n const { data } = action;\n yield CapabilityManagementService.patchCapabilityData(data as IEditCapabilityPayload);\n yield put(\n ToastActions.showToast({\n description: 'Capability updated successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const capabilityList: ICapability[] = yield CapabilityManagementService.getCapabilityList();\n yield put(CapabilityManagementActions.getCapabilityDataSuccess(capabilityList));\n } catch (error) {\n if (error instanceof Error) {\n yield put(CapabilityManagementActions.getCapabilityDataError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(CapabilityManagementActions.updateCapabilityDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* addCapabilityDataWorker(action: CapabilityManagementAction) {\n try {\n const { data } = action;\n yield CapabilityManagementService.addCapabilityData(data as IEditCapabilityPayload);\n yield put(\n ToastActions.showToast({\n description: 'Capability added successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const capabilityList: ICapability[] = yield CapabilityManagementService.getCapabilityList();\n yield put(CapabilityManagementActions.getCapabilityDataSuccess(capabilityList));\n } catch (error) {\n if (error instanceof Error) {\n yield put(CapabilityManagementActions.getCapabilityDataError(error));\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(CapabilityManagementActions.addCapabilityDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getKeyAssetsDataWorker() {\n try {\n const response: IKeyAssetsList[] = yield CapabilityManagementService.getKeyAssetsList();\n yield put(CapabilityManagementActions.getKeyAssetsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(CapabilityManagementActions.getKeyAssetsDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* updateKeyAssetsDataWorker(action: CapabilityManagementAction) {\n try {\n const { data } = action;\n yield CapabilityManagementService.updateKeyAssetsData(data as IKeyAssetsList);\n yield put(\n ToastActions.showToast({\n description: 'Asset updated successfully',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n const response: IKeyAssetsList[] = yield CapabilityManagementService.getKeyAssetsList();\n yield put(CapabilityManagementActions.getKeyAssetsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(CapabilityManagementActions.getKeyAssetsDataError(error));\n }\n }\n yield put(CapabilityManagementActions.updateCapabilityDataSuccess());\n } catch (error) {\n if (error instanceof Error) {\n yield put(CapabilityManagementActions.updateCapabilityDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getFeaturesDataWorker() {\n try {\n const response: IFeaturesList[] = yield CapabilityManagementService.getFeaturesList();\n yield put(CapabilityManagementActions.getFeaturesDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(CapabilityManagementActions.getFeaturesDataError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* capabilityManagementWatcher() {\n yield takeEvery(CapabilityActionTypes.GET_CAPABILITY_DATA_STARTED, getCapabilityDataWorker);\n yield takeEvery(CapabilityActionTypes.UPDATE_CAPABILITY_DATA_STARTED, updateCapabilityDataWorker);\n yield takeEvery(CapabilityActionTypes.GET_KEY_ASSETS_DATA_STARTED, getKeyAssetsDataWorker);\n yield takeEvery(CapabilityActionTypes.UPDATE_KEY_ASSETS_DATA_STARTED, updateKeyAssetsDataWorker);\n yield takeEvery(CapabilityActionTypes.GET_FEATURES_DATA_STARTED, getFeaturesDataWorker);\n yield takeEvery(CapabilityActionTypes.ADD_CAPABILITY_DATA_STARTED, addCapabilityDataWorker);\n}\n","/* eslint-disable max-lines */\nimport { API_ROUTE_CBO } from '../../ApiRoute';\nimport ApiService from '../../ApiService';\nimport ApiServiceBase from '../../ApiServiceBase';\nimport { ServerType, ServiceType } from '../../ServiceType.data';\nimport {\n IJiraInitiativesResponse,\n ILiftAndShiftObject,\n IJiraInitiativesPayload,\n IJiraEpicsResponse,\n IJiraEpicsPayload,\n IJiraTasksPayload,\n IJiraTasksResponse,\n ISummaryMetricsPayload,\n IJiraTaskListResponse,\n IJiraIssueResponse,\n IOperateEndgeIncidentPayload,\n ICarbonFootPrintResponse,\n IGreenCloudPayload,\n ILegacyDbData,\n ISummaryMetricsResp,\n IDEPAlertScanResponse,\n IDEPAlertScanPayload,\n IIncidentDetailsPayload,\n IIncidentDetails,\n ICodespacesResponse,\n IProblemInsightsAssignmentGroupData,\n IProblemInsightsRunDetailsData,\n IProblemInsightsPayload,\n IProblemGroupOverviewResponse,\n IKMSResponse,\n IActiveSummaryResponse,\n IIssueSummaryResponse,\n IRiskSummaryResponse,\n ITransitionTableResponseData,\n IJiraStoriesPayload,\n IJiraStoryListResponse,\n IAppsProgressionResponse,\n IServersProgressionResponse,\n IMigrationPayload,\n IAppsProgressionMonthlyResponse,\n IServersProgressionMonthlyResponse,\n IMigrationArcheTypeListResponse,\n ITCOInsightsResponse,\n ICostTrendResponse,\n ICostAllocationSummaryResponse,\n IBlockersAndCausesResponse,\n IAllocationTrendResponse,\n ICloudCostSummaryCostTrendResponse,\n IServersByUpgradeResponse,\n IDispositionsByWaveData,\n IOtherSQLPayload,\n ISQLDMLPayload,\n IWorkflowPayload,\n ISeverityVsCreatedOnResponse,\n IDefectAgeingResponse,\n INumberOfTestCasesResponse,\n ITableCountResponse,\n ITestRunStatusResponse,\n ITaxonomyEditorData,\n} from '../../../models/cbo/EngagementSummaryGraphModel';\nimport {\n IArtifactsGraphPayload,\n IArtifactsLOCResponse,\n IArtifactsResponse,\n IDecompositionResponse,\n ISQLGraphDataResponse,\n IAllSQLGraphPayload,\n IExecutionMetricDetailsResponse,\n IWorkflowListPayload,\n IWorkflowReportResponse,\n IWorkflowResponse,\n ICodeQualityPayload,\n ICodeQuality,\n} from '../../../models/cbo/EngagementSummaryGraphModel';\nimport {\n IApplicationDipositioning,\n IWavePlan,\n} from '../../../../containers/CBOEngagementSummary/CboTrunorthGraphs/CboTrunorthConstants';\nimport {\n IDiscoveryMetrics,\n ISurveyMetrics,\n} from '../../../../containers/CBOEngagementSummary/CboTrunorthGraphs/CboTrunorthConstants';\nimport { STORAGE_CONSTANTS, storage } from '../../LocalStorage';\nimport { CBOKeyAssets } from '../../../../containers/CBOSidebar/CBOSidebarConstants';\nimport { IProduct } from '../../../models/cbo/EngagementModels';\nimport {\n ILearningCenterPayload,\n ISummaryPractitionerDataResp,\n IDashboardCourseStatusResponse,\n} from '../../../../containers/CBOEngagementSummary/operate/LearningCenter/LearningCenterConstants';\n\nexport class EngagementGraphService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n private readonly localStackService: ApiServiceBase = new ApiService(\n ServiceType.None,\n ServerType.localStack,\n );\n\n private readonly cboProxyServer: ApiServiceBase = new ApiService(\n ServiceType.None,\n ServerType.cboProxyServer,\n );\n\n public getLiftAndShiftChart(): Promise | ILiftAndShiftObject {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_LIFT_AND_SHIFT}`],\n });\n }\n public getJiraInitiatives(\n data: IJiraInitiativesPayload,\n ): Promise | IJiraInitiativesResponse {\n return this.cboService.post(\n {\n route: [`${API_ROUTE_CBO.GET_JIRA_INITIATIVES}`],\n },\n data,\n );\n }\n\n public getJiraEpics(data: IJiraEpicsPayload): Promise | IJiraEpicsResponse {\n return this.cboService.post(\n {\n route: [`${API_ROUTE_CBO.GET_JIRA_EPICS}`],\n },\n data,\n );\n }\n\n public getJiraTasks(data: IJiraTasksPayload): Promise | IJiraTasksResponse {\n return this.cboService.post(\n {\n route: [`${API_ROUTE_CBO.GET_JIRA_TASKS}`],\n },\n data,\n );\n }\n\n //Currently used Services for Jira//\n\n public getJiraCurrentSprintStoryList(\n data: IJiraStoriesPayload | IJiraTasksPayload,\n ): Promise | IJiraIssueResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_JIRA_SPRINT.replace(`:phase`, data?.phase ?? '').replace(\n `:projectId`,\n data?.engagementId!,\n )}`,\n ],\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_JIRA_SPRINT.replace(`:phase`, data?.phase ?? '').replace(\n `:pursuitId`,\n data?.engagementId!,\n )}`,\n ],\n });\n }\n }\n public getJiraTableInitiatives(\n data: IJiraInitiativesPayload,\n ): Promise | IJiraIssueResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_JIRA_INITIATIVE.replace(`:phase`, data?.phase ?? '').replace(\n `:projectId`,\n data?.engagementId!,\n )}`,\n ],\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_JIRA_INITIATIVE.replace(`:phase`, data?.phase ?? '').replace(\n `:pursuitId`,\n data?.engagementId!,\n )}`,\n ],\n });\n }\n }\n\n public getJiraTableEpics(\n data: IJiraEpicsPayload,\n ): Promise | IJiraIssueResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_JIRA_EPIC.replace(`:phase`, data?.phase ?? '').replace(\n `:projectId`,\n data?.engagementId!,\n )}`,\n ],\n query: { type: 'epic', id: data.initiativeId },\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_JIRA_EPIC.replace(`:phase`, data?.phase ?? '').replace(\n `:pursuitId`,\n data?.engagementId!,\n )}`,\n ],\n query: { type: 'epic', id: data.initiativeId },\n });\n }\n }\n\n public getJiraTableStoryList(\n data: IJiraStoriesPayload,\n ): Promise | IJiraStoryListResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_JIRA_STORY.replace(`:phase`, data?.phase ?? '').replace(\n `:projectId`,\n data?.engagementId!,\n )}`,\n ],\n query: { type: 'story', id: data.epicId },\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_JIRA_STORY.replace(`:phase`, data?.phase ?? '').replace(\n `:pursuitId`,\n data?.engagementId!,\n )}`,\n ],\n query: { type: 'story', id: data.epicId },\n });\n }\n }\n\n public getJiraTableTaskList(\n data: IJiraTasksPayload,\n ): Promise | IJiraTaskListResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_JIRA_TASK.replace(`:phase`, data?.phase ?? '').replace(\n `:projectId`,\n data?.engagementId!,\n )}`,\n ],\n query:\n data?.phase === 'migrate'\n ? { type: 'task', id: data.storyId }\n : { type: 'task', id: data?.epicId },\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_JIRA_TASK.replace(`:phase`, data?.phase ?? '').replace(\n `:pursuitId`,\n data?.engagementId!,\n )}`,\n ],\n query:\n data?.phase === 'migrate'\n ? { type: 'task', id: data.storyId }\n : { type: 'task', id: data?.epicId },\n });\n }\n }\n\n //End of Currently used Services for Jira//\n\n //Start: Innowake Graph API\n public getSQLGraph(\n data: IAllSQLGraphPayload | ISQLDMLPayload | IOtherSQLPayload,\n ): Promise | ISQLGraphDataResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n const payload = { ...data };\n delete payload.selectedEngagement;\n if (isEngagement) {\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.GET_ENG_SQL_DATA.replace(`:projectId`, data?.selectedEngagement!)}`,\n ],\n },\n payload,\n );\n }\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_SQL_DATA.replace(`:projectId`, data?.selectedEngagement!)}`,\n ],\n },\n payload,\n );\n }\n\n public getDecompositionGraph(\n data: string,\n ): Promise | IDecompositionResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_DECOMPOSITION_GRAPH_DATA.replace(`:projectId`, data!)}`],\n });\n }\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_PURSUIT_DECOMPOSITION_GRAPH_DATA.replace(`:projectId`, data!)}`],\n });\n }\n\n public getMissingArtifactsGraphData(\n data: IArtifactsGraphPayload,\n ): Promise | IArtifactsResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n\n const payload = { ...data };\n delete payload.selectedEngagement;\n if (isEngagement) {\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.GET_ENG_ARTIFACTS_GRAPH_DATA.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_ARTIFACTS_GRAPH_DATA.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n\n public getAnalyzedArtifactsGraphData(\n data: IArtifactsGraphPayload,\n ): Promise | IArtifactsResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n const payload = { ...data };\n delete payload.selectedEngagement;\n if (isEngagement) {\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.GET_ENG_ARTIFACTS_GRAPH_DATA.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_ARTIFACTS_GRAPH_DATA.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n\n public getLOCGraphData(\n data: IArtifactsGraphPayload,\n ): Promise | IArtifactsLOCResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n const payload = { ...data };\n delete payload.selectedEngagement;\n if (isEngagement) {\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.GET_ENG_ARTIFACTS_GRAPH_DATA.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_ARTIFACTS_GRAPH_DATA.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n\n public getCodeQualityLow(data: ICodeQualityPayload): Promise | ICodeQuality {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n\n const payload = { ...data };\n delete payload.selectedEngagement;\n if (isEngagement) {\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.POST_ENG_CODE_QUALITY.replace(`:projectId`, data?.selectedEngagement!)}`,\n ],\n },\n payload,\n );\n }\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.POST_PURSUIT_CODE_QUALITY.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n\n public getCodeQualityMedium(data: ICodeQualityPayload): Promise | ICodeQuality {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n const keyAssetList = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.keyAssetList) ?? '[]',\n ) as IProduct[];\n const innowakeAsset = keyAssetList?.find(\n (keyAsset) => keyAsset.product == CBOKeyAssets.truNorthCodeDiscovery,\n );\n const payload = { ...data };\n delete payload.selectedEngagement;\n\n if (isEngagement) {\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.POST_ENG_CODE_QUALITY.replace(`:projectId`, data?.selectedEngagement!)}`,\n ],\n },\n payload,\n );\n }\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.POST_PURSUIT_CODE_QUALITY.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n public getCodeQualityHigh(data: ICodeQualityPayload): Promise | ICodeQuality {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n const keyAssetList = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.keyAssetList) ?? '[]',\n ) as IProduct[];\n const innowakeAsset = keyAssetList?.find(\n (keyAsset) => keyAsset.product == CBOKeyAssets.truNorthCodeDiscovery,\n );\n\n const payload = { ...data };\n delete payload.selectedEngagement;\n\n if (isEngagement) {\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.POST_ENG_CODE_QUALITY.replace(`:projectId`, data?.selectedEngagement!)}`,\n ],\n },\n payload,\n );\n }\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.POST_PURSUIT_CODE_QUALITY.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n public getCodeQualityVeryHigh(data: ICodeQualityPayload): Promise | ICodeQuality {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n const payload = { ...data };\n delete payload.selectedEngagement;\n\n if (isEngagement) {\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.POST_ENG_CODE_QUALITY.replace(`:projectId`, data?.selectedEngagement!)}`,\n ],\n },\n payload,\n );\n }\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.POST_PURSUIT_CODE_QUALITY.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n\n //Summary metrics\n public getMetricsModule(\n data: ISummaryMetricsPayload,\n ): Promise | ISummaryMetricsResp {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n const payload = { ...data };\n delete payload.selectedEngagement;\n if (isEngagement) {\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.POST_ENG_CODE_QUALITY.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n return this.cboService.post(\n {\n route: [\n `${API_ROUTE_CBO.POST_PURSUIT_CODE_QUALITY.replace(\n `:projectId`,\n data?.selectedEngagement!,\n )}`,\n ],\n },\n payload,\n );\n }\n //End: Innowake Graph API\n\n //Start: TruNorth Graph API\n public getApplicationDispositioning(\n selectedEngagementId: string,\n ): Promise | IApplicationDipositioning {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_APPLICATION_DISPOSITIONING.replace(\n `:projectId`,\n selectedEngagementId!,\n )}`,\n ],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_APPLICATION_DISPOSITIONING.replace(\n `:projectId`,\n selectedEngagementId!,\n )}`,\n ],\n });\n }\n\n public getWavePlan(selectedEngagementId: string): Promise | IWavePlan {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_WAVE_PLAN.replace(`:projectId`, selectedEngagementId!)}`],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_WAVE_PLAN.replace(`:projectId`, selectedEngagementId!)}`,\n ],\n });\n }\n\n public getInventorySurveyMetrics(\n selectedEnagagementId: string,\n ): Promise | ISurveyMetrics {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_SURVEY_METRICS_INVENTORY.replace(\n `:projectId`,\n selectedEnagagementId!,\n )}`,\n ],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_SURVEY_METRICS_INVENTORY.replace(\n `:projectId`,\n selectedEnagagementId!,\n )}`,\n ],\n });\n }\n public getBusinessSurveyMetrics(\n selectedEnagagementId: string,\n ): Promise | ISurveyMetrics {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_SURVEY_METRICS_BUSINESS.replace(\n `:projectId`,\n selectedEnagagementId!,\n )}`,\n ],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_SURVEY_METRICS_BUSINESS.replace(\n `:projectId`,\n selectedEnagagementId!,\n )}`,\n ],\n });\n }\n public getDiscoveryMetrics(\n selectedEnagagementId: string,\n ): Promise | IDiscoveryMetrics {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_DISCOVERY_METRICS.replace(\n `:projectId`,\n selectedEnagagementId!,\n )}`,\n ],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_DISCOVERY_METRICS.replace(\n `:projectId`,\n selectedEnagagementId!,\n )}`,\n ],\n });\n }\n //End: TruNorth Graph API\n\n public postIncidentDetails(\n data: IIncidentDetailsPayload,\n ): Promise | IIncidentDetails {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_OPERATE_EDGE_INCIDENT_DATA.replace(\n ':projectId',\n data?.engagementId!,\n )}`,\n ],\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_OPERATE_EDGE_INCIDENT_DATA.replace(\n ':pursuitId',\n data?.engagementId!,\n )}`,\n ],\n });\n }\n }\n\n public postIncidentSummaryAndTrend(\n data: IOperateEndgeIncidentPayload,\n ): Promise | IIncidentDetails {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_OPERATE_EDGE_ALL_GRAPHS.replace(\n ':projectId',\n data?.engagementId!,\n )}`,\n ],\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_OPERATE_EDGE_ALL_GRAPHS.replace(\n ':pursuitId',\n data?.engagementId!,\n )}`,\n ],\n });\n }\n }\n\n public setKeyAssetConfiguration(data: IProduct) {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n return this.cboService.patch(\n {\n route: [\n `${\n isEngagement\n ? API_ROUTE_CBO.UPDATE_KEY_ASSET_CONFIG\n : API_ROUTE_CBO.UPDATE_PURSUIT_KEY_ASSET_CONFIG\n }`,\n ],\n },\n data,\n );\n }\n\n public getGreenCloudData(\n payload: IGreenCloudPayload,\n ): Promise | ICarbonFootPrintResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_GREEN_CLOUD_DATA.replace(':projectId', payload?.engagementId!)}`,\n ],\n query: { report: payload?.reportType },\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_GREEN_CLOUD_DATA.replace(\n ':pursuitId',\n payload?.engagementId!,\n )}`,\n ],\n query: { reporttype: payload?.reportType },\n });\n }\n }\n\n public getLearningCenterSummaryPractitionerService(\n payload: ILearningCenterPayload,\n ): Promise | ISummaryPractitionerDataResp {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_LEARNING_CENTER_SUMMARY_ENG.replace(\n ':engagementId',\n payload?.engagementId!,\n )}`,\n ],\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_LEARNING_CENTER_SUMMARY_PURSUIT.replace(\n ':pursuitId',\n payload?.engagementId!,\n )}`,\n ],\n });\n }\n }\n public getCoursesStatusPractitionerService(\n payload: ILearningCenterPayload,\n ): Promise | IDashboardCourseStatusResponse[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_LEARNING_CENTER_COURSE_STATUS_ENG.replace(\n ':engagementId',\n payload?.engagementId!,\n )}`,\n ],\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_LEARNING_CENTER_COURSE_STATUS_PURSUIT.replace(\n ':pursuitId',\n payload?.engagementId!,\n )}`,\n ],\n });\n }\n }\n\n public getLegacyView(selectedEnagagementId: string): Promise | ILegacyDbData[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_LEGACY_VIEW.replace(':projectId', selectedEnagagementId!)}`,\n ],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_LEGACY_VIEW.replace(':projectId', selectedEnagagementId!)}`,\n ],\n });\n }\n\n public getLegacyGraph(selectedEnagagementId: string): Promise | ILegacyDbData[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_LEGACY_GRAPH.replace(':projectId', selectedEnagagementId!)}`,\n ],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_LEGACY_GRAPH.replace(':projectId', selectedEnagagementId!)}`,\n ],\n });\n }\n\n public getWorkflowListService(\n payload: IWorkflowListPayload,\n ): Promise | IWorkflowResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_WORKFLOWS_LIST.replace(':projectId', payload?.selectedEngagementId)}`,\n ],\n query: {\n page: payload.page,\n size: payload.size,\n search: payload.search,\n dtql: payload.dtql,\n },\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_WORKFLOWS_LIST.replace(':projectId', payload?.selectedEngagementId)}`,\n ],\n query: { page: payload.page, size: payload.size, search: payload.search, dtql: payload.dtql },\n });\n }\n\n public getWorkflowMetricsService(\n payload: IWorkflowPayload,\n ): Promise | IExecutionMetricDetailsResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_WORKFLOW_METRICS.replace(':projectId', payload?.selectedEngagementId).replace(':workflowId', payload?.workflowId!)}`,\n ],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_WORKFLOW_METRICS.replace(':projectId', payload?.selectedEngagementId!).replace(':workflowId', payload?.workflowId!)}`,\n ],\n });\n }\n\n public getWorkflowReportsService(\n payload: IWorkflowPayload,\n ): Promise | IWorkflowReportResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_WORKFLOW_REPORTS.replace(':projectId', payload?.selectedEngagementId).replace(':workflowId', payload?.workflowId)}`,\n ],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_WORKFLOW_REPORTS.replace(':projectId', payload?.selectedEngagementId).replace(':workflowId', payload?.workflowId)}`,\n ],\n });\n }\n\n public getDEPScanAlertService(\n payload: IDEPAlertScanPayload,\n ): Promise | IDEPAlertScanResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_DEP_.replace(':projectId', payload?.engagementId!)}`],\n query: { repo: payload?.repoName },\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_PURSUIT_DEP_.replace(':pursuitId', payload?.engagementId!)}`],\n query: { repo: payload?.repoName },\n });\n }\n }\n\n public getDEPCodeSpacesService(\n payload: string,\n ): Promise | ICodespacesResponse[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n const userName = storage.getItem(STORAGE_CONSTANTS.userName) ?? '';\n const updatedUserName = userName?.replace('@', '_').replace('.com', '');\n\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_DEP_CODESPACES.replace(':projectId', payload!)}`],\n query: { userId: updatedUserName },\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_PURSUIT_DEP_CODESPACES.replace(':pursuitId', payload!)}`],\n query: { userId: updatedUserName },\n });\n }\n }\n\n public getProblemInsightsRunListService(\n payload: string,\n ): Promise | IProblemInsightsAssignmentGroupData[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_PROBLEM_INSIGHTS_RUN_LIST.replace(':projectId', payload!)}`,\n ],\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_PROBLEM_INSIGHTS_RUN_LIST.replace(\n ':engagementId',\n payload!,\n )}`,\n ],\n });\n }\n }\n\n public getProblemInsightsRunDetailsService(\n payload: IProblemInsightsPayload,\n ): Promise | IProblemInsightsRunDetailsData {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_PROBLEM_INSIGHTS_RUN_DETAILS.replace(\n ':projectId',\n payload?.engagementId!,\n )}`,\n ],\n query: { runid: payload?.runId, assignmentgroup: payload?.assignmentGroup },\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_PROBLEM_INSIGHTS_RUN_DETAILS.replace(\n ':engagementId',\n payload?.engagementId!,\n )}`,\n ],\n query: { runid: payload?.runId, assignmentgroup: payload?.assignmentGroup },\n });\n }\n }\n\n public getproblemgroupoverviewService(\n payload: IProblemInsightsPayload,\n ): Promise | IProblemGroupOverviewResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_PROBLEM_GROUP_OVERVIEW.replace(\n ':projectId',\n payload?.engagementId!,\n )}`,\n ],\n query: {\n runid: payload?.runId,\n from: payload?.from ?? '',\n to: payload?.to,\n assignmentgroup: payload?.assignmentGroup,\n },\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_PURSUIT_PROBLEM_GROUP_OVERVIEW.replace(\n ':engagementId',\n payload?.engagementId!,\n )}`,\n ],\n query: {\n runid: payload?.runId,\n from: payload?.from ?? '',\n to: payload?.to,\n assignmentgroup: payload?.assignmentGroup,\n },\n });\n }\n }\n\n public kmsApplicationsService(): Promise | IKMSResponse[] {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_KMS_APPLICATIONS}`],\n });\n }\n public getIssueSummaryService(\n payload: string,\n ): Promise | IIssueSummaryResponse[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_RISK_SUMMARY.replace(':engagementId', payload!)}`],\n query: { type: 'issue' },\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_RISK_SUMMARY.replace(':pursuitId', payload!)}`],\n query: { type: 'issue' },\n });\n }\n }\n\n public getRiskSummaryService(\n payload: string,\n ): Promise | IRiskSummaryResponse[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_RISK_SUMMARY.replace(':engagementId', payload!)}`],\n query: { type: 'risk' },\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_RISK_SUMMARY.replace(':pursuitId', payload!)}`],\n query: { type: 'risk' },\n });\n }\n }\n\n public getActiveSummaryService(\n payload: string,\n ): Promise | IActiveSummaryResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_ACTIVITY_SUMMARY.replace(':engagementId', payload!)}`],\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ACTIVITY_SUMMARY.replace(':pursuitId', payload!)}`],\n });\n }\n }\n\n public getTransitionService(\n payload: string,\n ): Promise | ITransitionTableResponseData[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_TRANSITIONS.replace(':engagementId', payload!)}`],\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_TRANSITIONS.replace(':pursuitId', payload!)}`],\n });\n }\n }\n\n //CBO-2901_AI_AUTO_NEW_CODE : Added new Services for AppProgressionData, ServerProgressionData and ArchetypeList\n\n public getAppsProgressionService(\n payload: IMigrationPayload,\n ): Promise | IAppsProgressionResponse[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_APP_PROGRESSION.replace(\n ':engagementId',\n payload.engagementId!,\n )}`,\n ],\n query: { architype: encodeURIComponent(payload?.archetype!) },\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_APP_PROGRESSION.replace(':pursuitId', payload.engagementId!)}`,\n ],\n query: { architype: encodeURIComponent(payload?.archetype!) },\n });\n }\n }\n public getServersProgressionService(\n payload: IMigrationPayload,\n ): Promise | IServersProgressionResponse[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_SERVER_PROGRESSION.replace(\n ':engagementId',\n payload.engagementId!,\n )}`,\n ],\n query: { architype: encodeURIComponent(payload?.archetype!) },\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_SERVER_PROGRESSION.replace(':pursuitId', payload.engagementId!)}`,\n ],\n query: { architype: encodeURIComponent(payload?.archetype!) },\n });\n }\n }\n\n public getArchetypeListService(payload: IMigrationPayload): Promise | string[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_ARCHETYPE_LIST.replace(\n ':engagementId',\n payload?.engagementId!,\n )}`,\n ],\n });\n } else {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ARCHETYPE_LIST.replace(':pursuitId', payload?.engagementId!)}`,\n ],\n });\n }\n }\n\n //CBO-2901_AI_AUTO_NEW_CODE: generated the services for Monthly Apps Progression Data\n public getAppsProgressionMonthlyService(\n payload: IMigrationPayload,\n ): Promise | IAppsProgressionMonthlyResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_APP_PROGRESSION_MONTHLY.replace(\n ':engagementId',\n payload?.engagementId!,\n )}`,\n ],\n query: { architype: encodeURIComponent(payload?.archetype!) },\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_APP_PROGRESSION_MONTHLY.replace(\n ':pursuitId',\n payload?.engagementId!,\n )}`,\n ],\n query: { architype: encodeURIComponent(payload?.archetype!) },\n });\n }\n //CBO-2901_AI_AUTO_NEW_CODE: generated the services for Monthly Servers Progression Data\n\n public getServersProgressionMonthlyService(\n payload: IMigrationPayload,\n ): Promise | IServersProgressionMonthlyResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_SERVER_PROGRESSION_MONTHLY.replace(\n ':engagementId',\n payload?.engagementId!,\n )}`,\n ],\n query: { architype: encodeURIComponent(payload?.archetype!) },\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_SERVER_PROGRESSION_MONTHLY.replace(\n ':pursuitId',\n payload?.engagementId!,\n )}`,\n ],\n query: { architype: encodeURIComponent(payload?.archetype!) },\n });\n }\n\n public getBlockersandCausesService(\n payload: IMigrationPayload,\n ): Promise | IBlockersAndCausesResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_BLOCKER_CAUSES.replace(':engagementId', payload.engagementId!)}`,\n ],\n query: { architype: encodeURIComponent(payload?.archetype!) },\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_BLOCKER_CAUSES.replace(':pursuitId', payload.engagementId!)}`],\n query: { architype: encodeURIComponent(payload?.archetype!) },\n });\n }\n }\n // CB360 starts here//\n public getTcoInsightsService(\n selectedEnagagementId: string,\n ): Promise | ITCOInsightsResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_TCO_INSIGHTS.replace(':engagementId', selectedEnagagementId)}`,\n ],\n });\n }\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_TCO_INSIGHTS.replace(':engagementId', selectedEnagagementId)}`],\n });\n }\n\n public getCostTrendsService(\n selectedEnagagementId: string,\n ): Promise | ICostTrendResponse[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_COST_TREND.replace(':engagementId', selectedEnagagementId)}`,\n ],\n });\n }\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET__COST_TREND.replace(':engagementId', selectedEnagagementId)}`],\n });\n }\n\n public getCostAllocationSummaryService(\n selectedEnagagementId: string,\n ): Promise | ICostAllocationSummaryResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_COST_ALLOCATION_SUMMARY.replace(\n ':engagementId',\n selectedEnagagementId,\n )}`,\n ],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_COST_ALLOCATION_SUMMARY.replace(\n ':engagementId',\n selectedEnagagementId,\n )}`,\n ],\n });\n }\n\n public getAllocationTrendService(\n selectedEnagagementId: string,\n ): Promise | IAllocationTrendResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_ALLOCATION_TREND.replace(\n ':engagementId',\n selectedEnagagementId,\n )}`,\n ],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ALLOCATION_TREND.replace(':engagementId', selectedEnagagementId)}`,\n ],\n });\n }\n\n public getCloudCostSummaryCostTrendService(\n selectedEnagagementId: string,\n ): Promise | ICloudCostSummaryCostTrendResponse[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_ENG_CLOUD_COST_SUMMARY_TREND.replace(\n ':engagementId',\n selectedEnagagementId,\n )}`,\n ],\n });\n }\n return this.cboService.get({\n route: [\n `${API_ROUTE_CBO.GET_CLOUD_COST_SUMMARY_TREND.replace(\n ':engagementId',\n selectedEnagagementId,\n )}`,\n ],\n });\n }\n //CB360 Ends here\n\n // CBO-3061_AI_AUTO_ENHANCE_CODE:Created service for ServersByUpgrade\n\n public getServersByUpgradeService(\n payload: string,\n ): Promise | IServersByUpgradeResponse[] {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_SERVERS_BY_UPGRADE.replace(':engagementId', payload!)}`],\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_SERVERS_BY_UPGRADE.replace(':engagementId', payload!)}`],\n });\n }\n }\n\n public getDispositionByWaveService(\n payload: string,\n ): Promise | IDispositionsByWaveData {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_DISPOSITIONS_BY_WAVE.replace(':engagementId', payload!)}`],\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_DISPOSITIONS_BY_WAVE.replace(':pursuitId', payload!)}`],\n });\n }\n }\n\n //CBO-4166_AI_AUTO_ENHANCE_CODE create following services getDefectAgeingService, getNumberOfTestCasesService, getSeverityVsCreatedOnService, getTableCountService and getTestRunStatusServic for both engagement and pursuit\n\n public getDefectAgeingService(\n payload: string,\n ): Promise | IDefectAgeingResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_DEFECT_AGEING.replace(':projectId', payload!)}`],\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_DEFECT_AGEING.replace(':projectId', payload!)}`],\n });\n }\n }\n\n public getNumberOfTestCasesService(\n payload: string,\n ): Promise | INumberOfTestCasesResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_NUMBER_OF_TEST_CASES.replace(':projectId', payload!)}`],\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_NUMBER_OF_TEST_CASES.replace(':projectId', payload!)}`],\n });\n }\n }\n\n public getSeverityVsCreatedOnService(\n payload: string,\n ): Promise | ISeverityVsCreatedOnResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_SEVERITY_VS_CREATED_ON.replace(':projectId', payload!)}`],\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_SEVERITY_VS_CREATED_ON.replace(':projectId', payload!)}`],\n });\n }\n }\n\n public getTableCountService(payload: string): Promise | ITableCountResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_TABLE_COUNT.replace(':projectId', payload!)}`],\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_TABLE_COUNT.replace(':projectId', payload!)}`],\n });\n }\n }\n\n public getTestRunStatusService(\n payload: string,\n ): Promise | ITestRunStatusResponse {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_TEST_RUN_STATUS.replace(':projectId', payload!)}`],\n });\n } else {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_TEST_RUN_STATUS.replace(':projectId', payload!)}`],\n });\n }\n }\n\n public getTaxonomyEditorService(\n data: string,\n ): Promise | ITaxonomyEditorData[] {\n const isEngagement = JSON.parse(storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false');\n if (isEngagement) {\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_ENG_TAXONOMY_EDITOR.replace(':engagementId', data)}`],\n });\n }\n return this.cboService.get({\n route: [`${API_ROUTE_CBO.GET_PURSUIT_TAXONOMY_EDITOR.replace(':pursuitId', data)}`],\n });\n }\n}\n\nconst EngagementSummaryGraphService = new EngagementGraphService();\nexport default EngagementSummaryGraphService;\n","/* eslint-disable max-lines */\nimport { put, takeEvery } from 'redux-saga/effects';\nimport {\n IJiraInitiativesResponse,\n ILiftAndShiftObject,\n IJiraInitiativesPayload,\n IJiraEpicsPayload,\n IJiraEpicsResponse,\n IJiraTasksPayload,\n IJiraTasksResponse,\n ISummaryMetricsPayload,\n IJiraTaskListResponse,\n IJiraIssueResponse,\n IOperateEndgeIncidentPayload,\n IEnergySavingsResponse,\n ICarbonCreditsResponse,\n ICarbonFootPrintResponse,\n IGreenCloudPayload,\n ILegacyDbData,\n ILegacyGraphData,\n IArtifactsGraphPayload,\n IArtifactsLOCResponse,\n IArtifactsResponse,\n IDecompositionResponse,\n IExecutionMetricDetailsResponse,\n ISQLGraphDataResponse,\n IAllSQLGraphPayload,\n ISQLDMLPayload,\n IOtherSQLPayload,\n ISummaryMetricsResp,\n IWorkflowListPayload,\n IWorkflowReportResponse,\n IWorkflowResponse,\n IDEPAlertScanPayload,\n IDEPAlertScanResponse,\n ICodeQuality,\n ICodeQualityPayload,\n IIncidentChartsType,\n IIncidentDetails,\n IIncidentDetailsPayload,\n ICodespacesResponse,\n IProblemInsightsAssignmentGroupData,\n IProblemInsightsPayload,\n IProblemInsightsRunDetailsData,\n IProblemGroupOverviewResponse,\n IKMSResponse,\n IIssueSummaryResponse,\n IRiskSummaryResponse,\n IActiveSummaryResponse,\n ITransitionTableResponseData,\n IJiraStoryListResponse,\n IJiraStoriesPayload,\n IAppsProgressionResponse,\n IServersProgressionResponse,\n IMigrationPayload,\n IAppsProgressionMonthlyResponse,\n IServersProgressionMonthlyResponse,\n IMigrationArcheTypeListResponse,\n ITCOInsightsResponse,\n ICostTrendResponse,\n ICostAllocationSummaryResponse,\n IBlockersAndCausesResponse,\n IAllocationTrendResponse,\n ICloudCostSummaryCostTrendResponse,\n IServersByUpgradeResponse,\n IDispositionsByWaveData,\n IWorkflowPayload,\n IDefectAgeingResponse,\n INumberOfTestCasesResponse,\n ISeverityVsCreatedOnResponse,\n ITableCountResponse,\n ITestRunStatusResponse,\n ITaxonomyEditorData,\n} from '../../../models/cbo/EngagementSummaryGraphModel';\nimport EngagementSummaryGraphService from '../../../services/cbo/EngagementSummaryGraphService/EngagementSummaryGraphService';\nimport {\n EngagementSummaryGraphActions,\n EngagementSummaryGraphAction,\n EngagementSummaryGraphActionTypes,\n} from '../../actions/cbo/EngagementSummaryGraphAction';\nimport { ToastActions } from '../../actions/ToastActions';\nimport { NotificationTypes } from '../../../../components/Notifications/NotificationsConstants';\nimport {\n IApplicationDipositioning,\n IWavePlan,\n} from '../../../../containers/CBOEngagementSummary/CboTrunorthGraphs/CboTrunorthConstants';\nimport {\n IDiscoveryMetrics,\n ISurveyMetrics,\n} from '../../../../containers/CBOEngagementSummary/CboTrunorthGraphs/CboTrunorthConstants';\nimport { IProduct } from '../../../models/cbo/EngagementModels';\nimport { EngagementActions } from '../../actions/cbo/EngagementAction';\nimport EngagementService from '../../../services/cbo/EnagementService/EngagementService';\nimport { IMarketplaceAssetPayload } from '../../../models/cbo/CboMarketplaceModels';\nimport { STORAGE_CONSTANTS, storage } from '../../../services/LocalStorage';\nimport {\n ISummaryPractitionerDataResp,\n IDashboardCourseStatusResponse,\n ILearningCenterPayload,\n} from '../../../../containers/CBOEngagementSummary/operate/LearningCenter/LearningCenterConstants';\n\nexport function* getLiftAndShiftWorker(action: EngagementSummaryGraphAction) {\n try {\n const data = action.data as string;\n const response: ILiftAndShiftObject =\n yield EngagementSummaryGraphService.getLiftAndShiftChart();\n yield put(EngagementSummaryGraphActions.getLiftAndShiftSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getLiftAndShiftError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\nexport function* getJiraInitiativeDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IJiraInitiativesResponse[] =\n yield EngagementSummaryGraphService.getJiraInitiatives(data as IJiraInitiativesPayload);\n yield put(EngagementSummaryGraphActions.getJiraInititativeSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getJiraInititativeError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getJiraEpicsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IJiraEpicsResponse = yield EngagementSummaryGraphService.getJiraEpics(\n data as IJiraEpicsPayload,\n );\n yield put(EngagementSummaryGraphActions.getJiraEpicsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getJiraEpicsError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getCurrentSprintDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IJiraIssueResponse =\n yield EngagementSummaryGraphService.getJiraCurrentSprintStoryList(\n data as IJiraStoriesPayload | IJiraTasksPayload,\n );\n response.phase = (data as IJiraTasksPayload)?.phase;\n yield put(EngagementSummaryGraphActions.getCurrentSprintSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n error.name = (action.data as IJiraTasksPayload)?.phase!;\n yield put(EngagementSummaryGraphActions.getCurrentSprintError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getJiraTableStoryListDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IJiraStoryListResponse =\n yield EngagementSummaryGraphService.getJiraTableStoryList(data as IJiraStoriesPayload);\n response.phase = (data as IJiraStoriesPayload)?.phase;\n yield put(EngagementSummaryGraphActions.getJiraTableStoryListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getJiraTableStoryListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description:\n 'Something went wrong while fetching Activity List! ' +\n error.message +\n '... Please try again!',\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getJiraTableTaskListDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IJiraTaskListResponse =\n yield EngagementSummaryGraphService.getJiraTableTaskList(data as IJiraTasksPayload);\n response.phase = (data as IJiraTasksPayload)?.phase;\n yield put(EngagementSummaryGraphActions.getJiraIssueTaskListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n error.name = (action.data as IJiraTasksPayload)?.phase!;\n yield put(EngagementSummaryGraphActions.getJiraIssueTaskListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description:\n 'Something went wrong while fetching Activity List! ' +\n error.message +\n '... Please try again!',\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\n// Cloud Migration Fecthing Tasks based on epic Id\n// export function* getJiraTaskListDataWorker(action: EngagementSummaryGraphAction) {\n// try {\n// const { data } = action;\n// const response: IJiraTaskListResponse = yield EngagementSummaryGraphService.getJiraTaskList(\n// data as IJiraTasksPayload,\n// );\n// yield put(EngagementSummaryGraphActions.getJiraTaskListSuccess(response));\n// } catch (error) {\n// if (error instanceof Error) {\n// yield put(EngagementSummaryGraphActions.getJiraTaskListError(error));\n// yield put(\n// ToastActions.showToast({\n// message: 'Error!!!',\n// description:\n// 'Something went wrong while fetching Activity List! ' +\n// error.message +\n// '... Please try again!',\n// type: NotificationTypes.ERROR,\n// }),\n// );\n// }\n// }\n// }\n\nexport function* getAllSqlDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISQLGraphDataResponse[] = yield EngagementSummaryGraphService.getSQLGraph(\n data as IAllSQLGraphPayload,\n );\n yield put(EngagementSummaryGraphActions.getSQLGraphDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getSQLGraphDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\nexport function* getDMLSqlDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISQLGraphDataResponse[] = yield EngagementSummaryGraphService.getSQLGraph(\n data as ISQLDMLPayload,\n );\n yield put(EngagementSummaryGraphActions.getDMLSQLGraphDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getDMLSQLGraphDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\nexport function* getOtherSqlDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISQLGraphDataResponse[] = yield EngagementSummaryGraphService.getSQLGraph(\n data as IOtherSQLPayload,\n );\n yield put(EngagementSummaryGraphActions.getOtherSQLGraphDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getOtherSQLGraphDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\nexport function* getDecompositionDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IDecompositionResponse[] =\n yield EngagementSummaryGraphService.getDecompositionGraph(data as string);\n yield put(EngagementSummaryGraphActions.getDecompositionDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getDecompositionDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\nexport function* getMissingArtifactsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IArtifactsResponse[] =\n yield EngagementSummaryGraphService.getMissingArtifactsGraphData(\n data as IArtifactsGraphPayload,\n );\n yield put(EngagementSummaryGraphActions.getMissingArtifactsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getMissingArtifactsDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n//low\nexport function* getCodeQualityLowDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityLow(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityLowDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityLowDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n//medium\nexport function* getCodeQualityMediumDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityMedium(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityMediumDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityMediumDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n//high\nexport function* getCodeQualityHighDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityHigh(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityHighDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityHighDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n//very high\nexport function* getCodeQualityVeryHighDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityVeryHigh(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityVeryHighDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityVeryHighDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n// low FCC\nexport function* getCodeQualityLowDataForFccWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityLow(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityLowDataForFCCSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityLowDataForFCCError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n//medium FCC\nexport function* getCodeQualityMediumDataForFccWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityMedium(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityMediumDataForFCCSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityMediumDataForFCCError(error));\n }\n }\n}\n//high FCC\nexport function* getCodeQualityHighDataForFccWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityHigh(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityHighDataForFCCSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityHighDataForFCCError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n//very high FCC\nexport function* getCodeQualityVeryHighDataForFccWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityVeryHigh(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityVeryHighDataForFCCSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityVeryHighDataForFCCError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n// low LCC\nexport function* getCodeQualityLowDataForLccWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityLow(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityLowDataForLCCSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityLowDataForLCCError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n//medium LCC\nexport function* getCodeQualityMediumDataForLccWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityMedium(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityMediumDataForLCCSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityMediumDataForLCCError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n//high LCC\nexport function* getCodeQualityHighDataForLccWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityHigh(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityHighDataForLCCSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityHighDataForLCCError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n//very high LCC\nexport function* getCodeQualityVeryHighDataForLccWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityVeryHigh(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityVeryHighDataForLCCSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityVeryHighDataForLCCError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n// low SC\nexport function* getCodeQualityLowDataForScWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICodeQuality[] = yield EngagementSummaryGraphService.getCodeQualityLow(\n data as ICodeQualityPayload,\n );\n yield put(EngagementSummaryGraphActions.getCodeQualityLowDataForSCSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCodeQualityLowDataForSCError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\nexport function* getAnalysedArtifactsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IArtifactsResponse[] =\n yield EngagementSummaryGraphService.getAnalyzedArtifactsGraphData(\n data as IArtifactsGraphPayload,\n );\n yield put(EngagementSummaryGraphActions.getAnalysedArtifactsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getAnalysedArtifactsDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\nexport function* getLOCArtifactsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IArtifactsLOCResponse[] = yield EngagementSummaryGraphService.getLOCGraphData(\n data as IArtifactsGraphPayload,\n );\n yield put(EngagementSummaryGraphActions.getArtifactsLOCDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getArtifactsLOCDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n//SUMMARY METRICS\n//module\nexport function* getMetricsModuleDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISummaryMetricsResp[] = yield EngagementSummaryGraphService.getMetricsModule(\n data as ISummaryMetricsPayload,\n );\n yield put(EngagementSummaryGraphActions.getMetricsModuleDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getMetricsModuleDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n//Physical Files\nexport function* getPhysicalFilesDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISummaryMetricsResp[] = yield EngagementSummaryGraphService.getMetricsModule(\n data as ISummaryMetricsPayload,\n );\n yield put(EngagementSummaryGraphActions.getPhysicalFilesDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getPhysicalFilesDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n//Physical LOC\nexport function* getPhysicalLOCDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISummaryMetricsResp[] = yield EngagementSummaryGraphService.getMetricsModule(\n data as ISummaryMetricsPayload,\n );\n yield put(EngagementSummaryGraphActions.getPhysicalLOCDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getPhysicalLOCDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n//Source LOC\nexport function* getSourceLOCDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISummaryMetricsResp[] = yield EngagementSummaryGraphService.getMetricsModule(\n data as ISummaryMetricsPayload,\n );\n yield put(EngagementSummaryGraphActions.getSourceLOCDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getSourceLOCDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n//Comment LOC\nexport function* getCommentLOCDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISummaryMetricsResp[] = yield EngagementSummaryGraphService.getMetricsModule(\n data as ISummaryMetricsPayload,\n );\n yield put(EngagementSummaryGraphActions.getCommentLOCDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCommentLOCDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n//dead Code\nexport function* getDeadCodeDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISummaryMetricsResp[] = yield EngagementSummaryGraphService.getMetricsModule(\n data as ISummaryMetricsPayload,\n );\n yield put(EngagementSummaryGraphActions.getDeadCodeDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getDeadCodeDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n//Missing Modules\nexport function* getMissingModulesDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISummaryMetricsResp[] = yield EngagementSummaryGraphService.getMetricsModule(\n data as ISummaryMetricsPayload,\n );\n yield put(EngagementSummaryGraphActions.getMissingModulesDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getMissingModulesDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\n//Errors Data\nexport function* getErrorsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISummaryMetricsResp[] = yield EngagementSummaryGraphService.getMetricsModule(\n data as ISummaryMetricsPayload,\n );\n yield put(EngagementSummaryGraphActions.geErrorsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.geErrorsDataError(error));\n //yield put(\n // ToastActions.showToast({\n // message: 'Error!!!',\n // description: error.message,\n //type: NotificationTypes.ERROR,\n //}),\n // );\n }\n }\n}\n\nexport function* getJiraTableInitiativeDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IJiraIssueResponse =\n yield EngagementSummaryGraphService.getJiraTableInitiatives(data as IJiraInitiativesPayload);\n response.phase = (data as IJiraTasksPayload)?.phase;\n yield put(EngagementSummaryGraphActions.getJiraTableInititativeSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n error.name = (action.data as IJiraInitiativesPayload)?.phase!;\n yield put(EngagementSummaryGraphActions.getJiraTableInititativeError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getJiraTableEpicsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IJiraIssueResponse = yield EngagementSummaryGraphService.getJiraTableEpics(\n data as IJiraEpicsPayload,\n );\n response.phase = (data as IJiraTasksPayload)?.phase;\n yield put(EngagementSummaryGraphActions.getJiraTableEpicsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n error.name = (action.data as IJiraTasksPayload)?.phase!;\n yield put(EngagementSummaryGraphActions.getJiraTableEpicsError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n}\n\nexport function* getApplicationDepositionDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IApplicationDipositioning =\n yield EngagementSummaryGraphService.getApplicationDispositioning(data as string);\n yield put(EngagementSummaryGraphActions.getApplicationDispositioningSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getApplicationDispositioningError(error));\n }\n }\n}\n\nexport function* getWavePlanDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IWavePlan = yield EngagementSummaryGraphService.getWavePlan(data as string);\n yield put(EngagementSummaryGraphActions.getWavePlanSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getWavePlanError(error));\n }\n }\n}\n\nexport function* getInventorySurveyMetricsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISurveyMetrics = yield EngagementSummaryGraphService.getInventorySurveyMetrics(\n data as string,\n );\n yield put(EngagementSummaryGraphActions.getInventortSurveyDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getInventortSurveyDataError(error));\n }\n }\n}\n\nexport function* getBusinessSurveyMetricsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISurveyMetrics = yield EngagementSummaryGraphService.getBusinessSurveyMetrics(\n data as string,\n );\n yield put(EngagementSummaryGraphActions.getBusinessSurveyDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getBusinessSurveyDataError(error));\n }\n }\n}\n//discovery metrics\nexport function* getDiscoveryMetricsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IDiscoveryMetrics = yield EngagementSummaryGraphService.getDiscoveryMetrics(\n data as string,\n );\n yield put(EngagementSummaryGraphActions.getDiscoveryMetricsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getDiscoveryMetricsDataError(error));\n }\n }\n}\n\nexport function* postIncidentSummaryAndTrendsWorker(action: EngagementSummaryGraphAction) {\n try {\n const body = action.data as IOperateEndgeIncidentPayload;\n const response: IIncidentChartsType =\n yield EngagementSummaryGraphService.postIncidentSummaryAndTrend(body)!;\n yield put(EngagementSummaryGraphActions.postIncidentSummaryAndTrendDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.postIncidentSummaryAndTrendDataError(error));\n }\n }\n}\n\nexport function* postIncidentDetailsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const response: IIncidentDetails = yield EngagementSummaryGraphService.postIncidentDetails(\n action.data as IIncidentDetailsPayload,\n )!;\n yield put(EngagementSummaryGraphActions.postIncidentDetailsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.postIncidentDetailsDataError(error));\n }\n }\n}\n\nexport function* postKeyAssetConfigDataWorker(action: EngagementSummaryGraphAction) {\n const isEngagement = JSON.parse(\n storage.getItem(STORAGE_CONSTANTS.isEngagement) ?? 'false',\n ) as boolean;\n\n try {\n const body = action.data as IProduct;\n yield EngagementSummaryGraphService.setKeyAssetConfiguration(body)!;\n yield put(EngagementSummaryGraphActions.setKeyAssetConfigSuccess());\n yield put(\n ToastActions.showToast({\n message: '',\n description: 'Updated Key Asset Configuration!',\n type: NotificationTypes.SUCCESS,\n }),\n );\n try {\n yield put(\n EngagementActions.getKeyAssetsListStart({\n selectedEnagagementId: isEngagement ? body?.engagementId : body?.pursuitId,\n isEngagement: isEngagement,\n } as IMarketplaceAssetPayload),\n );\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementActions.getKeyAssetsListError(error));\n yield put(\n ToastActions.showToast({\n message: 'Error!!!',\n description: error.message,\n type: NotificationTypes.ERROR,\n }),\n );\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.setKeyAssetConfigError(error));\n }\n }\n}\n\nexport function* getCarbonFootPrintDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICarbonFootPrintResponse =\n yield EngagementSummaryGraphService.getGreenCloudData(data as IGreenCloudPayload);\n yield put(EngagementSummaryGraphActions.getCarbonFootPrintDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCarbonFootPrintDataError(error));\n }\n }\n}\n\nexport function* getCarbonCreditsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ICarbonCreditsResponse = yield EngagementSummaryGraphService.getGreenCloudData(\n data as IGreenCloudPayload,\n );\n yield put(EngagementSummaryGraphActions.getCarbonCreditsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCarbonCreditsDataError(error));\n }\n }\n}\n\nexport function* getEnergySavingsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IEnergySavingsResponse = yield EngagementSummaryGraphService.getGreenCloudData(\n data as IGreenCloudPayload,\n );\n yield put(EngagementSummaryGraphActions.getEnergySavingsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getEnergySavingsDataError(error));\n }\n }\n}\n\nexport function* getLearningSummaryPractitionerDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: ISummaryPractitionerDataResp =\n yield EngagementSummaryGraphService.getLearningCenterSummaryPractitionerService(\n data as ILearningCenterPayload,\n );\n yield put(EngagementSummaryGraphActions.getLearningSummaryPractitionerSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getLearningSummaryPractitionerError(error));\n }\n }\n}\n\nexport function* getCourseStatusPractitionerDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const { data } = action;\n const response: IDashboardCourseStatusResponse[] =\n yield EngagementSummaryGraphService.getCoursesStatusPractitionerService(\n data as ILearningCenterPayload,\n );\n yield put(EngagementSummaryGraphActions.getCourseStatusPractitionerSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCourseStatusPractitionerError(error));\n }\n }\n}\n\nexport function* getLegacyDBDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const data = action?.data as string;\n const response: ILegacyDbData[] = yield EngagementSummaryGraphService.getLegacyView(\n data as string,\n );\n yield put(EngagementSummaryGraphActions.getLegacyViewSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getLegacyViewError(error));\n }\n }\n}\n\nexport function* getLegacyGraphDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const data = action?.data as string;\n const response: ILegacyGraphData = yield EngagementSummaryGraphService.getLegacyGraph(data);\n yield put(EngagementSummaryGraphActions.getLegacyGraphSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getLegacyGraphError(error));\n }\n }\n}\n\n//Digital Tester:\n\nexport function* getWorkflowsListDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as IWorkflowListPayload;\n const response: IWorkflowResponse = yield EngagementSummaryGraphService.getWorkflowListService(\n payload as IWorkflowListPayload,\n );\n yield put(EngagementSummaryGraphActions.getWorkflowsListSuccess(response?.data));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getWorkflowsListError(error));\n }\n }\n}\n\nexport function* getWorkflowMetricDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as IWorkflowPayload;\n const response: IExecutionMetricDetailsResponse =\n yield EngagementSummaryGraphService.getWorkflowMetricsService(payload as IWorkflowPayload);\n yield put(EngagementSummaryGraphActions.getWorkflowMetricDetailsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getWorkflowMetricDetailsError(error));\n }\n }\n}\n\nexport function* getWorkflowReportsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as IWorkflowPayload;\n const response: IWorkflowReportResponse =\n yield EngagementSummaryGraphService.getWorkflowReportsService(payload as IWorkflowPayload);\n yield put(EngagementSummaryGraphActions.getWorkflowReportSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getWorkflowReportError(error));\n }\n }\n}\n\nexport function* getAlertsIssuesDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as IDEPAlertScanPayload;\n const response: IDEPAlertScanResponse =\n yield EngagementSummaryGraphService.getDEPScanAlertService(payload as IDEPAlertScanPayload);\n yield put(EngagementSummaryGraphActions.successDepAlertsScanData(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.errorDepAlertsScanData(error));\n }\n }\n}\n\nexport function* getDEPCodeSpacesDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: ICodespacesResponse[] =\n yield EngagementSummaryGraphService.getDEPCodeSpacesService(payload as string);\n yield put(EngagementSummaryGraphActions.getDepCodesSpacesSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getDepCodesSpacesError(error));\n }\n }\n}\n\nexport function* getProblemInsightsRunListWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: IProblemInsightsAssignmentGroupData[] =\n yield EngagementSummaryGraphService.getProblemInsightsRunListService(payload);\n yield put(EngagementSummaryGraphActions.getRunAssignmentListSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getRunAssignmentListError(error));\n }\n }\n}\n\nexport function* getProblemInsightsRunDetailsWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as IProblemInsightsPayload;\n const response: IProblemInsightsRunDetailsData =\n yield EngagementSummaryGraphService.getProblemInsightsRunDetailsService(payload);\n yield put(EngagementSummaryGraphActions.getRunDetailsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getRunDetailsError(error));\n }\n }\n}\n\nexport function* getproblemgroupoverviewWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as IProblemInsightsPayload;\n const response: IProblemGroupOverviewResponse =\n yield EngagementSummaryGraphService.getproblemgroupoverviewService(payload);\n yield put(EngagementSummaryGraphActions.getProblemGroupOverviewSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getProblemGroupOverviewError(error));\n }\n }\n}\n\nexport function* kmsApplicationsWorker(action: EngagementSummaryGraphAction) {\n try {\n const response: IKMSResponse[] = yield EngagementSummaryGraphService.kmsApplicationsService();\n yield put(EngagementSummaryGraphActions.getKMSApplicationsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getKMSApplicationsError(error));\n }\n }\n}\n\nexport function* getIssueSummaryDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: IIssueSummaryResponse[] =\n yield EngagementSummaryGraphService.getIssueSummaryService(payload);\n yield put(EngagementSummaryGraphActions.issueSummaryDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.issueSummaryDataError(error));\n }\n }\n}\n\nexport function* getRiskSummaryDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: IRiskSummaryResponse[] =\n yield EngagementSummaryGraphService.getRiskSummaryService(payload);\n yield put(EngagementSummaryGraphActions.riskSummaryDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.riskSummaryDataError(error));\n }\n }\n}\n\nexport function* getActiveSummaryDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: IActiveSummaryResponse =\n yield EngagementSummaryGraphService.getActiveSummaryService(payload);\n yield put(EngagementSummaryGraphActions.activeSummaryDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.activeSummaryDataError(error));\n }\n }\n}\n\nexport function* getTransitionsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: ITransitionTableResponseData[] =\n yield EngagementSummaryGraphService.getTransitionService(payload);\n yield put(EngagementSummaryGraphActions.transitionsDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.transitionsDataError(error));\n }\n }\n}\n//CBO-2901_AI_AUTO_NEW_CODE : Added Saga Worker Functions for AppProgressionData, ServerProgressionData and ArchetypeList\n\nexport function* getAppProgressionDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as IMigrationPayload;\n const response: IAppsProgressionResponse[] =\n yield EngagementSummaryGraphService.getAppsProgressionService(payload);\n yield put(EngagementSummaryGraphActions.getAppProgressionSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getAppProgressionError(error));\n }\n }\n}\n\nexport function* getServersProgressionDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as IMigrationPayload;\n const response: IServersProgressionResponse[] =\n yield EngagementSummaryGraphService.getServersProgressionService(payload);\n yield put(EngagementSummaryGraphActions.getServersProgressionSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getServersProgressionError(error));\n }\n }\n}\n\nexport function* getArchetypeListDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const data = action?.data as IMigrationPayload;\n const response: string[] = yield EngagementSummaryGraphService.getArchetypeListService(data);\n yield put(\n EngagementSummaryGraphActions.getArchetypeListSuccess({\n archetypes: response,\n type: data?.type,\n }),\n );\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getArchetypeListError(error));\n }\n }\n}\n\n//CBO-2901_AI_AUTO_NEW_CODE : Added new saga functions for AppProgressionMonthlyData, ServerProgressionMonthlyData\nexport function* getAppProgressionMonthlyDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as IMigrationPayload;\n const response: IAppsProgressionMonthlyResponse[] =\n yield EngagementSummaryGraphService.getAppsProgressionMonthlyService(payload);\n yield put(EngagementSummaryGraphActions.getAppProgressionMonthlyDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getAppProgressionMonthlyDataError(error));\n }\n }\n}\nexport function* getServerProgressionMonthlyDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as IMigrationPayload;\n const response: IServersProgressionMonthlyResponse[] =\n yield EngagementSummaryGraphService.getServersProgressionMonthlyService(payload);\n yield put(EngagementSummaryGraphActions.getServerProgressionMonthlyDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getServerProgressionMonthlyDataError(error));\n }\n }\n}\n\nexport function* getTCOInsightsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: ITCOInsightsResponse =\n yield EngagementSummaryGraphService.getTcoInsightsService(payload);\n yield put(EngagementSummaryGraphActions.getTCOInsightsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getTCOInsightsError(error));\n }\n }\n}\n\nexport function* getCostTrendsDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: ICostTrendResponse[] =\n yield EngagementSummaryGraphService.getCostTrendsService(payload);\n yield put(EngagementSummaryGraphActions.getCostTrendsSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCostTrendsError(error));\n }\n }\n}\n\nexport function* getCostAllocationSummaryDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: ICostAllocationSummaryResponse =\n yield EngagementSummaryGraphService.getCostAllocationSummaryService(payload);\n yield put(EngagementSummaryGraphActions.getCostAllocationSummarySuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCostAllocationSummaryError(error));\n }\n }\n}\n\nexport function* getBlockersandCausesDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as IMigrationPayload;\n const response: IBlockersAndCausesResponse =\n yield EngagementSummaryGraphService.getBlockersandCausesService(payload);\n yield put(EngagementSummaryGraphActions.getBlockersandCausesSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getBlockersandCausesError(error));\n }\n }\n}\n\nexport function* getAllocationTrendDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: IAllocationTrendResponse =\n yield EngagementSummaryGraphService.getAllocationTrendService(payload);\n yield put(EngagementSummaryGraphActions.getAllocationTrendSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getAllocationTrendError(error));\n }\n }\n}\n\nexport function* getCloudCostSummaryCostTrendDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: ICloudCostSummaryCostTrendResponse[] =\n yield EngagementSummaryGraphService.getCloudCostSummaryCostTrendService(payload);\n yield put(EngagementSummaryGraphActions.getCloudCostSummaryCostTrendSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getCloudCostSummaryCostTrendError(error));\n }\n }\n}\n\n// CBO-3061_AI_AUTO_ENHANCE_CODE:Created new saga worker functions for getting the data for the server by upgrade graphs\nexport function* getServersByUpgradeDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: IServersByUpgradeResponse[] =\n yield EngagementSummaryGraphService.getServersByUpgradeService(payload);\n yield put(EngagementSummaryGraphActions.getServersByUpgradeSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getServersByUpgradeError(error));\n }\n }\n}\n\nexport function* getDispositionsByWaveDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: IDispositionsByWaveData =\n yield EngagementSummaryGraphService.getDispositionByWaveService(payload);\n yield put(EngagementSummaryGraphActions.getDispositionsByWaveSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getDispositionsByWaveError(error));\n }\n }\n}\n\n//CBO-4166_AI_AUTO_ENHANCE_CODE generate saga worked function for the following functionname getDefectAgeingDataWorker, getNumberOfTestCasesDataWorker, getSeverityVsCreatedOnDataWorker, getTableCountDataWorker and getTestRunStatusDataWorker\nexport function* getDefectAgeingDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: IDefectAgeingResponse =\n yield EngagementSummaryGraphService.getDefectAgeingService(payload);\n yield put(EngagementSummaryGraphActions.getDefectAgeingSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getDefectAgeingError(error));\n }\n }\n}\n\nexport function* getNumberOfTestCasesDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: INumberOfTestCasesResponse =\n yield EngagementSummaryGraphService.getNumberOfTestCasesService(payload);\n yield put(EngagementSummaryGraphActions.getNumberOfTestCasesSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getNumberOfTestCasesError(error));\n }\n }\n}\n\nexport function* getSeverityVsCreatedOnDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: ISeverityVsCreatedOnResponse =\n yield EngagementSummaryGraphService.getSeverityVsCreatedOnService(payload);\n yield put(EngagementSummaryGraphActions.getSeverityVsCreatedOnSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getSeverityVsCreatedOnError(error));\n }\n }\n}\n\nexport function* getTableCountDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: ITableCountResponse =\n yield EngagementSummaryGraphService.getTableCountService(payload);\n yield put(EngagementSummaryGraphActions.getTableCountSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getTableCountError(error));\n }\n }\n}\n\nexport function* getTestRunStatusDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: ITestRunStatusResponse =\n yield EngagementSummaryGraphService.getTestRunStatusService(payload);\n yield put(EngagementSummaryGraphActions.getTestRunStatusSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getTestRunStatusError(error));\n }\n }\n}\n\nexport function* getTaxonomyEditorDataWorker(action: EngagementSummaryGraphAction) {\n try {\n const payload = action?.data as string;\n const response: ITaxonomyEditorData[] =\n yield EngagementSummaryGraphService.getTaxonomyEditorService(payload);\n yield put(EngagementSummaryGraphActions.getTaxonomyEditorDataSuccess(response));\n } catch (error) {\n if (error instanceof Error) {\n yield put(EngagementSummaryGraphActions.getTaxonomyEditorDataError(error));\n }\n }\n}\n\nexport function* engagementSummaryGraphWatcher() {\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_LIFT_SHIFT_CHART_STARTED,\n getLiftAndShiftWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_JIRA_INITIATIVE_STARTED,\n getJiraInitiativeDataWorker,\n );\n yield takeEvery(EngagementSummaryGraphActionTypes.GET_JIRA_EPICS_STARTED, getJiraEpicsDataWorker);\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_JIRA_CURRENT_SPRINT_STARTED,\n getCurrentSprintDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_ALL_SQL_GRAPH_DATA_START,\n getAllSqlDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_DML_SQL_GRAPH_DATA_START,\n getDMLSqlDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_OTHER_SQL_GRAPH_DATA_START,\n getOtherSqlDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_DCMPTN_GRAPH_DATA_START,\n getDecompositionDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_MISSING_ARTIFACT_DATA_START,\n getMissingArtifactsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_ANALYZED_ARTIFACT_DATA_START,\n getAnalysedArtifactsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_NUMBER_LOC_DATA_START,\n getLOCArtifactsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_START,\n getCodeQualityLowDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_START,\n getCodeQualityMediumDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_START,\n getCodeQualityHighDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_START,\n getCodeQualityVeryHighDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_METRICS_MODULE_DATA_START,\n getMetricsModuleDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_PHYSICAL_FILES_DATA_START,\n getPhysicalFilesDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_PHYSICAL_LOC_DATA_START,\n getPhysicalLOCDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_SOURCE_LOC_DATA_START,\n getSourceLOCDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_COMMENT_LOC_DATA_START,\n getCommentLOCDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_DEAD_CODE_DATA_START,\n getDeadCodeDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_MISSING_MODULE_DATA_START,\n getMissingModulesDataWorker,\n );\n yield takeEvery(EngagementSummaryGraphActionTypes.GET_ERRORS_DATA_START, getErrorsDataWorker);\n // yield takeEvery(\n // EngagementSummaryGraphActionTypes.GET_JIRA_TASK_LIST_STARTED,\n // getJiraTaskListDataWorker,\n // ); // Cloud Migration Fecthing Tasks based on epic Id\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_TASK_LIST_STARTED,\n getJiraTableTaskListDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_FCC_START,\n getCodeQualityLowDataForFccWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_FCC_START,\n getCodeQualityMediumDataForFccWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_FCC_START,\n getCodeQualityHighDataForFccWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_FCC_START,\n getCodeQualityVeryHighDataForFccWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_LCC_START,\n getCodeQualityLowDataForLccWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_MEDIUM_GRAPH_DATA_FOR_LCC_START,\n getCodeQualityMediumDataForLccWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_HIGH_GRAPH_DATA_FOR_LCC_START,\n getCodeQualityHighDataForLccWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_VERY_HIGH_GRAPH_DATA_FOR_LCC_START,\n getCodeQualityVeryHighDataForLccWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CODE_QUALITY_LOW_GRAPH_DATA_FOR_SC_START,\n getCodeQualityLowDataForScWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_INITIATIVE_STARTED,\n getJiraTableInitiativeDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_APPLICATION_DISPOSITIONING_STARTED,\n getApplicationDepositionDataWorker,\n );\n yield takeEvery(EngagementSummaryGraphActionTypes.GET_WAVE_PLANE_STARTED, getWavePlanDataWorker);\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_EPICS_STARTED,\n getJiraTableEpicsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_JIRA_TABLE_STORY_LIST_STARTED,\n getJiraTableStoryListDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_INVENTORY_SURVEY_DATA_START,\n getInventorySurveyMetricsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_BUSINESS_SURVEY_DATA_START,\n getBusinessSurveyMetricsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_DISCOVERY_METRICS_DATA_START,\n getDiscoveryMetricsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.POST_INCIDENT_SUMMARY_TRENDS_STARTED,\n postIncidentSummaryAndTrendsWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_INCIDENT_DETAILS_STARTED,\n postIncidentDetailsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.SET_KEY_ASSET_CONFIG_STARTED,\n postKeyAssetConfigDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CARBON_FOOT_PRINT_START,\n getCarbonFootPrintDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CARBON_CREDITS_START,\n getCarbonCreditsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_ENERGY_SAVINGS_START,\n getEnergySavingsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_LEARNING_CENTER_SUMMARY_START,\n getLearningSummaryPractitionerDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_COURSES_STATUS_START,\n getCourseStatusPractitionerDataWorker,\n );\n\n yield takeEvery(EngagementSummaryGraphActionTypes.GET_LEGACY_DB_STARTED, getLegacyDBDataWorker);\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_LEGACY_GRAPH_STARTED,\n getLegacyGraphDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_WORKFLOW_LIST_STARTED,\n getWorkflowsListDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_WORKFLOW_METRICS_STARTED,\n getWorkflowMetricDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_WORKFLOW_REPORTS_STARTED,\n getWorkflowReportsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_DEPSCAN_ALERTS_STARTED,\n getAlertsIssuesDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_DEP_CODES_SPACES_STARTED,\n getDEPCodeSpacesDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_RUN_ASSIGNMENT_LIST_STARTED,\n getProblemInsightsRunListWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_RUN_DETAILS_STARTED,\n getProblemInsightsRunDetailsWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_PROBLEM_GROUP_OVERVIEW_STARTED,\n getproblemgroupoverviewWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_KMS_RESPONSE_STARTED,\n kmsApplicationsWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_ISSUE_SUMMARY_DATA_STARTED,\n getIssueSummaryDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_RISK_SUMMARY_DATA_STARTED,\n getRiskSummaryDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_ACTIVE_SUMMARY_DATA_STARTED,\n getActiveSummaryDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_TRANSITIONS_DATA_STARTED,\n getTransitionsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_APPS_PROGRESSION_DATA_STARTED,\n getAppProgressionDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_SERVERS_PROGRESSION_DATA_STARTED,\n getServersProgressionDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_ARCHETYPE_LIST_STARTED,\n getArchetypeListDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_APPS_PROGRESSION_MONTHLY_DATA_STARTED,\n getAppProgressionMonthlyDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_SERVERS_PROGRESSION_MONTHLY_DATA_STARTED,\n getServerProgressionMonthlyDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_TCO_INSIGHTS_STARTED,\n getTCOInsightsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_COST_TRENDS_STARTED,\n getCostTrendsDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_COST_ALLOCATION_SUMMARY_STARTED,\n getCostAllocationSummaryDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_BLOCKERS_CAUSES_DATA_STARTED,\n getBlockersandCausesDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_ALLOCATION_TRENDS_DATA_STARTED,\n getAllocationTrendDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_CLOUD_COST_SUMMARY_COST_TREND_STARTED,\n getCloudCostSummaryCostTrendDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_SERVERS_BY_UPGRADE_STARTED,\n getServersByUpgradeDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_DISPOSITIONS_BY_WAVE_STARTED,\n getDispositionsByWaveDataWorker,\n );\n\n //CBO-4166_AI_AUTO_ENHANCE_CODE add new saga function for the following actions\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_DEFECT_AGEING_STARTED,\n getDefectAgeingDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_NUMBER_OF_TEST_CASES_STARTED,\n getNumberOfTestCasesDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_SEVERITY_VS_CREATEDON_STARTED,\n getSeverityVsCreatedOnDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_TABLE_COUNT_STARTED,\n getTableCountDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_TEST_RUN_STATUS_STARTED,\n getTestRunStatusDataWorker,\n );\n yield takeEvery(\n EngagementSummaryGraphActionTypes.GET_TAXONOMY_EDITOR_DATA_STARTED,\n getTaxonomyEditorDataWorker,\n );\n}\n","import {\n IMarketplaceSystemTags,\n IFilterPayload,\n IPostFilterResponse,\n ISearchAndFilterAssetsPayload,\n ISearchAndFilterAssetsResponse,\n IJourneyFilter,\n IImportantLinks,\n} from '../../../models/cbo/CboMarketplaceSearchModels';\nimport { API_ROUTE_CBO } from '../../ApiRoute';\nimport ApiService from '../../ApiService';\nimport ApiServiceBase from '../../ApiServiceBase';\nimport { ServerType, ServiceType } from '../../ServiceType.data';\n\nexport class MarketplaceSearchService {\n private readonly cboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.cbo);\n // private readonly localCboService: ApiServiceBase = new ApiService(ServiceType.None, ServerType.localStack);\n\n public getAssetMetaData(): Promise