{"version":3,"sources":["components/shared/Markdown/Markdown.tsx","components/shared/Markdown/prism-ballerina.js","serviceWorker.ts","data/interfaces.ts","data/constants.ts","data/utils.tsx","conf/settings.ts","store/types/api.ts","store/actions/api.ts","store/actions/graphql.ts","store/types/applicationKeys.ts","store/actions/applicationKeys.ts","store/types/applications.ts","store/actions/applications.ts","store/types/comments.ts","store/actions/comments.ts","store/types/credentials.ts","store/actions/credentials.ts","store/types/documents.ts","store/actions/documents.ts","store/types/notification.ts","store/actions/notification.ts","store/types/rating.ts","store/actions/rating.ts","store/types/sdk.ts","store/actions/sdk.ts","store/types/subscriptions.ts","store/actions/subscriptions.ts","store/types/swagger.ts","store/actions/swagger.ts","store/types/user.ts","store/actions/user.ts","store/types/idps.ts","store/reducers/api.ts","store/reducers/user.ts","store/reducers/comments.ts","store/reducers/ratings.ts","store/reducers/documents.ts","store/reducers/subscriptions.ts","store/reducers/applicationKeys.ts","store/reducers/swagger.ts","store/reducers/applications.ts","store/reducers/credentials.ts","store/reducers/sdk.ts","store/reducers/notification.ts","store/types/tags.ts","store/reducers/tags.ts","store/types/categories.ts","store/reducers/categories.ts","store/reducers/idps.ts","store/reducers/graphqlResponse.ts","store/types/addExternalUserToOrg.ts","store/reducers/addExternalUserToOrg.ts","store/types/customDomainOrganization.ts","store/reducers/customDomainOrganization.ts","store/types/subscriptionPolicies.ts","store/reducers/subscriptionPolicies.ts","store/types/organizationMetadata.ts","store/reducers/organizationMetadata.ts","store/types/subscribedApiScopes.ts","store/reducers/subscribedApiScopes.ts","store/reducers/index.ts","store/index.ts","util/app-insights.ts","store/actions/subscribedApiScopes.ts","data/operations.ts","store/actions/subscriptionPolicies.ts","store/actions/idps.ts","elements/PrimaryButton.tsx","icons/style.ts","icons/PenEditIcon.tsx","elements/EditableTextField/style.ts","elements/EditableTextField/EditableTextField.tsx","components/api/ApiOverview/ApiCommentsTable.tsx","icons/CustomIcons.tsx","elements/DarkTooltip.tsx","elements/CopyTextField.tsx","elements/GreyButton.tsx","elements/TextButton.tsx","components/api/ApiResources/style.ts","elements/OutlineButton.tsx","components/api/ApiResources/ApiResources.tsx","assets/iconComponents/style.ts","assets/iconComponents/SuccessFillIcon.tsx","assets/iconComponents/InfoFilledIcon.tsx","assets/iconComponents/ErrorFillIcon.tsx","assets/iconComponents/Warning.tsx","components/ChoreoSystem/Notification/Notification.styles.tsx","components/ChoreoSystem/Notification/Notification.tsx","components/api/ApiOverview/ApiInformation.tsx","components/api/ApiOverview/ApiHoverRating.tsx","components/api/ApiOverview/ApiRating.tsx","components/api/ApiOverview/ApiDocumentation.tsx","components/api/ApiOverview/ApiTags.tsx","components/api/ApiOverview/styles.ts","icons/copy.svg","components/api/ApiOverview/CopyCommand/CopyCommand.tsx","components/api/ApiOverview/ApiScopes.tsx","components/api/ApiOverview/AvailableVersions/styles.ts","components/api/ApiOverview/AvailableVersions/index.tsx","components/api/ApiOverview/index.tsx","components/api/ApiCredentials/style.ts","components/shared/ApiInfoBar.tsx","elements/PasswordCopyField.tsx","elements/GreyOutlinedButton.tsx","elements/PreLoaderLogo/style.ts","elements/PreLoaderLogo/index.tsx","components/shared/CurlDialog/style.ts","components/shared/CurlDialog/CurlDialog.tsx","elements/CirclePreloader/index.tsx","components/shared/ConfirmationDialog/styles.ts","components/shared/ConfirmationDialog/ConfirmationDialog.tsx","elements/CopyTextArea.tsx","components/shared/AccessTokenDialog/style.ts","elements/CustomAutoComplete/styles.ts","elements/CustomAutoComplete/CustomAutoComplete.tsx","util/token-generation.ts","components/shared/AccessTokenDialog/AccessTokenDialog.tsx","components/api/ApiCredentials/index.tsx","components/api/ApiTryOut/style.ts","components/api/ApiTryOut/SecurityHeader.tsx","components/api/ApiTryOut/SwaggerUI.tsx","components/shared/WarningBanner/style.ts","components/shared/WarningBanner/index.tsx","components/api/ApiTryOut/GraphiqlViewer/styles.ts","elements/CustomTooltip/Tooltip.tsx","elements/CustomTooltip/styles.ts","elements/CustomTooltip/InfoTooltip.tsx","components/shared/InfoBanner/style.ts","components/shared/InfoBanner/index.tsx","components/api/ApiTryOut/GraphiqlViewer/GraphiqlViewer.tsx","elements/Badge/style.ts","elements/Badge/Badge.tsx","components/api/ApiTryOut/WebSocketViewer/PayloadEditor.tsx","components/api/ApiTryOut/WebSocketViewer/styles.ts","components/api/ApiTryOut/WebSocketViewer/OutputConsole.tsx","components/api/ApiTryOut/WebSocketViewer/LogLine.tsx","components/shared/Tab/TabPanel/index.tsx","components/api/ApiTryOut/WebSocketViewer/TopicViewer.tsx","components/api/ApiTryOut/WebSocketViewer/WebSocketViewer.tsx","components/api/ApiTryOut/index.tsx","components/api/ApiContracts/styles.ts","components/app/AppSubscriptions/styles.ts","components/app/AppSubscriptions/SubscriptionPolicyCard.tsx","components/api/ApiContracts/index.tsx","components/api/ApiDocumentation/style.ts","components/api/ApiDocumentation/index.tsx","components/api/ApiSdks/styles.ts","components/api/ApiSdks/index.tsx","components/shared/MainMenuDrawer/ListItemLink.tsx","components/shared/MainMenuDrawer/MainMenuItems.tsx","data/emus.ts","util/app-permissions.ts","components/shared/MainMenuDrawer/AppMenuItems.tsx","components/shared/MainMenuDrawer/index.tsx","components/shared/DevPortalFooter.tsx","components/ChoreoSystem/CloseableBanner/index.tsx","components/api/ApiLatestVersionAvailableBanner/index.tsx","components/ApiPage.tsx","elements/Status/style.ts","elements/Status/index.tsx","components/app/CreateApp/style.ts","components/app/CreateApp/index.tsx","components/app/ShareApplication/style.ts","components/app/ShareApplication/index.tsx","icons/Share.tsx","components/shared/AppInfoBar.tsx","components/app/AppOverview/styles.ts","components/app/AppOverview/index.tsx","components/app/AppProductionKeys/Oauth/style.ts","components/app/AppProductionKeys/Oauth/ExternalIDP.tsx","components/shared/Label/index.tsx","components/app/AppProductionKeys/Oauth/ClientIdConfirmationDialog.tsx","components/app/AppProductionKeys/Oauth/index.tsx","components/app/AppProductionKeys/index.tsx","elements/PrimaryButtonRounded.tsx","components/app/AppSubscriptions/Actions.tsx","components/app/AppSubscriptions/CreateSubscriptionDialog.tsx","components/app/AppSubscriptions/EditSubscriptionDialog.tsx","components/app/AppSubscriptions/index.tsx","components/shared/NoPermission.tsx","store/actions/addExternalUserToOrg.ts","components/app/AppSubscriptions/ApplicationApiSubscriptoins.tsx","components/AppPage.tsx","components/home/AppLandingPage/styles.ts","components/home/AppLandingPage/AppLandingPage.tsx","components/home/AppList/styles.ts","components/home/AppList/index.tsx","components/signin/styles.ts","components/signin/index.tsx","components/login/style.ts","elements/EnterpriseLoginBox.tsx","icons/Email.tsx","components/login/loginCard.tsx","components/login/index.tsx","components/shared/PageNotFound.tsx","components/api-list/ApiCard/styles.ts","components/api-list/ApiCard/index.tsx","components/ApiListPage.tsx","store/actions/tags.ts","store/actions/categories.ts","components/home/styles.ts","components/home/DevportalHome.tsx","util/HotJarMask.tsx","components/shared/MainAppBar/UserMenu.tsx","components/shared/MainAppBar/index.tsx","components/shared/InternalServerError.tsx","components/shared/Unauthorized.tsx","icons/delete-red.svg","icons/delete-white.svg","icons/edit.svg","icons/add.svg","styles.ts","components/invitation/AcceptInvitation/style.ts","components/invitation/AcceptInvitation/index.tsx","components/shared/ClientError.tsx","components/shared/Forbidden.tsx","App.tsx","store/actions/customDomainOrganization.ts","store/actions/organizationMetadata.ts","index.tsx","components/shared/Markdown/style.ts"],"names":["markdownTableCell","props","children","markdownTableRow","map","child","markdownTableBody","markdownTableHead","global","window","Prism","require","renderers","code","language","inline","className","classes","useStyles","match","exec","String","replace","inlineCode","defaultProps","theme","BallerinaPrismTheme","style","tokens","getLineProps","getTokenProps","clsx","codeBlock","codeBlockHorizontalNumberLine","line","lineNumber","linePropClassName","key","codeBlockLine","token","table","thead","filter","type","tbody","variant","square","React","isValidElement","tableHead","tableBody","tableRow","tableCell","Markdown","mdText","remarkPlugins","gfm","rehypePlugins","rehypeRaw","components","languages","ballerina","comment","string","pattern","greedy","boolean","keyword","RegExp","operator","number","Boolean","location","hostname","RequestTimeUnit","Notificationtype","StorageOperations","KeyType","TestKeyType","IdpRegisterType","DevPortalAppEnv","RESOURCE_LOGIN","RESOURCE_API","RESOURCE_OVERVIEW","RESOURCE_API_COMMENTS","RESOURCE_API_RATINGS","RESOURCE_API_DOCUMENTS","RESOURCE_API_DOCUMENT_CONTENT","RESOURCE_SIGN_IN","RESOURCE_APP_KEYS","RESOURCE_GENERATE_APP_KEYS","RESOURCE_GENERATE_TOKEN","RESOURCE_SWAGGER","RESOURCE_ASYNCAPI","RESOURCE_THUMBNAIL","RESOURCE_APPLICATIONS","RESOURCE_THROTTLING_POLICIES","RESOURCE_TOKEN","RESOURCE_AUTHORIZE","RESOURCE_OAUTH2","AUTHORIZATION_ERROR","PROTOCOL_HTTPS","PROTOCOL_WSS","API_TYPE_HTTP","API_TYPE_GRAPHQL","API_TYPE_WS","CLAIMS_FULL_NAME","CLAIMS_GOOGLE_PIC","CLAIMS_GITHUB_PIC","CLAIMS_PHOTO_URL","CLAIMS_AVATAR_URL","CLAIMS_PICTURE","AUTHORIZATION_CODE_GRANT_TYPE","IMPLICIT_GRANT_TYPE","SUBSCRIPTION_THROTTLING_POLICY_UNLIMITED","RETURN_TO_PATH","CREATED_BY_USER","SELECTED_ORG_UUID","CORRELATION_ID","SELECTED_ORG_HANDLE_NAME","FORBIDDEN_SELECTED_ORG_HANDLE_NAME","FIDP","DEFAULT_APP_INTERNAL_PREFIX","DEFAULT_ASGARDEO_KEY_MANAGER_PREFIX","APPDEV_STS_KEY_MANAGER_TYPE","ASGARDEO_KEY_MANAGER_TYPE","ORG_QUERY_PARAM","CORRELATION_ID_QUERY_PARAM","PATH_SEPARATOR","RGB_ALPHA","ALL","VALUE_ZERO","API_PAGINATION_QUERY","NOT_FOUND_ERROR","HTTP_METHODS","GET","PUT","POST","DELETE","PATCH","HEAD","OPTIONS","WS_METHODS","CONTENT_TYPE","APPLICATION_JSON","PRODUCTION_KEY_MANAGE_SCOPE","SANDBOX_KEY_MANAGE_SCOPE","SUBSCRIBE_SCOPE","DOC_HOME_URL","AZURE_CLIENT_ID_DOC_URL","ASGARDEO_CLIENT_ID_DOC_URL","MAJOR_VERSION","DEVELOPMENT","PRODUCTION","ADMIN_SCOPE","DEFAULT_APPLICATION_LIMIT","isValidData","data","Object","keys","length","renderSkeleton","width","height","skeletonProps","Skeleton","getApiTagsEndpoint","apimHostname","Settings","apimApi","tagResource","devportalContext","URL","toString","getApiCategoryEndpoint","getApiListEndpoint","pagination","apiResource","Constants","getCustomDomainOrgHandleMappingEndpoint","apiServiceHost","getOrganizationMetadataEndpoint","getApiResourceEndpoint","apiId","resource","getSubscriptionResourceEndpoint","subscriptionId","subscriptionResource","getApplicationEndpoint","appId","appResource","getApplicationShareEndpoint","getApiTestKeyGenerationEndpoint","getSdkResourceEndpoint","getSubscriptionThrottlingPoliciesEndpoint","throttlingPolicyResource","sessionStoreOperation","operation","value","ADD","sessionStorage","setItem","REMOVE","removeItem","getItem","localStoreOperation","localStorage","getGraphqlEndpoint","graphqlHostname","graphqlServiceHost","graphResource","graphqlResource","getAzureCDNEndpoint","organization","azureCDNHostname","azureCDNOrigin","getUserValidationEndpoint","userOrgsResource","validateUserEndpoint","getAddEnterpriseUserEndpoint","addEnterpriseUserEndpoint","getAcceptInvitationEndpoint","confirmationOrg","confirmationKey","getFormatteddDateTime","stringDate","date","Date","toLocaleDateString","year","month","day","toLocaleTimeString","hour","minute","hour12","getTimeDurationForDate","utcDate","dateTimeDifference","getTime","Math","round","substring","indexOf","numOfHours","numOfMinutes","numOfSeconds","isCustomSubPoliciesEnabled","userOrgId","orgEnvString","customSubscriptionPolicyHandlingOrg","undefined","orgList","split","includes","getAllApiGatewayUrls","endpointUrls","graphqlInfo","isLatestVersion","version","isPublicView","selectedOrg","graphqlEnvArray","environments","isPdpDomainCustomizedOrg","pdpDomainCustomizedOrgs","uuid","endpointEnv","environmentName","URLs","http","startsWith","https","endpoint","wss","protocol","tmpUrl","ORG_UUID_WITH_DOMAIN_REGEX","handle","choreoSystemOrg","test","trim","environmentDisplayName","url","environment","getEnvironmentEndpointDisplayName","choreoEnvironmentName","accessibilityType","isSandboxEndpoint","isCritical","isSandbox","urlParts","hostSuffix","PROD_SANDBOX_URL_REGEX","urlContextStartIdx","choreoSystemHostSuffix","slice","join","isProdVisible","some","env","choreoEnv","find","graphqlEnv","name","externalApiEnvName","internalApiEnvName","intelligentRoutingFeatureEnabled","majorVersion","lastIndex","lastIndexOf","tmpUrlWithoutVersion","toLowerCase","getIDPsEndpoint","getAddExternalUserToOrgEndpoint","organizationHandle","getApplicationKeysMapEndpoint","applicationId","getIsInternalAPI","api","additionalProperties","property","isSelfSignupEnabled","orgName","selfSignupEnabledOrgs","isGraphqlApi","getAPIType","isThirdPartyApi","advertiseInfo","advertised","truncateTextMiddle","fullStr","strLen","separator_","separator","charsToShow","frontChars","ceil","backChars","floor","mapAndAddKeyToKeyList","keyList","list","count","newKeyList","keyType","keyIndex","findIndex","push","isCredentialMenuAccessible","allowedScopes","isSandboxKeyGenerationAccessible","isProductionKeyGenerationAccessible","isContractsAccessible","getEndpointUrls","versionInfo","majorVersionEndpointUrls","endpointURLs","getVisibilityFromAccessibilityType","windowSettings","defaultSettings","applicationSettingsMap","windowSettingsMap","entries","JSON","parse","stringify","getApplicationSettings","enablePKCE","clientId","signInRedirectUrl","signOutRedirectUrl","clientHost","apimHost","tokenExchangeUrl","apimGatewayHostSuffix","idpHost","devToolEnable","scopes","keyManager","apiServiceProxy","userInfo","userOrganizations","tokenEndpoint","revokeEndpoint","tokenValidityPeriod","defaultAppThrottlingPolicy","defaultAppTokenType","googleFidp","githubFidp","microsoftFidp","emailFidp","enableMicrosoftLogin","enableEmailLogin","oldGoogleFidp","oldGithubFidp","enterpriseFidp","overrideEndpoints","authorizationEndpoint","endSessionEndpoint","wellKnownEndpoint","overrideWellEndpointConfig","tokenExchangeConfig","grantType","subjectTokenType","requestedTokenType","scope","grantTypes","id","asgardeoGrantTypes","subscriptionThrottlingTiers","description","enableInV2","choreoControlPlaneOrgHandleName","azureInsightsKey","reactAppHotjarId","reactAppHotjarVersion","asgardeoConsoleUrl","devportalHost","isCustomDomain","customDomain","validateIDToken","permissionAdminPortalEnabled","permissionAdminPortalUrl","permissionPortalOrgIdParam","sandboxKeyGenerationEnabled","devPortalIdPConfigurationFeatureEnabled","apiTryoutTestKeyEnabled","FETCH_API_REQUEST","FETCH_API_SUCCESS","FETCH_API_FAILURE","FETCH_API_LIST_REQUEST","FETCH_API_LIST_SUCCESS","FETCH_API_LIST_FAILURE","FETCH_FEATURED_API_LIST_SUCCESS","FEATCH_FEATURED_API_LIST_REQUEST","FETCH_FEATURED_API_LIST_FAILURE","FETCH_MAJOR_VERSION_API_LIST_REQUEST","FETCH_MAJOR_VERSION_API_LIST_SUCCESS","FETCH_MAJOR_VERSION_API_LIST_FAILURE","FETCH_THUMBNAIL_REQUEST","FETCH_THUMBNAIL_SUCCESS","FETCH_THUMBNAIL_FAILURE","FETCH_THUMBNAIL_LIST_REQUEST","FETCH_THUMBNAIL_LIST_SUCCESS","FETCH_THUMBNAIL_LIST_FAILURE","FETCH_GRAPHQL_REQUEST","FETCH_GRAPHQL_SUCCESS","FETCH_GRAPHQL_FAILURE","SET_SECURITY_HEADERS","fetchApiRequest","fetchApiSuccess","payload","fetchApiFailure","error","fetchApiListRequest","fetchApiListSuccess","apis","fetchApiListFailure","fetchMajorVersionApiListSuccess","fetchThumbnailRequest","fetchThumbnailSuccess","apiThumbnail","fetchThumbnailFailure","fetchThumbnailListRequest","fetchThumbnailListSuccess","thumbnailMap","fetchHeaders","headers","fetchGraphqlRequestSuccess","graphqlResponse","CREATE_APIKEY_FAILURE","CREATE_APIKEY_REQUEST","CREATE_APIKEY_SUCCESS","FETCH_KEYS_REQUEST","FETCH_KEYS_SUCCESS","FETCH_KEYS_FAILURE","CREATE_KEYS_REQUEST","CREATE_KEYS_SUCCESS","CREATE_KEYS_FAILURE","UPDATE_KEYS_REQUEST","UPDATE_KEYS_SUCCESS","UPDATE_KEYS_FAILURE","CREATE_OAUTH_TOKEN_REQUEST","CREATE_OAUTH_TOKEN_SUCCESS","CREATE_OAUTH_TOKEN_FAILURE","MAP_APPLICATION_KEY_FAILURE","MAP_APPLICATION_KEY_REQUEST","MAP_APPLICATION_KEY_SUCCESS","CREATE_API_TEST_KEY_REQUEST","CREATE_API_TEST_KEY_SUCCESS","CREATE_API_TEST_KEY_FAILURE","createKeysRequest","createKeysSuccess","createKeysFailure","updateKeysRequest","updateKeysSuccess","updateKeysFailure","createOauthTokenRequest","createOauthTokenSuccess","createOauthTokenFailure","FETCH_APPLICATION_REQUEST","FETCH_APPLICATION_SUCCESS","FETCH_APPLICATION_FAILURE","FETCH_APPLICATION_DETAILS_REQUEST","FETCH_APPLICATION_DETAILS_SUCCESS","FETCH_APPLICATION_DETAILS_FAILURE","UPDATE_APPLICATION_REQUEST","UPDATE_APPLICATION_SUCCESS","UPDATE_APPLICATION_FAILURE","CREATE_APPLICATION_REQUEST","CREATE_APPLICATION_SUCCESS","CREATE_APPLICATION_FAILURE","DELETE_APPLICATION_REQUEST","DELETE_APPLICATION_SUCCESS","DELETE_APPLICATION_FAILURE","SHARE_APPLICATION_SUCCESS","fetchApplicationRequest","fetchApplicationSuccess","applications","fetchApplicationFailure","createApplicationRequest","createApplicationSuccess","createApplicationFailure","updateApplicationSuccess","application","deleteApplicationRequest","deleteApplicationSuccess","deleteApplicationFailure","shareApplicationSuccess","FETCH_API_COMMENTS_REQUEST","FETCH_API_COMMENTS_SUCCESS","FETCH_API_COMMENTS_FAILURE","POST_COMMENT_REQUEST","POST_COMMENT_SUCCESS","POST_COMMENT_FAILURE","DELETE_COMMENT_REQUEST","DELETE_COMMENT_SUCCESS","DELETE_COMMENT_FAILURE","EDIT_COMMENT_SUCCESS","EDIT_COMMENT_FAILURE","EDIT_COMMENT_REQUEST","fetchApiCommentsRequest","fetchApiCommentsSuccess","comments","fetchApiCommentsFailure","postApiCommentsSuccess","deleteApiCommentsSuccess","commentId","editApiCommentsSuccess","CREATE_API_KEYS_CREDENTIALS_REQUEST","CREATE_API_KEYS_CREDENTIALS_SUCCESS","CREATE_API_KEYS_CREDENTIALS_FAILURE","FETCH_API_KEYS_CREDENTIALS_REQUEST","FETCH_API_KEYS_CREDENTIALS_SUCCESS","FETCH_API_KEYS_CREDENTIALS_FAILURE","DELETE_API_KEYS_CREDENTIALS_REQUEST","DELETE_API_KEYS_CREDENTIALS_SUCCESS","DELETE_API_KEYS_CREDENTIALS_FAILURE","createApiKeysCredentialsSuccess","createApiKeysCredentialsFailure","fetchApiKeysCredentialsRequest","fetchApiKeysCredentialsSuccess","fetchApiKeysCredentialsFailure","deleteApiKeysCredentialsRequest","deleteApiKeysCredentialsSuccess","deleteApiKeysCredentialsFailure","FETCH_DOCUMENTS_REQUEST","FETCH_DOCUMENTS_SUCCESS","FETCH_DOCUMENTS_FAILURE","fetchDocumentsRequest","fetchDocumentsSuccess","documents","fetchDocumentsFailure","ERROR","SUCCESS","RESET","setSucessNotification","message","setErrorNotification","FETCH_RATING_REQUEST","FETCH_RATING_SUCCESS","FETCH_RATING_FAILURE","POST_RATING_REQUEST","POST_RATING_SUCCESS","POST_RATING_FAILURE","fetchRatingsRequest","fetchRatingsSuccess","ratings","fetchRatingsFailure","FETCH_SDK_LANGUAGES_REQUEST","FETCH_SDK_LANGUAGES_SUCCESS","FETCH_SDK_LANGUAGES_FAILURE","fetchSdkLanguagesFailure","FETCH_SUBSCRIPTIONS_REQUEST","FETCH_SUBSCRIPTIONS_SUCCESS","FETCH_SUBSCRIPTIONS_FAILURE","UPDATE_SUBSCRIPTION_REQUEST","UPDATE_SUBSCRIPTION_SUCCESS","UPDATE_SUBSCRIPTION_FAILURE","CREATE_SUBSCRIPTIONS_REQUEST","CREATE_SUBSCRIPTIONS_SUCCESS","CREATE_SUBSCRIPTIONS_FAILURE","DELETE_SUBSCRIPTIONS_REQUEST","DELETE_SUBSCRIPTIONS_SUCCESS","DELETE_SUBSCRIPTIONS_FAILURE","fetchSubscriptionRequest","fetchSubscriptionsSuccess","subscriptions","fetchSubscriptionsFailure","updateSubscriptionSuccess","subscription","createSubscriptionsRequest","createSubscriptionsSuccess","createSubscriptionsFailure","deleteSubscriptionsSuccess","FETCH_SWAGGER_REQUEST","FETCH_SWAGGER_SUCCESS","FETCH_SWAGGER_FAILURE","fetchSwaggerRequest","fetchSwaggerSuccess","swagger","fetchSwaggerFailure","USER_LOGIN_REQUEST","USER_LOGIN_SUCCESS","USER_LOGIN_FAILURE","REQUIRE_LOGIN","USER_INFO_REQUEST","USER_INFO_SUCCESS","USER_INFO_FAILURE","USER_ORG_INFO_REQUEST","USER_ORG_INFO_SUCCESS","USER_ORG_INFO_FAILURE","CHANGE_ORG_REQUEST","CHANGE_ORG_SUCCESS","CHANGE_ORG_FAILURE","OBTAIN_APIM_TOKEN_REQUEST","OBTAIN_APIM_TOKEN_SUCCESS","OBTAIN_APIM_TOKEN_FAILURE","ADD_ENTERPRISE_USER_REQUEST","ADD_ENTERPRISE_USER_SUCCESS","ADD_ENTERPRISE_USER_FAILURE","fetchUserInfoFailure","fetchUserOrgInfoFailure","changeUserOrganizationRequest","changeUserOrganizationSuccess","changeUserOrganizationFailure","obtainApimTokenRequest","obtainApimTokenSuccess","user","obtainApimTokenFailure","FETCH_IDP_REQUEST","FETCH_IDP_SUCCESS","FETCH_IDP_FAILURE","initialState","loading","apiList","featuredApiList","featuredApiListLoading","majorVersionApiList","majorVersionApisLoading","apiThumbnailLoading","headerName","headerValue","apiReducer","state","action","orgs","signedIn","apimTokenObtained","apimTokenObtaining","requireLogin","status","userReducer","apiCommentsReducer","ratingsReducer","documentsReducer","isLoading","isDeletingSubscription","fetchSuccess","updateSuccess","subscriptionsReducer","currentKey","oauthToken","accessToken","tokenScopes","validityTime","isTokenGenerating","isTokenGenerationSuccess","apiKey","apikey","isApikeyGenerating","isApikeyGenerationSuccess","isKeyMappingSuccess","isKeyMapping","isKeyUpdating","applicationKeysReducer","swaggerReducer","offset","limit","next","previous","total","applicationsReducer","app","isKeyFetching","isKeyGenerating","isKeyDeleting","credentialsReducer","sdkReducer","default","notificationReducer","success","info","FETCH_API_TAGS_REQUEST","FETCH_API_TAGS_SUCCESS","FETCH_API_TAGS_FAILURE","tagList","apiTagsReducer","FETCH_API_CATEGORY_REQUEST","FETCH_API_CATEGORY_SUCCESS","FETCH_API_CATEGORY_FAILURE","categoryList","apiCategoriesReducer","idps","idpReducer","organizationUuid","orgShared","vhost","projectId","promoteFrom","namespace","graphqlReducer","ADD_EXTERNAL_USER_TO_ORG_REQUEST","ADD_EXTERNAL_USER_TO_ORG_SUCCESS","ADD_EXTERNAL_USER_TO_ORG_FAILURE","addExternalUserToOrgReducer","FETCH_CUSTOM_DOMAIN_ORGANIZATION_REQUEST","FETCH_CUSTOM_DOMAIN_ORGANIZATION_SUCCESS","FETCH_CUSTOM_DOMAIN_ORGANIZATION_FAILURE","customDomainOrganizationMapping","domain_name","customDomainsOrganizationReducer","organizationMapping","FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_REQUEST","FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_SUCCESS","FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_FAILURE","subscriptionPolicies","subscriptionPoliciesReducer","FETCH_ORGANIZATION_METADATA_REQUEST","FETCH_ORGANIZATION_METADATA_SUCCESS","FETCH_ORGANIZATION_METADATA_FAILURE","organizationMetadata","organizationMetadataReducer","response","FETCH_SUBSCRIBED_API_SCOPES_REQUEST","FETCH_SUBSCRIBED_API_SCOPES_SUCCESS","FETCH_SUBSCRIBED_API_SCOPES_FAILURE","subscribedApiScopesReducer","rootReducer","combineReducers","applicationReducer","customDomainOrganizationMappingReducer","middleware","thunk","store","createStore","composeWithDevTools","applyMiddleware","reactPlugin","ReactPlugin","ai","ApplicationInsights","config","instrumentationKey","extensions","loadAppInsights","appInsights","trackEvent","customProperties","a","trackIdpAuthSuccess","correlationId","devportal_corId","trackIdpAuthFailure","trackObtainApimTokenInitiation","trackObtainApimTokenSuccess","trackObtainApimTokenFailure","trackFetchUserOrgSuccess","trackFetchUserOrgFailure","trackTryOutSwaggerDownload","trackAPIDocumentationNavBarClick","trackAPICredentialsNavBarClick","trackAPISDKNavBarClick","trackApiSDKDownload","sdkZipName","trackAPIContractsNavBarClick","trackApplicationInfoBarEdit","fetchSubscribedApiScopesSuccess","authClient","AsgardeoSPAClient","getInstance","defaultHeaders","Accept","getOrgIdQueryParam","organizationId","getState","getApiResourceAuthenticated","queryParams","responseType","reqHeaders","httpRequest","Utils","method","params","getApiResourceUnauthenticated","axios","get","getOrganizationMappingForCustomDomain","getOrganizationMetadata","getGraphqlResponse","projectIdObject","additionalProperty","graphQlQuery","query","fetchGraphqlResponse","dispatch","updateApiResourceAuthenticated","resourceData","httpMethod","updateSubscriptionAuthenticated","getSubscriptionPoliciesList","getApiListAuthenticated","getApiListUnAuthenticated","getApiTagsAuthenticated","getApiCategoriesAuthenticated","getUserOrganizationList","addEnterpriseUser","isDevportalUser","fetchSubscriptionPoliciesList","playload","fetchApiListAuthenticated","requireThumbnails","aggregateBy","apiResponse","then","apiThumbnailResponse","createObjectURL","catch","fetchApiListUnAuthenticated","obtainApimTokenAndChangeOrganization","attachToken","client_id","grant_type","subject_token_type","requested_token_type","subject_token","orgHandle","returnResponse","returnsSession","signInRequired","updateConfig","requestCustomGrant","errorMessage","finally","on","Hooks","CustomGrant","fetchAPIVersionRangeSubscriptions","fetchSubscriptions","includeFromVersionRange","fetchAppKeys","fetchApiCredentialKeys","generateApplicationToken","selectedScopes","validityPeriod","keyMappingId","consumerSecret","revokeToken","generateToken","defaultAppId","defaultAppKey","appKeysInfo","fetchApplication","appName","deleteApplication","createSubscription","throttlingPolicy","versionRange","generateSdk","getSdkLanguagesResource","getApiDocumentContent","documentId","isFileType","isLoggedIn","orgId","updateSubscription","subscriptionResponse","resetNotificationMsg","fetchIDPs","devPortalAppEnv","verifyInvitation","getCreateKeyErrorMessage","customError","makeStyles","primaryButton","margin","textTransform","borderRadius","fontSize","PrimaryButton","primaryButtonLabel","buttonLabel","handlePrimaryButtonClick","onClick","startIcon","color","dataTestId","disabled","Button","disableElevation","root","createStyles","defaultIcon","fill","palette","primary","main","interactiveIcon","PenEditIcon","isInteractive","viewBox","d","transform","spacing","editableTextfield","padding","display","alignItems","justifyContent","backgroundColor","transition","border","minHeight","overflow","cursor","lineHeight","marginTop","paddingLeft","paddingTop","paddingBottom","editIcon","EditableTextField","placeholder","onAction","multiline","isEditable","useState","text","setText","isEditMode","setIsEditMode","ref","useRef","handleOnAction","onEnableEditClick","setTimeout","current","focus","Box","flexDirection","Typography","IconButton","size","TextField","fullWidth","onChange","event","target","InputProps","disableUnderline","inputRef","onKeyPress","onBlur","useStylesTablePagination","flexShrink","marginLeft","TablePaginationActions","useTheme","page","rowsPerPage","onChangePage","direction","max","useStylesCommentsTable","minWidth","custom","apiOverviewPage","tabs","overview","apiCommentCreator","paddingRight","tableCellContent","apiCommentsCellContent","commentDeleteBtn","apiCommentsDeleteButton","cmntDelConfirmText","apiCommentDeleteConfirmText","commentDelConfirm","mapDispatchToProps","deleteComment","deleteCommentResource","editComment","editCommentResource","editResponse","connect","commentsReducer","intl","useIntl","commentLoading","setPage","setRowsPerPage","commentsState","setCommentsState","anchorEl","setAnchorEl","deleteCommentId","setDeleteCommentId","rows","useEffect","emptyRows","min","handleDeletePopoverClose","handleDeleteComment","currentTarget","handleEditCommentFormSubmit","fullName","content","defaultMessage","Table","TableBody","row","commentContent","commentCreator","formatMessage","deleteButtonDisplay","TableRow","TableCell","component","align","createdTime","disableRipple","commendId","handleDeletePopoverClick","Popover","open","onClose","anchorOrigin","vertical","horizontal","transformOrigin","updatedTime","colSpan","TableFooter","TablePagination","rowsPerPageOptions","label","SelectProps","inputProps","native","onPageChange","newPage","onRowsPerPageChange","parseInt","ActionsComponent","CustomIcons","icon","xmlns","stroke","strokeWidth","fillRule","href","mask","x","y","rx","filterUnits","dx","dy","in","result","in2","values","radius","k2","k3","fillOpacity","cx","cy","r","opacity","x1","y1","x2","y2","stopColor","stdDeviation","strokeLinecap","strokeLinejoin","points","clipRule","DarkTooltip","withStyles","tooltip","common","white","boxShadow","shadows","Tooltip","apiEndpoint","maxWidth","elements","copyTextField","textFieldStyle","notchedOutline","borderStyle","copyIconButton","zIndex","copyIconButtonStyle","CopyTextField","copiedTooltipVisible","setCopiedTooltipVisible","textContent","testId","endAdornment","title","TransitionComponent","Zoom","placement","navigator","clipboard","writeText","greyButton","GreyButton","textButton","textButtonStyle","TextButton","textButtonLabel","handleTextButtonClick","grey","verb","verbChipColors","outlineButton","borderColor","OutlineButton","handleOutlineButtonClick","outlineButtonlabel","apiState","history","useHistory","paths","selectedOrgHandleName","displayCount","operations","setOperations","operationList","path","verbs","flat","channels","topicList","topic","channel","p","mb","Badge","invisible","bgcolor","toUpperCase","pr","pl","interactive","noWrap","pt","secondary","defaultHeaderIconWrapper","checkIcon","defaultPrimaryIcon","defaultFontIcon","defaultMainIcon","defaultInProgressIcon","animation","defaultQueuedIcon","SuccessFillIcon","InfoFilledIcon","focusable","ErrorFillIcon","WarningIcon","dark","position","notificationInner","gap","notificationContent","textAlign","primaryContained","borderLeftColor","secondaryContained","borderLeft","light","successContained","defaultContained","warningContained","warning","errorContained","iconWrapper","iconRoot","primaryIcon","secondaryIcon","successIcon","warningIcon","errorIcon","closeButton","right","top","closeIcon","imageWrapper","Notification","bannerImg","alertIcon","getIcon","getColorClass","getIconColorClass","gutterBottom","flexGrow","apiIconImage","getContrastText","apiIconImageBg","apiIconImageBackground","gridText","apiName","apiVersionProvider","apiInfoTitle","marginRight","apiInfoTitle2","apiInfoTitleHead","apiDetailTitles","apiOverviewContent","apiDetailsContent","apiEndpointWidth","hideInput","endpointContainer","epSelectionContainer","left","endpointUrlSelection","background","outline","font","letterSpacing","envBox","envValue","whiteSpace","textOverflow","envChip","envChipSecondary","selectBg","envNameStyles","fontWeight","lifecycleStatus","apiCard","boxSizing","postComment","postResponse","dispatchFetchGraphqlResponse","apiLoading","addCommentHidden","setAddCommentHidden","newComment","formValues","setFormValues","thumbnail","setApiState","apiCommentCount","displayName","apiVersion","context","isLatestMajorRangeVersion","majorRange","isLatest","apiOwner","businessInformation","businessOwner","technicalOwner","apiOverview","setEndpointUrls","selectedEndpoint","setSelectedEndpoint","selectedEnv","setSelectedEnv","selectedVisibility","setSelectedVisibility","isSelectedEpSandbox","setIsSelectedEpSandbox","enableCustomDomainView","externalAPIEndpointURL","apiExternalProductionEndpoint","externalAPISandboxURL","apiExternalSandboxEndpoint","prevState","trackOverviewPageLoad","customEndpoints","defaultUrls","defaultSelection","Set","customUrls","defaultUrl","owner","handleCommentClick","setSelectedUrl","setGwEnvUrl","selectedEnvObject","Grid","container","item","Avatar","img","alt","src","xs","sm","lg","renderApiTypeMessage","lifeCycleStatus","md","FormControl","Select","renderValue","MenuItem","hidden","onSubmit","preventDefault","InputLabelProps","shrink","maxLength","helperText","postRating","rating","ratingsResponse","setValue","hover","setHover","labels","userRating","Rating","precision","rate","ratingId","ratedBy","onChangeActive","newHover","ml","apiRatingBox","textVCenter1","apiRatingTextCover","textVCenter2","apiRatingStars","rectangle","apiRatingRectangle","ratingButton","apiRatingButton","ratingPopover","ratingText","apiRatingText","hideTryOut","disableTryOut","ratingValue","ratingCount","avgRating","parseFloat","readOnly","apiDocsTitle","apiDocumentsTitleBox","apiDocumentsTitleText","docsList","overflowWrap","listItemText","apiDocumentPropertyText","enqueueSnackbar","useSnackbar","docsLoading","documentsError","List","document","ListItem","button","ListItemAvatar","ListItemText","sourceType","apiTagsTitleBox","apiTagsTitleText","chip","apiTagsChip","tagsData","tags","tag","listStyle","Chip","appBarSpacer","mixins","toolbar","styles","componentPadding","breakpoints","down","up","copyAllScopes","copyScopesText","CopyCommand","copyCmd","ScopesCopyIcon","apiScopesTitleBox","apiScopesTitleText","apiScopesChip","noScopesMessage","apiScopesNoScopesMessage","scopesGrid","scopesData","index","scopeDataSpacedString","titleHead","grid","customDenseListItem","indentedSkeleton","skeletonSpacer","smallText","boldText","customAccordionSummaryContent","customAccordionSummaryRoot","customAccordionDetails","link","textDecoration","LatestVersionListItem","latestVersion","latestVersionUuid","selectedApiVersion","to","SubscribedVersionsListItem","subVersions","subVersion","ExpandableSubscribedVersionNestedListItem","apiUuid","panelId","expandedPanel","setExpandedPanel","Accordion","expanded","_","isExpanded","classNames","AccordionSummary","expandIcon","stopPropagation","AccordionDetails","dense","subscriptionList","sub","appUuid","AllVersionList","dispatchFetchAllApisOfMajorVersionAuthenticated","apiMajorVersion","dispatchFetchVersionRangeSubscriptions","subscriptionInfo","isSubscriptionFetching","subscribedVersions","setSubscribedVersions","sortedApiList","sort","b","latestApi","otherApis","forEach","subscriptionsOfApi","applicationInfo","Container","credentials","subTitle","tableCellBorder","rowLabelText","td","borderWidth","iconButton","leftCol","textFieldWeight","passwordCopyField","buttonCell","updateButton","marginBottom","generateButton","generateCredentialsButton","loaderContainer","outlineButtonCell","grantTypeText","grantTypeTextStyle","generateBtn","generateAccessTokenButton","helperTextStyle","CustomButton","grantTypeCheckBoxStyle","checked","Checkbox","removeCredentialsButton","maxHeight","apiInfoBar","gridStyles","divider","Divider","accessTokenField","borderBottom","iconBtn","copyIcon","copy","PasswordCopyField","showCopyBtn","showToken","setShowToken","copyBtnVisibility","underline","InputAdornment","edge","GreyOutlinedButton","disableTouchRipple","preloaderWrapperLogo","PreLoaderLogo","loaderSize","defaultOptions","loop","autoplay","animationData","rendererSettings","preserveAspectRatio","options","encodeVisible","greyOutlinedButton","fontFamily","dialog","dialogTitle","titleText","curlDescription","copyButton","contentWrapper","flex","command","CurlDialog","curlOpenProps","curlOpen","base64Encoded","externalIDPToken","showReal","setShowReal","applyReal","Dialog","paper","DialogTitle","DialogContent","DialogContentText","copyText","DialogActions","CirclePreloader","loaderPosition","cn","loaderText","loader","actionLoader","dialogButton","bottom","dialogRootStyle","dialogContent","primaryTitle","secondaryTitle","dialogActions","ConfirmationDialog","dialogContentText","okayButtonLabel","cancelButtonLabel","loadingActionHelperText","isActionProcessing","onOkay","onCancel","okButtonTestId","cancelButtonTestId","Loader","DialogContents","Alert","severity","textArea","CopyTextArea","fontStretch","keyInfo","borderLeftStyle","infoHeader","infoText","infoIcon","permissionList","permissionChip","permissionContainer","textField","appListingPage","heading","autoComplete","CustomAutoComplete","tagStyle","defaultValues","errorText","containerStyle","Autocomplete","multiple","filterSelectedOptions","defaultValue","freeSolo","renderInput","isInvalidValidScopeName","scopeName","getScopeName","formattedScopeName","AccessTokenDialog","accessTokenProps","tokenOpen","selectedPermissions","handleClickGenerate","setPermissions","existingPermissions","generatedScopesForToken","permissions","Info","permission","CircularProgress","dispatchGenerateCreds","subThrottlingPolicy","callBackUrl","appThrottlingPolicy","tokenType","defaultSubscription","envKey","grantTypesToBeSupported","callbackUrl","dispatchCheckCredentials","defaultAppName","dispatchUpdateAppkeys","consumerKey","supportedGrantTypes","dispatchRemoveCreds","dispatchRemoveDefaultApplicationKeys","defaultApp","deletingKey","remainingKeys","dispatchFetchIDPs","apiInfo","subscriptionsInfo","useDispatch","defaultAppKeys","idpList","defaultSelectedGrantTypeValues","policy","setPolicy","setCurlOpen","setTokenOpen","setcallBackUrl","setToken","setIsTokenGenerating","removeCredentialsOpen","setRemoveCredentialsOpen","showconsumerSecret","setValues","keyManagerName","setKeyManagerName","btoa","setSelectedPermissions","setGeneratedScopesForToken","useLocation","SANDBOX","setKeyType","setEnvKey","userName","defaultAsgardeoKeyManagerName","currentPath","pathname","matchPath","filteredEnvKey","tiers","tier","tierName","fetchAccessToken","generateAccessToken","isResidentKeyManagerNotUsed","isAsgardeoKeyManagerAvailable","idp","authorizeEndpoint","handleClickRemoveCredentialsClose","TableContainer","mr","trackAPICredentialsRemoveClick","trackCredentialGenerate","tryout","warningContainer","swaggerUI","swaggerDownloadBtn","swaggerDownloadButton","swaggerDownloadBtnGrid","apiAccessTokenTitleText","generateKeyButton","tokenField","testKeyTokenField","securityHeaderField","warningText","downloadLink","swaggerLoading","warningLink","textLabel","textLabelOptional","selectBox","dropdownStyle","applicationDropdownStyle","goToCredentialsBtn","helpIcon","alignSelf","permissionLabel","permissionContent","securityHeaderInput","securityHeaderButton","securityHeaderLeftBox","securityHeaderRightBox","securityHeaderContainer","securityHeaderCard","cardActionBox","cardActionSpace","securityHeaderDetailBox","SecurityHeaderGridSpace","securityHeaderButtonBox","responseScopeBox","SecurityHeader","setOpenSecurityHeader","requestHeader","setRequestHeader","isAdded","setIsAdded","isClicked","setIsClicked","isEmpty","setIsEmpty","handleInputChange","prevHeader","my","Edit","Card","CardContent","CardActions","headerValues","DocExpansion","disableAuthorizeAndInfoPlugin","statePlugins","spec","wrapSelectors","servers","securityDefinitions","schemes","wrapComponents","authorizeBtn","SwaggerUI","accessTokenProvider","authorizationHeader","securitySchemeType","apiGatewayUrl","componentProps","validatorUrl","defaultModelsExpandDepth","docExpansion","requestInterceptor","req","newUrl","substr","patternToCheck","endsWith","splitTokens","defaultModelExpandDepth","plugins","WarningBanner","graphqlWrapper","transitionDuration","borderTop","borderRight","borderTopLeftRadius","borderBottomLeftRadius","typography","endpointTextField","endpointTextFieldError","greyOutlineBtnRoot","disabledBtn","restProps","SOLID_BORDER","useToolTipBaseStyles","infoTooltipDark","infoArrowDark","infoTooltipLight","infoArrowLight","errorTooltip","errorArrow","warningTooltip","warningArrow","buttonLink","dividerDark","dividerLight","exampleContent","exampleContentDark","exampleContentLight","InfoTooltip","isDisabled","example","darken","baseClasses","infoTooltipFragment","Link","rel","arrow","infoContainer","InfoBanner","GraphiqlViewer","initialEndpoint","setQuery","setEndpoint","isExplorerOpen","setIsExplorerOpen","graphiqlEl","schemaFetchError","getAuthHeader","getSchema","fetch","body","getIntrospectionQuery","ok","json","schemaResponse","__schema","buildClientSchema","Error","error_message","useQuery","enabled","schema","fetchingSchema","isFetching","isError","refetch","dataUpdatedAt","onEdit","explorerIsOpen","onToggleExplorer","fetcher","param","opts","onEditQuery","editQuery","Toolbar","prettify","historyContext","toggle","startAdornment","BadgeVariant","BadgeSize","smallBadge","mediumBadge","largeBadge","defaultBadge","successBadge","successBadgeOutlined","warningBadge","warningBadgeOutlined","lightBadge","lightBadgeOutlined","errorBadge","errorBadgeOutlined","primaryBadge","primaryBadgeOutlined","secondaryBadge","secondaryBadgeOutlined","outLined","WARNING","LIGHT","PRIMARY","SECONDARY","SMALL","MEDIUM","LARGE","PayloadEditor","fileContent","setFileContent","disableAnimation","topicContainer","topicTypeContainer","alignContent","typeChipContainer","pubTypeChipContainer","subTypeChipContainer","accordion","accordionSummary","textInput","ConnectButton","deleteButton","clearOutput","payloadContainer","sendIcon","containerButton","float","parameterContainerWrapper","parameterContainer","gridTemplateColumns","paramTextInput","executeButton","outputConsoleContainer","outputLabel","outputButtons","outputContainer","borderBottomRightRadius","accordinDetails","logColor1","logColor2","logColor3","logColor4","logColor5","infoLogs","errorLogs","toolTipParent","visibility","toolTipChild","userSelect","logMsg","infoSection","logLineWrapper","logContextDivider","logContextKeyValue","disableUserSelect","logEntryActions","actionContainer","tabRoot","tabIndicator","tab","tabTitleText","flexWrap","OutputConsole","messages","clearLogs","ButtonGroup","allMessagesString","msg","timestamp","FileCopyOutlined","DEFAULT_ZONE","Intl","DateTimeFormat","resolvedOptions","timeZone","formatLogTimeStamp","parsedDate","parseDate","formatString","dayjs","format","formatWithTimeZone","LOG_LEVEL_INFO","messageText","LogLine","levelString","logEntry","getColor","parentElementProps","displayTimeStamp","randomKey","TabPanel","selectedIndex","other","role","ButtonText","TopicViewer","publish","subscribe","parameters","socket","setSocket","setMessages","input","setInput","pathParams","setPathParams","setConnect","CONNECT","connectButtonText","setConnectButtonText","selectedTab","setSelectedTab","formattedTopic","reduce","acc","connectWebsocket","CONNECTING","updatedEndpoint","ws","WebSocket","onopen","prev","DISCONNECT","onerror","onmessage","colorSet","colorMap","Map","getColorCode","has","s","colorCode","i","charCodeAt","set","tooltipText","useMemo","fallback","DISCONNECTING","close","connectBtnText","getButtonText","Tabs","newValue","indicator","Tab","disableFocusRipple","wrapper","selected","e","newParams","PlayCircleFilledOutlined","mt","Send","readyState","OPEN","send","isNewLog","WebSocketViewer","asyncapi","allTopics","setAllTopics","channelName","mapAsyncApiTopics","PROD_ENV_LABEL","dispatchGenerateAppKeyAndToken","dispatchGenerateApplicationToken","dispatchFetchSubscriptions","dispatchFetchAppKeys","dispatchGenerateApiTestKey","console","log","keysInfo","swaggerInfo","idpInfo","apiContext","contextArray","host","getApiGatewayUrl","isApimTokenObtained","isKeysFetching","selectedApplicationId","setSelectedApplicationId","selectedApplicationName","setSelectedApplicationName","setIsAsgardeoManagedApplication","testTokenType","setTestTokenType","setScopes","setSelectedScopes","isUpdating","setIsUpdating","isCritivalEnv","setIsCritivalEnv","swaggerObj","setSwaggerObj","endpointUrlList","setEndpointUrlList","selectedEnvironment","setSelectedEnvironment","isAuthorizedUserToSubscribe","setAuthorizationHeader","isDefaultCredentialsAvailable","endpointUrl","sandboxUrl","setHeaderName","setHeaderValue","openSecurityHeader","applicationList","getUpdatedSwagger","forDownload","newSwaggerObj","basePath","openapi","getUpdatedAsyncAPI","newAsyncapi","getDownloadLink","updatedSwagger","downloadSwagger","encodeURIComponent","getTestViewForApi","firstApp","getIdFromName","apiEndpointUrls","defaultEndpoint","setCurrentKeyType","currentKeyType","applicationName","handleChanges","onTryoutApplicationChange","asgardeoAppId","attributes","asgardeo_app_id","goToCredentialsPage","onEndpointSelect","handleCopyClick","getKeyGenerationPermissionError","getTestKeyButtonDisabledStatus","mode","EnvironmentSelector","MenuProps","getContentAnchorEl","ScopeSelection","setPermissionsCallback","AccessToken","HelpTwoTone","CustomSecurityHeader","secuirtyHeader","setSecurityHeader","SubscriptionSelectionPanel","Add","SubscriptionList","TestKey","Warning","PermissionViewer","handleTokenTypeRadioChange","TokenTypeSelector","RadioGroup","Radio","generateTestKey","TryOutContent","download","CloudDownloadRounded","contracts","formControl","applicationSection","formControlWarn","updateBtn","updateButtonStyle","radioGroup","warningIconStyle","contractsTitle","GenerateCredentialsInfoLabel","contractLabel","contractLabelStyle","contractRadioButtonStyle","policyCardGridItem","btnText","applicationViewPage","actions","deleteBtn","backgroundRepeat","backgroundSize","backgroundPosition","backgroundImage","hoverBtn","editBtn","pageTitle","addApiBtn","copyScopesBtn","titleWrapper","editDialogButton","overflowY","contentAlign","editPrimaryTitle","editSecondaryTitle","editDialogActions","searchField","verticalAlign","horizontalAlign","selectDropDownSm","subscribeBtn","noDataInfo","noDataText","apiNameColumn","bottomSpace","disabledElement","pointerEvents","containerList","displayInline","policyGridItem","cardContent","cardHeaderTitle","cardBorder","cardBorderSelected","policyCardListItem","backToSubscriptionBtn","gridItem","subscriptionsTitle","selectorBox","selector","btnBox","policySelectorGridItem","policyCardTypography","autoCompleteTextField","SubscriptionPolicyCard","stopOnQuotaReach","subscriptionPolicy","isSelected","handleSubPolicySelection","isApprovalRequired","getApprovalText","requestCount","timeUnit","getRateLimitText","rateLimitCount","rateLimitTimeUnit","getBurstControllingText","memo","cleanupSubscriptions","subscriptionThrottlingTierDesc","radioGroupValue","setRadioGroupValue","selectedSubPolicy","setSelectedSubPolicy","setError","selectedApplication","setSelectedApplication","DEFAULT_CREDENTIALS","getSubscriptionByApplication","getApplicatonName","requestedThrottlingPolicy","throttlingTier","FormControlLabel","control","matchedPolicy","subPolicy","subscriptionButtonText","documentation","documentTypeTextStyle","tabsBox","tabTextParent","markdownViewWrapper","docInfo","setContent","markdownDocsList","accumulator","object","MARKDOWN","onDocSelect","getMarkdownContent","tabIndex","selectedDoc","px","_event","TabIndicatorProps","sdks","fixedHeight","notification","noSDKLabelStyle","cardTitle","SDKLanguageStyle","cardRoot","SDKCardStyle","cardMedia","sdkCardWrapper","sdkInfo","sdkLanguages","sdkZip","JSFileDownload","sdkCards","CardMedia","image","downloadSDK","xl","unSelected","leftMenu","menuItems","listItemIcon","iconStyles","textStyles","ListItemLink","onclick","ItemRouterLink","forwardRef","itemProps","renderLink","ListItemIcon","nested","nestedItem","AppPermission","isTabSelected","credentialEnv","menuItemsI18n","productionCredentials","sandboxCredentials","resources","ApplicationPermission","sharedPermissions","appList","hasPermission","READ","drawerPaper","transitions","create","easing","sharp","duration","leavingScreen","drawerPaperClose","overflowX","listPadding","drawerComponent","MainMenuDrawer","menuDrawerOpen","artifact","CssBaseline","Drawer","footer","loginFooter","borderTopColor","copyright","wso2Logo","DevPortalFooter","items","mx","RouterLink","logo","contents","notificationProps","LatestVersionAvailableBannerContents","newVersion","latestVersionAPIId","fetchApiAuthenticated","commentsResponse","documentsResponse","swaggerResponse","sdkLanguageResponse","fetchApiUnauthenticated","thumbnailResponse","useParams","notificationType","apiFetchError","latestVersionInfoBannerOpen","setLatestVersionInfoBannerOpen","hasUserAccessToCurrentPathOrg","userOrg","queryParam","URLSearchParams","search","orgUuid","exact","pathList","getCredentialGenerationPath","statusContainer","containerStyles","statusLabel","dot","statusText","textStyle","activeDot","activeDotStyle","stoppedDot","stoppedDotStyle","pendingDot","pendingDotStyle","draftedDot","draftedDotStyle","InactiveStatus","alignCenter","ActiveStatus","UnknownStatus","PendingStatus","Status","statusType","statusMessages","approved","unblocked","blocked","rejected","defaultLabel","asterisk","formContainer","textLabelWithAsterisk","multiLineInput","createApiDialogContent","customWidth","dialogBtn","cancelBtn","dispatchCreateApplication","dispatchUpdateApplication","updatedApps","isEdit","isInProgress","browserHistory","createBrowserHistory","setApplicationName","defaultThrottlingPolicy","setDescription","applicationNameError","setApplicationNameError","descriptionError","setDescriptionError","dpSystemApp","subscriptionScopes","isDpSystemApp","applicationScopes","emptyApplicationName","invalidApplicationName","appNameLimit","MAX_APPLICATION_NAME_LENGTH","appNameExists","appDescriptionLimit","MAX_APPLICATION_DESCRIPTION_LENGTH","createLabel","updateLabel","editApplicationLabel","updatingApplication","createApplicationLabel","creatingApplication","createApplication","newApplication","perTokenQuota","appDescription","updateApplication","onApplicationChange","validateApplicationName","onDescriptionChange","validateDescription","onCancelClick","Fragment","reason","pb","messageBox","shareInformationMessage","invalidEMail","emailChip","emailChipStyle","infoBannerText","dispatchShareApplication","applicationShareData","userPermissions","sharedWith","userEmail","setUserEmail","sharedUserEmails","setSharedUserEmails","invalidEmail","setEmailInvalid","shareInProgress","setShareInprogress","removeInProgress","setRemoveInprogress","onUserEmailInputChange","userPermission","shareApplication","email","res","emailInputPlaceholder","InvalidEmailError","Joi","tlds","allow","validate","gridGap","onDelete","splice","removeUserEmailFromList","createSvgIcon","appIconImage","appInfoBar","appIconImageBg","appIconImageBackgroundColor","appNameStyles","appOwnerProvider","appOwnerStyles","outlineBtn","editButtonStyles","outlineButtonStyles","shareBtn","permissionBtn","permissionButtonStyles","buttonHoverStyles","deleteButtonStyles","dispatchDeleteApplication","dispatchFetchSubscriptionsList","subscriptionReducer","isApplicationLoading","applicationEditFormOpen","setApplicationEditFormOpen","applicationShareFormOpen","setApplicationShareFormOpen","applicationDeleteFormOpen","setApplicationDeleteFormOpen","appDeletionError","setAppDeletionError","onDeleteDialogCloseClick","onDeleteDialogOkClick","onDialogCloseClick","noOwnerLabel","editButtonLabel","shareButtonLabel","ownedByLabel","confirmationDialogI18n","loadingText","ownerInfo","SHARE","Share","WRITE","Paper","elevation","firstRow","overviewKeys","overviewRowKeyTextStyle","overviewDescription","overviewRowValueTextStyle","overviewValues","overviewOwnerEmail","noDescriptionText","OverviewContent","productionKeys","oAuth","subTitleTextStyles","inlineSubTitle","keyLabel","contentKeyColor","flexTextField","multipleLineOptionalFlag","splitKeyLabel","advancedConfigurationHeader","accordionDetails","advancedConfigurationDetails","StepLabel","StepContent","tokenBtnText","tableIdp","tableCellBorderNoKeys","tableCellBorderGrantTypes","tableCellBorderNoKeysGrantTypes","noKeyDescription","noConsumerKeyTextStyle","tdNoKeys","tdValueCell","consumerSecretValue","td2","td2NoKeys","td1","tx","testTokenDescription","updateKeyConfigButton","updateAdvancedConfigurationsButtonStyles","genKeysButton","generateCredentialsButtonStyle","genKeysButtonBoxNoKeys","genKeysButtonBox","helperTextWarning","textFieldWarning","borderBottomColor","gridAccordion","flexBasis","inputLabel","helperTextError","errorTextStyle","tabStyles","tabTitleTextStyles","selectedTabStyles","addIdpButton","addButtonStyles","cancelClientChangesButton","idpSelection","idpGrid","advancedConfigGrid","removeMarginTop","removeMarginBottom","rightAlignedSubTitle","advancedConfigRightText","advancedConfigRaw","tokenDocInfo","tokenDocInfoText","urlChip","emptyTableCell","borderlessTableCell","idpSelectionWrapper","idpFormWrapper","clientIdInput","addClientIdBtn","endpointsWrapper","endpointWrapper","selectedIdpName","credentialsWrapper","docsInformation","CustomCheckbox","NoKeysAccordion","MuiAccordion","WithKeysAccordion","dispatchExchangeToken","errorDescription","dispatchSetErrorNotification","dispatchCreateOauthTokenSuccess","initialIDP","isCredentialsAvailable","externalIDPTokenError","setExternalIDPTokenError","setExternalIDPToken","externalIDPs","alias","selectedIDP","setIDP","idpError","validateExternalIDPToken","selectedIdPType","idpType","exchangeAccessToken","FormGroup","displayEmpty","selectedIdpType","allowedAudience","FormHelperTextProps","optional","Label","optionalFlagClassName","ClientIdConfirmationDialog","selectedIdp","currentClientId","setCurrentClientId","previousClientId","setPreviousClientId","updateEnabled","setUpdateEnabled","handleCancel","warningBanner","py","choreoInbuiltKeyManagerFeatureEnabled","idpDocRefFromType","ShowClientIDDocumentBanner","docLink","dispatchGenerateAppKey","dispatchUpdateAppKey","dispatchSetApplicationKeyMap","applicationKeyMap","applicationKeys","setCurrentKey","setCallbackUrl","bypassClientCredentials","isPublicClientEnabled","setIsPublicClientEnabled","pkceMandatory","isPkceEnabled","setIsPkceEnabled","CLIENT_CREDENTIALS_GRANT_TYPE","TOKEN_EXCHANGE_GRANT_TYPE","REFRESH_TOKEN_GRANT_TYPE","isGenerateTokenDisabled","setIsGenerateTokenDisabled","application_access_token_expiry_time","applicationTokenExpiryTime","setApplicationTokenExpiryTime","refresh_token_expiry_time","refreshTokenExpiryTime","setRefreshTokenExpiryTime","id_token_expiry_time","idTokenExpiryTime","setIdTokenExpiryTime","user_access_token_expiry_time","userAccessTokenExpiryTime","setUserAccessTokenExpiryTime","callbackUrlError","setCallbackUrlError","applicationTokenExpiryError","setApplicationTokenExpiryError","userAccessTokenExpiryError","setUserAccessTokenExpiryError","refreshTokenExpiryError","setRefreshTokenExpiryError","applicationTokenExpiryWarning","setApplicationTokenExpiryWarning","userAccessTokenExpiryWarning","setUserAccessTokenExpiryWarning","idTokenExpiryWarning","setIdTokenExpiryWarning","idTokenExpiryError","setIdTokenExpiryError","managePermissionButtonEnabled","setManagePermissionButtonEnabled","asgardeoApplicationId","setAsgardeoApplicationId","isManagePermissionButtonDisabled","setIdpList","appDevSTSList","setAppDevSTSList","isKeyFromAsgardeoKM","setSupportedGrantTypes","selectedGrantTypes","setSelectedGrantTypes","disableCallbackUrl","setDisableCallbackUrl","isTokenExchangeSelected","setTokenExchangeFlag","isAuthorizationCodeSelected","setIsAuthorizationCodeSelected","isClientCredentialsSelected","setIsClientCredentialsSelected","setSubscriptionScopes","callbackUrls","setCallbackUrls","setClientId","idpRegistered","setIdpRegistered","isClientEditing","setClientEditing","isDialogOpen","setIsDialogOpen","setSelectedIdp","addButtonLabel","validateTokenExpiryTime","expTime","expiryTime","Number","isNaN","validateTokenExpiryTimeRecommendation","validateCallbackUrl","uri","scheme","isKeyMapped","getEndpoints","selectedKeyManager","internalKMBaseUrl","PROD","appTokenExpTime","userTokenExpTime","idTokenExpTime","isDefaultIdPAvailable","scopesAllocatedInApp","fetchAccessTokenForApp","onApplicationTokenExpiryChange","validationError","validationWarning","onUserAccessTokenExpiryChange","onRefreshTokenExpiryChange","onIdTokenExpiryChange","handleTokenExchangeTypeSelection","handleGenerateCredentialsClick","trackAppProdKeyGeneration","callbackUrlList","handleUpdateClick","updatedKey","handleSelectedGrantTypes","onChangeCallbackUrl","handleClickCurlOpen","handleClickCurlClose","handleClickTokenOpen","trackAppTestKeyGeneration","handleClickTokenClose","handleTabChange","handlePublicClientChange","handleEnablePkceChange","handleClientIdChange","isExternalIDPsConfigured","publicClientDescription","enablePkceDescription","getCallbackUrlHelperText","buttonDisabled","NoKeysHelpText","GenerateKeysButton","clx","getGrantTypeDisableTooltips","isGrantTypeDisabled","onPressEnter","setIdp","selection","handleClientAdd","confirmUpdate","cancelUpdate","handleClientEdit","availableExternalIdps","EXTERNAL","IdpList","SelectedIDP","ClientEditActions","TokenEndpointList","AddIdpClientForm","AdvancedConfigContent","defaultChecked","labelPlacement","random","existinUrls","handleDelete","UpdateKeysButton","AccordianContent","updateDisabled","onClickUserKeys","managePermissionButtonTooltip","managePermissionButtonLabel","onManagePermissionButtonClick","BuiltInKeyManagerWarning","CredentialsAvailableSwitch","tryUserKeys","ApplicationKeysContent","Oauth","primaryBtn","rounded","iconBtnText","PrimaryButtonRounded","btnSize","dispatchCreateSubscription","throttlingPolicies","alreadySubscribed","setThrottlingPolicy","subscriptionButtonLabel","onThrottlingPolicyChange","subscribeToApi","policies","SelectPolicy","SubscribeBtn","dispatchFetchApis","isApisFetching","isSubscriptionsFetching","searchQuery","setSearchQuery","updatedApiList","setUpdatedApiList","subscribedApiList","setSubscribedApiList","currentPage","setCurrentPage","searchFieldPlaceholder","nameColumn","versionColumn","policyColumn","tableSearchPlaceholder","handleSearchFieldChange","handleApiSearch","useCallback","debounce","apiDisplayName","paginationQuery","concat","encodeURI","getSearchIcon","Search","getNextPageIcon","ChevronRight","getPreviousPageIcon","ChevronLeft","getArrowIcon","ArrowDropDown","toSubColumns","field","render","rowData","availablePolicies","hasSubscribed","tableIcons","NextPage","PreviousPage","SortArrow","handlePageChange","updateApiTableData","updateSubscribedApiList","paginationProps","showFirstLastPageButtons","subscribed","subApi","getApiMajorVersionRange","formatSubscriptionApiVersion","ToSubscribeTable","columns","sorting","showTitle","pageSize","actionsColumnIndex","tableLayout","headerStyle","rowStyle","icons","localization","searchPlaceholder","nextTooltip","previousTooltip","Pagination","onEnter","dispatchUpdateSubscription","dispatchFetchApiDetails","isAPIDetailsFetching","majorVersionRange","formattedLifeCycleStatus","words","output","word","Version","versionProps","Plan","subscriptionTier","requestedSubscriptionTier","subscriptionStatus","tooltipContent","dispatchDeleteSubscription","dispatchFetchSubscribedApiScopes","apiIds","isFetchingSubscriptions","isSubscribedApiScopesLoading","selectedSubscription","setSelectedSubscription","openNewSubscriptionWizard","setOpenNewSubscriptionWizard","openDeleteSubscriptionWizard","setOpenDeleteSubscriptionWizard","openEditSubscriptionWizard","setOpenEditSubscriptionWizard","copiedIconVisible","setCopiedIconVisible","useLayoutEffect","onClickDeleteSubscriptionDialogOk","onClickDeleteSubscriptionDialogCancel","onClickCreateSubscription","onClickCopyScopes","scopesToCopy","createSubscriptionText","apiColumn","lcStatusColumn","planColumn","statusColumn","actionsColumn","createBtnDisableToolTip","CopyScopesBtn","CheckCircleRounded","FileCopyRounded","DeleteBtn","onClickDeleteSubscription","EditBtn","onClickEditSubscription","editButtonDisabledDueToPermissionTooltip","deleteButtonDisabledDueToPermissionTooltip","editButtonDisabledDueToBlockedTooltip","Actions","btnProps","isEditDisabled","isDeleteDisabled","SubscriptionTable","SubscriptionContent","hasCreatePermission","AddRounded","EditSubscriptionDialog","noPermissionTitle","noPermission","homePage","buttonSpacer","addExternalUserToOrg","isChoreoControlPlaneOrg","onRequestAccessClick","reload","onGoBackHomeClick","redirectURL","LockOpenRounded","HomeRounded","buttonClicked","setButtonClicked","availableApiVersions","setAvailableApiVersions","selectedApi","setSelecetedApi","setSelecetedApiVersion","isSubpoliciesLoading","isSubscriptionsLoading","DEFAULT_API_VERSION","handleBackButtonClick","defaultApi","updateApiData","subscribedApiItem","mappedSubscribedApiList","getAvailableVersions","changeSubPolicy","selectedApiId","apiForVersion","subscriptionData","handleApiVersionSelection","userSelectedApi","versionList","versions","apisList","removeSubscribedVersions","newAPIData","matchedSubscription","subscribedApi","gversions","firstUniqueApi","getUniqueAPIList","listToFilter","Array","from","APISelector","getOptionLabel","option","matchedApisForUserSelection","isSingleMatch","handleApiSelection","ApiVersionSelector","SubscriptionPolicySelector","policyName","ArrowBack","resetNotificationMessage","fetchApplicationDetails","include","primaryTitleContainer","appLandingPage","primaryTitleStyle","secondaryTitleStyle","imgContainer","createBtn","AppLandingContent","isNewAppWizardOpen","setNewAppWizardOpen","openNewAppWizard","createButtonLabel","CreateBtn","fixed","cellContent","subtitle","moreButtons","appDeleteButtonStyle","deleteButtonTextStyle","hoverButtonStyle","titleSection","titleContainer","defaultThumbnail","defaultAppThumbnail","editButtonIcon","titleApps","listHeaderTextStyle","searchIcon","searchButtonStyles","appSearchFieldStyle","tableArea","ownerChip","appTable","defaultSortedColumn","columnName","asc","dispatchFetchAppList","defaultApplicationPrefix","apps","AppList","sortedColumn","setSortedColumn","isDeleteAppWizardOpen","setDeleteAppWizardOpen","setIsSelected","selectedApp","setSelectedApp","setListData","tableColumns","setTableColumns","setIsNewAppWizardOpen","isAppSharingOpen","setAppSharingOpen","isShown","setIsShown","setIsEdit","pageNumber","setPageNumber","createRef","openDeleteAppWizard","closeDeleteAppWizard","searchButtonPlaceholder","countSuffixSingular","countSuffixPlural","appTableI18n","created","nextPageLabel","previousPageLabel","MoreOptions","modified","tableItem","matchingApp","formatDistanceStrict","addSuffix","getSortingOrder","handleCustomSort","column","RenderApplicationColumn","colorDefault","isOwner","defaultSort","cellStyle","customSort","toLocaleLowerCase","localeCompare","searchable","appStatus","subscriptionCount","updateSize","innerHeight","addEventListener","removeEventListener","handlePageNumberChange","openEditAppWizard","closeNewAppWizard","onCloseAppSharing","triggerShow","MaterialRow","rowProps","onMouseEnter","toggleHover","onMouseLeave","mouseLeaveMoreButton","AppsTable","onOrderChange","initialPage","thirdSortClick","pageSizeOptions","searchText","onRowClick","trackApplicationSelection","Row","countSuffix","appCount","signInContainer","signInText","tryAgainBtn","userLogin","fidp","enterpriseEmail","trackIdpAuthInitiation","signIn","username","org","SignIn","getDecodedIDToken","idToken","HttpRequestError","signOut","fetchUserOrganizations","organizations","addEnterpriseUserToOrg","changeUserOrganization","selectedOrganization","obtainApimToken","useAuthContext","retryCount","setRetryCount","invitationAccepted","setInvitationAccepted","userReducerLoading","authCode","errorCode","stateQueryParam","clientErrorStatusCodes","successStatusCodesToRedirectToUnauthorizedPage","errorCodesToAddEnterpriseUserToOrg","errorCodesToRedirectToUnauthorizedPage","stateString","isInvitation","atob","stateObj","stateCustomDomain","stateConfirmationOrg","stateConfirmationKey","replaceWithCustomDomain","isAuthenticated","trackLoginPageLoad","acceptInvitation","o","currentUserOrg","returnTo","returnToOrgHandle","extractOrgHandleFromPath","selectedOrgUuidFromStorage","is_eidp","err_code","loginBg","login","box","loginWrapper","tagLineContainer","tagLine","fontStyle","google","github","microsoft","enterprise","loginBtn","btnIcon","msftBtnIcon","enterpriseBtnIcon","btnContainer","msgContainer","successMsg","contentContainer","logoTitle","enterpriseAlign","emailBtnIcon","emailIcon","orDividerText","enterpriseLoginText","loginTextAdornedEnd","continueEnterpriseLoginBtn","enterpriseContainer","goBackLink","enterpriseGoBackLink","EnterpriseLoginBox","setEnableEnterpriseLogin","handleEnterpriseLoginClick","enterpriseUserEmail","setEnterpriseUserEmail","isEmailValid","setIsEmailValid","displayError","setDisplayError","inputEmailError","setInputEmailError","emailValidationSchema","yup","required","validateEnterpriseEmail","validateSync","abortEarly","emailError","handleContinueClick","OutlinedInput","autoFocus","adornedEnd","LoginCard","loginCardProps","handleEmailLogin","handleGithubLogin","handleGoogleLogin","handleMicrosoftLogin","GoogleButtonText","GithubButtonText","MicrosoftButtonText","Email","Login","enableEnterpriseLogin","SignOut","forbiddenOrgName","defaultMsg","orientation","flexItem","PageNotFound","hoverStyles","cardBaseStyles","card","noHoverCard","cardDiv","cardContentWrapper","cardHeader","cardHeaderPrototype","cardheaderSubTitle","cardHeaderTitleSkeleton","cardActionRoot","cardActionRootPrototype","cardActionSkeleton","tryOutButton","docsButton","apiType","apiTitle","WebkitLineClamp","WebkitBoxOrient","lsStatusWrapper","versionWrapper","ApiCard","apiRating","apiSummary","apiImageUrl","isInternalAPI","truncatedApiSummary","navigateToApiTryout","trackTryOutClickFromAPICard","navigateToApiDocs","trackDocumentationClickFromAPICard","ApiCardContent","ApiCardAction","ApiCardHeader","CardHeader","subheader","avatar","VersionInfo","trackApiSelectFromAPIList","apiListingPage","apiListPageTitle","apiListPageSubTitle","apiListGrid","allApisButton","allApisButtonBox","apiTags","apiCategories","apiCategoriesBox","apiTagCategorySection","apiTagCategoryTitle","tagCategory","categoryChip","tagChip","apiSearchBar","apiSearchBarButton","searchButton","apiSearchBarAdornedEnd","apiSearchBarAdornedStart","apiSearchBarInputAdornedStart","fetchApiListByMajorVersionAuthenticated","fetchApiListByMajorVersionUnAuthenticated","fetchApiTagList","fetchApiCategoryList","categories","publicOrgUuid","minValue","maxValue","tagCounts","setTagCounts","apiSearchBarText","setApiSearchBarText","apiListState","setApiListState","handleTagClick","tagValue","selectedTag","handleSearchBarButtonClick","trackApiLoadOnSearch","getTagColor","tagColor","colorGradientPercentage","paragraph","labelWidth","adornedStart","inputAdornedStart","categoryTitle","category","categoryValue","selectedCategory","handleCategoryClick","tagsTitle","paginationPrev","querySelector","scrollTo","behavior","paginationNext","noApisImage","homeTitle","homeSubTitle","homeTitleBox","homeTitleButtons","homeBanner","banner","signUpButton","browseButton","browseButtonFeatured","sections","featuredApis","introVideoTitle","introVideo","introVideoSubTitle","featuredTitle","featuredSubTitle","organizationTitle","organizationSubTitle","organizationCardTitle","cardStyles","organizationCardContent","organizationCardIcon","useCases","useCasesTitle","useCasesSubTitle","useCasesCardTitle","useCasesCardContent","useCasesCardIcon","devBlogs","developerBlog","blogTitle","blogSubTitle","blogCardTitle","blogCardAuthor","author","blogCardContent","blogReadMoreBtn","readMoreButton","iframe","videoIFrame","fetchFeaturedApiListAuthenticated","apiListQuery","browseApisHandleClick","sectionsOrder","displayOrder","homePageSectionsMap","videoUrl","allowFullScreen","IntroVideo","FeaturedApis","cards","OrganizationInfo","UseCases","blogUrl","DeveloperBlog","section","HotjarMask","isMasked","isAllowed","masked","dataAttr","popover","listItem","UserMenu","userFullName","profileImage","handleClose","ClickAwayListener","onClickAway","appBarLogo","appBar","drawer","appBarShift","enteringScreen","menuButton","menuButtonHidden","signInButton","navigationButton","menuButtons","navigationButtonSelected","menuButtonsSelected","menuLogoTitle","menuNavigation","menuUser","orgSelect","orgSelectMenu","orgSelectMenuPlaceholder","showDrawerButton","setMenuDrawerOpen","handleNavigationTo","isCurrentPath","AppBar","InternalServerError","Unauthorized","errorLine1","errorLine2","error_code","origin","handleSignOut","systemTheme","createTheme","black","h5","body1","body2","itemStyles","apiTilePalette","addButtonIcon","loaderContainerStyles","order","subTitleContract","contractSelectBoxStyle","contractDropdownStyle","documentSummaryText","documentContentStyle","documentAvailabilityText","documentName","documentTypeBoxStyle","documentNameListBoxStyle","advancedConfigKeyStyle","generateTokenButtonTextStyle","clientAddEditButtonStyle","editSvg","addSvg","deleteSvgIcon","deleteWhiteSvgIcon","copyTooltipStyle","clientErrorPage","goBackButton","loginBgLogin","choreoLoginLogo","choreoSignInText","choreMoreDetails","paddigTop","choreoMoreDetailsLink","choreoMoreDetailsContainer","loginMsg","msgText","inviteMsg","identityProvider","identityProviderImage","AcceptInvitation","displayOrgName","setIsLoading","isVerified","setIsVerified","invalidUrlMsg","loadingMsg","checkAgain","invitationMessage","defaultMessageText","ClientError","noCapitalise","languageWithoutRegionCode","queryClient","QueryClient","queries","retry","refetchOnWindowFocus","fetchCustomDomainOrganizationMapping","domain","customDomainOrganization","fetchOrganizationMetadata","orghandle","getBasicUserInfo","organizationMetaDataReducer","getOrgHandle","setOrganizationHandle","locale","devportalTheme","setDevportalTheme","setThemeConfigs","Pragma","Expires","themeResponse","assets","footerLinks","primaryColor","secondaryColor","headingFont","headings","bodyFont","primaryTextColor","secondaryTextColor","primaryBtnColor","secondaryBtnColor","apiListingPageTitle","apiListingPageSubTitle","apiListingPageApiTilePrimaryColor","apiListingPageApiTileSecondaryColor","apiListingPageApiTilePrimaryTextColor","apiListingPageApiTileSecondaryTextColor","apiListingPageApiTilePrimaryBtnColor","apiListingPageApiTileSecondaryBtnColor","footerLinkItems","terms","privacyPolicy","support","logoUrl","header","modifiedTheme","favicon","resp","msgs","RenderAppRoutes","ThemeProvider","maxSnack","notistackRef","preventDuplicate","onClickDismiss","htmlColor","defaultLocale","client","closeSnackbar","resourceServerURLs","endpoints","signInRedirectURL","signOutRedirectURL","clientID","serverOrigin","storage","Storage","WebWorker","checkSessionInterval","disableTrySignInSilently","ReactDOM","getElementById","serviceWorker","ready","registration","unregister","plain","types"],"mappings":"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I,EACJA,GAAa54E,OAAOimB,eAAeg4C,WAD/B,IAEPzhE,gBAAiByhF,GACjB,UAAU,2BAAV,OACKrF,SADL,IACKA,QADL,EACKA,GAAa54E,OAAOimB,eAAeg4C,UAAU,YADlD,IAEEzhE,gBAAiB0hF,OAGrBv1E,MAAM,2BAAD,OACAiwE,SADA,IACAA,QADA,EACAA,GAAa54E,OAAOimB,eAAetd,OADnC,IAEHuZ,WAAY07D,GACZ5iF,MAAO+iF,KAETv/D,SAAS,2BAAD,OACHo6D,SADG,IACHA,QADG,EACHA,GAAa54E,OAAOimB,eAAezH,UADhC,IAEN0D,WAAY47D,GACZ9iF,MAAO+iF,KAET1e,oBAAoB,2BAAD,OACduZ,SADc,IACdA,QADc,EACdA,GAAa54E,OAAOimB,eAAeo5C,qBADrB,IAEjBn9C,WAAY47D,GACZ9iF,MAAO+iF,KAET7e,oBAAoB,2BAAD,OACd0Z,SADc,IACdA,QADc,EACdA,GAAa54E,OAAOimB,eAAei5C,qBADrB,IAEjB1iE,gBAAiBmhF,KAEnBne,oBAAoB,2BAAD,OACdoZ,SADc,IACdA,QADc,EACdA,GAAa54E,OAAOimB,eAAeu5C,qBADrB,IAEjB,uBAAuB,2BAAvB,OACKoZ,SADL,IACKA,QADL,EACKA,GAAa54E,OAAOimB,eAAeu5C,oBACpC,yBAFJ,IAIE,uBAAuB,2BAAvB,OACKoZ,SADL,IACKA,QADL,EACKA,GAAa54E,OAAOimB,eAAeu5C,oBACpC,wBACA,yBAHJ,IAIExkE,MAAO+iF,WAKf99E,gBAAgB,2BAAD,OACV24E,SADU,IACVA,QADU,EACVA,GAAa54E,OAAOC,iBADV,IAEbowC,SAAS,2BAAD,OACHuoC,SADG,IACHA,QADG,EACHA,GAAa54E,OAAOC,gBAAgBowC,UADjC,IAENx2B,OAAO,2BAAD,OACD++D,SADC,IACDA,QADC,EACDA,GAAa54E,OAAOC,gBAAgBowC,SAASx2B,QAD5C,IAEJrd,gBAAiBmhF,GACjB3iF,MAAOgjF,KAET1tC,UAAU,2BAAD,OACJsoC,SADI,IACJA,QADI,EACJA,GAAa54E,OAAOC,gBAAgB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","file":"static/js/main.2a06c6f3.chunk.js","sourcesContent":["/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, {\n ClassAttributes,\n PropsWithChildren,\n TableHTMLAttributes,\n} from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport { CodeProps, ReactMarkdownProps } from 'react-markdown/lib/ast-to-react';\nimport gfm from 'remark-gfm';\nimport rehypeRaw from 'rehype-raw';\nimport clsx from 'clsx';\nimport Highlight, { defaultProps, Prism } from 'prism-react-renderer';\nimport Paper from '@material-ui/core/Paper';\nimport Typography from '@material-ui/core/Typography';\nimport Table from '@material-ui/core/Table';\nimport { TableHead, TableRow, TableCell, TableBody } from '@material-ui/core';\nimport useStyles, { BallerinaPrismTheme } from './style';\n\n(typeof global !== 'undefined' ? (global as any) : window).Prism = Prism;\nrequire('./prism-ballerina');\n\nfunction markdownTableCell(props: any) {\n return (\n \n {props && props.children}\n \n );\n}\n\nfunction markdownTableRow(props: any) {\n const { children } = props;\n return (\n \n {children.map(\n (child: any) => child.props && markdownTableCell(child.props)\n )}\n \n );\n}\n\nfunction markdownTableBody(props: any) {\n const { children } = props;\n return (\n \n {children.map(\n (child: any) => child.props && markdownTableRow(child.props)\n )}\n \n );\n}\n\nfunction markdownTableHead(props: any) {\n const { children } = props;\n return (\n \n {children.map(\n (child: any) => child.props && markdownTableRow(child.props)\n )}\n \n );\n}\n\nfunction MarkdownCode(props: PropsWithChildren) {\n const { inline, className, children } = props;\n let language: any;\n const classes = useStyles();\n // Extract langauge from className\n const match = /language-(\\w+)/.exec(className || '');\n // eslint-disable-next-line prefer-const\n language = match != null ? match[1] : 'markdown';\n // Remove the \\n at the end\n const code = String(children).replace(/\\n$/, '');\n\n return !inline ? (\n \n {/* eslint-disable-next-line @typescript-eslint/no-shadow */}\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n
\n          
\n\n {tokens.map((line, lineNumber) => {\n const { className: linePropClassName } = getLineProps({\n line,\n key: lineNumber,\n });\n\n return (\n // eslint-disable-next-line react/jsx-key\n
\n {lineNumber + 1}\n {line.map((token, key) => (\n // eslint-disable-next-line react/jsx-key\n \n ))}\n
\n );\n })}\n
\n )}\n \n ) : (\n \n );\n}\n\nfunction MarkdownTable(\n props: PropsWithChildren<\n ClassAttributes &\n TableHTMLAttributes &\n ReactMarkdownProps\n >\n) {\n const classes = useStyles();\n const { children } = props;\n const thead = children.filter((child: any) => child.type === 'thead')[0];\n const tbody = children.filter((child: any) => child.type === 'tbody')[0];\n\n return (\n \n \n {React.isValidElement(thead) && markdownTableHead(thead.props)}\n {React.isValidElement(tbody) && markdownTableBody(tbody.props)}\n
\n
\n );\n}\n\nconst renderers = {\n code: MarkdownCode,\n table: MarkdownTable,\n tableHead: markdownTableHead,\n tableBody: markdownTableBody,\n tableRow: markdownTableRow,\n tableCell: markdownTableCell,\n};\n\ninterface MarkdownProps {\n mdText: string;\n}\n\nexport default function Markdown({ mdText }: MarkdownProps) {\n return (\n \n );\n}\n","// eslint-disable-next-line no-undef\nPrism.languages.ballerina = {\n comment: /\\/\\/[^\\r\\n]*/,\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\.)*(?:\"|$)/,\n greedy: true,\n },\n boolean: /\\b(?:true|false)\\b/,\n keyword: new RegExp(\n '\\\\b(?:' +\n 'if|else|iterator|try|catch|finally|fork|join|all|some|while|foreach|in|throw|return|returns|break|let|' +\n 'timeout|transaction|aborted|abort|committed|failed|retries|onretry|onabort|oncommit|next|bind|with|' +\n 'lengthof|typeof|enum|import|version|public|private|attach|as|native|documentation|lock|record|' +\n 'from|on|select|group|by|having|order|where|followed|insert|into|update|delete|set|for|window|query|' +\n 'forever|untaint|start|await|done|check|annotation|package|type|typedesc|connector|function|resource|' +\n 'service|action|worker|struct|transformer|endpoint|object|const|true|false|reply|create|parameter|' +\n 'primarykey|scope|compensate|compensation|boolean|int|float|string|var|any|datatable|table|byte|stream|' +\n 'map|exception|json|xml|xmlns|error|__init' +\n ')\\\\b'\n ),\n operator: /(?:!|%|\\+|-|~|=|=|!|<|>|&|\\|)/,\n number: /\\b0[xX][\\da-f]+\\b|\\b\\d+\\.?\\d*/,\n};\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n process.env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { AxiosError } from 'axios';\nimport { OpenAPIObject } from 'openapi3-ts';\n\nexport interface SettingsInterface {\n enablePKCE: boolean;\n clientId: string;\n signInRedirectUrl: string;\n signOutRedirectUrl: string;\n clientHost: string;\n apimHost: string;\n apimApi: string;\n tokenExchangeUrl: string;\n apimGatewayHostSuffix: string;\n idpHost: string;\n graphqlServiceHost: string;\n graphqlResource: string;\n apiServiceHost: string;\n azureCDNOrigin: string;\n devToolEnable: boolean;\n scopes: string[];\n keyManager: string;\n devportalContext: string;\n apiServiceProxy: string;\n userInfo: string;\n userOrganizations: string;\n tokenEndpoint: string;\n revokeEndpoint: string;\n tokenValidityPeriod: number;\n defaultAppThrottlingPolicy: string;\n defaultAppTokenType: string;\n grantTypes: GrantType[];\n asgardeoGrantTypes: GrantType[];\n subscriptionThrottlingTiers: SubscriptionThrottlingTier[];\n tokenExchangeConfig: TokenExchangeConfiguration;\n enableInV2: boolean;\n choreoControlPlaneOrgHandleName: string;\n validateUserEndpoint: string;\n addEnterpriseUserEndpoint: string;\n googleFidp: string;\n githubFidp: string;\n microsoftFidp: string,\n emailFidp: string,\n enableMicrosoftLogin: boolean,\n enableEmailLogin: boolean,\n oldGoogleFidp: string;\n oldGithubFidp: string;\n enterpriseFidp: string;\n overrideEndpoints: Record;\n wellKnownEndpoint: string;\n overrideWellEndpointConfig: boolean;\n azureInsightsKey: string;\n reactAppHotjarId: string;\n reactAppHotjarVersion : string;\n choreoSystemOrg: string;\n choreoSystemHostSuffix: string;\n asgardeoConsoleUrl: string;\n selfSignupEnabledOrgs: string[];\n pdpDomainCustomizedOrgs: string[];\n devportalHost: string,\n isCustomDomain: boolean,\n customDomain: string,\n validateIDToken: boolean,\n permissionAdminPortalEnabled: boolean,\n permissionAdminPortalUrl: string,\n permissionPortalOrgIdParam: string,\n sandboxKeyGenerationEnabled: boolean,\n intelligentRoutingFeatureEnabled: boolean,\n devPortalIdPConfigurationFeatureEnabled: boolean,\n apiTryoutTestKeyEnabled: boolean,\n customSubscriptionPolicyHandlingOrg: string,\n}\n\nexport interface TokenExchangeConfiguration {\n clientId: string;\n grantType: string;\n subjectTokenType: string;\n requestedTokenType: string;\n scope: string;\n}\n\nexport interface SubscriptionThrottlingTier {\n name: string;\n description: string;\n}\n\nexport interface GrantType {\n id: number;\n type: string;\n value: string;\n}\n\nexport interface ApplicationState {\n apiCommentsReducer: ApiCommentsReducer;\n apiReducer: ApiReducer;\n applicationReducer: ApplicationReducer;\n applicationKeysReducer: ApplicationKeyReducer;\n documentsReducer: DocumentsReducer;\n ratingsReducer: RatingsReducer;\n subscriptionsReducer: SubscriptionsReducer;\n swaggerReducer: SwaggerReducer;\n userReducer: UserReducer;\n credentialsReducer: CredentialsReducer;\n sdkReducer: SdkReducer;\n notificationReducer: NotificationReducer;\n apiTagsReducer: ApiTagsReducer;\n apiCategoriesReducer: ApiCategoriesReducer;\n settingsReducer: SettingsReducer;\n idpReducer: IDPReducer;\n customDomainOrganizationMappingReducer: CustomDomainOrganizationMappingReducer;\n organizationMetadataReducer: OrganizationMetadataReducer;\n subscriptionPoliciesReducer: SubscriptionPoliciesReducer;\n graphqlReducer: GraphqlReducer;\n addExternalUserToOrgReducer: AddExternalUserToOrgReducer;\n subscribedApiScopesReducer: SubscribedApiScopesReducer;\n}\n\nexport interface PolicyList {\n count: number;\n list: SubscriptionPolicy[];\n pagination: Pagination;\n}\n\nexport interface SubscriptionPolicies {\n subscriptionPolicies: PolicyList;\n error: string;\n loading: boolean;\n success: boolean;\n}\n\nexport enum RequestTimeUnit {\n Minute = \"min\",\n Hour = \"hour\",\n Day = \"day\",\n}\n\nexport interface SubscriptionPolicy {\n name: string;\n description: string;\n displayName: string;\n requestCount: number;\n timeUnit: RequestTimeUnit;\n stopOnQuotaReach: boolean;\n rateLimitCount: number;\n rateLimitTimeUnit: RequestTimeUnit;\n attributes: {\n isApprovalRequired?: boolean\n }\n}\n\nexport interface ApiCommentsReducer {\n comments: Comments;\n error: string;\n loading: boolean;\n}\n\nexport interface CustomDomainOrganizationMappingReducer {\n customDomainOrganizationMapping: CustomDomainOrganizationMapping;\n error: string;\n loading: boolean;\n success: boolean;\n}\n\nexport interface SubscriptionPoliciesReducer {\n subscriptionPolicies: PolicyList\n error: string;\n loading: boolean;\n success: boolean;\n}\n\nexport interface OrganizationMetadataReducer {\n organizationMetadata: OrganizationMetadata;\n error: OrgMetaDataError;\n loading: boolean;\n success: boolean;\n}\n\nexport interface GraphqlReducer {\n graphqlInfo: GraphqlResponse;\n error: string;\n loading: boolean;\n}\n\nexport interface ToSubscribeAttributes {\n api?: string,\n apiId?: string,\n version?: string,\n policy?: string,\n availablePolicies?: string[],\n hasSubscribed?: boolean\n}\n\nexport interface ApiReducer {\n api: Api;\n apiList: ApiList;\n featuredApiList: ApiList;\n featuredApiListLoading: boolean;\n majorVersionApiList: ApiList;\n majorVersionApisLoading: boolean;\n apiThumbnail: Blob;\n thumbnailMap: { [key: string]: string };\n error: string;\n loading: boolean;\n apiThumbnailLoading: boolean;\n headers: ApiRequestHeader;\n}\n\nexport interface ApplicationReducer {\n applications: ApplicationList; \n isLoading: boolean;\n error: string;\n}\n\nexport interface ApplicationKeyReducer {\n currentKey: Key;\n keys: KeyList;\n error: string;\n isLoading: boolean;\n oauthToken: OauthToken;\n isTokenGenerating: boolean;\n isTokenGenerationSuccess: boolean;\n apiKey: ApiKey;\n isApikeyGenerating: boolean;\n isApikeyGenerationSuccess: boolean;\n isKeyMappingSuccess: boolean;\n isKeyMapping: boolean;\n isKeyUpdating: boolean;\n tokenScopes: string[];\n}\n\nexport interface DocumentsReducer {\n documents: Documents;\n error: string;\n loading: boolean;\n}\n\nexport interface RatingsReducer {\n ratings: ApiRatings;\n error: string;\n loading: boolean;\n}\n\nexport interface SubscriptionsReducer {\n subscriptions: SubscriptionList;\n error: string;\n isLoading: boolean;\n isDeletingSubscription: boolean;\n fetchSuccess: boolean;\n updateSuccess: boolean;\n}\n\nexport interface SwaggerReducer {\n swagger: OpenAPIObject;\n error: string;\n loading: boolean;\n}\n\nexport interface ThrottlingTierList {\n count: number;\n list: SubscriptionThrottlingTier[];\n pagination: Pagination;\n}\n\nexport interface ApplicationAttribute {\n description: string;\n required: string;\n attribute: string;\n hidden: string;\n}\n\nexport interface ApplicationAttributes {\n count: number;\n list: ApplicationAttribute[];\n}\n\nexport interface SettingsReducer {\n appAttributeList: ApplicationAttributes;\n error: string;\n loading: boolean;\n}\n\nexport interface UserReducer {\n user: User;\n userInfo: { [key: string]: string };\n orgs: Organization[];\n signedIn: boolean;\n choreoTokenObtained: boolean;\n apimTokenObtained: boolean;\n apimTokenObtaining: boolean;\n requireLogin: boolean;\n error: AxiosError | string;\n loading: boolean;\n selectedOrg: Organization;\n status: number;\n}\n\nexport interface CredentialsReducer {\n isKeyFetching: boolean;\n isKeyGenerating: boolean;\n isKeyDeleting: boolean;\n isTokenGenerating: boolean;\n keys: KeyList | null;\n oauthToken: OauthToken;\n error: string;\n}\n\nexport interface SdkReducer {\n loading: boolean;\n languages: string[];\n error: string;\n}\n\nexport interface NotificationReducer {\n type: Notificationtype;\n message: string;\n}\n\nexport interface ApiTagsReducer {\n loading: boolean;\n tagList: ApiTagList;\n error: string;\n}\n\nexport interface ApiCategoriesReducer {\n loading: boolean;\n categoryList: ApiCategoryList;\n error: string;\n}\n\nexport interface SubscribedApiScopesReducer {\n loading: boolean;\n scopes: string[];\n error: string;\n}\n\nexport enum Notificationtype {\n default = 'default',\n success = 'success',\n error = 'error',\n warning = 'warning',\n info = 'info',\n}\n\nexport interface User {\n allowedScopes: string;\n authorizationEndpoint: string;\n displayName: string;\n email: string;\n oidcSessionIframe: string;\n tenantDomain: string;\n username: string;\n}\n\nexport interface Organization {\n id: string;\n uuid: string;\n handle: string;\n name: string;\n}\n\nexport interface Comments {\n count: number;\n list: Comment[];\n pagination: null;\n}\n\nexport interface Comment {\n id: string;\n content: string;\n createdTime: string;\n createdBy: string;\n updatedTime: string;\n}\n\nexport interface CreateComment {\n content: string;\n}\n\nexport interface Tier {\n tierName: string;\n tierPlan: string;\n monetizationAttributes: string;\n}\n\nexport interface URLs {\n http: string;\n https: string;\n ws: string;\n wss: string;\n}\n\nexport interface EndpointURL {\n environmentName: string;\n environmentType: string;\n environmentDisplayName: string;\n choreoEnvironmentName: string;\n accessibilityType: string;\n isSandboxEndpoint: boolean;\n isCritical: boolean;\n isSandbox: boolean;\n URLs: URLs;\n defaultVersionURLs: URLs;\n}\n\nexport interface BusinessInformation {\n businessOwner: string;\n businessOwnerEmail: string;\n technicalOwner: string;\n technicalOwnerEmail: string;\n}\n\nexport interface AdvertiseInfo {\n advertised: boolean;\n originalStoreUrl: string;\n apiOwner: string;\n apiExternalProductionEndpoint?: string;\n apiExternalSandboxEndpoint?: string;\n}\n\nexport interface ApiScope {\n key: string;\n name: string;\n roles: string[];\n description: string;\n}\n\nexport interface AdditionalProperty {\n name: string;\n value: string;\n display: string;\n}\n\nexport interface Api {\n id: string;\n name: string;\n displayName: string;\n description: string;\n context: string;\n version: string;\n provider: string;\n apiDefinition: string;\n wsdlUri: string;\n lifeCycleStatus: string;\n isDefaultVersion: boolean;\n type: string;\n transport: string[];\n operations: string[];\n authorizationHeader: string;\n securityScheme: string[];\n tags: string[];\n tiers: Tier[];\n hasThumbnail: boolean;\n thumbnailUri: string;\n additionalProperties: Array;\n monetization: Record;\n ingressURLs: string[];\n endpointURLs: EndpointURL[];\n businessInformation: BusinessInformation;\n labels: string[];\n environmentList: string[];\n scopes: ApiScope[];\n avgRating: string;\n advertiseInfo: AdvertiseInfo;\n isSubscriptionAvailable: boolean;\n categories: string[];\n keyManagers: string[];\n throttlingPolicies?: string[];\n versionInfo?: VersionInfo;\n}\n\nexport interface VersionInfo {\n version: string;\n majorRange: MajorRangeVersionInfo;\n majorVersionEndpointUrls: EndpointURL[];\n}\n\nexport interface MajorRangeVersionInfo {\n isLatest: boolean;\n latestVersion: string;\n latestVersionAPIId: string;\n}\n\nexport interface ApiList {\n count: number;\n list: Api[];\n pagination: Pagination;\n}\n\nexport interface ApiTag {\n value: string;\n count: number;\n}\n\nexport interface ApiTagList {\n count: number;\n list: ApiTag[];\n pagination: Pagination;\n}\n\nexport interface ApiCategory {\n id: string;\n name: string;\n description: string;\n}\n\nexport interface ApiCategoryList {\n count: number;\n list: ApiCategory[];\n}\n\nexport interface TablePaginationActionsProps {\n count: number;\n page: number;\n rowsPerPage: number;\n onChangePage: (\n event: React.MouseEvent,\n newPage: number\n ) => void;\n}\n\nexport enum StorageOperations {\n ADD = 'ADD',\n GET = 'GET',\n REMOVE = 'REMOVE',\n}\n\nexport interface Pagination {\n offset: number;\n limit: number;\n total: number;\n next: string;\n previous: string;\n}\n\nexport interface ApiRating {\n ratingId: string;\n apiId: string;\n ratedBy: string;\n rating: number;\n}\n\nexport interface ApiRatings {\n avgRating: string;\n userRating: number;\n count: number;\n list: ApiRating[];\n pagination: Pagination;\n}\n\nexport interface Document {\n documentId: string;\n name: string;\n type: string;\n summary: string;\n sourceType: string;\n sourceUrl: string;\n otherTypeName: string;\n}\n\nexport interface Documents {\n count: number;\n list: Document[];\n pagination: Pagination;\n}\n\nexport interface ApiList {\n count: number;\n list: Api[];\n pagination: Pagination;\n}\n\nexport interface ApiRequestHeader {\n headerName: string;\n headerValue: string;\n}\n\nexport enum KeyType {\n PRODUCTION = 'PRODUCTION',\n SANDBOX = 'SANDBOX',\n}\n\nexport enum TestKeyType {\n PRODUCTION = 'PRODUCTION',\n DEVELOPMENT = 'DEVELOPMENT',\n}\n\nexport interface Subscription {\n subscriptionId: string;\n applicationId: string;\n apiId: string;\n apiInfo?: SubscriptionApiInfo;\n applicationInfo?: Application;\n throttlingPolicy: string;\n requestedThrottlingPolicy: string;\n status: string;\n redirectionParams?: string;\n versionRange?: string;\n createdTime?: string;\n}\ntype Status = {\n ingress: string;\n};\n\nexport interface CustomDomainListItem {\n urls: string[];\n environment: string;\n environmentDisplayName: string;\n}\n\nexport interface CustomDomainOrganizationMapping {\n domain_name: string;\n organization: CustomDomainOrgInfo;\n}\n\nexport interface OrganizationMetadata {\n handle: string;\n uuid: string;\n}\n\nexport interface OrgMetaDataError {\n message?: string;\n}\n\nexport interface CustomDomainOrgInfo {\n handle: string;\n}\n\nexport interface GraphqlResponse {\n environments: Environment[];\n}\n\nexport interface Environment {\n organizationUuid: string;\n orgShared: boolean;\n name: string;\n externalApiEnvName: string;\n internalApiEnvName?: string;\n sandboxApiEnvName?: string;\n description: string;\n id: string;\n vhost: string;\n choreoEnv: string;\n projectId: string;\n promoteFrom: string[];\n namespace: string;\n}\n\nexport interface Comments {\n count: number;\n list: Comment[];\n pagination: null;\n}\n\nexport interface SubscriptionApiInfo {\n id: string;\n name: string;\n displayName: string;\n description: string;\n context: string;\n version: string;\n provider: string;\n lifeCycleStatus: string;\n thumbnailUri: string;\n avgRating: string;\n throttlingPolicies: string[];\n advertiseInfo: AdvertiseInfo;\n businessInformation: BusinessInformation;\n isSubscriptionAvailable: boolean;\n monetizationLabel: string;\n versionInfo?: VersionInfo;\n}\n\nexport interface SubscriptionList {\n count: number;\n list: Subscription[];\n pagination: Pagination | null;\n}\n\nexport interface ApplicationOwnerInformation {\n id: string;\n displayName: string;\n email: string;\n}\n\nexport interface Application {\n applicationId?: string;\n name: string;\n throttlingPolicy: string;\n description?: string;\n tokenType?: string;\n status?: string;\n groups?: string[];\n subscriptionCount?: number;\n keys?: Key[];\n attributes?: Record;\n subscriptionScopes?: SubscriptionScope[];\n owner?: string;\n ownerInfo?: ApplicationOwnerInformation;\n hashEnabled?: boolean;\n createdTime: string;\n sharedWith?: UserPermission[];\n sharedPermissions?: string[];\n}\n\nexport interface SubscriptionScope {\n key: string;\n name: string;\n roles: string[];\n description?: string;\n}\n\nexport interface ApplicationList {\n count: number;\n list: Application[];\n pagination: Pagination;\n}\n\nexport interface Key {\n keyMappingId: string;\n keyManager: string;\n consumerKey: string;\n consumerSecret: string;\n supportedGrantTypes: string[];\n callbackUrl: string;\n keyState: string;\n keyType: KeyType;\n groupId: number;\n token: Token;\n additionalProperties?: Record;\n mode?: string;\n}\n\nexport interface KeyList {\n count: number;\n list: Key[];\n}\n\nexport interface Token {\n accessToken: string;\n tokenScopes: string[];\n validityTime: number;\n}\n\nexport interface ApiKeyAdditionalProperties {\n permittedIp: string;\n permittedReferer: string;\n}\n\nexport interface OauthToken {\n accessToken: string;\n tokenScopes: string[];\n validityTime: number;\n}\n\nexport interface ApiKey {\n apikey: string;\n validityTime: number;\n}\n\nexport interface ApplicationKeyMap {\n consumerKey: string;\n keyType: string;\n keyManager: string;\n}\n\nexport interface IDP {\n id: string;\n name: string;\n type: string;\n tokenEndpoint: string;\n revokeEndpoint: string;\n authorizeEndpoint?: string;\n alias: string;\n enabled: boolean;\n tokenType?: string;\n}\n\nexport interface IDPs {\n count: number;\n list: IDP[];\n}\n\nexport interface IDPReducer {\n idps: IDPs;\n isLoading: boolean;\n error: string;\n}\n\nexport interface AddExternalUserToOrgReducer {\n loading: boolean;\n error: string;\n}\nexport interface EndpointInfo {\n url: string;\n environment: string;\n environmentDisplayName: string;\n choreoEnvironmentName: string;\n accessibilityType: string;\n isSandboxEndpoint: boolean;\n isCritical: boolean;\n isSandbox: boolean\n}\n\nexport interface ChoreoUserInfo {\n createdAt: string;\n displayName: string;\n email: string;\n id: string;\n idpId: string;\n pictureUrl: string;\n}\n\nexport interface ApplicationKeyMapping {\n consumerKey: string;\n keyType: string;\n keyManager: string;\n}\n\nexport enum IdpRegisterType {\n EXTERNAL = 'EXTERNAL',\n INTERNAL = 'INTERNAL',\n EXCHANGE = 'EXCHANGE',\n}\n\nexport interface UserPermission {\n userEmail: string;\n permissions?: string[];\n}\n\nexport interface ApplicationShare {\n applicationId: string;\n userPermissions: UserPermission[];\n}\n\nexport enum DevPortalAppEnv {\n PROD = 'prod',\n SANDBOX = 'sandbox',\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\n// REST resourses\nexport const RESOURCE_VERSION_V2 = \"/v2\";\nexport const RESOURCE_LOGIN = \"/login\";\nexport const RESOURCE_API = \"/apis\";\nexport const RESOURCE_ORGANIZATION = \"/orgs\";\nexport const RESOURCE_METADATA = \"/orgs/1.0.0/orgs-metadata\";\nexport const RESOURCE_DOMAIN = \"/domains\"; // @TODO: Remove this later once fully moved to v2\nexport const RESOURCE_CUSTOM_DOMAIN = \"/customdomains\";\nexport const RESOURCE_OVERVIEW = \"/overview\";\nexport const RESOURCE_API_COMMENTS = \"/comments\";\nexport const RESOURCE_API_TRYOUT = \"/tryout\";\nexport const RESOURCE_API_CREDENTIALS = \"/credentials\";\nexport const RESOURCE_API_RATINGS = \"/ratings\";\nexport const RESOURCE_USER_RATING = \"/user-rating\";\nexport const RESOURCE_API_DOCUMENTS = \"/documents\";\nexport const RESOURCE_API_DOCUMENT_CONTENT = \"/DOCUMENT_ID/content\";\nexport const RESOURCE_SIGN_IN = \"/sign-in\";\nexport const RESOURCE_APP_KEYS = \"/oauth-keys\";\nexport const RESOURCE_GENERATE_APP_KEYS = \"/generate-keys\";\nexport const RESOURCE_GENERATE_TEST_KEY = \"/generate-key\";\nexport const RESOURCE_GENERATE_TOKEN = \"/KEY_MAPPING_ID/generate-token\";\nexport const RESOURCE_CLEAN_UP_APP_KEYS = \"/KEY_MAPPING_ID/clean-up\";\nexport const RESOURCE_SWAGGER = \"/swagger\";\nexport const RESOURCE_ASYNCAPI = \"/asyncapi\";\nexport const RESOURCE_THUMBNAIL = \"/thumbnail\";\nexport const RESOURCE_GENERATE_SDK = \"/sdks/LANGUAGE\";\nexport const RESOURCE_LANGUAGE_SDK = \"/sdk-gen/languages\";\nexport const RESOURCE_APPLICATIONS = \"/applications\";\nexport const RESOURCE_TAGS = \"/tags\";\nexport const RESOURCE_CATEGORIES = \"/api-categories\";\nexport const RESOURCE_SUBSCRIPTIONS = \"/subscriptions\";\nexport const RESOURCE_API_KEY = \"/api-keys\";\nexport const RESOURCE_GENERATE = \"/generate\";\nexport const RESOURCE_THROTTLING_POLICIES = \"/throttling-policies\";\nexport const RESOURCE_INTERNAL_ERROR = \"/internal-error\";\nexport const RESOURCE_CLIENT_ERROR = \"/client-error\";\nexport const RESOURCE_TOKEN = \"/token\";\nexport const RESOURCE_AUTHORIZE = \"/authorize\";\nexport const RESOURCE_REVOKE = \"/revoke\";\nexport const RESOURCE_OAUTH2 = \"/oauth2\";\nexport const AUTHORIZATION_ERROR = \"/unauthorized/\";\nexport const RESOURCE_IDPS = \"/key-managers\";\nexport const MAP_APPLICATION_KEYS = \"/map-keys\";\nexport const RESOURCE_CUSTOM_DOMAIN_MAPPINGS = \"/mappings\";\nexport const PATH_DEVPORTAL = \"/devportal\";\nexport const RESOURCE_SHARE_APPLICATION = \"/share\";\n\n// HTTP Codes\nexport const RESOURCE_NOT_FOUND = 404;\nexport const BAD_REQUEST = 400;\n\n// HTTP Protocols\nexport const PROTOCOL_HTTPS = \"https://\";\nexport const PROTOCOL_WSS = \"wss://\";\n\n// API types\nexport const API_TYPE_HTTP = \"HTTP\";\nexport const API_TYPE_GRAPHQL = \"GraphQL\";\nexport const API_TYPE_WS = \"WS\";\n\n// User claims\nexport const CLAIMS_USERNAME = \"username\";\nexport const CLAIMS_FULL_NAME = \"name\";\nexport const CLAIMS_EMAIL = \"email\";\nexport const CLAIMS_GOOGLE_PIC = \"google_pic_url\";\nexport const CLAIMS_GITHUB_PIC = \"github-pic-url\";\nexport const CLAIMS_PHOTO_URL = \"photourl\";\nexport const CLAIMS_AVATAR_URL = \"avatar_url\";\nexport const CLAIMS_PICTURE = \"picture\";\n\n// Application grant types\nexport const AUTHORIZATION_CODE_GRANT_TYPE = 'authorization_code';\nexport const CLIENT_CREDENTIALS_GRANT_TYPE = 'client_credentials';\nexport const IMPLICIT_GRANT_TYPE = 'implicit';\n\n// Subscription throttling policy\nexport const SUBSCRIPTION_THROTTLING_POLICY_UNLIMITED = \"Unlimited\";\n\n// Other constants\nexport const RETURN_TO_PATH = \"RETURN_TO_PATH\";\nexport const CREATED_BY_USER = \"CREATED_BY_USER\";\nexport const SELECTED_ORG_UUID = \"SELECTED_ORG_UUID\";\nexport const CORRELATION_ID = \"CORRELATION_ID\";\nexport const SELECTED_ORG_HANDLE_NAME = \"SELECTED_ORG_HANDLE_NAME\";\nexport const FORBIDDEN_SELECTED_ORG_HANDLE_NAME = \"FORBIDDEN_SELECTED_ORG_HANDLE_NAME\";\nexport const FIDP = \"FIDP\";\nexport const GOOGLE_IDP = \"google\";\nexport const GITHUB_IDP = \"github\";\nexport const DEFAULT_APP_INTERNAL_PREFIX = \"_internal_\";\nexport const DEFAULT_ASGARDEO_KEY_MANAGER_PREFIX = \"_internal_key_manager_\";\nexport const APPDEV_STS_KEY_MANAGER_TYPE = \"ChoreoAppDevSTS\";\nexport const ASGARDEO_KEY_MANAGER_TYPE = \"Asgardeo\";\nexport const AZURE_KEY_MANAGER_TYPE = \"Microsoft\";\nexport const RESIDENT_KEY_MANAGER_NAME = \"Resident Key Manager\";\nexport const ORG_ID = \"ORG_ID\";\nexport const ORG_QUERY_PARAM = \"orgUuid\";\nexport const CORRELATION_ID_QUERY_PARAM = \"correlationId\";\nexport const DEFAULT_API_GATEWAY_SUFFIX = \".dv.choreoapis.dev\";\nexport const CP_GATEWAY_ENV_HOST = \".preview-dv.choreo.dev\";\nexport const CONTROL_PLANE_ORG = \"Choreo Control Plane\";\nexport const MAX_APPLICATION_NAME_LENGTH = 70;\nexport const MAX_APPLICATION_DESCRIPTION_LENGTH = 512;\nexport const MAX_DESCRIPTION_LENGTH = 200;\nexport const PATH_SEPARATOR = \"/\";\nexport const DASH_SEPARATOR = \"-\";\nexport const MAX_RETRY_COUNT = 3;\nexport const HOME_PAGE_API_QUERY = \"/apis?query=api-category:featured\";\nexport const API_TAGS_QUERY = \"/apis?query=tags:\";\nexport const API_CATEGORY_QUERY = \"/apis?query=api-category:\";\nexport const API_DISPLAY_NAME_QUERY = \"/apis?query=display-name:\";\nexport const API_GENERAL_QUERY = \"/apis?query=\";\nexport const RGB_ALPHA = \"ALPHA\";\nexport const DEFAULT_RGB_ALPHA = \"0.15\";\nexport const DEFAULT_API_TAGS_COLOR = \"rgba(166, 179, 255, ALPHA)\";\nexport const SUBSCRIPTION_POLICY_TYPE = \"subscription\";\nexport const ALL = \"*\";\nexport const ENVIRONMENTS = {\n PRODUCTION: \"PRODUCTION\",\n SANDBOX: \"SANDBOX\",\n};\nexport const MAX_COMMENT_LENGTH = 450;\nexport const KEY_ENTER = \"Enter\";\nexport const VALUE_ZERO = 0;\nexport const VALUE_ONE = 1;\nexport const API_COUNT_PER_PAGE = 5;\nexport const API_PAGINATION_QUERY =\n \"/apis?limit={LIMIT}&&offset={OFFSET}&query=\";\nexport const NOT_FOUND_ERROR = 'not-found-error';\nexport const HTTP_METHODS = {\n GET: \"get\",\n PUT: \"put\",\n POST: \"post\",\n DELETE: \"delete\",\n PATCH: \"patch\",\n HEAD: \"head\",\n OPTIONS: \"options\",\n};\nexport const WS_METHODS = {\n PUBLISH: \"pub\",\n SUBSCRIBE: \"sub\",\n};\nexport const ORG_NOT_AVAILABLE = 'org-not-available';\nexport const CONTENT_TYPE = \"Content-Type\";\nexport const APPLICATION_JSON = \"application/json\";\nexport const LOGIN_REQUIRED = \"login_required\";\n\n// Access control scopes\nexport const PRODUCTION_KEY_MANAGE_SCOPE = \"apim:prod_key_manage\";\nexport const SANDBOX_KEY_MANAGE_SCOPE = \"apim:sand_key_manage\";\nexport const SUBSCRIBE_SCOPE = \"apim:subscribe\";\n\nexport const DOC_HOME_URL = 'https://wso2.com/choreo/docs/';\n// Application Key Documentation Links\nexport const AZURE_CLIENT_ID_DOC_URL = `${DOC_HOME_URL}authentication-and-authorization/secure-api-access-with-azure-ad/#step-4-create-an-application-in-choreo-and-enable-external-idp-authentication`;\nexport const ASGARDEO_CLIENT_ID_DOC_URL = `${DOC_HOME_URL}authentication-and-authorization/secure-api-access-with-asgardeo/#step-3-create-an-application-in-choreo-and-enable-external-idp-authentication`;\n\nexport const MAJOR_VERSION = \"majorVersion\";\n\nexport const DEVELOPMENT = \"Development\";\nexport const PRODUCTION = \"Production\";\nexport const INTERNAL = \"internal\";\n\nexport const QUERY_PARAM_VALUE_OWNER_INFO = \"ownerInfo\";\n\nexport const APPROVAL_STATUS_APPROVED = \"APPROVAL_STATUS_APPROVED\";\nexport const USER_NOT_FOUND = \"USER_NOT_FOUND\";\n\nexport const APPROVAL_STATUS_APPROVED_CODE = 1023;\nexport const USER_NOT_FOUND_CODE = 1020;\n\nexport const ADMIN_SCOPE = \"apim:admin\"\nexport const DEFAULT_APPLICATION_LIMIT = 150;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\n\nimport { Skeleton, SkeletonProps } from '@material-ui/lab';\n\nimport Settings from '../conf/settings';\nimport {\n Api,\n ApiRatings,\n Comments,\n Document,\n Documents,\n EndpointInfo,\n EndpointURL,\n GraphqlResponse,\n Key,\n KeyList,\n SettingsInterface,\n StorageOperations,\n SubscriptionList,\n User,\n} from '../data/interfaces';\nimport * as Constants from '../data/constants';\nimport { ADMIN_SCOPE, PATH_SEPARATOR, PRODUCTION_KEY_MANAGE_SCOPE, SANDBOX_KEY_MANAGE_SCOPE, SUBSCRIBE_SCOPE } from '../data/constants';\n\nexport const isValidData = (\n data:\n | Api\n | Documents\n | Comments\n | ApiRatings\n | SubscriptionList\n | User\n | Document\n | { [key: string]: string }\n):\n | Api\n | Documents\n | Comments\n | ApiRatings\n | SubscriptionList\n | User\n | Document\n | { [key: string]: string }\n | null => {\n if (data && Object.keys(data).length !== 0) {\n return data;\n } else {\n return null;\n }\n};\n\nexport const renderSkeleton = (\n type: 'text' | 'rect' | 'circle' = 'rect',\n width: number | string = '100%',\n height: number | string = '100%',\n skeletonProps?: SkeletonProps,\n) => {\n return ;\n};\n\nexport const getApiTagsEndpoint = (): string => {\n const apimHostname = Settings.apimApi;\n const tagResource = Settings.devportalContext + Constants.RESOURCE_TAGS;\n\n return new URL(tagResource, apimHostname).toString();\n};\n\nexport const getApiCategoryEndpoint = (): string => {\n const apimHostname = Settings.apimApi;\n const tagResource = Settings.devportalContext + Constants.RESOURCE_CATEGORIES;\n\n return new URL(tagResource, apimHostname).toString();\n};\n\nexport const getApiListEndpoint = (pagination?: string): string => {\n const apimHostname = Settings.apimApi;\n const apiResource = pagination\n ? Settings.devportalContext + pagination\n : Settings.devportalContext + Constants.RESOURCE_API;\n\n return new URL(apiResource, apimHostname).toString();\n};\n\nexport const getCustomDomainOrgHandleMappingEndpoint = (): string => {\n const apiServiceHost = Settings.apiServiceHost;\n const customDomainOrgHandleMappingResource =\n Constants.RESOURCE_CUSTOM_DOMAIN +\n Constants.PATH_DEVPORTAL +\n Constants.RESOURCE_CUSTOM_DOMAIN_MAPPINGS;\n\n return new URL(customDomainOrgHandleMappingResource, apiServiceHost).toString();\n};\n\nexport const getOrganizationMetadataEndpoint = (): string => {\n const apiServiceHost = Settings.apiServiceHost;\n const organizationMetadataResource = Constants.RESOURCE_METADATA;\n\n return new URL(organizationMetadataResource, apiServiceHost).toString();\n};\n\nexport const getApiResourceEndpoint = (\n apiId: string,\n resource = ''\n): string => {\n const apimHostname = Settings.apimApi;\n const apiResource =\n Settings.devportalContext +\n Constants.RESOURCE_API +\n Constants.PATH_SEPARATOR +\n apiId +\n resource;\n\n return new URL(apiResource, apimHostname).toString();\n};\n\nexport const getSubscriptionResourceEndpoint = (\n subscriptionId = '',\n resource = ''\n): string => {\n const apimHostname = Settings.apimApi;\n const subscriptionResource =\n Settings.devportalContext +\n Constants.RESOURCE_SUBSCRIPTIONS +\n Constants.PATH_SEPARATOR +\n subscriptionId +\n resource;\n\n return new URL(subscriptionResource, apimHostname).toString();\n};\n\nexport const getApplicationEndpoint = (appId = '', resource = ''): string => {\n const apimHostname = Settings.apimApi;\n const appResource =\n Settings.devportalContext +\n Constants.RESOURCE_APPLICATIONS +\n Constants.PATH_SEPARATOR +\n appId +\n resource;\n\n return new URL(appResource, apimHostname).toString();\n};\n\nexport const getApplicationShareEndpoint = (appId = '', resource = ''): string => {\n const apimHostname = Settings.apimApi;\n const appResource =\n Settings.devportalContext +\n Constants.RESOURCE_APPLICATIONS +\n Constants.PATH_SEPARATOR +\n appId +\n resource;\n\n return new URL(appResource, apimHostname).toString();\n};\n\nexport const getApiKeyGenerationEndpoint = (\n appId: string,\n environment: string\n): string => {\n const apimHostname = Settings.apimApi;\n const appResource =\n Settings.devportalContext +\n Constants.RESOURCE_APPLICATIONS +\n Constants.PATH_SEPARATOR +\n appId +\n Constants.RESOURCE_API_KEY +\n Constants.PATH_SEPARATOR +\n environment +\n Constants.RESOURCE_GENERATE;\n return new URL(appResource, apimHostname).toString();\n};\n\nexport const getApiTestKeyGenerationEndpoint = (\n apiId: string,\n): string => {\n const apimHostname = Settings.apimApi;\n const appResource =\n Settings.devportalContext +\n Constants.RESOURCE_API +\n Constants.PATH_SEPARATOR +\n apiId +\n Constants.RESOURCE_GENERATE_TEST_KEY\n return new URL(appResource, apimHostname).toString();\n}\n\nexport const getSdkResourceEndpoint = (): string => {\n const apimHostname = Settings.apimApi;\n const appResource =\n Settings.devportalContext + Constants.RESOURCE_LANGUAGE_SDK;\n\n return new URL(appResource, apimHostname).toString();\n};\n\nexport const getSubscriptionThrottlingPoliciesEndpoint = (): string => {\n const apimHostname = Settings.apimApi;\n const throttlingPolicyResource =\n Settings.devportalContext +\n Constants.RESOURCE_THROTTLING_POLICIES +\n Constants.PATH_SEPARATOR +\n Constants.SUBSCRIPTION_POLICY_TYPE;\n return new URL(throttlingPolicyResource, apimHostname).toString();\n};\n\nexport const getThrottlingPolicyEndpoint = (\n policyLevel = '',\n policyName = ''\n): string => {\n const apimHostname = Settings.apimApi;\n const throttlingPolicyResource =\n Settings.devportalContext +\n Constants.RESOURCE_THROTTLING_POLICIES +\n Constants.PATH_SEPARATOR +\n policyLevel +\n Constants.PATH_SEPARATOR +\n policyName;\n return new URL(throttlingPolicyResource, apimHostname).toString();\n};\n\nexport const getClientHost = (): string => {\n const clientHost = Settings.clientHost;\n\n return new URL(clientHost).toString();\n};\n\n/*\n * Returns a settings object after overriding the default settings by the config settings\n * @param windowSettings Settings object from devportal.config.js\n * @param defaultSettings Settings object from settings.ts\n * @return SettingsInterface\n */\nexport const getApplicationSettings = (\n windowSettings: SettingsInterface,\n defaultSettings: SettingsInterface\n): SettingsInterface => {\n const applicationSettingsMap: Record = {};\n const windowSettingsMap: Record = {};\n\n // Converts the windowSettings object to a map\n for (const [key, value] of Object.entries(windowSettings)) {\n windowSettingsMap[key] = value;\n }\n\n // Overrides the default settings by devportal.config.js\n for (const [key, value] of Object.entries(defaultSettings)) {\n if (key in windowSettingsMap) {\n applicationSettingsMap[key] = windowSettingsMap[key];\n } else {\n applicationSettingsMap[key] = value;\n }\n }\n return JSON.parse(JSON.stringify(applicationSettingsMap));\n}\n\nexport const sessionStoreOperation = (\n operation: StorageOperations,\n key: string,\n value = ''\n) => {\n switch (operation) {\n case StorageOperations.ADD:\n sessionStorage.setItem(key, value);\n break;\n case StorageOperations.REMOVE:\n sessionStorage.removeItem(key);\n break;\n case StorageOperations.GET:\n return sessionStorage.getItem(key);\n }\n};\n\nexport const localStoreOperation = (\n operation: StorageOperations,\n key: string,\n value = ''\n) => {\n switch (operation) {\n case StorageOperations.ADD:\n localStorage.setItem(key, value);\n break;\n case StorageOperations.REMOVE:\n localStorage.removeItem(key);\n break;\n case StorageOperations.GET:\n return localStorage.getItem(key);\n }\n};\n\nexport function groupObjectsByKey(objectArray: Document[], property: string) {\n return objectArray.reduce((accumulator: any, object: any) => {\n const key: string = object[property];\n if (!accumulator[key]) {\n accumulator[key] = [];\n }\n // Add object to list for given key's value\n accumulator[key].push(object);\n return accumulator;\n }, {});\n}\n\nexport const getUserInfoEndpoint = (): string => {\n const apimHostname = Settings.idpHost;\n const userInfoResource = Settings.userInfo;\n\n return new URL(userInfoResource, apimHostname).toString();\n};\n\nexport const getGraphqlEndpoint = (): string => {\n const graphqlHostname = Settings.graphqlServiceHost;\n const graphResource = Settings.graphqlResource;\n\n return new URL(graphResource, graphqlHostname).toString();\n};\n\nexport const getAzureCDNEndpoint = (organization: string ): string => {\n const azureCDNHostname = Settings.azureCDNOrigin;\n return new URL(`${organization}/default.json`, azureCDNHostname).toString();\n};\n\nexport const getUserValidationEndpoint = (): string => {\n const apiServiceHost = Settings.apiServiceHost;\n const userOrgsResource = Settings.validateUserEndpoint;\n\n return new URL(userOrgsResource, apiServiceHost).toString();\n};\n\nexport const getAddEnterpriseUserEndpoint = (): string => {\n const apiServiceHost = Settings.apiServiceHost;\n const userOrgsResource = Settings.addEnterpriseUserEndpoint;\n\n return new URL(userOrgsResource, apiServiceHost).toString();\n};\n\nexport const getGetInvitationEndpoint = (\n confirmationOrg: string,\n confirmationKey: string\n): string => {\n const apiServiceHost = Settings.apiServiceHost;\n\n return new URL(\n `/user-mgt/1.0.0/orgs/${confirmationOrg}/v2/invitations/${confirmationKey}`,\n apiServiceHost\n ).toString();\n};\n\nexport const getAcceptInvitationEndpoint = (\n confirmationOrg: string,\n confirmationKey: string\n): string => {\n const apiServiceHost = Settings.apiServiceHost;\n\n return new URL(\n `/user-mgt/1.0.0/orgs/${confirmationOrg}/v2/invitations/${confirmationKey}`,\n apiServiceHost\n ).toString();\n};\n\nexport const getFormatteddDateTime = (stringDate: string) => {\n // stringDate format 'YYYY-MM-DD HH:MM:SS.MS'\n if (stringDate) {\n const utcDate = stringDate + 'Z'; // Z for UTC timezone offset\n const date = new Date(utcDate);\n const formattedDate = date.toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n const formattedTime = date.toLocaleTimeString('en-US', {\n hour: 'numeric',\n minute: 'numeric',\n hour12: true,\n });\n return formattedDate + ' ' + formattedTime;\n }\n return stringDate;\n};\n\nexport const getTimeDurationForDate = (stringDate: string) => {\n // stringDate format 'YYYY-MM-DD HH:MM:SS.MS'\n // This method is written with the assumption that the time zone of 'stringDate' param passed in, is in UTC.\n // Otherwise, proper timezone correction should be made to the passed in date\n // Eg: If 'stringDate' is in Pacific Time, then Pacific Time = GMT-08:00\n // stringDate = stringDate + \"-08:00\"\n if (stringDate) {\n const utcDate = stringDate + 'Z'; // Z for UTC timezone offset\n let dateTimeDifference: number =\n new Date().getTime() - new Date(utcDate).getTime();\n if (dateTimeDifference < 0) {\n dateTimeDifference = 0;\n }\n // (1000 * 60 * 60 * 24) => (Miliseconds * Seconds * Minutes * Hours)\n const numOfDays = Math.round(dateTimeDifference / (1000 * 60 * 60 * 24));\n if (numOfDays > 0) {\n return stringDate.substring(0, stringDate.indexOf('.'));\n }\n const numOfHours = Math.round(dateTimeDifference / (1000 * 60 * 60));\n if (numOfHours > 0) {\n return numOfHours === 1 ? '1 hour ago' : numOfHours + ' hours ago';\n }\n const numOfMinutes = Math.round(dateTimeDifference / (1000 * 60));\n if (numOfMinutes > 0) {\n return numOfMinutes === 1\n ? '1 minute ago'\n : numOfMinutes + ' minutes ago';\n }\n const numOfSeconds = Math.round(dateTimeDifference / 1000);\n return numOfSeconds === 1 ? '1 second ago' : numOfSeconds + ' seconds ago';\n } else {\n return 'Invalid date';\n }\n};\n\nexport const getApiGatewayUrl = (apiContext: string, organization: string) => {\n const contextArray = apiContext.split(Constants.PATH_SEPARATOR);\n const apimGatewayHostSuffix =\n Settings.apimGatewayHostSuffix || Constants.DEFAULT_API_GATEWAY_SUFFIX;\n const host =\n organization === Constants.CONTROL_PLANE_ORG\n ? Constants.CP_GATEWAY_ENV_HOST\n : apimGatewayHostSuffix;\n\n return (\n Constants.PROTOCOL_HTTPS +\n contextArray[1] +\n host +\n Constants.PATH_SEPARATOR +\n contextArray.slice(2).join(Constants.PATH_SEPARATOR)\n );\n};\n\nexport function isCustomSubPoliciesEnabled(userOrgId: string): boolean {\n const orgEnvString = Settings.customSubscriptionPolicyHandlingOrg;\n if (orgEnvString === undefined) {\n return false;\n }\n const orgList = orgEnvString.split(\",\");\n return orgList.includes(userOrgId) || orgList.includes(Constants.ALL);\n}\n\nexport const getAllApiGatewayUrls = (\n endpointUrls: EndpointURL[],\n graphqlInfo: GraphqlResponse,\n isLatestVersion: boolean,\n version: string,\n isPublicView: boolean,\n selectedOrg?: any\n): EndpointInfo[] => {\n const graphqlEnvArray = graphqlInfo?.environments;\n const isPdpDomainCustomizedOrg = Settings.pdpDomainCustomizedOrgs.includes(selectedOrg?.uuid);\n\n if (isPublicView) {\n const endpointInfo = endpointUrls?.filter((endpointEnv) => {\n return (endpointEnv.environmentName === 'production-us-east-azure' ||\n endpointEnv.environmentName === 'production-eu-north-azure' ||\n (endpointEnv.environmentName === 'prod' && // temporary fix for env named 'prod' for WDT\n (endpointEnv?.URLs?.http.startsWith('http://apis.wso2.com/') || \n endpointEnv?.URLs?.https.startsWith('https://apis.wso2.com/'))));\n })?.map((endpoint) => {\n if (endpoint?.URLs.https || endpoint?.URLs.wss) {\n let protocol = Constants.PROTOCOL_HTTPS;\n let tmpUrl = \"\";\n if (endpoint?.URLs.https) {\n tmpUrl = endpoint.URLs.https.replace(\n Constants.PROTOCOL_HTTPS,\n ''\n );\n }\n if (endpoint?.URLs.wss) {\n tmpUrl = endpoint.URLs.wss.replace(\n Constants.PROTOCOL_WSS,\n ''\n );\n protocol = Constants.PROTOCOL_WSS;\n }\n // for dynamically created environments, the orgUUID is already included in urlParts[0].\n const ORG_UUID_WITH_DOMAIN_REGEX =\n /^([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})(-).*$/;\n\n if (\n !isPdpDomainCustomizedOrg &&\n selectedOrg?.handle !== Settings.choreoSystemOrg\n ) {\n // for custom urls and urls with custom domains\n if (\n !ORG_UUID_WITH_DOMAIN_REGEX.test(\n tmpUrl.trim().split(Constants.PATH_SEPARATOR)[0]\n ) &&\n endpoint.environmentDisplayName !== \"Sandbox\"\n ) {\n return {\n url: `${protocol}${tmpUrl}`,\n environment: endpoint?.environmentName,\n environmentDisplayName: getEnvironmentEndpointDisplayName(\n endpoint?.environmentDisplayName\n ),\n choreoEnvironmentName: endpoint?.choreoEnvironmentName,\n accessibilityType: endpoint?.accessibilityType,\n isSandboxEndpoint: endpoint?.isSandboxEndpoint,\n isCritical: endpoint?.isCritical,\n isSandbox: endpoint?.isSandbox,\n } as EndpointInfo;\n }\n }\n\n const urlParts = tmpUrl.trim().split(Constants.PATH_SEPARATOR);\n\n let hostSuffix = `${urlParts[1]}-${urlParts[0]}`;\n const ORGANIZATION_UUID_REGEX=\n /^([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})$/;\n if (ORG_UUID_WITH_DOMAIN_REGEX.test(urlParts[0])) {\n hostSuffix = urlParts[0];\n } else {\n // Related issue for prod sandbox fix: https://github.com/wso2-enterprise/choreo/issues/26120\n const PROD_SANDBOX_URL_REGEX = /^(sandbox)\\.(.*)$/;\n if (PROD_SANDBOX_URL_REGEX.test(urlParts[0])) {\n urlParts[0] = urlParts[0].replace(PROD_SANDBOX_URL_REGEX, 'prod-sandbox.$2');\n }\n hostSuffix = `${urlParts[1]}-${urlParts[0]}`;\n }\n // Set the starting position of the urlParts array to generate the context.\n // The extracted urlParts will have the format of,\n // ['','','','',...,'','']\n // Since we are already using 0th and 1st index to build the domain, others parts will belong to the context starting from 2nd idx.\n let urlContextStartIdx = 2;\n if (selectedOrg?.handle === Settings.choreoSystemOrg) {\n hostSuffix = Settings.choreoSystemHostSuffix;\n // The choreo system organization is a special case where we don't need the in the invoke url.\n // Hence, we will start from 3rd index to build the remaning context.\n // Refer https://github.com/wso2-enterprise/choreo/issues/12188 for more info.\n urlContextStartIdx = 3;\n } else if (!ORGANIZATION_UUID_REGEX.test(urlParts[1])) {\n //If the endpoint URL has the format :////'',...,'/'\n //The extracted urlParts will have the format of,\n //['','','',...,'','']\n //Build remaining context starting from the 1st index\n urlContextStartIdx = 1;\n }\n\n const gwURL = `${protocol}${hostSuffix}/${urlParts\n .slice(urlContextStartIdx)\n .join(Constants.PATH_SEPARATOR)}`;\n return {\n url: gwURL,\n environment: endpoint?.environmentName,\n environmentDisplayName: getEnvironmentEndpointDisplayName(\n endpoint?.environmentDisplayName\n ),\n choreoEnvironmentName: endpoint?.choreoEnvironmentName,\n accessibilityType: endpoint?.accessibilityType,\n isSandboxEndpoint: endpoint?.isSandboxEndpoint,\n isCritical: endpoint?.isCritical,\n isSandbox: endpoint?.isSandbox,\n } as EndpointInfo;\n }\n return null;\n })\n // This will removed the null values from the array\n .filter((endpoint) => endpoint !== null);\n return endpointInfo;\n }\n\n if (graphqlEnvArray && graphqlEnvArray.length > 0) {\n const isProdVisible = graphqlEnvArray.some((env) => env.choreoEnv === 'prod');\n const endpointInfo = endpointUrls\n ?.filter((endpointEnv) => {\n return (((isProdVisible && (endpointEnv.environmentDisplayName === 'Sandbox'\n || endpointEnv.environmentName === 'production-sandbox-us-east-azure'\n || endpointEnv.environmentName === 'production-sandbox-eu-north-azure')\n )|| endpointEnv.isCritical)\n || !!graphqlEnvArray.find(\n (graphqlEnv) =>\n graphqlEnv.name == endpointEnv.environmentDisplayName ||\n endpointEnv.environmentName == 'control-plane' ||\n graphqlEnv.externalApiEnvName == endpointEnv.environmentName ||\n graphqlEnv.internalApiEnvName == endpointEnv.environmentName\n ));\n })\n .map((endpoint) => {\n if (endpoint.environmentDisplayName && endpoint.environmentDisplayName.includes(Constants.INTERNAL)) {\n if (endpoint.environmentDisplayName.includes(Constants.DEVELOPMENT)) {\n endpoint.environmentDisplayName = Constants.DEVELOPMENT;\n } else if (endpoint.environmentDisplayName.includes(Constants.PRODUCTION)) {\n endpoint.environmentDisplayName = Constants.PRODUCTION;\n }\n }\n\n if (endpoint?.URLs.https || endpoint?.URLs.wss) {\n let tmpUrl = \"\";\n let protocol = \"\"\n if (endpoint?.URLs.https) {\n tmpUrl = endpoint.URLs.https.replace(\n Constants.PROTOCOL_HTTPS,\n ''\n );\n protocol = Constants.PROTOCOL_HTTPS;\n }\n if (endpoint?.URLs.wss) {\n tmpUrl = endpoint.URLs.wss.replace(\n Constants.PROTOCOL_WSS,\n ''\n );\n protocol = Constants.PROTOCOL_WSS;\n }\n // for dynamically created environments, the orgUUID is already included in urlParts[0].\n const ORG_UUID_WITH_DOMAIN_REGEX =\n /^([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})(-).*$/;\n\n if (!isPdpDomainCustomizedOrg && selectedOrg?.handle !== Settings.choreoSystemOrg) {\n // for custom urls and urls with custom domains\n const environmentDisplayName = endpoint?.environmentDisplayName;\n if (!ORG_UUID_WITH_DOMAIN_REGEX.test(tmpUrl.trim().split(Constants.PATH_SEPARATOR)[0]) && environmentDisplayName !== 'Sandbox') {\n return {\n url: `${protocol}${tmpUrl}`,\n environment: endpoint?.environmentName,\n environmentDisplayName: getEnvironmentEndpointDisplayName(\n endpoint?.environmentDisplayName\n ),\n choreoEnvironmentName: endpoint?.choreoEnvironmentName,\n accessibilityType: endpoint?.accessibilityType,\n isSandboxEndpoint: endpoint?.isSandboxEndpoint,\n isCritical: endpoint?.isCritical,\n isSandbox: endpoint?.isSandbox,\n } as EndpointInfo;\n }\n }\n if (Settings.intelligentRoutingFeatureEnabled && isLatestVersion && version.startsWith(\"v\")) {\n const majorVersion = version.split(\".\")[0];\n const lastIndex = tmpUrl.lastIndexOf(majorVersion);\n const tmpUrlWithoutVersion = tmpUrl.substring(0, lastIndex);\n tmpUrl = tmpUrlWithoutVersion + majorVersion;\n }\n\n const urlParts = tmpUrl.trim().split(Constants.PATH_SEPARATOR);\n\n let hostSuffix = `${urlParts[1]}-${urlParts[0]}`;\n const ORGANIZATION_UUID_REGEX=\n /^([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})$/;\n if (ORG_UUID_WITH_DOMAIN_REGEX.test(urlParts[0]) || isPdpDomainCustomizedOrg) {\n hostSuffix = urlParts[0];\n } else {\n // Related issue for prod sandbox fix: https://github.com/wso2-enterprise/choreo/issues/26120\n const PROD_SANDBOX_URL_REGEX = /^(sandbox)\\.(.*)$/;\n if (PROD_SANDBOX_URL_REGEX.test(urlParts[0])) {\n urlParts[0] = urlParts[0].replace(PROD_SANDBOX_URL_REGEX, 'prod-sandbox.$2');\n }\n hostSuffix = `${urlParts[1]}-${urlParts[0]}`;\n }\n // Set the starting position of the urlParts array to generate the context.\n // The extracted urlParts will have the format of,\n // ['','','','',...,'','']\n // Since we are already using 0th and 1st index to build the domain, others parts will belong to the context starting from 2nd idx.\n let urlContextStartIdx = 2;\n if (selectedOrg?.handle === Settings.choreoSystemOrg) {\n hostSuffix = Settings.choreoSystemHostSuffix;\n // The choreo system organization is a special case where we don't need the in the invoke url.\n // Hence, we will start from 3rd index to build the remaning context.\n // Refer https://github.com/wso2-enterprise/choreo/issues/12188 for more info.\n urlContextStartIdx = 3;\n } else if (!ORGANIZATION_UUID_REGEX.test(urlParts[1])) {\n // If the endpoint URL has the format :////'',...,'/'\n // The extracted urlParts will have the format of,\n // ['','','',...,'','']\n // Build remaining context starting from the 1st index\n urlContextStartIdx = 1;\n }\n\n const gwURL = `${protocol}${hostSuffix}/${urlParts\n .slice(urlContextStartIdx)\n .join(Constants.PATH_SEPARATOR)}`;\n \n return {\n url: gwURL,\n environment: endpoint?.environmentName,\n environmentDisplayName: getEnvironmentEndpointDisplayName(\n endpoint?.environmentDisplayName\n ),\n choreoEnvironmentName: endpoint?.choreoEnvironmentName,\n accessibilityType: endpoint?.accessibilityType,\n isSandboxEndpoint: endpoint?.isSandboxEndpoint,\n isCritical: endpoint?.isCritical,\n isSandbox: endpoint?.isSandbox,\n } as EndpointInfo;\n }\n return null;\n })\n .filter((endpoint) => endpoint !== null);\n return endpointInfo;\n }\n\n return [];\n};\n\nconst getEnvironmentEndpointDisplayName = (environmentName: string): string => {\n switch (environmentName.toLowerCase()) {\n case \"production-us-east-azure\":\n return \"Production\";\n case \"production-eu-north-azure\":\n return \"Production\";\n case \"development-us-east-azure\":\n return \"Development\";\n case \"development-eu-north-azure\":\n return \"Development\";\n case \"production-sandbox-us-east-azure\":\n return \"Sandbox\";\n case \"production-sandbox-eu-north-azure\":\n return \"Sandbox\";\n default:\n return environmentName;\n }\n}\n\nexport const getIDPsEndpoint = (): string => {\n const apimHostname = Settings.apimApi;\n const appResource = Settings.devportalContext + Constants.RESOURCE_IDPS;\n\n return new URL(appResource, apimHostname).toString();\n};\n\nexport const getAddExternalUserToOrgEndpoint = (\n organizationHandle: string\n): string => {\n const apiServiceHost = Settings.apiServiceHost;\n const resource =\n PATH_SEPARATOR +\n 'user-mgt/1.0.0/orgs' +\n PATH_SEPARATOR +\n organizationHandle +\n PATH_SEPARATOR +\n 'self-subscribe';\n return new URL(resource, apiServiceHost).toString();\n};\n\nexport const getChoreoUserInfoEndpoint = (\n organizationHandle: string,\n userIdpId: string\n): string => {\n const apiServiceHost = Settings.apiServiceHost;\n const resource = `/user-mgt/1.0.0/orgs/${organizationHandle}/users/${userIdpId}`;\n return new URL(resource, apiServiceHost).toString();\n};\n\n/**\n * Function to get the endpoint to get the application keys map.\n * @param applicationId The application id\n * @returns the construction endpoint\n */\nexport const getApplicationKeysMapEndpoint = (applicationId: string): string => {\n const apimHostname = Settings.apimApi;\n const appResource = `${Settings.devportalContext}/applications/${applicationId}${Constants.MAP_APPLICATION_KEYS}`;\n return new URL(appResource, apimHostname).toString();\n};\n\n/**\n * Method to get the accessibility of the api.\n * @param api The API object\n * @returns True if the api is an internal api, false otherwise\n */\nexport const getIsInternalAPI = (api?: Api): boolean => {\n return api?.additionalProperties?.find(property =>\n property.name === 'accessibility')?.value === 'internal';\n};\n\n/**\n * Method to get the accessibility of the api.\n * @param orgName Selected organization handle\n * @returns True if the given orgName is listed in selfSignupEnabledOrgs, false otherwise\n */\nexport const isSelfSignupEnabled = (orgName: string): boolean => {\n return Settings.selfSignupEnabledOrgs.includes(orgName);\n};\n\n/**\n * Method to get check whether selected api is a graphql api\n * @param api The API object\n * @returns True if the api is a graphql api, false otherwise\n */\nexport const isGraphqlApi = (api?: Api): boolean => {\n return (\n api?.additionalProperties?.some(\n (property) =>\n (property.name === \"applicationType\" && property.value === \"graphql\") ||\n (property.name === \"endpointType\" && property.value === \"GraphQL\")\n ) || false\n );\n};\n\n/**\n * Method to get the value of the 'endpointType' property from the API object\n * @param api The API object\n * @returns The value of 'endpointType' if it exists, undefined otherwise\n */\nexport const getAPIType = (api?: Api): string => {\n if (isGraphqlApi(api)) {\n return Constants.API_TYPE_GRAPHQL;\n }\n const property = api?.additionalProperties?.find(\n (property) => property.name === \"endpointType\"\n );\n return property?.value || Constants.API_TYPE_HTTP;\n};\n\nexport const isThirdPartyApi = (api?: Api): boolean => {\n return api?.advertiseInfo?.advertised || false;\n}\n\nexport const truncateTextMiddle = (\n fullStr: string,\n strLen: number,\n separator_?: string\n) => {\n if (fullStr.length <= strLen) return fullStr;\n\n const separator = separator_ || '...';\n\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n\n return (\n fullStr.substring(0, frontChars) +\n separator +\n fullStr.substring(fullStr.length - backChars)\n );\n};\n\nexport const mapAndAddKeyToKeyList = (key: Key | undefined | string, keyList: KeyList | null): KeyList => {\n if (key === undefined || typeof key === \"string\") {\n return { list: [], count: 0 };\n }\n // Append key into keyList if key.keyType is not present on keyList\n // else replace the key with the key which has the same type\n const newKeyList: Key[] = keyList ? [...keyList.list] : [];\n const keyType = key.keyType;\n const keyIndex = newKeyList.findIndex((key) => key.keyType === keyType);\n if (keyIndex === -1) {\n newKeyList.push(key);\n } else {\n newKeyList[keyIndex] = key;\n }\n return { list: newKeyList, count: newKeyList.length };\n}\n\nexport const isCredentialMenuAccessible = (allowedScopes: string): boolean => {\n return !!allowedScopes && allowedScopes.includes(SUBSCRIBE_SCOPE) && (\n allowedScopes.includes(SANDBOX_KEY_MANAGE_SCOPE) || allowedScopes.includes(PRODUCTION_KEY_MANAGE_SCOPE)\n );\n}\n\nexport const isSandboxKeyGenerationAccessible = (allowedScopes: string): boolean => {\n return !!allowedScopes && allowedScopes.includes(SANDBOX_KEY_MANAGE_SCOPE);\n}\n\nexport const isProductionKeyGenerationAccessible = (allowedScopes: string): boolean => {\n return !!allowedScopes && allowedScopes.includes(PRODUCTION_KEY_MANAGE_SCOPE);\n}\n\nexport const isContractsAccessible = (allowedScopes: string): boolean => {\n return !!allowedScopes && allowedScopes.includes(SUBSCRIBE_SCOPE);\n}\n\nexport const getEndpointUrls = (api: Api): EndpointURL[] => {\n if (api?.version?.startsWith(\"v\") && api?.versionInfo) {\n return api.versionInfo.majorVersionEndpointUrls;\n }\n return api?.endpointURLs;\n};\n\nexport const getVisibilityFromAccessibilityType = (\n accessibilityType: string\n): string => {\n if (accessibilityType === \"external\") {\n return \"Public\";\n } else if (accessibilityType === \"internal\") {\n return \"Organization\";\n } else {\n return \"\";\n }\n};\n\nexport const isAdminUser = (allowedScopes: string): boolean => {\n return !!allowedScopes && allowedScopes.includes(ADMIN_SCOPE);\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { SettingsInterface } from '../data/interfaces';\nimport { getApplicationSettings } from '../data/utils';\n\ndeclare global {\n interface Window {\n Settings: SettingsInterface;\n }\n}\n\nconst defaultSettings: SettingsInterface = {\n enablePKCE: true,\n clientId: 'ZzHIXXuSuI1UXJOztKUB4gNzlaka',\n signInRedirectUrl: 'https://localhost:3000/sign-in',\n signOutRedirectUrl: 'https://localhost:3000/login',\n clientHost: 'https://localhost:3000',\n apimHost: 'https://localhost:3000',\n tokenExchangeUrl: 'https://apim.dv.choreo.dev/oauth2/token',\n apimApi: 'https://apim.dv.choreo.dev',\n apimGatewayHostSuffix: '.dv.choreoapis.dev',\n idpHost: '',\n apiServiceHost: 'https://localhost:3000',\n graphqlServiceHost: 'https://localhost:3000',\n graphqlResource: '/graphql',\n azureCDNOrigin: 'https://localhost:3000',\n devToolEnable: true,\n scopes: ['openid', 'email', 'profile','groups'],\n keyManager: 'Resident Key Manager',\n devportalContext: '/api/am/devportal/v2',\n apiServiceProxy: '/apim/proxy',\n userInfo: '/api/identity/user/v1.0/me',\n userOrganizations: '/apim/devportal/organizations',\n validateUserEndpoint: '/user-mgt/1.0.0/validate/user',\n addEnterpriseUserEndpoint: '/user-mgt/1.0.0/add-enterprise-user',\n tokenEndpoint: 'https://localhost:8243/token',\n revokeEndpoint: 'https://localhost:8243/revoke',\n tokenValidityPeriod: 3600,\n defaultAppThrottlingPolicy: 'Unlimited',\n defaultAppTokenType: 'JWT',\n googleFidp: 'google',\n githubFidp: 'github',\n microsoftFidp: 'microsoft',\n emailFidp: 'LOCAL',\n enableMicrosoftLogin: true,\n enableEmailLogin: false,\n oldGoogleFidp: 'google-choreo',\n oldGithubFidp: 'github-choreo',\n enterpriseFidp: 'EnterpriseIDP',\n overrideEndpoints: {\n authorizationEndpoint: 'https://dev.api.asgardeo.io/t/a/oauth2/authorize',\n tokenEndpoint: 'https://dev.api.asgardeo.io/t/a/oauth2/token',\n endSessionEndpoint: 'https://dev.api.asgardeo.io/t/a/oidc/logout',\n },\n wellKnownEndpoint: \"\",\n overrideWellEndpointConfig: true,\n tokenExchangeConfig: {\n clientId: 'choreodevportal',\n grantType: 'urn:ietf:params:oauth:grant-type:token-exchange',\n subjectTokenType: 'urn:ietf:params:oauth:token-type:jwt',\n requestedTokenType: 'urn:ietf:params:oauth:token-type:jwt',\n scope: 'apim:admin apim:subscribe environments:view_prod environments:view_dev apim:prod_key_manage apim:sand_key_manage urn:choreocontrolplane:customdomainapi:custom_domain_view urn:choreocontrolplane:usermanagement:user_view',\n },\n grantTypes: [\n {\n id: 1,\n type: 'Client Credentials',\n value: 'client_credentials',\n },\n {\n id: 2,\n type: 'Refresh Token',\n value: 'refresh_token',\n },\n ],\n asgardeoGrantTypes: [\n {\n id: 1,\n type: 'Client Credentials',\n value: 'client_credentials',\n },\n {\n id: 2,\n type: 'Refresh Token',\n value: 'refresh_token',\n },\n {\n id: 3,\n type: \"Password\",\n value: \"password\",\n },\n {\n id: 4,\n type: \"Implicit\",\n value: \"implicit\",\n },\n {\n id: 5,\n type: \"Code\",\n value: \"authorization_code\",\n },\n ],\n subscriptionThrottlingTiers: [\n {\n name: 'Gold',\n description: '5000 requests/minute',\n },\n {\n name: 'Silver',\n description: '2000 requests/minute',\n },\n {\n name: 'Bronze',\n description: '1000 requests/minute',\n },\n {\n name: 'Unlimited',\n description: 'Unlimited requests',\n },\n ],\n enableInV2: false,\n choreoControlPlaneOrgHandleName: 'choreocontrolplane',\n azureInsightsKey: '',\n reactAppHotjarId: '',\n reactAppHotjarVersion : '',\n choreoSystemOrg: 'choreocontrolplane',\n choreoSystemHostSuffix: 'apis.preview-dv.choreo.dev',\n asgardeoConsoleUrl: 'https://dev.console.asgardeo.io',\n selfSignupEnabledOrgs: [],\n pdpDomainCustomizedOrgs: [],\n devportalHost: \"localhost\",\n isCustomDomain: false,\n customDomain: \"\",\n validateIDToken: true,\n permissionAdminPortalEnabled: false,\n permissionAdminPortalUrl: 'https://console.authz-dv.cloudservices.wso2.com/login',\n permissionPortalOrgIdParam: 'orgId',\n sandboxKeyGenerationEnabled: true,\n intelligentRoutingFeatureEnabled: false,\n devPortalIdPConfigurationFeatureEnabled: false,\n apiTryoutTestKeyEnabled: false,\n customSubscriptionPolicyHandlingOrg: '22628117-a287-444d-a8f2-c1d1c0db9477,bbd2d48c-9939-4df2-95f0-f4ae0636f4b7,070b8f30-5eaf-4392-99cb-a4e9c1cc53e3',\n};\n\nconst Settings = getApplicationSettings(window.Settings, defaultSettings);\n\nexport default Settings;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { Api, ApiList, ApiRequestHeader } from '../../data/interfaces';\n\nexport const FETCH_API_REQUEST = 'FETCH_API_REQUEST';\nexport const FETCH_API_SUCCESS = 'FETCH_API_SUCCESS';\nexport const FETCH_API_FAILURE = 'FETCH_API_FAILURE';\n\nexport const FETCH_API_LIST_REQUEST = 'FETCH_API_LIST_REQUEST';\nexport const FETCH_API_LIST_SUCCESS = 'FETCH_API_LIST_SUCCESS';\nexport const FETCH_API_LIST_FAILURE = 'FETCH_API_LIST_FAILURE';\n\nexport const FETCH_FEATURED_API_LIST_SUCCESS = 'FETCH_FEATURED_API_LIST_SUCCESS';\nexport const FEATCH_FEATURED_API_LIST_REQUEST = 'FEATCH_FEATURED_API_LIST_REQUEST';\nexport const FETCH_FEATURED_API_LIST_FAILURE = 'FETCH_FEATURED_API_LIST_FAILURE';\n\nexport const FETCH_MAJOR_VERSION_API_LIST_REQUEST = 'FETCH_MAJOR_VERSION_API_LIST_REQUEST';\nexport const FETCH_MAJOR_VERSION_API_LIST_SUCCESS = 'FETCH_MAJOR_VERSION_API_LIST_SUCCESS';\nexport const FETCH_MAJOR_VERSION_API_LIST_FAILURE = 'FETCH_MAJOR_VERSION_API_LIST_FAILURE';\n\nexport const FETCH_THUMBNAIL_REQUEST = 'FETCH_THUMBNAIL_REQUEST';\nexport const FETCH_THUMBNAIL_SUCCESS = 'FETCH_THUMBNAIL_SUCCESS';\nexport const FETCH_THUMBNAIL_FAILURE = 'FETCH_THUMBNAIL_FAILURE';\n\nexport const FETCH_THUMBNAIL_LIST_REQUEST = 'FETCH_THUMBNAIL_LIST_REQUEST';\nexport const FETCH_THUMBNAIL_LIST_SUCCESS = 'FETCH_THUMBNAIL_LIST_SUCCESS';\nexport const FETCH_THUMBNAIL_LIST_FAILURE = 'FETCH_THUMBNAIL_LIST_FAILURE';\n\nexport const FETCH_GRAPHQL_REQUEST = 'FETCH_GRAPHQL_REQUEST';\nexport const FETCH_GRAPHQL_SUCCESS = 'FETCH_GRAPHQL_SUCCESS';\nexport const FETCH_GRAPHQL_FAILURE = 'FETCH_GRAPHQL_FAILURE';\n\nexport const SET_SECURITY_HEADERS = 'SET_SECURITY_HEADERS';\n\nexport interface ApiActions {\n type: typeof FETCH_API_REQUEST | typeof FETCH_API_SUCCESS | typeof FETCH_API_FAILURE |\n typeof FETCH_API_LIST_REQUEST | typeof FETCH_API_LIST_SUCCESS | typeof FETCH_API_LIST_FAILURE | typeof FETCH_FEATURED_API_LIST_SUCCESS | typeof FEATCH_FEATURED_API_LIST_REQUEST | typeof FETCH_FEATURED_API_LIST_FAILURE |\n typeof FETCH_MAJOR_VERSION_API_LIST_REQUEST | typeof FETCH_MAJOR_VERSION_API_LIST_SUCCESS | typeof FETCH_MAJOR_VERSION_API_LIST_FAILURE |\n typeof FETCH_THUMBNAIL_REQUEST | typeof FETCH_THUMBNAIL_SUCCESS | typeof FETCH_THUMBNAIL_FAILURE |\n typeof FETCH_THUMBNAIL_LIST_REQUEST | typeof FETCH_THUMBNAIL_LIST_SUCCESS | typeof FETCH_THUMBNAIL_LIST_FAILURE | \n typeof SET_SECURITY_HEADERS,\n payload?: Api | ApiList | Blob | string | ApiRequestHeader | { [key: string]: string }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { Api, ApiList, ApiRequestHeader } from '../../data/interfaces';\nimport {\n FETCH_API_REQUEST, FETCH_API_SUCCESS, FETCH_API_FAILURE,\n FETCH_API_LIST_REQUEST, FETCH_API_LIST_SUCCESS, FETCH_API_LIST_FAILURE,\n FETCH_THUMBNAIL_REQUEST, FETCH_THUMBNAIL_SUCCESS, FETCH_THUMBNAIL_FAILURE,\n FETCH_THUMBNAIL_LIST_REQUEST, FETCH_THUMBNAIL_LIST_SUCCESS, FETCH_THUMBNAIL_LIST_FAILURE, SET_SECURITY_HEADERS, FETCH_MAJOR_VERSION_API_LIST_FAILURE, FETCH_MAJOR_VERSION_API_LIST_REQUEST, FETCH_MAJOR_VERSION_API_LIST_SUCCESS, \n FETCH_FEATURED_API_LIST_SUCCESS,FEATCH_FEATURED_API_LIST_REQUEST, FETCH_FEATURED_API_LIST_FAILURE\n} from '../types/api';\n\nexport const fetchApiRequest = () => {\n return {\n type: FETCH_API_REQUEST\n }\n}\n\nexport const fetchApiSuccess = (api: Api) => {\n return {\n type: FETCH_API_SUCCESS,\n payload: api\n }\n}\n\nexport const fetchApiFailure = (error: string) => {\n return {\n type: FETCH_API_FAILURE,\n payload: error\n }\n}\n\nexport const fetchApiListRequest = () => {\n return {\n type: FETCH_API_LIST_REQUEST\n }\n}\n\nexport const fetchApiListSuccess = (apis: ApiList) => {\n return {\n type: FETCH_API_LIST_SUCCESS,\n payload: apis\n }\n}\n\nexport const fetchApiListFailure = (error: string) => {\n return {\n type: FETCH_API_LIST_FAILURE,\n payload: error\n }\n}\n\nexport const fetchFeaturedApiListSuccess = (apis: ApiList) => {\n return {\n type: FETCH_FEATURED_API_LIST_SUCCESS,\n payload: apis\n }\n}\n\nexport const fetchFeaturedApiListRequest = () => {\n return {\n type: FEATCH_FEATURED_API_LIST_REQUEST\n }\n}\n\nexport const fetchFeaturedApiListFailure = (error: string) => {\n return {\n type: FETCH_FEATURED_API_LIST_FAILURE,\n payload: error\n }\n}\n\nexport const fetchMajorVersionApiListRequest = () => {\n return {\n type: FETCH_MAJOR_VERSION_API_LIST_REQUEST\n }\n}\n\nexport const fetchMajorVersionApiListSuccess = (apis: ApiList) => {\n return {\n type: FETCH_MAJOR_VERSION_API_LIST_SUCCESS,\n payload: apis\n }\n}\n\nexport const fetchMajorVersionApiListFailure = (error: string) => {\n return {\n type: FETCH_MAJOR_VERSION_API_LIST_FAILURE,\n payload: error\n }\n}\n\nexport const fetchThumbnailRequest = () => {\n return {\n type: FETCH_THUMBNAIL_REQUEST,\n }\n}\n\nexport const fetchThumbnailSuccess = (apiThumbnail: Blob) => {\n return {\n type: FETCH_THUMBNAIL_SUCCESS,\n payload: apiThumbnail\n }\n}\n\nexport const fetchThumbnailFailure = (error: string) => {\n return {\n type: FETCH_THUMBNAIL_FAILURE,\n payload: error\n }\n}\n\nexport const fetchThumbnailListRequest = () => {\n return {\n type: FETCH_THUMBNAIL_LIST_REQUEST,\n }\n}\n\nexport const fetchThumbnailListSuccess = (thumbnailMap: { [key: string]: string }) => {\n return {\n type: FETCH_THUMBNAIL_LIST_SUCCESS,\n payload: thumbnailMap\n }\n}\n\nexport const fetchThumbnailListFailure = (error: string) => {\n return {\n type: FETCH_THUMBNAIL_LIST_FAILURE,\n payload: error\n }\n}\n\nexport const fetchHeaders = (headers: ApiRequestHeader) => {\n return {\n type: SET_SECURITY_HEADERS,\n payload: headers\n }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { GraphqlResponse } from '../../data/interfaces';\nimport {\n FETCH_GRAPHQL_REQUEST, FETCH_GRAPHQL_SUCCESS, FETCH_GRAPHQL_FAILURE\n} from '../types/api';\n\nexport const fetchGraphqlRequest = () => {\n return {\n type: FETCH_GRAPHQL_REQUEST,\n }\n}\n\nexport const fetchGraphqlRequestSuccess = (graphqlResponse: GraphqlResponse) => {\n return {\n type: FETCH_GRAPHQL_SUCCESS,\n payload: graphqlResponse\n }\n}\n\nexport const fetchGraphqlFailure = (error: string) => {\n return {\n type: FETCH_GRAPHQL_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { KeyList, Key, OauthToken, ApiKey } from \"../../data/interfaces\";\n\nexport const CREATE_APIKEY_FAILURE = 'CREATE_APIKEY_FAILURE';\nexport const CREATE_APIKEY_REQUEST = 'CREATE_APIKEY_REQUEST';\nexport const CREATE_APIKEY_SUCCESS = 'CREATE_APIKEY_SUCCESS';\n\nexport const FETCH_KEYS_REQUEST = 'FETCH_KEYS_REQUEST';\nexport const FETCH_KEYS_SUCCESS = 'FETCH_KEYS_SUCCESS';\nexport const FETCH_KEYS_FAILURE = 'FETCH_KEYS_FAILURE';\n\nexport const CREATE_KEYS_REQUEST = 'CREATE_KEYS_REQUEST';\nexport const CREATE_KEYS_SUCCESS = 'CREATE_KEYS_SUCCESS';\nexport const CREATE_KEYS_FAILURE = 'CREATE_KEYS_FAILURE';\n\nexport const UPDATE_KEYS_REQUEST = 'UPDATE_KEYS_REQUEST';\nexport const UPDATE_KEYS_SUCCESS = 'UPDATE_KEYS_SUCCESS';\nexport const UPDATE_KEYS_FAILURE = 'UPDATE_KEYS_FAILURE';\n\nexport const CREATE_OAUTH_TOKEN_REQUEST = 'CREATE_OAUTH_TOKEN_REQUEST';\nexport const CREATE_OAUTH_TOKEN_SUCCESS = 'CREATE_OAUTH_TOKEN_SUCCESS';\nexport const CREATE_OAUTH_TOKEN_FAILURE = 'CREATE_OAUTH_TOKEN_FAILURE';\n\nexport const MAP_APPLICATION_KEY_FAILURE = 'MAP_APPLICATION_KEY_FAILURE';\nexport const MAP_APPLICATION_KEY_REQUEST = 'MAP_APPLICATION_KEY_REQUEST';\nexport const MAP_APPLICATION_KEY_SUCCESS = 'MAP_APPLICATION_KEY_SUCCESS';\n\nexport const CREATE_API_TEST_KEY_REQUEST = 'CREATE_API_TEST_KEY_REQUEST';\nexport const CREATE_API_TEST_KEY_SUCCESS = 'CREATE_API_TEST_KEY_SUCCESS';\nexport const CREATE_API_TEST_KEY_FAILURE = 'CREATE_API_TEST_KEY_FAILURE';\n\nexport interface AppKeysAction {\n type: typeof FETCH_KEYS_REQUEST | typeof FETCH_KEYS_SUCCESS | typeof FETCH_KEYS_FAILURE\n payload?: KeyList | string\n}\n\nexport interface CreateAppKeysAction {\n type: typeof CREATE_KEYS_REQUEST | typeof CREATE_KEYS_SUCCESS | typeof CREATE_KEYS_FAILURE\n payload?: Key | string\n}\n\nexport interface UpdateAppKeysAction {\n type: typeof UPDATE_KEYS_REQUEST | typeof UPDATE_KEYS_SUCCESS | typeof UPDATE_KEYS_FAILURE\n payload?: Key | string\n}\n\nexport interface CreateOauthTokenAction {\n type: typeof CREATE_OAUTH_TOKEN_REQUEST | typeof CREATE_OAUTH_TOKEN_SUCCESS | typeof CREATE_OAUTH_TOKEN_FAILURE\n payload?: OauthToken | string\n}\n\nexport interface CreateApiKeyAction {\n type: typeof CREATE_APIKEY_REQUEST | typeof CREATE_APIKEY_SUCCESS | typeof CREATE_APIKEY_FAILURE\n payload?: ApiKey | string\n}\n\nexport interface CreateApiTestKeyAction {\n type: typeof CREATE_API_TEST_KEY_REQUEST | typeof CREATE_API_TEST_KEY_SUCCESS | typeof CREATE_API_TEST_KEY_FAILURE\n payload?: ApiKey | string\n}\n\nexport interface ApplicationKeyMappingAction {\n type: typeof MAP_APPLICATION_KEY_REQUEST | typeof MAP_APPLICATION_KEY_SUCCESS | typeof MAP_APPLICATION_KEY_FAILURE\n payload?: Key | string\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport {\n CREATE_APIKEY_FAILURE, CREATE_APIKEY_REQUEST, CREATE_APIKEY_SUCCESS,\n FETCH_KEYS_REQUEST, FETCH_KEYS_SUCCESS, FETCH_KEYS_FAILURE,\n CREATE_KEYS_REQUEST, CREATE_KEYS_SUCCESS, CREATE_KEYS_FAILURE,\n CREATE_OAUTH_TOKEN_FAILURE, CREATE_OAUTH_TOKEN_REQUEST, CREATE_OAUTH_TOKEN_SUCCESS,\n UPDATE_KEYS_REQUEST, UPDATE_KEYS_SUCCESS, UPDATE_KEYS_FAILURE, \n MAP_APPLICATION_KEY_REQUEST, MAP_APPLICATION_KEY_SUCCESS, MAP_APPLICATION_KEY_FAILURE, \n CREATE_API_TEST_KEY_REQUEST, CREATE_API_TEST_KEY_SUCCESS, CREATE_API_TEST_KEY_FAILURE\n} from '../types/applicationKeys';\nimport { KeyList, Key, OauthToken, ApiKey, ApplicationKeyMap } from '../../data/interfaces';\n\nexport const fetchKeysRequest = () => {\n return {\n type: FETCH_KEYS_REQUEST\n }\n}\n\nexport const fetchKeysSuccess = (keys: KeyList) => {\n return {\n type: FETCH_KEYS_SUCCESS,\n payload: keys\n }\n}\n\nexport const fetchKeysFailure = (error: string) => {\n return {\n type: FETCH_KEYS_FAILURE,\n payload: error\n }\n}\n\nexport const createKeysRequest = () => {\n return {\n type: CREATE_KEYS_REQUEST\n }\n}\n\nexport const createKeysSuccess = (keys: Key) => {\n return {\n type: CREATE_KEYS_SUCCESS,\n payload: keys\n }\n}\n\nexport const createKeysFailure = (error: string) => {\n return {\n type: CREATE_KEYS_FAILURE,\n payload: error\n }\n}\n\nexport const createApiTestKeyRequest = () => {\n return {\n type: CREATE_API_TEST_KEY_REQUEST\n }\n}\n\nexport const createApiTestKeySuccess = (key: ApiKey) => {\n return {\n type: CREATE_API_TEST_KEY_SUCCESS,\n payload: key\n }\n}\n\nexport const createApiTestKeyFailure = (error: string) => {\n return {\n type: CREATE_API_TEST_KEY_FAILURE,\n payload: error\n }\n}\n\nexport const updateKeysRequest = () => {\n return {\n type: UPDATE_KEYS_REQUEST\n }\n}\n\nexport const updateKeysSuccess = (keys: Key) => {\n return {\n type: UPDATE_KEYS_SUCCESS,\n payload: keys\n }\n}\n\nexport const updateKeysFailure = (error: string) => {\n return {\n type: UPDATE_KEYS_FAILURE,\n payload: error\n }\n}\n\nexport const createOauthTokenRequest = () => {\n return {\n type: CREATE_OAUTH_TOKEN_REQUEST\n }\n};\n\nexport const createOauthTokenSuccess = (token: OauthToken) => {\n return {\n type: CREATE_OAUTH_TOKEN_SUCCESS,\n payload: token\n }\n};\n\nexport const createOauthTokenFailure = (error: string) => {\n return {\n type: CREATE_OAUTH_TOKEN_FAILURE,\n payload: error\n }\n};\n\nexport const createApikeyRequest = () => {\n return {\n type: CREATE_APIKEY_REQUEST\n }\n};\n\nexport const createApikeySuccess = (apikey: ApiKey) => {\n return {\n type: CREATE_APIKEY_SUCCESS,\n payload: apikey\n }\n};\n\nexport const createApikeyFailure = (error: string) => {\n return {\n type: CREATE_APIKEY_FAILURE,\n payload: error\n }\n};\n\nexport const mapApplicationKeyRequest = () => {\n return {\n type: MAP_APPLICATION_KEY_REQUEST\n }\n};\n\nexport const mapApplicationKeySucess = (applicationKeyMap: ApplicationKeyMap) => {\n return {\n type: MAP_APPLICATION_KEY_SUCCESS,\n payload: applicationKeyMap\n }\n};\n\nexport const mapApplicationKeyFailure = (error: string) => {\n return {\n type: MAP_APPLICATION_KEY_FAILURE,\n payload: error\n }\n};\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { ApplicationList, Application } from \"../../data/interfaces\";\n\nexport const FETCH_APPLICATION_REQUEST = 'FETCH_APPLICATION_REQUEST';\nexport const FETCH_APPLICATION_SUCCESS = 'FETCH_APPLICATION_SUCCESS';\nexport const FETCH_APPLICATION_FAILURE = 'FETCH_APPLICATION_FAILURE';\n\nexport const FETCH_APPLICATION_DETAILS_REQUEST = 'FETCH_APPLICATION_DETAILS_REQUEST';\nexport const FETCH_APPLICATION_DETAILS_SUCCESS = 'FETCH_APPLICATION_DETAILS_SUCCESS';\nexport const FETCH_APPLICATION_DETAILS_FAILURE = 'FETCH_APPLICATION_DETAILS_FAILURE';\n\nexport const UPDATE_APPLICATION_REQUEST = 'UPDATE_APPLICATION_REQUEST';\nexport const UPDATE_APPLICATION_SUCCESS = 'UPDATE_APPLICATION_SUCCESS';\nexport const UPDATE_APPLICATION_FAILURE = 'UPDATE_APPLICATION_FAILURE';\n\nexport const CREATE_APPLICATION_REQUEST = 'CREATE_APPLICATION_REQUEST';\nexport const CREATE_APPLICATION_SUCCESS = 'CREATE_APPLICATION_SUCCESS';\nexport const CREATE_APPLICATION_FAILURE = 'CREATE_APPLICATION_FAILURE';\n\nexport const DELETE_APPLICATION_REQUEST = 'DELETE_APPLICATION_REQUEST';\nexport const DELETE_APPLICATION_SUCCESS = 'DELETE_APPLICATION_SUCCESS';\nexport const DELETE_APPLICATION_FAILURE = 'DELETE_APPLICATION_FAILURE';\n\nexport const SHARE_APPLICATION_REQUEST = 'SHARE_APPLICATION_REQUEST';\nexport const SHARE_APPLICATION_SUCCESS = 'SHARE_APPLICATION_SUCCESS';\nexport const SHARE_APPLICATION_FAILURE = 'SHARE_APPLICATION_FAILURE';\n\nexport const DELETE_SHARE_APPLICATION_REQUEST = 'DELETE_SHARE_APPLICATION_REQUEST';\nexport const DELETE_SHARE_APPLICATION_SUCCESS = 'DELETE_SHARE_APPLICATION_SUCCESS';\nexport const DELETE_SHARE_APPLICATION_FAILURE = 'DELETE_SHARE_APPLICATION_FAILURE';\n\nexport interface ApplicationsAction {\n type: typeof FETCH_APPLICATION_REQUEST | typeof FETCH_APPLICATION_SUCCESS | typeof FETCH_APPLICATION_FAILURE\n | typeof FETCH_APPLICATION_DETAILS_REQUEST | typeof FETCH_APPLICATION_DETAILS_SUCCESS\n | typeof FETCH_APPLICATION_DETAILS_FAILURE | typeof UPDATE_APPLICATION_REQUEST\n | typeof UPDATE_APPLICATION_SUCCESS | typeof UPDATE_APPLICATION_FAILURE | typeof DELETE_APPLICATION_REQUEST\n | typeof DELETE_APPLICATION_SUCCESS | typeof DELETE_APPLICATION_FAILURE \n | typeof SHARE_APPLICATION_REQUEST | typeof SHARE_APPLICATION_SUCCESS | typeof SHARE_APPLICATION_FAILURE \n | typeof DELETE_SHARE_APPLICATION_REQUEST | typeof DELETE_SHARE_APPLICATION_SUCCESS | typeof DELETE_SHARE_APPLICATION_FAILURE,\n payload?: ApplicationList | Application | string\n}\n\nexport interface CreateApplicationsAction {\n type: typeof CREATE_APPLICATION_REQUEST | typeof CREATE_APPLICATION_SUCCESS | typeof CREATE_APPLICATION_FAILURE,\n\n payload?: Application | string\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { Application, ApplicationList, UserPermission } from '../../data/interfaces';\nimport {\n CREATE_APPLICATION_FAILURE, CREATE_APPLICATION_REQUEST, CREATE_APPLICATION_SUCCESS,\n DELETE_APPLICATION_FAILURE, DELETE_APPLICATION_REQUEST, DELETE_APPLICATION_SUCCESS,\n FETCH_APPLICATION_DETAILS_FAILURE, FETCH_APPLICATION_DETAILS_REQUEST, FETCH_APPLICATION_DETAILS_SUCCESS,\n FETCH_APPLICATION_FAILURE, FETCH_APPLICATION_REQUEST, FETCH_APPLICATION_SUCCESS,\n SHARE_APPLICATION_FAILURE, SHARE_APPLICATION_REQUEST, SHARE_APPLICATION_SUCCESS,\n UPDATE_APPLICATION_FAILURE, UPDATE_APPLICATION_REQUEST, UPDATE_APPLICATION_SUCCESS\n} from '../types/applications';\n\nexport const fetchApplicationRequest = () => {\n return {\n type: FETCH_APPLICATION_REQUEST\n }\n}\n\nexport const fetchApplicationSuccess = (applications: ApplicationList) => {\n return {\n type: FETCH_APPLICATION_SUCCESS,\n payload: applications\n }\n}\n\nexport const fetchApplicationFailure = (error: string) => {\n return {\n type: FETCH_APPLICATION_FAILURE,\n payload: error\n }\n}\n\nexport const fetchApplicationDetailsRequest = () => {\n return {\n type: FETCH_APPLICATION_DETAILS_REQUEST\n }\n};\n\nexport const fetchApplicationDetailsSuccess = (application: Application) => {\n return {\n type: FETCH_APPLICATION_DETAILS_SUCCESS,\n payload: application\n }\n};\n\nexport const fetchApplicationDetailsFailure = (error: string) => {\n return {\n type: FETCH_APPLICATION_DETAILS_FAILURE,\n payload: error\n }\n};\n\nexport const createApplicationRequest = () => {\n return {\n type: CREATE_APPLICATION_REQUEST\n }\n}\n\nexport const createApplicationSuccess = (applications: Application) => {\n return {\n type: CREATE_APPLICATION_SUCCESS,\n payload: applications\n }\n}\n\nexport const createApplicationFailure = (error: string) => {\n return {\n type: CREATE_APPLICATION_FAILURE,\n payload: error\n }\n}\n\nexport const updateApplicationRequest = () => {\n return {\n type: UPDATE_APPLICATION_REQUEST\n }\n};\n\nexport const updateApplicationSuccess = (application: Application) => {\n return {\n type: UPDATE_APPLICATION_SUCCESS,\n payload: application\n }\n};\n\nexport const updateApplicationFailure = (error: string) => {\n return {\n type: UPDATE_APPLICATION_FAILURE,\n payload: error\n }\n};\n\nexport const deleteApplicationRequest = () => {\n return {\n type: DELETE_APPLICATION_REQUEST\n }\n}\n\nexport const deleteApplicationSuccess = (applicationId: string) => {\n return {\n type: DELETE_APPLICATION_SUCCESS,\n payload: applicationId,\n }\n}\n\nexport const deleteApplicationFailure = (error: string) => {\n return {\n type: DELETE_APPLICATION_FAILURE,\n payload: error\n }\n}\n\nexport const shareApplicationRequest = (applicationId: string, userPermissions: UserPermission[]) => {\n return {\n type: SHARE_APPLICATION_REQUEST,\n payload: {\n applicationId,\n userPermissions\n }\n }\n}\n\nexport const shareApplicationSuccess = (application: Application) => {\n return {\n type: SHARE_APPLICATION_SUCCESS,\n payload: application\n }\n}\n\nexport const shareApplicationFailure = (error: string) => {\n return {\n type: SHARE_APPLICATION_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { Comment, Comments } from '../../data/interfaces';\n\nexport const FETCH_API_COMMENTS_REQUEST = 'FETCH_API_COMMENTS_REQUEST';\nexport const FETCH_API_COMMENTS_SUCCESS = 'FETCH_API_COMMENTS_SUCCESS';\nexport const FETCH_API_COMMENTS_FAILURE = 'FETCH_API_COMMENTS_FAILURE';\n\nexport const POST_COMMENT_REQUEST = 'POST_COMMENT_REQUEST';\nexport const POST_COMMENT_SUCCESS = 'POST_COMMENT_SUCCESS';\nexport const POST_COMMENT_FAILURE = 'POST_COMMENT_FAILURE';\n\nexport const DELETE_COMMENT_REQUEST = 'DELETE_COMMENT_REQUEST';\nexport const DELETE_COMMENT_SUCCESS = 'DELETE_COMMENT_SUCCESS';\nexport const DELETE_COMMENT_FAILURE = 'DELETE_COMMENT_FAILURE';\n\nexport const EDIT_COMMENT_SUCCESS = 'EDIT_COMMENT_SUCCESS';\nexport const EDIT_COMMENT_FAILURE = 'EDIT_COMMENT_FAILURE';\nexport const EDIT_COMMENT_REQUEST = 'EDIT_COMMENT_REQUEST';\n\nexport interface CommentActions {\n type: typeof FETCH_API_COMMENTS_REQUEST | typeof FETCH_API_COMMENTS_SUCCESS | typeof FETCH_API_COMMENTS_FAILURE\n | typeof POST_COMMENT_REQUEST | typeof POST_COMMENT_SUCCESS | typeof POST_COMMENT_FAILURE | typeof DELETE_COMMENT_REQUEST\n | typeof DELETE_COMMENT_SUCCESS | typeof DELETE_COMMENT_FAILURE\n | typeof EDIT_COMMENT_SUCCESS | typeof EDIT_COMMENT_FAILURE | typeof EDIT_COMMENT_REQUEST\n payload?: Comments | Comment | string\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\nimport { Comments, Comment } from '../../data/interfaces';\nimport {\n FETCH_API_COMMENTS_REQUEST, FETCH_API_COMMENTS_SUCCESS, FETCH_API_COMMENTS_FAILURE,\n POST_COMMENT_REQUEST, POST_COMMENT_SUCCESS, POST_COMMENT_FAILURE,\n DELETE_COMMENT_REQUEST, DELETE_COMMENT_SUCCESS, DELETE_COMMENT_FAILURE, EDIT_COMMENT_FAILURE, EDIT_COMMENT_REQUEST, EDIT_COMMENT_SUCCESS,\n} from '../types/comments';\n\nexport const fetchApiCommentsRequest = () => {\n return {\n type: FETCH_API_COMMENTS_REQUEST\n }\n}\n\nexport const fetchApiCommentsSuccess = (comments: Comments) => {\n return {\n type: FETCH_API_COMMENTS_SUCCESS,\n payload: comments\n }\n}\n\nexport const fetchApiCommentsFailure = (error: string) => {\n return {\n type: FETCH_API_COMMENTS_FAILURE,\n payload: error\n }\n}\n\nexport const postApiCommentsRequest = () => {\n return {\n type: POST_COMMENT_REQUEST\n }\n}\n\nexport const postApiCommentsSuccess = (comment: Comment) => {\n return {\n type: POST_COMMENT_SUCCESS,\n payload: comment\n }\n}\n\nexport const postApiCommentsFailure = (error: string) => {\n return {\n type: POST_COMMENT_FAILURE,\n payload: error\n }\n}\n\nexport const deleteApiCommentsRequest = () => {\n return {\n type: DELETE_COMMENT_REQUEST\n }\n}\n\nexport const deleteApiCommentsSuccess = (commentId: string) => {\n return {\n type: DELETE_COMMENT_SUCCESS,\n payload: commentId\n }\n}\n\nexport const deleteApiCommentsFailure = (error: string) => {\n return {\n type: DELETE_COMMENT_FAILURE,\n payload: error\n }\n}\n\nexport const editApiCommentsRequest = () => {\n return {\n type: EDIT_COMMENT_REQUEST\n }\n}\n\nexport const editApiCommentsSuccess = (comment: Comment) => {\n return {\n type: EDIT_COMMENT_SUCCESS,\n payload: comment\n }\n}\n\nexport const editApiCommentsFailure = (error: string) => {\n return {\n type: EDIT_COMMENT_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { Key } from 'react';\n\nexport const CREATE_API_KEYS_CREDENTIALS_REQUEST = 'CREATE_API_KEYS_CREDENTIALS_REQUEST';\nexport const CREATE_API_KEYS_CREDENTIALS_SUCCESS = 'CREATE_API_KEYS_CREDENTIALS_SUCCESS';\nexport const CREATE_API_KEYS_CREDENTIALS_FAILURE = 'CREATE_API_KEYS_CREDENTIALS_FAILURE';\n\nexport const FETCH_API_KEYS_CREDENTIALS_REQUEST = 'FETCH_API_KEYS_CREDENTIALS_REQUEST';\nexport const FETCH_API_KEYS_CREDENTIALS_SUCCESS = 'FETCH_API_KEYS_CREDENTIALS_SUCCESS';\nexport const FETCH_API_KEYS_CREDENTIALS_FAILURE = 'FETCH_API_KEYS_CREDENTIALS_FAILURE';\n\nexport const DELETE_API_KEYS_CREDENTIALS_REQUEST = 'DELETE_API_KEYS_CREDENTIALS_REQUEST';\nexport const DELETE_API_KEYS_CREDENTIALS_SUCCESS = 'DELETE_API_KEYS_CREDENTIALS_SUCCESS';\nexport const DELETE_API_KEYS_CREDENTIALS_FAILURE = 'DELETE_API_KEYS_CREDENTIALS_FAILURE';\n\nexport interface CredentialsAction {\n type: typeof CREATE_API_KEYS_CREDENTIALS_FAILURE | typeof CREATE_API_KEYS_CREDENTIALS_REQUEST | typeof CREATE_API_KEYS_CREDENTIALS_SUCCESS\n | typeof FETCH_API_KEYS_CREDENTIALS_FAILURE | typeof FETCH_API_KEYS_CREDENTIALS_REQUEST | typeof FETCH_API_KEYS_CREDENTIALS_SUCCESS\n | typeof DELETE_API_KEYS_CREDENTIALS_FAILURE | typeof DELETE_API_KEYS_CREDENTIALS_REQUEST | typeof DELETE_API_KEYS_CREDENTIALS_SUCCESS,\n payload?: string | Key | any\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { KeyList } from '../../data/interfaces';\nimport {\n CREATE_API_KEYS_CREDENTIALS_FAILURE, CREATE_API_KEYS_CREDENTIALS_REQUEST, CREATE_API_KEYS_CREDENTIALS_SUCCESS,\n DELETE_API_KEYS_CREDENTIALS_FAILURE, DELETE_API_KEYS_CREDENTIALS_REQUEST, DELETE_API_KEYS_CREDENTIALS_SUCCESS,\n FETCH_API_KEYS_CREDENTIALS_FAILURE, FETCH_API_KEYS_CREDENTIALS_REQUEST, FETCH_API_KEYS_CREDENTIALS_SUCCESS\n} from '../types/credentials';\n\nexport const createApiKeysCredentialsRequest = () => {\n return {\n type: CREATE_API_KEYS_CREDENTIALS_REQUEST\n }\n}\n\nexport const createApiKeysCredentialsSuccess = (key: KeyList) => {\n return {\n type: CREATE_API_KEYS_CREDENTIALS_SUCCESS,\n payload: key\n }\n}\n\nexport const createApiKeysCredentialsFailure = (error: string) => {\n return {\n type: CREATE_API_KEYS_CREDENTIALS_FAILURE,\n payload: error\n }\n}\n\nexport const fetchApiKeysCredentialsRequest = () => {\n return {\n type: FETCH_API_KEYS_CREDENTIALS_REQUEST\n }\n}\n\nexport const fetchApiKeysCredentialsSuccess = (keys: KeyList) => {\n return {\n type: FETCH_API_KEYS_CREDENTIALS_SUCCESS,\n payload: keys\n }\n}\n\nexport const fetchApiKeysCredentialsFailure = (error: string) => {\n return {\n type: FETCH_API_KEYS_CREDENTIALS_FAILURE,\n payload: error\n }\n}\n\nexport const deleteApiKeysCredentialsRequest = () => {\n return {\n type: DELETE_API_KEYS_CREDENTIALS_REQUEST\n }\n}\n\nexport const deleteApiKeysCredentialsSuccess = (keys: KeyList | null) => {\n return {\n type: DELETE_API_KEYS_CREDENTIALS_SUCCESS,\n payload: keys\n }\n}\n\nexport const deleteApiKeysCredentialsFailure = (error: string) => {\n return {\n type: DELETE_API_KEYS_CREDENTIALS_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { Documents } from '../../data/interfaces';\n\nexport const FETCH_DOCUMENTS_REQUEST = \"FETCH_DOCUMENTS_REQUEST\";\nexport const FETCH_DOCUMENTS_SUCCESS = \"FETCH_DOCUMENTS_SUCCESS\";\nexport const FETCH_DOCUMENTS_FAILURE = \"FETCH_DOCUMENTS_FAILURE\";\n\nexport interface DocumentActions {\n type: typeof FETCH_DOCUMENTS_REQUEST | typeof FETCH_DOCUMENTS_SUCCESS | typeof FETCH_DOCUMENTS_FAILURE,\n payload?: Documents | string\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { Documents } from '../../data/interfaces';\nimport { FETCH_DOCUMENTS_REQUEST, FETCH_DOCUMENTS_SUCCESS, FETCH_DOCUMENTS_FAILURE } from '../types/documents';\n\nexport const fetchDocumentsRequest = () => {\n return {\n type: FETCH_DOCUMENTS_REQUEST\n }\n}\n\nexport const fetchDocumentsSuccess = (documents: Documents) => {\n return {\n type: FETCH_DOCUMENTS_SUCCESS,\n payload: documents\n }\n}\n\nexport const fetchDocumentsFailure = (error: string) => {\n return {\n type: FETCH_DOCUMENTS_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nexport const ERROR = \"ERROR\";\nexport const SUCCESS = \"SUCCESS\";\nexport const RESET = \"RESET\";\n\nexport interface NotificationAction {\n type: typeof ERROR | typeof SUCCESS | typeof RESET,\n message: string\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { SUCCESS, ERROR, RESET } from '../types/notification';\n\nexport const setSucessNotification = (message: string) => {\n return {\n type: SUCCESS,\n message: message\n }\n}\n\nexport const setErrorNotification = (message: string) => {\n return {\n type: ERROR,\n message: message\n }\n}\n\nexport const resetNotification = () => {\n return {\n type: RESET,\n }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { ApiRatings, ApiRating } from '../../data/interfaces';\n\nexport const FETCH_RATING_REQUEST = 'FETCH_RATING_REQUEST';\nexport const FETCH_RATING_SUCCESS = 'FETCH_RATING_SUCCESS';\nexport const FETCH_RATING_FAILURE = 'FETCH_RATING_FAILURE';\n\nexport const POST_RATING_REQUEST = 'POST_RATING_REQUEST';\nexport const POST_RATING_SUCCESS = 'POST_RATING_SUCCESS';\nexport const POST_RATING_FAILURE = 'POST_RATING_FAILURE';\n\nexport interface RatingActions {\n type: typeof FETCH_RATING_REQUEST | typeof FETCH_RATING_SUCCESS | typeof FETCH_RATING_FAILURE |\n typeof POST_RATING_REQUEST | typeof POST_RATING_SUCCESS | typeof POST_RATING_FAILURE,\n payload?: ApiRatings | ApiRating | string\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { ApiRatings } from '../../data/interfaces';\nimport {\n FETCH_RATING_REQUEST, FETCH_RATING_SUCCESS, FETCH_RATING_FAILURE, POST_RATING_REQUEST,\n POST_RATING_SUCCESS, POST_RATING_FAILURE\n} from '../types/rating';\n\nexport const fetchRatingsRequest = () => {\n return {\n type: FETCH_RATING_REQUEST\n }\n}\n\nexport const fetchRatingsSuccess = (ratings: ApiRatings) => {\n return {\n type: FETCH_RATING_SUCCESS,\n payload: ratings\n }\n}\n\nexport const fetchRatingsFailure = (error: string) => {\n return {\n type: FETCH_RATING_FAILURE,\n payload: error\n }\n}\n\nexport const createRatingsRequest = () => {\n return {\n type: POST_RATING_REQUEST\n }\n}\n\nexport const createRatingsSuccess = () => {\n return {\n type: POST_RATING_SUCCESS,\n }\n}\n\nexport const createRatingsFailure = (error: string) => {\n return {\n type: POST_RATING_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nexport const FETCH_SDK_LANGUAGES_REQUEST = 'FETCH_SDK_LANGUAGES_REQUEST';\nexport const FETCH_SDK_LANGUAGES_SUCCESS = 'FETCH_SDK_LANGUAGES_SUCCESS';\nexport const FETCH_SDK_LANGUAGES_FAILURE = 'FETCH_SDK_LANGUAGES_FAILURE';\n\nexport interface SdkAction {\n type: typeof FETCH_SDK_LANGUAGES_REQUEST | typeof FETCH_SDK_LANGUAGES_SUCCESS | typeof FETCH_SDK_LANGUAGES_FAILURE\n payload?: string[] | string\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { FETCH_SDK_LANGUAGES_REQUEST, FETCH_SDK_LANGUAGES_SUCCESS, \n FETCH_SDK_LANGUAGES_FAILURE } from '../types/sdk';\n\nexport const fetchSdkLanguagesRequest = () => {\n return {\n type: FETCH_SDK_LANGUAGES_REQUEST\n }\n }\n \n export const fetchSdkLanguagesSuccess = (languages: string[]) => {\n return {\n type: FETCH_SDK_LANGUAGES_SUCCESS,\n payload: languages\n }\n }\n \n export const fetchSdkLanguagesFailure = (error: string) => {\n return {\n type: FETCH_SDK_LANGUAGES_FAILURE,\n payload: error\n }\n }\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { SubscriptionList, Subscription } from \"../../data/interfaces\";\n\nexport const FETCH_SUBSCRIPTIONS_REQUEST = 'FETCH_SUBSCRIPTIONS_REQUEST';\nexport const FETCH_SUBSCRIPTIONS_SUCCESS = 'FETCH_SUBSCRIPTIONS_SUCCESS';\nexport const FETCH_SUBSCRIPTIONS_FAILURE = 'FETCH_SUBSCRIPTIONS_FAILURE';\n\nexport const UPDATE_SUBSCRIPTION_REQUEST = 'UPDATE_SUBSCRIPTION_REQUEST';\nexport const UPDATE_SUBSCRIPTION_SUCCESS = 'UPDATE_SUBSCRIPTION_SUCCESS';\nexport const UPDATE_SUBSCRIPTION_FAILURE = 'UPDATE_SUBSCRIPTION_FAILURE';\n\nexport const CREATE_SUBSCRIPTIONS_REQUEST = 'CREATE_SUBSCRIPTIONS_REQUEST';\nexport const CREATE_SUBSCRIPTIONS_SUCCESS = 'CREATE_SUBSCRIPTIONS_SUCCESS';\nexport const CREATE_SUBSCRIPTIONS_FAILURE = 'CREATE_SUBSCRIPTIONS_FAILURE';\n\nexport const DELETE_SUBSCRIPTIONS_REQUEST = 'DELETE_SUBSCRIPTIONS_REQUEST';\nexport const DELETE_SUBSCRIPTIONS_SUCCESS = 'DELETE_SUBSCRIPTIONS_SUCCESS';\nexport const DELETE_SUBSCRIPTIONS_FAILURE = 'DELETE_SUBSCRIPTIONS_FAILURE';\n\nexport interface SubscriptionsAction {\n type: typeof FETCH_SUBSCRIPTIONS_REQUEST | typeof FETCH_SUBSCRIPTIONS_SUCCESS | typeof FETCH_SUBSCRIPTIONS_FAILURE\n | typeof UPDATE_SUBSCRIPTION_REQUEST | typeof UPDATE_SUBSCRIPTION_SUCCESS | typeof UPDATE_SUBSCRIPTION_FAILURE\n | typeof DELETE_SUBSCRIPTIONS_REQUEST | typeof DELETE_SUBSCRIPTIONS_SUCCESS | typeof DELETE_SUBSCRIPTIONS_FAILURE,\n payload?: SubscriptionList | Subscription | string\n}\n\nexport interface CreateSubscriptionsAction {\n type: typeof CREATE_SUBSCRIPTIONS_REQUEST | typeof CREATE_SUBSCRIPTIONS_SUCCESS | typeof CREATE_SUBSCRIPTIONS_FAILURE,\n payload?: Subscription | string\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport {\n FETCH_SUBSCRIPTIONS_REQUEST, FETCH_SUBSCRIPTIONS_SUCCESS, FETCH_SUBSCRIPTIONS_FAILURE,\n UPDATE_SUBSCRIPTION_REQUEST, UPDATE_SUBSCRIPTION_SUCCESS, UPDATE_SUBSCRIPTION_FAILURE,\n CREATE_SUBSCRIPTIONS_REQUEST, CREATE_SUBSCRIPTIONS_SUCCESS, CREATE_SUBSCRIPTIONS_FAILURE,\n DELETE_SUBSCRIPTIONS_REQUEST, DELETE_SUBSCRIPTIONS_SUCCESS, DELETE_SUBSCRIPTIONS_FAILURE\n} from '../types/subscriptions';\nimport { Subscription, SubscriptionList } from '../../data/interfaces';\n\nexport const fetchSubscriptionRequest = () => {\n return {\n type: FETCH_SUBSCRIPTIONS_REQUEST\n }\n}\n\nexport const fetchSubscriptionsSuccess = (subscriptions: SubscriptionList) => {\n return {\n type: FETCH_SUBSCRIPTIONS_SUCCESS,\n payload: subscriptions\n }\n}\n\nexport const fetchSubscriptionsFailure = (error: string) => {\n return {\n type: FETCH_SUBSCRIPTIONS_FAILURE,\n payload: error\n }\n}\n\nexport const updateSubscriptionRequest = () => {\n return {\n type: UPDATE_SUBSCRIPTION_REQUEST\n }\n}\n\nexport const updateSubscriptionSuccess = (subscription: Subscription) => {\n return {\n type: UPDATE_SUBSCRIPTION_SUCCESS,\n payload: subscription\n }\n}\n\nexport const updateSubscriptionFailure = (error: string) => {\n return {\n type: UPDATE_SUBSCRIPTION_FAILURE,\n payload: error\n }\n}\n\nexport const createSubscriptionsRequest = () => {\n return {\n type: CREATE_SUBSCRIPTIONS_REQUEST\n }\n}\n\nexport const createSubscriptionsSuccess = (subscriptions: Subscription) => {\n return {\n type: CREATE_SUBSCRIPTIONS_SUCCESS,\n payload: subscriptions\n }\n}\n\nexport const createSubscriptionsFailure = (error: string) => {\n return {\n type: CREATE_SUBSCRIPTIONS_FAILURE,\n payload: error\n }\n}\n\nexport const deleteSubscriptionsRequest = () => {\n return {\n type: DELETE_SUBSCRIPTIONS_REQUEST\n }\n}\n\nexport const deleteSubscriptionsSuccess = (subscriptionId: string) => {\n return {\n type: DELETE_SUBSCRIPTIONS_SUCCESS,\n payload: subscriptionId\n }\n}\n\nexport const deleteSubscriptionsFailure = (error: string) => {\n return {\n type: DELETE_SUBSCRIPTIONS_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { OpenAPIObject } from \"openapi3-ts\";\n\nexport const FETCH_SWAGGER_REQUEST = 'FETCH_SWAGGER_REQUEST';\nexport const FETCH_SWAGGER_SUCCESS = 'FETCH_SWAGGER_SUCCESS';\nexport const FETCH_SWAGGER_FAILURE = 'FETCH_SWAGGER_FAILURE';\n\nexport interface SwaggerAction {\n type: typeof FETCH_SWAGGER_REQUEST | typeof FETCH_SWAGGER_SUCCESS | typeof FETCH_SWAGGER_FAILURE,\n payload?: OpenAPIObject | string\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { FETCH_SWAGGER_REQUEST, FETCH_SWAGGER_SUCCESS, FETCH_SWAGGER_FAILURE } from '../types/swagger';\nimport { OpenAPIObject } from 'openapi3-ts';\n\nexport const fetchSwaggerRequest = () => {\n return {\n type: FETCH_SWAGGER_REQUEST\n }\n }\n \n export const fetchSwaggerSuccess = (swagger: OpenAPIObject) => {\n return {\n type: FETCH_SWAGGER_SUCCESS,\n payload: swagger\n }\n }\n \n export const fetchSwaggerFailure = (error: string) => {\n return {\n type: FETCH_SWAGGER_FAILURE,\n payload: error\n }\n }\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { Organization, User } from '../../data/interfaces';\n\nexport const USER_LOGIN_REQUEST = 'USER_LOGIN_REQUEST';\nexport const USER_LOGIN_SUCCESS = 'USER_LOGIN_SUCCESS';\nexport const USER_LOGIN_FAILURE = 'USER_LOGIN_FAILURE';\nexport const REQUIRE_LOGIN = 'REQUIRE_LOGIN';\n\nexport const USER_INFO_REQUEST = 'USER_INFO_REQUEST';\nexport const USER_INFO_SUCCESS = 'USER_INFO_SUCCESS';\nexport const USER_INFO_FAILURE = 'USER_INFO_FAILURE';\n\nexport const USER_ORG_INFO_REQUEST = \"USER_ORG_INFO_REQUEST\";\nexport const USER_ORG_INFO_SUCCESS = \"USER_ORG_INFO_SUCCESS\";\nexport const USER_ORG_INFO_FAILURE = \"USER_ORG_INFO_FAILURE\";\n\nexport const CHANGE_ORG_REQUEST = \"CHANGE_ORG_REQUEST\";\nexport const CHANGE_ORG_SUCCESS = \"CHANGE_ORG_SUCCESS\";\nexport const CHANGE_ORG_FAILURE = \"CHANGE_ORG_FAILURE\";\n\nexport const OBTAIN_APIM_TOKEN_REQUEST = 'OBTAIN_APIM_TOKEN_REQUEST';\nexport const OBTAIN_APIM_TOKEN_SUCCESS = 'OBTAIN_APIM_TOKEN_SUCCESS';\nexport const OBTAIN_APIM_TOKEN_FAILURE = 'OBTAIN_APIM_TOKEN_FAILURE';\n\nexport const ADD_ENTERPRISE_USER_REQUEST = 'ADD_ENTERPRISE_USER_REQUEST';\nexport const ADD_ENTERPRISE_USER_SUCCESS = 'ADD_ENTERPRISE_USER_SUCCESS';\nexport const ADD_ENTERPRISE_USER_FAILURE = 'ADD_ENTERPRISE_USER_FAILURE';\n\nexport interface UserActions {\n type: typeof USER_LOGIN_REQUEST | typeof USER_LOGIN_SUCCESS | typeof USER_LOGIN_FAILURE |\n typeof REQUIRE_LOGIN | typeof USER_INFO_REQUEST | typeof USER_INFO_SUCCESS | typeof USER_INFO_FAILURE |\n typeof USER_ORG_INFO_REQUEST | typeof USER_ORG_INFO_SUCCESS | typeof USER_ORG_INFO_FAILURE |\n typeof CHANGE_ORG_REQUEST | typeof CHANGE_ORG_SUCCESS | typeof CHANGE_ORG_FAILURE |\n typeof OBTAIN_APIM_TOKEN_FAILURE | typeof OBTAIN_APIM_TOKEN_REQUEST | typeof OBTAIN_APIM_TOKEN_SUCCESS |\n typeof ADD_ENTERPRISE_USER_REQUEST | typeof ADD_ENTERPRISE_USER_SUCCESS | typeof ADD_ENTERPRISE_USER_FAILURE,\n payload?: User | Record | string | Organization[] | Organization,\n status?: number\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { Organization, User } from '../../data/interfaces';\nimport {\n USER_LOGIN_REQUEST, USER_LOGIN_SUCCESS, USER_LOGIN_FAILURE, REQUIRE_LOGIN,\n USER_INFO_REQUEST, USER_INFO_SUCCESS, USER_INFO_FAILURE,\n USER_ORG_INFO_REQUEST, USER_ORG_INFO_SUCCESS, USER_ORG_INFO_FAILURE,\n CHANGE_ORG_REQUEST, CHANGE_ORG_SUCCESS, CHANGE_ORG_FAILURE,\n OBTAIN_APIM_TOKEN_SUCCESS, OBTAIN_APIM_TOKEN_REQUEST, OBTAIN_APIM_TOKEN_FAILURE,\n ADD_ENTERPRISE_USER_REQUEST, ADD_ENTERPRISE_USER_SUCCESS, ADD_ENTERPRISE_USER_FAILURE\n} from '../types/user';\nimport { DecodedIDTokenPayload } from '@asgardeo/auth-react';\n\nexport const userLoginRequest = () => {\n return {\n type: USER_LOGIN_REQUEST\n }\n}\n\nexport const userLoginSuccess = (user: User) => {\n return {\n type: USER_LOGIN_SUCCESS,\n payload: user,\n }\n}\n\nexport const userLoginFailure = (error: string) => {\n return {\n type: USER_LOGIN_FAILURE,\n payload: error\n }\n}\n\nexport const requireLogin = () => {\n return {\n type: REQUIRE_LOGIN\n }\n}\n\nexport const fetchUserInfoRequest = () => {\n return {\n type: USER_INFO_REQUEST\n }\n}\n\nexport const fetchUserInfoSuccess = (userInfo: DecodedIDTokenPayload | undefined) => {\n return {\n type: USER_INFO_SUCCESS,\n payload: userInfo\n }\n}\n\nexport const fetchUserInfoFailure = (error: string) => {\n return {\n type: USER_INFO_FAILURE,\n payload: error\n }\n}\n\nexport const fetchUserOrgInfoRequest = () => {\n return {\n type: USER_ORG_INFO_REQUEST\n }\n}\n\nexport const fetchUserOrgInfoSuccess = (orgs: Organization[], status: number) => {\n return {\n type: USER_ORG_INFO_SUCCESS,\n payload: orgs,\n status: status\n }\n}\n\nexport const fetchUserOrgInfoFailure = (error: string) => {\n return {\n type: USER_ORG_INFO_FAILURE,\n payload: error\n }\n}\n\nexport const addEnterpriseUserRequest = () => {\n return {\n type: ADD_ENTERPRISE_USER_REQUEST\n }\n}\n\nexport const addEnterpriseUserSuccess = (orgs: Organization[]) => {\n return {\n type: ADD_ENTERPRISE_USER_SUCCESS,\n payload: orgs\n }\n}\n\nexport const addEnterpriseUserFailure = (error: string) => {\n return {\n type: ADD_ENTERPRISE_USER_FAILURE,\n payload: error\n }\n}\n\nexport const changeUserOrganizationRequest = () => {\n return {\n type: CHANGE_ORG_REQUEST\n }\n}\n\nexport const changeUserOrganizationSuccess = (selectedOrg: Organization) => {\n return {\n type: CHANGE_ORG_SUCCESS,\n payload: selectedOrg\n }\n}\n\nexport const changeUserOrganizationFailure = (error: string) => {\n return {\n type: CHANGE_ORG_FAILURE,\n payload: error\n }\n}\n\nexport const obtainApimTokenRequest = () => {\n return {\n type: OBTAIN_APIM_TOKEN_REQUEST\n }\n}\n\nexport const obtainApimTokenSuccess = (user: User) => {\n return {\n type: OBTAIN_APIM_TOKEN_SUCCESS,\n payload: user\n }\n}\n\nexport const obtainApimTokenFailure = (error: string) => {\n return {\n type: OBTAIN_APIM_TOKEN_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { IDP, IDPs } from \"../../data/interfaces\";\n\nexport const FETCH_IDP_REQUEST = 'FETCH_IDP_REQUEST';\nexport const FETCH_IDP_SUCCESS = 'FETCH_IDP_SUCCESS';\nexport const FETCH_IDP_FAILURE = 'FETCH_IDP_FAILURE';\n\nexport interface IDPsAction {\n type: typeof FETCH_IDP_REQUEST | typeof FETCH_IDP_SUCCESS | typeof FETCH_IDP_FAILURE\n payload?: IDPs | IDP | string\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport {\n FETCH_API_REQUEST, FETCH_API_SUCCESS, FETCH_API_FAILURE, ApiActions,\n FETCH_API_LIST_REQUEST, FETCH_API_LIST_SUCCESS, FETCH_API_LIST_FAILURE,\n FETCH_THUMBNAIL_REQUEST, FETCH_THUMBNAIL_SUCCESS, FETCH_THUMBNAIL_FAILURE,\n FETCH_THUMBNAIL_LIST_REQUEST, FETCH_THUMBNAIL_LIST_SUCCESS, FETCH_THUMBNAIL_LIST_FAILURE, \n SET_SECURITY_HEADERS,\n FETCH_MAJOR_VERSION_API_LIST_REQUEST,\n FETCH_MAJOR_VERSION_API_LIST_SUCCESS,\n FETCH_MAJOR_VERSION_API_LIST_FAILURE,\n FETCH_FEATURED_API_LIST_SUCCESS,\n FEATCH_FEATURED_API_LIST_REQUEST,\n FETCH_FEATURED_API_LIST_FAILURE,\n} from '../types/api';\n\nconst initialState = {\n loading: true,\n api: {},\n apiList: {},\n featuredApiList: {},\n featuredApiListLoading: false,\n majorVersionApiList: {},\n majorVersionApisLoading: false,\n apiThumbnailLoading: false,\n apiThumbnail: undefined,\n thumbnailMap: {},\n error: '',\n headers: {\n headerName: '',\n headerValue: ''\n }\n}\n\nconst apiReducer = (state = initialState, action: ApiActions) => {\n switch (action.type) {\n case FETCH_API_REQUEST:\n return {\n ...state,\n api: {},\n loading: true\n }\n case FETCH_API_SUCCESS:\n return {\n ...state,\n loading: false,\n api: action.payload,\n error: ''\n }\n case FETCH_API_FAILURE:\n return {\n ...state,\n loading: false,\n api: {},\n error: action.payload\n }\n case FETCH_API_LIST_REQUEST:\n return {\n ...state,\n loading: true,\n thumbnailMap: {}\n }\n case FETCH_API_LIST_SUCCESS:\n return {\n ...state,\n loading: false,\n apiList: action.payload,\n error: ''\n }\n case FETCH_API_LIST_FAILURE:\n return {\n loading: false,\n apiList: {},\n error: action.payload\n }\n case FEATCH_FEATURED_API_LIST_REQUEST:\n return {\n ...state,\n featuredApiListLoading: true,\n featuredApiList: {},\n thumbnailMap: {}\n }\n case FETCH_FEATURED_API_LIST_SUCCESS:\n return {\n ...state,\n featuredApiListLoading: false,\n featuredApiList: action.payload,\n error: ''\n }\n case FETCH_FEATURED_API_LIST_FAILURE:\n return {\n featuredApiListLoading: false,\n featuredApiList: {},\n error: action.payload\n }\n case FETCH_MAJOR_VERSION_API_LIST_REQUEST:\n return {\n ...state,\n majorVersionApisLoading: true,\n majorVersionApiList: {},\n thumbnailMap: {}\n }\n case FETCH_MAJOR_VERSION_API_LIST_SUCCESS:\n return {\n ...state,\n majorVersionApisLoading: false,\n majorVersionApiList: action.payload,\n error: ''\n }\n case FETCH_MAJOR_VERSION_API_LIST_FAILURE:\n return {\n majorVersionApisLoading: false,\n majorVersionApiList: {},\n error: action.payload\n }\n case FETCH_THUMBNAIL_REQUEST:\n return {\n ...state,\n apiThumbnailLoading: true,\n apiThumbnail: undefined\n }\n case FETCH_THUMBNAIL_SUCCESS:\n return {\n ...state,\n apiThumbnailLoading: false,\n apiThumbnail: action.payload\n }\n case FETCH_THUMBNAIL_FAILURE:\n return {\n ...state,\n apiThumbnailLoading: false,\n apiThumbnail: undefined\n }\n case FETCH_THUMBNAIL_LIST_REQUEST:\n return {\n ...state,\n loading: true,\n thumbnailMap: {}\n }\n case FETCH_THUMBNAIL_LIST_SUCCESS:\n return {\n ...state,\n loading: false,\n thumbnailMap: action.payload\n }\n case FETCH_THUMBNAIL_LIST_FAILURE:\n return {\n ...state,\n loading: false,\n thumbnailMap: {}\n }\n case SET_SECURITY_HEADERS:\n return {\n ...state,\n headers: action.payload\n }\n default:\n return state\n }\n}\n\nexport default apiReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport {\n USER_LOGIN_REQUEST, USER_LOGIN_SUCCESS, USER_LOGIN_FAILURE, REQUIRE_LOGIN,\n USER_INFO_REQUEST, USER_INFO_SUCCESS, USER_INFO_FAILURE,\n USER_ORG_INFO_REQUEST, USER_ORG_INFO_SUCCESS, USER_ORG_INFO_FAILURE,\n CHANGE_ORG_REQUEST, CHANGE_ORG_SUCCESS, CHANGE_ORG_FAILURE, UserActions,\n OBTAIN_APIM_TOKEN_FAILURE, OBTAIN_APIM_TOKEN_SUCCESS, OBTAIN_APIM_TOKEN_REQUEST,\n ADD_ENTERPRISE_USER_REQUEST, ADD_ENTERPRISE_USER_SUCCESS, ADD_ENTERPRISE_USER_FAILURE\n} from '../types/user';\n\nconst initialState = {\n loading: false,\n user: {},\n userInfo: {},\n orgs: [],\n selectedOrg: {},\n error: '',\n signedIn: false,\n apimTokenObtained: false,\n apimTokenObtaining: false,\n requireLogin: false,\n status: 0,\n}\n\nconst userReducer = (state = initialState, action: UserActions) => {\n switch (action.type) {\n case USER_LOGIN_REQUEST:\n return {\n ...state,\n loading: true,\n user: {},\n error: '',\n signedIn: false,\n apimTokenObtained: false,\n apimTokenObtaining: false,\n }\n case USER_LOGIN_SUCCESS:\n return {\n ...state,\n loading: false,\n user: action.payload,\n error: '',\n signedIn: true,\n }\n case USER_LOGIN_FAILURE:\n return {\n ...state,\n loading: false,\n user: {},\n error: action.payload,\n signedIn: false\n }\n case REQUIRE_LOGIN:\n return {\n ...state,\n loading: true,\n requireLogin: true,\n }\n case USER_INFO_REQUEST:\n return {\n ...state,\n loading: true,\n }\n case USER_INFO_SUCCESS:\n return {\n ...state,\n userInfo: action.payload\n }\n case USER_INFO_FAILURE:\n return {\n ...state,\n error: action.payload\n }\n case USER_ORG_INFO_REQUEST:\n return {\n ...state,\n loading: true\n }\n case USER_ORG_INFO_SUCCESS:\n return {\n ...state,\n loading: false,\n orgs: action.payload,\n status: action.status\n }\n case USER_ORG_INFO_FAILURE:\n return {\n ...state,\n loading: false,\n orgs: [],\n error: action.payload\n }\n case CHANGE_ORG_REQUEST:\n return {\n ...state,\n loading: true\n }\n case CHANGE_ORG_SUCCESS: {\n return {\n ...state,\n loading: false,\n selectedOrg: action.payload\n }\n }\n case CHANGE_ORG_FAILURE: {\n return {\n ...state,\n loading: false,\n selectedOrg: undefined,\n error: action.payload\n }\n }\n case OBTAIN_APIM_TOKEN_REQUEST:\n return {\n ...state,\n loading: true,\n apimTokenObtained: false,\n apimTokenObtaining: true,\n }\n case OBTAIN_APIM_TOKEN_SUCCESS: {\n return {\n ...state,\n loading: false,\n apimTokenObtained: true,\n apimTokenObtaining: false,\n user: action.payload\n }\n }\n case OBTAIN_APIM_TOKEN_FAILURE: {\n return {\n ...state,\n loading: false,\n apimTokenObtained: false,\n apimTokenObtaining: false,\n error: action.payload\n }\n }\n case ADD_ENTERPRISE_USER_REQUEST: {\n return {\n ...state,\n loading: true,\n error: ''\n }\n }\n case ADD_ENTERPRISE_USER_SUCCESS: {\n return {\n ...state,\n loading: false,\n orgs: action.payload,\n error: ''\n }\n }\n case ADD_ENTERPRISE_USER_FAILURE: {\n return {\n ...state,\n loading: false,\n error: action.payload\n }\n }\n default:\n return state\n }\n}\n\nexport default userReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { Comments, Comment } from '../../data/interfaces'\nimport {\n FETCH_API_COMMENTS_REQUEST, FETCH_API_COMMENTS_SUCCESS, FETCH_API_COMMENTS_FAILURE,\n POST_COMMENT_REQUEST, POST_COMMENT_SUCCESS, POST_COMMENT_FAILURE,\n DELETE_COMMENT_REQUEST, DELETE_COMMENT_SUCCESS, DELETE_COMMENT_FAILURE, CommentActions, \n EDIT_COMMENT_FAILURE, EDIT_COMMENT_REQUEST, EDIT_COMMENT_SUCCESS\n} from '../types/comments'\n\ninterface CommentsState {\n loading: boolean,\n comments: Comments,\n error: string,\n}\n\nconst initialState: CommentsState = {\n loading: true,\n comments: { count: 0, list: [], pagination: null },\n error: ''\n}\n\nconst apiCommentsReducer = (state = initialState, action: CommentActions) => {\n switch (action.type) {\n case FETCH_API_COMMENTS_REQUEST:\n return {\n ...state,\n loading: true,\n error: ''\n }\n case FETCH_API_COMMENTS_SUCCESS:\n return {\n ...state,\n loading: false,\n comments: action.payload,\n error: ''\n }\n case FETCH_API_COMMENTS_FAILURE:\n return {\n ...state,\n loading: false,\n comments: { count: 0, list: [], pagination: null },\n error: action.payload\n }\n case POST_COMMENT_REQUEST:\n return {\n ...state,\n loading: true\n }\n case POST_COMMENT_SUCCESS:\n return {\n ...state,\n loading: false,\n comments: {\n ...state.comments,\n list: [action.payload, ...state.comments.list],\n count: state.comments.count + 1\n }\n }\n case POST_COMMENT_FAILURE:\n return {\n ...state,\n loading: false,\n error: action.payload\n }\n case DELETE_COMMENT_REQUEST:\n return {\n ...state,\n loading: true\n }\n case DELETE_COMMENT_SUCCESS:\n return {\n ...state,\n loading: false,\n comments: {\n ...state.comments,\n list: state.comments.list.filter( comment => comment.id !== action.payload),\n count: state.comments.count - 1\n }\n }\n case DELETE_COMMENT_FAILURE:\n return {\n ...state,\n loading: false,\n error: action.payload\n }\n case EDIT_COMMENT_REQUEST:\n return {\n ...state,\n loading: true\n }\n case EDIT_COMMENT_SUCCESS:\n return {\n ...state,\n loading: false,\n comments: {\n ...state.comments,\n list: [action.payload, ...state.comments.list.filter(comment => comment.id !== (action.payload as unknown as Comment).id)],\n }\n }\n case EDIT_COMMENT_FAILURE:\n return {\n ...state,\n loading: false,\n error: action.payload\n }\n default: return state\n }\n}\n\nexport default apiCommentsReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport {\n FETCH_RATING_REQUEST, FETCH_RATING_SUCCESS, FETCH_RATING_FAILURE, POST_RATING_REQUEST,\n POST_RATING_SUCCESS, POST_RATING_FAILURE, RatingActions\n} from '../types/rating';\n\nconst initialState = {\n loading: true,\n ratings: {},\n error: ''\n}\n\nconst ratingsReducer = (state = initialState, action: RatingActions) => {\n switch (action.type) {\n case FETCH_RATING_REQUEST:\n return {\n ...state,\n loading: true,\n }\n case FETCH_RATING_SUCCESS:\n return {\n ...state,\n loading: false,\n ratings: action.payload,\n error: ''\n }\n case FETCH_RATING_FAILURE:\n return {\n ...state,\n loading: true,\n ratings: {},\n error: action.payload\n }\n case POST_RATING_REQUEST:\n return {\n ...state,\n loading: true,\n }\n case POST_RATING_SUCCESS:\n return {\n ...state,\n loading: false,\n }\n case POST_RATING_FAILURE:\n return {\n ...state,\n loading: true,\n error: action.payload\n }\n default: return state\n }\n}\n\nexport default ratingsReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport {FETCH_DOCUMENTS_REQUEST, FETCH_DOCUMENTS_SUCCESS, FETCH_DOCUMENTS_FAILURE, DocumentActions} from '../types/documents';\n\nconst initialState = {\n loading: true,\n documents: {},\n error: ''\n}\n\nconst documentsReducer = (state = initialState, action: DocumentActions) => {\n switch(action.type) {\n case FETCH_DOCUMENTS_REQUEST:\n return {\n ...state,\n loading: true\n }\n case FETCH_DOCUMENTS_SUCCESS:\n return {\n ...state,\n loading: false,\n documents: action.payload,\n error: ''\n }\n case FETCH_DOCUMENTS_FAILURE:\n return {\n ...state,\n loading: true,\n documents: {},\n error: action.payload\n }\n default: return state\n }\n}\n\nexport default documentsReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { Pagination, Subscription, SubscriptionList } from '../../data/interfaces';\nimport {\n CreateSubscriptionsAction, CREATE_SUBSCRIPTIONS_FAILURE, CREATE_SUBSCRIPTIONS_REQUEST,\n CREATE_SUBSCRIPTIONS_SUCCESS, DELETE_SUBSCRIPTIONS_FAILURE, DELETE_SUBSCRIPTIONS_REQUEST,\n DELETE_SUBSCRIPTIONS_SUCCESS, FETCH_SUBSCRIPTIONS_FAILURE, FETCH_SUBSCRIPTIONS_REQUEST,\n FETCH_SUBSCRIPTIONS_SUCCESS, SubscriptionsAction, UPDATE_SUBSCRIPTION_FAILURE,\n UPDATE_SUBSCRIPTION_REQUEST, UPDATE_SUBSCRIPTION_SUCCESS\n} from '../types/subscriptions';\n\ninterface SubscriptionState {\n isLoading: boolean,\n isDeletingSubscription: boolean;\n subscriptions: SubscriptionList,\n error: string,\n fetchSuccess: boolean,\n updateSuccess: boolean,\n}\n\nconst initialState: SubscriptionState = {\n isLoading: false,\n isDeletingSubscription: false,\n subscriptions: { count: 0, list: [], pagination: {} as Pagination },\n error: '',\n fetchSuccess: false,\n updateSuccess: false,\n}\n\nconst subscriptionsReducer = (state = initialState, action: SubscriptionsAction | CreateSubscriptionsAction) => {\n switch (action.type) {\n case FETCH_SUBSCRIPTIONS_REQUEST:\n return {\n ...state,\n isLoading: true\n }\n case FETCH_SUBSCRIPTIONS_SUCCESS:\n return {\n ...state,\n isLoading: false,\n subscriptions: action.payload\n }\n case FETCH_SUBSCRIPTIONS_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: action.payload\n }\n case UPDATE_SUBSCRIPTION_REQUEST:\n return {\n ...state,\n isLoading: true,\n updateSuccess: false\n }\n case UPDATE_SUBSCRIPTION_SUCCESS:\n return {\n ...state,\n isLoading: false,\n updateSuccess: true,\n subscriptions: {\n ...state.subscriptions,\n list: [\n ...state.subscriptions.list.filter((subscription) => {\n return subscription.subscriptionId !== (action.payload as Subscription).subscriptionId;\n }),\n action.payload\n ]\n }\n };\n case UPDATE_SUBSCRIPTION_FAILURE:\n return {\n ...state,\n isLoading: false,\n updateSuccess: false,\n error: action.payload\n }\n case CREATE_SUBSCRIPTIONS_REQUEST:\n return {\n ...state,\n isLoading: true\n }\n case CREATE_SUBSCRIPTIONS_SUCCESS:\n return {\n ...state,\n isLoading: false,\n subscriptions: {\n ...state.subscriptions,\n list: [...state.subscriptions.list, action.payload],\n count: state.subscriptions.count + 1\n }\n };\n case CREATE_SUBSCRIPTIONS_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: action.payload\n }\n case DELETE_SUBSCRIPTIONS_REQUEST:\n return {\n ...state,\n isDeletingSubscription: true\n }\n case DELETE_SUBSCRIPTIONS_SUCCESS:\n return {\n ...state,\n isLoading: false,\n isDeletingSubscription: false,\n subscriptions: {\n ...state.subscriptions,\n list: state.subscriptions.list.filter((subscription) => {\n return subscription.subscriptionId !== action.payload;\n }),\n count: state.subscriptions.count - 1\n }\n };\n case DELETE_SUBSCRIPTIONS_FAILURE:\n return {\n ...state,\n isDeletingSubscription: false,\n isLoading: false,\n error: action.payload\n }\n default:\n return state;\n }\n}\n\nexport default subscriptionsReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { KeyList } from \"../../data/interfaces\";\nimport { mapAndAddKeyToKeyList } from '../../data/utils';\nimport {\n FETCH_KEYS_REQUEST, FETCH_KEYS_SUCCESS, FETCH_KEYS_FAILURE, AppKeysAction,\n CREATE_KEYS_REQUEST, CREATE_KEYS_SUCCESS, CREATE_KEYS_FAILURE, CreateAppKeysAction,\n UPDATE_KEYS_REQUEST, UPDATE_KEYS_SUCCESS, UPDATE_KEYS_FAILURE, UpdateAppKeysAction,\n CREATE_OAUTH_TOKEN_REQUEST, CREATE_OAUTH_TOKEN_SUCCESS, CREATE_OAUTH_TOKEN_FAILURE, CreateOauthTokenAction,\n CREATE_APIKEY_REQUEST, CREATE_APIKEY_SUCCESS, CREATE_APIKEY_FAILURE, CreateApiKeyAction, \n MAP_APPLICATION_KEY_REQUEST, MAP_APPLICATION_KEY_SUCCESS, MAP_APPLICATION_KEY_FAILURE, ApplicationKeyMappingAction,\n CREATE_API_TEST_KEY_REQUEST, CreateApiTestKeyAction, CREATE_API_TEST_KEY_SUCCESS, CREATE_API_TEST_KEY_FAILURE\n} from '../types/applicationKeys';\n\nconst initialState = {\n isLoading: false,\n currentKey: null,\n keys: null,\n error: null,\n oauthToken: { accessToken: '', tokenScopes: [], validityTime: 0 },\n isTokenGenerating: false,\n isTokenGenerationSuccess: false,\n apiKey: { apikey: '', validityTime: 0 },\n isApikeyGenerating: false,\n isApikeyGenerationSuccess: false,\n isKeyMappingSuccess: false,\n isKeyMapping: false,\n isKeyUpdating: false,\n}\n\nconst applicationKeysReducer = (state = initialState, action: AppKeysAction | CreateAppKeysAction |\n UpdateAppKeysAction | CreateOauthTokenAction | CreateApiKeyAction\n | ApplicationKeyMappingAction | CreateApiTestKeyAction) => {\n switch (action.type) {\n case FETCH_KEYS_REQUEST:\n return {\n ...state,\n isLoading: true\n }\n case FETCH_KEYS_SUCCESS:\n return {\n ...state,\n isLoading: false,\n currentKey: (action.payload as KeyList).list[0],\n keys: action.payload\n }\n case FETCH_KEYS_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: action.payload\n }\n case CREATE_KEYS_REQUEST:\n return {\n ...state,\n isLoading: true\n }\n case CREATE_KEYS_SUCCESS:\n return {\n ...state,\n isLoading: false,\n currentKey: action.payload,\n keys: mapAndAddKeyToKeyList(action.payload, state.keys)\n }\n case CREATE_KEYS_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: action.payload\n }\n case UPDATE_KEYS_REQUEST:\n return {\n ...state,\n isLoading: true,\n isKeyUpdating: true\n }\n case UPDATE_KEYS_SUCCESS:\n return {\n ...state,\n isLoading: false,\n isKeyUpdating: false,\n currentKey: action.payload,\n keys: mapAndAddKeyToKeyList(action.payload, state.keys)\n }\n case UPDATE_KEYS_FAILURE:\n return {\n ...state,\n isLoading: false,\n isKeyUpdating: false,\n error: action.payload\n }\n case CREATE_OAUTH_TOKEN_REQUEST:\n return {\n ...state,\n isTokenGenerating: true\n };\n case CREATE_OAUTH_TOKEN_SUCCESS:\n return {\n ...state,\n isTokenGenerating: false,\n isTokenGenerationSuccess: true,\n oauthToken: action.payload\n };\n case CREATE_OAUTH_TOKEN_FAILURE:\n return {\n ...state,\n isTokenGenerating: false,\n isTokenGenerationSuccess: false,\n error: action.payload\n };\n case CREATE_APIKEY_REQUEST:\n return {\n ...state,\n isApikeyGenerating: true\n };\n case CREATE_APIKEY_SUCCESS:\n return {\n ...state,\n isApikeyGenerating: false,\n isApikeyGenerationSuccess: true,\n apiKey: action.payload\n };\n case CREATE_APIKEY_FAILURE:\n return {\n ...state,\n isApikeyGenerating: false,\n isApikeyGenerationSuccess: false,\n error: action.payload\n };\n case MAP_APPLICATION_KEY_REQUEST:\n return {\n ...state,\n isKeyMapping: true,\n isLoading: true,\n };\n case MAP_APPLICATION_KEY_SUCCESS:\n return {\n ...state,\n isLoading: false,\n isKeyMappingSuccess: true,\n isKeyMapping: false,\n currentKey: action.payload,\n };\n case MAP_APPLICATION_KEY_FAILURE:\n return {\n ...state,\n isLoading: false,\n isKeyMappingSuccess: false,\n error: action.payload\n };\n case CREATE_API_TEST_KEY_REQUEST:\n return {\n ...state,\n isApikeyGenerating: true\n };\n case CREATE_API_TEST_KEY_SUCCESS:\n return {\n ...state,\n isApikeyGenerating: false,\n isApikeyGenerationSuccess: true,\n apiKey: action.payload\n };\n case CREATE_API_TEST_KEY_FAILURE:\n return {\n ...state,\n isApikeyGenerating: false,\n isApikeyGenerationSuccess: false,\n error: action.payload\n };\n default:\n return state\n }\n}\n\nexport default applicationKeysReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport {\n FETCH_SWAGGER_REQUEST, FETCH_SWAGGER_SUCCESS,\n FETCH_SWAGGER_FAILURE, SwaggerAction\n} from '../types/swagger';\n\nconst initialState = {\n loading: true,\n swagger: {},\n error: ''\n}\n\nconst swaggerReducer = (state = initialState, action: SwaggerAction) => {\n switch (action.type) {\n case FETCH_SWAGGER_REQUEST:\n return {\n ...state,\n loading: true,\n }\n case FETCH_SWAGGER_SUCCESS:\n return {\n ...state,\n loading: false,\n swagger: action.payload\n }\n case FETCH_SWAGGER_FAILURE:\n return {\n ...state,\n loading: false,\n error: action.payload\n }\n default:\n return state\n }\n}\n\nexport default swaggerReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { Application, ApplicationList } from \"../../data/interfaces\";\nimport {\n ApplicationsAction, CreateApplicationsAction,\n CREATE_APPLICATION_FAILURE, CREATE_APPLICATION_REQUEST, CREATE_APPLICATION_SUCCESS,\n DELETE_APPLICATION_FAILURE, DELETE_APPLICATION_REQUEST, DELETE_APPLICATION_SUCCESS,\n FETCH_APPLICATION_DETAILS_FAILURE, FETCH_APPLICATION_DETAILS_REQUEST, FETCH_APPLICATION_DETAILS_SUCCESS,\n FETCH_APPLICATION_FAILURE, FETCH_APPLICATION_REQUEST, FETCH_APPLICATION_SUCCESS,\n SHARE_APPLICATION_SUCCESS,\n UPDATE_APPLICATION_FAILURE, UPDATE_APPLICATION_REQUEST, UPDATE_APPLICATION_SUCCESS\n} from '../types/applications';\n\ninterface ApplicationReducerState {\n isLoading: boolean,\n applications: ApplicationList,\n error: string\n}\n\nconst initialState: ApplicationReducerState = {\n isLoading: false,\n applications: { count: 0, list: [], pagination: {offset: 0, limit: 25, next: '', previous: '', total: 25} },\n error: ''\n}\n\nconst applicationsReducer = (state = initialState, action: ApplicationsAction | CreateApplicationsAction) => {\n switch (action.type) {\n case FETCH_APPLICATION_REQUEST:\n return {\n ...state,\n isLoading: true,\n }\n case FETCH_APPLICATION_SUCCESS:\n return {\n ...state,\n isLoading: false,\n applications: action.payload\n }\n case FETCH_APPLICATION_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: action.payload\n }\n case CREATE_APPLICATION_REQUEST:\n return {\n ...state,\n isLoading: true,\n }\n case CREATE_APPLICATION_SUCCESS:\n return {\n ...state,\n isLoading: false,\n applications: {\n list : state.applications ? [...state.applications?.list, action.payload] : [action.payload],\n count: state.applications ? state.applications.count + 1 : 1,\n pagination: state.applications ? state.applications.pagination : {}\n }\n }\n case CREATE_APPLICATION_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: action.payload\n }\n case DELETE_APPLICATION_REQUEST:\n return {\n ...state,\n isLoading: true,\n }\n case DELETE_APPLICATION_SUCCESS:\n return {\n ...state,\n isLoading: false,\n applications: {\n count: state.applications?.count -1,\n list: state.applications?.list.filter((app: Application) => {\n return app.applicationId !== action.payload;\n })\n }\n };\n case DELETE_APPLICATION_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: action.payload\n }\n case FETCH_APPLICATION_DETAILS_REQUEST:\n return {\n ...state,\n isLoading: true,\n };\n case FETCH_APPLICATION_DETAILS_SUCCESS:\n return {\n ...state,\n isLoading: false,\n applications: { count: 1, list: [action.payload], pagination: {} }\n };\n case FETCH_APPLICATION_DETAILS_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: action.payload\n };\n case UPDATE_APPLICATION_REQUEST:\n return {\n ...state,\n isLoading: true,\n };\n case UPDATE_APPLICATION_SUCCESS:\n return {\n ...state,\n isLoading: false,\n applications: {\n ...state.applications,\n list: [\n ...state.applications.list.filter((app: Application) => app.applicationId !=\n (action.payload as unknown as Application).applicationId),\n action.payload\n ]\n }\n };\n case UPDATE_APPLICATION_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: action.payload\n };\n case SHARE_APPLICATION_SUCCESS:\n return {\n ...state,\n isLoading: false,\n applications: {\n ...state.applications,\n list: [\n ...state.applications.list.filter((app: Application) => app.applicationId !=\n (action.payload as unknown as Application).applicationId),\n action.payload\n ]\n }\n }; \n default:\n return state\n }\n}\n\nexport default applicationsReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { CredentialsReducer } from '../../data/interfaces';\nimport { mapAndAddKeyToKeyList } from '../../data/utils';\nimport {\n CREATE_API_KEYS_CREDENTIALS_REQUEST, CREATE_API_KEYS_CREDENTIALS_SUCCESS, CREATE_API_KEYS_CREDENTIALS_FAILURE,\n FETCH_API_KEYS_CREDENTIALS_REQUEST, FETCH_API_KEYS_CREDENTIALS_SUCCESS, FETCH_API_KEYS_CREDENTIALS_FAILURE,\n DELETE_API_KEYS_CREDENTIALS_REQUEST, DELETE_API_KEYS_CREDENTIALS_SUCCESS, DELETE_API_KEYS_CREDENTIALS_FAILURE,\n CredentialsAction\n} from '../types/credentials';\n\nconst initialState: CredentialsReducer = {\n isKeyFetching: false,\n isKeyGenerating: false,\n isKeyDeleting: false,\n isTokenGenerating: false,\n keys: null,\n oauthToken: { accessToken: '', tokenScopes: [], validityTime: 0 },\n error: '',\n}\n\nconst credentialsReducer = (state = initialState, action: CredentialsAction) => {\n switch (action.type) {\n case FETCH_API_KEYS_CREDENTIALS_REQUEST:\n return {\n ...state,\n isKeyFetching: true,\n keys: null\n }\n case FETCH_API_KEYS_CREDENTIALS_SUCCESS:\n return {\n ...state,\n isKeyFetching: false,\n keys: action.payload\n }\n case FETCH_API_KEYS_CREDENTIALS_FAILURE:\n return {\n ...state,\n isKeyFetching: false,\n error: action.payload\n }\n case CREATE_API_KEYS_CREDENTIALS_REQUEST:\n return {\n ...state,\n isKeyGenerating: true\n }\n case CREATE_API_KEYS_CREDENTIALS_SUCCESS:\n return {\n ...state,\n isKeyGenerating: false,\n keys: mapAndAddKeyToKeyList(action.payload, state.keys)\n }\n case CREATE_API_KEYS_CREDENTIALS_FAILURE:\n return {\n ...state,\n isKeyGenerating: false,\n error: action.payload\n }\n case DELETE_API_KEYS_CREDENTIALS_REQUEST:\n return {\n ...state,\n isKeyDeleting: true\n }\n case DELETE_API_KEYS_CREDENTIALS_SUCCESS:\n return {\n ...state,\n isKeyDeleting: false,\n keys: action.payload\n }\n case DELETE_API_KEYS_CREDENTIALS_FAILURE:\n return {\n ...state,\n isKeyDeleting: false,\n error: action.payload\n }\n default:\n return state;\n }\n}\n\nexport default credentialsReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { FETCH_SDK_LANGUAGES_REQUEST, FETCH_SDK_LANGUAGES_SUCCESS,\n FETCH_SDK_LANGUAGES_FAILURE, SdkAction } from '../types/sdk';\n\nconst initialState = {\n loading: true,\n languages: [],\n error: ''\n}\n\nconst sdkReducer = (state = initialState, action: SdkAction ) => {\n switch (action.type){\n case FETCH_SDK_LANGUAGES_REQUEST:\n return {\n ...state,\n loading: true\n }\n case FETCH_SDK_LANGUAGES_SUCCESS:\n return {\n ...state,\n loading: false,\n languages: action.payload\n }\n case FETCH_SDK_LANGUAGES_FAILURE:\n return {\n ...state,\n loading: false,\n error: action.payload \n }\n default:\n return state\n }\n}\n\nexport default sdkReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { NotificationReducer, Notificationtype } from '../../data/interfaces';\nimport { SUCCESS, ERROR, NotificationAction, RESET } from '../types/notification';\n\nconst initialState: NotificationReducer = {\n type: Notificationtype.default,\n message: ''\n}\n\nconst notificationReducer = (state = initialState, action: NotificationAction) => {\n switch (action.type) {\n case SUCCESS:\n return {\n type: Notificationtype.success,\n message: action.message\n }\n case ERROR:\n return {\n type: Notificationtype.error,\n message: action.message\n }\n case RESET:\n return {\n type: Notificationtype.info,\n message: \"\"\n }\n default:\n return state\n }\n}\n\nexport default notificationReducer;\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { ApiTagList } from '../../data/interfaces';\n\nexport const FETCH_API_TAGS_REQUEST = 'FETCH_API_TAGS_REQUEST';\nexport const FETCH_API_TAGS_SUCCESS = 'FETCH_API_TAGS_SUCCESS';\nexport const FETCH_API_TAGS_FAILURE = 'FETCH_API_TAGS_FAILURE';\n\nexport interface TagsActions {\n type: typeof FETCH_API_TAGS_REQUEST | typeof FETCH_API_TAGS_SUCCESS | typeof FETCH_API_TAGS_FAILURE,\n payload?: ApiTagList | string\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { ApiTagList, Pagination } from '../../data/interfaces'\nimport {\n FETCH_API_TAGS_REQUEST, FETCH_API_TAGS_SUCCESS, FETCH_API_TAGS_FAILURE, TagsActions\n} from '../types/tags'\n\ninterface TagsState {\n loading: boolean,\n tagList: ApiTagList,\n error: string,\n}\n\nconst initialState: TagsState = {\n loading: true,\n tagList: { count: 0, list: [], pagination: {} as Pagination },\n error: ''\n}\n\nconst apiTagsReducer = (state = initialState, action: TagsActions) => {\n switch (action.type) {\n case FETCH_API_TAGS_REQUEST:\n return {\n ...state,\n loading: true,\n error: ''\n }\n case FETCH_API_TAGS_SUCCESS:\n return {\n ...state,\n loading: false,\n tagList: action.payload,\n error: ''\n }\n case FETCH_API_TAGS_FAILURE:\n return {\n ...state,\n loading: false,\n tagList: { count: 0, list: [], pagination: null },\n error: action.payload\n }\n default: return state\n }\n}\n\nexport default apiTagsReducer;\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { ApiCategoryList } from '../../data/interfaces';\n\nexport const FETCH_API_CATEGORY_REQUEST = 'FETCH_API_CATEGORY_REQUEST';\nexport const FETCH_API_CATEGORY_SUCCESS = 'FETCH_API_CATEGORY_SUCCESS';\nexport const FETCH_API_CATEGORY_FAILURE = 'FETCH_API_CATEGORY_FAILURE';\n\nexport interface CategoryActions {\n type: typeof FETCH_API_CATEGORY_REQUEST | typeof FETCH_API_CATEGORY_SUCCESS | typeof FETCH_API_CATEGORY_FAILURE,\n payload?: ApiCategoryList | string\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { ApiCategoryList, Pagination } from '../../data/interfaces'\nimport {\n FETCH_API_CATEGORY_REQUEST, FETCH_API_CATEGORY_SUCCESS, FETCH_API_CATEGORY_FAILURE, CategoryActions\n} from '../types/categories'\n\ninterface CategoriesState {\n loading: boolean,\n categoryList: ApiCategoryList,\n error: string,\n}\n\nconst initialState: CategoriesState = {\n loading: true,\n categoryList: { count: 0, list: [] },\n error: ''\n}\n\nconst apiCategoriesReducer = (state = initialState, action: CategoryActions) => {\n switch (action.type) {\n case FETCH_API_CATEGORY_REQUEST:\n return {\n ...state,\n loading: true,\n error: ''\n }\n case FETCH_API_CATEGORY_SUCCESS:\n return {\n ...state,\n loading: false,\n categoryList: action.payload,\n error: ''\n }\n case FETCH_API_CATEGORY_FAILURE:\n return {\n ...state,\n loading: false,\n categoryList: { count: 0, list: [] },\n error: action.payload\n }\n default: return state\n }\n}\n\nexport default apiCategoriesReducer;\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { IDPs } from \"../../data/interfaces\";\nimport {\n IDPsAction, FETCH_IDP_REQUEST, FETCH_IDP_SUCCESS, FETCH_IDP_FAILURE\n} from '../types/idps';\n\ninterface IDPReducerState {\n isLoading: boolean,\n idps: IDPs,\n error: string\n}\n\nconst initialState: IDPReducerState = {\n isLoading: false,\n idps: { count: 0, list: [] },\n error: ''\n}\n\nconst idpReducer = (state = initialState, action: IDPsAction) => {\n switch (action.type) {\n\n case FETCH_IDP_REQUEST:\n return {\n ...state,\n isLoading: true,\n }\n case FETCH_IDP_SUCCESS:\n return {\n ...state,\n isLoading: false,\n idps: action.payload\n }\n\n case FETCH_IDP_FAILURE:\n return {\n ...state,\n isLoading: false,\n error: action.payload\n };\n default:\n return state\n }\n}\n\nexport default idpReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\nimport {GraphqlResponse} from '../../data/interfaces';\nimport {\n FETCH_GRAPHQL_REQUEST,\n FETCH_GRAPHQL_FAILURE,\n FETCH_GRAPHQL_SUCCESS,\n} from \"../types/api\";\nimport { GraphqlActions } from '../types/graphqlResponse';\n\ninterface GraphqlResponseState {\n graphqlInfo: GraphqlResponse,\n error: string,\n loading: boolean,\n}\n\nconst initialState: GraphqlResponseState = {\n graphqlInfo: {environments: [{organizationUuid:\" \", orgShared:true, name:\" \", description:\" \", id:\" \", vhost: \" \", choreoEnv:\" \", projectId:\" \", promoteFrom:[\" \"], namespace:\" \", externalApiEnvName:\" \"}]},\n error: '',\n loading: false,\n}\n\nconst graphqlReducer = (state = initialState, action: GraphqlActions) => {\n switch (action.type) {\n case FETCH_GRAPHQL_REQUEST:\n return {\n ...state,\n loading: true,\n error: ''\n }\n case FETCH_GRAPHQL_SUCCESS:\n return {\n ...state,\n loading: false,\n graphqlInfo: action.payload\n }\n case FETCH_GRAPHQL_FAILURE:\n return {\n ...state,\n loading: false,\n graphqlInfo: { data: {environments: []}},\n error: action.payload\n }\n default: return state\n }\n}\n\nexport default graphqlReducer;\n\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nexport const ADD_EXTERNAL_USER_TO_ORG_REQUEST = 'ADD_EXTERNAL_USER_TO_ORG_REQUEST';\nexport const ADD_EXTERNAL_USER_TO_ORG_SUCCESS = 'ADD_EXTERNAL_USER_TO_ORG_SUCCESS';\nexport const ADD_EXTERNAL_USER_TO_ORG_FAILURE = 'ADD_EXTERNAL_USER_TO_ORG_FAILURE';\n\nexport interface AddExternalUserToOrgActions {\n type: typeof ADD_EXTERNAL_USER_TO_ORG_REQUEST | typeof ADD_EXTERNAL_USER_TO_ORG_SUCCESS\n | typeof ADD_EXTERNAL_USER_TO_ORG_FAILURE,\n payload?: string\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport {\n ADD_EXTERNAL_USER_TO_ORG_FAILURE,\n ADD_EXTERNAL_USER_TO_ORG_REQUEST,\n ADD_EXTERNAL_USER_TO_ORG_SUCCESS,\n AddExternalUserToOrgActions\n} from '../types/addExternalUserToOrg';\n\nconst initialState = {\n loading: false,\n error: ''\n}\n\nconst addExternalUserToOrgReducer = (state = initialState, action: AddExternalUserToOrgActions) => {\n switch(action.type) {\n case ADD_EXTERNAL_USER_TO_ORG_REQUEST:\n return {\n ...state,\n loading: true\n }\n case ADD_EXTERNAL_USER_TO_ORG_SUCCESS:\n return {\n ...state,\n loading: false,\n error: ''\n }\n case ADD_EXTERNAL_USER_TO_ORG_FAILURE:\n return {\n ...state,\n loading: true,\n error: action.payload\n }\n default: return state\n }\n}\n\nexport default addExternalUserToOrgReducer;\n","/*\n * Copyright (c) 2022 WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { CustomDomainOrganizationMapping } from '../../data/interfaces';\n\nexport const FETCH_CUSTOM_DOMAIN_ORGANIZATION_REQUEST = 'FETCH_CUSTOM_DOMAIN_ORGANIZATION_REQUEST';\nexport const FETCH_CUSTOM_DOMAIN_ORGANIZATION_SUCCESS = 'FETCH_CUSTOM_DOMAIN_ORGANIZATION_SUCCESS';\nexport const FETCH_CUSTOM_DOMAIN_ORGANIZATION_FAILURE = 'FETCH_CUSTOM_DOMAIN_ORGANIZATION_FAILURE';\n\nexport interface CustomDomainOrganizationActions {\n type: typeof FETCH_CUSTOM_DOMAIN_ORGANIZATION_REQUEST | typeof FETCH_CUSTOM_DOMAIN_ORGANIZATION_SUCCESS |\n typeof FETCH_CUSTOM_DOMAIN_ORGANIZATION_FAILURE,\n payload?: CustomDomainOrganizationMapping | string,\n}\n","/*\n * Copyright (c) 2022, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { CustomDomainOrganizationMapping } from '../../data/interfaces';\nimport {\n CustomDomainOrganizationActions,\n FETCH_CUSTOM_DOMAIN_ORGANIZATION_FAILURE,\n FETCH_CUSTOM_DOMAIN_ORGANIZATION_REQUEST,\n FETCH_CUSTOM_DOMAIN_ORGANIZATION_SUCCESS,\n} from '../types/customDomainOrganization';\n\ninterface CustomDomainOrganizationState {\n customDomainOrganizationMapping: CustomDomainOrganizationMapping;\n error: string;\n loading: boolean;\n success: boolean;\n}\n\nconst initialState: CustomDomainOrganizationState = {\n customDomainOrganizationMapping: { domain_name : '', organization: { handle: '' } },\n error: '',\n loading: false,\n success: false,\n};\n\nconst customDomainsOrganizationReducer = (\n state = initialState,\n action: CustomDomainOrganizationActions\n) => {\n switch (action.type) {\n case FETCH_CUSTOM_DOMAIN_ORGANIZATION_REQUEST:\n return {\n ...state,\n loading: true,\n error: '',\n success: false,\n };\n case FETCH_CUSTOM_DOMAIN_ORGANIZATION_SUCCESS: {\n const organizationMapping = action.payload;\n return {\n ...state,\n loading: false,\n customDomainOrganizationMapping: organizationMapping,\n error: '',\n success: true,\n };\n }\n case FETCH_CUSTOM_DOMAIN_ORGANIZATION_FAILURE:\n return {\n ...state,\n loading: false,\n customDomainOrganizationMapping: { domain_name : '', organization: { handle: '' } },\n error: action.payload,\n success: false,\n };\n default:\n return state;\n }\n};\n\nexport default customDomainsOrganizationReducer;\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { SubscriptionPolicy } from \"../../data/interfaces\";\n\nexport const FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_REQUEST =\n \"FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_REQUEST\";\nexport const FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_SUCCESS =\n \"FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_SUCCESS\";\nexport const FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_FAILURE =\n \"FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_FAILURE\";\n\nexport interface SubscriptionPoliciesActions {\n type:\n | typeof FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_REQUEST\n | typeof FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_SUCCESS\n | typeof FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_FAILURE;\n payload?: SubscriptionPolicy[];\n}\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { SubscriptionPolicies } from \"../../data/interfaces\";\nimport {\n SubscriptionPoliciesActions,\n FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_REQUEST,\n FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_SUCCESS,\n FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_FAILURE,\n} from \"../types/subscriptionPolicies\";\n\nconst initialState: SubscriptionPolicies = {\n subscriptionPolicies: {\n list: [],\n count: 0,\n pagination: { next: \"\", offset: 0, total: 0, limit: 0, previous: \"\" },\n },\n error: \"\",\n loading: false,\n success: false,\n};\n\nconst subscriptionPoliciesReducer = (\n state = initialState,\n action: SubscriptionPoliciesActions\n) => {\n switch (action.type) {\n case FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_REQUEST:\n return {\n ...state,\n loading: true,\n error: \"\",\n success: false,\n };\n case FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_SUCCESS: {\n return {\n ...state,\n loading: false,\n subscriptionPolicies: action.payload\n ? action.payload\n : { subscriptionPolicies: [] },\n error: \"\",\n success: true,\n };\n }\n case FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_FAILURE: {\n return {\n ...state,\n loading: false,\n subscriptionPolicies: {},\n error: action.payload,\n success: false,\n };\n }\n default:\n return state;\n }\n};\n\nexport default subscriptionPoliciesReducer;\n","/*\n * Copyright (c) 2022 WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { OrganizationMetadata } from '../../data/interfaces';\n\nexport const FETCH_ORGANIZATION_METADATA_REQUEST = 'FETCH_ORGANIZATION_METADATA_REQUEST';\nexport const FETCH_ORGANIZATION_METADATA_SUCCESS = 'FETCH_ORGANIZATION_METADATA_SUCCESS';\nexport const FETCH_ORGANIZATION_METADATA_FAILURE = 'FETCH_ORGANIZATION_METADATA_FAILURE';\n\nexport interface OrganizationMetadataActions {\n type: typeof FETCH_ORGANIZATION_METADATA_REQUEST | typeof FETCH_ORGANIZATION_METADATA_SUCCESS |\n typeof FETCH_ORGANIZATION_METADATA_FAILURE,\n payload?: OrganizationMetadata | string,\n}\n","/*\n * Copyright (c) 2022, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { OrganizationMetadata, OrgMetaDataError } from '../../data/interfaces';\nimport {\n OrganizationMetadataActions,\n FETCH_ORGANIZATION_METADATA_FAILURE,\n FETCH_ORGANIZATION_METADATA_REQUEST,\n FETCH_ORGANIZATION_METADATA_SUCCESS,\n} from '../types/organizationMetadata';\n\ninterface OrganizationMetadataState {\n organizationMetadata: OrganizationMetadata;\n error: OrgMetaDataError;\n loading: boolean;\n success: boolean;\n}\n\nconst initialState: OrganizationMetadataState = {\n organizationMetadata: { uuid: '', handle: '' },\n error: {},\n loading: false,\n success: false,\n};\n\nconst organizationMetadataReducer = (\n state = initialState,\n action: OrganizationMetadataActions\n) => {\n switch (action.type) {\n case FETCH_ORGANIZATION_METADATA_REQUEST:\n return {\n ...state,\n loading: true,\n error: {},\n success: false,\n };\n case FETCH_ORGANIZATION_METADATA_SUCCESS: {\n const response = action.payload;\n return {\n ...state,\n loading: false,\n organizationMetadata: response,\n error: {},\n success: true,\n };\n }\n case FETCH_ORGANIZATION_METADATA_FAILURE:\n return {\n ...state,\n loading: false,\n organizationMetadata: { uuid: '', handle: '' },\n error: action.payload,\n success: false,\n };\n default:\n return state;\n }\n};\n\nexport default organizationMetadataReducer;\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nexport const FETCH_SUBSCRIBED_API_SCOPES_REQUEST = 'FETCH_SUBSCRIBED_API_SCOPES_REQUEST';\nexport const FETCH_SUBSCRIBED_API_SCOPES_SUCCESS = 'FETCH_SUBSCRIBED_API_SCOPES_SUCCESS';\nexport const FETCH_SUBSCRIBED_API_SCOPES_FAILURE = 'FETCH_SUBSCRIBED_API_SCOPES_FAILURE';\n\nexport interface ApiActions {\n type: typeof FETCH_SUBSCRIBED_API_SCOPES_REQUEST | typeof FETCH_SUBSCRIBED_API_SCOPES_SUCCESS |\n typeof FETCH_SUBSCRIBED_API_SCOPES_FAILURE,\n payload?: string[] | { [key: string]: string }\n}\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport {\n FETCH_SUBSCRIBED_API_SCOPES_REQUEST, FETCH_SUBSCRIBED_API_SCOPES_SUCCESS, FETCH_SUBSCRIBED_API_SCOPES_FAILURE,\n ApiActions,\n} from '../types/subscribedApiScopes';\n\nconst initialState = {\n loading: false,\n scopes: [],\n error: ''\n};\n\nconst subscribedApiScopesReducer = (state = initialState, action: ApiActions) => {\n switch (action.type) {\n case FETCH_SUBSCRIBED_API_SCOPES_REQUEST:\n return {\n loading: true,\n scopes: [],\n error: '',\n };\n case FETCH_SUBSCRIBED_API_SCOPES_SUCCESS:\n return {\n loading: false,\n scopes: action.payload,\n error: ''\n };\n case FETCH_SUBSCRIBED_API_SCOPES_FAILURE:\n return {\n loading: false,\n scopes: [],\n error: action.payload\n };\n default:\n return state\n }\n};\n\nexport default subscribedApiScopesReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport { combineReducers } from 'redux';\n\nimport apiReducer from './api';\nimport userReducer from './user';\nimport apiCommentsReducer from './comments';\nimport ratingsReducer from './ratings';\nimport documentsReducer from './documents';\nimport subscriptionsReducer from './subscriptions';\nimport applicationKeysReducer from './applicationKeys';\nimport swaggerReducer from './swagger';\nimport applicationReducer from './applications';\nimport credentialsReducer from './credentials'\nimport sdkReducer from './sdk';\nimport notificationReducer from './notification';\nimport apiTagsReducer from './tags';\nimport apiCategoriesReducer from './categories';\nimport idpReducer from './idps';\nimport graphqlReducer from \"./graphqlResponse\";\nimport addExternalUserToOrgReducer from './addExternalUserToOrg';\nimport customDomainsOrganizationReducer from './customDomainOrganization';\nimport subscriptionPoliciesReducer from './subscriptionPolicies';\nimport organizationMetadataReducer from \"./organizationMetadata\";\nimport subscribedApiScopesReducer from \"./subscribedApiScopes\";\n\nconst rootReducer = combineReducers({\n apiReducer: apiReducer,\n userReducer: userReducer,\n apiCommentsReducer: apiCommentsReducer,\n ratingsReducer: ratingsReducer,\n documentsReducer: documentsReducer,\n subscriptionsReducer: subscriptionsReducer,\n applicationKeysReducer: applicationKeysReducer,\n applicationReducer: applicationReducer,\n credentialsReducer: credentialsReducer,\n swaggerReducer: swaggerReducer,\n sdkReducer: sdkReducer,\n notificationReducer: notificationReducer,\n apiTagsReducer: apiTagsReducer,\n apiCategoriesReducer: apiCategoriesReducer,\n idpReducer : idpReducer,\n customDomainOrganizationMappingReducer: customDomainsOrganizationReducer,\n subscriptionPoliciesReducer: subscriptionPoliciesReducer,\n graphqlReducer: graphqlReducer,\n addExternalUserToOrgReducer: addExternalUserToOrgReducer,\n organizationMetadataReducer: organizationMetadataReducer,\n subscribedApiScopesReducer: subscribedApiScopesReducer,\n});\n\nexport default rootReducer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStore, applyMiddleware } from 'redux';\nimport thunk from 'redux-thunk';\nimport rootReducer from './reducers';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport Settings from '../conf/settings';\n\nconst middleware = [thunk];\n\nlet store: any;\nif (Settings.devToolEnable) {\n store = createStore(rootReducer, composeWithDevTools(applyMiddleware(...middleware)));\n} else {\n store = createStore(rootReducer, applyMiddleware(...middleware));\n}\n\nexport default store;\n","/*\n * Copyright (c) 2022, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\nimport {ReactPlugin} from '@microsoft/applicationinsights-react-js';\nimport {ApplicationInsights} from '@microsoft/applicationinsights-web';\n\nconst {azureInsightsKey} = Settings;\n\nimport {AsgardeoSPAClient} from '@asgardeo/auth-react';\nimport Settings from \"../conf/settings\";\n\nconst reactPlugin = new ReactPlugin();\nconst ai = new ApplicationInsights({\n config: {\n instrumentationKey: azureInsightsKey,\n extensions: [reactPlugin],\n },\n});\nif (azureInsightsKey) {\n ai.loadAppInsights();\n}\nexport const {appInsights} = ai;\n\nexport const trackEvent = async (name: string, customProperties?: Record) => {\n /* Temporary removed the App insight tracking function due to a GDPR security concerns */\n /*\n if (azureInsightsKey) {\n const properties: { [key: string]: string } = {\n ...customProperties,\n };\n\n const auth = AsgardeoSPAClient.getInstance();\n if (auth) {\n try {\n const idToken = await auth.getDecodedIDToken();\n\n if (idToken?.sub) {\n properties.idpId = idToken.sub;\n }\n\n const userEmail = idToken?.email;\n if (userEmail) {\n const isWSO2User = !!userEmail.endsWith('@wso2.com');\n properties.isWSO2User = `${isWSO2User}`;\n }\n\n } catch (error) {\n console.error('Failed to get auth details for azure event', error);\n }\n }\n\n appInsights.trackEvent({name}, properties);\n }\n */\n};\n\nexport const trackIdpAuthInitiation = (correlationId: string): void => {\n trackEvent(\"dev-portal-idp-auth-initiation\", {devportal_corId: correlationId});\n};\n\nexport const trackIdpAuthSuccess = (correlationId: string): void => {\n trackEvent(\"dev-portal-idp-auth-success\", {devportal_corId: correlationId});\n};\n\nexport const trackIdpAuthFailure = (correlationId: string, error: string): void => {\n trackEvent(\"dev-portal-idp-auth-failure\", {devportal_corId: correlationId, error: error});\n};\n\nexport const trackObtainApimTokenInitiation = (correlationId: string): void => {\n trackEvent(\"dev-portal-obtain-apim-token-initiation\", {devportal_corId: correlationId});\n};\n\nexport const trackObtainApimTokenSuccess = (correlationId: string): void => {\n trackEvent(\"dev-portal-obtain-apim-token-success\", {devportal_corId: correlationId});\n};\n\nexport const trackObtainApimTokenFailure = (correlationId: string, error: string): void => {\n trackEvent(\"dev-portal-obtain-apim-token-failure\", {devportal_corId: correlationId, error: error});\n};\n\nexport const trackFetchUserOrgSuccess = (correlationId: string): void => {\n trackEvent(\"dev-portal-fetch-user-org-success\", {devportal_corId: correlationId});\n};\n\nexport const trackFetchUserOrgFailure = (correlationId: string, error: string): void => {\n trackEvent(\"dev-portal-fetch-user-org-failure\", {devportal_corId: correlationId, error: error});\n};\n\nexport const trackLoginPageLoad = (correlationId: string): void => {\n trackEvent('dev-portal-login-page-load', {devportal_corId: correlationId});\n};\n\nexport const trackSignInTryAgain = (correlationId: string): void => {\n trackEvent('dev-portal-click-try-again-signing', {devportal_corId: correlationId});\n};\n\nexport const trackHomePageLoad = (correlationId: string): void => {\n trackEvent('dev-portal-page-load', {devportal_corId: correlationId});\n};\n\nexport const trackOverviewPageLoad = (apiName: string, apiId: string, correlationId: string): void => {\n trackEvent('dev-portal-api-load-overview', {apiName: apiName, apiId: apiId, devportal_corId: correlationId});\n};\n\nexport const trackCredentialGenerate = (apiName: string, apiId: string, grantTypes: string[]): void => {\n trackEvent('dev-portal-api-generate-credentials', {\n apiName,\n apiId,\n grantTypes: grantTypes.join(\",\")\n });\n};\n\nexport const trackTryAPIPageLoad = (): void => {\n trackEvent('dev-portal-api-load-try-out');\n};\n\nexport const trackBrowseAPIButtonCLick = (): void => {\n trackEvent('dev-portal-browse-apis');\n};\n\nexport const trackApiButtonClickOnHeader = (): void => {\n trackEvent('dev-portal-navbar-apis');\n}\n\n// API Search Page\nexport const trackApiLoadOnSearch = (query: string, tagList: string[]): void => {\n trackEvent('dev-portal-load-apis', {\n searchQuery: query,\n tagList: tagList.join(\",\")\n });\n};\n\nexport const trackApiSelectFromAPIList = (apiId: string): void => {\n trackEvent('dev-portal-select-api', {\n apiId\n });\n};\n\nexport const trackTryOutClickFromAPICard = (apiId: string): void => {\n trackEvent('dev-portal-select-api-tryout', {\n apiId\n });\n};\n\nexport const trackDocumentationClickFromAPICard = (apiId: string): void => {\n trackEvent('dev-portal-select-api-documentation', {apiId});\n};\n\n\n// API Overview\nexport const trackOverviewAddComment = (apiId: string, comment: string): void => {\n trackEvent('dev-portal-api-overview-add-comment', {\n apiId,\n comment\n });\n};\n\nexport const trackAPIRatingChange = (apiId: string, rate: string): void => {\n trackEvent('dev-portal-api-change-rating', {\n apiId,\n rate\n });\n};\n\n// API try Out\nexport const trackTryOutGoToCredentialsClick = (apiId: string): void => {\n trackEvent('dev-portal-try-out-api-generate-token', {\n apiId\n });\n};\n\nexport const trackTryOutSwaggerDownload = (apiId: string): void => {\n trackEvent('dev-portal-api-try-out-download-swagger', {\n apiId\n });\n};\n\n// API Documentation\nexport const trackAPIDocumentationNavBarClick = (): void => {\n trackEvent('dev-portal-sidebar-api-documentation');\n};\n\nexport const trackDocExpandClicks = (apiId: string, docType: string): void => {\n trackEvent('dev-portal-api-documentation-open', {\n apiId,\n docType\n })\n}\n\n// API Credentials\nexport const trackAPICredentialsNavBarClick = (): void => {\n trackEvent('dev-portal-sidebar-api-credentials');\n};\n\nexport const trackAPICredentialsUpdateClick = (apiId: string): void => {\n trackEvent('dev-portal-api-update-credentials', {apiId});\n};\n\nexport const trackAPICredentialsRemoveClick = (apiId: string): void => {\n trackEvent('dev-portal-api-remove-credentials', {apiId});\n};\n\n// API SDKs\nexport const trackAPISDKNavBarClick = (): void => {\n trackEvent('dev-portal-sidebar-api-sdks');\n};\n\nexport const trackApiSDKDownload = (apiId: string, sdkZipName: string): void => {\n trackEvent('dev-portal-api-sdks-download', {\n apiId,\n sdkZipName\n });\n};\n\n// API Contracts\nexport const trackAPIContractsNavBarClick = (): void => {\n trackEvent('dev-portal-sidebar-api-contracts');\n};\n\nexport const trackApiContractUpdate = (\n applicationId: string,\n apiId: string,\n throttlingPolicy: string,\n status: string,\n subscriptionId: string\n): void => {\n trackEvent('dev-portal-api-contract-update', {\n applicationId,\n apiId,\n throttlingPolicy,\n status,\n subscriptionId\n });\n};\n\n// Application Events\nexport const trackApplicationClickOnHeader = (): void => {\n trackEvent('dev-portal-navbar-applications');\n};\n\nexport const trackApplicationCreation = (\n appId: string,\n perTokenQuota: string,\n appDescription: string): void => {\n\n trackEvent('dev-portal-click-create-application', {\n appId,\n perTokenQuota,\n appDescription\n });\n};\n\nexport const trackApplicationSelection = (appId: string): void => {\n trackEvent('dev-portal-click-select-application', {\n appId\n });\n};\n\nexport const trackApplicationSelectionEdit = (appId: string): void => {\n trackEvent('dev-portal-click-select-application-edit', {\n appId\n });\n};\n\nexport const trackApplicationSelectionDelete = (appId: string): void => {\n trackEvent('dev-portal-click-select-application-delete', {\n appId\n });\n};\n\nexport const trackApplicationInfoBarEdit = (appId: string): void => {\n trackEvent('dev-portal-application-edit', {\n appId\n });\n};\n\nexport const trackApplicationInfoBarDelete = (appId: string): void => {\n trackEvent('dev-portal-application-delete', {\n appId\n });\n};\n\nexport const trackAppProdKeyGeneration = (\n applicationId: string,\n applicationTokenExpiryTime: string,\n refreshTokenExpiryTime: string,\n idTokenExpiryTime: string\n): void => {\n trackEvent('dev-portal-application-prod-keys-generate', {\n appId: applicationId,\n applicationTokenExpiryTime,\n refreshTokenExpiryTime,\n idTokenExpiryTime\n });\n};\n\nexport const trackAppTestKeyGeneration = (applicationId: string): void => {\n trackEvent('dev-portal-application-generate-test-token', {\n appId: applicationId\n });\n};\n\nexport const trackAddingAppSubscription = (): void => {\n trackEvent('dev-portal-application-add-api');\n};\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport {\n FETCH_SUBSCRIBED_API_SCOPES_REQUEST, FETCH_SUBSCRIBED_API_SCOPES_SUCCESS, FETCH_SUBSCRIBED_API_SCOPES_FAILURE\n} from '../types/subscribedApiScopes';\n\nexport const fetchSubscribedApiScopesRequest = () => {\n return {\n type: FETCH_SUBSCRIBED_API_SCOPES_REQUEST\n }\n};\n\nexport const fetchSubscribedApiScopesSuccess = (scopes: string[]) => {\n return {\n type: FETCH_SUBSCRIBED_API_SCOPES_SUCCESS,\n payload: scopes\n }\n};\n\nexport const fetchSubscribedApiScopesFailure = (error: string) => {\n return {\n type: FETCH_SUBSCRIBED_API_SCOPES_FAILURE,\n payload: error\n }\n};\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport axios, { AxiosError, Method, ResponseType } from \"axios\";\nimport { Dispatch } from \"redux\";\nimport { AsgardeoSPAClient, Hooks } from \"@asgardeo/auth-react\";\n\nimport Settings from \"../conf/settings\";\nimport {\n fetchApiRequest,\n fetchApiSuccess,\n fetchApiFailure,\n fetchThumbnailRequest,\n fetchThumbnailSuccess,\n fetchThumbnailFailure,\n fetchThumbnailListSuccess,\n fetchThumbnailListRequest,\n fetchApiListRequest,\n fetchApiListSuccess,\n fetchApiListFailure,\n fetchMajorVersionApiListRequest,\n fetchMajorVersionApiListSuccess,\n fetchMajorVersionApiListFailure,\n fetchFeaturedApiListSuccess,\n fetchFeaturedApiListRequest,\n fetchFeaturedApiListFailure,\n} from \"../store/actions/api\";\nimport {\n fetchGraphqlRequest,\n fetchGraphqlRequestSuccess,\n fetchGraphqlFailure,\n} from \"../store/actions/graphql\";\nimport {\n createApiTestKeyFailure,\n createApiTestKeyRequest,\n createApiTestKeySuccess,\n createApikeyFailure,\n createApikeyRequest,\n createApikeySuccess,\n createKeysFailure,\n createKeysRequest,\n createKeysSuccess,\n createOauthTokenFailure,\n createOauthTokenRequest,\n createOauthTokenSuccess,\n fetchKeysFailure,\n fetchKeysRequest,\n fetchKeysSuccess,\n mapApplicationKeyFailure,\n mapApplicationKeyRequest,\n mapApplicationKeySucess,\n updateKeysFailure,\n updateKeysRequest,\n updateKeysSuccess,\n} from \"../store/actions/applicationKeys\";\nimport {\n createApplicationFailure,\n createApplicationRequest,\n createApplicationSuccess,\n deleteApplicationFailure,\n deleteApplicationRequest,\n deleteApplicationSuccess,\n fetchApplicationDetailsFailure,\n fetchApplicationDetailsRequest,\n fetchApplicationDetailsSuccess,\n fetchApplicationFailure,\n fetchApplicationRequest,\n fetchApplicationSuccess,\n shareApplicationFailure,\n shareApplicationRequest,\n shareApplicationSuccess,\n updateApplicationFailure,\n updateApplicationRequest,\n updateApplicationSuccess,\n} from \"../store/actions/applications\";\nimport {\n deleteApiCommentsFailure,\n deleteApiCommentsRequest,\n deleteApiCommentsSuccess,\n editApiCommentsFailure,\n editApiCommentsRequest,\n editApiCommentsSuccess,\n fetchApiCommentsFailure,\n fetchApiCommentsRequest,\n fetchApiCommentsSuccess,\n postApiCommentsFailure,\n postApiCommentsRequest,\n postApiCommentsSuccess,\n} from \"../store/actions/comments\";\nimport {\n createApiKeysCredentialsFailure,\n createApiKeysCredentialsRequest,\n createApiKeysCredentialsSuccess,\n deleteApiKeysCredentialsFailure,\n deleteApiKeysCredentialsRequest,\n deleteApiKeysCredentialsSuccess,\n fetchApiKeysCredentialsFailure,\n fetchApiKeysCredentialsRequest,\n fetchApiKeysCredentialsSuccess\n} from \"../store/actions/credentials\";\nimport {\n fetchDocumentsFailure,\n fetchDocumentsRequest,\n fetchDocumentsSuccess,\n} from \"../store/actions/documents\";\nimport {\n resetNotification,\n setErrorNotification,\n setSucessNotification,\n} from \"../store/actions/notification\";\nimport {\n createRatingsFailure,\n createRatingsRequest,\n createRatingsSuccess,\n fetchRatingsFailure,\n fetchRatingsRequest,\n fetchRatingsSuccess,\n} from \"../store/actions/rating\";\nimport {\n fetchSdkLanguagesFailure,\n fetchSdkLanguagesRequest,\n fetchSdkLanguagesSuccess,\n} from \"../store/actions/sdk\";\nimport {\n createSubscriptionsFailure,\n createSubscriptionsRequest,\n createSubscriptionsSuccess,\n deleteSubscriptionsFailure,\n deleteSubscriptionsRequest,\n deleteSubscriptionsSuccess,\n fetchSubscriptionRequest,\n fetchSubscriptionsFailure,\n fetchSubscriptionsSuccess,\n updateSubscriptionFailure,\n updateSubscriptionRequest,\n updateSubscriptionSuccess,\n} from \"../store/actions/subscriptions\";\nimport {\n fetchSwaggerFailure,\n fetchSwaggerRequest,\n fetchSwaggerSuccess,\n} from \"../store/actions/swagger\";\nimport {\n userLoginRequest,\n userLoginSuccess,\n requireLogin,\n fetchUserInfoSuccess,\n fetchUserInfoFailure,\n fetchUserOrgInfoRequest,\n fetchUserOrgInfoSuccess,\n fetchUserOrgInfoFailure,\n changeUserOrganizationRequest,\n changeUserOrganizationSuccess,\n changeUserOrganizationFailure,\n obtainApimTokenRequest,\n obtainApimTokenSuccess,\n obtainApimTokenFailure,\n addEnterpriseUserRequest,\n addEnterpriseUserSuccess,\n addEnterpriseUserFailure,\n} from \"../store/actions/user\";\nimport {\n fetchIDPRequest,\n fetchIDPSuccess,\n fetchIDPFailure,\n} from \"../store/actions/idps\";\nimport store from \"../store/index\";\n\nimport * as Constants from \"./constants\";\nimport {\n Key,\n Comment,\n ApiRating,\n EndpointURL,\n Subscription,\n KeyType,\n CreateComment,\n Api,\n ApiList,\n ApiKeyAdditionalProperties,\n Application,\n Organization,\n StorageOperations,\n Pagination,\n ChoreoUserInfo,\n AdditionalProperty,\n ApiScope,\n ApplicationKeyMapping,\n ApplicationShare,\n DevPortalAppEnv,\n} from \"./interfaces\";\nimport {\n fetchApiTagsFailure,\n fetchApiTagsRequest,\n fetchApiTagsSuccess,\n} from \"../store/actions/tags\";\nimport {\n fetchApiCategoriesFailure,\n fetchApiCategoriesRequest,\n fetchApiCategoriesSuccess,\n} from \"../store/actions/categories\";\nimport * as Utils from \"./utils\";\nimport {\n addExternalUserToOrgFailure,\n addExternalUserToOrgRequest,\n addExternalUserToOrgSuccess,\n} from \"../store/actions/addExternalUserToOrg\";\nimport {\n trackFetchUserOrgFailure,\n trackFetchUserOrgSuccess,\n trackIdpAuthFailure,\n trackIdpAuthInitiation,\n trackIdpAuthSuccess,\n trackObtainApimTokenFailure,\n trackObtainApimTokenInitiation,\n trackObtainApimTokenSuccess,\n} from '../util/app-insights';\nimport { isSelfSignupEnabled } from \"./utils\";\nimport {\n fetchCustomDomainOrganizationFailure,\n fetchCustomDomainOrganizationRequest,\n fetchCustomDomainOrganizationSuccess\n} from \"../store/actions/customDomainOrganization\";\nimport {\n fetchOrganizationMetadataFailure,\n fetchOrganizationMetadataRequest,\n fetchOrganizationMetadataSuccess\n} from \"../store/actions/organizationMetadata\";\nimport {\n fetchSubscribedApiScopesFailure,\n fetchSubscribedApiScopesRequest,\n fetchSubscribedApiScopesSuccess\n} from \"../store/actions/subscribedApiScopes\";\nimport { APPROVAL_STATUS_APPROVED, APPROVAL_STATUS_APPROVED_CODE, MAJOR_VERSION, QUERY_PARAM_VALUE_OWNER_INFO, USER_NOT_FOUND, USER_NOT_FOUND_CODE } from './constants';\nimport { fetchSubscriptionPoliciesFailure, fetchSubscriptionPoliciesRequest, fetchSubscriptionPoliciesSuccess } from \"../store/actions/subscriptionPolicies\";\n\nconst INT_MAX = 2147483647;\n\nconst authClient = AsgardeoSPAClient.getInstance();\nconst defaultHeaders = {\n Accept: \"application/json\",\n};\n\nconst getOrgIdQueryParam = () => {\n let organizationId;\n if (store.getState().userReducer.selectedOrg.uuid) {\n organizationId = store.getState().userReducer.selectedOrg.uuid;\n }\n return { organizationId: organizationId };\n};\n\nconst getApiResourceAuthenticated = async (\n apiId = \"\",\n apiResource?: string,\n queryParams = getOrgIdQueryParam(),\n responseType: ResponseType = \"json\",\n reqHeaders = defaultHeaders\n) => {\n return authClient?.httpRequest({\n url: Utils.getApiResourceEndpoint(apiId, apiResource),\n method: \"GET\",\n headers: reqHeaders,\n responseType: responseType,\n params: queryParams,\n });\n};\n\nconst getApiResourceUnauthenticated = async (\n apiId: string,\n apiResource?: string,\n queryParams = {},\n responseType: ResponseType = \"json\",\n reqHeaders = defaultHeaders\n) => {\n return axios.get(Utils.getApiResourceEndpoint(apiId, apiResource), {\n headers: reqHeaders,\n responseType: responseType,\n params: queryParams,\n });\n};\n\nexport const getOrganizationMappingForCustomDomain = async (\n queryParams = {},\n responseType: ResponseType = \"json\",\n reqHeaders = defaultHeaders\n) => {\n return axios.get(Utils.getCustomDomainOrgHandleMappingEndpoint(), {\n headers: reqHeaders,\n responseType: responseType,\n params: queryParams,\n });\n};\n\nexport const getOrganizationMetadata = async (\n queryParams = {},\n responseType: ResponseType = \"json\",\n reqHeaders = defaultHeaders\n) => {\n return axios.get(Utils.getOrganizationMetadataEndpoint(), {\n headers: reqHeaders,\n responseType: responseType,\n params: queryParams,\n });\n};\n\nconst getUserInfoAuthenticated = async () => {\n return authClient?.httpRequest({\n url: Utils.getUserInfoEndpoint(),\n method: \"GET\",\n headers: defaultHeaders,\n });\n};\n\nconst getGraphqlResponse = async () => {\n const additionalProperties = store.getState().apiReducer.api.additionalProperties;\n const projectIdObject: AdditionalProperty = additionalProperties?.find((additionalProperty: AdditionalProperty) => {\n return additionalProperty.name === 'projectId'\n });\n const projectId = projectIdObject?.value;\n let graphQlQuery = '';\n if (projectId) {\n graphQlQuery = `query {\n environments(\n orgUuid:\"${ store.getState().userReducer.selectedOrg.uuid }\",\n projectId: \"${ projectId }\"\n ){\n organizationUuid,\n orgShared,\n name,\n description,\n id,\n vhost,\n choreoEnv,\n projectId,\n promoteFrom,\n namespace,\n externalApiEnvName,\n internalApiEnvName,\n sandboxApiEnvName,\n }\n }`\n } else {\n graphQlQuery = `query {\n environments(orgUuid:\"${ store.getState().userReducer.selectedOrg.uuid }\"){\n organizationUuid,\n orgShared,\n name,\n description,\n id,\n vhost,\n choreoEnv,\n projectId,\n promoteFrom,\n namespace,\n }\n }`\n }\n\n return authClient?.httpRequest({\n url: Utils.getGraphqlEndpoint(),\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n },\n data: {\n query: graphQlQuery,\n },\n });\n};\n\nexport const fetchCustomDomainOrganizationMapping = (customDomain: string) =>\n async (dispatch: Dispatch) => {\n try {\n dispatch(fetchCustomDomainOrganizationRequest());\n const queryParams = { domain: customDomain };\n\n const response = await getOrganizationMappingForCustomDomain(queryParams);\n if (response) {\n dispatch(fetchCustomDomainOrganizationSuccess(response.data));\n }\n } catch (error) {\n dispatch(\n setErrorNotification(\"Error while retrieving organization for the custom domain\")\n );\n dispatch(fetchCustomDomainOrganizationFailure(error));\n }\n };\n\nexport const fetchOrganizationMetadata = (orgHandle = '', customDomain = '') =>\n async (dispatch: Dispatch) => {\n try {\n dispatch(fetchOrganizationMetadataRequest());\n const queryParams = { domain: customDomain, orghandle: orgHandle };\n\n const response = await getOrganizationMetadata(queryParams);\n if (response) {\n dispatch(fetchOrganizationMetadataSuccess(response.data.organizationMetadata));\n }\n } catch (error) {\n dispatch(\n setErrorNotification(\"Error while retrieving organization metadata\")\n );\n dispatch(fetchOrganizationMetadataFailure(error));\n }\n };\n\nexport const fetchGraphqlResponse = () => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchGraphqlRequest());\n const graphqlResponse = await getGraphqlResponse();\n if (graphqlResponse) {\n dispatch(fetchGraphqlRequestSuccess(graphqlResponse.data.data));\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while getting grphql response\"));\n dispatch(fetchGraphqlFailure(error));\n }\n };\n};\n\nconst updateApiResourceAuthenticated = async (\n apiId: string,\n apiResource?: string,\n queryParams = {},\n resourceData?: Comment | ApiRating | CreateComment,\n httpMethod?: Method\n) => {\n return authClient?.httpRequest({\n url: Utils.getApiResourceEndpoint(apiId, apiResource),\n method: httpMethod,\n headers: {\n Accept: \"application/json\",\n },\n data: resourceData,\n params: queryParams,\n });\n};\n\nconst updateSubscriptionAuthenticated = async (\n subscriptionId: string,\n resourceData?: Subscription,\n queryParams = {}\n) => {\n return authClient?.httpRequest({\n url: Utils.getSubscriptionResourceEndpoint(subscriptionId),\n method: \"PUT\",\n headers: defaultHeaders,\n data: resourceData,\n params: queryParams,\n });\n};\n\nconst getSubscriptionPoliciesList = async (queryParams = {}) => {\n return authClient?.httpRequest({\n url: Utils.getSubscriptionThrottlingPoliciesEndpoint(),\n method: \"GET\",\n headers: defaultHeaders,\n params: queryParams,\n });\n};\n\nconst getApiListAuthenticated = async (\n pagination?: string,\n queryParams = {}\n) => {\n return authClient?.httpRequest({\n url: Utils.getApiListEndpoint(pagination),\n method: \"GET\",\n headers: defaultHeaders,\n params: queryParams,\n });\n};\n\nconst getApiListUnAuthenticated = async (\n pagination?: string,\n queryParams = {},\n responseType: ResponseType = \"json\",\n reqHeaders = defaultHeaders\n) => {\n return axios.get(Utils.getApiListEndpoint(pagination), {\n headers: reqHeaders,\n responseType: responseType,\n params: queryParams,\n });\n};\n\nconst getApiTagsAuthenticated = async (queryParams = {}) => {\n return authClient?.httpRequest({\n url: Utils.getApiTagsEndpoint(),\n method: \"GET\",\n headers: defaultHeaders,\n params: queryParams,\n });\n};\n\nconst getApiCategoriesAuthenticated = async (queryParams = {}) => {\n return authClient?.httpRequest({\n url: Utils.getApiCategoryEndpoint(),\n method: \"GET\",\n headers: defaultHeaders,\n params: queryParams,\n });\n};\n\nconst getUserOrganizationList = async () => {\n return authClient?.httpRequest({\n url: Utils.getUserValidationEndpoint(),\n method: \"GET\",\n headers: defaultHeaders,\n });\n};\n\nconst addEnterpriseUser = async () => {\n return authClient?.httpRequest({\n url: Utils.getAddEnterpriseUserEndpoint(),\n method: \"POST\",\n headers: defaultHeaders,\n data: {\n isDevportalUser: true\n }\n });\n};\n\nexport const fetchApiUnauthenticated = (\n apiId: string,\n organizationId: string\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchApiRequest());\n const apiResponse = await getApiResourceUnauthenticated(\n apiId,\n undefined,\n { organizationId: organizationId }\n );\n if (apiResponse) {\n dispatch(fetchApiSuccess(apiResponse.data));\n // Running all the required API calls in parallel\n\n // Get API Comments\n dispatch(fetchApiCommentsRequest());\n getApiResourceUnauthenticated(\n apiId,\n Constants.RESOURCE_API_COMMENTS,\n { organizationId: organizationId }\n ).then((commentsResponse) => {\n if (commentsResponse) {\n // Reversing the comments to list them in inverse chronological order\n dispatch(fetchApiCommentsSuccess(commentsResponse.data));\n }\n }).catch((error) => {\n dispatch(setErrorNotification(\"Error while retrieving comments\"));\n dispatch(fetchApiCommentsFailure(error));\n });\n\n // Get API documents\n dispatch(fetchDocumentsRequest());\n getApiResourceUnauthenticated(\n apiId,\n Constants.RESOURCE_API_DOCUMENTS,\n { organizationId: organizationId }\n ).then((documentsResponse)=>{\n if (documentsResponse) {\n dispatch(fetchDocumentsSuccess(documentsResponse.data));\n }\n }).catch((error) => {\n dispatch(\n setErrorNotification(\"Error while retrieving API documents\")\n );\n dispatch(fetchDocumentsFailure(error));\n });\n\n // Get API thumbnail\n dispatch(fetchThumbnailRequest());\n getApiResourceUnauthenticated(\n apiId,\n Constants.RESOURCE_THUMBNAIL,\n { organizationId: organizationId },\n \"blob\"\n ).then((thumbnailResponse)=>{\n if (thumbnailResponse) {\n dispatch(fetchThumbnailSuccess(thumbnailResponse.data));\n }\n }).catch((error) => {\n dispatch(setErrorNotification(\"Error while retrieving API thumbnail\"));\n dispatch(fetchThumbnailFailure(error));\n });\n \n // Get API swagger\n dispatch(fetchSwaggerRequest());\n let queryParams = {};\n if (apiResponse.data.endpointURLs.length > 0) {\n const environments = apiResponse.data.endpointURLs.map(\n (endpoint: EndpointURL) => {\n return endpoint.environmentName;\n }\n );\n queryParams = {\n environmentName: environments[0],\n };\n }\n getApiResourceUnauthenticated(\n apiId,\n apiResponse.data.type === Constants.API_TYPE_WS ? Constants.RESOURCE_ASYNCAPI : Constants.RESOURCE_SWAGGER,\n { ...queryParams, organizationId: organizationId },\n \"json\"\n ).then((swaggerResponse)=>{\n if (swaggerResponse) {\n dispatch(fetchSwaggerSuccess(swaggerResponse.data));\n }\n }).catch((error) => {\n dispatch(setErrorNotification(\"Error while retrieving OpenAPI definition\"));\n dispatch(fetchSwaggerFailure(error));\n });\n }\n } catch (error) {\n const { response } = error;\n if (response?.status === Constants.RESOURCE_NOT_FOUND) {\n dispatch(requireLogin());\n }\n dispatch(setErrorNotification(\"Error while retrieving API\"));\n dispatch(fetchApiFailure(error));\n }\n };\n};\n\nexport const fetchApiAuthenticated = (\n apiId: string,\n organizationId: string\n) => {\n return async (dispatch: Dispatch) => {\n try {\n // Get API\n dispatch(fetchApiRequest());\n const apiResponse = await getApiResourceAuthenticated(apiId, undefined, {\n organizationId: organizationId,\n });\n if (apiResponse) {\n dispatch(fetchApiSuccess(apiResponse.data));\n // Running all the required API calls in parallel\n\n // Get API comments\n dispatch(fetchApiCommentsRequest());\n getApiResourceAuthenticated(\n apiId,\n Constants.RESOURCE_API_COMMENTS,\n { organizationId: organizationId }\n ).then((commentsResponse) => {\n if (commentsResponse) {\n dispatch(fetchApiCommentsSuccess(commentsResponse.data));\n }\n }).catch((error) => {\n dispatch(setErrorNotification(\"Error while retrieving comments\"));\n dispatch(fetchApiCommentsFailure(error));\n });\n\n // Get API documents\n dispatch(fetchDocumentsRequest());\n getApiResourceAuthenticated(\n apiId,\n Constants.RESOURCE_API_DOCUMENTS,\n { organizationId: organizationId }\n ).then((documentsResponse) => {\n if (documentsResponse) {\n dispatch(fetchDocumentsSuccess(documentsResponse.data));\n }\n }).catch((error) => {\n dispatch(setErrorNotification(\"Error while retrieving API documents\"));\n dispatch(fetchDocumentsFailure(error));\n });\n\n // Get API rating\n dispatch(fetchRatingsRequest());\n getApiResourceAuthenticated(\n apiId,\n Constants.RESOURCE_API_RATINGS,\n { organizationId: organizationId }\n ).then((ratingsResponse) => {\n if (ratingsResponse) {\n dispatch(fetchRatingsSuccess(ratingsResponse.data));\n }\n }).catch((error) => {\n dispatch(setErrorNotification(\"Error while retrieving API rating\"));\n dispatch(fetchRatingsFailure(error));\n });\n\n // Get API thumbnail\n dispatch(fetchThumbnailRequest());\n getApiResourceAuthenticated(\n apiId,\n Constants.RESOURCE_THUMBNAIL,\n { organizationId: organizationId },\n \"blob\"\n ).then((apiResponse) => {\n if (apiResponse) {\n dispatch(fetchThumbnailSuccess(apiResponse.data));\n }\n }).catch((error) => {\n dispatch(setErrorNotification(\"Error while retrieving API thumbnail\"));\n dispatch(fetchThumbnailFailure(error));\n });\n\n // Get API Swagger definition\n dispatch(fetchSwaggerRequest());\n const queryParams = {};\n getApiResourceAuthenticated(\n apiId,\n apiResponse.data.type === Constants.API_TYPE_WS ? Constants.RESOURCE_ASYNCAPI : Constants.RESOURCE_SWAGGER,\n { ...queryParams, organizationId: organizationId },\n \"json\"\n ).then((swaggerResponse) => {\n if (swaggerResponse) {\n dispatch(fetchSwaggerSuccess(swaggerResponse.data));\n }\n }).catch((error) => {\n dispatch(setErrorNotification(\"Error while retrieving OpenAPI definition\"));\n dispatch(fetchSwaggerFailure(error));\n });\n\n // Get SDK Languages\n dispatch(fetchSdkLanguagesRequest());\n getSdkLanguagesResource(\n organizationId\n ).then((sdkLanguageResponse) => {\n if (sdkLanguageResponse) {\n dispatch(fetchSdkLanguagesSuccess(sdkLanguageResponse.data));\n }\n }).catch((error) => {\n dispatch(setErrorNotification(\"Error while retrieving SDK languages\"));\n dispatch(fetchSdkLanguagesFailure(error));\n });\n }\n } catch (error) {\n const { response } = error;\n if (response?.status === Constants.RESOURCE_NOT_FOUND) {\n dispatch(setErrorNotification(\"Requested API is not available\"));\n } else {\n dispatch(setErrorNotification(\"Error while retrieving API\"));\n }\n dispatch(fetchApiFailure(error));\n }\n };\n};\n\nexport const fetchSubscribedApiScopes = (\n organizationId: string,\n apiIds: string[],\n) => {\n return async (dispatch: Dispatch): Promise => {\n const scopes: string[] = [];\n try {\n dispatch(fetchSubscribedApiScopesRequest());\n for (const apiId of apiIds) {\n const apiResponse = await getApiResourceAuthenticated(apiId, undefined, {\n organizationId: organizationId,\n });\n if (apiResponse) {\n apiResponse.data.scopes.map((scope: ApiScope) => { scopes.push(scope.key) });\n }\n }\n dispatch(fetchSubscribedApiScopesSuccess(scopes));\n return scopes;\n } catch (error) {\n dispatch(setErrorNotification(\"Error while retrieving subscribed api scopes\"));\n dispatch(fetchSubscribedApiScopesFailure(error));\n return null;\n }\n };\n};\n\nexport const fetchAllApisOfMajorVersionAuthenticated = (\n organizationId: string,\n apiName: string,\n apiMajorVersion: string\n ) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchMajorVersionApiListRequest());\n const apiResponse = await getApiListAuthenticated(undefined, {\n organizationId: organizationId,\n query: `name:\"${apiName}\" version:${apiMajorVersion}*`,\n });\n\n if (apiResponse) {\n dispatch(fetchMajorVersionApiListSuccess(apiResponse.data));\n } else {\n dispatch(fetchMajorVersionApiListSuccess({\n count: 0,\n list: [],\n pagination: {\n limit: 0,\n offset: 0,\n total: 0,\n next: \"\",\n previous: \"\"\n }\n }));\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while retrieving all APIs of the API\"));\n dispatch(fetchMajorVersionApiListFailure(error));\n }\n };\n}\n\nexport const fetchApiListByMajorVersionAuthenticated = (\n organizationId: string,\n pagination?: string,\n requireThumbnails = true,\n) => {\n return async (dispatch: Dispatch) => fetchApiListAuthenticated(\n organizationId,\n pagination,\n requireThumbnails,\n MAJOR_VERSION\n )(dispatch);\n}\n\nexport const fetchApiListByMajorVersionUnAuthenticated = (\n organizationId: string,\n pagination?: string,\n requireThumbnails = true,\n) => {\n return async (dispatch: Dispatch) => fetchApiListUnAuthenticated(\n organizationId,\n pagination,\n requireThumbnails,\n MAJOR_VERSION\n )(dispatch);\n}\n\nexport const fetchSubscriptionPoliciesList = (organizationId: string) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchSubscriptionPoliciesRequest());\n const response = await getSubscriptionPoliciesList({\n organizationId: organizationId,\n });\n if (response && response.data) {\n dispatch(fetchSubscriptionPoliciesSuccess(response.data));\n }\n } catch (error) {\n dispatch(\n setErrorNotification(\n \"Error while retrieving the list of subscription policies\"\n )\n );\n dispatch(fetchSubscriptionPoliciesFailure(error));\n }\n };\n};\n\nexport const fetchApiListAuthenticated = (\n organizationId: string,\n pagination?: string,\n requireThumbnails = true,\n aggregateBy?: string,\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchApiListRequest());\n const apiResponse = await getApiListAuthenticated(pagination, {\n organizationId: organizationId,\n aggregateBy,\n });\n\n if (apiResponse) {\n dispatch(fetchApiListSuccess(apiResponse.data));\n const apiList: ApiList = apiResponse.data;\n\n if (requireThumbnails && apiList.list.length > 0) {\n const thumbnailMap: { [key: string]: string } = {};\n dispatch(fetchThumbnailListRequest());\n apiList.list.map(api => {\n getApiResourceAuthenticated(\n api.id,\n Constants.RESOURCE_THUMBNAIL,\n { organizationId: organizationId },\n \"blob\"\n ).then(\n apiThumbnailResponse => {\n if (apiThumbnailResponse) {\n thumbnailMap[api.id] = URL.createObjectURL(apiThumbnailResponse.data); \n dispatch(fetchThumbnailListSuccess(thumbnailMap));\n }\n }\n ).catch((error) => {\n dispatch(\n setErrorNotification(\"Error while retrieving API thumbnail\")\n );\n })\n });\n }\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while retrieving API list\"));\n dispatch(fetchApiListFailure(error));\n }\n };\n};\n\nexport const fetchFeaturedApiListAuthenticated = (\n organizationId: string,\n pagination?: string,\n requireThumbnails = true,\n aggregateBy?: string,\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchFeaturedApiListRequest());\n const apiResponse = await getApiListAuthenticated(pagination, {\n organizationId: organizationId,\n aggregateBy,\n });\n if (apiResponse) {\n dispatch(fetchFeaturedApiListSuccess(apiResponse.data));\n const featuredApiList: ApiList = apiResponse.data;\n if (requireThumbnails && featuredApiList.list.length > 0) {\n const thumbnailMap: { [key: string]: string } = {};\n dispatch(fetchThumbnailListRequest());\n featuredApiList.list.map(api => {\n getApiResourceAuthenticated(\n api.id,\n Constants.RESOURCE_THUMBNAIL,\n { organizationId: organizationId },\n \"blob\"\n ).then(\n apiThumbnailResponse => {\n if (apiThumbnailResponse) {\n thumbnailMap[api.id] = URL.createObjectURL(apiThumbnailResponse.data); \n dispatch(fetchThumbnailListSuccess(thumbnailMap));\n }\n }\n ).catch((error) => {\n dispatch(\n setErrorNotification(\n \"Error while retrieving API thumbnail\"\n )\n );\n })\n });\n }\n }\n } catch (error) {\n dispatch(\n setErrorNotification(\n \"Error while retrieving featured API list\"\n )\n );\n dispatch(fetchFeaturedApiListFailure(error));\n }\n };\n};\n\nexport const fetchApiListUnAuthenticated = (\n organizationId: string,\n pagination?: string,\n requireThumbnails = true,\n aggregateBy?: string,\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchApiListRequest());\n const apiResponse = await getApiListUnAuthenticated(pagination, {\n organizationId: organizationId,\n aggregateBy\n });\n\n if (apiResponse) {\n dispatch(fetchApiListSuccess(apiResponse.data));\n const apiList: ApiList = apiResponse.data;\n\n if (requireThumbnails && apiList.list.length > 0) {\n const thumbnailMap: { [key: string]: string } = {};\n dispatch(fetchThumbnailListRequest());\n apiList.list.map(api => {\n getApiResourceUnauthenticated(\n api.id,\n Constants.RESOURCE_THUMBNAIL,\n { organizationId: organizationId },\n \"blob\"\n ).then(\n apiThumbnailResponse => {\n if (apiThumbnailResponse) {\n thumbnailMap[api.id] = URL.createObjectURL(apiThumbnailResponse.data); \n dispatch(fetchThumbnailListSuccess(thumbnailMap));\n }\n }\n ).catch((error) => {\n dispatch(\n setErrorNotification(\"Error while retrieving API thumbnail\")\n );\n })\n });\n }\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while retrieving API list\"));\n dispatch(fetchApiListFailure(error));\n }\n };\n};\n\nexport const fetchApiTagList = (organizationId: string) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchApiTagsRequest());\n const apiResponse = await getApiTagsAuthenticated({\n organizationId: organizationId,\n });\n if (apiResponse) {\n dispatch(fetchApiTagsSuccess(apiResponse.data));\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while retrieving tags list\"));\n dispatch(fetchApiTagsFailure(error));\n }\n };\n};\n\nexport const fetchApiCategoryList = (organizationId: string) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchApiCategoriesRequest());\n const apiResponse = await getApiCategoriesAuthenticated({\n organizationId: organizationId,\n });\n if (apiResponse) {\n dispatch(fetchApiCategoriesSuccess(apiResponse.data));\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while retrieving category list\"));\n dispatch(fetchApiCategoriesFailure(error));\n }\n };\n};\n\nexport const fetchApiDetails = (apiId: string) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchApiRequest());\n const apiResponse = await getApiResourceAuthenticated(apiId);\n if (apiResponse) {\n dispatch(fetchApiSuccess(apiResponse.data));\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while fetching API details\"));\n dispatch(fetchApiFailure(error));\n }\n };\n};\n\nexport const fetchUserInfo = (\n orgHandle: string,\n userIdpId: string,\n reqHeaders = defaultHeaders\n) => {\n return authClient?.httpRequest({\n url: Utils.getChoreoUserInfoEndpoint(orgHandle, userIdpId),\n method: \"GET\",\n headers: reqHeaders,\n });\n};\n\nexport const fetchApplicationList = (reqHeaders = defaultHeaders) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchApplicationRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(),\n method: \"GET\",\n headers: reqHeaders,\n // Get all the applications and filter the internal apps\n // Need to do this to show the correct application count\n params: {...getOrgIdQueryParam(), limit: INT_MAX},\n });\n const defaultApplicationPrefix = Constants.DEFAULT_APP_INTERNAL_PREFIX;\n const apps = response?.data.list.filter((app: Application) => {\n return !app.name.includes(defaultApplicationPrefix, 0);\n });\n dispatch(\n fetchApplicationSuccess({ ...response?.data, list: apps, count: apps.length })\n );\n } catch (error) {\n dispatch(setErrorNotification(\"Error while retrieving application list\"));\n dispatch(fetchApplicationFailure(error));\n }\n };\n};\n\nexport const fetchApplicationDetails = (\n applicationId: string,\n reqHeaders = defaultHeaders\n) => {\n const queryParam = {\n ... getOrgIdQueryParam(),\n include: QUERY_PARAM_VALUE_OWNER_INFO,\n }\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchApplicationDetailsRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(applicationId),\n method: \"GET\",\n headers: reqHeaders,\n params: queryParam,\n });\n const updatedApps = [response?.data].map((app: Application) => {\n return { ...app };\n });\n dispatch(fetchApplicationDetailsSuccess(updatedApps[0]));\n } catch (error) {\n dispatch(\n setErrorNotification(\"Error while retrieving application details\")\n );\n dispatch(fetchApplicationDetailsFailure(error));\n }\n };\n};\n\nexport const userLogin = (\n fidp?: string,\n state?: string,\n correlationId?: string,\n orgName?: string,\n enterpriseEmail?: string,\n) => {\n return (dispatch: Dispatch) => {\n dispatch(userLoginRequest());\n trackIdpAuthInitiation(correlationId || '');\n if (fidp === Settings.enterpriseFidp && enterpriseEmail) {\n authClient\n ?.signIn({\n fidp: fidp,\n username: enterpriseEmail,\n state: state || \"\",\n })\n .catch((error) => trackIdpAuthFailure(correlationId || '', error))\n } else if (\n fidp === Settings.enterpriseFidp && \n orgName && isSelfSignupEnabled(orgName)\n ) {\n // Triggering enterprise login flow\n authClient\n ?.signIn({\n fidp: fidp,\n org: orgName,\n state: state || \"\",\n })\n .catch((error) => trackIdpAuthFailure(correlationId || '', error))\n } else if(fidp) {\n authClient\n ?.signIn({\n fidp: fidp,\n state: state || \"\",\n })\n .catch((error) => trackIdpAuthFailure(correlationId || '', error))\n } else {\n authClient\n ?.signIn()\n .catch((error) => trackIdpAuthFailure(correlationId || '', error));\n }\n\n authClient?.on(Hooks.SignIn, async (response: any) => {\n dispatch(userLoginSuccess(response));\n trackIdpAuthSuccess(correlationId || '');\n authClient\n ?.getDecodedIDToken()\n .then((idToken) => {\n dispatch(fetchUserInfoSuccess(idToken));\n })\n .catch((error) => {\n dispatch(\n setErrorNotification(\"Error while retrieving user information\")\n );\n dispatch(fetchUserInfoFailure(error));\n });\n });\n\n // Sign out on auth failure\n authClient?.on(Hooks.HttpRequestError, (error) => {\n trackIdpAuthFailure(correlationId || '', error);\n const {\n response: { status, data: {code} },\n } = error;\n if (status === 401) {\n if (code && code === 1022) {\n dispatch(fetchUserOrgInfoFailure(error));\n } else {\n authClient.signOut();\n }\n }\n });\n };\n};\n\nexport const fetchUserOrganizations = (correlationId: string) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchUserOrgInfoRequest());\n const apiResponse = await getUserOrganizationList();\n if (apiResponse) {\n dispatch(fetchUserOrgInfoSuccess(apiResponse.data.organizations, apiResponse.status));\n trackFetchUserOrgSuccess(correlationId);\n }\n } catch (error) {\n // Avoid dispatching error message when the user register and signIn for the first time to an org which has enabled \n // selfsignup as these errors are intended. This will apply for both Auto Approval enabled and disabled cases. \n const code = error?.response?.data?.code;\n const type = error?.response?.data?.type;\n if (!((code === APPROVAL_STATUS_APPROVED_CODE && type === APPROVAL_STATUS_APPROVED) || \n (code === USER_NOT_FOUND_CODE && type === USER_NOT_FOUND))) {\n dispatch(\n setErrorNotification(\"Error while retrieving organizations of user\")\n );\n }\n dispatch(fetchUserOrgInfoFailure(error));\n trackFetchUserOrgFailure(correlationId, error);\n }\n };\n};\n\nexport const obtainApimToken = (orgHandle: string, correlationId: string) => {\n return async (dispatch: Dispatch) => {\n dispatch(obtainApimTokenRequest());\n trackObtainApimTokenInitiation(correlationId);\n const config = {\n tokenEndpoint: Settings.tokenExchangeUrl,\n attachToken: false,\n data: {\n client_id: Settings.tokenExchangeConfig.clientId,\n grant_type: Settings.tokenExchangeConfig.grantType,\n subject_token_type: Settings.tokenExchangeConfig.subjectTokenType,\n requested_token_type: Settings.tokenExchangeConfig.requestedTokenType,\n scope: Settings.tokenExchangeConfig.scope,\n subject_token: \"{{token}}\",\n orgHandle: orgHandle,\n },\n id: \"apim-token-exchange\",\n returnResponse: true,\n returnsSession: true,\n signInRequired: true,\n };\n\n await authClient?.updateConfig({ validateIDToken: false });\n\n await authClient\n ?.requestCustomGrant(config)\n .then((response: any) => {\n dispatch(obtainApimTokenSuccess(response));\n })\n .catch((error) => () => {\n dispatch(setErrorNotification(\"Error while authenticating the user\"));\n dispatch(obtainApimTokenFailure(error));\n trackObtainApimTokenFailure(correlationId, error);\n })\n .finally(async () => {\n await authClient.updateConfig({ validateIDToken: true });\n });\n\n authClient?.on(\n Hooks.CustomGrant,\n (response) => {\n dispatch(obtainApimTokenSuccess(response));\n trackObtainApimTokenSuccess(correlationId);\n },\n \"apim-token-exchange\"\n );\n };\n};\n\nexport const obtainApimTokenAndChangeOrganization = (\n organization: Organization\n) => {\n return async (dispatch: Dispatch) => {\n dispatch(obtainApimTokenRequest());\n const config = {\n tokenEndpoint: Settings.tokenExchangeUrl,\n attachToken: false,\n data: {\n client_id: Settings.tokenExchangeConfig.clientId,\n grant_type: Settings.tokenExchangeConfig.grantType,\n subject_token_type: Settings.tokenExchangeConfig.subjectTokenType,\n requested_token_type: Settings.tokenExchangeConfig.requestedTokenType,\n scope: Settings.tokenExchangeConfig.scope,\n subject_token: \"{{token}}\",\n orgHandle: organization.handle,\n },\n id: \"apim-token-exchange\",\n returnResponse: true,\n returnsSession: true,\n signInRequired: true,\n };\n\n await authClient?.updateConfig({ validateIDToken: false });\n\n await authClient\n ?.requestCustomGrant(config)\n .then((response: any) => {\n dispatch(obtainApimTokenSuccess(response));\n dispatch(changeUserOrganizationRequest());\n if (organization?.uuid) {\n dispatch(changeUserOrganizationSuccess(organization));\n Utils.localStoreOperation(\n StorageOperations.ADD,\n Constants.SELECTED_ORG_UUID,\n organization.uuid\n );\n Utils.localStoreOperation(\n StorageOperations.ADD,\n Constants.SELECTED_ORG_HANDLE_NAME,\n organization.handle\n );\n } else {\n const errorMessage = \"Error while trying to change user organization\";\n dispatch(changeUserOrganizationFailure(errorMessage));\n dispatch(setErrorNotification(errorMessage));\n }\n })\n .catch((error) => () => {\n dispatch(setErrorNotification(\"Error while authenticating the user\"));\n dispatch(obtainApimTokenFailure(error));\n })\n .finally(async () => {\n await authClient.updateConfig({ validateIDToken: true });\n });\n\n authClient?.on(\n Hooks.CustomGrant,\n (response) => {\n dispatch(obtainApimTokenSuccess(response));\n },\n \"apim-token-exchange\"\n );\n };\n};\n\nexport const fetchAPIVersionRangeSubscriptions =\n(\n id: string,\n organizationId: string,\n reqHeaders = defaultHeaders,\n) =>\nasync (dispatch: Dispatch) => {\n fetchSubscriptions(id, organizationId, \"api\", Constants.DEFAULT_APPLICATION_LIMIT, null, reqHeaders, true)(dispatch);\n};\n\nexport const fetchSubscriptions =\n (\n id: string,\n organizationId: string,\n type = \"api\",\n limit?: number | null,\n offset?: number | null,\n reqHeaders = defaultHeaders,\n includeFromVersionRange = false,\n ) =>\n async (dispatch: Dispatch) => {\n const params: any = type === \"api\" ? { apiId: id } : { applicationId: id };\n if (limit !== null) {\n params['limit'] = limit;\n }\n if (offset !== null) {\n params['offset'] = offset;\n }\n dispatch(fetchSubscriptionRequest());\n try {\n const response = await authClient?.httpRequest({\n url: Utils.getSubscriptionResourceEndpoint(),\n method: \"GET\",\n params: {\n ...params,\n organizationId: organizationId,\n includeFromVersionRange: includeFromVersionRange || undefined,\n },\n headers: reqHeaders,\n });\n dispatch(fetchSubscriptionsSuccess(response?.data));\n } catch (error) {\n dispatch(\n setErrorNotification(\"Error while retrieving subscription details\")\n );\n dispatch(fetchSubscriptionsFailure(error));\n }\n };\n\nexport const cleanupSubscriptions = () => async (dispatch: Dispatch) => {\n dispatch(fetchSubscriptionsSuccess({count: 0, list: [], pagination: {} as Pagination}));\n}\n\nexport const fetchAppKeys =\n (appId: string, organizationId: string, reqHeaders = defaultHeaders) =>\n async (dispatch: Dispatch) => {\n dispatch(fetchKeysRequest());\n try {\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(appId, Constants.RESOURCE_APP_KEYS),\n method: \"GET\",\n headers: reqHeaders,\n params: {\n organizationId: organizationId,\n },\n });\n dispatch(fetchKeysSuccess(response?.data));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while retrieving application keys\"));\n dispatch(fetchKeysFailure(error));\n }\n };\n\nexport const fetchApiCredentialKeys = (appId: string, organizationId: string, reqHeaders = defaultHeaders) =>\n async (dispatch: Dispatch) => {\n dispatch(fetchApiKeysCredentialsRequest());\n try {\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(appId, Constants.RESOURCE_APP_KEYS),\n method: \"GET\",\n headers: reqHeaders,\n params: {\n organizationId: organizationId,\n },\n });\n dispatch(fetchApiKeysCredentialsSuccess(response?.data));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while retrieving default application keys\"));\n dispatch(fetchApiKeysCredentialsFailure(error));\n }\n };\n\nexport const generateApplicationToken = (\n applicationId: string,\n selectedScopes: string[],\n key: Key,\n validityPeriod = Settings.tokenValidityPeriod,\n reqHeaders = defaultHeaders\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(createOauthTokenRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(\n applicationId,\n Constants.RESOURCE_APP_KEYS +\n Constants.RESOURCE_GENERATE_TOKEN.replace(\n \"KEY_MAPPING_ID\",\n key.keyMappingId\n )\n ),\n headers: reqHeaders,\n method: \"POST\",\n data: {\n consumerSecret: key.consumerSecret,\n validityPeriod,\n scopes: selectedScopes,\n revokeToken: \"\",\n additionalProperties: key.additionalProperties,\n },\n params: getOrgIdQueryParam(),\n });\n dispatch(createOauthTokenSuccess(response?.data));\n dispatch(setSucessNotification(\"Successfully created the access token\"));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while creating access token\"));\n dispatch(createOauthTokenFailure(error));\n }\n };\n};\nexport const exchangeToken = (\n applicationId: string,\n selectedScopes: string[],\n key: Key,\n additionalProperties: Record,\n validityPeriod = Settings.tokenValidityPeriod,\n reqHeaders = defaultHeaders\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(createOauthTokenRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(\n applicationId,\n Constants.RESOURCE_APP_KEYS +\n Constants.RESOURCE_GENERATE_TOKEN.replace(\n \"KEY_MAPPING_ID\",\n key.keyMappingId\n )\n ),\n headers: reqHeaders,\n method: \"POST\",\n data: {\n consumerSecret: key.consumerSecret,\n validityPeriod,\n scopes: selectedScopes,\n revokeToken: \"\",\n grantType: \"TOKEN_EXCHANGE\",\n additionalProperties: additionalProperties,\n },\n params: getOrgIdQueryParam(),\n });\n dispatch(createOauthTokenSuccess(response?.data));\n dispatch(setSucessNotification(\"Successfully created the access token\"));\n } catch (error) {\n const status = error?.response?.status;\n if (status === Constants.BAD_REQUEST) {\n const errorDescription = error?.response?.data?.description; \n dispatch(setErrorNotification(errorDescription));\n } else {\n dispatch(setErrorNotification(\"Error while creating access token\"));\n }\n dispatch(createOauthTokenFailure(error));\n }\n };\n};\n\nexport const generateApiKey = (\n applicationId: string,\n additionalProperties: ApiKeyAdditionalProperties,\n validityPeriod = Settings.tokenValidityPeriod,\n reqHeaders = defaultHeaders\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(createApikeyRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApiKeyGenerationEndpoint(\n applicationId,\n Constants.ENVIRONMENTS.PRODUCTION\n ),\n headers: reqHeaders,\n method: \"POST\",\n data: { additionalProperties, validityPeriod },\n params: getOrgIdQueryParam(),\n });\n dispatch(createApikeySuccess(response?.data));\n dispatch(setSucessNotification(\"Successfully created the API key\"));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while creating API key\"));\n dispatch(createApikeyFailure(error));\n }\n };\n};\n\nexport const generateApiTestKey = (\n apiId: string,\n keyType: string,\n reqHeaders = defaultHeaders,\n) => {\n return async (dispatch: Dispatch) => {\n console.log(apiId);\n try {\n dispatch(createApiTestKeyRequest())\n const response = await authClient?.httpRequest({\n url: Utils.getApiTestKeyGenerationEndpoint(\n apiId\n ),\n method: \"POST\",\n params: {...getOrgIdQueryParam(), keyType: keyType},\n headers: reqHeaders,\n });\n dispatch(createApiTestKeySuccess(response?.data));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while generating test key\"));\n dispatch(createApiTestKeyFailure(error));\n }\n };\n}\n\n\nexport const generateToken = (\n selectedScopes: string[],\n defaultAppId: string,\n defaultAppKey: Key,\n validityPeriod = Settings.tokenValidityPeriod,\n reqHeaders = defaultHeaders\n) => {\n const appId = defaultAppId;\n const appKeysInfo: Key = defaultAppKey;\n let organizationId = \"\";\n\n if (store.getState().userReducer.selectedOrg.uuid) {\n organizationId = store.getState().userReducer.selectedOrg.uuid;\n }\n return authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(\n appId,\n Constants.RESOURCE_APP_KEYS +\n Constants.RESOURCE_GENERATE_TOKEN.replace(\n \"KEY_MAPPING_ID\",\n appKeysInfo.keyMappingId\n )\n ),\n headers: reqHeaders,\n method: \"POST\",\n data: {\n consumerSecret: appKeysInfo.consumerSecret,\n validityPeriod: validityPeriod,\n scopes: selectedScopes,\n revokeToken: \"\",\n additionalProperties: appKeysInfo.additionalProperties,\n },\n params: {\n organizationId: organizationId,\n },\n });\n};\n\n/* No any usage of below method */\nexport const fetchSwagger = (\n apiId: string,\n organizationId: string,\n environmentName?: string\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchSwaggerRequest());\n let queryParams = {};\n if (environmentName) {\n queryParams = {\n environmentName: environmentName,\n };\n }\n const response = await getApiResourceAuthenticated(\n apiId,\n Constants.RESOURCE_SWAGGER,\n { ...queryParams, organizationId: organizationId },\n \"json\"\n );\n if (response) {\n dispatch(fetchSwaggerSuccess(response.data));\n }\n } catch (error) {\n dispatch(\n setErrorNotification(\"Error while retrieving OpenAPI definition\")\n );\n dispatch(fetchSwaggerFailure(error));\n }\n };\n};\n\n/* No any usage of below method */\nexport const fetchSwaggerUnauthenticated =\n (apiId: string, organizationId: string, environmentName?: string) =>\n async (dispatch: Dispatch) => {\n try {\n dispatch(fetchSwaggerRequest());\n let queryParams = {};\n if (environmentName) {\n queryParams = {\n environmentName: environmentName,\n };\n }\n const response = await getApiResourceUnauthenticated(\n apiId,\n Constants.RESOURCE_SWAGGER,\n { ...queryParams, organizationId: organizationId },\n \"json\"\n );\n if (response) {\n dispatch(fetchSwaggerSuccess(response.data));\n }\n } catch (error) {\n dispatch(\n setErrorNotification(\"Error while retrieving OpenAPI definition\")\n );\n dispatch(fetchSwaggerFailure(error));\n }\n };\n\nexport const postComment = (\n apiId: string,\n organizationId: string,\n comment: CreateComment\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(postApiCommentsRequest());\n const postResponse = await updateApiResourceAuthenticated(\n apiId,\n Constants.RESOURCE_API_COMMENTS,\n { organizationId: organizationId },\n comment,\n \"POST\"\n );\n if (postResponse) {\n dispatch(postApiCommentsSuccess(postResponse.data));\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while adding the comment\"));\n dispatch(postApiCommentsFailure(error));\n }\n };\n};\n\nexport const editComment = (\n apiId: string,\n organizationId: string,\n commentId: string,\n comment: CreateComment\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(editApiCommentsRequest());\n const editCommentResource =\n Constants.RESOURCE_API_COMMENTS + \"/\" + commentId;\n const editResponse = await updateApiResourceAuthenticated(\n apiId,\n editCommentResource,\n {organizationId: organizationId},\n comment,\n \"PATCH\"\n );\n if (editResponse) {\n dispatch(editApiCommentsSuccess(editResponse.data));\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while editing the comment\"));\n dispatch(editApiCommentsFailure(error));\n }\n };\n};\n\nexport const deleteComment = (\n apiId: string,\n organizationId: string,\n commentId: string\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(deleteApiCommentsRequest());\n const deleteCommentResource =\n Constants.RESOURCE_API_COMMENTS + \"/\" + commentId;\n const deleteResponse = await updateApiResourceAuthenticated(\n apiId,\n deleteCommentResource,\n { organizationId: organizationId },\n undefined,\n \"DELETE\"\n );\n if (deleteResponse) {\n dispatch(deleteApiCommentsSuccess(commentId));\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while deleting the comment\"));\n dispatch(deleteApiCommentsFailure(error));\n }\n };\n};\n\nexport const postRating = (\n apiId: string,\n organizationId: string,\n rating: ApiRating\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(createRatingsRequest());\n const postResponse = await updateApiResourceAuthenticated(\n apiId,\n Constants.RESOURCE_USER_RATING,\n { organizationId: organizationId },\n rating,\n \"PUT\"\n );\n if (postResponse) {\n dispatch(createRatingsSuccess());\n // Get API rating\n try {\n dispatch(fetchRatingsRequest());\n const ratingsResponse = await getApiResourceAuthenticated(\n apiId,\n Constants.RESOURCE_API_RATINGS,\n { organizationId: organizationId }\n );\n if (ratingsResponse) {\n dispatch(fetchRatingsSuccess(ratingsResponse.data));\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while retrieving API ratings\"));\n dispatch(fetchRatingsFailure(error));\n }\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while updating API rating\"));\n dispatch(createRatingsFailure(error));\n }\n };\n};\n\nexport const fetchApplication =\n (appName: string, organizationId: string, reqHeaders = defaultHeaders) =>\n async (dispatch: Dispatch) => {\n const queryParams = {\n query: appName,\n organizationId: organizationId,\n };\n\n try {\n dispatch(fetchApplicationRequest());\n\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(),\n method: \"GET\",\n headers: reqHeaders,\n params: queryParams,\n });\n dispatch(fetchApplicationSuccess(response?.data));\n } catch (error) {\n dispatch(\n setErrorNotification(\"Error while retrieving application details\")\n );\n dispatch(fetchApplicationFailure(error));\n }\n };\n\nexport const createApplication = (\n application: Application,\n reqHeaders = defaultHeaders\n) => {\n return async (dispatch: Dispatch): Promise => {\n try {\n dispatch(createApplicationRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(),\n method: \"POST\",\n headers: reqHeaders,\n data: {\n name: application.name,\n throttlingPolicy: application.throttlingPolicy,\n tokenType: application.tokenType,\n description: application?.description,\n },\n params: getOrgIdQueryParam(),\n });\n if (response) {\n dispatch(createApplicationSuccess(response.data));\n return response.data.applicationId;\n }\n return null;\n } catch (error) {\n dispatch(setErrorNotification(\"Error while creating application\"));\n dispatch(createApplicationFailure(error));\n return null;\n }\n };\n};\n\nexport const shareApplication = (\n application: Application, \n applicationShareData: ApplicationShare,\n reqHeaders = defaultHeaders\n) => {\n return async (dispatch: Dispatch): Promise => {\n try {\n dispatch(shareApplicationRequest(applicationShareData.applicationId, applicationShareData.userPermissions));\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationShareEndpoint(applicationShareData.applicationId, Constants.RESOURCE_SHARE_APPLICATION),\n method: \"POST\",\n headers: reqHeaders,\n data: {\n userPermissions: applicationShareData.userPermissions,\n },\n params: getOrgIdQueryParam()\n });\n if (response) {\n application.sharedWith = response.data.userPermissions;\n dispatch(shareApplicationSuccess(application));\n dispatch(setSucessNotification(\"Application shared successfully\"));\n return response.data.applicationId;\n }\n return null;\n } catch (error) {\n dispatch(setErrorNotification(\"Error while sharing application\"));\n dispatch(shareApplicationFailure(error));\n return null;\n }\n };\n};\n\nexport const updateApplication =\n (application: Application, reqHeaders = defaultHeaders) =>\n async (dispatch: Dispatch) => {\n try {\n dispatch(updateApplicationRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(application.applicationId),\n method: \"PUT\",\n headers: reqHeaders,\n data: application,\n params: getOrgIdQueryParam(),\n });\n const updatedApps = [response?.data].map((app: Application) => {\n return { ...app };\n });\n dispatch(updateApplicationSuccess(updatedApps[0]));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while updating application\"));\n dispatch(updateApplicationFailure(error));\n }\n };\n\nexport const deleteApplication = (\n applicationId: string,\n reqHeaders = defaultHeaders\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(deleteApplicationRequest());\n await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(applicationId),\n method: \"DELETE\",\n headers: reqHeaders,\n params: getOrgIdQueryParam(),\n });\n dispatch(deleteApplicationSuccess(applicationId));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while deleting application\"));\n dispatch(deleteApplicationFailure(error));\n }\n };\n};\n\nexport const createSubscription =\n (\n appId: string,\n organizationId: string,\n apiId: string,\n throttlingPolicy: string,\n versionRange?: string,\n message?: string,\n reqHeaders = defaultHeaders\n ) =>\n async (dispatch: Dispatch) => {\n try {\n dispatch(createSubscriptionsRequest());\n\n const response = await authClient?.httpRequest({\n url: Utils.getSubscriptionResourceEndpoint(),\n method: \"POST\",\n headers: reqHeaders,\n data: {\n applicationId: appId,\n apiId: apiId,\n throttlingPolicy: throttlingPolicy,\n versionRange: versionRange || undefined,\n },\n params: {\n organizationId: organizationId,\n },\n });\n dispatch(createSubscriptionsSuccess(response?.data));\n if (typeof message === \"string\" && message.trim() !== \"\") {\n dispatch(setSucessNotification(message));\n } else {\n dispatch(setSucessNotification(\"Subscription created successfully\"));\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while creating subscription\"));\n dispatch(createSubscriptionsFailure(error));\n }\n };\n\nexport const createAppKeys =\n (\n appId: string,\n organizationId: string,\n grantTypes: string[],\n callBackUrl: string,\n additionalProperties: Record = {},\n keyType = KeyType.PRODUCTION,\n keyManager = Settings.keyManager,\n reqHeaders = defaultHeaders\n ) =>\n async (dispatch: Dispatch) => {\n try {\n dispatch(createKeysRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(\n appId,\n Constants.RESOURCE_GENERATE_APP_KEYS\n ),\n method: \"POST\",\n headers: reqHeaders,\n data: {\n keyType: keyType,\n keyManager: keyManager,\n grantTypesToBeSupported: grantTypes,\n callbackUrl: callBackUrl,\n additionalProperties: additionalProperties,\n },\n params: {\n organizationId: organizationId,\n },\n });\n dispatch(createKeysSuccess(response?.data));\n } catch (error) {\n dispatch(setErrorNotification(getCreateKeyErrorMessage(error)));\n dispatch(createKeysFailure(error));\n }\n };\n\nexport const createAppKeysAndToken =\n (\n appId: string,\n organizationId: string,\n grantTypes: string[],\n callBackUrl: string,\n scopes: string[],\n additionalProperties: Record = {},\n keyType = KeyType.PRODUCTION,\n keyManager = Settings.keyManager,\n reqHeaders = defaultHeaders\n ) =>\n async (dispatch: Dispatch) => {\n try {\n dispatch(createKeysRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(\n appId,\n Constants.RESOURCE_GENERATE_APP_KEYS\n ),\n method: \"POST\",\n headers: reqHeaders,\n data: {\n keyType: keyType,\n keyManager: keyManager,\n grantTypesToBeSupported: grantTypes,\n callbackUrl: callBackUrl,\n additionalProperties: additionalProperties,\n },\n params: {\n organizationId: organizationId,\n },\n });\n if (response?.data?.keyMappingId) {\n const key = response.data;\n try {\n dispatch(createOauthTokenRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(\n appId,\n Constants.RESOURCE_APP_KEYS +\n Constants.RESOURCE_GENERATE_TOKEN.replace(\n \"KEY_MAPPING_ID\",\n key.keyMappingId\n )\n ),\n headers: reqHeaders,\n method: \"POST\",\n data: {\n consumerSecret: key.consumerSecret,\n validityPeriod: Settings.tokenValidityPeriod,\n scopes: scopes,\n revokeToken: \"\",\n additionalProperties: key.additionalProperties,\n },\n params: getOrgIdQueryParam(),\n });\n dispatch(createOauthTokenSuccess(response?.data));\n dispatch(\n setSucessNotification(\"Successfully created the access token\")\n );\n } catch (error) {\n dispatch(setErrorNotification(\"Error while creating access token\"));\n dispatch(createOauthTokenFailure(error));\n }\n }\n dispatch(createKeysSuccess(response?.data));\n } catch (error) {\n dispatch(setErrorNotification(getCreateKeyErrorMessage(error)));\n dispatch(createKeysFailure(error));\n }\n };\n\nexport const updateApplicationKey =\n (applicationId: string, key: Key, reqHeaders = defaultHeaders) =>\n async (dispatch: Dispatch) => {\n try {\n dispatch(updateKeysRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(\n applicationId,\n Constants.RESOURCE_APP_KEYS + \"/\" + key.keyMappingId\n ),\n headers: reqHeaders,\n method: \"PUT\",\n data: {\n keyManager: key.keyManager,\n keyMappingId: key.keyMappingId,\n consumerKey: key.consumerKey,\n consumerSecret: key.consumerSecret,\n supportedGrantTypes: key.supportedGrantTypes,\n callbackUrl: key.callbackUrl,\n keyType: key.keyType,\n additionalProperties: key.additionalProperties,\n },\n params: getOrgIdQueryParam(),\n });\n dispatch(updateKeysSuccess(response?.data));\n dispatch(setSucessNotification(\"Keys updated successfully\"));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while updating keys\"));\n dispatch(updateKeysFailure(error));\n }\n };\n\nexport const updateAppKeys =\n (\n callBackUrl: string,\n grantTypes: string[],\n keyManager = Settings.keyManager,\n keyType = KeyType.PRODUCTION,\n reqHeaders = defaultHeaders\n ) =>\n async (dispatch: Dispatch) => {\n let appId = \" \";\n let appKeysInfo: Key;\n let organizationId = \"\";\n try {\n dispatch(updateKeysRequest());\n\n if (store.getState().subscriptionsReducer.subscriptions.count > 0)\n appId =\n store.getState().subscriptionsReducer.subscriptions.list[0]\n .applicationId;\n else\n appId =\n store.getState().subscriptionsReducer.subscriptions.applicationId;\n\n if (store.getState().applicationKeysReducer.keys.count > 0)\n appKeysInfo = store.getState().applicationKeysReducer.keys.list[0];\n else appKeysInfo = store.getState().applicationKeysReducer.keys;\n\n if (store.getState().userReducer.selectedOrg.uuid) {\n organizationId = store.getState().userReducer.selectedOrg.uuid;\n }\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(\n appId,\n Constants.RESOURCE_APP_KEYS + \"/\" + appKeysInfo.keyMappingId\n ),\n headers: reqHeaders,\n method: \"PUT\",\n data: {\n keyManager: keyManager,\n keyMappingId: appKeysInfo.keyMappingId,\n consumerKey: appKeysInfo.consumerKey,\n consumerSecret: appKeysInfo.consumerSecret,\n supportedGrantTypes: grantTypes,\n callbackUrl: callBackUrl,\n keyType: keyType,\n },\n params: {\n organizationId: organizationId,\n },\n });\n dispatch(updateKeysSuccess(response?.data));\n dispatch(setSucessNotification(\"Keys updated successfully\"));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while updating keys\"));\n dispatch(updateKeysFailure(error));\n }\n };\n\nexport const generateCredentials =\n (\n apiId: string,\n appName: string,\n organizationId: string,\n subThrottlingPolicy: string,\n grantTypes: string[],\n callBackUrl: string,\n appThrottlingPolicy = Settings.defaultAppThrottlingPolicy,\n keyType = KeyType.PRODUCTION,\n keyManager = Settings.keyManager,\n tokenType = Settings.defaultAppTokenType,\n reqHeaders = defaultHeaders\n ) =>\n async (dispatch: Dispatch) => {\n let applicationId = \"\";\n let subscriptionId = \"\";\n\n dispatch(createApiKeysCredentialsRequest());\n\n const queryParams = {\n query: appName,\n organizationId: organizationId,\n };\n\n // Fetch or create Application for given app name\n try {\n dispatch(fetchApplicationRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(),\n method: \"GET\",\n headers: reqHeaders,\n params: queryParams,\n });\n dispatch(fetchApplicationSuccess(response?.data));\n\n if (response?.data.count > 0) {\n applicationId = response?.data.list[0].applicationId;\n } else {\n try {\n dispatch(createApplicationRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(),\n method: \"POST\",\n headers: reqHeaders,\n data: {\n name: appName,\n throttlingPolicy: appThrottlingPolicy,\n tokenType: tokenType,\n },\n params: {\n organizationId: organizationId,\n },\n });\n dispatch(createApplicationSuccess(response?.data));\n applicationId = response?.data.applicationId;\n } catch (error) {\n dispatch(createApplicationFailure(error));\n dispatch(setErrorNotification(\"Credentials generation failed\"));\n dispatch(\n createApiKeysCredentialsFailure(\n \"Credentials generation failed while creating application\"\n )\n );\n }\n }\n\n //Fetch or create Subscription\n if (applicationId) {\n try {\n dispatch(fetchSubscriptionRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getSubscriptionResourceEndpoint(),\n method: \"GET\",\n params: {\n apiId: apiId,\n organizationId: organizationId,\n },\n headers: reqHeaders,\n });\n dispatch(fetchSubscriptionsSuccess(response?.data));\n\n const defaultSubscription = response?.data.list.find(\n (subscription: Subscription) =>\n subscription.applicationId === applicationId\n );\n if (defaultSubscription) {\n subscriptionId = defaultSubscription.subscriptionId;\n } else {\n try {\n dispatch(createSubscriptionsRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getSubscriptionResourceEndpoint(),\n method: \"POST\",\n headers: reqHeaders,\n data: {\n applicationId: applicationId,\n apiId: apiId,\n throttlingPolicy: subThrottlingPolicy,\n },\n params: {\n organizationId: organizationId,\n },\n });\n dispatch(createSubscriptionsSuccess(response?.data));\n subscriptionId = response?.data.subscriptionId;\n } catch (error) {\n dispatch(createSubscriptionsFailure(error));\n dispatch(setErrorNotification(\"Credentials generation failed\"));\n dispatch(\n createApiKeysCredentialsFailure(\n \"Credentials generation failed while creating subscription\"\n )\n );\n }\n }\n\n //Fetch or create Application keys\n if (subscriptionId) {\n try {\n dispatch(fetchApiKeysCredentialsRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(\n applicationId,\n Constants.RESOURCE_APP_KEYS\n ),\n method: \"GET\",\n headers: reqHeaders,\n params: {\n organizationId: organizationId,\n },\n });\n dispatch(fetchApiKeysCredentialsSuccess(response?.data));\n\n let envKey;\n if(response?.data.count > 0) {\n envKey = response?.data.list.find((key: Key) => key.keyType === keyType);\n }\n\n if (envKey) {\n dispatch(createApiKeysCredentialsSuccess(response?.data));\n } else {\n try {\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(\n applicationId,\n Constants.RESOURCE_GENERATE_APP_KEYS\n ),\n method: \"POST\",\n headers: reqHeaders,\n data: {\n keyType: keyType,\n keyManager: keyManager,\n grantTypesToBeSupported: grantTypes,\n callbackUrl: callBackUrl,\n },\n params: {\n organizationId: organizationId,\n },\n });\n dispatch(createApiKeysCredentialsSuccess(response?.data));\n } catch (error) {\n dispatch(setErrorNotification(getCreateKeyErrorMessage(error, \"Credentials generation failed\")));\n dispatch(\n createApiKeysCredentialsFailure(\n \"Credentials generation failed while creating application keys\"\n )\n );\n }\n }\n } catch (error) {\n dispatch(fetchApiKeysCredentialsFailure(error));\n dispatch(setErrorNotification(\"Credentials generation failed\"));\n dispatch(\n createApiKeysCredentialsFailure(\n \"Credentials generation failed while retrieving application keys\"\n )\n );\n }\n }\n } catch (error) {\n dispatch(fetchSubscriptionsFailure(error));\n dispatch(setErrorNotification(\"Credentials generation failed\"));\n dispatch(\n createApiKeysCredentialsFailure(\n \"Credentials generation failed while retrieving subscription details\"\n )\n );\n }\n }\n } catch (error) {\n dispatch(fetchApplicationFailure(error));\n dispatch(setErrorNotification(\"Credentials generation failed\"));\n dispatch(\n createApiKeysCredentialsFailure(\n \"Credentials generation failed while retrieving application details\"\n )\n );\n }\n };\n\n// @TODO - Dispatch type doesn't suit parameter dispatch and need to replace with a specific type\nexport const checkCredentials = () => async (dispatch: any) => {\n try {\n const apiId = store.getState().apiReducer.api.id;\n const apiName = store.getState().apiReducer.api.name;\n const organizationId = store.getState().userReducer.selectedOrg.uuid;\n dispatch(fetchApiKeysCredentialsRequest());\n await dispatch(fetchSubscriptions(apiId, organizationId));\n\n const defaultAppName =\n Constants.DEFAULT_APP_INTERNAL_PREFIX +\n store.getState().userReducer.userInfo.sub +\n \"_\" +\n apiName;\n const defaultSubscription = store\n .getState()\n .subscriptionsReducer.subscriptions.list.find(\n (subscription: Subscription) =>\n subscription.applicationInfo?.name === defaultAppName\n );\n if (defaultSubscription) {\n const appId = defaultSubscription.applicationInfo?.applicationId;\n await dispatch(fetchApiCredentialKeys(appId, organizationId));\n } else {\n dispatch(fetchApiKeysCredentialsFailure(\"Default Credentials Unavailable\"));\n }\n } catch (error) {\n dispatch(fetchApiKeysCredentialsFailure(\"Credentials Check Failed \" + error));\n }\n};\n\nexport const generateSdk = (\n apiId: string,\n organizationId: string,\n language: string\n) => {\n const headers = {\n Accept: \"*/*\",\n };\n return getApiResourceAuthenticated(\n apiId,\n Constants.RESOURCE_GENERATE_SDK.replace(\"LANGUAGE\", language),\n { organizationId: organizationId },\n \"blob\",\n headers\n );\n};\n\nexport const getSdkLanguagesResource = async (organizationId: string) => {\n return authClient?.httpRequest({\n headers: {\n Accept: \"application/json\",\n },\n method: \"GET\",\n url: Utils.getSdkResourceEndpoint(),\n params: {\n organizationId: organizationId,\n },\n });\n};\n\nexport const getApiDocumentContent = (documentId: string, isFileType: boolean, isLoggedIn: boolean) => {\n const apiId = store.getState().apiReducer.api.id;\n const organizationId = store.getState().userReducer.selectedOrg.uuid;\n if (isLoggedIn) {\n return getApiResourceAuthenticated(\n apiId,\n Constants.RESOURCE_API_DOCUMENTS +\n Constants.RESOURCE_API_DOCUMENT_CONTENT.replace(\n \"DOCUMENT_ID\",\n documentId\n ),\n { organizationId: organizationId },\n isFileType ? \"blob\" : \"text\"\n );\n } else {\n const orgId = store.getState().organizationMetadataReducer.organizationMetadata.uuid;\n return getApiResourceUnauthenticated(\n apiId,\n Constants.RESOURCE_API_DOCUMENTS +\n Constants.RESOURCE_API_DOCUMENT_CONTENT.replace(\n \"DOCUMENT_ID\",\n documentId\n ),\n { organizationId: orgId },\n isFileType ? \"blob\" : \"text\"\n );\n }\n};\n\nexport const updateSubscription = (\n subscriptionId: string,\n subscription: Subscription,\n organizationId: string,\n message?: string\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(updateSubscriptionRequest());\n const subscriptionResponse = await updateSubscriptionAuthenticated(\n subscriptionId,\n subscription,\n { organizationId: organizationId }\n );\n if (subscriptionResponse) {\n dispatch(updateSubscriptionSuccess(subscriptionResponse.data));\n if (typeof message === \"string\" && message.trim() !== \"\") {\n dispatch(setSucessNotification(message));\n } else {\n dispatch(setSucessNotification(\"Subscription updated successfully\"));\n }\n }\n } catch (error) {\n dispatch(setErrorNotification(\"Error while updating subscription\"));\n dispatch(updateSubscriptionFailure(error));\n }\n };\n};\n\nexport const deleteSubscription = (\n subscriptionId: string,\n reqHeaders = defaultHeaders\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(deleteSubscriptionsRequest());\n await authClient?.httpRequest({\n url: Utils.getSubscriptionResourceEndpoint(subscriptionId),\n method: \"DELETE\",\n headers: reqHeaders,\n params: getOrgIdQueryParam(),\n });\n dispatch(deleteSubscriptionsSuccess(subscriptionId));\n dispatch(setSucessNotification(\"Subscription deleted successfully\"));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while deleting subscription\"));\n dispatch(deleteSubscriptionsFailure(error));\n }\n };\n};\n\nexport const removeDefaultApplicationKeys = (\n keyType: KeyType,\n appName: string,\n reqHeaders = defaultHeaders\n) => async (dispatch: Dispatch) => {\n try {\n dispatch(deleteApiKeysCredentialsRequest());\n let organizationId;\n if (store.getState().userReducer.selectedOrg.uuid) {\n organizationId = store.getState().userReducer.selectedOrg.uuid;\n }\n await store.dispatch(fetchApplication(appName, organizationId));\n const defaultApp = store.getState().applicationReducer.applications.list.find(\n (app: Application) => app.name.includes(Constants.DEFAULT_APP_INTERNAL_PREFIX, 0)\n );\n const deletingKey = store.getState().credentialsReducer.keys.list.find((key: Key) => key.keyType === keyType);\n \n\n if (!defaultApp || !deletingKey || !organizationId) {\n dispatch(setErrorNotification(\"Error while removing credentials\"));\n dispatch(deleteApiKeysCredentialsFailure(\"Credentials deletion failed\"));\n return;\n }\n\n await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(\n defaultApp.applicationId, Constants.RESOURCE_APP_KEYS\n + Constants.RESOURCE_CLEAN_UP_APP_KEYS.replace(\"KEY_MAPPING_ID\", deletingKey.keyMappingId)\n ),\n method: \"POST\",\n headers: reqHeaders,\n params: {\n organizationId: organizationId,\n },\n });\n const remainingKeys = store.getState().credentialsReducer.keys.list.filter((key: Key) => key.keyType !== keyType);\n dispatch(deleteApiKeysCredentialsSuccess({ count: remainingKeys.length, list: remainingKeys }));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while removing credentials\"));\n dispatch(deleteApiKeysCredentialsFailure(\"Credentials deletion failed\"));\n }\n}\n\nexport const removeCredentials =\n (appName: string, reqHeaders = defaultHeaders) =>\n async (dispatch: Dispatch) => {\n let appId = \"\";\n let organizationId = \"\";\n if (store.getState().userReducer.selectedOrg.uuid) {\n organizationId = store.getState().userReducer.selectedOrg.uuid;\n }\n try {\n dispatch(deleteApplicationRequest());\n dispatch(deleteApiKeysCredentialsRequest());\n await store.dispatch(fetchApplication(appName, organizationId));\n\n if (store.getState().applicationReducer.applications.count > 0) {\n appId =\n store.getState().applicationReducer.applications.list[0]\n .applicationId;\n } else {\n appId = store.getState().applicationReducer.applications.applicationId;\n }\n\n await authClient?.httpRequest({\n url: Utils.getApplicationEndpoint(appId),\n method: \"DELETE\",\n headers: reqHeaders,\n params: {\n organizationId: organizationId,\n },\n });\n dispatch(deleteApplicationSuccess(appId));\n dispatch(deleteApiKeysCredentialsSuccess(null));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while removing credentials\"));\n dispatch(deleteApplicationFailure(error));\n dispatch(\n deleteApiKeysCredentialsFailure(\n \"Credentials deletion failed while deleting Application\"\n )\n );\n }\n };\n\nexport const resetNotificationMsg = () => {\n return (dispatch: Dispatch) => {\n dispatch(resetNotification());\n };\n};\n\nexport const changeUserOrganization = (selectedOrganization: Organization) => {\n return (dispatch: Dispatch) => {\n dispatch(changeUserOrganizationRequest());\n if (selectedOrganization?.uuid) {\n dispatch(changeUserOrganizationSuccess(selectedOrganization));\n Utils.localStoreOperation(\n StorageOperations.ADD,\n Constants.SELECTED_ORG_UUID,\n selectedOrganization.uuid\n );\n Utils.localStoreOperation(\n StorageOperations.ADD,\n Constants.SELECTED_ORG_HANDLE_NAME,\n selectedOrganization.handle\n );\n } else {\n const errorMessage = \"Error while trying to change user organization\";\n dispatch(changeUserOrganizationFailure(errorMessage));\n dispatch(setErrorNotification(errorMessage));\n }\n };\n};\n\n/* Fetch Identity provider list */\nexport const fetchIDPs = (\n organizationId: string,\n devPortalAppEnv?: DevPortalAppEnv,\n reqHeaders = defaultHeaders\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(fetchIDPRequest());\n\n const response = await authClient?.httpRequest({\n url: Utils.getIDPsEndpoint(),\n method: \"GET\",\n headers: reqHeaders,\n params: {\n organizationId: organizationId,\n devPortalAppEnv: devPortalAppEnv?.toString(),\n },\n });\n dispatch(fetchIDPSuccess(response?.data));\n } catch (error) {\n dispatch(setErrorNotification(\"Error while fetching IDPs\"));\n dispatch(fetchIDPFailure(error));\n }\n };\n};\n\nexport const addExternalUserToOrg = (organizationHandle: string) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(addExternalUserToOrgRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getAddExternalUserToOrgEndpoint(organizationHandle),\n headers: defaultHeaders,\n method: \"POST\",\n });\n if (response) {\n dispatch(addExternalUserToOrgSuccess());\n return response.status;\n }\n } catch (error) {\n dispatch(\n setErrorNotification(\n \"Error while adding user to the requested organization\"\n )\n );\n dispatch(addExternalUserToOrgFailure(error));\n }\n };\n};\n\nexport const verifyInvitation = (confirmationOrg: string, confirmationKey: string) => {\n return axios.get(\n Utils.getGetInvitationEndpoint(confirmationOrg, confirmationKey),\n {\n headers: {'Content-Type': 'application/json'},\n }\n );\n};\n\nexport const acceptInvitation = (confirmationOrg: string, confirmationKey: string) => {\n return authClient?.httpRequest({\n url: Utils.getAcceptInvitationEndpoint(confirmationOrg, confirmationKey),\n headers: defaultHeaders,\n method: \"POST\"\n });\n};\n\nexport const addEnterpriseUserToOrg = () => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(addEnterpriseUserRequest());\n const apiResponse = await addEnterpriseUser();\n if (apiResponse) {\n dispatch(addEnterpriseUserSuccess(apiResponse.data.organizations));\n }\n } catch (error) {\n dispatch(\n setErrorNotification(\"Error while registering user\")\n );\n dispatch(addEnterpriseUserFailure(error));\n }\n };\n};\n\n/* Maping application keys with the external IDP */\nexport const mapApplicationKeys = (\n applicationId: string,\n payload: ApplicationKeyMapping,\n reqHeaders = defaultHeaders,\n queryParams = getOrgIdQueryParam(),\n) => {\n return async (dispatch: Dispatch) => {\n try {\n dispatch(mapApplicationKeyRequest());\n const response = await authClient?.httpRequest({\n url: Utils.getApplicationKeysMapEndpoint(applicationId),\n method: \"POST\",\n headers: reqHeaders,\n params: queryParams,\n data: payload\n });\n dispatch(mapApplicationKeySucess(response?.data));\n dispatch(setSucessNotification(\"Client ID added successfully\"));\n } catch (error) {\n if (error.response?.data?.code == 901409) {\n dispatch(setErrorNotification(\"Client already registered with the organization\"));\n } else {\n dispatch(setErrorNotification(\"Error while setting client ID\"));\n }\n dispatch(mapApplicationKeyFailure(error));\n }\n };\n};\n\nconst getCreateKeyErrorMessage = (error: AxiosError, customError?: string) => {\n if (error.response && error.response.data) {\n if (error.response.data.code === 130001) {\n return error.response.data.description;\n }\n }\n return customError || \"Error while creating application keys\";\n}\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { SubscriptionPolicy } from \"../../data/interfaces\";\nimport {\n FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_FAILURE,\n FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_REQUEST,\n FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_SUCCESS,\n} from \"../types/subscriptionPolicies\";\n\nexport const fetchSubscriptionPoliciesRequest = () => {\n return {\n type: FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_REQUEST,\n };\n};\n\nexport const fetchSubscriptionPoliciesSuccess = (\n subscriptionPolicies: SubscriptionPolicy[]\n) => {\n return {\n type: FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_SUCCESS,\n payload: subscriptionPolicies,\n };\n};\n\nexport const fetchSubscriptionPoliciesFailure = (error: string) => {\n return {\n type: FETCH_SUBSCRIPTION_POLICIES_FOR_ORGANIZATION_FAILURE,\n playload: error,\n };\n};\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { IDPs } from '../../data/interfaces';\nimport {\n FETCH_IDP_REQUEST, FETCH_IDP_SUCCESS, FETCH_IDP_FAILURE\n} from '../types/idps';\n\n\nexport const fetchIDPRequest = () => {\n return {\n type: FETCH_IDP_REQUEST\n }\n}\n\nexport const fetchIDPSuccess = (idps: IDPs) => {\n return {\n type: FETCH_IDP_SUCCESS,\n payload: idps\n }\n}\n\nexport const fetchIDPFailure = (error: string) => {\n return {\n type: FETCH_IDP_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { MouseEventHandler } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport { PropTypes } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n primaryButton: {\n margin: '0 0 5px 10px',\n textTransform: 'capitalize',\n borderRadius: '5px',\n fontSize: '11px',\n }\n}));\n\ninterface PrimaryButtonProps {\n buttonLabel?: string,\n onClick?: MouseEventHandler,\n startIcon?: React.ReactNode,\n className?: string,\n type?: 'submit' | 'reset' | 'button',\n color?: PropTypes.Color,\n id?: string,\n dataTestId?: string,\n disabled?: boolean,\n}\n\nfunction PrimaryButton(props: PrimaryButtonProps) {\n const classes = useStyles();\n\n const primaryButtonLabel = props.buttonLabel;\n const handlePrimaryButtonClick = props.onClick;\n // Allow to add an icon and any custom modifications\n const { startIcon, className, type, color, id, dataTestId, disabled } = props;\n\n return (\n \n {primaryButtonLabel}\n \n )\n}\n\nexport default PrimaryButton;\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\nimport {createStyles, makeStyles, Theme} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n defaultIcon: {\n fill: theme.palette.primary.main,\n },\n interactiveIcon: {\n fill: '#8D91A3',\n '&:hover': {\n fill: theme.palette.primary.main,\n },\n },\n })\n);\n","/*\n * Copyright (c) 2022, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\nimport React from 'react';\nimport {useStyles} from './style';\n\ninterface PenEditIconProps {\n isInteractive: boolean;\n}\n\nexport default function PenEditIcon(props: PenEditIconProps) {\n const classes = useStyles();\n const {isInteractive} = props;\n\n return (\n \n \n \n );\n}\n","/*\n * Copyright (c) 2022, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: theme.spacing(50)\n },\n editableTextfield: {\n padding: theme.spacing(1),\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n width: '100% !important',\n backgroundColor: '#F7F8FB',\n transition: 'border 0.3s',\n borderRadius: `${theme.spacing(0.5)}px !important`,\n border: '1px solid #ffffff',\n minHeight: theme.spacing(5),\n overflow: 'hidden',\n '&:hover, &:active': {\n border: '1px solid #5567D5',\n backgroundColor: '#FFFFFF',\n cursor: 'pointer',\n overflow: 'auto',\n },\n '& .MuiInputBase-root': {\n width: '100% !important',\n lineHeight: 2,\n padding: 0,\n marginTop: theme.spacing(-0.4)\n },\n '& .MuiFilledInput-root': {\n width: '100% !important',\n borderRadius: `${theme.spacing(0.5)}px !important`,\n backgroundColor: '#F7F8FB',\n paddingLeft: 10,\n fontSize: 13,\n color: '#8D91A3',\n '&:hover': {\n border: '1px solid #5567D5',\n backgroundColor: '#FFFFFF',\n },\n },\n '& .MuiInputBase-input': {\n padding: '3px 0 0',\n },\n '& .MuiFilledInput-input': {\n paddingTop: theme.spacing(1.75),\n paddingBottom: theme.spacing(1.75),\n },\n '& .MuiFilledInput-underline:after': {\n display: 'none',\n },\n },\n editIcon: {\n marginTop: theme.spacing(0.2),\n },\n}));\n\nexport default useStyles;\n","/*\n * Copyright (c) 2022, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { ChangeEvent, useRef, useState } from \"react\";\nimport { Typography, IconButton, TextField, Box } from \"@material-ui/core\";\nimport { PenEditIcon } from \"../../icons\";\nimport useStyles from \"./style\";\n\ninterface EditableTextFieldProps {\n placeholder: string;\n isEditable: boolean;\n value?: string;\n onAction: (text: string) => void;\n multiline?: boolean;\n}\n\nexport default function EditableTextField(props: EditableTextFieldProps) {\n const { placeholder, value, onAction, multiline, isEditable } = props;\n const [text, setText] = useState(value?.trim() || \"\");\n const [isEditMode, setIsEditMode] = useState(false);\n const ref = useRef(null);\n const classes = useStyles();\n\n const handleOnAction = () => {\n onAction(text.trim());\n };\n\n const onEnableEditClick = () => {\n setIsEditMode(true);\n setTimeout(() => {\n ref?.current?.focus();\n }, 1);\n };\n\n const onChange = (event: ChangeEvent) => {\n setText(event.target.value);\n };\n\n const handleOnKeyPress = (event: { key: string }) => {\n if (event.key === \"Enter\") {\n setIsEditMode(false);\n if (text !== value) handleOnAction();\n }\n };\n\n const handleOnBlur = () => {\n setIsEditMode(false);\n if (text !== value) handleOnAction();\n };\n\n return (\n \n {!isEditMode && isEditable ? (\n onEnableEditClick()}\n >\n \n {text || placeholder}\n \n onEnableEditClick()}\n size=\"small\"\n className={classes.editIcon}\n aria-label=\"edit\"\n >\n \n \n \n ) : (\n \n )}\n \n );\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { makeStyles, useTheme, Theme, createStyles } from '@material-ui/core/styles';\nimport { Popover, Typography, Table, TableBody, TableCell, TableFooter, TablePagination, TableRow, IconButton, Box } from '@material-ui/core';\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\nimport LastPageIcon from '@material-ui/icons/LastPage';\nimport DeleteOutlineIcon from '@material-ui/icons/DeleteOutline';\nimport { isValidData, renderSkeleton, getTimeDurationForDate } from '../../../data/utils';\nimport { ApiCommentsReducer, ApiReducer, ApplicationState, Comment, CreateComment, TablePaginationActionsProps, UserReducer } from '../../../data/interfaces';\nimport { deleteComment, editComment } from '../../../data/operations';\nimport * as Constants from '../../../data/constants';\nimport PrimaryButton from '../../../elements/PrimaryButton';\nimport EditableTextField from '../../../elements/EditableTextField';\nimport { CLAIMS_FULL_NAME, CREATED_BY_USER } from '../../../data/constants';\n\nconst useStylesTablePagination = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n flexShrink: 0,\n marginLeft: theme.spacing(2.5),\n },\n }),\n);\n\nfunction TablePaginationActions(props: TablePaginationActionsProps) {\n const classes = useStylesTablePagination();\n const theme = useTheme();\n const { count, page, rowsPerPage, onChangePage } = props;\n\n const handleFirstPageButtonClick = (event: React.MouseEvent) => {\n onChangePage(event, 0);\n };\n\n const handleBackButtonClick = (event: React.MouseEvent) => {\n onChangePage(event, page - 1);\n };\n\n const handleNextButtonClick = (event: React.MouseEvent) => {\n onChangePage(event, page + 1);\n };\n\n const handleLastPageButtonClick = (event: React.MouseEvent) => {\n onChangePage(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));\n };\n\n return (\n
\n \n {theme.direction === 'rtl' ? : }\n \n \n {theme.direction === 'rtl' ? : }\n \n = Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"next page\"\n >\n {theme.direction === 'rtl' ? : }\n \n = Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"last page\"\n >\n {theme.direction === 'rtl' ? : }\n \n
\n );\n}\n\nconst useStylesCommentsTable = makeStyles((theme: Theme) =>\n createStyles({\n table: {\n minWidth: 200,\n },\n tableCell: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiCommentCreator,\n paddingRight: theme.spacing(1),\n },\n tableCellContent: {\n paddingRight: theme.spacing(1),\n ...theme.custom.apiOverviewPage.tabs.overview.apiCommentsCellContent\n },\n commentDeleteBtn: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiCommentsDeleteButton\n },\n cmntDelConfirmText: {\n padding: theme.spacing(2),\n ...theme.custom.apiOverviewPage.tabs.overview.apiCommentDeleteConfirmText\n },\n commentDelConfirm: {\n margin: '5px',\n }\n }));\n\ninterface ApiCommentsTableProps {\n commentsReducer: ApiCommentsReducer,\n userReducer: UserReducer,\n apiReducer: ApiReducer,\n deleteComment: (apiId: string, organizationId: string, commentId: string) => Promise,\n editComment: (apiId: string, organizationId: string, commentId: string, comment: CreateComment) => Promise,\n}\n\nfunction ApiCommentsTable({ commentsReducer, userReducer, apiReducer, deleteComment, editComment }: ApiCommentsTableProps) {\n const intl = useIntl();\n const classes = useStylesCommentsTable();\n const { loading: commentLoading, comments } = commentsReducer;\n const { apimTokenObtained, userInfo, selectedOrg } = userReducer;\n const { api } = apiReducer;\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(5);\n const [commentsState, setCommentsState] = useState(comments);\n const [anchorEl, setAnchorEl] = useState(null);\n const [deleteCommentId, setDeleteCommentId] = useState(\"\");\n const rows: Comment[] = commentsState.list;\n\n useEffect(() => {\n if (isValidData(comments)) {\n setCommentsState(comments);\n }\n }, [commentsReducer]);\n\n const emptyRows = rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage);\n\n const handleChangePage = (event: React.MouseEvent | null, newPage: number) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n\n const handleDeletePopoverClose = () => {\n setDeleteCommentId(\"\");\n setAnchorEl(null);\n };\n const handleDeletePopoverClick = (event: React.MouseEvent, commendId: string) => {\n setDeleteCommentId(commendId);\n setAnchorEl(event.currentTarget);\n };\n\n const handleDeleteComment = (event: React.MouseEvent) => {\n const deleteCommentId = event.currentTarget.id;\n if (api.id && deleteCommentId && selectedOrg.uuid) {\n setDeleteCommentId(\"\");\n setAnchorEl(null);\n deleteComment(api.id, selectedOrg.uuid, deleteCommentId);\n }\n }\n const handleEditCommentFormSubmit = async (value: string, commentId: string) => {\n const fullName = userInfo[CLAIMS_FULL_NAME] || 'Anonymous';\n const data: CreateComment = {\n content: value + CREATED_BY_USER + fullName,\n };\n if (api.id && selectedOrg.uuid) {\n editComment(api.id, selectedOrg.uuid, commentId, data);\n }\n };\n\n return (\n commentLoading ?\n renderSkeleton(\"rect\", \"100%\", 100)\n :\n comments.count === 0 ?\n \n \n \n :\n \n \n {(rowsPerPage > 0\n ? rows.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n : rows\n ).map((row: Comment) => {\n // @TODO Appending the full name of the commentor as a temporary fix to overcome UUID username.\n let commentContent = \"\";\n let commentCreator = \"\";\n if (row.content?.includes(Constants.CREATED_BY_USER)) {\n [commentContent, commentCreator] = row.content.split(Constants.CREATED_BY_USER);\n } else {\n commentContent = row.content;\n commentCreator = intl.formatMessage({\n id: \"api.apiOverview.apiCommentsTable.labels.anonymousCreator\",\n defaultMessage: \"Anonymous\"\n });\n }\n const deleteButtonDisplay = commentCreator === userInfo[Constants.CLAIMS_FULL_NAME];\n\n return (\n \n \n \n \n handleEditCommentFormSubmit(value, row.id)}\n multiline\n />\n \n \n \n \n {commentCreator}\n
\n {getTimeDurationForDate(row.createdTime)}\n {\n deleteButtonDisplay &&\n (
\n handleDeletePopoverClick(event, row.id)}\n >\n \n \n \n \n \n \n \n \n \n
\n )\n }\n
\n
\n )\n })}\n {emptyRows > 0 && (\n \n \n \n )}\n
\n \n \n \n \n \n \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n commentsReducer: state.apiCommentsReducer,\n userReducer: state.userReducer,\n apiReducer: state.apiReducer,\n }\n}\n\nconst mapDispatchToProps = {\n deleteComment: deleteComment,\n editComment: editComment,\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ApiCommentsTable);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react'\nimport LayersIcon from '@material-ui/icons/Layers';\n\ninterface CustomIconsProps {\n icon: string,\n disabled?: boolean,\n}\n\nconst CustomIcons = (props: CustomIconsProps): JSX.Element => {\n const { icon, disabled } = props;\n\n if (icon === 'overview') {\n return (\n Overview\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'overview-selected') {\n return (\n Overview\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'credentials') {\n return (\n Credentials\n \n \n \n \n \n \n \n )\n } else if (icon === 'credentials-selected') {\n return (\n Credentials\n \n \n \n \n \n \n \n )\n } else if (icon === 'tryout') {\n return (\n Try Out\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'tryout-selected') {\n return (\n Try Out\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'documentation') {\n return (\n Documentation\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'documentation-selected') {\n return (\n Documentation\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'sdks') {\n return (\n SDKs\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'sdks-selected') {\n return (\n SDKs\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'contracts') {\n return (\n Contracts\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'contracts-selected') {\n return (\n Contracts\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'copy-icon') {\n return (\n Copy\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'rating-button-icon') {\n return (\n Rating\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'try-button-icon') {\n return (\n Try API\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'documentation-icon') {\n return (\n Document\n \n \n \n \n \n )\n } else if (icon === 'how-to') {\n return (\n D743F63F-1BD5-4A08-B108-FFAB7FBAE3CC\n \n \n \n \n \n \n \n )\n\n } else if (icon === 'other') {\n return (\n Other\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'sample') {\n return (\n Sample\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'public-forum') {\n return (\n Public Forum\n \n \n \n \n \n \n \n )\n } else if (icon === 'support-forum') {\n return (\n Support Forum\n \n \n \n \n \n \n \n \n )\n } else if (icon === 'SAMPLES') {\n return (\n Samples & SDKs\n \n \n \n \n \n \n \n )\n } else if (icon === 'PUBLIC_FORUM') {\n return (\n Public Forum\n \n \n \n \n \n \n \n )\n } else if (icon === 'HOWTO') {\n return (\n How To\n \n \n \n \n \n \n \n )\n } else if (icon === 'SUPPORT_FORUM') {\n return (\n Support Forum\n \n \n \n \n \n \n \n )\n } else if (icon === 'OTHER') {\n return (\n Other\n \n \n \n \n \n \n \n )\n } else if (icon === 'edit') {\n return (\n Edit\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'delete') {\n return (\n Delete\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n } else if (icon === 'warning') {\n return (\n \n Warning\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n } else if (icon === 'warning-orange') {\n return (\n \n Warning\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n } else if (icon === 'create-with-choreo') {\n return (\n \n Create with Choreo\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n } else if (icon === 'subscriptions') {\n return (\n \n subscriptions\n \n \n \n \n \n \n \n \n );\n } else if (icon === 'subscriptions-selected') {\n return (\n \n subscriptions\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n } else if (icon === 'curl') {\n return (\n \n curl\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n } else if (icon === 'open-link-in-new-tab') {\n return (\n \n \n \n );\n } else if (icon === 'open-link-in-new-tab-disabled') {\n return (\n \n \n \n );\n } else if (icon === 'badge-what') {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n } else {\n return ()\n }\n}\n\nexport default CustomIcons;\n","/*\n * Copyright (c) 2022, WSO2 LLC (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nconst DarkTooltip = withStyles((theme) => ({\n tooltip: {\n backgroundColor: '#4caf50',\n color: theme.palette.common.white,\n boxShadow: theme.shadows[2],\n fontSize: 11,\n },\n}))(Tooltip);\n\nexport default DarkTooltip;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState } from 'react';\nimport clsx from 'clsx';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport IconButton from '@material-ui/core/IconButton';\nimport CustomIcons from '../icons/CustomIcons';\nimport Zoom from '@material-ui/core/Zoom';\nimport DarkTooltip from './DarkTooltip';\n\nconst useStyles = makeStyles((theme) => ({\n apiEndpoint: {\n borderRadius: theme.spacing(3),\n maxWidth: theme.spacing(50),\n height: theme.spacing(6),\n ...theme.custom.elements.copyTextField.textFieldStyle\n },\n notchedOutline: {\n ...theme.custom.elements.copyTextField.borderStyle\n },\n copyIconButton: {\n height: theme.spacing(6),\n width: theme.spacing(6),\n zIndex:1,\n ...theme.custom.elements.copyTextField.copyIconButtonStyle\n },\n}));\n\ninterface CopyTextFieldProps {\n textContent: string;\n disabled?: boolean;\n className?: string;\n testId?: string;\n}\n\nfunction CopyTextField(props: CopyTextFieldProps) {\n const classes = useStyles();\n const [copiedTooltipVisible, setCopiedTooltipVisible] = useState(false);\n const textContent: string = props.textContent;\n const disabled: boolean | undefined = props.disabled;\n const className = props.className;\n const testId: string | undefined = props?.testId;\n\n const handleCopyClick = (event: any) => {\n navigator.clipboard.writeText(textContent);\n setCopiedTooltipVisible(true);\n setTimeout(() => {\n setCopiedTooltipVisible(false);\n }, 2000);\n };\n\n return (\n \n \n \n \n \n ),\n classes: {\n notchedOutline: classes.notchedOutline,\n root: clsx(classes.apiEndpoint, className),\n },\n }}\n value={textContent}\n fullWidth\n disabled={disabled}\n data-testid={testId}\n />\n );\n}\n\nexport default CopyTextField;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { MouseEventHandler } from 'react'\nimport Button from '@material-ui/core/Button';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n greyButton: {\n margin: '0 0 5px 0',\n textTransform: 'capitalize',\n borderRadius: '5px',\n fontSize: '11px',\n }\n}));\n\ninterface GreyButtonProps {\n buttonLabel: string,\n onClick: MouseEventHandler,\n className?: string,\n disabled?: boolean,\n dataTestId?: string;\n}\n\nfunction GreyButton(props: GreyButtonProps) {\n const classes = useStyles();\n const {className, disabled, buttonLabel, dataTestId, onClick} = props;\n\n return (\n \n {buttonLabel}\n \n )\n}\n\nexport default GreyButton;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\n\nconst useStyles = makeStyles((theme) => ({\n textButton: {\n ...theme.custom.elements.textButton.textButtonStyle\n }\n}));\n\ninterface TextButtonProps {\n testId?: string,\n buttonLabel: string,\n onClick?: ((event: React.MouseEvent) => void) | undefined\n}\n\nfunction TextButton(props: TextButtonProps) {\n const classes = useStyles();\n\n const textButtonLabel = props.buttonLabel;\n const handleTextButtonClick = props.onClick;\n\n return (\n \n {textButtonLabel}\n \n )\n}\n\nexport default TextButton;\n","/*\n * Copyright (c) 2022, WSO2 LLC (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles, Theme } from \"@material-ui/core/styles\";\nimport { HTTP_METHODS, WS_METHODS } from '../../../data/constants';\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n operation: {\n border: `1px solid ${theme.palette.grey[100]}`,\n cursor: 'default',\n },\n verb: {\n color: theme.palette.common.white\n },\n}));\n\nexport const verbChipColors = {\n [HTTP_METHODS.GET]: \"#0095FF\",\n [HTTP_METHODS.POST]: \"#05A26B\",\n [HTTP_METHODS.PUT]: \"#FF9D52\",\n [HTTP_METHODS.DELETE]: \"#F0503C\",\n [HTTP_METHODS.OPTIONS]: \"#2366CC\",\n [HTTP_METHODS.PATCH]: \"#745BCC\",\n [HTTP_METHODS.HEAD]: \"#58CABB\",\n [WS_METHODS.PUBLISH]: \"#0095FF\",\n [WS_METHODS.SUBSCRIBE]: \"#05A26B\",\n};\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react'\nimport { makeStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport CustomIcons from '../icons/CustomIcons';\n\nconst useStyles = makeStyles((theme) => ({\n outlineButton: {\n color: '#5567D5',\n borderRadius: '6px',\n textTransform: 'capitalize',\n borderColor: '#5567D5',\n fontSize: '11px',\n },\n}));\n\ninterface OutlineButtonProps {\n buttonLabel: string,\n className?: string,\n startIcon?: JSX.Element,\n disabled?: boolean,\n testId?: string,\n onClick: ((event: React.MouseEvent) => void) | undefined\n}\n\nfunction OutlineButton(props: OutlineButtonProps) {\n const classes = useStyles();\n const handleOutlineButtonClick = props.onClick\n const outlineButtonlabel = props.buttonLabel;\n const { startIcon, disabled, className, testId } = props\n return (\n \n  {outlineButtonlabel}\n \n )\n}\n\nexport default OutlineButton;\n","/*\n * Copyright (c) 2022, WSO2 LLC (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\nimport { useIntl } from 'react-intl';\nimport React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { Badge, Box, Tooltip, Typography } from '@material-ui/core';\nimport {\n ApiReducer,\n ApplicationState,\n SwaggerReducer,\n UserReducer\n} from '../../../data/interfaces';\nimport { getAPIType, renderSkeleton } from '../../../data/utils';\nimport { useStyles, verbChipColors } from './style';\nimport OutlineButton from '../../../elements/OutlineButton';\nimport CustomIcons from '../../../icons/CustomIcons';\nimport { HTTP_METHODS, PATH_SEPARATOR, WS_METHODS } from '../../../data/constants';\n\ninterface Operation {\n verb: string;\n path: string;\n 'x-wso2-new': string;\n description: string;\n}\n\ninterface ApiResourcesProps {\n organizationHandle: string,\n apiState: ApiReducer,\n swagger: SwaggerReducer;\n user: UserReducer,\n displayCount?: number;\n}\n\nconst ApiResources = (props: ApiResourcesProps) => {\n const intl = useIntl();\n const history = useHistory();\n const classes = useStyles();\n const {\n organizationHandle,\n swagger,\n swagger: {\n swagger: { paths },\n loading\n },\n apiState: {\n api,\n loading: apiLoading\n },\n user: {\n selectedOrg: { handle: selectedOrgHandleName },\n apimTokenObtained,\n },\n displayCount = 5\n } = props;\n const [operations, setOperations] = useState([]);\n\n useEffect(() => {\n if (paths) {\n const operationList = Object.entries(paths).map(([path, verbs]) => (\n Object.entries(verbs)\n .filter(([verb, operation]: [string, any]) => Object.keys(HTTP_METHODS).some(method => method.toLowerCase() === verb.toLowerCase()))\n .map(([verb, operation]: [string, any]) => ({\n verb,\n path,\n 'x-wso2-new': operation['x-wso2-new'],\n description: operation.description\n }))\n ));\n setOperations(operationList.flat());\n }\n }, [paths]);\n\n useEffect(() => {\n if (getAPIType(api) === 'WS') {\n const { channels } = swagger.swagger;\n const topicList: Operation[] = [];\n for (const topic in channels) {\n const channel = channels[topic];\n for (const verb in channel) {\n if (\n verb.slice(0, 3) === WS_METHODS.PUBLISH ||\n verb.slice(0, 3) === WS_METHODS.SUBSCRIBE\n ) {\n topicList.push({\n verb: verb.slice(0, 3),\n path: topic,\n \"x-wso2-new\": \"false\",\n description: \"\",\n });\n }\n }\n }\n setOperations(topicList.flat());\n }\n }, [swagger, api]);\n\n const handleViewMoreClick = () => {\n if (apimTokenObtained) {\n history.push(`${PATH_SEPARATOR}${selectedOrgHandleName}/apis/${api?.id}/tryout`);\n } else {\n history.push(`${PATH_SEPARATOR}${organizationHandle}/apis/${api?.id}/resources`);\n }\n };\n \n if (loading) {\n return (renderSkeleton('rect', '100%', 48));\n }\n\n return (\n \n {operations.slice(0, displayCount).map((operation) => (\n \n \n \n \n {operation.verb.toUpperCase()}\n \n \n \n \n \n \n {operation.path}\n \n \n \n {operation.description && (\n \n \n \n {operation.description}\n \n \n \n )}\n \n ))}\n {operations.length > displayCount && (\n \n }\n />\n \n )}\n \n );\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiState: state.apiReducer,\n swagger: state.swaggerReducer,\n user: state.userReducer\n };\n};\nexport default connect(mapStateToProps)(ApiResources);\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n defaultIcon: {\n fill: theme.palette.secondary.main,\n '&:hover': {\n fill: theme.palette.primary.main,\n },\n },\n interactiveIcon: {\n fill: theme.palette.secondary.main,\n '&:hover': {\n fill: theme.palette.primary.main,\n },\n },\n defaultHeaderIconWrapper: {\n '&:hover': {\n fill: 'transparent',\n },\n },\n checkIcon: {\n marginTop: theme.spacing(0.375),\n },\n defaultPrimaryIcon: {\n width: theme.spacing(2),\n height: theme.spacing(2),\n fill: 'none',\n },\n defaultFontIcon: {\n width: theme.spacing(2),\n height: theme.spacing(2),\n fill: 'currentColor',\n },\n defaultMainIcon: {\n width: theme.spacing(2),\n height: theme.spacing(2),\n fill: 'currentColor',\n },\n defaultInProgressIcon: {\n width: theme.spacing(2),\n height: theme.spacing(2),\n fill: 'currentColor',\n animation: 'spin 2s linear infinite',\n },\n defaultQueuedIcon: {\n width: theme.spacing(2),\n height: theme.spacing(2),\n fill: 'currentColor',\n animation: 'spin 2s linear infinite',\n },\n })\n);\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { useStyles } from './style';\n\nexport default function SuccessFillIcon() {\n const classes = useStyles();\n\n return (\n \n \n \n \n );\n}\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { useStyles } from './style';\n\nexport default function InfoFilledIcon() {\n const classes = useStyles();\n\n return (\n \n \n \n \n );\n}\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { useStyles } from './style';\n\nexport default function ErrorFillIcon() {\n const classes = useStyles();\n\n return (\n \n \n \n \n );\n}\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { useStyles } from './style';\n\nexport default function WarningIcon() {\n const classes = useStyles();\n\n return (\n \n \n \n \n );\n}\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n color: theme.palette.secondary.dark,\n fontSize: theme.spacing(1.625),\n position: 'relative',\n padding: theme.spacing(0, 3, 0, 3),\n },\n fullWidth: {\n width: '100%',\n },\n notificationInner: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1.5),\n },\n notificationContent: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n padding: theme.spacing(0.75, 0),\n textAlign: 'left',\n },\n primaryContained: {\n borderLeftColor: theme.palette.primary.main,\n backgroundColor: `${theme.palette.primary.main}0D`,\n boxShadow: `inset 2px 0px 0px ${theme.palette.primary.main}`,\n },\n secondaryContained: {\n borderLeft: 'none',\n backgroundColor: theme.palette.secondary.light,\n boxShadow: 'none',\n },\n successContained: {\n borderLeftColor: theme.palette.success.main,\n backgroundColor: theme.palette.success.light,\n boxShadow: `inset 2px 0px 0px ${theme.palette.success.main}`,\n },\n defaultContained: {\n backgroundColor: theme.palette.common.white,\n borderRadius: 6,\n },\n warningContained: {\n borderLeftColor: theme.palette.warning.dark,\n backgroundColor: `${theme.palette.warning.light}2A`,\n boxShadow: `inset 2px 0px 0px ${theme.palette.warning.dark}`,\n },\n errorContained: {\n borderLeftColor: theme.palette.error.main,\n backgroundColor: theme.palette.error.light,\n boxShadow: `inset 2px 0px 0px ${theme.palette.error.main}`,\n },\n iconWrapper: {\n padding: theme.spacing(0.75, 0),\n },\n iconRoot: {\n padding: theme.spacing(1.3),\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n },\n primaryIcon: {\n color: theme.palette.primary.main,\n backgroundColor: `${theme.palette.primary.main}1A`,\n },\n secondaryIcon: {\n color: theme.palette.secondary.dark,\n backgroundColor: `${theme.palette.secondary.dark}1A`,\n },\n successIcon: {\n color: theme.palette.success.main,\n backgroundColor: `${theme.palette.success.main}1A`,\n },\n defaultIcon: {\n color: theme.palette.secondary.main,\n backgroundColor: `${theme.palette.secondary.main}1A`,\n },\n warningIcon: {\n color: theme.palette.warning.dark,\n backgroundColor: `${theme.palette.warning.dark}1A`,\n },\n errorIcon: {\n color: theme.palette.error.main,\n backgroundColor: `${theme.palette.error.main}1A`,\n }, \n closeButton: {\n position: 'absolute',\n right: theme.spacing(0.5),\n top: theme.spacing(0.5),\n },\n closeIcon: {\n fontSize: theme.spacing(2.25),\n },\n imageWrapper: {\n width: 'auto',\n '& svg': {\n height: '100%',\n width: 'auto',\n display: 'block',\n minHeight: theme.spacing(8),\n },\n },\n })\n);\n\nexport default useStyles;\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { Box, IconButton, Typography } from '@material-ui/core';\nimport {\n ErrorFillIcon,\n InfoFilledIcon,\n SuccessFillIcon,\n WarningIcon,\n} from '../../../assets/iconComponents';\nimport CloseIcon from '@material-ui/icons/Close';\nimport clsx from 'clsx';\nimport React from 'react';\nimport useStyles from './Notification.styles';\n\nexport interface NotificationProps {\n title?: React.ReactNode | string;\n children: React.ReactNode;\n icon?: 'info' | 'error' | 'warning' | 'success';\n bannerImg?: React.ReactNode;\n color?: 'primary' | 'secondary' | 'success' | 'default' | 'warning' | 'error';\n onClose?: () => void;\n fullWidth?: boolean;\n testId?: string;\n}\n\nconst Notification = (props: NotificationProps) => {\n const {\n children,\n icon,\n bannerImg,\n title,\n color = 'default',\n onClose,\n fullWidth,\n testId,\n } = props;\n const classes = useStyles();\n\n const getColorClass = () => {\n switch (color) {\n case 'primary':\n return classes.primaryContained;\n case 'secondary':\n return classes.secondaryContained;\n case 'success':\n return classes.successContained;\n case 'default':\n return classes.defaultContained;\n case 'warning':\n return classes.warningContained;\n case 'error':\n return classes.errorContained;\n default:\n return classes.defaultContained;\n }\n };\n\n const getIconColorClass = () => {\n switch (color) {\n case 'primary':\n return classes.primaryIcon;\n case 'secondary':\n return classes.secondaryIcon;\n case 'success':\n return classes.successIcon;\n case 'default':\n return classes.defaultIcon;\n case 'warning':\n return classes.warningIcon;\n case 'error':\n return classes.errorIcon;\n default:\n return classes.defaultIcon;\n }\n };\n\n const getIcon = () => {\n switch (icon) {\n case 'info':\n return ;\n case 'error':\n return ;\n case 'warning':\n return ;\n case 'success':\n return ;\n default:\n return null;\n }\n };\n const alertIcon = getIcon();\n\n return (\n \n \n {bannerImg && {bannerImg}}\n {alertIcon && (\n \n \n {alertIcon}\n \n \n )}\n \n {title && (\n \n {title}\n \n )}\n {onClose && (\n \n \n \n )}\n {children}\n \n \n \n );\n};\n\nexport default Notification;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\nimport React, { useState, useEffect } from 'react';\nimport clsx from 'clsx';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { connect } from 'react-redux';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport FormControl from '@material-ui/core/FormControl';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport TextField from '@material-ui/core/TextField';\nimport Avatar from '@material-ui/core/Avatar';\n\nimport ApiCommentsTable from './ApiCommentsTable';\nimport CopyTextField from '../../../elements/CopyTextField';\nimport GreyButton from '../../../elements/GreyButton';\nimport PrimaryButton from '../../../elements/PrimaryButton';\nimport TextButton from '../../../elements/TextButton';\n\nimport {\n isValidData,\n renderSkeleton,\n getAllApiGatewayUrls,\n localStoreOperation,\n isGraphqlApi,\n isThirdPartyApi,\n getEndpointUrls,\n getVisibilityFromAccessibilityType,\n getAPIType,\n} from '../../../data/utils';\nimport {\n fetchGraphqlResponse,\n postComment,\n} from '../../../data/operations';\nimport {\n ApiCommentsReducer,\n ApiReducer,\n UserReducer,\n ApplicationState,\n Api,\n Comments,\n CreateComment,\n GraphqlReducer,\n EndpointInfo,\n StorageOperations,\n} from \"../../../data/interfaces\";\nimport {\n CLAIMS_FULL_NAME,\n CREATED_BY_USER,\n PATH_SEPARATOR,\n MAX_COMMENT_LENGTH,\n CORRELATION_ID,\n API_TYPE_WS,\n API_TYPE_GRAPHQL,\n} from '../../../data/constants';\nimport { Box, MenuItem, Select } from '@material-ui/core';\nimport Settings from '../../../conf/settings';\nimport {\n trackOverviewAddComment,\n trackOverviewPageLoad,\n} from '../../../util/app-insights';\nimport ApiResources from '../ApiResources';\nimport Notification from '../../ChoreoSystem/Notification/Notification';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n },\n apiIconImage: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiIconImage,\n color: theme.palette.getContrastText(\n theme.custom.apiOverviewPage.tabs.overview.apiIconImage.backgroundColor\n ),\n textTransform: 'capitalize',\n },\n apiIconImageBg: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiIconImageBackground,\n },\n gridText: {\n textAlign: 'left',\n marginTop: '10px',\n },\n apiName: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiName,\n },\n apiVersionProvider: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiVersionProvider,\n },\n apiInfoTitle: {\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n width: '97px',\n marginRight: '16px',\n },\n apiInfoTitle2: {\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n apiInfoTitleHead: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiDetailTitles,\n },\n apiOverviewContent: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiDetailsContent,\n },\n apiEndpointWidth: {\n maxWidth: '100%',\n fontSize: '13px',\n lineHeight: '24px',\n },\n hideInput: {\n '& .MuiInputBase-input': {\n opacity: 0,\n },\n },\n endpointContainer: {\n position: 'relative',\n },\n epSelectionContainer: {\n zIndex:0,\n display: 'inline-flex',\n width: '100%',\n position: 'absolute',\n left: '10px',\n top: '50%',\n transform: 'translateY(-50%)',\n },\n endpointUrlSelection: {\n width: '100%',\n background: '#f7f8fb',\n outline: 'none',\n border: 'none',\n color: '#878787',\n font: 'inherit',\n fontSize: '14px',\n letterSpacing: '0.75px',\n paddingRight: theme.spacing(0.25),\n marginRight: theme.spacing(8),\n },\n envBox: {\n display: 'flex',\n alignItems: 'center',\n },\n envValue: {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n envChip: {\n minWidth: '100px',\n border: '1px solid #5567d5',\n borderRadius: '15px',\n background: '#5567d5',\n color: '#ffffff',\n height: '25px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n marginRight: theme.spacing(1),\n fontSize: 12,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n envChipSecondary: {\n border: \"1px solid #5567d5\",\n borderRadius: \"15px\",\n background: \"#f0f1fb\",\n color: \"#5567d5\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n marginRight: theme.spacing(1),\n fontSize: 12,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n lineHeight: 1.2,\n padding: \"0 8px\",\n },\n\n selectBg: {\n '& .MuiSelect-select': {\n backgroundColor: '#f7f8fb',\n marginLeft: theme.spacing(0.5),\n textAlign: 'left',\n },\n },\n envNameStyles: {\n fontWeight: \"bold\",\n paddingRight: \"5px\",\n },\n lifecycleStatus: {\n ...theme.custom.elements.apiCard.lifecycleStatus,\n boxSizing: \"border-box\",\n border: \"1px solid #8D91A3\",\n fontSize: \"10px\",\n backgroundColor: \"#E0E2E9\",\n padding: \"2px 10px\",\n borderRadius: \"5px\",\n marginLeft: theme.spacing(1),\n },\n}));\n\ninterface ApiInformationProps {\n organizationHandle: string;\n apiReducer: ApiReducer;\n commentsReducer: ApiCommentsReducer;\n userReducer: UserReducer;\n postComment: (\n apiId: string,\n organizationId: string,\n comment: CreateComment\n ) => Promise;\n graphqlResponse: GraphqlReducer;\n dispatchFetchGraphqlResponse: () => void;\n}\n\nfunction ApiInformation(props: ApiInformationProps) {\n const {\n organizationHandle,\n apiReducer,\n commentsReducer,\n userReducer,\n postComment,\n graphqlResponse,\n dispatchFetchGraphqlResponse,\n } = props;\n const classes = useStyles();\n const intl = useIntl();\n const { enableInV2 } = Settings;\n const {\n loading: apiLoading,\n api,\n apiThumbnail,\n apiThumbnailLoading,\n majorVersionApiList,\n majorVersionApisLoading,\n } = apiReducer;\n const { comments } = commentsReducer;\n const {\n apimTokenObtained,\n userInfo,\n orgs: userOrganizations,\n selectedOrg,\n } = userReducer;\n const [addCommentHidden, setAddCommentHidden] = useState(true);\n const [formValues, setFormValues] = useState({ newComment: '' });\n const [apiState, setApiState] = useState<{\n api: Api;\n thumbnail: string;\n comments: Comments;\n }>({ api: api, thumbnail: '', comments: comments });\n const { graphqlInfo, loading: isGraphqlResponseFetching } = graphqlResponse;\n\n const apiCommentCount = apiState.comments.count;\n const apiName = apiState.api?.displayName;\n const apiContext = apiState.api?.context;\n const apiVersion = apiState.api?.version;\n const isLatestMajorRangeVersion = apiState.api?.versionInfo?.majorRange?.isLatest || false;\n const apiOwner =\n apiState.api?.businessInformation?.businessOwner ||\n apiState.api.businessInformation?.technicalOwner;\n const apiOverview = apiState.api?.description;\n const [endpointUrls, setEndpointUrls] = useState(\n [] as EndpointInfo[]\n );\n const [selectedEndpoint, setSelectedEndpoint] = useState(\"\");\n const [selectedEnv, setSelectedEnv] = useState(\"\");\n const [selectedVisibility, setSelectedVisibility] = useState(\"\");\n const [isSelectedEpSandbox, setIsSelectedEpSandbox] =\n useState(false);\n const enableCustomDomainView = enableInV2 && apimTokenObtained;\n\n const externalAPIEndpointURL = apiState.api?.advertiseInfo?.apiExternalProductionEndpoint || \"\";\n const externalAPISandboxURL = apiState.api?.advertiseInfo?.apiExternalSandboxEndpoint || \"\";\n\n useEffect(() => {\n if (enableCustomDomainView && !!api.id) {\n dispatchFetchGraphqlResponse();\n }\n }, [api]);\n\n useEffect(() => {\n if (isValidData(api)) {\n setApiState((prevState) => {\n return {\n ...prevState,\n api: api,\n };\n });\n if(api && !apiLoading) {\n trackOverviewPageLoad(api?.name, api?.id, localStoreOperation(StorageOperations.GET, CORRELATION_ID) || '');\n }\n }\n }, [api]);\n\n useEffect(() => {\n if (api && getEndpointUrls(api)?.length === 0) return;\n\n const customEndpoints: any = [];\n\n if (isThirdPartyApi(api)) {\n customEndpoints.push({\n url: externalAPIEndpointURL,\n environment: \"Backend\",\n environmentDisplayName: \"Backend\",\n });\n if (externalAPISandboxURL) {\n customEndpoints.push({\n url: externalAPISandboxURL,\n environment: \"Sandbox\",\n environmentDisplayName: \"Sandbox\",\n });\n }\n }\n\n const defaultUrls = getAllApiGatewayUrls(\n api ? getEndpointUrls(api) : [],\n graphqlInfo,\n (api.versionInfo && api.versionInfo?.majorRange.isLatest) || false,\n api.version,\n !apimTokenObtained,\n selectedOrg\n );\n\n let endpointUrls: EndpointInfo[];\n\n if (customEndpoints.length > 0) {\n if (isThirdPartyApi(api)) {\n endpointUrls = customEndpoints;\n } else {\n endpointUrls = [... new Set(defaultUrls.map((url) => url.environmentDisplayName))]\n .map((env) => {\n const customUrls = customEndpoints\n .filter((endpoint: EndpointInfo) => endpoint.environmentDisplayName === env);\n if (customUrls.length > 0) {\n return [...customUrls];\n } else {\n const defaultUrl = defaultUrls\n .filter((endpoint: EndpointInfo) => endpoint.environmentDisplayName === env);\n return [...defaultUrl];\n }\n }).flat();\n }\n } else {\n endpointUrls = defaultUrls;\n }\n\n const defaultSelection = endpointUrls?.length > 0 ? endpointUrls[0] : null;\n setEndpointUrls(endpointUrls);\n setSelectedEndpoint(defaultSelection?.url || \"\");\n setSelectedEnv(defaultSelection?.choreoEnvironmentName || \"\");\n setSelectedVisibility(\n getVisibilityFromAccessibilityType(\n defaultSelection?.accessibilityType || \"\"\n )\n );\n setIsSelectedEpSandbox(defaultSelection?.isSandbox && defaultSelection.isCritical || false);\n }, [graphqlInfo, api, majorVersionApiList, majorVersionApisLoading]);\n\n useEffect(() => {\n if (apiThumbnail) {\n setApiState((prevState) => {\n return {\n ...prevState,\n thumbnail: URL.createObjectURL(apiThumbnail),\n };\n });\n }\n }, [apiThumbnail]);\n\n useEffect(() => {\n if (isValidData(comments)) {\n setApiState((prevState) => {\n return {\n ...prevState,\n comments: comments,\n };\n });\n }\n }, [comments]);\n\n const handleCommentClick = () => {\n setFormValues({ newComment: '' });\n setAddCommentHidden((prevState) => !prevState);\n };\n\n const handleFormChange = (event: any) => {\n setFormValues({\n ...formValues,\n [event.target.name]: event.target.value,\n });\n };\n\n const handleAddCommentFormSubmit = (event: any) => {\n event.preventDefault();\n const fullName = userInfo[CLAIMS_FULL_NAME] || 'Anonymous';\n const data: CreateComment = {\n // @TODO Appending the full name of the commentor as a temporary fix to overcome UUID username.\n content: formValues.newComment + CREATED_BY_USER + fullName,\n };\n if (api.id && selectedOrg.uuid) {\n postComment(api.id, selectedOrg.uuid, data);\n trackOverviewAddComment(api.id, formValues.newComment);\n }\n setFormValues({ newComment: '' });\n setAddCommentHidden(true);\n };\n\n const ApiOwner = (owner: string) => {\n if (owner) {\n return intl.formatMessage(\n {\n id: 'api.apiOverview.apiInformation.api.ownership',\n defaultMessage: 'by {owner}',\n },\n { owner }\n );\n } else {\n return intl.formatMessage({\n id: 'api.apiOverview.apiInformation.api.ownership.noOwner',\n defaultMessage: 'No owner available.',\n });\n }\n };\n\n const setSelectedUrl = (event: any) => {\n setGwEnvUrl(event?.target?.value);\n };\n\n const setGwEnvUrl = (value: string) => {\n const selectedEnvObject = endpointUrls?.find((endpoint) => {\n return endpoint?.url === value;\n });\n setSelectedEndpoint(selectedEnvObject?.url || \"\");\n setSelectedEnv(selectedEnvObject?.environmentDisplayName || \"\");\n setSelectedEnv(selectedEnvObject?.choreoEnvironmentName || \"\");\n setSelectedVisibility(\n getVisibilityFromAccessibilityType(\n selectedEnvObject?.accessibilityType || \"\"\n )\n );\n setIsSelectedEpSandbox(selectedEnvObject?.isSandbox && selectedEnvObject.isCritical || false);\n };\n\n const renderApiTypeMessage = (api?: Api) => {\n if (getAPIType(api) === API_TYPE_WS) {\n return (\n \n );\n } else if (getAPIType(api) === API_TYPE_GRAPHQL) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n };\n\n return (\n
\n \n {apiLoading || apiThumbnailLoading || !apiThumbnail ? (\n \n {renderSkeleton('rect', 97, 97)}\n \n ) : (\n \n \n \n )}\n \n \n \n {apiLoading ? (\n renderSkeleton(\"rect\", \"50%\", 24)\n ) : (\n <>\n \n {renderApiTypeMessage(api)}\n {api.lifeCycleStatus === 'PROTOTYPED' && (\n \n \n \n )}\n \n \n {apiName}\n \n \n )}\n\n {apiLoading ? (\n renderSkeleton('text', '50%', 20)\n ) : (\n \n \n \n \n    |   \n {ApiOwner(apiOwner)}\n \n )}\n \n \n \n {isThirdPartyApi(api) ? (\n \n \n \n {externalAPISandboxURL ? (\n \n ) : (\n \n )}\n \n \n \n {apiLoading ? (\n renderSkeleton('rect', 340, 48)\n ) : (\n
\n \n
\n \n {endpointUrls &&\n endpointUrls?.length > 0 &&\n selectedEndpoint && (\n (\n \n {selectedEnv && (\n \n {selectedEnv} :\n \n )}\n {selectedVisibility && (\n \n {selectedVisibility}\n \n )}\n {isSelectedEpSandbox && (\n \n Sandbox\n \n )}\n {value}\n \n )}\n >\n {endpointUrls?.map((endpoint: EndpointInfo) => {\n return (\n \n \n \n {endpoint.choreoEnvironmentName} :\n \n {endpoint.accessibilityType && (\n \n {getVisibilityFromAccessibilityType(\n endpoint.accessibilityType\n )}\n \n )}\n {endpoint.isSandbox && endpoint.isCritical && (\n \n {\"Sandbox\"}\n \n )}\n \n {endpoint.url}\n \n \n \n );\n })}\n \n )}\n \n
\n
\n )}\n
\n
\n ) : (\n <>\n {api && getEndpointUrls(api)?.length > 0 ? (\n \n \n \n {enableCustomDomainView ? (\n \n ) : (\n \n )}\n \n \n \n {apiLoading ? (\n renderSkeleton(\"rect\", 340, 48)\n ) : (\n
\n \n {enableCustomDomainView && (\n
\n {/* TODO (Shanakama) folowing selection will be chnaged in near future with the new design changes */}\n \n {endpointUrls &&\n endpointUrls?.length > 0 &&\n selectedEndpoint && (\n (\n \n {selectedEnv && (\n \n {selectedEnv} :\n \n )}\n {selectedVisibility && (\n \n {selectedVisibility}\n \n )}\n {isSelectedEpSandbox && (\n \n Sandbox\n \n )}\n \n {value}\n \n \n )}\n >\n {endpointUrls?.map(\n (endpoint: EndpointInfo) => {\n return (\n \n \n \n {endpoint.choreoEnvironmentName} :\n \n\n {endpoint.accessibilityType && (\n \n {getVisibilityFromAccessibilityType(\n endpoint.accessibilityType\n )}\n \n )}\n {endpoint.isSandbox && endpoint.isCritical && (\n \n {\"Sandbox\"}\n \n )}\n \n {endpoint.url}\n \n \n \n );\n })}\n \n )}\n \n
\n )}\n
\n )}\n
\n \n ) : (\n \n {apiLoading ? (\n renderSkeleton('rect', 616, 60)\n ) : (\n \n \n \n \n \n )}\n \n )}\n \n )}\n \n \n \n \n \n \n \n \n \n {apiLoading\n ? renderSkeleton('rect', '100%', 48)\n : apiOverview || (\n \n \n \n )}\n \n \n \n {!apiLoading && !isGraphqlApi(api) && (\n \n \n {getAPIType(api) === API_TYPE_WS ? (\n \n \n \n ) : (\n \n \n \n )}\n \n \n \n \n \n )}\n \n \n \n \n \n {apimTokenObtained && (\n \n \n \n )}\n \n \n \n \n \n \n \n
\n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n commentsReducer: state.apiCommentsReducer,\n userReducer: state.userReducer,\n graphqlResponse: state.graphqlReducer,\n };\n};\n\nconst mapDispatchToProps = {\n postComment: postComment,\n dispatchFetchGraphqlResponse: fetchGraphqlResponse,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ApiInformation);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { useIntl } from 'react-intl';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport Rating from '@material-ui/lab/Rating';\nimport Box from '@material-ui/core/Box';\n\nimport * as Utils from '../../../data/utils';\nimport { postRating } from '../../../data/operations';\nimport { ApiReducer, RatingsReducer, ApiRating, ApplicationState, UserReducer } from '../../../data/interfaces';\nimport {trackAPIRatingChange} from \"../../../util/app-insights\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: 225,\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(2),\n },\n}));\n\ninterface ApiHoverRatingProps {\n apiReducer: ApiReducer,\n ratingsReducer: RatingsReducer,\n userReducer: UserReducer,\n postRating: (apiId: string, organizationId: string, rating: ApiRating) => Promise,\n}\n\nfunction ApiHoverRating({ apiReducer, ratingsReducer, userReducer, postRating }: ApiHoverRatingProps) {\n const [value, setValue] = React.useState(-1);\n const [hover, setHover] = React.useState(-1);\n const classes = useStyles();\n const intl = useIntl();\n const { api } = apiReducer;\n const { ratings } = ratingsReducer;\n const { orgs: userOrganizations, selectedOrg } = userReducer;\n\n const labels: { [index: string]: string } = {\n 0: intl.formatMessage({ id: \"api.apiOverview.apiHoverRating.ratingLabels.none\", defaultMessage: \"None\" }),\n 1: intl.formatMessage({ id: \"api.apiOverview.apiHoverRating.ratingLabels.useless\", defaultMessage: \"Useless\" }),\n 2: intl.formatMessage({ id: \"api.apiOverview.apiHoverRating.ratingLabels.poor\", defaultMessage: \"Poor\" }),\n 3: intl.formatMessage({ id: \"api.apiOverview.apiHoverRating.ratingLabels.ok\", defaultMessage: \"Ok\" }),\n 4: intl.formatMessage({ id: \"api.apiOverview.apiHoverRating.ratingLabels.good\", defaultMessage: \"Good\" }),\n 5: intl.formatMessage({ id: \"api.apiOverview.apiHoverRating.ratingLabels.excellent\", defaultMessage: \"Excellent\" }),\n };\n\n if (Utils.isValidData(ratings)) {\n if (value === -1) {\n setValue(ratings.userRating);\n }\n }\n\n const handleRatingChange = (event: any, value: number | null) => {\n setValue(value);\n const data: ApiRating = {\n rating: value || 0,\n ratingId: \"\",\n apiId: \"\",\n ratedBy: \"\"\n }\n\n if (api.id && selectedOrg.uuid) {\n postRating(api.id, selectedOrg.uuid, data);\n trackAPIRatingChange(api.id, `${value}`);\n }\n }\n\n return (\n
\n {\n setHover(newHover);\n }}\n />\n {value !== null && {labels[hover !== -1 ? hover : value]}}\n
\n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n ratingsReducer: state.ratingsReducer,\n apiReducer: state.apiReducer,\n userReducer: state.userReducer\n }\n}\n\nconst mapDispatchToProps = {\n postRating: postRating,\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ApiHoverRating);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport Button from '@material-ui/core/Button';\nimport Rating from '@material-ui/lab/Rating';\nimport Popover from '@material-ui/core/Popover';\n\nimport ApiHoverRating from './ApiHoverRating';\nimport CustomIcons from '../../../icons/CustomIcons';\nimport OutlineButton from '../../../elements/OutlineButton';\n\nimport * as Utils from '../../../data/utils';\nimport { ApiReducer, ApplicationState, RatingsReducer, UserReducer } from '../../../data/interfaces';\nimport {PATH_SEPARATOR} from \"../../../data/constants\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n },\n gridText: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiRatingBox\n },\n textVCenter1: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiRatingTextCover\n },\n textVCenter2: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiRatingStars\n },\n rectangle: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiRatingRectangle\n },\n ratingButton: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiRatingButton\n },\n ratingPopover: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n ratingText: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiRatingText\n }\n}));\n\ninterface ApiRatingProps {\n apiReducer: ApiReducer,\n ratingsReducer: RatingsReducer,\n userReducer: UserReducer,\n hideTryOut?: boolean;\n disableTryOut?: boolean;\n}\n\nfunction ApiRating({ apiReducer, ratingsReducer, userReducer, hideTryOut, disableTryOut }: ApiRatingProps) {\n const intl = useIntl();\n const classes = useStyles();\n const { api } = apiReducer;\n const { ratings } = ratingsReducer;\n const { apimTokenObtained, selectedOrg } = userReducer;\n const selectedOrgHandleName= selectedOrg.handle;\n const [anchorEl, setAnchorEl] = React.useState(null);\n const open = Boolean(anchorEl);\n const history = useHistory();\n\n let apiId = '';\n let ratingValue = \"0.0\";\n let ratingCount = 0;\n\n if (Utils.isValidData(api)) {\n apiId = api.id;\n ratingValue = api.avgRating;\n }\n\n if (Utils.isValidData(ratings)) {\n ratingCount = ratings.count;\n ratingValue = ratings.avgRating;\n }\n\n const handleTryApiClick = () => {\n history.push(PATH_SEPARATOR + selectedOrgHandleName + '/apis/' + apiId + '/tryout');\n }\n\n const handleRatingClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleRatingClose = () => {\n setAnchorEl(null);\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n {ratingValue} ({ratingCount})\n \n \n \n \n \n \n {\n apimTokenObtained ?\n \n :\n \n \n \n \n \n }\n \n \n
\n
\n {(!hideTryOut && apimTokenObtained) &&\n \n }\n disabled={disableTryOut}\n />\n \n }\n
\n
\n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n ratingsReducer: state.ratingsReducer,\n userReducer: state.userReducer,\n }\n}\n\nexport default connect(mapStateToProps)(ApiRating);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSnackbar } from 'notistack';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport { ListItemAvatar, ListItemText } from '@material-ui/core';\n\nimport CustomIcons from '../../../icons/CustomIcons';\n\nimport * as Utils from '../../../data/utils';\nimport * as Constants from '../../../data/constants';\nimport { ApiReducer, ApplicationState, Document, DocumentsReducer, UserReducer } from '../../../data/interfaces';\nimport { PATH_SEPARATOR } from \"../../../data/constants\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n },\n apiDocsTitle: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiDocumentsTitleBox\n },\n apiInfoTitleHead: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiDocumentsTitleText,\n },\n docsList: {\n minWidth: '320px',\n overflowWrap: 'break-word',\n textAlign: 'left',\n },\n listItemText: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiDocumentPropertyText,\n },\n}));\n\ninterface ApiDocumentationProps {\n organizationHandle: string,\n apiReducer: ApiReducer,\n documentsReducer: DocumentsReducer,\n}\n\nfunction ApiDocumentation({ organizationHandle, apiReducer, documentsReducer}: ApiDocumentationProps) {\n const intl = useIntl();\n const classes = useStyles();\n const { enqueueSnackbar } = useSnackbar();\n const { api } = apiReducer;\n const { loading: docsLoading, documents, error: documentsError } = documentsReducer;\n const history = useHistory();\n let docsList: Document[] = [];\n\n if (Utils.isValidData(documents)) {\n docsList = documents.list;\n }\n\n useEffect(() => {\n if (documentsError) {\n enqueueSnackbar(\"Error while retrieving documents\", { variant: 'error' })\n }\n }, [documentsReducer]);\n\n const handleDocItemClick = (documentId: string) => {\n if (api.id && documentId) {\n history.push(PATH_SEPARATOR + organizationHandle + Constants.RESOURCE_API + \"/\"\n + api.id + Constants.RESOURCE_API_DOCUMENTS + \"/\" + documentId);\n }\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n {\n docsLoading ?\n Utils.renderSkeleton(\"rect\", \"100%\", 48)\n :\n \n {\n docsList.length === 0 ?\n \n \n \n :\n docsList.map((document) => (\n handleDocItemClick(document.documentId)}\n >\n \n \n \n \n \n ))}\n \n }\n \n \n
\n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n documentsReducer: state.documentsReducer\n }\n}\n\nexport default connect(mapStateToProps)(ApiDocumentation);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport Chip from '@material-ui/core/Chip';\n\nimport { isValidData, renderSkeleton } from '../../../data/utils';\nimport { ApiReducer, ApplicationState } from '../../../data/interfaces';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n },\n apiDocsTitle: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiTagsTitleBox\n },\n apiInfoTitleHead: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiTagsTitleText\n },\n chip: {\n margin: theme.spacing(0.5),\n ...theme.custom.apiOverviewPage.tabs.overview.apiTagsChip\n },\n}));\n\ninterface ApiTagsProps {\n apiReducer: ApiReducer\n}\n\nfunction ApiTags({ apiReducer }: ApiTagsProps) {\n const classes = useStyles();\n const { loading: apiLoading, api } = apiReducer;\n let tagsData: string[] = [];\n\n if (isValidData(api)) {\n tagsData = api.tags;\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n {\n apiLoading ?\n renderSkeleton(\"rect\", \"100%\", 25)\n :\n tagsData.length === 0 ?\n \n \n \n :\n tagsData.map((tag, key) => {\n return (\n
  • \n \n
  • \n );\n })\n }\n
    \n
    \n
    \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer\n }\n}\n\nexport default connect(mapStateToProps)(ApiTags);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nexport const useStyles = makeStyles((theme) => ({\n appBarSpacer: theme.mixins.toolbar,\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n ...theme.custom.apiOverviewPage.tabs.overview.styles\n },\n container: {\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(4),\n maxWidth: '1480px',\n },\n componentPadding: {\n paddingLeft: theme.spacing(7),\n paddingRight: theme.spacing(10),\n [theme.breakpoints.down('sm')]:{\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3), \n },\n [theme.breakpoints.up('lg')]:{\n paddingLeft: 'auto',\n paddingRight: 'auto', \n }\n }\n}));\n","export default __webpack_public_path__ + \"static/media/copy.ecfc163b.svg\";","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { IconButton, Typography } from '@material-ui/core';\nimport ScopesCopyIcon from '../../../../icons/copy.svg';\nimport React, { useState } from 'react';\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Zoom from \"@material-ui/core/Zoom\";\nimport DarkTooltip from \"../../../../elements/DarkTooltip\";\nimport { FormattedMessage } from \"react-intl\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n },\n copyAllScopes: {\n ...theme.custom.apiOverviewPage.tabs.overview.copyAllScopes\n },\n copyScopesText: {\n ...theme.custom.apiOverviewPage.tabs.overview.copyScopesText\n },\n}));\n\ninterface CopyCommandProps {\n copyCmd: string;\n}\n\nexport default function CopyCommand(props: CopyCommandProps) {\n const classes = useStyles();\n const { copyCmd } = props;\n const [copiedTooltipVisible, setCopiedTooltipVisible] = useState(false);\n\n const handleCopyClick = (event: any) => {\n navigator.clipboard.writeText(copyCmd);\n setCopiedTooltipVisible(true);\n setTimeout(() => {\n setCopiedTooltipVisible(false);\n }, 2000);\n };\n\n return (\n \n }\n TransitionComponent={Zoom}\n placement='right'\n open={copiedTooltipVisible}\n >\n \n \"scopes-copy\"/\n \n \n \n \n \n );\n}\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport Chip from '@material-ui/core/Chip';\n\nimport { isValidData, renderSkeleton } from '../../../data/utils';\nimport { ApiReducer, ApiScope, ApplicationState } from '../../../data/interfaces';\nimport CopyCommand from \"./CopyCommand\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n },\n apiDocsTitle: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiScopesTitleBox\n },\n apiInfoTitleHead: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiScopesTitleText\n },\n chip: {\n margin: theme.spacing(0.5),\n ...theme.custom.apiOverviewPage.tabs.overview.apiScopesChip\n },\n noScopesMessage: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiScopesNoScopesMessage\n },\n scopesGrid: {\n ...theme.custom.apiOverviewPage.tabs.overview.scopesGrid\n },\n}));\n\ninterface ApiScopesProps {\n apiReducer: ApiReducer\n}\n\nfunction ApiScopes ({ apiReducer }: ApiScopesProps) {\n\n const classes = useStyles();\n const { loading: apiLoading, api } = apiReducer;\n const scopesData: string[] = [];\n \n if (isValidData(api)) {\n for (let index = 0; index < api.scopes.length; index++) {\n scopesData.push(api.scopes[index].key);\n }\n }\n\n const scopeDataSpacedString = scopesData.join(\" \");\n\n return (\n \n \n \n \n \n \n {scopesData.length > 0 && (\n \n \n \n )}\n \n \n \n {\n apiLoading ?\n renderSkeleton(\"rect\", \"100%\", 25)\n :\n scopesData.length === 0 ?\n \n \n \n :\n scopesData.map((scope, key) => {\n return (\n \n );\n })\n }\n \n \n )\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer\n }\n}\n\nexport default connect(mapStateToProps)(ApiScopes);\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n },\n title: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiScopesTitleBox\n },\n titleHead: {\n ...theme.custom.apiOverviewPage.tabs.overview.apiScopesTitleText\n },\n grid: {\n ...theme.custom.apiOverviewPage.tabs.overview.scopesGrid\n },\n customDenseListItem: {\n marginLeft: theme.spacing(1),\n marginTop: -theme.spacing(1),\n '& .MuiListItem-dense': {\n paddingTop: 0,\n paddingBottom: 0,\n },\n '& .MuiListItem-gutters': {\n paddingLeft: theme.spacing(0.5),\n paddingRight: 0,\n },\n },\n indentedSkeleton: {\n marginLeft: theme.spacing(1),\n },\n skeletonSpacer: {\n marginTop: theme.spacing(1),\n },\n smallText: {\n fontSize: '12px',\n },\n boldText: {\n fontWeight: 'bold',\n fontSize: '12px',\n },\n customAccordionSummaryContent: {\n '& .MuiAccordionSummary-content': {\n margin: 0,\n flexGrow: 0,\n },\n '& .MuiIconButton-root': {\n padding: theme.spacing(0.5),\n },\n },\n customAccordionSummaryRoot: {\n '& .MuiAccordionSummary-root': {\n minHeight: 'auto',\n justifyContent: 'flex-start',\n },\n border: 'none',\n boxShadow: 'none',\n '&:before': {\n display: 'none',\n },\n '&.Mui-expanded': {\n margin: 0,\n },\n },\n customAccordionDetails: {\n '& .MuiAccordionDetails-root': {\n paddingTop: 0,\n paddingLeft: theme.spacing(3),\n paddingBottom: theme.spacing(0),\n },\n },\n link: {\n color: theme.palette.primary.main,\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline',\n },\n },\n}));\n\nexport default useStyles;\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\n\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\n\nimport { getFormatteddDateTime, renderSkeleton } from '../../../../data/utils';\nimport { Api, ApiReducer, ApplicationState, SubscriptionsReducer, UserReducer } from '../../../../data/interfaces';\nimport {\n fetchAPIVersionRangeSubscriptions,\n fetchAllApisOfMajorVersionAuthenticated\n} from '../../../../data/operations';\nimport { Accordion, AccordionDetails, AccordionSummary, List, ListItem, ListItemText } from '@material-ui/core';\nimport { Link } from 'react-router-dom';\nimport { DEFAULT_APP_INTERNAL_PREFIX, PATH_SEPARATOR, RESOURCE_API, RESOURCE_APPLICATIONS, RESOURCE_OVERVIEW, SUBSCRIBE_SCOPE } from '../../../../data/constants';\nimport useStyles from './styles';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport classNames from 'classnames';\n\ninterface AvailableVersionsProps {\n apiReducer: ApiReducer,\n userReducer: UserReducer,\n subscriptionInfo: SubscriptionsReducer,\n dispatchFetchAllApisOfMajorVersionAuthenticated: (\n organizationId: string,\n apiName: string,\n apiMajorVersion: string\n ) => Promise;\n dispatchFetchVersionRangeSubscriptions: (apiId: string, organizationId: string) => void;\n}\n\ninterface AppSub {\n appName: string,\n appUuid: string,\n createdTime: string,\n}\n\ninterface SubscribedVersion {\n version: string,\n apiUuid: string,\n subscriptionList: AppSub[],\n}\n\nfunction LatestVersionListItem(props: {\n latestVersion: string,\n latestVersionUuid: string,\n selectedApiVersion: string,\n orgHandle: string\n}) {\n const { latestVersion, latestVersionUuid, selectedApiVersion, orgHandle } = props;\n const classes = useStyles();\n return (\n \n {latestVersion === selectedApiVersion ? (\n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n )}\n \n );\n}\n\nfunction SubscribedVersionsListItem(props: {\n subVersions: SubscribedVersion[],\n selectedApiVersion: string,\n orgHandle: string\n}) {\n const { subVersions, selectedApiVersion, orgHandle } = props;\n const classes = useStyles();\n\n return (\n \n
    \n \n \n \n \n \n
    \n {subVersions.map(subVersion => (\n \n ))}\n
    \n
    \n
    \n );\n}\n\nfunction ExpandableSubscribedVersionNestedListItem(props: {\n subVersion: SubscribedVersion,\n selectedApiVersion: string,\n orgHandle: string\n}) {\n const classes = useStyles();\n const { subVersion, selectedApiVersion, orgHandle } = props;\n\n const [expandedPanel, setExpandedPanel] = useState();\n\n const handlePanelChange = (panelId: string) => (_: any, isExpanded: boolean) => {\n setExpandedPanel(isExpanded ? panelId : \"\");\n };\n\n return (\n \n }>\n {selectedApiVersion == subVersion.version ? (\n \n {subVersion.version}\n \n ) : (\n
    event.stopPropagation()}>\n \n \n {subVersion.version}\n \n \n
    \n )}\n
    \n \n \n {subVersion.subscriptionList\n .filter(\n sub => !sub.appName.startsWith(DEFAULT_APP_INTERNAL_PREFIX))\n .map(sub => (\n \n \n \n \n {sub.appName}\n \n ),\n createdTime: getFormatteddDateTime(sub.createdTime)\n }}\n />\n\n \n \n \n ))}\n \n \n \n );\n}\n\nfunction AllVersionList(props: {\n latestVersion: string,\n latestVersionUuid: string,\n selectedApiVersion: string,\n orgHandle: string,\n subVersions: SubscribedVersion[]\n}) {\n const { latestVersion, latestVersionUuid, selectedApiVersion, orgHandle, subVersions } = props;\n const classes = useStyles();\n\n return (\n \n \n \n \n );\n}\n\nfunction AvailableVersions(props: AvailableVersionsProps) {\n const {\n apiReducer,\n userReducer,\n subscriptionInfo,\n dispatchFetchAllApisOfMajorVersionAuthenticated,\n dispatchFetchVersionRangeSubscriptions,\n } = props;\n const { selectedOrg, user } = userReducer;\n const classes = useStyles();\n const { majorVersionApiList, majorVersionApisLoading, api, loading: apiLoading } = apiReducer;\n const { subscriptions, isLoading: isSubscriptionFetching } = subscriptionInfo;\n const [subscribedVersions, setSubscribedVersions] = useState([]);\n const loading = majorVersionApisLoading || isSubscriptionFetching;\n\n const sortedApiList = majorVersionApiList.list && majorVersionApiList.list\n .filter((a: Api) => a.name === api.name)\n .sort((a: Api, b: Api) => {\n if (a.version > b.version) {\n return -1;\n }\n if (a.version < b.version) {\n return 1;\n }\n return 0;\n });\n const latestApi = sortedApiList && sortedApiList.length > 0 && sortedApiList[0];\n const otherApis = sortedApiList && sortedApiList.length > 1 ? sortedApiList.slice(1) : [];\n\n useEffect(() => {\n if (selectedOrg.uuid && !apiLoading) {\n dispatchFetchAllApisOfMajorVersionAuthenticated(\n selectedOrg.uuid,\n api.name,\n api.version.split(\".\")[0]\n );\n if (user.allowedScopes.includes(SUBSCRIBE_SCOPE)) { \n dispatchFetchVersionRangeSubscriptions(api.id, selectedOrg.uuid);\n }\n }\n }, [apiLoading]);\n\n useEffect(() => {\n if (!isSubscriptionFetching && !majorVersionApisLoading && subscriptions && otherApis) {\n const subVersions: SubscribedVersion[] = [];\n otherApis.forEach((api: Api) => {\n const subscriptionsOfApi = subscriptions.list.filter((sub) => sub.apiId === api.id).map((sub) => {\n return {\n appName: sub.applicationInfo?.name || '',\n appUuid: sub.applicationId,\n createdTime: sub.createdTime || '',\n };\n });\n if (subscriptionsOfApi.length > 0) {\n subVersions.push({\n version: api.version,\n apiUuid: api.id,\n subscriptionList: subscriptionsOfApi,\n });\n }\n });\n setSubscribedVersions(subVersions);\n }\n }, [subscriptions, majorVersionApiList]);\n\n if (!loading && (!latestApi || subscribedVersions.length === 0)) {\n return null;\n }\n\n return (\n \n {loading ? renderSkeleton(\"rect\", \"50%\", 25, { className: classes.title }) : (\n \n \n \n \n \n \n \n )}\n \n {loading ? (\n <>\n {renderSkeleton(\"rect\", \"50%\", 25, { className: classes.indentedSkeleton })}\n
    \n {renderSkeleton(\"rect\", \"50%\", 25, {\n className: classNames(classes.skeletonSpacer, classes.indentedSkeleton)\n })}\n ) : (\n \n )}\n \n \n )\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n userReducer: state.userReducer,\n subscriptionInfo: state.subscriptionsReducer,\n }\n}\n\nconst mapDispatchToProps = {\n dispatchFetchAllApisOfMajorVersionAuthenticated: fetchAllApisOfMajorVersionAuthenticated,\n dispatchFetchVersionRangeSubscriptions: fetchAPIVersionRangeSubscriptions,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AvailableVersions);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { connect } from 'react-redux';\n\nimport Container from '@material-ui/core/Container';\nimport Grid from '@material-ui/core/Grid';\n\nimport ApiInformation from './ApiInformation'\nimport ApiRating from './ApiRating'\nimport ApiDocumentation from './ApiDocumentation'\nimport ApiTags from './ApiTags';\nimport { useStyles } from './styles';\nimport { ApiReducer, ApplicationState } from '../../../data/interfaces';\nimport ApiScopes from './ApiScopes';\nimport AvailableVersions from './AvailableVersions';\nimport Settings from '../../../conf/settings';\n\nexport interface ApiOverviewProps {\n organizationHandle: string;\n apiState: ApiReducer;\n}\n\nfunction ApiOverview({ organizationHandle, apiState }: ApiOverviewProps) {\n const classes = useStyles();\n const { loading, api } = apiState;\n\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n {!loading && api?.version && api.version.startsWith(\"v\")\n && Settings.intelligentRoutingFeatureEnabled && (\n \n \n \n )\n }\n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n )\n}\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiState: state.apiReducer,\n };\n};\n\nexport default connect(mapStateToProps)(ApiOverview);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport { Checkbox, Button } from '@material-ui/core';\n\nexport const useStyles = makeStyles((theme) => ({\n appBarSpacer: {\n ...theme.mixins.toolbar,\n [theme.breakpoints.down('xs')]: {\n minHeight: theme.spacing(10),\n }\n },\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n ...theme.custom.apiOverviewPage.tabs.credentials.styles\n },\n container: {\n paddingTop: theme.spacing(2.5),\n paddingBottom: theme.spacing(4),\n maxWidth: '1560px',\n },\n subTitle: {\n ...theme.custom.apiOverviewPage.tabs.credentials.subTitle\n },\n table: {\n minWidth: 500,\n width: '700px'\n },\n tableCellBorder: {\n ...theme.custom.apiOverviewPage.tabs.credentials.rowLabelText\n },\n td: {\n padding: '3px',\n borderWidth: 0,\n },\n iconButton: {\n padding: '0 0 0 10px',\n '& .material-icons': {\n fontSize: 16,\n },\n },\n leftCol: {\n width: 280,\n },\n margin: {\n marginRight: theme.spacing(2),\n },\n textFieldWeight: {\n fontWeight: 500\n },\n passwordCopyField: {\n maxWidth: '400px',\n },\n tableRow: {\n width: '65%',\n },\n buttonCell: {\n borderWidth: 0,\n paddingTop: '40px',\n },\n updateButton: {\n ...theme.custom.apiOverviewPage.tabs.credentials.updateButton,\n marginBottom: theme.spacing(2),\n height: theme.spacing(5)\n },\n generateButton: {\n ...theme.custom.apiOverviewPage.tabs.credentials.generateCredentialsButton,\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n height: theme.spacing(5)\n },\n loaderContainer: {\n width: \"cal(100%-60px)\",\n height: \"70%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n componentPadding: {\n paddingLeft: theme.spacing(7),\n paddingRight: theme.spacing(10),\n [theme.breakpoints.down('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n [theme.breakpoints.up('lg')]: {\n paddingLeft: 'auto',\n paddingRight: 'auto',\n }\n },\n outlineButtonCell: {\n padding: 0,\n borderWidth: 0,\n paddingTop: '10px'\n },\n grantTypeText: {\n ...theme.custom.apiOverviewPage.tabs.credentials.grantTypeTextStyle\n },\n generateBtn: {\n ...theme.custom.apiOverviewPage.tabs.credentials.generateAccessTokenButton\n },\n helperText: {\n ...theme.custom.apiOverviewPage.tabs.credentials.helperTextStyle\n },\n}));\n\nexport const CustomCheckbox = withStyles((theme) => ({\n root: {\n ...theme.custom.apiOverviewPage.tabs.credentials.grantTypeCheckBoxStyle\n },\n checked: {},\n}))(Checkbox);\n\nexport const CustomButton = withStyles((theme) => ({\n root: {\n ...theme.custom.apiOverviewPage.tabs.credentials.removeCredentialsButton,\n left: theme.spacing(35),\n marginBottom: theme.spacing(2),\n fontSize: theme.spacing(1.5),\n height: theme.spacing(5)\n },\n}))(Button);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { connect } from 'react-redux';\n\nimport { makeStyles, Grid, Typography, Avatar, Divider } from '@material-ui/core';\n\nimport { isValidData, renderSkeleton } from '../../data/utils';\nimport { ApiReducer, ApplicationState, RatingsReducer } from '../../data/interfaces';\nimport ApiRating from \"../api/ApiOverview/ApiRating\";\nimport { FormattedMessage } from 'react-intl';\nimport Settings from '../../conf/settings';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n margin: '10px 40px 10px 40px',\n width: 'auto',\n },\n apiIconImage: {\n margin: 'auto',\n marginLeft: 0,\n display: 'flex',\n maxWidth: '100%',\n maxHeight: '100%',\n width: 49,\n height: 49,\n minWidth: 49,\n minHeight: 49,\n ...theme.custom.elements.apiInfoBar.apiIconImage\n },\n apiIconImageBg: {\n ...theme.custom.elements.apiInfoBar.apiIconImageBackground\n },\n gridText: {\n textAlign: 'left',\n maxWidth: 'fit-content',\n marginLeft: -theme.spacing(0.8)\n },\n apiName: {\n height: '24px',\n width: 'auto',\n ...theme.custom.elements.apiInfoBar.apiName\n },\n apiVersionProvider: {\n height: '24px',\n width: 'auto',\n ...theme.custom.elements.apiInfoBar.apiVersionProvider\n },\n apiRatingText: {\n height: '24px',\n width: 'auto',\n ...theme.custom.elements.apiInfoBar.apiRatingText\n },\n gridStyles: {\n maxWidth: 'fit-content',\n },\n divider: {\n marginLeft: theme.spacing(7),\n marginRight: theme.spacing(7),\n marginTop: -theme.spacing(0.8),\n ...theme.custom.elements.apiInfoBar.divider\n }\n}));\n\ninterface ApiInfoBarProps {\n apiReducer: ApiReducer,\n ratingsReducer: RatingsReducer\n}\n\nfunction ApiInfoBar({ apiReducer, ratingsReducer }: ApiInfoBarProps) {\n\n const classes = useStyles();\n const { loading: apiLoading, api, apiThumbnail } = apiReducer;\n const { ratings } = ratingsReducer;\n\n let apiName = '';\n let apiVersion = '';\n let apiOwner = '';\n let thumbnail = undefined;\n let avgRating = '';\n let isLatestMajorRangeVersion = false;\n\n if (isValidData(api)) {\n apiName = api.displayName;\n apiVersion = api.version;\n avgRating = api.avgRating;\n apiOwner = api.businessInformation?.businessOwner || api.businessInformation?.technicalOwner;\n isLatestMajorRangeVersion = api?.versionInfo?.majorRange?.isLatest || false;\n }\n\n if (isValidData(ratings)) {\n avgRating = ratings.avgRating;\n }\n\n if (apiThumbnail) {\n thumbnail = URL.createObjectURL(apiThumbnail);\n }\n\n return (\n
    \n \n {\n apiLoading || !apiThumbnail ?\n \n {renderSkeleton(\"rect\", 49, 49)}\n \n :\n \n \n \n }\n \n \n {\n apiLoading ?\n \n {renderSkeleton(\"rect\", 100, 20)}\n \n :\n \n {apiName}\n \n }\n\n {\n apiLoading ?\n \n {renderSkeleton(\"rect\", 100, 20)}\n \n :\n \n \n    |   \n {apiOwner ? \"by \" + apiOwner : No owner available.}\n \n }\n \n \n \n {\n apiLoading ?\n renderSkeleton(\"rect\", 280, 49)\n :\n \n }\n \n \n \n
    \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n ratingsReducer: state.ratingsReducer,\n }\n}\n\nexport default connect(mapStateToProps)(ApiInfoBar);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, {useState} from 'react';\n\nimport TextField, { TextFieldProps } from '@material-ui/core/TextField';\nimport { makeStyles} from '@material-ui/core/styles';\nimport { IconButton, InputAdornment, Zoom } from '@material-ui/core';\nimport Visibility from '@material-ui/icons/VisibilityOutlined';\nimport VisibilityOff from '@material-ui/icons/VisibilityOffOutlined';\n\nimport CustomIcons from '../icons/CustomIcons';\nimport DarkTooltip from './DarkTooltip';\n\nconst useStyles = makeStyles((theme) => ({\n accessTokenField: { \n '& .MuiFilledInput-root': {\n borderRadius: `${theme.spacing(0.5)}px`,\n backgroundColor: theme.palette.common.white,\n paddingLeft: 10,\n fontSize: 12,\n color: '#8D91A3',\n letterSpacing: 1,\n },\n '& .MuiFilledInput-input': {\n paddingTop: theme.spacing(1.5),\n paddingBottom: theme.spacing(1.5), \n },\n '& .MuiFilledInput-underline:after': {\n display: \"none\"\n },\n },\n outline: {\n \"&&&:before\": {\n borderBottom: \"none\"\n },\n \"&&:after\": {\n borderBottom: \"none\"\n }\n },\n iconBtn: {\n color: theme.palette.grey[500]\n },\n copyIcon: {\n cursor: \"pointer\"\n },\n copy: {\n padding: 0,\n '&:hover': {\n backgroundColor: \"transparent\"\n }\n },\n copyIconButton: {\n color: theme.palette.grey[500],\n height: `${theme.spacing(5.625)}px`,\n width: `${theme.spacing(5.625)}px`,\n padding: 0\n },\n}));\n\nexport interface PasswordCopyFieldProps {\n value: string,\n onChange?: ((event: React.ChangeEvent) => void) | undefined,\n disabled?: boolean,\n name?: string,\n className?: string,\n id?: string,\n showCopyBtn?: boolean\n}\n\nexport default function PasswordCopyField(props: PasswordCopyFieldProps) {\n\n const classes = useStyles();\n const [copiedTooltipVisible, setCopiedTooltipVisible] = useState(false);\n const { value, onChange, disabled, name, className, id, showCopyBtn} = props;\n const [showToken, setShowToken] = useState(false);\n const copyBtnVisibility = showCopyBtn === undefined ? true : showCopyBtn;\n\n function handleClickShowToken() {\n setShowToken(!showToken);\n }\n\n const handleCopyClick = () => {\n navigator.clipboard.writeText(value as string);\n setCopiedTooltipVisible(true);\n setTimeout(() => {\n setCopiedTooltipVisible(false);\n }, 2000);\n }\n\n return (\n \n \n {showToken ? \n : }\n \n { copyBtnVisibility ?\n \n \n \n \n \n : null\n }\n \n \n )\n }}\n data-testid={id}\n />\n )\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport Button from '@material-ui/core/Button';\nimport { makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n greyButton: { \n ...theme.custom.elements.greyButton\n }\n}));\n\nexport interface ButtonProps {\n id?: string,\n onClick?: () => void,\n text?: string;\n className?: string;\n startIcon?: React.ReactNode;\n disabled?: boolean;\n}\n\nfunction GreyOutlinedButton(props: ButtonProps) {\n const classes = useStyles();\n const { id, className, startIcon, disabled, text, onClick } = props;\n return (\n \n {text}\n \n );\n}\n\nexport default GreyOutlinedButton;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n preloaderWrapperLogo: {\n position: 'absolute',\n height: '70px',\n width: '70px',\n },\n}));\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport Lottie from 'react-lottie';\n\nimport animationData from './data.json';\nimport { useStyles } from './style';\n\nexport interface PreLoaderLogoProps {\n size: \"small\" | \"medium\";\n}\n\nexport function PreLoaderLogo(props: PreLoaderLogoProps) {\n\n const classes = useStyles();\n const { size } = props;\n const loaderSize = (size === \"small\") ? \"48px\" : \"64px\";\n const defaultOptions = {\n loop: true,\n autoplay: true,\n animationData,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice'\n }\n };\n\n return (\n
    \n \n
    \n );\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n encodeVisible: {\n cursor: 'pointer',\n textDecoration: 'underline'\n },\n greyOutlinedButton: {\n left: 0,\n fontFamily: 'GilmerMedium',\n fontSize: '12px',\n lineHeight: '14px',\n color: '#40404B',\n height: theme.spacing(5),\n width: theme.spacing(10)\n },\n dialog: {\n borderRadius: theme.spacing(1.5)\n },\n dialogTitle: {\n textAlign: \"center\",\n paddingBottom: theme.spacing(0),\n marginBottom: theme.spacing(2),\n marginTop: theme.spacing(1.5)\n },\n titleText: {\n lineHeight: '64px',\n fontFamily: 'GilmerBold',\n color: '#222228',\n fontSize: '29px'\n },\n action: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n paddingTop: theme.spacing(0.5),\n paddingBottom: theme.spacing(2)\n },\n curlDescription: {\n fontFamily: 'Gilmer',\n fontSize: '15px',\n lineHeight: '24px',\n color: '#8D91A3',\n textAlign: 'center'\n },\n copyButton: {\n marginTop: theme.spacing(3)\n },\n contentWrapper: {\n display: 'flex'\n },\n code: {\n padding: theme.spacing(1),\n paddingLeft: theme.spacing(3),\n marginTop: theme.spacing(3),\n background: theme.palette.grey[200],\n color: '#da2316',\n flex: 1\n },\n command: {\n color: '#2b62b0'\n }\n}));\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n IconButton,\n Typography,\n Zoom,\n} from '@material-ui/core';\n\nimport GreyOutlinedButton from '../../../elements/GreyOutlinedButton';\nimport { useStyles } from './style';\nimport Settings from '../../../conf/settings';\nimport CustomIcons from '../../../icons/CustomIcons';\nimport DarkTooltip from '../../../elements/DarkTooltip';\n\ninterface CurlDialogProps {\n curlOpen: boolean;\n base64Encoded: string;\n externalIDPToken: string;\n tokenEndpoint?: string;\n onClose: () => void;\n}\n\nfunction CurlDialog(curlOpenProps: CurlDialogProps) {\n const classes = useStyles();\n const intl = useIntl();\n const { curlOpen, base64Encoded, externalIDPToken, tokenEndpoint, onClose } = curlOpenProps;\n\n const [showReal, setShowReal] = useState(false);\n const [copiedTooltipVisible, setCopiedTooltipVisible] = useState(false);\n\n const getCurlDialogCloseBtnText = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oauth.curlGeneration.closeButton.text',\n defaultMessage: 'Close',\n });\n };\n\n const applyReal = () => {\n setShowReal(!showReal);\n };\n\n const handleCopyClick = () => {\n let copyText = '';\n if (externalIDPToken == '') {\n copyText =\n `curl -k -X POST ${tokenEndpoint} -d ` +\n '\"grant_type=client_credentials\" -H ' +\n `\"Authorization: Basic ${base64Encoded}\"`;\n } else {\n copyText =\n `curl -k -X POST ${Settings.tokenEndpoint} -d ` +\n '\"grant_type=urn:ietf:params:oauth:grant-type:token-exchange\" -H ' +\n `\"Authorization: Basic ${base64Encoded}\" -H \"Content-Type: application/x-www-form-urlencoded\" -d ` +\n `\"subject_token=${externalIDPToken}\" -d ` +\n `\"subject_token_type=urn:ietf:params:oauth:token-type:jwt\" -d ` +\n `\"requested_token_type=urn:ietf:params:oauth:token-type:jwt\"`;\n }\n\n navigator.clipboard.writeText(copyText);\n setCopiedTooltipVisible(true);\n setTimeout(() => {\n setCopiedTooltipVisible(false);\n }, 2000);\n };\n\n const curlContent = () => {\n if (externalIDPToken == '') {\n return (\n <>\n
    \n curl -k -X POST \n {' ' + tokenEndpoint}\n -d {' '}\n {'\"grant_type=client_credentials\"'}\n
    \n \n \n );\n } else {\n return (\n <>\n
    \n curl -k -X POST \n {' ' + Settings.tokenEndpoint}\n -d {' '}\n {'\"grant_type=urn:ietf:params:oauth:grant-type:token-exchange\"'}{' '}\n -d {' '}\n {'\"subject_token_type=urn:ietf:params:oauth:token-type:jwt\"'}{' '}\n -d {' '}\n {'\"requested_token_type=urn:ietf:params:oauth:token-type:jwt\"'}\n -d {'\"subject_token='}\n \n {showReal ? ' ' + externalIDPToken : ' idp-token'}\n \n {'\"'}\n
    \n \n \n );\n }\n };\n\n return (\n \n \n \n \n \n \n \n \n {externalIDPToken == '' && (\n \n \n \n )}\n {externalIDPToken != '' && (\n \n \n \n )}\n
    \n \n {curlContent()}\n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n );\n}\n\nexport default CurlDialog;\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport Lottie from 'react-lottie';\n\nimport cn from \"classnames\";\n\nimport animationData from './data.json';\nimport './styles.scss'\n\nexport interface CirclePreloaderProps {\n position: \"relative\" | \"absolute\";\n}\n\nexport function CirclePreloader(props: CirclePreloaderProps) {\n const { position } = props;\n const loaderPosition = (position === \"relative\") ? cn(\"preloader-circle-relative\") :\n cn(\"preloader-circle-absolute\");\n const defaultOptions = {\n loop: true,\n autoplay: true,\n animationData,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice'\n }\n };\n\n return (\n
    \n \n
    \n );\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nexport const useStyles = makeStyles((theme) => ({\n loaderText: {\n textAlign: \"center\",\n paddingLeft: theme.spacing(1),\n color: theme.palette.grey[400]\n },\n loader: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"& .preloader-circle-relative div\": {\n height: `${theme.spacing(2.75)}px !important`,\n width: `${theme.spacing(2.75)}px !important`\n }\n },\n actionLoader: {\n paddingTop: theme.spacing(4)\n },\n dialogButton: {\n bottom: 50,\n textTransform: 'capitalize',\n fontFamily: 'GilmerMedium',\n fontSize: '13px',\n lineHeight: '16px',\n height: theme.spacing(5)\n },\n dialogRootStyle: {\n borderRadius: 15\n },\n dialogContent: {\n padding: theme.spacing(1)\n },\n primaryTitle: {\n fontFamily: 'GilmerMedium',\n textAlign: \"center\",\n fontSize: '23px',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(2)\n },\n secondaryTitle: {\n textAlign: \"center\"\n },\n dialogActions: {\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: theme.spacing(8.25)\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[200]\n }\n}));\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from \"react\";\n\nimport { Button, Dialog, DialogActions, DialogContent, DialogTitle, IconButton, Typography } from \"@material-ui/core\";\nimport CloseIcon from '@material-ui/icons/Close';\nimport Alert from '@material-ui/lab/Alert';\nimport classNames from \"classnames\";\n\nimport { CirclePreloader } from \"../../../elements/CirclePreloader\";\nimport { useStyles } from \"./styles\";\n\ninterface ConfirmationDialogProps {\n open: boolean,\n dialogTitle: string,\n dialogContentText: string,\n okayButtonLabel: string,\n cancelButtonLabel: string,\n okButtonTestId?: string,\n cancelButtonTestId?: string,\n loadingActionHelperText?: string,\n isActionProcessing?: boolean,\n error?: string,\n onClose: () => void,\n onOkay: () => void,\n onCancel: () => void,\n}\n\nexport const ConfirmationDialog = (props: ConfirmationDialogProps) => {\n const {\n open, dialogTitle, dialogContentText, okayButtonLabel, cancelButtonLabel, loadingActionHelperText,\n isActionProcessing, error, onClose, onOkay, onCancel, okButtonTestId, cancelButtonTestId\n } = props;\n const classes = useStyles();\n\n const Loader = () => {\n return (\n
    \n \n {loadingActionHelperText} \n
    \n );\n };\n\n const DialogContents = () => {\n return (\n
    \n \n {dialogContentText}\n \n {isActionProcessing && }\n
    \n );\n };\n\n return (\n \n \n {\n onClose ? (\n \n \n \n ) : null\n }\n \n \n \n {dialogTitle}\n \n
    \n {error && {error} }\n \n
    \n
    \n \n \n {cancelButtonLabel}\n \n \n {okayButtonLabel}\n \n \n \n );\n};\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState } from 'react'\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport IconButton from '@material-ui/core/IconButton';\nimport CustomIcons from '../icons/CustomIcons';\nimport Zoom from '@material-ui/core/Zoom';\nimport DarkTooltip from './DarkTooltip';\n\nconst useStyles = makeStyles((theme) => ({\n textArea: {\n width: 'auto',\n paddingRight: 0,\n paddingLeft: '10px',\n backgroundColor: '#F7F8FB',\n letterSpacing: 1,\n color: '#8D91A3',\n },\n \n copyIconButton: {\n height: '48px',\n width: '48px',\n padding: 0\n },\n}));\n\ninterface CopyTextAreaProps {\n textContent: string,\n}\n\nfunction CopyTextArea(props: CopyTextAreaProps) {\n const classes = useStyles();\n const [copiedTooltipVisible, setCopiedTooltipVisible] = useState(false);\n const textContent:string = props.textContent;\n\n const handleCopyClick = (event: any) => {\n navigator.clipboard.writeText(textContent);\n setCopiedTooltipVisible(true);\n setTimeout(() => {\n setCopiedTooltipVisible(false);\n }, 2000);\n }\n\n return (\n \n \n \n \n \n ,\n classes: {\n root: classes.textArea\n },\n }}\n value={textContent}\n rows={7}\n variant=\"outlined\"\n fullWidth\n disabled={true}\n />\n \n )\n}\n\nexport default CopyTextArea;\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n greyOutlinedButton: {\n left: 0,\n fontFamily: 'GilmerMedium',\n fontSize: '12px',\n lineHeight: '14px',\n color: '#40404B',\n height: theme.spacing(5),\n width: theme.spacing(10)\n },\n generateButton: {\n fontFamily: 'GilmerMedium',\n fontSize: 12,\n lineHeight: 1,\n fontStretch: \"normal\",\n height: theme.spacing(5),\n marginTop: theme.spacing(0.5),\n width: 'auto',\n },\n dialog: {\n borderRadius: theme.spacing(1.5)\n },\n dialogTitle: {\n textAlign: \"center\",\n paddingBottom: theme.spacing(0),\n marginBottom: theme.spacing(2),\n marginTop: theme.spacing(1.5)\n },\n titleText: {\n lineHeight: '64px',\n fontFamily: 'GilmerBold',\n color: '#222228',\n fontSize: '29px'\n },\n keyInfo: {\n backgroundColor: '#F0F1FB',\n borderLeftStyle: 'solid',\n borderLeftColor: '#5567D5',\n padding: theme.spacing(2),\n marginBottom: theme.spacing(3),\n },\n infoHeader: {\n fontFamily: 'GilmerMedium',\n fontSize: '13px',\n lineHeight: '24px',\n color: '#1D2028'\n },\n infoText: {\n fontFamily: 'Gilmer',\n lineHeight: '20px',\n color: theme.palette.secondary.dark,\n width: '90%'\n },\n infoIcon: {\n color: '#5567D5',\n fontSize: 'large'\n },\n dialogContent: {\n marginBottom: theme.spacing(0.5)\n },\n action: {\n padding: `${theme.spacing(0.5)}px ${theme.spacing(3)}px ${theme.spacing(2)}px`\n },\n permissionList: {\n marginTop: theme.spacing(3),\n },\n permissionChip: {\n backgroundColor: theme.palette.secondary.light,\n border: '1px solid #CBCEDB',\n borderRadius: theme.spacing(0.625),\n marginRight: theme.spacing(0.5),\n marginBottom: theme.spacing(0.5),\n justifyContent: 'left',\n width: 'fit-content'\n },\n permissionContainer: {\n marginTop: theme.spacing(1),\n color: theme.palette.secondary.dark,\n },\n textField: {\n width: '100%',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(0.75),\n '& .MuiOutlinedInput-input': {\n color: theme.palette.grey[500],\n paddingLeft: theme.spacing(1),\n },\n '& .MuiOutlinedInput-root': {\n minHeight: theme.spacing(4),\n height: 'auto',\n },\n },\n tag: {\n '& .MuiAutocomplete-tag': {\n height: theme.spacing(3),\n borderRadius: theme.spacing(0.625),\n border: \"1px solid #E0E2E9\",\n backgroundColor: theme.palette.secondary.light,\n \"& .MuiChip-label\": {\n color: theme.palette.secondary.dark,\n },\n \"& .MuiChip-deleteIcon\": {\n color: theme.palette.secondary.main,\n },\n },\n },\n loaderContainer: {\n width: \"100%\",\n height: \"30vh\",\n backgroundColor: theme.palette.secondary.light,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...theme.custom.appListingPage.styles\n },\n}));\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n container: {\n margin: 0,\n },\n heading: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n autoComplete: {\n '& .MuiAutocomplete-root': {\n margin: 0,\n },\n '& .MuiAutocomplete-inputRoot': {\n fontSize: 10,\n padding: 0,\n },\n },\n })\n);\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useEffect } from \"react\";\n\nimport { Box, FormControl, TextField } from \"@material-ui/core\";\nimport { useStyles } from \"./styles\";\nimport { Autocomplete } from \"@material-ui/lab\";\n\ninterface CustomAutoCompleteProps {\n placeholder?: string;\n disabled?: boolean;\n textFieldStyle?: string;\n tagStyle?: string;\n options: string[];\n defaultValues?: string[];\n label?: string;\n onChange: (event: unknown, value: any) => void;\n errorText?: string;\n containerStyle?: string;\n}\n\nconst CustomAutoComplete = (props: CustomAutoCompleteProps) => {\n const { \n placeholder, \n disabled, \n textFieldStyle, \n tagStyle, \n options, \n defaultValues, \n label, \n onChange,\n errorText = '',\n containerStyle\n } = props;\n const classes = useStyles();\n\n return (\n \n (\n \n )}\n />\n \n );\n};\nexport default CustomAutoComplete;\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nexport const isInvalidValidScopeName = (scopeName: string) : boolean => {\n const validationString = new RegExp(/[^a-zA-Z0-9_:\\\\.\\-/]/gi);\n return validationString.test(scopeName);\n};\n\nexport const getScopeName = (scopeName: string) => {\n let formattedScopeName = scopeName;\n if (scopeName.split(':').length > 3) {\n formattedScopeName = scopeName.split(':').slice(3).join(':');\n }\n return formattedScopeName;\n };\n ","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState } from \"react\";\nimport { FormattedMessage, useIntl } from \"react-intl\";\nimport {\n Box, \n Chip, \n CircularProgress,\n Dialog, \n DialogActions, \n DialogContent, \n DialogContentText, \n DialogTitle, \n Typography\n} from \"@material-ui/core\";\nimport { Info } from \"@material-ui/icons\";\nimport CopyTextArea from \"../../../elements/CopyTextArea\";\nimport GreyOutlinedButton from \"../../../elements/GreyOutlinedButton\";\nimport { useStyles } from './style';\nimport CustomAutoComplete from \"../../../elements/CustomAutoComplete/CustomAutoComplete\";\nimport { getScopeName, isInvalidValidScopeName } from \"../../../util/token-generation\";\nimport PrimaryButton from \"../../../elements/PrimaryButton\";\nimport { PreLoaderLogo } from \"../../../elements/PreLoaderLogo\";\n\ninterface AccessTokenProps {\n tokenOpen: boolean,\n token: string,\n onClose: () => void\n selectedPermissions?: string[]\n handleClickGenerate? : () => void;\n isTokenGenerating?: boolean;\n setPermissions?: (permissions: string[]) => void;\n existingPermissions?: string[];\n generatedScopesForToken?: string[];\n}\n\nfunction AccessTokenDialog(accessTokenProps: AccessTokenProps) {\n const { \n tokenOpen, \n token, \n onClose, \n selectedPermissions,\n handleClickGenerate, \n isTokenGenerating, \n setPermissions, \n existingPermissions,\n generatedScopesForToken\n } = accessTokenProps;\n const classes = useStyles();\n const intl = useIntl();\n const [errorText, setErrorText] = useState('');\n\n return (\n \n \n \n \n \n \n \n \n {token && !isTokenGenerating ? (\n \n {(existingPermissions?.length ?? 0) > 0 && (\n \n \n \n \n {\n if (setPermissions) {\n setPermissions(permissions);\n }\n }}\n textFieldStyle={classes.textField}\n tagStyle={classes.tag}\n errorText={errorText}\n defaultValues={selectedPermissions}\n data-testid=\"dialog-token-generate-scope-selector\"\n />\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {(existingPermissions?.length ?? 0) > 0 && (generatedScopesForToken?.length ?? 0) > 0 ? (\n <>\n Response Permissions (Scopes) {generatedScopesForToken?.map((permission: string) => (\n \n ))}\n \n ) : (\n <>\n {selectedPermissions && selectedPermissions?.length > 0 && generatedScopesForToken === undefined &&\n <>\n Response Permissions (Scopes) {selectedPermissions.map((permission: string) => (\n \n ))}\n \n }\n \n )}\n \n \n ) : \n (<>\n
    \n \n
    \n )\n }\n
    \n
    \n {token && (\n \n {(existingPermissions?.length ?? 0) > 0 && (\n \n }\n disabled={!!errorText}\n dataTestId='dialog-token-generate-button'\n />\n )}\n \n \n )}\n \n );\n}\n\nexport default AccessTokenDialog;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useEffect, useState } from 'react';\nimport { connect, useDispatch } from 'react-redux';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport {\n Container, \n Grid, \n Typography, \n Table, \n TableBody, \n TableCell, \n TableContainer, \n TableRow,\n Button,\n Box, \n CircularProgress\n} from '@material-ui/core'\nimport {\n generateCredentials,\n generateToken,\n checkCredentials,\n updateAppKeys,\n removeCredentials,\n fetchIDPs,\n removeDefaultApplicationKeys,\n} from '../../../data/operations';\nimport { isValidData } from '../../../data/utils';\nimport { useStyles, CustomButton } from './style';\nimport Settings from '../../../conf/settings';\nimport {\n ApplicationState,\n Api,\n CredentialsReducer,\n Tier,\n UserReducer,\n SubscriptionList,\n Subscription,\n IDPReducer,\n KeyType,\n Key,\n} from \"../../../data/interfaces\";\nimport ApiInfoBar from '../../shared/ApiInfoBar';\nimport CopyTextField from '../../../elements/CopyTextField';\nimport PasswordCopyField from '../../../elements/PasswordCopyField';\nimport GreyOutlinedButton from '../../../elements/GreyOutlinedButton';\nimport { PreLoaderLogo } from \"../../../elements/PreLoaderLogo\";\nimport { setErrorNotification } from '../../../store/actions/notification';\nimport {\n ASGARDEO_KEY_MANAGER_TYPE, CLIENT_CREDENTIALS_GRANT_TYPE, DEFAULT_APP_INTERNAL_PREFIX,\n DEFAULT_ASGARDEO_KEY_MANAGER_PREFIX, RESOURCE_AUTHORIZE, RESOURCE_TOKEN, SUBSCRIPTION_THROTTLING_POLICY_UNLIMITED, VALUE_ZERO\n} from \"../../../data/constants\";\nimport CurlDialog from \"../../shared/CurlDialog/CurlDialog\";\nimport CustomIcons from '../../../icons/CustomIcons';\nimport { ConfirmationDialog } from \"../../shared/ConfirmationDialog/ConfirmationDialog\";\nimport {\n trackAPICredentialsRemoveClick,\n trackCredentialGenerate\n} from \"../../../util/app-insights\";\nimport { createOauthTokenSuccess } from '../../../store/actions/applicationKeys';\nimport AccessTokenDialog from '../../shared/AccessTokenDialog/AccessTokenDialog';\nimport { matchPath, useLocation } from 'react-router-dom';\nimport { ApiCredentialUrlParams } from '../../shared/MainMenuDrawer/MainMenuItems';\n\ninterface ApiCredentialsProps {\n apiInfo: Api,\n credentialsReducer: CredentialsReducer,\n userInfo: UserReducer,\n subscriptionsInfo: SubscriptionList,\n idpReducer: IDPReducer,\n dispatchGenerateCreds: (apiId: string, appName: string, organizationId: string, policy: string,\n defaultSelectedGrantTypeValues: string[], callBackUrl: string, throttlingPolicy: string, keyType: KeyType,\n keyManager: string) => void,\n dispatchCheckCredentials: () => void,\n dispatchRemoveCreds: (appName: string) => void,\n dispatchFetchIDPs: (organizationId: string) => void;\n dispatchRemoveDefaultApplicationKeys: (keyType: KeyType, appName: string) => void;\n}\n\nfunction ApiCredentials(props: ApiCredentialsProps) {\n const intl = useIntl();\n const classes = useStyles();\n const dispatch = useDispatch();\n const {\n dispatchGenerateCreds,\n dispatchCheckCredentials,\n dispatchRemoveCreds,\n dispatchFetchIDPs,\n dispatchRemoveDefaultApplicationKeys,\n apiInfo,\n userInfo,\n idpReducer,\n subscriptionsInfo,\n credentialsReducer,\n } = props;\n const { isKeyFetching, isKeyGenerating, isKeyDeleting, keys: defaultAppKeys } = credentialsReducer;\n const idpList = idpReducer?.idps.list;\n const defaultSelectedGrantTypeValues = [CLIENT_CREDENTIALS_GRANT_TYPE];\n const [policy, setPolicy] = useState('');\n const [curlOpen, setCurlOpen] = useState(false);\n const [tokenOpen, setTokenOpen] = useState(false);\n const [callBackUrl, setcallBackUrl] = useState(\"\");\n const [token, setToken] = useState('');\n const [isTokenGenerating, setIsTokenGenerating] = useState(false);\n const [removeCredentialsOpen, setRemoveCredentialsOpen] = useState(false);\n const [values, setValues] = useState({\n consumerKey: '',\n consumerSecret: '',\n showconsumerSecret: false,\n });\n const [keyManagerName, setKeyManagerName] = useState(Settings.keyManager);\n const base64Encoded = window.btoa(values.consumerKey + ':' + values.consumerSecret);\n const [permissions ,setPermissions] = useState([]);\n const [selectedPermissions, setSelectedPermissions] = useState(permissions);\n const [generatedScopesForToken, setGeneratedScopesForToken] = useState(permissions);\n const location = useLocation();\n const [keyType, setKeyType] = useState(KeyType.SANDBOX);\n const [envKey, setEnvKey] = useState();\n\n let apiId = '';\n let apiName = '';\n let appName = '';\n let userName = '';\n let organizationId = '';\n let defaultAsgardeoKeyManagerName = '';\n let defaultSubscription: Subscription | undefined;\n\n useEffect(()=>{\n const currentPath = location.pathname;\n const { params } = matchPath(currentPath, \"/:orgName/apis/:apiId/:page/:env\") || {};\n if (params?.env) {\n setKeyType(params.env.toUpperCase() as KeyType);\n }\n }, [location])\n\n useEffect(() => {\n if (isValidData(apiInfo)) {\n dispatchCheckCredentials();\n dispatchFetchIDPs(organizationId);\n }\n setPermissions(apiInfo.scopes ? apiInfo.scopes.map((scope) => scope.key) : [])\n setGeneratedScopesForToken(apiInfo.scopes ? apiInfo.scopes.map((scope) => scope.key) : [])\n setSelectedPermissions(apiInfo.scopes ? apiInfo.scopes.map((scope) => scope.key) : [])\n }, [apiInfo])\n\n if (isValidData(apiInfo)) {\n apiId = apiInfo.id;\n apiName = apiInfo.name;\n }\n\n if (isValidData(userInfo.userInfo) && userInfo.selectedOrg.uuid) {\n userName = userInfo.userInfo.sub;\n organizationId = userInfo.selectedOrg.uuid;\n defaultAsgardeoKeyManagerName = DEFAULT_ASGARDEO_KEY_MANAGER_PREFIX + userInfo.selectedOrg.handle;\n }\n\n if (isValidData(subscriptionsInfo) && userName !== \"\" && apiName !== \"\") {\n const defaultAppName =\n DEFAULT_APP_INTERNAL_PREFIX + userName + \"_\" + apiName;\n defaultSubscription = subscriptionsInfo.list.find(\n (subscription: Subscription) =>\n subscription.applicationInfo?.name === defaultAppName\n );\n }\n\n useEffect(() => {\n const filteredEnvKey = defaultAppKeys?.list && defaultAppKeys.list.find((key) => key.keyType === keyType);\n setEnvKey(filteredEnvKey);\n if (filteredEnvKey) {\n setValues({\n consumerKey: filteredEnvKey.consumerKey,\n consumerSecret: filteredEnvKey.consumerSecret,\n showconsumerSecret: false,\n });\n setcallBackUrl(filteredEnvKey.callbackUrl);\n setKeyManagerName(filteredEnvKey.keyManager);\n }\n }, [defaultAppKeys, keyType])\n\n useEffect(() => {\n if (apiInfo?.tiers?.length > 0) {\n if (apiInfo.tiers.find((tier: Tier) => tier.tierName === SUBSCRIPTION_THROTTLING_POLICY_UNLIMITED)) {\n setPolicy(SUBSCRIPTION_THROTTLING_POLICY_UNLIMITED);\n } else {\n setPolicy(apiInfo?.tiers[VALUE_ZERO]?.tierName);\n }\n }\n }, [apiInfo.tiers])\n\n const fetchAccessToken = async () => {\n await generateAccessToken(selectedPermissions);\n };\n\n const isKeyFromAsgardeoKM = (keyManagerName === defaultAsgardeoKeyManagerName);\n const isResidentKeyManagerNotUsed = !envKey || isKeyFromAsgardeoKM;\n const isAsgardeoKeyManagerAvailable = (idpList.filter((idp) => idp.type === ASGARDEO_KEY_MANAGER_TYPE &&\n idp.name === defaultAsgardeoKeyManagerName).length) > 0;\n const tokenEndpoint = isAsgardeoKeyManagerAvailable && isResidentKeyManagerNotUsed ? idpList\n .filter((idp) => idp.type === ASGARDEO_KEY_MANAGER_TYPE &&\n idp.name === defaultAsgardeoKeyManagerName)[0].tokenEndpoint : Settings.tokenEndpoint;\n const revokeEndpoint = isAsgardeoKeyManagerAvailable && isResidentKeyManagerNotUsed ? idpList\n .filter((idp) => idp.type === ASGARDEO_KEY_MANAGER_TYPE &&\n idp.name === defaultAsgardeoKeyManagerName)[0].revokeEndpoint : Settings.revokeEndpoint;\n const authorizeEndpoint = isAsgardeoKeyManagerAvailable && isResidentKeyManagerNotUsed ?\n tokenEndpoint.replace(RESOURCE_TOKEN, RESOURCE_AUTHORIZE) : Settings.tokenEndpoint\n .replace(RESOURCE_TOKEN, RESOURCE_AUTHORIZE);\n\n /**\n * Genrates access token for a given app\n */\n const generateAccessToken = async (selectedPermissions: string[]) => {\n try {\n if (envKey) {\n const response = await generateToken(\n selectedPermissions,\n defaultSubscription?.applicationId as string,\n envKey\n );\n setToken(response?.data.accessToken);\n setGeneratedScopesForToken(response?.data.tokenScopes);\n setIsTokenGenerating(false);\n setTokenOpen(true);\n }\n } catch (error) {\n dispatch(setErrorNotification(intl.formatMessage({\n id: \"api.apiCredentials.messages.errorTokenGeneration\",\n defaultMessage: \"An error occurred during token generation.\"\n })));\n }\n }\n\n const handleGenerateCredentialsClick = () => {\n //Re-initalizing popup dialog alert for instances when component doesn't remount/refresh\n setRemoveCredentialsOpen(false);\n trackCredentialGenerate(apiName, apiId, defaultSelectedGrantTypeValues);\n\n if (userName !== '' && apiName !== '' && policy !== '') {\n // Construct application name\n appName = DEFAULT_APP_INTERNAL_PREFIX + userName + \"_\" + apiName;\n const keyManager = isResidentKeyManagerNotUsed && isAsgardeoKeyManagerAvailable ?\n defaultAsgardeoKeyManagerName : Settings.keyManager;\n dispatchGenerateCreds(apiId, appName, organizationId, policy, defaultSelectedGrantTypeValues,\n callBackUrl || \"\", Settings.defaultAppThrottlingPolicy, keyType, keyManager);\n } else {\n dispatch(setErrorNotification(intl.formatMessage({\n id: \"api.apiCredentials.messages.errorOrgUserApi\",\n defaultMessage: \"Missing organization, username, subscription plan or API name\"\n })));\n }\n }\n\n // Todo: Use this function after https://github.com/wso2-enterprise/choreo/issues/20612 is fixed\n // const handleRemoveCredentialsClick = () => {\n // appName = DEFAULT_APP_INTERNAL_PREFIX + userName + \"_\" + apiName;\n // // Check whether the default application has only one key.\n // // If so, remove the subscription and the default application.\n // // Otherwise, remove only the key.\n // if (defaultAppKeys && defaultAppKeys.list.length === 1) {\n // dispatchRemoveCreds(appName);\n // } else {\n // dispatchRemoveDefaultApplicationKeys(keyType, appName);\n // }\n // }\n\n const handleRemoveCredentialsClick = () => {\n appName = DEFAULT_APP_INTERNAL_PREFIX + userName + \"_\" + apiName;\n dispatchRemoveCreds(appName);\n }\n\n const setPermissionsCallback = (permissions: string[]) => {\n setSelectedPermissions(permissions);\n }\n\n const handleClickCurlOpen = () => {\n setCurlOpen(true);\n };\n\n const handleClickCurlClose = () => {\n setCurlOpen(false);\n setPermissions(apiInfo.scopes ? apiInfo.scopes.map((scope) => scope.key) : []);\n setSelectedPermissions(apiInfo.scopes ? apiInfo.scopes.map((scope) => scope.key) : []);\n };\n\n const handleClickTokenOpen = () => {\n fetchAccessToken();\n setTokenOpen(true);\n };\n\n const handleClickTokenClose = () => {\n setTokenOpen(false);\n setToken('');\n setSelectedPermissions(permissions);\n setIsTokenGenerating(false);\n dispatch(createOauthTokenSuccess({ accessToken: '', tokenScopes: [], validityTime: 0 }));\n\n };\n\n const handleClickGenerate = () => {\n if (selectedPermissions.length !== 0) {\n setPermissions(selectedPermissions);\n }\n setToken('');\n setIsTokenGenerating(true);\n generateAccessToken(selectedPermissions); \n };\n\n const handleClickRemoveCredentialsOpen = () => {\n setRemoveCredentialsOpen(true);\n trackAPICredentialsRemoveClick(apiId);\n };\n\n const handleClickRemoveCredentialsClose = () => {\n setRemoveCredentialsOpen(false);\n };\n\n return (\n
    \n \n {isKeyFetching || isKeyGenerating || isKeyDeleting ?\n
    \n \n
    :\n \n \n \n \n \n \n \n \n \n \n \n {(envKey) ?\n /* KeySecret Start */\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n className={classes.generateBtn}\n id='generate-access-token-btn'\n />\n {tokenOpen &&\n \n }\n \n \n }\n />\n {curlOpen &&\n \n }\n \n \n \n \n :\n \n \n \n \n \n /* KeySecret End */\n }\n {/* EndPoint Start */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {isAsgardeoKeyManagerAvailable && isResidentKeyManagerNotUsed &&\n \n \n \n \n \n \n \n \n }\n {/* EndPoint End */}\n \n \n {(envKey) ?\n
    \n \n \n \n {removeCredentialsOpen &&\n \n }\n
    :\n \n \n \n }\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n }\n
    \n )\n}\n\nconst mapDispatchToProps = {\n dispatchGenerateCreds: generateCredentials,\n dispatchCheckCredentials: checkCredentials,\n dispatchUpdateAppkeys: updateAppKeys,\n dispatchRemoveCreds: removeCredentials,\n dispatchRemoveDefaultApplicationKeys: removeDefaultApplicationKeys,\n dispatchFetchIDPs: fetchIDPs,\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiInfo: state.apiReducer.api,\n subscriptionsInfo: state.subscriptionsReducer.subscriptions,\n credentialsReducer: state.credentialsReducer,\n userInfo: state.userReducer,\n idpReducer: state.idpReducer,\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ApiCredentials);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles, Theme } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n content: {\n flexGrow: 1,\n overflow: 'auto',\n ...theme.custom.apiOverviewPage.tabs.tryout.styles\n },\n container: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(4),\n maxWidth: '78vw',\n },\n warningContainer: {\n padding: theme.spacing(6.25),\n maxWidth: '57vw',\n },\n swaggerUI: {\n textAlign: 'left',\n },\n swaggerDownloadBtn: {\n ...theme.custom.apiOverviewPage.tabs.tryout.swaggerDownloadButton\n },\n swaggerDownloadBtnGrid: {\n paddingRight: '20px',\n },\n helperText: {\n marginLeft: 0,\n textAlign: 'left',\n lineHeight: theme.spacing(0.2),\n maxWidth: theme.spacing(100)\n },\n tokenType: {\n '& .MuiButton-contained.Mui-disabled span.MuiButton-label': {\n color: '#999999',\n },\n },\n grid: {\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(4),\n paddingRight: theme.spacing(2),\n justifyContent: 'center',\n },\n label: {\n ...theme.custom.apiOverviewPage.tabs.tryout.apiAccessTokenTitleText\n },\n generateKeyButton: {\n width: 'auto',\n marginLeft: theme.spacing(1),\n height: theme.spacing(5),\n ...theme.custom.apiOverviewPage.tabs.tryout.generateKeyButton\n },\n tokenField: {\n width: '70%',\n border: `1px solid ${theme.palette.grey[400]}`,\n borderRadius: theme.spacing(0.5),\n },\n testKeyTokenField: {\n border: `${theme.spacing(0.125)}px solid ${theme.palette.grey[400]}`,\n borderRadius: theme.spacing(0.5),\n },\n securityHeaderField: {\n width: '70%',\n backgroundColor: `${theme.palette.common.white}`,\n },\n warningIcon: {\n ...theme.custom.apiOverviewPage.tabs.tryout.warningIcon\n },\n warningText: {\n ...theme.custom.apiOverviewPage.tabs.tryout.warningText,\n display: 'flex',\n alignItems: 'left',\n },\n downloadLink: {\n textDecoration: 'none',\n },\n swaggerLoading: {\n marginLeft: '50%',\n },\n warningLink: {\n ...theme.custom.apiOverviewPage.tabs.tryout.warningLink\n },\n loaderContainer: {\n width: 'cal(100%-60px)',\n height: '70%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n title: {\n textAlign: 'left',\n fontFamily: 'GilmerMedium',\n fontSize: '13px',\n lineHeight: '14px',\n letterSpacing: 'normal',\n color: '#1D2028',\n },\n componentPadding: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.down('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n [theme.breakpoints.up('lg')]: {\n paddingLeft: 'auto',\n paddingRight: 'auto',\n },\n },\n textLabel: {\n fontFamily: 'Gilmer',\n fontSize: '13px',\n color: '#1D2028',\n lineHeight: '24px',\n textAlign: 'left',\n ...theme.custom.apiOverviewPage.tabs.tryout.textLabel\n },\n textLabelOptional: {\n ...theme.custom.apiOverviewPage.tabs.tryout.textLabel,\n fontFamily: 'Gilmer',\n fontSize: '10px',\n color: theme.palette.grey[500],\n lineHeight: '15px',\n textAlign: 'left'\n },\n selectBox: {\n height: theme.spacing(5),\n width: '70%',\n '& .MuiSelect-select:focus': {\n backgroundColor: 'transparent'\n },\n textAlign: 'left',\n },\n dropdownStyle: {\n ...theme.custom.apiOverviewPage.tabs.tryout.applicationDropdownStyle\n },\n goToCredentialsBtn: {\n marginLeft: theme.spacing(3),\n marginTop: -theme.spacing(0.5),\n },\n helpIcon: {\n alignSelf: 'center',\n marginLeft: theme.spacing(1.5),\n ...theme.custom.apiOverviewPage.tabs.tryout.helpIcon\n },\n divider: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(2),\n ...theme.custom.apiOverviewPage.tabs.tryout.divider\n },\n endpoint: {\n width: '70%',\n },\n selectBg: {\n '& .MuiSelect-select': {\n backgroundColor: '#f7f8fb',\n marginLeft: theme.spacing(0.5),\n textAlign: 'left',\n },\n },\n copyIconButton: {\n position: 'relative',\n marginRight: theme.spacing(1.5),\n ...theme.custom.elements.copyTextField.copyIconButtonStyle,\n },\n keyInfo: {\n backgroundColor: '#F0F1FB',\n borderLeft: 'solid #5567D5',\n padding: theme.spacing(2),\n marginBottom: theme.spacing(2),\n width: '70%',\n },\n permissionLabel: {\n width: '30%'\n },\n permissionContent: {\n width: '70%'\n },\n envBox: {\n display: \"flex\",\n alignItems: \"center\",\n },\n envValue: {\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n },\n envChip: {\n minWidth: \"100px\",\n border: \"1px solid #5567d5\",\n borderRadius: \"15px\",\n background: \"#5567d5\",\n color: \"#ffffff\",\n height: \"25px\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n marginRight: theme.spacing(1),\n fontSize: 12,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n envChipSecondary: {\n border: \"1px solid #5567d5\",\n borderRadius: \"15px\",\n background: \"#f0f1fb\",\n color: \"#5567d5\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n marginRight: theme.spacing(1),\n fontSize: 12,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n lineHeight: 1.2,\n padding: \"0 8px\",\n },\n securityHeaderInput: {\n boxShadow: theme.custom.elements.apiCard.content,\n width: \"100%\",\n borderRadius: theme.spacing(0.5),\n },\n securityHeaderButton: {\n textTransform: \"none\",\n },\n securityHeaderLeftBox: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"flex-start\",\n width: \"30%\",\n },\n securityHeaderRightBox: {\n display: \"flex\",\n flexDirection: \"row\", \n alignItems: \"flex-start\",\n width: \"70%\"\n },\n securityHeaderContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n width: \"80%\",\n },\n securityHeaderCard: {\n width: \"70%\",\n },\n cardActionBox: {\n marginLeft: \"auto\", \n display: \"flex\",\n paddingRight: theme.spacing(1),\n },\n cardActionSpace: {\n width: theme.spacing(1),\n },\n securityHeaderDetailBox: {\n display: \"flex\",\n alignItems: \"center\",\n width: \"70%\",\n },\n SecurityHeaderGridSpace: {\n marginLeft: theme.spacing(0.5),\n },\n securityHeaderButtonBox: {\n display:'block',\n justifyContent:'left',\n alignItems:'flex-start',\n width: '100%',\n },\n envNameStyles: {\n fontWeight: \"bold\",\n paddingRight: \"5px\",\n },\n textField: {\n width: '100%',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(0.75),\n '& .MuiOutlinedInput-input': {\n color: theme.palette.grey[500],\n paddingLeft: theme.spacing(1),\n },\n '& .MuiOutlinedInput-root': {\n minHeight: theme.spacing(4),\n height: 'auto',\n },\n },\n tag: {\n '& .MuiAutocomplete-tag': {\n height: theme.spacing(3),\n borderRadius: theme.spacing(0.625),\n border: \"1px solid #E0E2E9\",\n backgroundColor: theme.palette.secondary.light,\n \"& .MuiChip-label\": {\n color: theme.palette.secondary.dark,\n },\n \"& .MuiChip-deleteIcon\": {\n color: theme.palette.secondary.main,\n },\n },\n },\n autoComplete:{\n width: '70%',\n },\n responseScopeBox:{\n marginLeft: theme.spacing(-0.5),\n }\n}));\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { ChangeEvent, useEffect, useState } from \"react\";\nimport { FormattedMessage, useIntl } from \"react-intl\";\nimport { useDispatch } from \"react-redux\";\nimport {\n Box,\n Button,\n Grid,\n TextField,\n Typography,\n Card,\n CardActions,\n CardContent,\n} from \"@material-ui/core\";\nimport { Edit } from \"@material-ui/icons\";\nimport { fetchHeaders } from \"../../../store/actions/api\";\nimport { ApiRequestHeader } from \"../../../data/interfaces\";\nimport { useStyles } from \"./style\";\n\ninterface SecurityHeaderProps {\n headerName: string;\n headerValue: string;\n setOpenSecurityHeader: React.Dispatch>;\n}\n\nexport default function SecurityHeader({\n headerName,\n headerValue,\n setOpenSecurityHeader,\n}: SecurityHeaderProps) {\n const classes = useStyles();\n const intl = useIntl();\n const [requestHeader, setRequestHeader] = useState({ \n headerName: \"Authorization\", \n headerValue: \"\" \n });\n const [isAdded, setIsAdded] = useState(false);\n const [isClicked, setIsClicked] = useState(false);\n const [isEmpty, setIsEmpty] = useState(true);\n\n const dispatch = useDispatch();\n\n const handleInputChange = (event: ChangeEvent) => {\n const { name, value } = event.target;\n if (name === \"headerName\") {\n setRequestHeader((prevHeader) => ({\n ...prevHeader,\n headerName: value,\n }));\n } else {\n setRequestHeader((prevHeader) => ({\n ...prevHeader,\n headerValue: value,\n }));\n }\n };\n\n const handleSave = () => {\n const headerValues: ApiRequestHeader = {\n headerName: requestHeader.headerName,\n headerValue: requestHeader.headerValue,\n };\n dispatch(fetchHeaders(headerValues));\n };\n\n const resetValues = () => {\n setRequestHeader({ headerName: \"\", headerValue: \"\" });\n const headerValues: ApiRequestHeader = {\n headerName: \"\",\n headerValue: \"\",\n };\n dispatch(fetchHeaders(headerValues));\n };\n\n useEffect(() => {\n if (headerName === undefined && headerValue === undefined) {\n setIsAdded(false);\n } else if (headerName === '' && headerValue === '') {\n setIsAdded(false);\n } else {\n setIsAdded(true);\n setIsClicked(true);\n }\n }, [headerName, headerValue]);\n\n useEffect(() => {\n if (\n requestHeader.headerName === '' ||\n requestHeader.headerValue === ''\n ) {\n setIsEmpty(true);\n } else {\n setIsEmpty(false);\n }\n }, [requestHeader]);\n\n useEffect(() => {\n if (headerName === '') {\n setRequestHeader((prevHeader) => ({\n ...prevHeader,\n headerName: \"Authorization\",\n }));\n } else {\n setRequestHeader({ headerName: headerName, headerValue: headerValue });\n }\n }, [headerName, headerValue]);\n\n return (\n \n {!isAdded ? (\n \n \n \n \n \n \n \n \n Add Security Header\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n setOpenSecurityHeader(false);\n setIsClicked(false);\n resetValues();\n }}\n className={classes.securityHeaderButton}>\n {!isClicked ? (\n \n ) : (\n \n )}\n \n \n \n {!isClicked ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n onClick={() => {\n setIsAdded(false);\n }}\n className={classes.securityHeaderButton}>\n \n \n \n \n \n \n )}\n \n );\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport 'swagger-ui-react/swagger-ui.css';\nimport './swagger.css';\nimport SwaggerUILib from 'swagger-ui-react';\nimport { OpenAPIObject } from 'openapi3-ts';\nimport { Api } from '../../../data/interfaces';\nimport { PATH_SEPARATOR } from '../../../data/constants';\nimport { isThirdPartyApi } from '../../../data/utils';\n\nconst disableAuthorizeAndInfoPlugin = {\n statePlugins: {\n spec: {\n wrapSelectors: {\n servers: () => () => [],\n securityDefinitions: () => () => null,\n schemes: () => () => []\n }\n }\n },\n wrapComponents: {\n info: () => () => null,\n authorizeBtn: () => () => null,\n },\n};\n\nexport enum DocExpansion {\n LIST = 'list',\n FULL = 'full',\n NONE = 'none',\n }\n\nexport interface SwaggerUIProps {\n spec: OpenAPIObject,\n accessTokenProvider: string,\n securitySchemeType: string,\n authorizationHeader: string,\n api: Api,\n apiGatewayUrl: string,\n docExpansion?: DocExpansion,\n}\n\n/**\n *\n * @class SwaggerUI\n * @extends {Component}\n */\nconst SwaggerUI = (props: SwaggerUIProps) => {\n const {\n spec, accessTokenProvider, authorizationHeader, api, securitySchemeType, apiGatewayUrl, docExpansion\n } = props;\n\n const componentProps = {\n spec,\n validatorUrl: null,\n defaultModelsExpandDepth: -1,\n docExpansion: docExpansion,\n requestInterceptor: (req: any) => {\n // Interceptor adding the protocol http (unsecured) even the request URL contains the protocol (only with swagger 2).\n // Hense entire protocol part replace with an empty string\n req.url = req.url.replace('http://', '');\n const { context, version } = api;\n if (isThirdPartyApi(api)) {\n const newUrl = apiGatewayUrl + req.url.substr(req.url.indexOf(api.context) + api.context.length);\n req.url = newUrl.replace(context, '');\n }\n const patternToCheck = `${apiGatewayUrl}/*`;\n if (isThirdPartyApi(api)) {\n if (authorizationHeader !== '') {\n req.headers[authorizationHeader] = accessTokenProvider;\n }\n } else if (authorizationHeader === 'apikey') {\n const headerName = 'API-key';\n req.headers[headerName] = accessTokenProvider;\n } else if (securitySchemeType === 'BASIC') {\n req.headers[authorizationHeader] = 'Basic ' + accessTokenProvider;\n } else if (securitySchemeType === 'TEST') {\n req.headers[authorizationHeader] = accessTokenProvider;\n } else {\n req.headers[authorizationHeader] = 'Bearer ' + accessTokenProvider;\n }\n if (req.url.endsWith(patternToCheck)) {\n req.url = req.url.substring(0, req.url.length - 2);\n } else if (req.url.includes(patternToCheck + '?')) { // Check for query parameters.\n const splitTokens = req.url.split('/*?');\n req.url = splitTokens.length > 1 ? splitTokens[0] + '?' + splitTokens[1] : splitTokens[0];\n }\n return req;\n },\n defaultModelExpandDepth: -1,\n plugins: [disableAuthorizeAndInfoPlugin],\n };\n return ;\n};\n\nexport default SwaggerUI;\n","/*\n * Copyright (c) 2022, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n warningContainer: {\n backgroundColor: '#ffcc8c2b',\n borderLeftStyle: 'solid',\n borderLeftColor: '#FF9D52',\n padding: theme.spacing(1),\n minWidth: 120,\n width: 'fit-content',\n marginBottom: theme.spacing(0.5),\n },\n })\n);\n","/*\n * Copyright (c) 2022, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { ReactNode } from 'react';\nimport Box from '@material-ui/core/Box';\nimport Typography from '@material-ui/core/Typography';\nimport { useStyles } from './style';\n\nexport interface WarningBannerProps {\n message: ReactNode | string;\n testId: string;\n}\n\nexport const WarningBanner = (props: WarningBannerProps) => {\n const classes = useStyles();\n const { message, testId } = props;\n\n return (\n \n \n \n {message}\n \n \n \"\"\n \n \n \n );\n};\n\nexport default WarningBanner;\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n graphqlWrapper: {\n textAlign: 'left',\n width: '100%',\n margin: `0px ${theme.spacing(2)}px`,\n '& > .graphiql-container': {\n border: `1px solid #ccd1f2`,\n borderRadius: theme.spacing(0.5),\n height: 'calc(100vh - 23rem)',\n },\n '& .graphiql-container .docExplorerResizer': {\n height: 'inherit',\n },\n '& .topBarWrap': {\n '& .topBar': {\n background: theme.palette.common.white,\n borderBottom: '1px solid #ccd1f2',\n height: 'unset',\n padding: theme.spacing(1),\n '& .title': {\n display: 'none',\n },\n '& .execute-button-wrap': {\n margin: `0 ${theme.spacing(1)}px`,\n '& .execute-button': {\n background: '#5567d5',\n border: `1px solid ${theme.palette.secondary.light}`,\n boxShadow: `0 1px 0 ${theme.palette.common.white}`,\n fill: theme.palette.secondary.light,\n transitionDuration: '0.3s',\n '&:hover': {\n border: '1px solid #4d5ec0',\n fill: theme.palette.common.white,\n },\n },\n },\n },\n '& .toolbar': {\n alignItems: 'center',\n '& button': {\n color: '#222228',\n fontSize: theme.spacing(1.5),\n height: theme.spacing(4),\n margin: `0 ${theme.spacing(0.5)}px`,\n },\n },\n '& .docExplorerShow': {\n background: theme.palette.common.white,\n borderBottom: `1px solid #ccd1f2`,\n borderLeft: 'none',\n color: '#5567d5',\n '&:before': {\n borderLeft: '2px solid #5567d5',\n borderTop: '2px solid #5567d5',\n marginBottom: 0,\n },\n },\n },\n '& .CodeMirror-gutters': {\n background: '#f7f8f',\n borderRight: 'none',\n },\n '& .editorBar': {\n '& .secondary-editor-title, & .editor-drag-bar': {\n background: '#f7f8f',\n },\n '& .secondary-editor-title': {\n borderBottom: '1px solid #ccd1f2',\n borderTop: '1px solid #ccd1f2',\n },\n '& .editor-drag-bar': {\n borderRight: '1px solid #ccd1f2',\n borderLeft: '1px solid #ccd1f2',\n },\n '& .resultWrap': {\n '& .CodeMirror-scroll': {\n background: theme.palette.common.white,\n '& .CodeMirror-gutter': {\n background: theme.palette.common.white,\n },\n },\n },\n '& .queryWrap, & .resultWrap': {\n '& .CodeMirror-widget': {\n '& .CodeMirror-foldmarker': {\n background: '#5567d5',\n },\n },\n },\n },\n '& .historyPaneWrap': {\n borderTopLeftRadius: theme.spacing(0.5),\n borderBottomLeftRadius: theme.spacing(0.5),\n },\n '& .history-contents': {\n borderBottomLeftRadius: theme.spacing(0.5),\n '& >li': {\n '&:hover, &:active': {\n background: '#ccd1f2',\n },\n '& >input': {\n border: `1px solid #ccd1f2`,\n borderRadius: theme.spacing(0.5),\n padding: theme.spacing(0.5),\n outline: 'none',\n },\n },\n },\n '& .docExplorerWrap': {\n zIndex: `${10}`,\n '& .variable-editor-title': {\n margin: `${theme.spacing(1)}px 0`,\n '& > select': {\n border: `1px solid ${theme.palette.grey[300]}`,\n borderRadius: theme.spacing(0.5),\n margin: `0 ${theme.spacing(1)}px`,\n padding: `${theme.spacing(0.5)}px ${theme.spacing(1)}px`,\n '&:focus': {\n outline: 'none',\n },\n },\n },\n '& .graphiql-explorer-root': {\n '& > div': {\n overflow: 'auto !important',\n paddingLeft: theme.spacing(0.5),\n },\n },\n '& .graphiql-operation-title-bar': {\n '& span': {\n '& > input': {\n width: 'auto',\n },\n },\n },\n },\n '& .docExplorerWrap, & .historyPaneWrap': {\n '& .doc-explorer-title-bar, & .history-title-bar': {\n height: 'unset',\n padding: theme.spacing(1),\n '& .doc-explorer-title, & .history-title': {\n color: theme.palette.grey[500],\n textAlign: 'left',\n },\n },\n '& .doc-explorer-contents, & .history-contents': {\n borderTop: '1px solid #ccd1f2',\n padding: theme.spacing(2),\n top: 50,\n '& .search-box': {\n margin: `0 0 ${theme.spacing(1)}px 0`,\n '& .search-box-icon': {\n fontSize: 20,\n },\n '& >input': {\n padding: `0 ${theme.spacing(1)}px`,\n },\n },\n '& .doc-type-description': {\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.spacing(1.5),\n },\n },\n },\n },\n endpointTextField: {\n border: `1px solid ${theme.palette.grey[200]}`,\n borderRadius: theme.spacing(0.5),\n boxShadow: `inset 0 0 1px 0 ${theme.palette.grey[200]}`,\n height: theme.spacing(4),\n padding: `${theme.spacing(0.5)}px ${theme.spacing(1)}px`,\n transition: 'border 0.3s',\n '&:hover, &:active': {\n border: `1px solid #ccd1f2`,\n overflow: 'auto',\n },\n '& .MuiInputBase-input': {\n fontFamily: theme.typography.fontFamily,\n padding: theme.spacing(0.25),\n },\n '& .MuiInputAdornment-positionStart': {\n marginRight: 0,\n },\n },\n endpointTextFieldError: {\n border: '1px solid #fe523c',\n background: '#FAE8E8',\n '&:hover, &:active': {\n border: '1px solid #fe523c',\n background: '#FAE8E8',\n },\n },\n greyOutlinedButton: {\n left: 0,\n fontFamily: 'GilmerMedium',\n fontSize: '12px',\n lineHeight: '14px',\n color: '#40404B',\n height: theme.spacing(5),\n width: theme.spacing(10),\n },\n greyOutlineBtnRoot: {\n textTransform: 'capitalize',\n borderRadius: '5px',\n backgroundColor: theme.palette.secondary.light,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1), 0 1px 2px 0 rgba(0,0,0,0.05)',\n '&:hover': {\n backgroundColor: theme.palette.secondary.light,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.06), 0 2px 4px 0 rgba(0,0,0,0.12)',\n },\n '&:focus, &:active': {\n backgroundColor: theme.palette.secondary.light,\n background: 'linear-gradient(180deg, rgba(0,0,0,0.07) 0%, rgba(0,0,0,0) 100%)',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.08), 0 0 0 0 rgba(0,0,0,0.07)',\n },\n },\n disabledBtn: {\n opacity: 0.5,\n }\n })\n);\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport TooltipBase, { TooltipProps } from '@material-ui/core/Tooltip';\nimport React from 'react';\n\ninterface TooltipPropsExt extends TooltipProps {\n disabled?: boolean;\n}\n\nexport default function Tooltip(props: TooltipPropsExt) {\n const { children, classes, disabled, title, ...restProps } = props;\n\n if (disabled) {\n return <>{children};\n }\n\n return (\n <>\n {children && title && (\n \n {children}\n \n )}\n \n );\n}\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/';\n\nconst SOLID_BORDER = '1px solid';\n\nexport const useToolTipBaseStyles = makeStyles((theme: Theme) =>\n createStyles({\n infoTooltipDark: {\n color: theme.palette.grey[100],\n backgroundColor: theme.palette.secondary.dark,\n borderRadius: theme.spacing(1),\n },\n infoArrowDark: {\n color: theme.palette.secondary.dark,\n },\n infoTooltipLight: {\n color: theme.palette.secondary.dark,\n backgroundColor: theme.palette.common.white,\n borderRadius: theme.spacing(1),\n },\n infoArrowLight: {\n color: theme.palette.common.white,\n },\n errorTooltip: {\n border: SOLID_BORDER,\n borderColor: theme.palette.error.main,\n color: theme.palette.error.main,\n backgroundColor: theme.palette.error.light,\n borderRadius: theme.spacing(1),\n },\n errorArrow: {\n border: SOLID_BORDER,\n borderColor: theme.palette.error.main,\n color: theme.palette.error.light,\n },\n warningTooltip: {\n border: SOLID_BORDER,\n borderColor: theme.palette.warning.main,\n color: theme.palette.warning.main,\n backgroundColor: theme.palette.warning.light,\n borderRadius: theme.spacing(1),\n },\n warningArrow: {\n border: SOLID_BORDER,\n borderColor: theme.palette.warning.main,\n color: theme.palette.warning.light,\n },\n })\n);\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n divider: {\n margin: `${theme.spacing(1)}px 0px`,\n },\n buttonLink: {\n color: theme.palette.primary.main,\n cursor: 'pointer',\n marginTop: theme.spacing(1.5),\n textDecoration: 'none',\n },\n dividerDark: {\n backgroundColor: theme.palette.grey[100],\n },\n dividerLight: {\n backgroundColor: theme.palette.grey[100],\n },\n exampleContent: {\n fontSize: 12,\n fontWeight: 100,\n margin: `${theme.spacing(1)}px 0px`\n },\n exampleContentDark: {\n color: theme.palette.grey[100],\n },\n exampleContentLight: {\n color: theme.palette.secondary.dark,\n },\n })\n);\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { Box, Divider, Link, Typography } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { TooltipProps } from '@material-ui/core/Tooltip';\nimport Tooltip from './Tooltip';\nimport { useStyles, useToolTipBaseStyles } from './styles';\n\ninterface InfoTooltipProps extends TooltipProps {\n darken?: boolean;\n isDisabled?: boolean;\n heading?: string;\n content?: string;\n example?: string;\n action?: { link: string; text: string };\n}\n\nexport default function InfoTooltip(props: Partial) {\n const {\n children,\n heading,\n isDisabled,\n content,\n example,\n action,\n darken,\n ...restProps\n } = props;\n const classes = useStyles();\n const baseClasses = useToolTipBaseStyles();\n\n const infoTooltipFragment = (\n \n {heading && (\n \n {heading}\n \n )}\n {content && {content}}\n {(action || example) && (\n \n )}\n {example && (\n \n Eg: {example}\n \n )}\n {action && (\n \n {action.text}\n \n )}\n \n );\n\n return (\n <>\n {children && (\n \n {children}\n \n )}\n \n );\n}\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n infoContainer: {\n backgroundColor: '#F0F1FB',\n borderLeftStyle: 'solid',\n borderLeftColor: '#5567D5',\n padding: theme.spacing(1),\n minWidth: 120,\n width: 'fit-content',\n marginBottom: theme.spacing(0.5),\n },\n })\n);\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { ReactNode } from 'react';\nimport Box from '@material-ui/core/Box';\nimport Typography from '@material-ui/core/Typography';\nimport { useStyles } from './style';\n\nexport interface InfoBannerProps {\n message: ReactNode | string;\n testId: string;\n}\n\nexport const InfoBanner = (props: InfoBannerProps) => {\n const classes = useStyles();\n const { message, testId } = props;\n\n return (\n \n \n \n {message}\n \n \n \"\"\n \n \n \n );\n};\n\nexport default InfoBanner;\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport {\n Box,\n Button,\n CircularProgress,\n InputAdornment,\n TextField,\n} from \"@material-ui/core\";\nimport React, { useRef, useState } from \"react\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport clsx from \"clsx\";\nimport GraphiQLExplorer from \"graphiql-explorer\";\nimport {\n buildClientSchema,\n getIntrospectionQuery,\n GraphQLSchema,\n} from \"graphql\";\nimport { FormattedMessage, useIntl } from \"react-intl\";\nimport { useStyles } from \"./styles\";\nimport \"graphiql/graphiql.css\";\nimport GraphiQL from \"graphiql\";\nimport { truncateTextMiddle } from \"../../../../data/utils\";\nimport InfoTooltip from \"../../../../elements/CustomTooltip/InfoTooltip\";\nimport { APPLICATION_JSON, CONTENT_TYPE } from \"../../../../data/constants\";\nimport InfoBanner from \"../../../shared/InfoBanner\";\n\nexport interface GraphiqlViewerProps {\n token: string;\n apiGatewayUrl: string;\n securitySchemeType: string;\n authorizationHeader: string;\n initialEndpoint?: string;\n}\n\nexport default function GraphiqlViewer(props: GraphiqlViewerProps) {\n const {\n token,\n apiGatewayUrl,\n securitySchemeType,\n authorizationHeader,\n initialEndpoint,\n } = props;\n\n const classes = useStyles();\n const [query, setQuery] = useState(\"\");\n const [endpoint, setEndpoint] = useState(initialEndpoint || \"/\");\n const [isExplorerOpen, setIsExplorerOpen] = useState(false);\n const graphiqlEl = useRef();\n const intl = useIntl();\n\n const schemaFetchError = intl.formatMessage({\n id: \"components.api.ApiTryout.GraphiqlViewer.inputError.schemaFetchError\",\n defaultMessage: \"Failed to fetch GraphQL schema\",\n });\n\n const getAuthHeader = (): string => {\n let headerValue = \"\";\n if (authorizationHeader === \"apikey\") {\n headerValue = token;\n } else if (securitySchemeType === \"BASIC\") {\n headerValue = \"Basic \" + token;\n } else if (securitySchemeType === \"TEST\") {\n headerValue = token;\n } else {\n headerValue = \"Bearer \" + token;\n }\n\n return headerValue;\n };\n\n const getSchema = async (url: string) => {\n const result = await fetch(url, {\n method: \"post\",\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n [authorizationHeader]: getAuthHeader(),\n },\n body: JSON.stringify({ query: getIntrospectionQuery() }),\n });\n if (result.ok) {\n try {\n const schemaResponse = await result.json();\n\n // eslint-disable-next-line no-underscore-dangle\n if (schemaResponse?.data?.__schema) {\n return buildClientSchema(schemaResponse.data);\n }\n throw new Error(\n schemaResponse?.error_message ||\n schemaResponse?.message ||\n 'Invalid response received'\n );\n } catch {\n throw new Error('Invalid response received');\n }\n } else if (result.status === 404) {\n throw new Error('Request URL not found');\n } else {\n throw new Error(\n `Unexpected HTTP status code ${result.status} received`\n );\n }\n };\n\n const {\n data: schema,\n isFetching: fetchingSchema,\n isError,\n error,\n refetch,\n dataUpdatedAt,\n } = useQuery(\n [\"getIntrospectionQuery\", { apiGatewayUrl, token }],\n () => getSchema(`${apiGatewayUrl}${endpoint}`),\n {\n enabled: !!token,\n }\n );\n\n return (\n <>\n {token ? (\n \n \n setIsExplorerOpen(!isExplorerOpen)}\n />\n \n fetch(`${apiGatewayUrl}${endpoint}`, {\n method: \"post\",\n body: JSON.stringify(param),\n headers: opts?.headers,\n }).then((response) => response.json())\n }\n schema={schema}\n query={query}\n onEditQuery={(editQuery) => setQuery(editQuery || \"\")}\n readOnly={!schema}\n headers={JSON.stringify({\n [CONTENT_TYPE]: APPLICATION_JSON,\n [authorizationHeader]: getAuthHeader(),\n })}\n >\n \n graphiqlEl?.current?.ref?.props?.prettify()}\n disabled={!schema || isError}\n classes={{root: classes.greyOutlineBtnRoot, disabled: classes.disabledBtn}}\n className={classes.greyOutlinedButton}\n >\n \n \n graphiqlEl?.current?.ref?.props?.historyContext?.toggle()}\n disabled={!schema || isError}\n classes={{root: classes.greyOutlineBtnRoot, disabled: classes.disabledBtn}}\n className={classes.greyOutlinedButton}\n >\n \n \n setIsExplorerOpen(!isExplorerOpen)}\n disabled={!schema || isError}\n classes={{root: classes.greyOutlineBtnRoot, disabled: classes.disabledBtn}}\n className={classes.greyOutlinedButton}\n >\n \n \n \n \n setEndpoint(event.target.value)}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n {truncateTextMiddle(apiGatewayUrl, 60, \"......\")}\n \n ),\n endAdornment: (\n \n {fetchingSchema && }\n \n ),\n }}\n onKeyPress={(event: { key: string }) => {\n if (event.key === \"Enter\") {\n refetch();\n }\n }}\n onBlur={() => refetch()}\n />\n \n \n \n \n \n \n ) : (\n \n \n \n )}\n \n );\n}\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport {\n createStyles,\n makeStyles,\n Theme,\n} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n smallBadge: {\n fontSize: theme.spacing(1.25),\n padding: `${theme.spacing(0)}px ${theme.spacing(0.5)}px`,\n },\n mediumBadge: {\n fontSize: theme.spacing(1.625),\n padding: `${theme.spacing(0.5)}px ${theme.spacing(1)}px`,\n },\n largeBadge: {\n fontSize: theme.spacing(1.625),\n padding: `${theme.spacing(1)}px ${theme.spacing(1.5)}px`,\n },\n defaultBadge: {\n borderStyle: 'solid',\n borderRadius: theme.spacing(0.625),\n margin: theme.spacing(0.5),\n display: 'flex',\n width: 'max-content',\n height: 'max-content',\n justifyContent: 'center',\n alignItems: 'center',\n },\n successBadge: {\n backgroundColor: \"#36b475\",\n color: \"#ffffff\",\n borderWidth: 0,\n },\n successBadgeOutlined: {\n backgroundColor: \"#effdf2\",\n color: \"#36b475\",\n borderColor: \"#36b475\",\n borderWidth: 1,\n },\n warningBadge: {\n backgroundColor: \"#ff9d52\",\n color: \"#ffffff\",\n borderWidth: 0,\n },\n warningBadgeOutlined: {\n backgroundColor: \"#fff5eb\",\n color: \"#ff9d52\",\n borderColor: \"#ff9d52\",\n borderWidth: 1,\n },\n lightBadge: {\n backgroundColor: \"#ffffff\",\n color: \"#1d2028\",\n borderWidth: 0,\n },\n lightBadgeOutlined: {\n backgroundColor: \"#ffffff\",\n color: \"#1d2028\",\n borderColor: \"#8d91a3\",\n borderWidth: 1,\n },\n errorBadge: {\n backgroundColor: \"#fe523c\",\n color: \"#ffffff\",\n borderWidth: 0,\n },\n errorBadgeOutlined: {\n backgroundColor: \"#fceded\",\n color: \"#fe523c\",\n borderColor: \"#fe523c\",\n borderWidth: 1,\n },\n primaryBadge: {\n backgroundColor: \"#5567d5\",\n color: \"#ffffff\",\n borderWidth: 0,\n },\n primaryBadgeOutlined: {\n backgroundColor: \"#f0f1fb\",\n color: \"#5567d5\",\n borderColor: \"#5567d5\",\n borderWidth: 1,\n },\n secondaryBadge: {\n backgroundColor: \"#0095ff\",\n color: \"#ffffff\",\n borderWidth: 0,\n },\n secondaryBadgeOutlined: {\n backgroundColor: \"#0095ff\",\n color: \"#0095ff\",\n borderColor: \"#0095ff\",\n borderWidth: 1,\n },\n })\n);\n","/*\n * Copyright (c) 2022, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport clsx from 'clsx';\nimport { Box } from '@material-ui/core/';\nimport { useStyles } from './style';\n\ninterface BadgeProps {\n outLined: boolean;\n variant: BadgeVariant;\n size: BadgeSize;\n text: string;\n testId: string;\n}\n\nexport enum BadgeVariant {\n SUCCESS = 'success',\n WARNING = 'warning',\n LIGHT = 'light',\n ERROR = 'error',\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n}\n\nexport enum BadgeSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n}\n\nexport function Badge(props: BadgeProps) {\n const { size, variant, outLined, text, testId } = props;\n const classes = useStyles();\n\n return (\n \n {text}\n \n );\n}\n\nexport default Badge;\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from \"react\";\nimport { TextField } from \"@material-ui/core\";\nimport { useIntl } from \"react-intl\";\n\ninterface PayloadEditorProps {\n fileContent: string;\n setFileContent: (value: string) => void;\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function PayloadEditor({\n fileContent,\n setFileContent,\n}: PayloadEditorProps) {\n const intl = useIntl();\n return (\n setFileContent(event.target.value)}\n value={fileContent}\n />\n );\n}\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\n\nconst useStyles =makeStyles((theme: Theme) =>\n createStyles({\n topicContainer: {\n width: theme.spacing(140),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n borderBottom: 0,\n },\n topicTypeContainer: {\n height: theme.spacing(2),\n display: 'flex',\n marginBottom: '4px',\n alignContent: 'center',\n },\n typeChipContainer: {\n display: 'flex',\n height: theme.spacing(2.5),\n marginRight: theme.spacing(1),\n alignItems: 'center',\n },\n pubTypeChipContainer: {\n backgroundColor: '#0095FF',\n color: '#FFFFFF',\n borderRadius: 8\n },\n subTypeChipContainer: {\n backgroundColor: '#05A26B',\n color: '#FFFFFF',\n borderRadius: 8\n },\n accordion: {\n boxShadow: 'none',\n borderRadius: theme.spacing(1.5),\n },\n accordionSummary: {\n maxHeight: theme.spacing(6),\n minHeight: '48px !important',\n },\n endpointContainer: {\n display: 'flex',\n padding: theme.spacing(1, 1),\n border: 1,\n borderTop: `1px solid ${theme.palette.grey[200]}`,\n borderBottom: `1px solid ${theme.palette.grey[200]}`,\n gap: theme.spacing(1),\n },\n textInput: {\n width: theme.spacing(140),\n maxWidth: theme.spacing(124),\n },\n ConnectButton: {\n borderRadius: theme.spacing(1),\n padding: theme.spacing(1, 2),\n fontSize: 13,\n fontWeight: 500,\n textTransform: 'initial',\n },\n copyTextField: {\n maxWidth: theme.spacing(148),\n height: theme.spacing(5),\n },\n deleteButton: {\n color: theme.palette.error.main,\n textTransform: \"initial\",\n fontSize: 13,\n fontWeight: 400\n },\n clearOutput: {\n textTransform: \"initial\",\n fontSize: 13,\n fontWeight: 400\n },\n payloadContainer: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n height: theme.spacing(13.75),\n borderRadius: 'none',\n marginBottom: theme.spacing(8),\n marginLeft: theme.spacing(1),\n },\n sendIcon: {\n marginBottom: theme.spacing(2),\n marginLeft: theme.spacing(1),\n },\n containerButton: {\n float: 'left',\n marginLeft: theme.spacing(1.5),\n borderRadius: theme.spacing(1),\n fontSize: 13,\n fontWeight: 500,\n textTransform: 'initial',\n marginBottom: theme.spacing(1),\n },\n parameterContainerWrapper: {\n width: '100%',\n height: theme.spacing(27.5),\n overflow: 'scroll',\n },\n parameterContainer: {\n display: 'grid',\n gridTemplateColumns: 'repeat(4, 1fr)',\n gap: theme.spacing(1),\n width: '100%',\n height: theme.spacing(22),\n borderRadius: 'none',\n overflow: 'scroll',\n },\n paramTextInput: {\n size: 'small',\n width: theme.spacing(30),\n marginTop: theme.spacing(0.5),\n },\n executeButton: {\n marginLeft: theme.spacing(0),\n marginBottom: theme.spacing(1),\n alignContent: 'left',\n },\n outputConsoleContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n width: \"100%\",\n padding: theme.spacing(1, 2),\n alignItems: 'center',\n borderTop: `1px solid ${theme.palette.grey[200]}`,\n },\n outputLabel: {\n display: 'flex',\n justifyContent: 'center',\n fontSize: 13,\n fontWeight: 400\n },\n outputButtons: {\n display: 'flex',\n justifyContent: 'end',\n gap: theme.spacing(2),\n },\n outputContainer: {\n height: theme.spacing(20),\n width: '100%',\n overflow: 'scroll',\n borderTop: `1px solid ${theme.palette.grey[200]}`,\n borderBottomRightRadius: theme.spacing(1),\n borderBottomLeftRadius: theme.spacing(1),\n padding: theme.spacing(1, 2),\n },\n accordinDetails: {\n padding: 0,\n },\n logColor1: {\n color: \"#00008B\",\n },\n logColor2: {\n color: \"#7B68EE\",\n },\n logColor3: {\n color: \"#008000\",\n },\n logColor4: {\n color: \"#8A2BE2\",\n },\n logColor5: {\n color: \"#9370DB\",\n },\n infoLogs: {\n color: \"blue\",\n lineHeight: theme.spacing(0.25),\n },\n errorLogs: {\n color: \"red\",\n lineHeight: theme.spacing(0.25),\n },\n toolTipParent: {\n display: 'inline-flex',\n lineHeight: theme.spacing(0.25),\n '& $toolTipChild': {\n visibility: 'hidden',\n },\n '&:hover': {\n '& $toolTipChild': {\n visibility: 'visible',\n animation: '$animFade 250ms 1',\n },\n },\n },\n toolTipChild: {\n top: theme.spacing(-4),\n padding: theme.spacing(0.5),\n color: theme.palette.primary.main,\n display: 'flex',\n background: theme.palette.common.white,\n boxShadow: `0 1px 3px rgba(0, 0, 0, 0.19)`,\n userSelect: 'none',\n borderRadius: theme.spacing(0.625),\n position: 'absolute',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.palette.common.white,\n },\n },\n logMsg: {\n lineHeight: theme.spacing(0.25),\n display: 'inline',\n overflow: 'visible',\n whiteSpace: 'nowrap',\n '&:hover': {\n '& $actionContainer': {\n visibility: 'visible',\n animation: '$animFade 250ms 1',\n backgroundColor: theme.palette.common.white,\n },\n },\n },\n infoSection: {\n display: 'inline',\n whiteSpace: 'nowrap',\n },\n logLineWrapper: { display: 'flex' },\n logContextDivider: {\n color: theme.palette.divider,\n },\n logContextKeyValue: {\n color: \"blue\",\n },\n disableUserSelect: {\n userSelect: 'none',\n },\n logEntryActions: {\n position: 'relative',\n display: 'flex',\n paddingRight: theme.spacing(1.25),\n },\n actionContainer: {\n top: theme.spacing(-6),\n padding: theme.spacing(0.5),\n display: 'flex',\n width: 'max-content',\n background: theme.palette.common.white,\n position: 'absolute',\n cursor: 'pointer',\n border: `1px solid ${theme.palette.grey[100]}`,\n borderColor: theme.palette.grey[100],\n borderRadius: theme.spacing(0.625),\n backgroundColor: theme.palette.common.white,\n boxShadow: `0 1px 3px rgba(0, 0, 0, 0.19)`,\n },\n tabRoot: {\n borderBottom: \"1px solid #E4E8EE\",\n marginBottom: \"21px\",\n height: \"32px\",\n },\n tabIndicator: {\n color: \"#5567d5\",\n backgroundColor: \"#5567d5\",\n },\n tab: {\n padding: 0,\n fontFamily: \"GilmerMedium\",\n color: \"#1D2028\",\n },\n tabTitleText: {\n color: theme.custom.grey,\n fontSize: 13,\n fontWeight: 500,\n textTransform: 'initial',\n alignContent: 'start',\n flexWrap:'wrap',\n marginLeft: theme.spacing(2)\n },\n })\n);\n\nexport default useStyles;\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Box, Button, ButtonGroup, Typography } from '@material-ui/core';\n\nimport useStyles from './styles';\nimport { DeleteOutline, FileCopyOutlined } from '@material-ui/icons';\n\ninterface OutputConsoleProps {\n messages: Record[];\n clearLogs: () => void;\n isDisabled: boolean;\n}\n\nconst OutputConsole = (props: OutputConsoleProps) => {\n const classes = useStyles();\n const { messages, clearLogs, isDisabled } = props;\n\n const handleCopyClick = () => {\n const allMessagesString = messages\n .map((msg) => `${msg.timestamp} ${msg.message}`)\n .join('\\n');\n navigator.clipboard.writeText(allMessagesString);\n };\n\n return (\n \n \n \n \n \n }\n color=\"primary\"\n className={classes.clearOutput}\n >\n \n \n \n \n }\n color=\"inherit\"\n className={classes.deleteButton}\n >\n \n \n \n \n \n \n );\n};\nexport default OutputConsole;\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from \"react\";\nimport { FormattedMessage } from \"react-intl\";\nimport useStyles from \"./styles\";\nimport dayjs from \"dayjs\";\nimport clsx from \"clsx\";\nimport { Box } from \"@material-ui/core\";\n\nexport const DEFAULT_ZONE =\n Intl.DateTimeFormat().resolvedOptions().timeZone?.toString() || \"UTC\";\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function formatWithTimeZone(\n date: Date,\n timeZone: string,\n formatString = \"HH:mm:ss\"\n) {\n return dayjs(date).format(formatString);\n}\nconst parseDate = (date: string | Date) => {\n if (typeof date === \"string\") {\n return date === \"\" ? new Date() : new Date(date);\n }\n return date;\n};\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const formatLogTimeStamp = (\n date: Date,\n timeZone: string = DEFAULT_ZONE\n) => {\n const parsedDate = parseDate(date);\n return `${formatWithTimeZone(\n parsedDate,\n timeZone,\n \"YYYY-MM-DDTHH:mm:ss.SSSZ\"\n )}`;\n};\n\nexport const LOG_LEVEL_TRACE = \"TRACE\";\nexport const LOG_LEVEL_DEBUG = \"DEBUG\";\nexport const LOG_LEVEL_INFO = \"INFO\";\nexport const LOG_LEVEL_WARN = \"WARN\";\nexport const LOG_LEVEL_ERROR = \"ERROR\";\n\nexport type LogLevel =\n | typeof LOG_LEVEL_TRACE\n | typeof LOG_LEVEL_DEBUG\n | typeof LOG_LEVEL_INFO\n | typeof LOG_LEVEL_WARN\n | typeof LOG_LEVEL_ERROR;\n\nexport interface CollectedLogLineWithKey {\n timestamp: string;\n level?: LogLevel;\n displayTimeStamp?: string;\n message?: string;\n randomKey: number;\n isNewLog: boolean;\n}\n\ninterface LogLineProps {\n getColor: (name: string) => string;\n logEntry: CollectedLogLineWithKey;\n timeZone: string;\n isExpanded?: boolean;\n arrowElementProps?: React.DetailedHTMLProps<\n React.HTMLAttributes,\n HTMLDivElement\n >;\n parentElementProps?: React.DetailedHTMLProps<\n React.HTMLAttributes,\n HTMLDivElement\n >;\n}\n\nconst messageText = (\n \n);\n\nexport default function LogLine(props: LogLineProps) {\n const { logEntry, timeZone, getColor, parentElementProps } = props;\n const classes = useStyles();\n\n const getLogColorCode = (levelString: LogLevel | string) => {\n if (levelString.toUpperCase() === LOG_LEVEL_INFO) {\n return classes.infoLogs;\n }\n return classes.errorLogs;\n };\n\n // Note: Please avoid using MUI element in this component\n return (\n
    \n
    \n \n \n \n {formatLogTimeStamp(\n new Date(logEntry.displayTimeStamp || logEntry.timestamp),\n timeZone\n )}\n \n \n {logEntry?.message && (\n \n {logEntry?.message}\n \n {messageText}\n \n )}\n \n
    \n
    \n \n );\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from \"react\";\n\nimport Box from \"@material-ui/core/Box\";\nimport Typography from \"@material-ui/core/Typography\";\n\nexport interface TabPanelProps {\n children?: React.ReactNode;\n index: any;\n selectedIndex: any;\n}\n\nexport function TabPanel(props: TabPanelProps) {\n const { children, selectedIndex, index, ...other } = props;\n\n return (\n
    \n );\n};\n\nexport default TopicViewer;\n","/* eslint-disable react/prop-types */\n/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { Box } from \"@material-ui/core\";\nimport React, { useEffect, useState } from \"react\";\nimport { useIntl } from \"react-intl\";\nimport InfoBanner from \"../../../shared/InfoBanner\";\nimport TopicViewer from \"./TopicViewer\";\n\ninterface AsyncApiChannel {\n subscribe?: Record;\n publish?: Record;\n parameters?: Record;\n}\ninterface AsyncApi {\n asyncapi: string;\n info: {\n title: string;\n version: string;\n description?: string;\n license?: {\n name: string;\n url?: string;\n };\n };\n servers?: {\n [key: string]: {\n url: string;\n description?: string;\n protocol: string;\n };\n };\n channels: {\n [key: string]: AsyncApiChannel;\n };\n}\n\ninterface Channel {\n name: string;\n subscribe: boolean;\n publish: boolean;\n parameters?: Record;\n}\n\nfunction mapAsyncApiTopics(asyncapi: AsyncApi) {\n const { channels } = asyncapi;\n const allTopicsList: Channel[] = Object.entries(channels).map(\n ([channelName, channel]: [string, any]) => ({\n name: channelName,\n subscribe: !!channel?.subscribe,\n publish: !!channel?.publish,\n parameters: channel.parameters,\n })\n );\n\n return allTopicsList;\n}\nexport interface WebSocketViewerProps {\n asyncapi: any;\n token: string;\n apiGatewayUrl: string;\n securitySchemeType: string;\n authorizationHeader: string;\n initialEndpoint?: string;\n}\n\nexport default function WebSocketViewer(props: WebSocketViewerProps) {\n const {\n asyncapi,\n token,\n apiGatewayUrl,\n } = props;\n\n const [allTopics, setAllTopics] = useState([\n { name: '/*', subscribe: true, publish: true, parameters: {} },\n ] as Channel[]);\n const intl = useIntl();\n\n useEffect(() => {\n if (asyncapi?.channels) {\n setAllTopics(mapAsyncApiTopics(asyncapi));\n }\n }, [asyncapi]);\n\n return (\n <>\n {token ? (\n \n {allTopics.map(({ name, publish, subscribe, parameters }: Channel) => (\n \n ))}\n \n ) : (\n \n \n \n )}\n \n );\n}\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState, useEffect, ChangeEvent } from 'react';\nimport { connect, useDispatch } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport Notification from '../../ChoreoSystem/Notification/Notification';\n\nimport {\n Grid,\n Box,\n Typography,\n CircularProgress,\n Container,\n Divider,\n Select,\n MenuItem,\n Tooltip,\n Zoom,\n IconButton,\n Button,\n RadioGroup,\n Radio,\n TextField,\n} from '@material-ui/core';\nimport { CloudDownloadRounded, HelpTwoTone, Warning, Add } from '@material-ui/icons';\nimport SecurityHeader from './SecurityHeader';\nimport { useStyles } from './style';\nimport SwaggerUI from './SwaggerUI';\nimport PasswordCopyField from '../../../elements/PasswordCopyField';\nimport {\n ApiReducer,\n ApplicationKeyReducer,\n ApplicationState,\n EndpointInfo,\n GraphqlReducer,\n IDPReducer,\n Key,\n KeyType,\n Subscription,\n SubscriptionsReducer,\n SwaggerReducer,\n TestKeyType,\n UserReducer,\n} from '../../../data/interfaces';\nimport {\n isValidData,\n getApiGatewayUrl,\n getIsInternalAPI,\n getAllApiGatewayUrls,\n isProductionKeyGenerationAccessible,\n isSandboxKeyGenerationAccessible,\n isCredentialMenuAccessible,\n isThirdPartyApi,\n getEndpointUrls,\n getAPIType,\n getVisibilityFromAccessibilityType,\n} from \"../../../data/utils\";\nimport {\n createAppKeysAndToken,\n fetchAppKeys,\n fetchSubscriptions,\n fetchAPIVersionRangeSubscriptions,\n generateApplicationToken,\n fetchGraphqlResponse,\n fetchIDPs,\n generateApiTestKey,\n} from '../../../data/operations';\nimport { setErrorNotification } from '../../../store/actions/notification';\nimport ApiInfoBar from '../../shared/ApiInfoBar';\nimport OutlineButton from '../../../elements/OutlineButton';\nimport {\n ASGARDEO_KEY_MANAGER_TYPE,\n DEFAULT_APPLICATION_LIMIT,\n DEFAULT_APP_INTERNAL_PREFIX,\n DEFAULT_ASGARDEO_KEY_MANAGER_PREFIX,\n PATH_SEPARATOR,\n SUBSCRIBE_SCOPE,\n API_TYPE_HTTP,\n API_TYPE_WS,\n API_TYPE_GRAPHQL,\n\n} from '../../../data/constants';\nimport { PreLoaderLogo } from '../../../elements/PreLoaderLogo';\nimport { createOauthTokenSuccess } from '../../../store/actions/applicationKeys';\nimport CustomIcons from '../../../icons/CustomIcons';\nimport { OpenAPIObject } from 'openapi3-ts';\nimport Settings from '../../../conf/settings';\nimport {\n trackTryAPIPageLoad,\n trackTryOutGoToCredentialsClick,\n trackTryOutSwaggerDownload\n} from \"../../../util/app-insights\";\nimport WarningBanner from '../../shared/WarningBanner';\nimport DarkTooltip from '../../../elements/DarkTooltip';\nimport GraphiqlViewer from './GraphiqlViewer';\nimport Badge from '../../../elements/Badge';\nimport { BadgeSize, BadgeVariant } from '../../../elements/Badge/Badge';\nimport { getScopeName } from '../../../util/token-generation';\nimport InfoTooltip from '../../../elements/CustomTooltip/InfoTooltip';\nimport WebSocketViewer from './WebSocketViewer';\nimport CustomAutoComplete from '../../../elements/CustomAutoComplete/CustomAutoComplete';\n\nconst PROD_ENV_LABEL = 'Production';\n\ninterface ApiTryOutProps {\n dispatchGenerateAppKeyAndToken: (\n applicationId: string,\n organizationId: string,\n grantTypes: string[],\n callbackUrl: string,\n scopes: string[],\n additionalProperties?: Record,\n keyType?: KeyType,\n keyManager?: string\n ) => void;\n dispatchGenerateApplicationToken: (\n applicationId: string,\n selectedScopes: string[],\n key: Key\n ) => void;\n dispatchFetchGraphqlResponse: () => void;\n dispatchFetchSubscriptions: (\n apiId: string,\n organizationId: string,\n type: string,\n limit?: number\n ) => void;\n dispatchFetchVersionRangeSubscriptions: (\n apiId: string,\n organizationId: string\n ) => void;\n dispatchFetchAppKeys: (appId: string, organizationId: string) => void;\n dispatchGenerateApiTestKey: (apiId: string, environment: string) => void;\n dispatchFetchIDPs: (organizationId: string) => void;\n apiInfo: ApiReducer;\n keysInfo: ApplicationKeyReducer;\n subscriptionInfo: SubscriptionsReducer;\n userInfo: UserReducer;\n swaggerInfo: SwaggerReducer;\n graphqlResponse: GraphqlReducer;\n idpInfo: IDPReducer;\n}\n\nfunction ApiTryOut(props: ApiTryOutProps) {\n const {\n dispatchGenerateApplicationToken,\n dispatchGenerateAppKeyAndToken,\n dispatchFetchSubscriptions,\n dispatchFetchVersionRangeSubscriptions,\n dispatchFetchAppKeys,\n dispatchGenerateApiTestKey,\n dispatchFetchIDPs,\n apiInfo,\n keysInfo,\n subscriptionInfo,\n userInfo,\n swaggerInfo,\n graphqlResponse,\n idpInfo,\n dispatchFetchGraphqlResponse,\n } = props;\n const { api } = apiInfo;\n const apiGatewayUrl = api?.context\n ? getApiGatewayUrl(api?.context, userInfo.selectedOrg.name)\n : '';\n const selectedOrgHandleName = userInfo.selectedOrg.handle;\n const isApimTokenObtained = userInfo.apimTokenObtained;\n const allowedScopes = userInfo?.user?.allowedScopes || \"\";\n const { swagger, loading: swaggerLoading } = swaggerInfo;\n const { graphqlInfo, loading: isGraphqlResponseFetching } = graphqlResponse;\n const { subscriptions, isLoading: isSubscriptionFetching } = subscriptionInfo;\n const isKeysFetching = keysInfo.isLoading;\n const apiKey = keysInfo?.apiKey.apikey;\n const idpList = idpInfo?.idps.list;\n const defaultAsgardeoKeyManagerName =\n DEFAULT_ASGARDEO_KEY_MANAGER_PREFIX + selectedOrgHandleName;\n const isResidentKeyManagerNotUsed = !keysInfo?.keys?.list.find(\n (key) => key.keyManager === Settings.keyManager\n );\n const isAsgardeoKeyManagerAvailable =\n idpList.filter(\n (idp) =>\n idp.type === ASGARDEO_KEY_MANAGER_TYPE &&\n idp.name === defaultAsgardeoKeyManagerName\n ).length > 0;\n\n const [selectedApplicationId, setSelectedApplicationId] = useState('');\n const [selectedApplicationName, setSelectedApplicationName] = useState('');\n const [isAsgardeoManagedApplication, setIsAsgardeoManagedApplication] = useState(false);\n const [testTokenType, setTestTokenType] = useState(Settings.apiTryoutTestKeyEnabled ? 'api-key' : 'application');\n const [scopes, setScopes] = useState([]);\n const [selectedScopes, setSelectedScopes] = useState([]);\n const [token, setToken] = useState('');\n const [isUpdating, setIsUpdating] = useState(false);\n const [isCritivalEnv, setIsCritivalEnv] = useState(false);\n const [swaggerObj, setSwaggerObj] = useState(swagger);\n const [endpointUrlList, setEndpointUrlList] = useState([]);\n const [selectedEnvironment, setSelectedEnvironment] = useState(\"\");\n const [selectedEndpoint, setSelectedEndpoint] = useState(\"\");\n const [selectedVisibility, setSelectedVisibility] = useState(\"\");\n const { enableInV2 } = Settings;\n const [copiedTooltipVisible, setCopiedTooltipVisible] = useState(false);\n const enableCustomDomainView = enableInV2 && isApimTokenObtained;\n const isAuthorizedUserToSubscribe = allowedScopes?.includes(SUBSCRIBE_SCOPE);\n\n const history = useHistory();\n const classes = useStyles();\n const dispatch = useDispatch();\n const intl = useIntl();\n\n const getAuthorizationHeader = () => {\n if (testTokenType === 'api-key') {\n return 'apikey';\n } else {\n return api.authorizationHeader || 'Authorization';\n }\n }\n const [authorizationHeader, setAuthorizationHeader] = useState(getAuthorizationHeader());\n\n const defaultAppName =\n DEFAULT_APP_INTERNAL_PREFIX + userInfo?.userInfo?.sub + '_' + api?.name;\n const securitySchemeType = 'OAUTH';\n const fileName = 'swagger.json';\n const isDefaultCredentialsAvailable = !!subscriptions?.list?.find(\n (subscription) => subscription.applicationInfo?.name === defaultAppName\n );\n\n const endpointUrl = api?.advertiseInfo?.apiExternalProductionEndpoint || '';\n const sandboxUrl = api?.advertiseInfo?.apiExternalSandboxEndpoint || '';\n const [headerName, setHeaderName] = useState('Authorization');\n const [headerValue, setHeaderValue] = useState('');\n const [openSecurityHeader, setOpenSecurityHeader] = useState(false);\n const applicationList = subscriptions.list.map(subscription => {\n if (subscription.applicationInfo?.name === defaultAppName) {\n return 'Default Credentials'\n }\n return subscription.applicationInfo?.name\n })\n const getUpdatedSwagger = (swagger: OpenAPIObject, forDownload?: boolean): OpenAPIObject => {\n let newSwaggerObj: OpenAPIObject = {} as OpenAPIObject;\n if (swagger && Object.keys(swagger).length > 0 && apiGatewayUrl) {\n newSwaggerObj = JSON.parse(JSON.stringify(swagger));\n // Checking if OpenAPI spec is 2.0 or 3.0\n if (newSwaggerObj.swagger?.startsWith('2')) {\n newSwaggerObj = {\n ...newSwaggerObj,\n host: selectedEndpoint,\n basePath: apiGatewayUrl.slice(-1) === '/' ? '' : '/',\n };\n } else if (newSwaggerObj.openapi?.startsWith('3')) {\n if (forDownload) {\n return {\n ...newSwaggerObj,\n servers: endpointUrlList.map((endpoint) => ({ url: endpoint.url })),\n };\n }\n {\n return {\n ...newSwaggerObj,\n servers: [{ url: selectedEndpoint }],\n };\n }\n }\n }\n return newSwaggerObj;\n };\n\n const getUpdatedAsyncAPI = (asyncapi: any) => {\n if (asyncapi && Object.keys(asyncapi).length > 0 && apiGatewayUrl) {\n let newAsyncapi = JSON.parse(JSON.stringify(asyncapi));\n if (newAsyncapi.swagger?.startsWith('2')) {\n newAsyncapi = {\n ...newAsyncapi,\n host: apiGatewayUrl.substring(8),\n basePath: apiGatewayUrl.slice(-1) === '/' ? '' : '/',\n };\n } else if (newAsyncapi.asyncapi?.startsWith('3')) {\n newAsyncapi = { ...newAsyncapi, servers: [{ url: apiGatewayUrl }] };\n }\n return newAsyncapi;\n }\n return null;\n }\n\n const getDownloadLink = (): string => {\n const updatedSwagger = getUpdatedSwagger(swaggerObj, true);\n const downloadSwagger = JSON.stringify({ ...updatedSwagger });\n return (\n \"data:text/json;charset=utf-8, \" + encodeURIComponent(downloadSwagger)\n );\n };\n\n useEffect(() => {\n dispatchFetchIDPs(userInfo?.selectedOrg?.uuid);\n }, []);\n\n const getTestViewForApi = (api: Api) => {\n switch (getAPIType(api)) {\n case API_TYPE_HTTP:\n return (\n \n \n \n );\n case API_TYPE_GRAPHQL:\n return (\n \n );\n case API_TYPE_WS:\n return (\n );\n default:\n return (\n \n \n \n );\n }\n };\n\n useEffect(() => {\n trackTryAPIPageLoad();\n if (applicationList.length > 0) {\n const firstApp = applicationList[0] as string;\n setSelectedApplicationName(firstApp);\n fetchAppKeys(getIdFromName(firstApp) as string);\n }\n }, []);\n\n useEffect(() => {\n if (\n applicationList.length > 0 &&\n token === '' && keysInfo?.keys?.count > 0 &&\n keysInfo.oauthToken.accessToken === '' && selectedApplicationId === '') {\n setSelectedApplicationId(getIdFromName(applicationList[0] as string) as string)\n } else if (applicationList.length > 0 && keysInfo.oauthToken.accessToken === '' && keysInfo?.keys?.count === 0 && token === '') {\n setSelectedApplicationId(getIdFromName(applicationList[0] as string) as string);\n }\n }, [keysInfo?.keys?.list]);\n\n useEffect(() => {\n if (enableCustomDomainView && !!api.id) {\n dispatchFetchGraphqlResponse();\n }\n }, [api]);\n\n useEffect(() => {\n if (isValidData(api) && userInfo.orgs.length > 0) {\n dispatch(\n createOauthTokenSuccess({\n accessToken: '',\n tokenScopes: [],\n validityTime: 0,\n })\n );\n if (isAuthorizedUserToSubscribe) {\n if (api.version.startsWith(\"v\") && Settings.intelligentRoutingFeatureEnabled) {\n dispatchFetchVersionRangeSubscriptions(api.id, userInfo.selectedOrg.uuid);\n } else {\n dispatchFetchSubscriptions(api.id, userInfo.selectedOrg.uuid, 'api' ,DEFAULT_APPLICATION_LIMIT);\n // This is not the ideal fix for the issue.Just a workaround.\n // To properly handle this , it shoudl have a paginated dropdown.\n }\n }\n if (api.scopes?.length > 0) {\n setScopes(api.scopes.map(scope => scope.key));\n setSelectedScopes(api.scopes.map(scope => scope.key));\n }\n }\n }, [api]);\n\n useEffect(() => {\n setHeaderName(apiInfo.api.authorizationHeader);\n setHeaderValue(apiInfo.headers.headerValue);\n }, [apiInfo]);\n\n useEffect(() => {\n if (keysInfo?.oauthToken) {\n setToken(keysInfo.oauthToken.accessToken);\n }\n }, [keysInfo?.oauthToken]);\n\n useEffect(() => {\n if (apiKey) {\n setToken(apiKey);\n }\n }, [apiKey]);\n\n useEffect(() => {\n const apiEndpointUrls = api ? getEndpointUrls(api) : [];\n if (enableCustomDomainView && graphqlInfo && apiEndpointUrls?.length > 0) {\n const defaultUrls = getAllApiGatewayUrls(\n apiEndpointUrls,\n graphqlInfo,\n (api.versionInfo && api.versionInfo?.majorRange.isLatest) || false,\n api.version,\n false,\n userInfo.selectedOrg\n );\n const endpointUrls: EndpointInfo[] = [...defaultUrls];\n if (isThirdPartyApi(api)) {\n endpointUrls.push({\n url: endpointUrl,\n environment: \"Backend\",\n environmentDisplayName: \"Backend\",\n choreoEnvironmentName: \"Backend\",\n accessibilityType: \"\",\n isSandboxEndpoint: false,\n isCritical: true,\n isSandbox:false,\n });\n if (sandboxUrl) {\n endpointUrls.push({\n url: sandboxUrl,\n environment: \"Sandbox\",\n environmentDisplayName: \"Sandbox\",\n choreoEnvironmentName: \"Sandbox\",\n accessibilityType: \"\",\n isSandboxEndpoint: true,\n isCritical: false,\n isSandbox:true,\n });\n }\n }\n const prodEnv = endpointUrls.find(\n (endpoint) => endpoint.environmentDisplayName === PROD_ENV_LABEL\n );\n const selectedEnv = prodEnv || endpointUrls[0];\n const defaultEndpoint = endpointUrls.find(\n (endpoint) =>\n endpoint.environmentDisplayName === selectedEnv.environmentDisplayName\n );\n setEndpointUrlList(endpointUrls);\n if (defaultEndpoint?.isCritical) {\n setCurrentKeyType(defaultEndpoint?.isSandbox ? KeyType.SANDBOX : KeyType.PRODUCTION);\n setIsCritivalEnv(true);\n } else {\n setCurrentKeyType(KeyType.SANDBOX);\n setIsCritivalEnv(false);\n }\n setSelectedEnvironment(selectedEnv?.choreoEnvironmentName);\n setSelectedVisibility(\n getVisibilityFromAccessibilityType(selectedEnv?.accessibilityType)\n );\n setSelectedEndpoint(defaultEndpoint?.url || \"\");\n }\n }, [graphqlInfo, api]);\n\n useEffect(() => {\n const newSwaggerObj: OpenAPIObject = { ...swagger };\n setSwaggerObj(newSwaggerObj);\n }, [swagger]);\n\n const [currentKeyType, setCurrentKeyType] = useState(\n KeyType.PRODUCTION\n );\n\n useEffect(() => {\n if (applicationList?.length > 0 && selectedApplicationId === '') {\n const applicationName = applicationList[0] as string;\n setSelectedApplicationName(applicationName);\n const applicationId = getIdFromName(applicationName) as string;\n setSelectedApplicationId(applicationId);\n if (selectedApplicationId === '') {\n fetchAppKeys(applicationId);\n }\n }\n }, [applicationList]);\n\n /**\n * Generates access token for a given app\n */\n const generateAccessToken = async (applicationId: string, selectedPermissions: string[]) => {\n setIsUpdating(true);\n const grantTypes: string[] = ['refresh_token', 'client_credentials'];\n try {\n const envKey = keysInfo.keys.list.find(key=> key.keyType === currentKeyType);\n let keyManager = Settings.keyManager;\n if (isResidentKeyManagerNotUsed && isAsgardeoKeyManagerAvailable) {\n keyManager = defaultAsgardeoKeyManagerName;\n }\n if (envKey && applicationId) {\n await dispatchGenerateApplicationToken(\n applicationId as string,\n selectedPermissions,\n envKey\n );\n } else if (applicationId) {\n await dispatchGenerateAppKeyAndToken(\n applicationId,\n userInfo.selectedOrg.uuid,\n grantTypes,\n '',\n selectedPermissions,\n {},\n currentKeyType,\n keyManager\n );\n }\n setIsUpdating(false);\n } catch (error) {\n setIsUpdating(false);\n dispatch(\n setErrorNotification(\n 'ERROR: ' + error.response.data.description ||\n error.response.data.error_description\n )\n );\n }\n };\n\n /**\n * Handle onChange of inputs\n * @param {*} event event\n * @memberof ApiTryOut\n */\n function handleChanges(event: any) {\n const { target } = event;\n const { name, value } = target;\n switch (name) {\n case 'accessToken':\n setToken(value);\n break;\n default:\n }\n }\n\n const fetchAppKeys = async (applicationId: string) => {\n await dispatchFetchAppKeys(applicationId, userInfo.selectedOrg.uuid);\n }\n\n const fetchAccessToken = async (applicationId: string, selectedPermissions: string[]) => {\n await generateAccessToken(applicationId, selectedPermissions);\n };\n\n const onTryoutApplicationChange = (event: ChangeEvent) => {\n const applicationName = event.target.value;\n const applicationId = getIdFromName(applicationName) as string;\n fetchAppKeys(applicationId);\n\n const asgardeoAppId = subscriptions.list.find((subscription: Subscription) => {\n return subscription.applicationInfo?.name === applicationName\n })?.applicationInfo?.attributes?.asgardeo_app_id || '';\n setIsAsgardeoManagedApplication(asgardeoAppId !== '');\n setSelectedScopes(scopes);\n setToken('');\n setSelectedApplicationId(applicationId);\n setSelectedApplicationName(applicationName);\n };\n\n const getIdFromName = (name: string) => {\n const appName = subscriptions.list.find((subscription) => {\n return name === subscription.applicationInfo?.name;\n })?.applicationInfo?.applicationId;\n // handles keys generated but not associated with an application scenario\n if (appName === undefined) {\n return subscriptions.list[0].applicationInfo?.applicationId;\n }\n return appName;\n };\n\n const goToCredentialsPage = () => {\n trackTryOutGoToCredentialsClick(`${api?.id}`)\n if (isSandboxKeyGenerationAccessible(allowedScopes)) {\n history.push(\n PATH_SEPARATOR +\n selectedOrgHandleName +\n '/apis/' +\n api.id +\n '/credentials/sandbox'\n );\n } else if (isProductionKeyGenerationAccessible(allowedScopes)) {\n history.push(\n PATH_SEPARATOR +\n selectedOrgHandleName +\n '/apis/' +\n api.id +\n '/credentials/production'\n );\n }\n };\n\n const onEndpointSelect = (event: ChangeEvent) => {\n const { target: { value } } = event;\n const selectedEnvObject = endpointUrlList.find((endpoint) => {\n return endpoint?.url === value;\n });\n setSelectedEnvironment(selectedEnvObject?.choreoEnvironmentName || \"\");\n setSelectedEndpoint(value);\n setSelectedVisibility(\n getVisibilityFromAccessibilityType(\n selectedEnvObject?.accessibilityType || \"\"\n )\n );\n // production key-type is selected if the selected endpoint is critical and not a sandbox endpoint\n if (selectedEnvObject?.isCritical) {\n setCurrentKeyType(selectedEnvObject?.isSandbox ? KeyType.SANDBOX : KeyType.PRODUCTION);\n setIsCritivalEnv(true);\n } else {\n setCurrentKeyType(KeyType.SANDBOX);\n setIsCritivalEnv(false);\n }\n setToken(\"\");\n };\n\n const handleCopyClick = () => {\n navigator.clipboard.writeText(selectedEndpoint);\n setCopiedTooltipVisible(true);\n setTimeout(() => {\n setCopiedTooltipVisible(false);\n }, 2000);\n };\n\n const getKeyGenerationPermissionError = () => {\n if (currentKeyType === KeyType.SANDBOX && !isSandboxKeyGenerationAccessible(allowedScopes)) {\n return intl.formatMessage({\n id: 'api.apiTryOut.buttons.getTestKey.sandbox.disabled.tooltip',\n defaultMessage: 'You do not have permission to generate a sandbox key'\n });\n }\n if (currentKeyType === KeyType.PRODUCTION && !isProductionKeyGenerationAccessible(allowedScopes)) {\n return intl.formatMessage({\n id: 'api.apiTryOut.buttons.getTestKey.production.disabled.tooltip',\n defaultMessage: 'You do not have permission to generate a production key'\n });\n }\n return \"\";\n }\n\n const getTestKeyDisabledTooltip = () => {\n const keyGenPermissionError = getKeyGenerationPermissionError();\n if (keyGenPermissionError) {\n return keyGenPermissionError;\n }\n const envKey =\n keysInfo?.keys &&\n keysInfo.keys.list.find((key) => key.keyType === currentKeyType);\n if (\n selectedApplicationId !== \"\" &&\n Boolean(\n envKey && !envKey.supportedGrantTypes?.includes(\"client_credentials\")\n )\n ) {\n return intl.formatMessage({\n id: 'api.apiTryOut.buttons.getTestKey.tooltip',\n defaultMessage: 'Client credentials grant type is disabled for the selected application'\n });\n }\n return \"\"\n }\n\n const getTestKeyButtonDisabledStatus = () => {\n if(keysInfo?.currentKey?.mode === 'MAPPED') {\n return true;\n }\n const disabled = !userInfo.apimTokenObtained ||\n (subscriptions && subscriptions.count === 0) ||\n isKeysFetching ||\n (!isDefaultCredentialsAvailable && selectedApplicationId === '') ||\n (isDefaultCredentialsAvailable && subscriptions.count > 1 && selectedApplicationId === '')\n || currentKeyType === KeyType.SANDBOX && !isSandboxKeyGenerationAccessible(allowedScopes)\n || currentKeyType === KeyType.PRODUCTION && !isProductionKeyGenerationAccessible(allowedScopes);\n if (disabled) {\n return true;\n }\n const envKey =\n keysInfo?.keys &&\n keysInfo.keys.list.find((key) => key.keyType === currentKeyType);\n return Boolean(\n envKey && !envKey.supportedGrantTypes?.includes(\"client_credentials\")\n );\n };\n\n const EnvironmentSelector = () => {\n return enableCustomDomainView ? (\n \n \n \n \n {endpointUrlList.length > 1 ?\n : }\n \n \n \n \n }\n TransitionComponent={Zoom}\n placement='right'\n open={copiedTooltipVisible}\n >\n \n \n \n \n }\n renderValue={(value: any) =>\n \n {selectedEnvironment && (\n \n {selectedEnvironment} :\n \n )}\n {selectedVisibility && (\n \n {selectedVisibility}\n \n )}\n {currentKeyType === KeyType.SANDBOX && isCritivalEnv && (\n \n Sandbox\n
    \n )}\n {value}\n \n }\n >\n {endpointUrlList?.map((endpoint: EndpointInfo) => {\n return (\n \n \n \n {endpoint.choreoEnvironmentName} :\n \n {endpoint.accessibilityType && (\n \n {getVisibilityFromAccessibilityType(\n endpoint.accessibilityType\n )}\n \n )}\n {endpoint.isSandbox && (\n {\"Sandbox\"}\n )}\n {endpoint.url}\n \n \n );\n })}\n \n \n \n \n ) : null;\n };\n\n const ScopeSelection = () => {\n return (\n \n \n \n \n \n \n \n \n {\n if (selectedScopes) {\n setPermissionsCallback(permissions);\n }\n }}\n textFieldStyle={classes.textField}\n tagStyle={classes.tag}\n defaultValues={selectedScopes}\n data-testid=\"dialog-token-generate-scope-selector\"\n containerStyle={classes.autoComplete}\n />\n \n \n \n )\n };\n\n const setPermissionsCallback = (permissions: string[]) => {\n setSelectedScopes(permissions);\n }\n\n const AccessToken = () => {\n return (\n \n \n {testTokenType === 'custom' ? \"Header Value\" : \"Access Token\"}\n \n \n \n \n { getTestKeyButtonDisabledStatus() && (\n \n \n \n )}\n { !getTestKeyButtonDisabledStatus() && (\n \n fetchAccessToken(selectedApplicationId, selectedScopes)}\n startIcon={isUpdating ? : undefined}\n testId={'get-test-key-btn'}\n />\n \n )}\n \n \n \n );\n }\n\n const CustomSecurityHeader = () => {\n const [secuirtyHeader, setSecurityHeader] = useState(authorizationHeader);\n const updateSecurityHeader = (event: ChangeEvent) => {\n setSecurityHeader(event.target.value);\n }\n return (\n \n \n Security Header\n \n \n \n ) => {setAuthorizationHeader(event.target.value)}}\n inputProps={{\n style: {\n padding: `14px 14px`,\n height: '12px',\n },\n }}\n />\n \n \n \n )}\n\n const SubscriptionSelectionPanel = () => {\n if (isThirdPartyApi(api)) {\n return (\n \n {!openSecurityHeader && (\n \n \n \n }\n onClick={() => setOpenSecurityHeader(true)}\n className={classes.securityHeaderButton}\n >\n \n \n \n \n )}\n {openSecurityHeader && (\n \n )}\n \n );\n } else if (subscriptions.count === 0 && !Settings.apiTryoutTestKeyEnabled) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n )}\n disabled={!isCredentialMenuAccessible(allowedScopes)}\n />\n \n \n \n \n
    \n \n );\n } else if (subscriptions.count === 0 && Settings.apiTryoutTestKeyEnabled) {\n return (\n \n {testTokenType === 'application' && (\n \n )}\n {testTokenType === 'custom' && (\n \n )}\n {testTokenType === 'api-key' && (\n \n )}\n {testTokenType !== 'api-key' && (\n \n )}\n \n );\n } else if (isDefaultCredentialsAvailable && subscriptions.count === 1) {\n setSelectedApplicationId(\n subscriptions.list[0].applicationInfo?.applicationId as string\n );\n return (\n \n {testTokenType === 'api-key' && (\n \n )}\n {scopes.length > 0 && ()}\n {testTokenType !== 'api-key' && (\n \n )}\n \n );\n } else if (subscriptions.count > 0) {\n return (\n \n {testTokenType === 'application' && (\n \n )}\n {testTokenType === 'custom' && (\n \n )}\n {testTokenType === 'api-key' && (\n \n )}\n {scopes.length > 0 && ()}\n {testTokenType !== 'api-key' && (\n \n )}\n \n );\n } else {\n return null;\n }\n };\n\n const SubscriptionList = () => {\n return (\n \n \n \n \n \n \n \n \n {subscriptions.list.map((subscription) => {\n if (subscription.applicationInfo?.name === defaultAppName) {\n return (\n \n \n \n );\n } else {\n return (\n \n {subscription.applicationInfo?.name}\n \n );\n }\n })}\n \n \n \n \n \n {isKeysFetching && }\n \n \n \n );\n }\n\n const PermissionViewer = () => {\n return scopes.length > 0 && keysInfo?.oauthToken && keysInfo.oauthToken.tokenScopes.length > 0 && !!token ? (\n \n \n \n \n \n \n \n { keysInfo.oauthToken.tokenScopes.map(scope => \n \n \n \n )}\n \n \n ): null\n };\n\n const handleTokenTypeRadioChange = (event: React.ChangeEvent) => {\n event.preventDefault();\n setToken('');\n setSelectedApplicationId('');\n setSelectedApplicationName('');\n if (event.target.value === 'api-key') {\n console.log(authorizationHeader);\n setAuthorizationHeader('apikey');\n } else {\n setAuthorizationHeader(apiInfo.api.authorizationHeader);\n }\n setTestTokenType(event.target.value);\n };\n\n const TokenTypeSelector = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {subscriptions.count > 0 && (\n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n );\n };\n\n const generateTestKey = async () => {\n setIsUpdating(true);\n try {\n console.log(selectedEnvironment);\n await dispatchGenerateApiTestKey(\n api?.id as string, selectedEnvironment === PROD_ENV_LABEL ? TestKeyType.PRODUCTION : TestKeyType.DEVELOPMENT);\n setIsUpdating(false);\n } catch (error) {\n setIsUpdating(false);\n dispatch(\n setErrorNotification(\n 'ERROR: ' + error.response.data.description ||\n error.response.data.error_description\n )\n );\n }\n };\n\n const handleTokenGet = () => {\n testTokenType === 'api-key' ? generateTestKey() : generateAccessToken(selectedApplicationId as string, selectedScopes)\n }\n\n const TestKey = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n handleTokenGet()}\n startIcon={isUpdating ? : undefined}\n testId={'get-test-key-btn'}\n />\n \n \n \n \n );\n }\n\n const TryOutContent = () => {\n if (swaggerLoading || isSubscriptionFetching) {\n return (\n
    \n \n
    \n );\n } else {\n return (\n \n \n \n {isApimTokenObtained && (\n \n \n {Settings.apiTryoutTestKeyEnabled && }\n
    \n \n \n {getIsInternalAPI(api) &&\n \n \n \n \n }\n testId='internal-api-warning'\n />}\n \n \n
    \n \n
    \n )}\n {/* Only show swagger download button if API is not grapghql or websocket */}\n {/* TODO: Enable graphql SDL file/ AsyncAPI download */}\n {!(getAPIType(api) == API_TYPE_GRAPHQL || getAPIType(api) == API_TYPE_WS) && (\n \n \n \n {\n trackTryOutSwaggerDownload(api?.id);\n }}\n >\n }\n buttonLabel='SWAGGER (/SWAGGER.JSON)'\n className={classes.swaggerDownloadBtn}\n onClick={() => {\n trackTryOutSwaggerDownload(api?.id);\n }}\n />\n \n \n \n )}\n
    \n {getTestViewForApi(api)}\n
    \n \n );\n }\n };\n\n return (\n
    \n \n {isThirdPartyApi(api) ? (\n \n ) : (\n <>\n {api && getEndpointUrls(api)?.length > 0 ? (\n \n ) : (\n
    \n \n \n \n \n \n
    \n )}\n \n )}\n
    \n );\n}\n\nconst mapDispatchToProps = {\n dispatchGenerateAppKeyAndToken: createAppKeysAndToken,\n dispatchGenerateApplicationToken: generateApplicationToken,\n dispatchFetchSubscriptions: fetchSubscriptions,\n dispatchFetchVersionRangeSubscriptions: fetchAPIVersionRangeSubscriptions,\n dispatchFetchAppKeys: fetchAppKeys,\n dispatchFetchGraphqlResponse: fetchGraphqlResponse,\n dispatchGenerateApiTestKey: generateApiTestKey,\n dispatchFetchIDPs: fetchIDPs,\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiInfo: state.apiReducer,\n keysInfo: state.applicationKeysReducer,\n subscriptionInfo: state.subscriptionsReducer,\n userInfo: state.userReducer,\n swaggerInfo: state.swaggerReducer,\n graphqlResponse: state.graphqlReducer,\n idpInfo: state.idpReducer,\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ApiTryOut);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n appBarSpacer: {\n ...theme.mixins.toolbar,\n [theme.breakpoints.down('xs')]: {\n minHeight: theme.spacing(10),\n }\n },\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n ...theme.custom.apiOverviewPage.tabs.contracts.styles\n },\n container: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n textAlign: 'left',\n maxWidth: '1480px',\n },\n formControl: {\n padding: theme.spacing(2)\n },\n applicationSection: {\n padding: theme.spacing(2),\n alignItems: 'center',\n },\n formControlWarn: {\n padding: theme.spacing(2),\n display: 'flex',\n },\n updateBtn: {\n margin: \"32px 0\",\n display: 'flex',\n flexDirection: 'row',\n ...theme.custom.apiOverviewPage.tabs.contracts.updateButtonStyle\n },\n updateButton: {\n ...theme.custom.apiOverviewPage.tabs.contracts.updateButton\n },\n radioGroup: {\n width: '360px'\n },\n button: {\n margin: theme.spacing(1, 1, 0, 0),\n },\n warningIcon: {\n ...theme.custom.apiOverviewPage.tabs.contracts.warningIconStyle\n },\n componentPadding: {\n paddingLeft: theme.spacing(7),\n paddingRight: theme.spacing(10),\n [theme.breakpoints.down('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n [theme.breakpoints.up('lg')]: {\n paddingLeft: 'auto',\n paddingRight: 'auto',\n }\n },\n contractsTitle: {\n ...theme.custom.apiOverviewPage.tabs.contracts.title\n },\n GenerateCredentialsInfoLabel: {\n ...theme.custom.apiOverviewPage.tabs.contracts.GenerateCredentialsInfoLabel\n },\n contractLabel: {\n ...theme.custom.apiOverviewPage.tabs.contracts.contractLabelStyle\n },\n contractRadioButtonStyle: {\n ...theme.custom.apiOverviewPage.tabs.contracts.contractRadioButtonStyle\n },\n selectBox: {\n height: theme.spacing(5),\n width: theme.spacing(30),\n borderRadius: \"5px\",\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #dee0e7, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n cursor: \"pointer\",\n border: 1,\n \"&:active\": {\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #a6b3ff, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n border: \"1px solid #5567d5\",\n },\n \"&:focused\": {\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #a6b3ff, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n border: \"1px solid #5567d5 !important\",\n },\n \"& .MuiSelect-selectMenu\": {\n \"& .TextSpan\": {\n color: '#222228'\n }\n },\n },\n dropdownStyle: {\n backgroundColor: \"#fff\",\n boxSizing: \"border-box\",\n width: \"auto\",\n border: \"1px solid #DEE0E7\",\n borderRadius: \"5px\",\n boxShadow: \"0 5px 10px -3px rgba(50,50,77,0.1)\",\n color: \"#222228\",\n marginTop: '0.25rem',\n },\n policyCardGridItem: {\n display: 'flex',\n flexDirection: 'row',\n marginTop: theme.spacing(2),\n },\n btnText: {\n textTransform: \"initial\",\n fontSize: 11,\n marginLeft: theme.spacing(1.625),\n fontWeight: 400\n },\n}));\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\n\nexport const useStyles = makeStyles((theme) => ({\n appBarSpacer: theme.mixins.toolbar,\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n ...theme.custom.applicationViewPage.tabs.subscriptions.styles\n },\n container: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n maxWidth: '1480px',\n },\n componentPadding: {\n paddingLeft: theme.spacing(7),\n paddingRight: theme.spacing(10),\n [theme.breakpoints.down('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n [theme.breakpoints.up('lg')]: {\n paddingLeft: 'auto',\n paddingRight: 'auto',\n }\n },\n actions: {\n display: 'flex',\n alignItems: \"center\",\n justifyContent: \"flex-end\"\n },\n deleteBtn: {\n height: theme.spacing(3.5),\n paddingLeft: theme.spacing(1.5),\n paddingRight: theme.spacing(2),\n color: \"#EA4C4D\",\n borderRadius: theme.spacing(2),\n border: \"1px solid\",\n borderColor: \"#F8C7C7\",\n marginLeft: theme.spacing(1),\n backgroundRepeat: \"no-repeat\",\n backgroundSize: theme.spacing(2.5),\n backgroundPosition: \"left\",\n backgroundImage: \"url('../../../themes/default/images/clear-red.svg')\",\n \"&:hover\": {\n backgroundColor: \"#FCEDED\",\n color: \"#EA4C4D\",\n borderColor: \"#EA4C4D\",\n boxShadow: \"0 1px 2px 0 rgba(0,0,0,0.05)\"\n },\n \"&:focus, &:active\": {\n borderColor: \"#EA4C4D\",\n backgroundColor: \"#EA4C4D !important\",\n color: theme.palette.common.white,\n backgroundRepeat: \"no-repeat\",\n backgroundSize: theme.spacing(2.5),\n backgroundPosition: \"left\",\n backgroundImage: \"url('../../../themes/default/images/clear-white.svg')\",\n }\n },\n btnText: {\n textTransform: \"initial\",\n fontSize: 11,\n marginLeft: theme.spacing(1.625),\n fontWeight: 400\n },\n hoverBtn: {\n height: theme.spacing(4),\n paddingLeft: theme.spacing(1.5),\n paddingRight: theme.spacing(2),\n color: theme.palette.primary.main,\n borderRadius: theme.spacing(2),\n border: \"1px solid\",\n borderColor: \"#CBCFF1\",\n marginLeft: theme.spacing(1),\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"left\",\n \"&:hover\": {\n backgroundColor: \"rgb(204, 209, 242, 0.3)\",\n color: theme.palette.primary.main,\n borderColor: \"#A6B3FF\",\n boxShadow: \"0 1px 2px 0 rgba(0,0,0,0.05)\"\n },\n \"&:focus\": {\n backgroundColor: `${theme.palette.primary.main} !important`,\n color: theme.palette.common.white,\n borderColor: theme.palette.primary.main\n }\n },\n editBtn: {\n height: theme.spacing(3.5),\n backgroundSize: theme.spacing(2.5),\n backgroundImage: \"url('../../../themes/default/images/edit.svg')\",\n },\n disabled: {\n opacity: 0.5,\n },\n title: {\n ...theme.custom.applicationViewPage.tabs.subscriptions.pageTitle\n },\n addApiBtn: {\n ...theme.custom.applicationViewPage.tabs.subscriptions.addApiBtn,\n },\n copyScopesBtn: {\n ...theme.custom.applicationViewPage.tabs.subscriptions.copyScopesBtn,\n },\n loaderContainer: {\n width: \"cal(100%-75px)\",\n height: \"40vh\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n titleWrapper: {\n display: 'flex',\n alignItems: 'center',\n paddingBottom: theme.spacing(2),\n '& h5': {\n marginRight: theme.spacing(1),\n },\n },\n editDialogButton: {\n bottom: 15,\n textTransform: 'capitalize',\n fontFamily: 'GilmerMedium',\n fontSize: '13px',\n lineHeight: '16px',\n height: theme.spacing(5)\n },\n dialogRootStyle: {\n borderRadius: 15,\n },\n dialogContent: {\n paddingLeft: theme.spacing(6),\n paddingRight: theme.spacing(6),\n overflowY: 'visible'\n },\n contentAlign: {\n textAlign: 'center',\n },\n primaryTitle: {\n fontFamily: 'GilmerBold',\n textAlign: \"center\",\n fontSize: '29px',\n lineHeight: '64px',\n color: '#222228',\n marginBottom: theme.spacing(1)\n },\n editPrimaryTitle: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(4)\n },\n editSecondaryTitle: {\n marginBottom: theme.spacing(2)\n },\n secondaryTitle: {\n textAlign: \"center\",\n },\n dialogActions: {\n display: \"flex\",\n justifyContent: \"center\",\n paddingTop: theme.spacing(5.25)\n },\n editDialogActions: {\n marginBottom: theme.spacing(1),\n },\n searchField: {\n marginTop: theme.spacing(4.5),\n marginBottom: theme.spacing(2),\n [`screen and @media (min-width: 540px)`]: {\n verticalAlign: 'top',\n horizontalAlign: 'right',\n position: 'absolute',\n right: '356px',\n minHeight: '40px',\n\n },\n '& .MuiTextField-root': {\n padding: '4px 3px 3px 3px',\n borderRadius: '21px',\n border: 'solid 1px #e6e7ec',\n height: '36px',\n width: '100%',\n minWidth: '240px',\n marginBottom: theme.spacing(3),\n\n '& :focus': {\n 'borderColor': '#cfd0d6'\n },\n '& input::placeholder': {\n color: '#2222284d'\n }\n },\n '& .MuiInput-root': {\n paddingLeft: '15px',\n marginBottom: '1px',\n marginRight: theme.spacing(1),\n height: theme.spacing(4),\n backgroundImage: 'url(\"../../../themes/default/images/search.svg\")',\n backgroundSize: \"16px\",\n backgroundPosition: \"right\",\n backgroundRepeat: \"no-repeat\",\n '& .MuiInputAdornment-positionStart .MuiInputAdornment-positionEnd': {\n display: 'none',\n }\n },\n '& .MuiInputAdornment-positionEnd .MuiIconButton-root.Mui-disabled': {\n color: 'transparent',\n },\n '& .MuiInput-underline:hover:not(.Mui-disabled)::before ': {\n display: 'none',\n },\n '& .MuiInput-underline::after': {\n display: 'none',\n },\n '& .MuiInput-underline::before ': {\n display: 'none',\n },\n '& .MuiInput-underline': {\n borderBottom: \"none\"\n }\n },\n dropdownStyle: {\n backgroundColor: \"#fff\",\n boxSizing: \"border-box\",\n width: \"auto\",\n border: \"1px solid #DEE0E7\",\n borderRadius: \"5px\",\n boxShadow: \"0 5px 10px -3px rgba(50,50,77,0.1)\",\n color: \"#222228\",\n marginTop: '0.25rem'\n },\n selectDropDownSm: {\n height: theme.spacing(4.2),\n width: \"80%\",\n borderRadius: \"5px\",\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #dee0e7, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n cursor: \"pointer\",\n border: 1,\n \"&:active\": {\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #a6b3ff, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n border: \"1px solid #5567d5\",\n },\n \"&:focused\": {\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #a6b3ff, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n border: \"1px solid #5567d5 !important\",\n },\n \"& .MuiSelect-selectMenu\": {\n \"& .TextSpan\": {\n color: '#222228'\n }\n },\n },\n subscribeBtn: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n fontSize: 13,\n textTransform: 'capitalize',\n fontFamily: 'GilmerMedium'\n },\n infoIcon: {\n color: '#5567D5',\n },\n noDataInfo: {\n backgroundColor: '#F0F1FB',\n borderLeftStyle: 'solid',\n borderLeftColor: '#5567D5',\n maxWidth: '500px',\n padding: theme.spacing(1.8),\n },\n noDataText: {\n fontFamily: 'GilmerMedium',\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[200],\n },\n apiNameColumn: {\n cursor: 'pointer',\n color: '#5567D5'\n },\n bottomSpace: {\n marginBottom: theme.spacing(6)\n },\n disabledElement: {\n pointerEvents: 'none'\n },\n containerList: {\n '& .MuiPaper-root:first-child' : {\n backgroundColor: theme.custom.applicationViewPage.tabs.subscriptions.styles.backgroundColor,\n '& .MuiTable-root:first-child' : {\n '& .MuiTableBody-root' : {\n backgroundColor: theme.custom.applicationViewPage.tabs.subscriptions.styles.backgroundColor,\n }\n }\n }\n },\n displayInline: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n paddingLeft: theme.spacing(0.5),\n },\n selectBox: {\n height: theme.spacing(5),\n width: theme.spacing(30),\n borderRadius: \"5px\",\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #dee0e7, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n cursor: \"pointer\",\n border: 1,\n \"&:active\": {\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #a6b3ff, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n border: \"1px solid #5567d5\",\n },\n \"&:focused\": {\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #a6b3ff, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n border: \"1px solid #5567d5 !important\",\n },\n \"& .MuiSelect-selectMenu\": {\n \"& .TextSpan\": {\n color: '#222228'\n }\n },\n },\n policyGridItem: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n margin: theme.spacing(1),\n },\n cardContent: {\n marginBottom: theme.spacing(1),\n transition: \"0.2s\",\n marginRight: theme.spacing(1),\n borderRadius: \"16px\",\n height: \"195px\",\n paddingLeft: theme.spacing(2),\n boxShadow: \"0px 0px 1px 0px #8D91A3, 0px 1px 2px 0px #CBCEDB\",\n cursor: \"pointer\",\n },\n cardHeaderTitle: {\n overflowWrap: \"anywhere\",\n ...theme.custom.elements.apiCard.title,\n marginTop: theme.spacing(2),\n fontWeight: \"bold\",\n fontSize: 16,\n textAlign: \"center\",\n marginRight: theme.spacing(2),\n },\n cardBorder: {\n border: \"1px solid #cccccc\",\n },\n cardBorderSelected: {\n border: \"2px solid #A6B3FF\",\n boxShadow: \"none\",\n },\n policyCardListItem: {\n display: 'list-item',\n padding: \"4px\",\n paddingLeft: \"20px\",\n '&::before': {\n content: '\"•\"',\n position: 'absolute',\n left: '0',\n top: '50%',\n transform: 'translateY(-50%)',\n fontSize: '16px',\n color: '#A6B3FF',\n },\n },\n backToSubscriptionBtn: {\n textTransform: \"initial\",\n fontSize: 14,\n fontWeight: 400,\n marginLeft: theme.spacing(-1),\n },\n gridItem: {\n textAlign: \"left\",\n },\n subscriptionsTitle: {\n ...theme.custom.applicationViewPage.tabs.subscriptions.pageTitle,\n marginBottom: theme.spacing(3),\n },\n selectorBox: {\n display: 'flex',\n flexDirection: 'row',\n },\n selector: {\n marginRight: theme.spacing(2),\n },\n btnBox: {\n marginLeft: theme.spacing(-2),\n },\n policySelectorGridItem: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n margin: theme.spacing(1),\n marginLeft: theme.spacing(0),\n },\n policyCardTypography: {\n fontWeight: \"bold\"\n },\n autoComplete:{\n height: theme.spacing(8),\n width: theme.spacing(30),\n cursor: \"pointer\",\n marginBottom: theme.spacing(-2),\n \"& .MuiAutocomplete-inputRoot\": {\n \"& .MuiAutocomplete-input\": {\n padding: theme.spacing(0.5)\n }\n }\n },\n autoCompleteTextField: {\n height: theme.spacing(3),\n },\n}));\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from \"react\";\nimport { SubscriptionPolicy } from \"../../../data/interfaces\";\nimport { Card, List, ListItem, Typography } from \"@material-ui/core\";\nimport { useStyles } from \"./styles\";\n\ninterface SubscriptionPolicyCardProps {\n subscriptionPolicy: SubscriptionPolicy | undefined;\n isSelected: boolean;\n handleSubPolicySelection?: (selectedSubPolicy: string) => void;\n}\n\nfunction SubscriptionPolicyCard(props: SubscriptionPolicyCardProps) {\n const { subscriptionPolicy, isSelected, handleSubPolicySelection } = props;\n const classes = useStyles();\n\n const getStopOnQuotaReachText = (stopOnQuotaReach: boolean) => {\n if (stopOnQuotaReach) {\n return (\n <>\n Stop on Quota Reach{\" \"}\n \n enabled\n \n \n );\n }\n return (\n <>\n Stop on Quota Reach{\" \"}\n \n disabled\n \n \n );\n };\n\n const getRateLimitText = (\n subscriptionPolicy: SubscriptionPolicy | undefined\n ) => {\n if (subscriptionPolicy && subscriptionPolicy.requestCount > 0) {\n return (\n <>\n \n {subscriptionPolicy.requestCount} requests per{\" \"}\n {subscriptionPolicy.timeUnit}\n \n \n );\n } else if (subscriptionPolicy?.requestCount === -1) {\n return (\n <>\n \n Unlimited requests\n \n \n );\n }\n return \"\";\n };\n\n const getBurstControllingText = (\n subscriptionPolicy: SubscriptionPolicy | undefined\n ) => {\n if (subscriptionPolicy && subscriptionPolicy.rateLimitCount > 0) {\n return (\n <>\n Burst Controlling{\" \"}\n \n applies{\" \"}\n \n if request count exceeds{\" \"}\n \n {subscriptionPolicy.rateLimitCount} requests per{\" \"}\n {subscriptionPolicy.rateLimitTimeUnit}\n \n \n );\n }\n return \"\";\n };\n\n const getApprovalText = (\n subscriptionPolicy: SubscriptionPolicy | undefined\n ) => {\n const text = isApprovalRequired(subscriptionPolicy)\n ? \"Approval is required.\"\n : \"Approval is not required\";\n\n return (\n <>\n \n {text}\n \n \n );\n };\n\n const isApprovalRequired = (\n subscriptionPolicy: SubscriptionPolicy | undefined\n ) => {\n return !!subscriptionPolicy?.attributes?.isApprovalRequired;\n };\n\n return (\n handleSubPolicySelection(subscriptionPolicy?.name ?? \"\")\n : undefined\n }\n >\n \n {subscriptionPolicy?.name}\n \n\n \n {isApprovalRequired(subscriptionPolicy) && (\n \n {getApprovalText(subscriptionPolicy)}\n \n )}\n \n {getRateLimitText(subscriptionPolicy)}\n \n {subscriptionPolicy?.description &&\n subscriptionPolicy?.description !== \"\" && (\n \n {subscriptionPolicy?.description}\n \n )}\n \n \n {getStopOnQuotaReachText(\n subscriptionPolicy?.stopOnQuotaReach ?? false\n )}\n \n \n {subscriptionPolicy?.rateLimitCount &&\n subscriptionPolicy?.rateLimitCount > 0 && \n subscriptionPolicy.rateLimitCount !== 2147483647 && (\n \n {getBurstControllingText(subscriptionPolicy)}\n \n )}\n \n \n );\n}\n\nexport default React.memo(SubscriptionPolicyCard);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState, useEffect } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { connect } from 'react-redux';\nimport { useSnackbar } from 'notistack';\nimport { useHistory } from 'react-router-dom';\n\nimport {\n Container,\n Grid,\n Divider,\n Typography,\n CircularProgress,\n MenuItem,\n Select,\n Button,\n Box,\n} from \"@material-ui/core\";\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport FormControl from '@material-ui/core/FormControl';\nimport WarningIcon from '@material-ui/icons/WarningRounded';\n\nimport ApiInfoBar from '../../shared/ApiInfoBar';\nimport {\n ApiReducer,\n ApplicationState,\n Subscription,\n SubscriptionList,\n SubscriptionPoliciesReducer,\n SubscriptionsReducer,\n Tier,\n UserReducer,\n} from \"../../../data/interfaces\";\nimport PrimaryButton from '../../../elements/PrimaryButton';\nimport * as Utils from '../../../data/utils';\nimport {\n fetchSubscriptions,\n updateSubscription,\n cleanupSubscriptions,\n fetchSubscriptionPoliciesList,\n} from \"../../../data/operations\";\nimport { useStyles } from './styles';\nimport OutlineButton from '../../../elements/OutlineButton';\nimport CustomIcons from '../../../icons/CustomIcons';\nimport Settings from '../../../conf/settings';\nimport {\n DEFAULT_APPLICATION_LIMIT,\n PATH_SEPARATOR, PRODUCTION, RESOURCE_API, RESOURCE_API_CREDENTIALS, RESOURCE_APPLICATIONS,\n} from '../../../data/constants';\nimport { trackApiContractUpdate } from \"../../../util/app-insights\";\nimport { isCustomSubPoliciesEnabled } from \"../../../data/utils\";\nimport SubscriptionPolicyCard from '../../app/AppSubscriptions/SubscriptionPolicyCard';\ninterface ApiContractsProps {\n apiReducer: ApiReducer,\n subscriptionsReducer: SubscriptionsReducer,\n subscriptionPoliciesReducer : SubscriptionPoliciesReducer\n userReducer: UserReducer,\n cleanupSubscriptions: () => void,\n fetchSubscriptions: (apiId: string, organizationId: string, \n type: string, limit?: number | null,) => void,\n fetchSubscriptionPoliciesList: (organizationId: string) => Promise,\n updateSubscription: (subscriptionId: string, subscription: Subscription, organizationId: string) => Promise\n}\n\nfunction ApiContracts(props: ApiContractsProps) {\n const intl = useIntl();\n const { api } = props.apiReducer;\n const { isLoading, subscriptions } = props.subscriptionsReducer;\n const { subscriptionPolicies } = props.subscriptionPoliciesReducer;\n const { selectedOrg } = props.userReducer;\n const { fetchSubscriptions, updateSubscription, cleanupSubscriptions, fetchSubscriptionPoliciesList } = props;\n const classes = useStyles();\n const [radioGroupValue, setRadioGroupValue] = useState('');\n const [selectedSubPolicy, setSelectedSubPolicy] = useState('');\n const [error, setError] = useState(false);\n const [selectedApplication, setSelectedApplication] = useState('');\n const { enqueueSnackbar } = useSnackbar();\n const history = useHistory();\n\n const DEFAULT_CREDENTIALS = \"Default Credentials\";\n const tiers: Tier[] = api.tiers || [];\n let subscriptionThrottlingTierDesc: string;\n\n const getSubscriptionByApplication = (subscriptions: SubscriptionList, applicationName: string): Subscription => {\n return subscriptions.list.find((subscription) => {\n if (subscription.applicationInfo) {\n const {name} = subscription.applicationInfo;\n return name === applicationName || name.includes('_internal_') && applicationName.includes(DEFAULT_CREDENTIALS);\n }\n return false;\n }) || {} as Subscription;\n }\n\n useEffect(() => {\n if (api && Utils.isValidData(api) && selectedOrg.uuid) {\n fetchSubscriptions(api.id, selectedOrg.uuid, \"api\", DEFAULT_APPLICATION_LIMIT);\n // Set the application limit to 150 . But this is not a proper fix. Need to implement some\n // pagination mechanism for the dropdown\n }\n fetchSubscriptionPoliciesList(selectedOrg.uuid);\n return () => {\n cleanupSubscriptions();\n }\n }, []);\n\n useEffect(() => {\n if (subscriptions?.list?.length > 0 && (!selectedApplication || !radioGroupValue)) {\n setSelectedApplication(getApplicatonName(subscriptions.list[0].applicationInfo?.name || ''))\n setRadioGroupValue(subscriptions.list[0].throttlingPolicy || '')\n }\n }, [subscriptions])\n\n useEffect(() => {\n setRadioGroupValue(selectedSubPolicy);\n }, [selectedSubPolicy])\n\n const handleTiersRadioChange = (event: React.ChangeEvent) => {\n setRadioGroupValue((event.target as HTMLInputElement).value);\n setError(false);\n };\n\n const handleTiersSubmit = (event: React.FormEvent) => {\n event.preventDefault();\n if (subscriptions?.list?.length > 0 && selectedOrg.uuid) {\n const subscription = getSubscriptionByApplication(subscriptions, selectedApplication);\n const data: Subscription = {\n applicationId: subscription.applicationId,\n apiId: subscription.apiId,\n throttlingPolicy: radioGroupValue,\n requestedThrottlingPolicy: radioGroupValue,\n status: subscription.status,\n subscriptionId: subscription.subscriptionId,\n }\n updateSubscription(subscription.subscriptionId, data, selectedOrg.uuid);\n trackApiContractUpdate(\n `${subscription.applicationId}`,\n `${subscription.apiId}`,\n `${radioGroupValue}`,\n `${subscription.status}`,\n `${subscription.subscriptionId}`\n );\n } else {\n enqueueSnackbar(intl.formatMessage({\n id: \"api.apiContracts.messages.throttlingTierError\",\n defaultMessage: \"An error occurred while updating the throttling tier.\"\n }), { variant: \"error\" })\n }\n };\n\n const handleTryApiClick = () => {\n const selectedOrgHandleName = selectedOrg.handle;\n history.push(PATH_SEPARATOR + selectedOrgHandleName + RESOURCE_API + PATH_SEPARATOR + api.id\n + RESOURCE_API_CREDENTIALS + PATH_SEPARATOR + PRODUCTION);\n }\n\n const handleGoToApplicationsClick = () => {\n const selectedOrgHandleName = selectedOrg.handle;\n history.push(PATH_SEPARATOR + selectedOrgHandleName + RESOURCE_APPLICATIONS);\n };\n\n const handleSelectApplication = (event: any) => {\n const { value } = event.target;\n setSelectedApplication(value);\n setRadioGroupValue(getSubscriptionByApplication(subscriptions, value)?.throttlingPolicy || '')\n }\n\n const getApplicatonName = (name: string): string => {\n if (name.includes('_internal_')) {\n return DEFAULT_CREDENTIALS;\n }\n return name;\n }\n\n const createSubscription = () => {\n const subscription = getSubscriptionByApplication(subscriptions, selectedApplication);\n const data: Subscription = {\n applicationId: subscription.applicationId,\n apiId: subscription.apiId,\n throttlingPolicy: radioGroupValue,\n requestedThrottlingPolicy: radioGroupValue,\n status: subscription.status,\n subscriptionId: subscription.subscriptionId,\n }\n updateSubscription(subscription.subscriptionId, data, selectedOrg.uuid);\n }\n\n const subscriptionButtonText = () => {\n const subscription = getSubscriptionByApplication(\n subscriptions,\n selectedApplication\n );\n if (\n subscriptionPolicies.list.find(\n (policy) => policy.name === selectedSubPolicy\n )?.attributes?.isApprovalRequired\n ) {\n return subscription.subscriptionId ? (\n \n ) : (\n \n );\n } else {\n return subscription.subscriptionId ? (\n \n ) : (\n \n );\n }\n };\n\n return (\n
    \n \n \n \n \n {!isLoading && subscriptions.count === 0 ? (\n
    \n \n \n \n \n \n \n \n \n }\n />\n \n \n }\n />\n \n \n
    \n ) : (\n <>\n \n \n \n \n \n \n \n \n \n {subscriptions?.list?.length > 0 ? (\n subscriptions.list.map((subscription) => {\n return (\n \n {getApplicatonName(\n subscription.applicationInfo?.name || ''\n )}\n \n );\n })\n ) : (\n \n \n \n \n \n )}\n \n \n \n
    \n \n \n \n \n \n \n {!isCustomSubPoliciesEnabled(selectedOrg.uuid) && (\n \n
    \n \n \n \n {tiers.map((tier: Tier) => {\n return (\n
    \n {Settings.subscriptionThrottlingTiers.forEach(\n (throttlingTier) =>\n throttlingTier.name === tier.tierName\n ? (subscriptionThrottlingTierDesc =\n throttlingTier.description)\n : null\n )}\n \n }\n label={\n tier.tierName +\n ' (' +\n subscriptionThrottlingTierDesc +\n ')'\n }\n />\n \n
    \n );\n })}\n \n \n \n {isLoading ? (\n \n ) : null}\n \n \n \n \n
    \n )}\n \n \n )}\n \n {subscriptions?.list?.length > 0 && isCustomSubPoliciesEnabled(selectedOrg.uuid) && (\n
    \n \n \n {tiers.map((tier: Tier) => {\n const matchedPolicy = subscriptionPolicies.list.find(\n subPolicy => subPolicy.name === tier.tierName\n )\n if (matchedPolicy !== undefined) {\n return (\n \n \n \n )\n }\n })}\n \n \n \n {subscriptionButtonText()}\n \n \n \n
    \n )}\n \n
    \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n subscriptionsReducer: state.subscriptionsReducer,\n userReducer: state.userReducer,\n subscriptionPoliciesReducer: state.subscriptionPoliciesReducer\n }\n}\n\nconst mapDispatchToProps = {\n fetchSubscriptions: fetchSubscriptions,\n updateSubscription: updateSubscription,\n cleanupSubscriptions: cleanupSubscriptions,\n fetchSubscriptionPoliciesList: fetchSubscriptionPoliciesList\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ApiContracts);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\nimport { makeStyles, ThemeProvider, withStyles } from '@material-ui/core/styles';\nexport const useStyles = makeStyles((theme) => ({\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n ...theme.custom.apiOverviewPage.tabs.documentation.styles\n },\n title: {\n paddingTop: '15x',\n textAlign: 'left',\n ...theme.custom.apiOverviewPage.tabs.documentation.documentTypeTextStyle\n },\n tabsBox: {\n borderBottom: `1px solid ${theme.palette.grey[200]}`,\n },\n tabs: {\n backgroundColor: theme.palette.primary.main,\n },\n tab: {\n minHeight: theme.spacing(7.5),\n },\n tabTextParent: {\n maxWidth: theme.spacing(16),\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n tabTitleText: {\n color: theme.custom.grey,\n fontSize: 13,\n fontWeight: 500,\n textTransform: 'initial',\n },\n markdownViewWrapper: {\n border: `1px solid ${theme.palette.grey[200]}`,\n width: '100%',\n height: '70vh',\n overflowY: 'auto',\n },\n}));\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState, useEffect, Suspense } from 'react';\nimport { connect, useDispatch } from 'react-redux';\nimport { useIntl } from 'react-intl';\nimport {\n Typography,\n Box,\n Tabs,\n Tab,\n Tooltip,\n CircularProgress,\n} from '@material-ui/core';\n\nimport ApiInfoBar from '../../shared/ApiInfoBar';\nimport { useStyles } from './style';\nimport { groupObjectsByKey, isValidData } from '../../../data/utils';\nimport {\n ApplicationState,\n Document,\n DocumentsReducer,\n ApiReducer,\n UserReducer,\n} from '../../../data/interfaces';\nimport { getApiDocumentContent } from '../../../data/operations';\nimport { setErrorNotification } from '../../../store/actions/notification';\nimport { TabPanel } from '../../shared/Tab/TabPanel';\nimport Markdown from '../../shared/Markdown/Markdown';\n\ninterface ApiDocumentationProps {\n organizationHandle: string,\n apiReducer: ApiReducer;\n userReducer: UserReducer;\n documentsReducer: DocumentsReducer;\n}\n\nfunction ApiDocumentation(props: ApiDocumentationProps) {\n const intl = useIntl();\n const classes = useStyles();\n const dispatch = useDispatch();\n const { documentsReducer, userReducer, organizationHandle } = props;\n const { apimTokenObtained } = userReducer;\n const { documents: docInfo } = documentsReducer;\n const [content, setContent] = useState(\"\");\n const [selectedTab, setSelectedTab] = useState(0);\n\n let documents: Document[] = [];\n\n if (isValidData(docInfo)) {\n documents = docInfo.list;\n }\n const { MARKDOWN: markdownDocsList }: {MARKDOWN: Document[]} =\n groupObjectsByKey(documents, \"sourceType\");\n\n useEffect(() => {\n if (markdownDocsList && markdownDocsList.length !== 0) {\n onDocSelect(0);\n }\n }, [documents]);\n\n const getMarkdownContent = async (id: string) => {\n try {\n const response = await getApiDocumentContent(id, false, apimTokenObtained);\n setContent(response?.data);\n } catch (error) {\n dispatch(\n setErrorNotification(\n intl.formatMessage({\n id: \"api.apiDocumentation.messages.errorNoDocumentContent\",\n defaultMessage: \"Error while fetching the document content\",\n })\n )\n );\n }\n };\n\n const onDocSelect = async (tabIndex: number) => {\n const selectedDoc = markdownDocsList[tabIndex];\n if (isValidData(selectedDoc)) {\n await getMarkdownContent(markdownDocsList[tabIndex].documentId);\n setSelectedTab(tabIndex);\n } else {\n dispatch(\n setErrorNotification(\n intl.formatMessage({\n id: \"api.apiDocumentation.messages.errorNoDocument\",\n defaultMessage: \"The requested document does not exists\",\n })\n )\n );\n }\n };\n\n return (\n \n \n \n \n onDocSelect(value)}\n TabIndicatorProps={{ className: classes.tabs }}\n >\n {markdownDocsList?.map((document: Document) => (\n \n \n {document.name}\n \n \n }\n classes={{\n wrapper: classes.tabTitleText,\n root: classes.tab,\n }}\n />\n ))}\n \n \n {markdownDocsList?.map((document: Document, index) => (\n \n \n }>\n \n \n \n \n ))}\n \n \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n userReducer: state.userReducer,\n documentsReducer: state.documentsReducer,\n };\n};\n\nexport default connect(mapStateToProps)(ApiDocumentation);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport {makeStyles} from \"@material-ui/core/styles/index\";\n\nexport const useStyles = makeStyles((theme) => ({\n appBarSpacer: {\n ...theme.mixins.toolbar,\n [theme.breakpoints.down('xs')]: {\n minHeight: theme.spacing(10),\n }\n },\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n ...theme.custom.apiOverviewPage.tabs.sdks.styles\n },\n container: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n maxWidth: '1480px',\n },\n fixedHeight: {\n height: 240,\n },\n title: {\n ...theme.custom.apiOverviewPage.tabs.sdks.title\n },\n notification: {\n paddingLeft: '15px',\n ...theme.custom.apiOverviewPage.tabs.sdks.noSDKLabelStyle\n },\n cardTitle: {\n ...theme.custom.apiOverviewPage.tabs.sdks.SDKLanguageStyle\n },\n cardRoot: {\n ...theme.custom.apiOverviewPage.tabs.sdks.SDKCardStyle\n },\n cardMedia: {\n padding: '30px'\n },\n componentPadding: {\n paddingLeft: theme.spacing(7),\n paddingRight: theme.spacing(8.5),\n [theme.breakpoints.down('sm')]:{\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3), \n },\n [theme.breakpoints.up('lg')]:{\n paddingLeft: 'auto',\n paddingRight: 'auto', \n }\n },\n loaderContainer: {\n width: \"cal(100%-60px)\",\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: '15%'\n },\n sdkCardWrapper: {\n marginLeft: -theme.spacing(2)\n }\n}));\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { connect, useDispatch } from 'react-redux';\nimport JSFileDownload from 'js-file-download';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport Container from '@material-ui/core/Container';\nimport Grid from '@material-ui/core/Grid';\nimport { Typography, Card, CardMedia, CardActions } from '@material-ui/core';\n\nimport TextButton from '../../../elements/TextButton';\nimport { generateSdk } from '../../../data/operations';\nimport { ApplicationState, ApiReducer, SdkReducer, UserReducer } from '../../../data/interfaces';\nimport ApiInfoBar from '../../shared/ApiInfoBar';\nimport { useStyles } from './styles';\nimport { setErrorNotification } from '../../../store/actions/notification'\nimport { PreLoaderLogo } from '../../../elements/PreLoaderLogo';\nimport {trackApiSDKDownload} from \"../../../util/app-insights\";\n\nexport interface SdkProps {\n apiInfo: ApiReducer,\n sdkInfo: SdkReducer,\n userReducer: UserReducer,\n}\n\nfunction ApiSdks({ apiInfo, sdkInfo, userReducer }: SdkProps) {\n const intl = useIntl();\n const classes = useStyles();\n const { api } = apiInfo;\n const { loading, languages: sdkLanguages } = sdkInfo;\n const { orgs: userOrganizations, selectedOrg } = userReducer;\n const dispatch = useDispatch();\n\n async function downloadSDK(language: string) {\n try {\n if (api.id && selectedOrg.uuid) {\n const response = await generateSdk(api.id, selectedOrg.uuid, language);\n const sdkZipName = response?.headers['content-disposition'].match(/filename=\"(.+)\"/)[1];\n const sdkZip = response?.data;\n JSFileDownload(sdkZip, sdkZipName);\n trackApiSDKDownload(`${api.id}`, `${sdkZipName}`);\n }\n } catch (error) {\n dispatch(setErrorNotification('ERROR: ' + error.response.data.description ||\n error.response.data.error_description))\n }\n }\n\n const sdkCards = sdkLanguages.map((language, index) => {\n return (\n \n
    \n \n \n {language}\n \n \n \n \n downloadSDK(language)}\n />\n \n \n \n
    \n
    \n )\n })\n return (\n
    \n \n \n \n \n \n \n \n \n \n {loading ? (\n
    \n \n
    \n ) :\n (\n sdkLanguages.length > 0 ? (\n \n {sdkCards}\n \n ) : (\n \n \n \n \n \n )\n )}\n
    \n
    \n
    \n
    \n
    \n )\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiInfo: state.apiReducer,\n sdkInfo: state.sdkReducer,\n userReducer: state.userReducer\n }\n}\n\nexport default connect(mapStateToProps)(ApiSdks);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { RefObject } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport { SvgIconProps } from '@material-ui/core/SvgIcon';\n\nconst useStyles = makeStyles((theme) => ({\n unSelected: {\n ...theme.custom.apiOverviewPage.leftMenu.menuItems.unSelected\n },\n selected: {\n ...theme.custom.apiOverviewPage.leftMenu.menuItems.selected\n },\n listItemIcon: {\n ...theme.custom.apiOverviewPage.leftMenu.menuItems.iconStyles\n },\n listItemText: {\n ...theme.custom.apiOverviewPage.leftMenu.menuItems.textStyles\n }\n}));\n\ninterface ListItemLinkProps {\n icon?: React.ReactElement,\n primary: string,\n to: string,\n selected: boolean,\n id?: string,\n disabled?: boolean,\n onclick?: () => void;\n}\n\nfunction ListItemLink(props: ListItemLinkProps) {\n const { icon, primary, to, selected, id, disabled, onclick } = props;\n const classes = useStyles();\n const ItemRouterLink = React.forwardRef((itemProps, ref) => } {...itemProps} />);\n ItemRouterLink.displayName = 'ItemRouterLink';\n const renderLink = React.useMemo(\n () => ItemRouterLink,\n [to],\n );\n\n return (\n
  • \n \n {icon ? {icon} : null}\n {primary}\n \n
  • \n );\n}\n\nexport default ListItemLink;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { matchPath, useLocation } from 'react-router-dom';\nimport { useIntl } from 'react-intl';\n\nimport ListItemLink from './ListItemLink'\nimport CustomIcons from '../../../icons/CustomIcons'\n\nimport { ApiReducer, ApplicationState, UserReducer } from '../../../data/interfaces';\nimport { PATH_SEPARATOR } from '../../../data/constants';\nimport {\n trackAPIContractsNavBarClick,\n trackAPICredentialsNavBarClick,\n trackAPIDocumentationNavBarClick, trackAPISDKNavBarClick\n} from \"../../../util/app-insights\";\nimport {\n isContractsAccessible,\n isCredentialMenuAccessible,\n isGraphqlApi,\n isProductionKeyGenerationAccessible,\n isSandboxKeyGenerationAccessible\n} from '../../../data/utils';\nimport { List, ListItem, makeStyles } from '@material-ui/core';\nimport Settings from '../../../conf/settings';\nimport InfoTooltip from '../../../elements/CustomTooltip/InfoTooltip';\n\nconst useStyles = makeStyles((theme) => ({\n nested: {\n paddingLeft: theme.spacing(3.75),\n },\n nestedItem: {\n marginTop: -theme.spacing(3.5),\n marginBottom: -theme.spacing(3.5)\n }\n}));\n\nexport interface ApiCredentialUrlParams {\n env?: string;\n page: string;\n}\n\ninterface ApiUrlParams {\n page: string;\n}\n\ninterface MainMenuItemsProps {\n organizationHandle: string,\n apiReducer: ApiReducer,\n userReducer: UserReducer\n}\n\nfunction MainMenuItems(props: MainMenuItemsProps) {\n const intl = useIntl();\n const location = useLocation();\n const classes = useStyles();\n const { api } = props.apiReducer;\n const isApimTokenObtained = props.userReducer.apimTokenObtained;\n const allowedScopes = props.userReducer.user.allowedScopes;\n const selectedOrgHandleName = props.organizationHandle;\n const apiId = api ? api.id : ':apiId';\n\n const isTabSelected = (page: string, credentialEnv?: string): boolean => {\n const currentPath = location.pathname;\n if (credentialEnv) {\n const { params } = matchPath(currentPath, \"/:orgName/apis/:apiId/:page/:env\") || {};\n return !!params && params.env === credentialEnv && params.page === page;\n }\n const { params } = matchPath(currentPath, \"/:orgName/apis/:apiId/:page\") || {};\n return !!params && params.page === page;\n }\n\n const menuItemsI18n = {\n overview: intl.formatMessage({\n id: 'api.menuItems.overview',\n defaultMessage: 'Overview'\n }),\n credentials: intl.formatMessage({\n id: 'api.menuItems.credentials',\n defaultMessage: 'Credentials'\n }),\n productionCredentials: intl.formatMessage({\n id: 'api.menuItems.credentials.productionKeys',\n defaultMessage: 'Production'\n }),\n sandboxCredentials: intl.formatMessage({\n id: 'api.menuItems.credentials.sandboxKeys',\n defaultMessage: 'Sandbox'\n }),\n tryout: intl.formatMessage({\n id: 'api.menuItems.tryout',\n defaultMessage: 'Try Out'\n }),\n resources: intl.formatMessage({\n id: 'api.menuItems.resources',\n defaultMessage: 'Resources'\n }),\n documentation: intl.formatMessage({\n id: 'api.menuItems.documentation',\n defaultMessage: 'Documentation'\n }),\n sdks: intl.formatMessage({\n id: 'api.menuItems.sdks',\n defaultMessage: 'SDKs'\n }),\n contracts: intl.formatMessage({\n id: 'api.menuItems.contracts',\n defaultMessage: 'Contracts'\n })\n };\n\n return (\n
    \n }\n selected={isTabSelected('overview')}\n id='overview-item-link'\n />\n {(isApimTokenObtained && isCredentialMenuAccessible(allowedScopes)) && !Settings.apiTryoutTestKeyEnabled && (\n <>\n \n \n }\n selected={isTabSelected('credentials')}\n id='credentials-item-link'\n onclick={trackAPICredentialsNavBarClick}\n />\n \n \n \n {Settings.sandboxKeyGenerationEnabled && (\n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n )}\n {isApimTokenObtained &&\n }\n selected={isTabSelected('tryout')}\n id='tryout-item-link'\n />\n }\n {!isApimTokenObtained &&\n }\n selected={isTabSelected('resources')}\n id='resources-item-link'\n disabled={isGraphqlApi(api)}\n />\n }\n }\n selected={isTabSelected('documents')}\n id='documents-item-link'\n onclick={trackAPIDocumentationNavBarClick}\n />\n {(!isGraphqlApi(api) && isApimTokenObtained) && (\n }\n selected={isTabSelected('sdks')}\n id='sdks-item-link'\n onclick={trackAPISDKNavBarClick}\n />\n )}\n {(isApimTokenObtained && isContractsAccessible(allowedScopes)) && (\n \n \n }\n selected={isTabSelected('contracts')}\n id='contracts-item-link'\n onclick={trackAPIContractsNavBarClick}\n />\n \n \n )}\n
    \n )\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n userReducer: state.userReducer\n }\n}\n\nexport default connect(mapStateToProps)(MainMenuItems);\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nexport enum AppPermission {\n READ = 'READ',\n WRITE = 'WRITE',\n SHARE = 'SHARE',\n SUBSCRIBE = 'SUBSCRIBE',\n}\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { ADMIN_SCOPE } from \"../data/constants\";\nimport { AppPermission } from \"../data/emus\";\nimport { Application } from \"../data/interfaces\";\n\nexport class ApplicationPermission {\n\n static hasPermission( permission: AppPermission, \n application?: Application, \n userInfo?: any, \n allowedScopes?: string): boolean {\n if (allowedScopes) {\n const splittedScopeList = allowedScopes.split(' ');\n if (allowedScopes.includes(ADMIN_SCOPE)) {\n return true;\n }\n } \n\n if (application) {\n return (application.owner === userInfo?.sub) || !!application.sharedPermissions?.includes(permission);\n }\n return false;\n }\n\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { useIntl } from 'react-intl';\nimport { connect } from \"react-redux\";\nimport { matchPath, useLocation } from 'react-router-dom';\n\nimport { List, ListItem, makeStyles } from \"@material-ui/core\";\n\nimport { ApplicationReducer, ApplicationState, UserReducer } from \"../../../data/interfaces\";\nimport CustomIcons from '../../../icons/CustomIcons'\n\nimport ListItemLink from './ListItemLink'\nimport { PATH_SEPARATOR } from \"../../../data/constants\";\nimport Settings from '../../../conf/settings';\nimport {\n isCredentialMenuAccessible,\n isProductionKeyGenerationAccessible,\n isSandboxKeyGenerationAccessible\n} from '../../../data/utils';\nimport InfoTooltip from '../../../elements/CustomTooltip/InfoTooltip';\nimport { ApplicationPermission } from '../../../util/app-permissions';\nimport { AppPermission } from '../../../data/emus';\n\nconst useStyles = makeStyles((theme) => ({\n nested: {\n paddingLeft: theme.spacing(3.75),\n },\n nestedItem: {\n marginTop: -theme.spacing(3.5),\n marginBottom: -theme.spacing(3.5)\n }\n}));\n\ninterface AppMenuItemsProps {\n applicationReducer: ApplicationReducer\n userReducer: UserReducer\n}\n\ninterface AppCredentialUrlParams {\n env?: string;\n page: string;\n}\n\ninterface AppUrlParams {\n page: string;\n}\n\nfunction AppMenuItems(props: AppMenuItemsProps) {\n const { applicationReducer, userReducer } = props;\n const classes = useStyles();\n const intl = useIntl();\n const appList = applicationReducer?.applications?.list;\n const application = appList?.length > 0 ? appList[0] : undefined;\n const applicationId = application ? application.applicationId : ':applicationId';\n const location = useLocation();\n const { selectedOrg, user, userInfo } = userReducer;\n const selectedOrgHandleName = selectedOrg.handle;\n const allowedScopes = user.allowedScopes;\n \n const isTabSelected = (page: string, credentialEnv?: string): boolean => {\n const currentPath = location.pathname;\n if (credentialEnv) {\n const { params } = matchPath(currentPath, \"/:orgName/applications/:applicationId/:page/:env\") || {};\n return !!params && params.env === credentialEnv && params.page === page;\n }\n const { params } = matchPath(currentPath, \"/:orgName/applications/:applicationId/:page\") || {};\n return !!params && params.page === page;\n }\n\n const menuItemsI18n = {\n overview: intl.formatMessage({id: 'application.menuItems.overview', defaultMessage: 'Overview'}),\n credentials: intl.formatMessage({\n id: 'application.menuItems.credentials',\n defaultMessage: 'Credentials'\n }),\n productionCredentials: intl.formatMessage({\n id: 'application.menuItems.credentials.productionKeys',\n defaultMessage: 'Production'\n }),\n sandboxCredentials: intl.formatMessage({\n id: 'application.menuItems.credentials.sandboxKeys',\n defaultMessage: 'Sandbox'\n }),\n apiKey: intl.formatMessage({\n id: 'application.menuItems.productionKeys.apiKey',\n defaultMessage: 'API Key'\n }),\n subscriptions: intl.formatMessage({id: 'application.menuItems.subscriptions', defaultMessage: 'Subscriptions'})\n };\n\n return (\n
    \n }\n selected={isTabSelected('overview')}\n id='overview'\n />\n <>\n \n \n \n }\n selected={isTabSelected('credentials')}\n disabled={!isCredentialMenuAccessible(allowedScopes)}\n />\n \n \n \n {Settings.sandboxKeyGenerationEnabled && (\n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n {ApplicationPermission.hasPermission(AppPermission.READ, application, userInfo, user.allowedScopes) && \n }\n selected={isTabSelected('subscriptions')}\n id='subscriptions'\n />\n }\n
    \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n applicationReducer: state.applicationReducer,\n userReducer: state.userReducer\n }\n};\n\nexport default connect(mapStateToProps)(AppMenuItems);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport List from '@material-ui/core/List';\nimport { makeStyles } from '@material-ui/core/styles';\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport Drawer from '@material-ui/core/Drawer';\n\nimport MainMenuItems from './MainMenuItems';\nimport { useLocation } from \"react-router-dom\";\nimport AppMenuItems from \"./AppMenuItems\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n borderRight: '1px solid rgba(0, 0, 0, 0.12)'\n },\n drawerPaper: {\n ...theme.custom.apiOverviewPage.leftMenu.styles,\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n })\n },\n drawerPaperClose: {\n overflowX: 'hidden',\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n width: theme.spacing(0),\n [theme.breakpoints.up('sm')]: {\n width: theme.spacing(0),\n },\n },\n paper: {\n padding: theme.spacing(2),\n display: 'flex',\n overflow: 'auto',\n flexDirection: 'column',\n },\n listPadding: {\n paddingLeft: '40px',\n paddingRight: '40px',\n paddingTop: '0',\n paddingBottom: '0',\n },\n drawerComponent: {\n width: 'inherit',\n height: '110px',\n opacity: '0.2'\n },\n}));\n\ninterface MainMenuDrawerProps {\n menuDrawerOpen: boolean,\n organizationHandle: string,\n}\n\nfunction MainMenuDrawer(props: MainMenuDrawerProps) {\n const { menuDrawerOpen, organizationHandle } = props;\n const classes = useStyles();\n const location = useLocation();\n const currentPath = location.pathname;\n const artifact = currentPath.split('/')[2];\n\n return (\n
    \n \n \n
    \n \n {artifact === 'applications' ? :\n }\n \n \n
    \n );\n}\n\nexport default MainMenuDrawer;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from \"react\";\nimport { Link as RouterLink, useLocation } from \"react-router-dom\";\n\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport Box from \"@material-ui/core/Box\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Link from \"@material-ui/core/Link\";\nimport Typography from \"@material-ui/core/Typography\";\n\ntype FooterLinkItem = {\n text: string;\n url: string;\n};\n\nconst useStyles = makeStyles((theme) => ({\n footer: {\n top: \"auto\",\n bottom: 0,\n minWidth: \"100%\",\n padding: theme.spacing(2, 1),\n \"& .footer-link:hover\": {\n color: theme.palette.common.white,\n },\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n zIndex: 1300,\n ...theme.custom.footer.styles,\n },\n loginFooter: {\n position: \"sticky\",\n left: 0,\n bottom: 0,\n height: theme.spacing(6),\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n borderTop: \"1px solid\",\n borderTopColor: \"rgba(228,232,238,0.5)\",\n color: \"#40404B\",\n backgroundColor: \"#F7F8FB\",\n \"& .footer-link:hover\": {\n color: theme.palette.grey,\n },\n ...theme.custom.footer.loginFooter,\n },\n copyright: {\n textDecoration: \"inherit\",\n \"&:hover\": {\n color: \"#ff7300\",\n },\n transition: \"color 0.3s linear\",\n },\n wso2Logo: {\n height: theme.spacing(2),\n width: theme.spacing(5.211),\n cursor: \"pointer\",\n marginLeft: theme.spacing(0.75),\n marginTop: theme.spacing(2),\n },\n}));\n\nfunction DevPortalFooter() {\n const classes = useStyles();\n const defaultUrl = \"https://wso2.com/\";\n const location = useLocation();\n const path = location.pathname;\n const theme = useTheme();\n return (\n \n \n \n \n \n {theme.custom.footer.items.map(\n ({ text, url }: FooterLinkItem) => (\n \n \n {text}\n \n \n )\n )}\n \n \n \n \n \n {!theme.custom.footer.logo.src ? (\n \n ©  2024,{\" \"}\n WSO2 LLC.\n \n ) : (\n \n )}\n \n \n \n \n \n \n );\n}\n\nexport default DevPortalFooter;\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { ApplicationState } from '../../../data/interfaces';\nimport { connect } from 'react-redux';\nimport Notification, { NotificationProps } from '../../ChoreoSystem/Notification/Notification';\nimport { Box, IconButton } from '@material-ui/core';\nimport Close from \"@material-ui/icons/Close\"\n\ninterface CloseableBannerProps {\n contents: React.ReactNode,\n notificationProps: NotificationProps,\n open: boolean,\n close: () => void,\n}\n\nfunction CloseableBanner(props: CloseableBannerProps) {\n const { contents, notificationProps, open, close } = props;\n\n if (!open) {\n return null;\n }\n\n return (\n \n \n {contents}\n \n \n \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n }\n}\n\nexport default connect(mapStateToProps)(CloseableBanner);\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { ApiReducer, ApplicationState, UserReducer } from '../../../data/interfaces';\nimport { connect } from 'react-redux';\nimport { Typography } from '@material-ui/core';\nimport { FormattedMessage } from 'react-intl';\nimport { PATH_SEPARATOR, RESOURCE_API, RESOURCE_OVERVIEW } from '../../../data/constants';\nimport Settings from '../../../conf/settings';\nimport CloseableBanner from '../../ChoreoSystem/CloseableBanner';\nimport { Link } from 'react-router-dom';\n\ninterface ApiLatestVersionAvailableBannerProps {\n apiReducer: ApiReducer,\n userReducer: UserReducer,\n open: boolean,\n close: () => void,\n}\n\nfunction ApiLatestVersionAvailableBanner(props: ApiLatestVersionAvailableBannerProps) {\n const { apiReducer, userReducer, open, close } = props;\n const { api, loading } = apiReducer;\n // Check if api is defined and has versionInfo property\n const versionInfo = api && api.versionInfo ? api.versionInfo : null;\n const { handle: orgHandle } = userReducer.selectedOrg;\n\n const LatestVersionAvailableBannerContents = versionInfo && (\n \n \n {versionInfo?.majorRange?.latestVersion}\n \n ),\n }}\n />\n \n );\n\n return (\n \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n userReducer: state.userReducer,\n }\n}\n\nexport default connect(mapStateToProps)(ApiLatestVersionAvailableBanner);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport {\n Router,\n Route,\n Redirect,\n useParams,\n useHistory,\n} from 'react-router-dom';\nimport { useSnackbar } from 'notistack';\nimport { useLocation } from 'react-router-dom';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport CssBaseline from '@material-ui/core/CssBaseline';\n\nimport ApiOverview from './api/ApiOverview/index';\nimport ApiCredentials from './api/ApiCredentials/index';\nimport ApiTryOut from './api/ApiTryOut/index';\nimport ApiContracts from './api/ApiContracts/index';\nimport ApiDocumentation from './api/ApiDocumentation/index';\nimport ApiSdks from './api/ApiSdks/index';\nimport MainMenuDrawer from './shared/MainMenuDrawer/index';\n\nimport {\n ApplicationState,\n UserReducer,\n StorageOperations,\n NotificationReducer,\n OrganizationMetadataReducer,\n ApiReducer,\n} from '../data/interfaces';\nimport {\n fetchApiAuthenticated,\n fetchApiUnauthenticated,\n resetNotificationMsg,\n} from '../data/operations';\nimport {\n RETURN_TO_PATH,\n SELECTED_ORG_UUID,\n ORG_QUERY_PARAM,\n FIDP,\n RESOURCE_SIGN_IN,\n PATH_SEPARATOR,\n CORRELATION_ID_QUERY_PARAM,\n CORRELATION_ID,\n NOT_FOUND_ERROR,\n SELECTED_ORG_HANDLE_NAME,\n} from '../data/constants';\nimport {\n isProductionKeyGenerationAccessible,\n isSandboxKeyGenerationAccessible,\n localStoreOperation,\n sessionStoreOperation\n} from '../data/utils';\nimport DevPortalFooter from './shared/DevPortalFooter';\nimport { Theme } from '@material-ui/core';\nimport ApiLatestVersionAvailableBanner from './api/ApiLatestVersionAvailableBanner';\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n display: 'flex',\n height: '100vh',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%'\n },\n appBarSpacer: {\n minHeight: theme.spacing(8)\n },\n}));\n\nexport interface ApiProps {\n menuDrawerOpen: boolean;\n userReducer: UserReducer;\n apiReducer: ApiReducer;\n notificationReducer: NotificationReducer;\n organizationMetadataReducer: OrganizationMetadataReducer;\n fetchApiAuthenticated: (\n apiId: string,\n organizationId: string\n ) => Promise;\n fetchApiUnauthenticated: (\n apiId: string,\n organizationId: string\n ) => Promise;\n resetNotificationMsg: () => void;\n}\n\nfunction ApiPage({\n userReducer,\n notificationReducer,\n organizationMetadataReducer,\n apiReducer,\n menuDrawerOpen,\n fetchApiAuthenticated,\n fetchApiUnauthenticated,\n resetNotificationMsg,\n}: ApiProps) {\n const classes = useStyles();\n const history = useHistory();\n const { orgName, apiId } = useParams<{ orgName: string; apiId: string }>();\n const { enqueueSnackbar } = useSnackbar();\n const {\n apimTokenObtained,\n orgs: userOrganizations,\n selectedOrg,\n user,\n signedIn\n } = userReducer;\n const allowedScopes = user.allowedScopes;\n const { type: notificationType, message: notification } = notificationReducer;\n const location = useLocation();\n const { error: apiFetchError } = apiReducer;\n const [latestVersionInfoBannerOpen, setLatestVersionInfoBannerOpen] = useState(true);\n\n const checkUserAccessToCurrentPathOrg = (): boolean => {\n const selectedOrganization = userOrganizations.find(\n (userOrg) => userOrg.handle === orgName\n );\n return !!selectedOrganization;\n };\n\n const hasUserAccessToCurrentPathOrg = checkUserAccessToCurrentPathOrg();\n\n useEffect(() => {\n if (notification !== '') {\n enqueueSnackbar(notification, { variant: notificationType });\n resetNotificationMsg();\n }\n }, [notificationReducer]);\n\n useEffect(() => {\n if (apiFetchError !== '') {\n history.push(NOT_FOUND_ERROR);\n }\n }, [apiFetchError]);\n\n useEffect(() => {\n if (signedIn && orgName && !hasUserAccessToCurrentPathOrg) {\n history.push(\"/forbidden\");\n }\n }, [selectedOrg]);\n\n useEffect(() => {\n if (!apimTokenObtained) {\n const queryParam = new URLSearchParams(location.search);\n const orgUuid = queryParam.get(ORG_QUERY_PARAM);\n if (organizationMetadataReducer.organizationMetadata.uuid != \"\") {\n fetchApiUnauthenticated(\n apiId,\n organizationMetadataReducer.organizationMetadata.uuid\n );\n }\n sessionStoreOperation(\n StorageOperations.ADD,\n RETURN_TO_PATH,\n window.location.pathname\n );\n\n const correlationId = queryParam.get(CORRELATION_ID_QUERY_PARAM);\n if (orgUuid) {\n localStoreOperation(StorageOperations.ADD, SELECTED_ORG_UUID, orgUuid);\n }\n if (correlationId) {\n localStoreOperation(StorageOperations.ADD, CORRELATION_ID, correlationId);\n }\n // Checking whether request is from choreo portal and setting fidp value\n if (queryParam.get('fidp')) {\n localStoreOperation(\n StorageOperations.ADD,\n FIDP,\n queryParam.get('fidp') ?? ''\n );\n history.push(RESOURCE_SIGN_IN);\n } else if (localStoreOperation(StorageOperations.GET, FIDP) && orgName == localStoreOperation(StorageOperations.GET, SELECTED_ORG_HANDLE_NAME)) {\n // Redirecting user to sigin if fidp value already exists in local store and orghandle in url and local store are equivalent\n history.push(RESOURCE_SIGN_IN);\n }\n } else if (\n apimTokenObtained &&\n selectedOrg &&\n hasUserAccessToCurrentPathOrg\n ) {\n if (apiId) {\n fetchApiAuthenticated(apiId, selectedOrg.uuid);\n } else {\n history.push(NOT_FOUND_ERROR)\n }\n }\n }, [apiId, orgName]);\n\n const getCredentialGenerationPath = () => {\n const pathList = [];\n if (isSandboxKeyGenerationAccessible(allowedScopes)) {\n pathList.push(\n PATH_SEPARATOR + orgName + '/apis/' + apiId + '/credentials/sandbox'\n );\n }\n if (isProductionKeyGenerationAccessible(allowedScopes)) {\n pathList.push(\n PATH_SEPARATOR + orgName + '/apis/' + apiId + '/credentials/production'\n );\n }\n return pathList;\n }\n\n return (\n
    \n \n \n \n
    \n
    \n setLatestVersionInfoBannerOpen(false)}\n />\n \n \n \n \n \n \n {apimTokenObtained && (\n \n \n \n )}\n {!apimTokenObtained &&\n \n \n \n }\n \n \n \n {apimTokenObtained && (\n \n \n \n )}\n \n \n \n {apimTokenObtained && (\n \n \n \n )}\n \n
    \n \n
    \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n userReducer: state.userReducer,\n apiReducer: state.apiReducer,\n notificationReducer: state.notificationReducer,\n organizationMetadataReducer: state.organizationMetadataReducer,\n };\n};\n\nconst mapDispatchToProps = {\n fetchApiAuthenticated: fetchApiAuthenticated,\n fetchApiUnauthenticated: fetchApiUnauthenticated,\n resetNotificationMsg: resetNotificationMsg,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ApiPage);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from \"@material-ui/core/styles\";\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n statusContainer: {\n height: theme.spacing(4),\n display: \"flex\",\n alignItems: \"center\",\n width: 'fit-content',\n padding: theme.spacing(1.25),\n ...theme.custom.elements.status.containerStyles\n },\n statusLabel: {\n margin: '0 auto',\n },\n dot: {\n height: 8,\n width: 8,\n borderRadius: \"50%\",\n display: \"inline-block\",\n marginRight: theme.spacing(1.25)\n },\n statusText: {\n ...theme.custom.elements.status.textStyle\n },\n activeDot: {\n ...theme.custom.elements.status.activeDotStyle\n },\n stoppedDot: {\n ...theme.custom.elements.status.stoppedDotStyle\n },\n pendingDot: {\n ...theme.custom.elements.status.pendingDotStyle\n },\n draftedDot: {\n ...theme.custom.elements.status.draftedDotStyle\n }\n })\n);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport * as React from \"react\";\n\nimport Typography from '@material-ui/core/Typography';\nimport classNames from \"classnames\";\n\nimport { useStyles } from \"./style\";\nimport { useIntl } from \"react-intl\";\n\ninterface Props {\n label: string,\n alignCenter?: boolean,\n}\n\nfunction InactiveStatus({ label, alignCenter }: Props) {\n const classes = useStyles();\n return (\n \n \n \n {label}\n \n
    \n );\n}\n\nfunction ActiveStatus(props: Props) {\n const { label, alignCenter } = props;\n const classes = useStyles();\n return (\n
    \n \n \n {label}\n \n
    \n );\n}\n\nfunction UnknownStatus(props: Props) {\n const { label } = props;\n const classes = useStyles();\n return (\n
    \n \n \n {label}\n \n
    \n );\n}\n\nfunction PendingStatus({ label }: Props) {\n const classes = useStyles();\n return (\n
    \n \n \n {label}\n \n
    \n );\n}\n\nexport function Status({\n type,\n alignCenter,\n}: {\n type: string | undefined;\n alignCenter?: boolean;\n}) {\n const statusType = type?.replace(/_/g, \" \");\n\n const intl = useIntl();\n const statusMessages: { [key: string]: string } = {\n approved: intl.formatMessage({ id: 'status.approved', defaultMessage: 'APPROVED' }),\n unblocked: intl.formatMessage({ id: 'status.active', defaultMessage: 'Active' }),\n blocked: intl.formatMessage({ id: 'status.blocked', defaultMessage: 'Blocked' }),\n rejected: intl.formatMessage({ id: 'status.rejected', defaultMessage: 'Rejected' }),\n \"prod only blocked\": intl.formatMessage({ id: 'status.prodOnlyBlocked', defaultMessage: 'Prod Only Blocked' }),\n \"tier update pending\": intl.formatMessage({ id: 'status.pendingUpdate', defaultMessage: 'Pending Update' }),\n \"on hold\": intl.formatMessage({ id: 'status.pendingCreation', defaultMessage: 'Pending Creation' }),\n };\n\n const defaultLabel = \"Unknown Status\";\n\n const label = statusType\n ? statusMessages[statusType] || defaultLabel\n : defaultLabel;\n\n return (\n \n {(statusType === \"approved\" || statusType === \"unblocked\") && (\n \n )}\n {(statusType === \"blocked\" ||\n statusType === \"rejected\" ||\n statusType === \"prod only blocked\") && (\n \n )}\n {statusType === \"tier update pending\" && }\n {statusType === \"on hold\" && }\n \n );\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n asterisk: {\n color: 'red',\n },\n formContainer: {\n display: \"flex\",\n width: \"90%\",\n flexDirection: \"column\",\n alignSelf: \"center\"\n },\n loaderContainer: {\n display: \"flex\",\n minHeight: theme.spacing(20),\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n textLabel: {\n marginBottom: theme.spacing(1.5),\n fontFamily: 'GilmerMedium',\n fontSize: '13px',\n color: '#1D2028',\n lineHeight: '24px'\n },\n textLabelWithAsterisk: {\n marginBottom: theme.spacing(1.5),\n marginTop: theme.spacing(-0.5),\n fontFamily: 'GilmerMedium',\n fontSize: '13px',\n color: '#1D2028',\n lineHeight: '24px'\n },\n textInput: {\n width: \"100%\",\n '& .MuiInputBase-input': {\n fontSize: 14\n },\n '& .MuiOutlinedInput-root': {\n height: theme.spacing(6)\n },\n '& .MuiFormHelperText-contained': {\n marginRight: 0,\n minHeight: theme.spacing(3.75)\n }\n },\n multiLineInput: {\n width: \"100%\",\n '& .MuiInputBase-input': {\n fontSize: 14\n },\n '& .MuiFormHelperText-root.Mui-error': {\n background: \"url('/images/warning-red.svg') no-repeat left top\",\n margin: 0,\n paddingLeft: theme.spacing(3),\n marginTop: theme.spacing(1),\n color: \"#EA4C4D\"\n }\n },\n selectBox: {\n height: theme.spacing(6),\n width: \"100%\"\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[200]\n },\n createApiDialogContent: {\n paddingTop: `${theme.spacing(2)}px !important`\n },\n primaryTitle: {\n color: '#222228',\n textAlign: \"center\",\n fontFamily: 'GilmerBold',\n fontSize: '29px'\n },\n customWidth: {\n borderRadius: '12px',\n maxWidth: theme.spacing(87.5),\n paddingTop: theme.spacing(5),\n paddingBottom: theme.spacing(4)\n },\n dialogBtn: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n fontSize: 13,\n fontFamily: 'GilmerMedium'\n },\n cancelBtn: {\n marginRight: theme.spacing(1),\n height: theme.spacing(5),\n fontSize: 13,\n fontFamily: 'GilmerMedium'\n },\n dropdownStyle: {\n backgroundColor: \"#fff\",\n boxSizing: \"border-box\",\n width: \"auto\",\n border: \"1px solid #DEE0E7\",\n borderRadius: \"5px\",\n boxShadow: \"0 5px 10px -3px rgba(50,50,77,0.1)\",\n color: \"#222228\",\n marginTop: '0.25rem'\n },\n warningIcon: {\n height: theme.spacing(2.125),\n width: theme.spacing(2.125),\n marginRight: theme.spacing(1),\n marginLeft: -theme.spacing(1)\n },\n helperText: {\n display: \"flex\",\n alignItems: \"center\",\n fontSize: 10.5\n },\n textField: {\n width: theme.spacing(71.5),\n borderRadius: theme.spacing(0.625),\n backgroundColor: theme.palette.common.white,\n boxShadow: 'inset 0 0 0 1px #dee0e7, 0 1px 2px -1px rgba(0,0,0,0.08)',\n border: 1,\n '& .MuiOutlinedInput-input': {\n color: theme.palette.grey[500],\n paddingLeft: theme.spacing(1),\n },\n '& .MuiOutlinedInput-root': {\n height: 'auto',\n },\n },\n tag: {\n '& .MuiAutocomplete-tag': {\n backgroundColor: theme.palette.secondary.light,\n height: theme.spacing(3),\n marginBottom: theme.spacing(1),\n borderRadius: theme.spacing(0.625),\n position: \"relative\",\n zIndex: 0,\n border: \"1px solid #979797\",\n \"& .MuiChip-label\": {\n color: theme.palette.secondary.dark,\n },\n \"& .MuiChip-deleteIcon\": {\n color: theme.palette.secondary.main,\n },\n },\n }\n })\n);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { ChangeEvent, useState } from \"react\";\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { connect } from \"react-redux\";\nimport { useHistory } from 'react-router-dom';\n\nimport {\n Box, Dialog, DialogContent, DialogTitle, IconButton, FormControlLabel, TextField, Typography, Checkbox,\n} from \"@material-ui/core\";\nimport CloseIcon from '@material-ui/icons/Close';\nimport { createBrowserHistory } from 'history';\n\nimport Settings from \"../../../conf/settings\";\nimport {\n Application, ApplicationReducer, ApplicationState, UserReducer\n} from \"../../../data/interfaces\";\nimport { createApplication, updateApplication } from \"../../../data/operations\";\nimport GreyButton from '../../../elements/GreyButton';\nimport { PreLoaderLogo } from \"../../../elements/PreLoaderLogo\";\nimport PrimaryButton from '../../../elements/PrimaryButton';\nimport CustomIcons from \"../../../icons/CustomIcons\";\nimport { useStyles } from \"./style\";\nimport {\n MAX_APPLICATION_DESCRIPTION_LENGTH, MAX_APPLICATION_NAME_LENGTH, PATH_SEPARATOR, RESOURCE_APPLICATIONS,\n RESOURCE_OVERVIEW\n} from \"../../../data/constants\";\nimport {trackApplicationCreation} from \"../../../util/app-insights\";\nimport { isInvalidValidScopeName } from \"../../../util/token-generation\";\n\ninterface CreateAppProps {\n open: boolean,\n isEdit: boolean,\n application?: Application;\n applicationReducer: ApplicationReducer,\n userReducer: UserReducer,\n onClose: () => void,\n dispatchCreateApplication: (application: Application) => Promise,\n dispatchUpdateApplication: (application: Application) => void,\n}\n\nfunction CreateApp(props: CreateAppProps) {\n const {\n open, onClose, isEdit, application, applicationReducer, userReducer,\n dispatchCreateApplication, dispatchUpdateApplication\n } = props;\n const classes = useStyles();\n const history = useHistory();\n const intl = useIntl();\n const isInProgress = applicationReducer?.isLoading;\n const appList = applicationReducer?.applications?.list;\n const { selectedOrg } = userReducer;\n const selectedOrgHandleName = selectedOrg.handle;\n\n const browserHistory = createBrowserHistory();\n const [applicationName, setApplicationName] = useState(isEdit ? application?.name : '');\n const defaultThrottlingPolicy = 'Unlimited';\n const [description, setDescription] = useState(isEdit ? application?.description : '');\n const [applicationNameError, setApplicationNameError] = useState('');\n const [descriptionError, setDescriptionError] = useState('');\n const subscriptionScopes = application?.subscriptionScopes ?\n application?.subscriptionScopes.map((scope)=> {return scope.key}) : [];\n const dpSystemApp = application?.attributes?.isDpSystemApp === \"true\" ? true: false;\n const applicationScopes = application?.attributes?.scopes ? \n (application?.attributes?.scopes as string).split(\";\") : [];\n const [scopes, setScopes] = useState(applicationScopes);\n const [isDpSystemApp, setIsDpSystemApp] = useState(dpSystemApp);\n const errorText = scopes.some(isInvalidValidScopeName) ? intl.formatMessage({\n id: 'components.app.CreateApp.create.permission.errorText',\n defaultMessage: 'Invalid Permission(Scope) Name',\n }) : '';\n const emptyApplicationName = intl.formatMessage({\n id: 'application.create.name.empty.helperText',\n defaultMessage: 'Name cannot be empty'\n });\n\n const invalidApplicationName = intl.formatMessage({\n id: 'application.create.name.invalid.helperText',\n defaultMessage: 'Name contains invalid characters'\n });\n\n const appNameLimit = intl.formatMessage({\n id: 'application.create.name.limit.helperText',\n defaultMessage: 'Application name must be less than {MAX_APPLICATION_NAME_LENGTH} characters.',\n }, { MAX_APPLICATION_NAME_LENGTH });\n\n const appNameExists = intl.formatMessage({\n id: 'application.create.name.exists.helperText',\n defaultMessage: 'Application name already exists'\n });\n\n const appDescriptionLimit = intl.formatMessage({\n id: 'application.create.description.limit.helperText',\n defaultMessage: 'Application description must be less than {MAX_APPLICATION_DESCRIPTION_LENGTH} characters.'\n }, { MAX_APPLICATION_DESCRIPTION_LENGTH });\n\n const cancelButtonLabel = intl.formatMessage({\n id: 'application.create.cancelButton.label',\n defaultMessage: 'Cancel'\n });\n\n const createLabel = intl.formatMessage({ id: 'application.create.createButton.label', defaultMessage: 'Create' });\n\n const updateLabel = intl.formatMessage({ id: 'application.create.updateButton.label', defaultMessage: 'Update' });\n\n const editApplicationLabel = intl.formatMessage({\n id: 'application.create.editMode.title',\n defaultMessage: 'Edit Application'\n });\n\n const updatingApplication = intl.formatMessage({\n id: 'application.update.progress.label',\n defaultMessage: 'Updating Application: '\n });\n\n const createApplicationLabel = intl.formatMessage({\n id: 'application.create.createMode.title',\n defaultMessage: 'Create an Application'\n });\n\n const creatingApplication = intl.formatMessage({\n id: 'application.create.progress.label',\n defaultMessage: 'Creating Application: '\n });\n\n const enablePDPSystemAppLabel = intl.formatMessage({\n id: \"application.update.enablePDPSystemApp.label\",\n defaultMessage: \"Dataplane System Application\",\n });\n\n const validateApplicationName = (applicationName: string) => {\n if (applicationName === \"\") {\n return emptyApplicationName;\n } else if (applicationName.length > MAX_APPLICATION_NAME_LENGTH) {\n return appNameLimit;\n } else if (/([~!@$#;%^&*+=|\\\\<>\"'/,])/.test(applicationName)) {\n return invalidApplicationName;\n } else if (appList?.find((app: Application) => app.name === applicationName)) {\n return appNameExists;\n } else {\n return \"\";\n }\n };\n\n const validateDescription = (description: string) => {\n if (description.length > MAX_APPLICATION_DESCRIPTION_LENGTH) {\n return appDescriptionLimit;\n } else {\n return \"\";\n }\n };\n\n const createApplication = async () => {\n const newApplication = {\n 'name': applicationName,\n 'throttlingPolicy': defaultThrottlingPolicy,\n 'description': description,\n 'tokenType': Settings.defaultAppTokenType,\n };\n const applicationId = await dispatchCreateApplication(newApplication as Application);\n trackApplicationCreation(\n `${applicationId}`,\n `${defaultThrottlingPolicy}`,\n `${description}`\n );\n if (applicationId) {\n history.push(PATH_SEPARATOR + selectedOrgHandleName + RESOURCE_APPLICATIONS + PATH_SEPARATOR\n + applicationId + RESOURCE_OVERVIEW);\n }\n onClose();\n };\n\n const updateApplication = async () => {\n if (application) {\n application.name = applicationName as string;\n application.description = description;\n application.throttlingPolicy = defaultThrottlingPolicy as string;\n application.tokenType = Settings.defaultAppTokenType;\n application.attributes = {\n scopes: scopes.join(\";\"),\n isDpSystemApp: isDpSystemApp ? \"true\" : \"false\",\n };\n await dispatchUpdateApplication(application);\n browserHistory.push('applications');\n onClose();\n }\n };\n\n const onApplicationChange = (event: ChangeEvent) => {\n const applicationName = event.target.value;\n setApplicationNameError(validateApplicationName(applicationName));\n setApplicationName(applicationName);\n };\n\n const onDescriptionChange = (event: ChangeEvent) => {\n const description = event.target.value;\n setDescriptionError(validateDescription(description));\n setDescription(description);\n };\n\n const onCancelClick = () => {\n setApplicationNameError('');\n setDescriptionError('');\n setApplicationName('');\n setDescription('');\n setScopes([]);\n onClose();\n };\n\n const CreateApplicationFormContent = () => {\n if (isInProgress) {\n return (\n
    \n \n
    \n );\n } else {\n return (\n \n
    \n \n \n \n \n * \n \n \n
    \n

    {applicationNameError}

    \n
    \n )}\n data-testid=\"app-name\"\n error={applicationNameError !== \"\"}\n />\n \n \n \n \n \n \n \n
    \n

    {descriptionError}

    \n
    \n )}\n error={descriptionError !== \"\"}\n data-testid=\"application-description\"\n />\n \n \n \n \n \n \n \n );\n }\n };\n\n return (\n \n {\n if (reason !== 'backdropClick') {\n onClose()\n }\n }}\n aria-labelledby=\"delete-app-dialog-title\"\n fullWidth={!isInProgress}\n classes={{ paper: classes.customWidth }}\n >\n \n \n {!isInProgress ?\n (isEdit ? editApplicationLabel : createApplicationLabel) :\n (isEdit ? updatingApplication + application?.name : creatingApplication + applicationName)\n }\n \n {\n !isInProgress && onClose ? (\n \n \n \n ) : null\n }\n \n \n {CreateApplicationFormContent()}\n \n \n \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n applicationReducer: state.applicationReducer,\n userReducer: state.userReducer\n }\n};\n\nconst mapDispatchToProps = {\n dispatchCreateApplication: createApplication,\n dispatchUpdateApplication: updateApplication,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CreateApp);\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n primaryTitle: {\n color: '#222228',\n textAlign: \"center\",\n fontFamily: 'GilmerBold',\n fontSize: '29px'\n },\n customWidth: {\n borderRadius: theme.spacing(1.5),\n maxWidth: theme.spacing(87.5),\n paddingTop: theme.spacing(5),\n paddingBottom: theme.spacing(4)\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[200]\n },\n dialogContent: {\n paddingTop: `${theme.spacing(2)}px`\n },\n textInput: {\n width: \"100%\",\n '& .MuiInputBase-input': {\n fontSize: 14\n },\n '& .MuiOutlinedInput-root': {\n height: theme.spacing(6)\n },\n '& .MuiFormHelperText-contained': {\n marginRight: 0,\n minHeight: theme.spacing(3.75)\n }\n },\n textLabelWithAsterisk: {\n marginBottom: theme.spacing(1.5),\n marginTop: theme.spacing(-0.5),\n fontFamily: 'GilmerMedium',\n fontSize: '13px',\n color: '#1D2028',\n lineHeight: '24px'\n },\n asterisk: {\n color: 'red',\n },\n cancelBtn: {\n marginRight: theme.spacing(1),\n height: theme.spacing(5),\n fontSize: 13,\n fontFamily: 'GilmerMedium'\n },\n dialogBtn: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n fontSize: 13,\n fontFamily: 'GilmerMedium',\n '&:focus': {\n backgroundColor: 'none',\n }\n },\n messageBox: {\n '&.infoContainer': {\n width: '100%',\n }\n },\n shareInformationMessage: {\n fontSize: 14,\n },\n invalidEMail: {\n color: 'red'\n },\n emailChip: {\n ...theme.custom.applicationViewPage.tabs.overview.emailChipStyle,\n borderRadius: theme.spacing(0.7),\n },\n infoBannerText: {\n fontFamily: 'GilmerMedium',\n },\n })\n);\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { Chip, Dialog, DialogTitle, DialogContent, Typography, IconButton, Box, TextField } from \"@material-ui/core\";\nimport CloseIcon from '@material-ui/icons/Close';\nimport React, { ChangeEvent, useEffect } from \"react\";\nimport { FormattedMessage, useIntl } from \"react-intl\";\nimport { Application, ApplicationReducer, ApplicationShare, ApplicationState, UserPermission } from \"../../../data/interfaces\";\nimport { useStyles } from \"./style\";\nimport GreyButton from '../../../elements/GreyButton';\nimport PrimaryButton from '../../../elements/PrimaryButton';\nimport Joi from \"joi\";\nimport { connect } from \"react-redux\";\nimport { shareApplication } from \"../../../data/operations\";\nimport InfoBanner from \"../../shared/InfoBanner\";\nimport { createBrowserHistory } from 'history';\n\ninterface ShareAppProps {\n open: boolean;\n onClose: () => void;\n application?: Application;\n applicationReducer: ApplicationReducer,\n dispatchShareApplication: (application: Application, applicationShareData: ApplicationShare) => Promise,\n}\n\nfunction ShareApplication(props: ShareAppProps) {\n\n const browserHistory = createBrowserHistory();\n const classes = useStyles();\n const intl = useIntl();\n const {\n open, onClose, dispatchShareApplication,\n application, applicationReducer\n } = props;\n const [userEmail, setUserEmail] = React.useState(\"\");\n const [sharedUserEmails, setSharedUserEmails] = React.useState([]);\n const [invalidEmail, setEmailInvalid] = React.useState(false);\n const [shareInProgress, setShareInprogress] = React.useState(false);\n const [removeInProgress, setRemoveInprogress] = React.useState(false);\n\n const onUserEmailInputChange = (event: ChangeEvent) => {\n setEmailInvalid(false);\n setUserEmail(event.target.value);\n };\n\n useEffect(() => { \n if (application && application.sharedWith) {\n setSharedUserEmails(application.sharedWith.map((userPermission) => userPermission.userEmail));\n }\n }, [application]);\n\n const isValidEmail = (email: string): boolean => {\n const emailValidation = Joi.string().email({ tlds: { allow: false }}).validate(email);\n if (emailValidation.error) {\n setEmailInvalid(true);\n return false;\n } else {\n setEmailInvalid(false);\n return true;\n }\n }\n\n const removeUserEmailFromList = (email: string) => {\n sharedUserEmails.splice(sharedUserEmails.indexOf(email), 1);\n setSharedUserEmails([...sharedUserEmails]);\n setRemoveInprogress(true);\n };\n\n const shareApplication = async() => {\n const userPermissions: UserPermission[] = [];\n sharedUserEmails.forEach((email) => {\n userPermissions.push({\n userEmail: email\n });\n });\n if (application) {\n setShareInprogress(true);\n await dispatchShareApplication(application, {\n applicationId: application.applicationId!, \n userPermissions: userPermissions\n }).then((res) => {\n if (res !== null) {\n browserHistory.push('applications');\n onClose();\n }\n }).finally(() => {\n setShareInprogress(false);\n });\n }\n };\n\n const shareButtonLabel = () => {\n return intl.formatMessage({\n id: 'application.share.confirm',\n defaultMessage: 'Confirm'\n });\n }\n \n const cancelButtonLabel = () => {\n return intl.formatMessage({\n id: 'application.share.share',\n defaultMessage: 'Cancel'\n });\n }\n\n const emailInputPlaceholder = intl.formatMessage({\n id: 'application.share.email.placeholder',\n defaultMessage: 'Type an email address and press Enter'\n });\n\n const InvalidEmailError = () => {\n return(\n \n \n \n )\n }\n\n const applicationShareFormContent = () => {\n return (\n \n \n \n \n * \n \n {\n if (event.key === 'Enter') {\n if(isValidEmail(userEmail)){\n setSharedUserEmails([...sharedUserEmails, userEmail]);\n setUserEmail(\"\");\n }\n }\n }}\n value={userEmail}\n className={classes.textInput}\n placeholder={emailInputPlaceholder}\n variant=\"outlined\"\n data-testid=\"app-share-user-email\"\n />\n { invalidEmail && }\n \n \n \n {\n sharedUserEmails.map((email, index) => {\n return (\n {\n removeUserEmailFromList(email);\n }}\n className={classes.emailChip}\n data-testid=\"app-share-email-address\"\n />\n )\n })\n }\n \n \n \n \n {application?.name}}} />\n \n \n }\n testId='app-share-info-banner'\n />\n \n \n onClose()}\n className={classes.cancelBtn}\n buttonLabel={cancelButtonLabel()}\n />\n shareApplication()}\n buttonLabel={shareButtonLabel()}\n className={classes.dialogBtn}\n id=\"share-button\"\n /> \n \n \n );\n };\n \n return (\n \n {\n if (reason !== 'backdropClick') {\n onClose()\n }\n }}\n fullWidth={true}\n classes={{ paper: classes.customWidth }}\n >\n \n \n \n \n \n \n \n \n \n {applicationShareFormContent()}\n \n \n \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n applicationReducer: state.applicationReducer\n }\n};\n\nconst mapDispatchToProps = {\n dispatchShareApplication: shareApplication\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ShareApplication);\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createSvgIcon } from '@material-ui/core';\nimport React from 'react';\n\nexport default createSvgIcon(\n \n \n \n \n \n \n \n \n ,\n 'Share'\n);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { connect } from 'react-redux';\nimport { useHistory } from \"react-router-dom\";\n\nimport { Avatar, Box, Divider, Grid, makeStyles, Paper, Typography } from \"@material-ui/core\";\nimport classNames from \"classnames\";\n\nimport {\n ApplicationReducer,\n ApplicationState,\n SubscriptionsReducer,\n UserReducer\n} from '../../data/interfaces';\nimport { deleteApplication, fetchAppKeys, fetchSubscriptions } from '../../data/operations';\nimport { renderSkeleton } from '../../data/utils';\nimport OutlineButton from \"../../elements/OutlineButton\";\nimport CreateApp from \"../app/CreateApp\";\nimport { ConfirmationDialog } from \"./ConfirmationDialog/ConfirmationDialog\";\nimport { PATH_SEPARATOR } from \"../../data/constants\";\nimport {\n trackApplicationInfoBarDelete,\n trackApplicationInfoBarEdit,\n} from \"../../util/app-insights\";\nimport ShareApplication from '../app/ShareApplication';\nimport ShareIcon from '../../icons/Share';\nimport { ApplicationPermission } from '../../util/app-permissions';\nimport { AppPermission } from '../../data/emus';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n margin: '10px 0 10px 40px',\n width: 'auto'\n },\n appIconImage: {\n margin: 'auto',\n marginLeft: 0,\n display: 'flex',\n maxWidth: '100%',\n maxHeight: '100%',\n width: 49,\n height: 49,\n minWidth: 49,\n minHeight: 49,\n ...theme.custom.elements.appInfoBar.appIconImage\n },\n appIconImageBg: {\n ...theme.custom.elements.appInfoBar.appIconImageBackgroundColor\n },\n gridText: {\n textAlign: 'left',\n maxWidth: 'fit-content',\n marginLeft: -theme.spacing(0.8)\n },\n appName: {\n height: '24px',\n width: 'auto',\n ...theme.custom.elements.appInfoBar.appNameStyles\n },\n appOwnerProvider: {\n height: '24px',\n width: 'auto',\n ...theme.custom.elements.appInfoBar.appOwnerStyles\n },\n gridStyles: {\n maxWidth: 'fit-content'\n },\n outlineBtn: {\n padding: theme.spacing(0, 1.7, 0, 2.8),\n marginLeft: theme.spacing(1),\n borderRadius: theme.spacing(2),\n backgroundSize: theme.spacing(2.5),\n },\n editBtn: {\n ...theme.custom.elements.appInfoBar.editButtonStyles,\n ...theme.custom.elements.appInfoBar.outlineButtonStyles\n },\n shareBtn: {\n '& .MuiButton-startIcon': {\n margin: `${theme.spacing(0.4)}px 0 0 -${theme.spacing(1)}px`\n },\n ...theme.custom.elements.appInfoBar.outlineButtonStyles\n },\n permissionBtn: {\n backgroundSize: theme.spacing(2),\n ...theme.custom.elements.appInfoBar.permissionButtonStyles\n },\n hoverBtn: {\n height: theme.spacing(4),\n paddingLeft: theme.spacing(2.8),\n paddingRight: theme.spacing(1.7),\n minWidth: 0,\n borderRadius: theme.spacing(2),\n marginLeft: theme.spacing(1),\n ...theme.custom.elements.appInfoBar.buttonHoverStyles\n },\n deleteBtn: {\n height: theme.spacing(4),\n width: theme.spacing(4),\n marginLeft: theme.spacing(1),\n backgroundSize: theme.spacing(2),\n ...theme.custom.elements.appInfoBar.deleteButtonStyles\n },\n divider: {\n marginLeft: theme.spacing(7),\n marginRight: theme.spacing(7),\n marginTop: -theme.spacing(0.8),\n ...theme.custom.elements.appInfoBar.divider\n }\n}));\n\ninterface AppInfoBarProps {\n userReducer: UserReducer,\n applicationReducer: ApplicationReducer,\n subscriptionReducer: SubscriptionsReducer,\n dispatchFetchSubscriptionsList: (applicationId: string, organizationId: string, type: string) => void,\n dispatchDeleteApplication: (applicationId: string) => void\n}\n\nfunction AppInfoBar(props: AppInfoBarProps) {\n const classes = useStyles();\n const intl = useIntl();\n const history = useHistory();\n const {\n userReducer, applicationReducer, dispatchDeleteApplication\n } = props;\n const { selectedOrg, userInfo, user } = userReducer;\n const selectedOrgHandleName = selectedOrg.handle;\n const isApplicationLoading = applicationReducer.isLoading;\n const appList = applicationReducer?.applications?.list;\n const application = appList?.length > 0 ? appList[0] : undefined;\n const applicationId = application?.applicationId;\n const applicationName = application?.name;\n const [applicationEditFormOpen, setApplicationEditFormOpen] = useState(false);\n const [applicationShareFormOpen, setApplicationShareFormOpen] = useState(false);\n const [applicationDeleteFormOpen, setApplicationDeleteFormOpen] = useState(false);\n const [appDeletionError, setAppDeletionError] = React.useState(\"\");\n\n const onDeleteButtonClick = () => {\n setApplicationDeleteFormOpen(true);\n trackApplicationInfoBarDelete(`${applicationId}`);\n };\n\n const onDeleteDialogCloseClick = () => {\n setApplicationDeleteFormOpen(false);\n };\n\n const onDeleteDialogOkClick = async () => {\n try {\n await dispatchDeleteApplication(applicationId as string);\n history.push(PATH_SEPARATOR + selectedOrgHandleName + '/applications');\n } catch (err) {\n setAppDeletionError(err.message + \"\\n\" + err!.response!.data);\n }\n };\n\n const onEditButtonClick = () => {\n setApplicationEditFormOpen(true);\n trackApplicationInfoBarEdit(`${applicationId}`);\n }; \n \n const onShareButtonClick = () => {\n setApplicationShareFormOpen(true);\n trackApplicationInfoBarEdit(`${applicationId}`);\n };\n\n const onDialogCloseClick = () => {\n setApplicationEditFormOpen(false);\n setApplicationShareFormOpen(false);\n };\n\n const noOwnerLabel = intl.formatMessage({\n id: 'application.infoBar.noOwnerLabel',\n defaultMessage: 'No owner available'\n });\n\n const editButtonLabel = intl.formatMessage({\n id: 'application.infoBar.editButton.label',\n defaultMessage: 'Edit'\n });\n \n const shareButtonLabel = intl.formatMessage({\n id: 'application.infoBar.shareButton.label',\n defaultMessage: 'Share'\n });\n\n const ownedByLabel = intl.formatMessage({\n id: 'application.infoBar.ownedByLabel',\n defaultMessage: 'by '\n });\n\n const confirmationDialogI18n = {\n title: intl.formatMessage({\n id: 'application.infoBar.deleteConfirmationDialog.title',\n defaultMessage: 'Delete Application'\n }),\n content: intl.formatMessage({\n id: 'application.infoBar.deleteConfirmationDialog.content',\n defaultMessage: 'Are you sure you want to delete application - ' + applicationName + ' ?'\n }),\n okayButtonLabel: intl.formatMessage({\n id: 'application.infoBar.deleteConfirmationDialog.okButtonLabel',\n defaultMessage: 'Delete'\n }),\n cancelButtonLabel: intl.formatMessage({\n id: 'application.infoBar.deleteConfirmationDialog.cancelButtonLabel',\n defaultMessage: 'Cancel'\n }),\n loadingText: intl.formatMessage({\n id: 'application.infoBar.deleteConfirmationDialog.loadingText',\n defaultMessage: 'Deleting...'\n })\n };\n\n return (\n
    \n \n {\n isApplicationLoading ?\n \n {renderSkeleton(\"rect\", 49, 49)}\n \n :\n \n \n {applicationName?.substr(0, 1).toUpperCase()}\n \n \n }\n \n \n {\n isApplicationLoading ?\n \n {renderSkeleton(\"rect\", 100, 20)}\n \n :\n \n {applicationName}\n \n }\n {\n isApplicationLoading ?\n \n {renderSkeleton(\"rect\", 100, 20)}\n \n :\n \n {\n application?.ownerInfo ? `${ownedByLabel} ${ \n application?.ownerInfo?.displayName || \n application?.ownerInfo?.email || \n application?.ownerInfo?.id\n }` : \n application?.owner ? `${ownedByLabel} ${application?.owner}` : \n {noOwnerLabel} }\n \n }\n \n \n \n \n { ApplicationPermission.hasPermission(AppPermission.SHARE, application, userInfo, user.allowedScopes) && \n }\n testId=\"appliation-share-btn\"\n />\n }\n { ApplicationPermission.hasPermission(AppPermission.WRITE, application, userInfo, user.allowedScopes) && \n \n }\n { ApplicationPermission.hasPermission(AppPermission.WRITE, application, userInfo, user.allowedScopes) && \n \n }\n \n \n \n {applicationEditFormOpen &&\n \n }\n {applicationShareFormOpen && \n \n }\n {applicationDeleteFormOpen &&\n \n }\n \n
    \n );\n}\n\nconst mapDispatchToProps = {\n dispatchDeleteApplication: deleteApplication,\n dispatchFetchAppKeys: fetchAppKeys,\n dispatchFetchSubscriptionsList: fetchSubscriptions,\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n userReducer: state.userReducer,\n applicationReducer: state.applicationReducer,\n subscriptionReducer: state.subscriptionsReducer,\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AppInfoBar);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nexport const useStyles = makeStyles((theme) => ({\n appBarSpacer: theme.mixins.toolbar,\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n ...theme.custom.applicationViewPage.tabs.overview.styles\n },\n container: {\n paddingTop: '46px',\n paddingBottom: theme.spacing(4),\n maxWidth: '1480px',\n },\n loaderContainer: {\n width: \"cal(100%-60px)\",\n height: \"70%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n componentPadding: {\n paddingLeft: theme.spacing(7),\n paddingRight: theme.spacing(8),\n [theme.breakpoints.down('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n [theme.breakpoints.up('lg')]: {\n paddingLeft: 'auto',\n paddingRight: 'auto',\n }\n },\n table: {\n width: '80%',\n },\n leftCol: {\n width: 200,\n paddingLeft: 0,\n },\n firstRow: {\n borderBottom: \"none\",\n paddingBottom: theme.spacing(1)\n },\n overviewKeys: {\n ...theme.custom.applicationViewPage.tabs.overview.overviewRowKeyTextStyle\n },\n overviewDescription: {\n ...theme.custom.applicationViewPage.tabs.overview.overviewRowValueTextStyle\n },\n overviewValues: {\n ...theme.custom.applicationViewPage.tabs.overview.overviewRowValueTextStyle\n },\n overviewOwnerEmail: {\n ...theme.custom.applicationViewPage.tabs.overview.overviewRowValueTextStyle,\n color: theme.palette.primary.main\n },\n emailChip: {\n ...theme.custom.applicationViewPage.tabs.overview.emailChipStyle,\n borderRadius: theme.spacing(0.7),\n }\n}));\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useEffect } from 'react';\nimport { connect } from \"react-redux\";\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { TableContainer, Container, Grid, Table, TableBody, TableCell, TableRow, Typography, Box, Chip } from '@material-ui/core';\nimport classNames from \"classnames\";\n\nimport { ApplicationReducer, ApplicationState, UserPermission } from \"../../../data/interfaces\";\nimport { PreLoaderLogo } from \"../../../elements/PreLoaderLogo\";\nimport { Status } from \"../../../elements/Status\";\nimport AppInfoBar from \"../../shared/AppInfoBar\";\n\nimport { useStyles } from './styles';\n\ninterface AppOverviewProps {\n applicationReducer: ApplicationReducer\n}\n\nfunction AppOverview(props: AppOverviewProps) {\n const classes = useStyles();\n const intl = useIntl();\n const { applicationReducer } = props;\n const appList = applicationReducer?.applications?.list;\n const application = appList?.length > 0 ? appList[0] : undefined;\n const isApplicationLoading = applicationReducer.isLoading;\n\n const noDescriptionText = intl.formatMessage({\n id:'application.overview.noDescriptionText',\n defaultMessage: 'No description available'\n });\n\n const OverviewContent = () => {\n if (isApplicationLoading) {\n return (\n
    \n \n
    \n );\n } else {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {application?.description ? application?.description :\n {noDescriptionText} }\n \n \n \n \n \n \n \n \n \n \n \n {application?.tokenType}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n { application?.ownerInfo?.displayName || application?.owner}  \n \n \n { application?.ownerInfo && `(${application?.ownerInfo?.email})`}\n \n \n \n \n { application?.sharedWith && application?.sharedWith.length > 0 && \n \n \n \n \n \n \n \n \n \n { application?.sharedWith.map((permission: UserPermission, index: number) => {\n return (\n \n );\n })\n }\n \n \n \n \n }\n \n \n
    \n
    \n
    \n
    \n
    \n );\n }\n };\n\n return (\n
    \n
    \n \n \n
    \n )\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n applicationReducer: state.applicationReducer,\n }\n};\n\nexport default connect(mapStateToProps)(AppOverview);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { Checkbox, Tooltip } from '@material-ui/core';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport MuiAccordion from '@material-ui/core/Accordion';\n\nexport const useStyles = makeStyles((theme) => ({\n appBarSpacer: {\n ...theme.mixins.toolbar,\n [theme.breakpoints.down('xs')]: {\n minHeight: theme.spacing(10),\n }\n },\n content: {\n flexGrow: 1,\n height: '100vh',\n overflowY: 'auto',\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.styles\n },\n container: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n maxWidth: '100%'\n },\n subTitle: {\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.subTitleTextStyles,\n paddingBottom: theme.spacing(1),\n },\n inlineSubTitle: {\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.subTitleTextStyles,\n paddingBottom: 0,\n },\n keyLabel: {\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.contentKeyColor\n },\n flexTextField: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n },\n multipleLineOptionalFlag: {\n color: theme.palette.grey[500],\n },\n splitKeyLabel: {\n width: '85%',\n },\n accordionSummary: {\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.advancedConfigurationHeader\n },\n accordionDetails: {\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.advancedConfigurationDetails\n },\n StepLabel: {\n color: \"#5567d5\",\n },\n StepContent: {\n color: '#1D2028',\n },\n tokenBtnText: {\n padding: '10px 15px',\n height: theme.spacing(4),\n textTransform: 'none',\n color: '#5567D5',\n fontSize: '13px',\n },\n table: {\n width: '100%'\n },\n tableIdp: {\n width: '100%',\n marginBottom: theme.spacing(1)\n },\n displayInline: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n paddingLeft: theme.spacing(0.5),\n },\n tableCellBorder: {\n borderWidth: 0,\n paddingLeft: 0,\n padding: 0,\n height: theme.spacing(4.5),\n width: theme.spacing(25),\n paddingRight: theme.spacing(2)\n },\n tableCellBorderNoKeys: {\n borderWidth: 0,\n paddingLeft: '20px',\n padding: '0px',\n height: '36px',\n width: '198px'\n },\n tableCellBorderGrantTypes: {\n borderWidth: 0,\n paddingLeft: 0,\n padding: '0px',\n height: '36px',\n width: '198px',\n paddingRight: '20px',\n },\n tableCellBorderNoKeysGrantTypes: {\n borderWidth: 0,\n paddingLeft: '20px',\n padding: '0px',\n height: '36px',\n width: '198px',\n },\n noKeyDescription: {\n marginTop: theme.spacing(0.7),\n marginBottom: theme.spacing(1.3),\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.noConsumerKeyTextStyle\n },\n td: {\n padding: '8px',\n borderWidth: 0,\n maxWidth: 410\n },\n tdNoKeys: {\n paddingLeft: '30px',\n padding: '8px',\n borderWidth: 0,\n maxWidth: 410\n },\n tdValueCell: {\n padding: '8px',\n borderWidth: 0,\n maxWidth: 'revert',\n width: '430px',\n },\n consumerSecretValue: {\n padding: '0px',\n },\n td2: {\n padding: '0px',\n borderWidth: 0,\n display: 'ruby',\n },\n td2NoKeys: {\n padding: '0px',\n paddingLeft: '30px',\n borderWidth: 0,\n display: 'ruby',\n },\n td1: {\n padding: '1px',\n borderWidth: 0,\n },\n tx: {\n borderWidth: 0,\n },\n grid: {\n width:theme.spacing(90),\n },\n testTokenDescription: {\n marginLeft: 0,\n marginBottom: theme.spacing(2),\n maxWidth: 410,\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.helperTextStyle\n },\n button: {\n marginTop: theme.spacing(3),\n left: 528,\n textTransform: 'capitalize',\n fontFamily: 'GilmerMedium',\n fontSize: theme.spacing(1.625),\n lineHeight: theme.spacing(2),\n color: '#FFFFFF',\n height: theme.spacing(5)\n },\n updateKeyConfigButton: {\n marginTop: theme.spacing(2),\n height: theme.spacing(4),\n padding: theme.spacing(3),\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.updateAdvancedConfigurationsButtonStyles\n },\n genKeysButton: {\n height: theme.spacing(5),\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.generateCredentialsButtonStyle\n },\n genKeysButtonBoxNoKeys: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n width: 0.75,\n paddingLeft: '9px',\n },\n genKeysButtonBox: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n width: 0.75,\n paddingLeft: '24.5px',\n },\n loaderContainer: {\n width: \"cal(100%-60px)\",\n height: \"70%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n componentPadding: {\n paddingLeft: theme.spacing(7),\n paddingRight: theme.spacing(10),\n [theme.breakpoints.down('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n },\n [theme.breakpoints.up('lg')]: {\n paddingLeft: 'auto',\n paddingRight: 'auto'\n }\n },\n outlineButtonCell: {\n borderWidth: 0,\n padding: 0,\n paddingTop: '15px',\n width: '150px'\n },\n helperText: {\n marginLeft: 0,\n maxWidth: 410,\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.helperTextStyle\n },\n helperTextWarning: {\n marginLeft: 0,\n maxWidth: 410,\n display: \"flex\",\n alignItems: \"center\",\n color: theme.palette.warning.main,\n },\n textField: {\n width: '100%',\n maxWidth: 500,\n },\n textFieldWarning: {\n width: 400,\n maxWidth: 500,\n '& label.Mui-focused': {\n color: theme.palette.warning.main,\n },\n '& .MuiInput-underline:after': {\n borderBottomColor: theme.palette.warning.main,\n },\n '& .MuiOutlinedInput-root': {\n '& fieldset': {\n borderColor: theme.palette.warning.main,\n },\n '&:hover fieldset': {\n borderColor: theme.palette.warning.main,\n },\n '&.Mui-focused fieldset': {\n borderColor: theme.palette.warning.main,\n },\n },\n },\n gridAccordion: {\n maxWidth: 'revert',\n flexBasis: '-moz-available'\n },\n inputLabel: {\n marginTop: '30px'\n },\n warningIcon: {\n height: theme.spacing(2.125),\n width: theme.spacing(2.125),\n marginRight: theme.spacing(1)\n },\n helperTextError: {\n color: '#F44336',\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.errorTextStyle\n },\n tabRoot: {\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.tabs.root\n },\n tabIndicator: {\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.tabs.tabIndicator\n },\n tab: {\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.tabs.tabStyles\n },\n tabTitleText: {\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.tabs.tabTitleTextStyles\n },\n selectedTab: {\n ...theme.custom.applicationViewPage.tabs.productionKeys.oAuth.tabs.selectedTabStyles\n },\n addIdpButton: {\n ...theme.custom.elements.appInfoBar.addButtonStyles,\n ...theme.custom.elements.appInfoBar.outlineButtonStyles,\n },\n cancelClientChangesButton: {\n height: theme.spacing(2.9),\n marginLeft: theme.spacing(2),\n padding: `${theme.spacing(2.9)}px ${theme.spacing(3)}px`,\n },\n selectBox: {\n height: theme.spacing(5),\n width: \"100%\",\n borderRadius: \"5px\",\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #dee0e7, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n cursor: \"pointer\",\n border: 1,\n \"&:active\": {\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #a6b3ff, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n border: \"1px solid #5567d5\",\n },\n \"&:focused\": {\n background: \"linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%)\",\n boxShadow: \"inset 0 0 0 1px #a6b3ff, 0 1px 1px 0 rgba(0, 0, 0, 0.06)\",\n border: \"1px solid #5567d5 !important\",\n },\n \"& .MuiSelect-selectMenu\": {\n \"& .TextSpan\": {\n color: '#222228'\n }\n },\n },\n dropdownStyle: {\n backgroundColor: \"#fff\",\n boxSizing: \"border-box\",\n width: \"auto\",\n border: \"1px solid #DEE0E7\",\n borderRadius: \"5px\",\n boxShadow: \"0 5px 10px -3px rgba(50,50,77,0.1)\",\n color: \"#222228\",\n marginTop: '0.25rem',\n },\n formControl: {\n margin: theme.spacing(1),\n minWidth: 390,\n },\n idpSelection: {\n minWidth: 390,\n },\n infoIcon: {\n color: '#5567D5',\n },\n idpGrid: {\n textAlign: 'left',\n margin: theme.spacing(0),\n alignSelf: 'center',\n },\n advancedConfigGrid: {\n textAlign: 'left'\n },\n removeMarginTop: {\n marginTop: '0px'\n },\n removeMarginBottom: {\n marginBottom: '0px'\n },\n error: {\n color: '#FF0000',\n fontWeight: 700\n },\n rightAlignedSubTitle: {\n fontSize: '13px',\n letterSpacing: '0',\n lineHeight: '24px',\n paddingTop: '10px',\n paddingBottom: '5px',\n fontFamily: 'Gilmer',\n color: '#222228'\n },\n advancedConfigRightText: {\n textAlign: 'right',\n },\n advancedConfigRaw:{\n marginBottom:theme.spacing(2)\n },\n tokenDocInfo: {\n backgroundColor: '#F0F1FB',\n borderLeftStyle: 'solid',\n borderLeftColor: '#5567D5',\n maxWidth: '500px',\n padding: theme.spacing(1.8),\n margin: theme.spacing(1),\n },\n tokenDocInfoText: {\n fontFamily: 'GilmerMedium',\n },\n urlChip: {\n margin: theme.spacing(0.6)\n },\n permissionBtn: {\n textTransform: 'none',\n color: \"#5567D5\",\n ...theme.custom.elements.appInfoBar.permissionButtonStyles,\n \"&:focus, &:active, &:hover\": {\n backgroundColor: \"transparent\"\n },\n },\n emptyTableCell: {\n border: 0,\n paddingLeft: 0,\n paddingRight: 0\n },\n borderlessTableCell: {\n border: 0,\n padding: 0\n },\n pageTitle: {\n fontSize: \"15px\",\n textAlign: \"left\",\n paddingBottom: theme.spacing(3),\n fontFamily: \"GilmerMedium\",\n }, \n selectBg: {\n width: '100%',\n '& .MuiSelect-select': {\n backgroundColor: '#f7f8fb',\n textAlign: 'left',\n minHeight: theme.spacing(5),\n border: '1px solid #cecece',\n borderRadius: theme.spacing(0.6),\n minWidth: theme.spacing(30),\n alignItems: 'center',\n display: 'flex',\n padding: `${theme.spacing(0.6)}px ${theme.spacing(2.5)}px`,\n fontWeight: 400,\n fontSize: theme.spacing(2),\n margin: 0,\n },\n },\n envBox: {\n display: 'flex',\n alignItems: 'center',\n },\n idpSelectionWrapper: {\n textAlign: 'left',\n marginBottom: theme.spacing(2),\n },\n idpFormWrapper: {\n textAlign: 'left',\n margin: `${theme.spacing(2)}px 0`,\n },\n clientIdInput: {\n width: '100%',\n '& .MuiInputBase-input': {\n padding: `${theme.spacing(1)}px ${theme.spacing(1.7)}px`,\n height: theme.spacing(3.75),\n },\n borderRadius: theme.spacing(2),\n },\n addClientIdBtn: {\n marginLeft: theme.spacing(2),\n height: theme.spacing(6),\n padding: `0 ${theme.spacing(3)}px`,\n },\n endpointsWrapper: {\n textAlign: 'left',\n margin: `${theme.spacing(2)}px 0`,\n },\n endpointWrapper: {\n margin: '8px 0'\n },\n selectedIdpName: {\n fontWeight: 700,\n marginLeft: theme.spacing(2),\n color: '#626262'\n },\n credentialsWrapper: {\n minHeight: theme.spacing(5),\n },\n docsInformation: {\n marginLeft: 0,\n textAlign: \"left\",\n maxWidth: \"inherit\",\n width: \"inherit\",\n },\n docInfo: {\n backgroundColor: \"rgb(85 103 213 / 5%)\",\n borderLeft: \"2px solid #5567D5\",\n padding: theme.spacing(2),\n marginBottom: theme.spacing(2),\n width: '100%',\n },\n outlineBtn: {\n padding: theme.spacing(0, 1.7, 0, 2.8),\n marginLeft: theme.spacing(1),\n backgroundSize: theme.spacing(2.5),\n },\n editBtn: {\n ...theme.custom.elements.appInfoBar.editButtonStyles,\n ...theme.custom.elements.appInfoBar.outlineButtonStyles,\n minWidth: theme.spacing(11.25),\n },\n root: {\n width: theme.spacing(50)\n },\n dialogButton: {\n bottom: 50,\n textTransform: 'capitalize',\n fontFamily: 'GilmerMedium',\n fontSize: theme.spacing(1.625),\n lineHeight: theme.spacing(2),\n height: theme.spacing(5)\n },\n dialogRootStyle: {\n borderRadius: theme.spacing(2)\n },\n dialogContent: {\n minWidth: '90%'\n },\n primaryTitle: {\n fontFamily: 'GilmerMedium',\n textAlign: \"center\",\n fontSize: theme.spacing(2.875),\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(2)\n },\n dialogActions: {\n display: \"flex\",\n justifyContent: \"right\",\n margin: theme.spacing(8.25,2,1),\n padding: theme.spacing(0.5),\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[200]\n },\n editIcon: {\n marginTop: theme.spacing(0.2),\n },\n warningContainer: {\n backgroundColor: '#ffcc8c2b',\n borderLeftStyle: 'solid',\n borderLeftColor: '#FF9D52',\n padding: theme.spacing(1),\n minWidth: 120,\n width: 'fit-content',\n marginBottom: theme.spacing(0.5),\n },\n}));\n\nexport const DarkTooltip = withStyles((theme) => ({\n tooltip: {\n backgroundColor: '#4caf50',\n color: '#ffffff',\n boxShadow: theme.shadows[2],\n fontSize: 11\n }\n}))(Tooltip);\n\nexport const CustomCheckbox = withStyles((theme) => ({\n root: {\n '&$checked': {\n color: '#2FA86C'\n }\n },\n checked: {}\n}))(Checkbox);\n\nexport const NoKeysAccordion = withStyles(() => ({\n root: {\n border: '1px solid #EDEEF1;',\n boxShadow: 'none',\n '&:not(:last-child)': {\n borderBottom: 0,\n },\n '&:before': {\n display: 'none',\n },\n '&$expanded': {\n margin: 0,\n },\n width: '720px',\n '& .MuiAccordionSummary-root': {\n justifyContent: 'flex-start',\n padding: 'unset'\n },\n '& .MuiAccordionSummary-content': {\n padding: '10px',\n marginRight: 'revert',\n paddingRight: '0px',\n },\n '& .MuiAccordionDetails-root': {\n padding: '8px 0px 16px',\n },\n '& .MuiIconButton-root': { \n marginRight: 'revert',\n },\n '& .MuiAccordionSummary-expandIcon': {\n paddingTop: '19px',\n },\n '& .Mui-expanded.MuiAccordionSummary-expandIcon': {\n paddingTop: '6px',\n paddingBottom: '12px',\n },\n },\n expanded: {},\n}))(MuiAccordion);\n\nexport const WithKeysAccordion = withStyles((theme) => ({\n root: {\n boxShadow: 'none',\n width: theme.spacing(90),\n '&:not(:last-child)': {\n borderBottom: 0,\n },\n '&:before': {\n display: 'none',\n },\n '&$expanded': {\n margin: 0,\n },\n '& .MuiAccordionSummary-content': {\n flexGrow: 0,\n },\n '& .MuiAccordionSummary-root': {\n justifyContent: 'flex-start',\n padding: 'unset'\n },\n '& .MuiAccordionDetails-root': {\n padding: '8px 0px 16px',\n },\n '& .MuiAccordionSummary-expandIcon': {\n paddingTop: '19px',\n },\n '& .Mui-expanded.MuiAccordionSummary-expandIcon': {\n paddingTop: '5px',\n paddingBottom: '12px',\n },\n },\n expanded: {},\n}))(MuiAccordion);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { ChangeEvent, useState, useEffect } from 'react';\nimport { connect, useDispatch } from 'react-redux';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport {\n Grid, Typography, Select, FormGroup,\n FormControl, MenuItem, TextField, Box, Link, CircularProgress\n} from '@material-ui/core'\n\nimport {\n ApplicationKeyReducer, ApplicationState, IDPReducer, IDP, Key, ApplicationReducer, OauthToken\n} from '../../../../data/interfaces';\nimport {\n exchangeToken\n} from '../../../../data/operations';\nimport { useStyles } from './style';\nimport CopyTextField from '../../../../elements/CopyTextField';\nimport classNames from \"classnames\";\nimport CustomIcons from '../../../../icons/CustomIcons';\nimport { setErrorNotification } from '../../../../store/actions/notification';\nimport { createOauthTokenSuccess } from \"../../../../store/actions/applicationKeys\";\nimport AccessTokenDialog from \"../../../shared/AccessTokenDialog/AccessTokenDialog\";\nimport CurlDialog from \"../../../shared/CurlDialog/CurlDialog\";\nimport GreyOutlinedButton from '../../../../elements/GreyOutlinedButton';\n\ninterface ExternalIDPProps {\n applicationReducer: ApplicationReducer,\n applicationKeysReducer: ApplicationKeyReducer,\n idpReducer: IDPReducer,\n dispatchExchangeToken: (applicationId: string, selectedScopes: string[], key: Key,\n additionalProperties: Record) => void,\n dispatchSetErrorNotification: (notification: string) => void,\n dispatchCreateOauthTokenSuccess: (token: OauthToken) => void,\n}\n\nfunction ExternalIDP(props: ExternalIDPProps) {\n const classes = useStyles();\n const intl = useIntl();\n const {\n idpReducer, applicationKeysReducer, dispatchExchangeToken, applicationReducer,\n dispatchSetErrorNotification, dispatchCreateOauthTokenSuccess\n } = props;\n const currentKey = applicationKeysReducer?.currentKey;\n const oauthToken = applicationKeysReducer.oauthToken;\n const isTokenGenerating = applicationKeysReducer.isTokenGenerating;\n const isTokenGenerationSuccess = applicationKeysReducer.isTokenGenerationSuccess;\n const isCredentialsAvailable = currentKey !== null && currentKey !== undefined;\n const [externalIDPTokenError, setExternalIDPTokenError] = useState('');\n const [externalIDPToken, setExternalIDPToken] = useState('');\n const consumerKey = isCredentialsAvailable ? currentKey?.consumerKey : '';\n const consumerSecret = isCredentialsAvailable ? currentKey?.consumerSecret : '';\n const base64Encoded = window.btoa(consumerKey + ':' + consumerSecret);\n const idpList = idpReducer?.idps.list;\n const [curlOpen, setCurlOpen] = useState(false);\n const [token, setToken] = useState('');\n const appList = applicationReducer?.applications?.list;\n const application = appList?.length > 0 ? appList[0] : undefined;\n const applicationId = application?.applicationId;\n const [tokenOpen, setTokenOpen] = useState(false);\n\n const getExternalIDPs = () => {\n return idpList.filter((idp) => idp.type !== \"default\" && idp.enabled);\n }\n\n const externalIDPs = getExternalIDPs();\n \n let initialIDP: IDP;\n if (externalIDPs.length === 1) {\n initialIDP = externalIDPs[0];\n } else {\n initialIDP = {\n id: '',\n name: '',\n type: '',\n revokeEndpoint: '',\n tokenEndpoint: '',\n alias: '',\n enabled: false\n };\n }\n\n const [selectedIDP, setIDP] = useState(initialIDP);\n const [idpError] = useState(false);\n\n const validateExternalIDPToken = (token: string) => {\n if (token === \"\") {\n return (\n \n );\n } {\n return \"\";\n }\n };\n\n const handleChangeIDP = (event: any) => {\n idpList.forEach(idp => {\n if (idp.name === event.target.value) {\n setIDP(idp)\n }\n });\n }\n\n const handleClickTokenOpen = () => {\n setToken('');\n setExternalIDPTokenError(validateExternalIDPToken(externalIDPToken));\n if (externalIDPToken !== \"\") {\n const additionalProperties = {\n \"subject_token\": externalIDPToken\n };\n exchangeAccessToken(additionalProperties);\n }\n };\n\n const handleClickTokenClose = () => {\n setTokenOpen(false);\n dispatchCreateOauthTokenSuccess({ accessToken: '', tokenScopes: [], validityTime: 0 });\n };\n\n const handleClickCurlOpen = () => {\n setExternalIDPTokenError(validateExternalIDPToken(externalIDPToken));\n if (externalIDPToken != '') {\n setCurlOpen(true);\n }\n };\n\n const handleClickCurlClose = () => {\n setCurlOpen(false);\n };\n\n const getTokenGenerateCurlBtnText = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oauth.tokenGeneration.curl.buttonText',\n defaultMessage: 'cURL'\n });\n };\n\n const getTokenGenerateBtnText = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oauth.tokenGeneration.buttonText',\n defaultMessage: 'Generate Test Token'\n });\n };\n\n const onExternalIDPTokenChange = (event: ChangeEvent) => {\n const externalIDPToken = event.target.value;\n setExternalIDPTokenError(validateExternalIDPToken(externalIDPToken));\n setExternalIDPToken(externalIDPToken);\n };\n\n const getIdpDocLink = (idpType: string) => {\n if (idpType == \"Okta\") {\n return \"https://developer.okta.com/docs/guides/implement-auth-code/overview/\";\n } else if (idpType == \"Auth0\") {\n return \"https://auth0.com/docs/flows/call-your-api-using-the-authorization-code-flow/\";\n } else if (idpType == \"Microsoft\") {\n return \"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow/\";\n } else if (idpType == \"Asgardeo\") {\n return \"https://wso2.com/asgardeo/docs/guides/authentication/oidc/implement-auth-code/\";\n } else {\n return \"https://wso2.com/choreo/docs\"\n }\n }\n\n useEffect(() => {\n if (applicationKeysReducer.oauthToken) {\n setToken(oauthToken.accessToken);\n setTokenOpen(!isTokenGenerating && isTokenGenerationSuccess && oauthToken.accessToken !== '');\n }\n }, [applicationKeysReducer.oauthToken]);\n\n const exchangeAccessToken = async (additionalProperties: Record) => {\n try {\n await dispatchExchangeToken(applicationId as string, [''], currentKey, additionalProperties);\n } catch (error) {\n const errorMessage = intl.formatMessage({\n id: 'application.productionKeys.oAuth.tokenGeneration.error',\n defaultMessage: 'Error occurred during token generation'\n });\n dispatchSetErrorNotification(errorMessage);\n }\n };\n\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {externalIDPs.map((idp: IDP) => (\n \n {idp.type + ' | ' + idp.name}\n \n ))}\n \n \n \n \n {(selectedIDP.name != '') ?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n *\n \n \n \n \n
    \n \n
    \n

    {externalIDPTokenError}

    \n \n }\n className={classNames(classes.textField, classes.removeMarginTop)}\n data-testid='external-idp-token'\n />\n
    \n
    \n \n \n \n \n \n \n \n \n \n : undefined}\n id='generate-choreo-token-btn'\n />\n {tokenOpen &&\n \n }\n \n \n }\n />\n {curlOpen &&\n \n }\n \n \n \n
    \n
    \n : null\n }\n
    \n
    \n )\n}\n\nconst mapDispatchToProps = {\n dispatchExchangeToken: exchangeToken,\n dispatchSetErrorNotification: setErrorNotification,\n dispatchCreateOauthTokenSuccess: createOauthTokenSuccess,\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n applicationReducer: state.applicationReducer,\n applicationKeysReducer: state.applicationKeysReducer,\n idpReducer: state.idpReducer,\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ExternalIDP);\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport { FormattedMessage } from 'react-intl';\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\n\nexport interface LabelProps {\n label: string | JSX.Element;\n className?: string;\n optional?: boolean;\n optionalFlagClassName?: string;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n optional: {\n color: theme.palette.grey[500],\n marginLeft: theme.spacing(1),\n },\n })\n);\n\nexport const Label = (props: LabelProps) => {\n const classes = useStyles();\n const { optional, label, className, optionalFlagClassName } = props;\n\n return (\n <>\n \n {label}\n \n {\n optional && (\n \n )\n }\n \n );\n}\n\nexport default Label;\n","/*\n * Copyright (c) 2025, WSO2 LLC (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState } from \"react\";\n\nimport { Box, Button, Dialog, DialogActions, DialogContent, DialogTitle, IconButton, Typography } from \"@material-ui/core\";\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { useStyles } from \"./style\";\nimport { useIntl } from \"react-intl\";\nimport Settings from \"../../../../conf/settings\";\nimport EditableTextField from \"../../../../elements/EditableTextField\";\n\ninterface ConfirmationDialogProps {\n open: boolean,\n clientId: string,\n selectedIdp: any,\n idpRegistered: boolean,\n defaultAsgardeoKeyManagerName: string,\n dialogTitle: string,\n okayButtonLabel: string,\n cancelButtonLabel: string,\n onClose: () => void,\n onOkay: () => void,\n onCancel: () => void,\n onChange: (clientId: string) => void,\n}\n\nexport const ClientIdConfirmationDialog = (props: ConfirmationDialogProps) => {\n const {\n open, clientId, selectedIdp, defaultAsgardeoKeyManagerName, dialogTitle, okayButtonLabel, cancelButtonLabel,\n onClose, onOkay, onCancel, onChange,\n } = props;\n\n\n const [currentClientId, setCurrentClientId] = useState(clientId);\n const [previousClientId, setPreviousClientId] = useState(clientId);\n const [updateEnabled, setUpdateEnabled] = useState(true);\n const classes = useStyles();\n const intl = useIntl();\n\n const handleInputChange = (value: string) => {\n setPreviousClientId(currentClientId);\n setCurrentClientId(value);\n onChange(value);\n setUpdateEnabled(false);\n };\n\n const handleCancel = () => {\n setCurrentClientId(previousClientId);\n onChange(previousClientId);\n onCancel();\n };\n\n const warningBanner = intl.formatMessage({\n id: \"application.productionKeys.oAuth.tokenExchange.info\",\n defaultMessage: \"Modifying your Client ID may impact requests from existing clients.\",\n });\n\n const DialogContents = () => {\n return (\n
    \n \n \n \n \n {warningBanner}\n \n \n \n \n\n \n handleInputChange(clientId)}\n />\n \n
    \n );\n };\n\n return (\n \n \n {\n handleCancel ? (\n \n \n \n ) : null\n }\n \n \n \n {dialogTitle}\n \n
    \n \n
    \n
    \n \n \n {cancelButtonLabel}\n \n {\n e.preventDefault();\n onOkay();\n }}\n data-testid=\"clientId-save\"\n disabled={updateEnabled}\n >\n {okayButtonLabel}\n \n \n \n );\n};\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { ChangeEvent, KeyboardEvent, useEffect, useState } from 'react';\nimport { connect, useDispatch } from 'react-redux';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport clx from 'clsx';\nimport {\n Box, Button, CircularProgress, Container, FormControl, FormControlLabel, FormGroup, Grid, Table, TableBody,\n TableCell, TableContainer, TableRow, TextField, Typography, Tab, Tabs,\n AccordionDetails, AccordionSummary, Tooltip, Link, Chip, Divider, Select, MenuItem\n} from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { TabPanel } from \"../../../shared/Tab/TabPanel\";\nimport classNames from \"classnames\";\nimport Joi from \"joi\";\nimport Settings from '../../../../conf/settings';\nimport {\n ApplicationKeyReducer, ApplicationReducer, GrantType, ApplicationState, Key, UserReducer, IDPReducer,\n KeyType, ApplicationKeyMapping, IDP, IdpRegisterType, DevPortalAppEnv\n} from '../../../../data/interfaces';\nimport {\n fetchAppKeys, createAppKeys, generateApplicationToken, updateApplicationKey, fetchIDPs, fetchSubscriptions, mapApplicationKeys,\n generateToken\n} from '../../../../data/operations';\nimport CopyTextField from '../../../../elements/CopyTextField';\nimport GreyOutlinedButton from '../../../../elements/GreyOutlinedButton';\nimport PasswordCopyField from '../../../../elements/PasswordCopyField';\nimport { PreLoaderLogo } from \"../../../../elements/PreLoaderLogo\";\nimport CustomIcons from '../../../../icons/CustomIcons';\nimport { setErrorNotification } from '../../../../store/actions/notification';\nimport AppInfoBar from '../../../shared/AppInfoBar';\nimport { CustomCheckbox, useStyles, NoKeysAccordion, WithKeysAccordion } from './style';\nimport { createOauthTokenSuccess } from \"../../../../store/actions/applicationKeys\";\nimport AccessTokenDialog from \"../../../shared/AccessTokenDialog/AccessTokenDialog\";\nimport CurlDialog from \"../../../shared/CurlDialog/CurlDialog\";\nimport ExternalIDP from \"./ExternalIDP\"\nimport {trackAppProdKeyGeneration, trackAppTestKeyGeneration} from \"../../../../util/app-insights\";\nimport WarningBanner from '../../../shared/WarningBanner';\nimport InfoBanner from '../../../shared/InfoBanner';\nimport {\n ASGARDEO_CLIENT_ID_DOC_URL,\n AUTHORIZATION_CODE_GRANT_TYPE,\n AZURE_CLIENT_ID_DOC_URL,\n AZURE_KEY_MANAGER_TYPE,\n ASGARDEO_KEY_MANAGER_TYPE,\n DEFAULT_ASGARDEO_KEY_MANAGER_PREFIX,\n IMPLICIT_GRANT_TYPE, \n RESOURCE_AUTHORIZE, \n RESOURCE_TOKEN,\n APPDEV_STS_KEY_MANAGER_TYPE, \n RESOURCE_OAUTH2, \n RESOURCE_REVOKE\n} from \"../../../../data/constants\";\nimport InfoTooltip from '../../../../elements/CustomTooltip/InfoTooltip';\nimport Label from '../../../shared/Label';\nimport { ApplicationPermission } from '../../../../util/app-permissions';\nimport { AppPermission } from '../../../../data/emus';\nimport { ClientIdConfirmationDialog } from './ClientIdConfirmationDialog';\nimport OutlineButton from '../../../../elements/OutlineButton';\nimport { isAdminUser } from '../../../../data/utils';\n\ninterface OauthKeyProps {\n applicationReducer: ApplicationReducer,\n applicationKeysReducer: ApplicationKeyReducer,\n userReducer: UserReducer,\n idpReducer: IDPReducer,\n keyType: KeyType,\n dispatchGenerateApplicationToken: (applicationId: string, selectedScopes: string[], key: Key) => void,\n dispatchGenerateAppKey: (applicationId: string, organizationId: string, grantTypes: string[], callbackUrl: string,\n additionalProperties: Record, keyType: KeyType, keyManager: string) => void,\n dispatchFetchAppKeys: (applicationId: string, organizationId: string) => void,\n dispatchUpdateAppKey: (applicationId: string, key: Key) => void,\n dispatchFetchIDPs: (organizationId: string, devPortalAppEnv?: DevPortalAppEnv) => void,\n dispatchSetApplicationKeyMap: (applicationId: string, payload: ApplicationKeyMapping) => void,\n}\n\nconst idpDocRefFromType = (idpType: string) => {\n switch (idpType) {\n case ASGARDEO_KEY_MANAGER_TYPE:\n return ASGARDEO_CLIENT_ID_DOC_URL;\n case AZURE_KEY_MANAGER_TYPE:\n return AZURE_CLIENT_ID_DOC_URL;\n default:\n return null;\n }\n};\n\nfunction ShowClientIDDocumentBanner(props: { idpType?: string }) {\n const { idpType } = props;\n if (!idpType) {\n return null;\n }\n const docLink = idpDocRefFromType(idpType);\n if (!docLink) {\n return null;\n }\n const classes = useStyles();\n return (\n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n );\n}\n\nfunction OauthKey(props: OauthKeyProps) {\n const classes = useStyles();\n const intl = useIntl();\n const dispatch = useDispatch();\n const {\n applicationKeysReducer,\n applicationReducer,\n idpReducer,\n keyType,\n userReducer,\n dispatchFetchAppKeys,\n dispatchFetchIDPs,\n dispatchGenerateAppKey,\n dispatchUpdateAppKey,\n dispatchSetApplicationKeyMap\n } = props;\n const appList = applicationReducer?.applications?.list;\n const application = appList?.length > 0 ? appList[0] : undefined;\n const applicationId = application?.applicationId;\n const applicationKeys = applicationKeysReducer?.keys;\n const [currentKey, setCurrentKey] = useState();\n const isCredentialsAvailable = currentKey !== null && currentKey !== undefined;\n const additionalProperties = currentKey?.additionalProperties;\n const isLoading = applicationKeysReducer.isLoading || idpReducer.isLoading;\n const [isTokenGenerating, setIsTokenGenerating] = useState(false);\n const { isKeyMapping, isKeyMappingSuccess, isKeyUpdating } = applicationKeysReducer;\n const [curlOpen, setCurlOpen] = useState(false);\n const [tokenOpen, setTokenOpen] = useState(false);\n const [callbackUrl, setCallbackUrl] = useState(isCredentialsAvailable && currentKey ? currentKey.callbackUrl : \"\");\n const [token, setToken] = useState('');\n const [isPublicClientEnabled, setIsPublicClientEnabled] = useState(isCredentialsAvailable ?\n additionalProperties?.bypassClientCredentials as boolean : false);\n const [isPkceEnabled, setIsPkceEnabled] = useState(isCredentialsAvailable ?\n additionalProperties?.pkceMandatory as boolean : false);\n const CLIENT_CREDENTIALS_GRANT_TYPE = 'client_credentials';\n const TOKEN_EXCHANGE_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:token-exchange';\n const REFRESH_TOKEN_GRANT_TYPE = 'refresh_token';\n const [isGenerateTokenDisabled, setIsGenerateTokenDisabled] = useState(false);\n const [applicationTokenExpiryTime, setApplicationTokenExpiryTime] = useState(isCredentialsAvailable ?\n additionalProperties?.application_access_token_expiry_time : '900');\n const [refreshTokenExpiryTime, setRefreshTokenExpiryTime] = useState(isCredentialsAvailable ?\n additionalProperties?.refresh_token_expiry_time : '86400');\n const [idTokenExpiryTime, setIdTokenExpiryTime] = useState(isCredentialsAvailable ?\n additionalProperties?.id_token_expiry_time : '900');\n const [userAccessTokenExpiryTime, setUserAccessTokenExpiryTime] = useState(isCredentialsAvailable ?\n additionalProperties?.user_access_token_expiry_time : '900');\n const [callbackUrlError, setCallbackUrlError] = useState('');\n const [applicationTokenExpiryError, setApplicationTokenExpiryError] = useState('');\n const [userAccessTokenExpiryError, setUserAccessTokenExpiryError] = useState('');\n const [refreshTokenExpiryError, setRefreshTokenExpiryError] = useState('');\n const [applicationTokenExpiryWarning, setApplicationTokenExpiryWarning] = useState('');\n const [userAccessTokenExpiryWarning, setUserAccessTokenExpiryWarning] = useState('');\n const [idTokenExpiryWarning, setIdTokenExpiryWarning] = useState('');\n const [idTokenExpiryError, setIdTokenExpiryError] = useState('');\n const consumerKey = isCredentialsAvailable && currentKey ? currentKey.consumerKey : '';\n const consumerSecret = isCredentialsAvailable && currentKey ? currentKey.consumerSecret : '';\n const base64Encoded = window.btoa(consumerKey + ':' + consumerSecret);\n const [selectedTab, setSelectedTab] = useState(0);\n const [managePermissionButtonEnabled, setManagePermissionButtonEnabled] = useState(false);\n const [asgardeoApplicationId, setAsgardeoApplicationId] = useState('');\n const isManagePermissionButtonDisabled = !managePermissionButtonEnabled || isLoading || isTokenGenerating;\n const { selectedOrg, userInfo, user } = userReducer;\n const organizationHandle = selectedOrg.handle;\n\n const [idpList, setIdpList] = useState([]);\n const [appDevSTSList, setAppDevSTSList] = useState([]);\n const defaultAsgardeoKeyManagerName = DEFAULT_ASGARDEO_KEY_MANAGER_PREFIX + userReducer.selectedOrg.handle;\n const isKeyFromAsgardeoKM = isCredentialsAvailable && currentKey && (currentKey.keyManager === defaultAsgardeoKeyManagerName);\n const isResidentKeyManagerNotUsed = !applicationKeys?.list.find((key) => key.keyManager === Settings.keyManager);\n const isAsgardeoKeyManagerAvailable = () => (idpList?.filter((idp) => idp.type === ASGARDEO_KEY_MANAGER_TYPE &&\n idp.name === defaultAsgardeoKeyManagerName).length) > 0;\n const [supportedGrantTypes, setSupportedGrantTypes] = useState(isAsgardeoKeyManagerAvailable() && isResidentKeyManagerNotUsed ?\n Settings.asgardeoGrantTypes : Settings.grantTypes);\n const [selectedGrantTypes, setSelectedGrantTypes] = useState(isCredentialsAvailable && currentKey ?\n currentKey?.supportedGrantTypes : [CLIENT_CREDENTIALS_GRANT_TYPE]);\n const [disableCallbackUrl, setDisableCallbackUrl] = useState(!selectedGrantTypes?.includes(AUTHORIZATION_CODE_GRANT_TYPE)\n || !selectedGrantTypes?.includes(IMPLICIT_GRANT_TYPE));\n\n const [isTokenExchangeSelected, setTokenExchangeFlag] = useState(selectedGrantTypes?.\n includes(TOKEN_EXCHANGE_GRANT_TYPE));\n const [isAuthorizationCodeSelected, setIsAuthorizationCodeSelected] = useState(selectedGrantTypes?.\n includes(AUTHORIZATION_CODE_GRANT_TYPE));\n const [isClientCredentialsSelected, setIsClientCredentialsSelected] = useState(selectedGrantTypes?.\n includes(CLIENT_CREDENTIALS_GRANT_TYPE));\n const [subscriptionScopes, setSubscriptionScopes] = useState([]);\n const [selectedScopes, setSelectedScopes] = useState(subscriptionScopes);\n const [generatedScopesForToken, setGeneratedScopesForToken] = useState(subscriptionScopes);\n const [callbackUrls, setCallbackUrls] = useState([]); \n const [clientId, setClientId] = useState('');\n const [idpRegistered, setIdpRegistered] = useState(false);\n const [isClientEditing, setClientEditing] = useState(false); \n const [isDialogOpen, setIsDialogOpen] = useState(false); \n const initialIDP: IDP = {\n id: '',\n name: 'Default',\n type: 'default',\n revokeEndpoint: '',\n tokenEndpoint: '',\n alias: '',\n enabled: false\n };\n const [selectedIdp, setSelectedIdp] = useState();\n\n const editButtonLabel = intl.formatMessage({\n id: 'application.productionKeys.oAuth.editButton.label',\n defaultMessage: 'Edit'\n });\n\n const addButtonLabel = intl.formatMessage({\n id: 'application.productionKeys.oAuth.addButton.label',\n defaultMessage: 'Add'\n });\n\n const validateTokenExpiryTime = (expTime: string) => {\n const expiryTime = expTime.trim();\n if (expiryTime === \"\") {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.expiryTime.empty.helperText',\n defaultMessage: 'Expiry time cannot be empty'\n });\n } else if (Number(expiryTime) < 0) {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.expiryTime.negative.helperText',\n defaultMessage: 'Expiry time cannot be negative'\n });\n } else if (isNaN(Number(expiryTime))) {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.expiryTime.nonNumeric.helperText',\n defaultMessage: 'Expiry time can only contain numbers'\n });\n } else {\n return \"\";\n }\n };\n\n const validateTokenExpiryTimeRecommendation = (expiryTime: number) => {\n if (expiryTime > 900) {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.expiryTime.warning.helperText',\n defaultMessage: 'Recommended expiry time is 900 seconds or less'\n });\n }\n return \"\";\n }\n\n const validateCallbackUrl = (callbackUrl: string) => {\n const url = Joi.string().uri({ scheme: ['http', 'https'] });\n if ((!callbackUrls || callbackUrls?.length == 0 ) && callbackUrl === \"\") {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.callbackUrl.empty.helperText',\n defaultMessage: 'Redirect URL is required'\n });\n }\n const isError = url.validate(callbackUrl).error;\n if (!isError) {\n return \"\";\n } else {\n if (callbackUrls && callbackUrl == '') {\n return \"\"\n }\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.callbackUrl.invalid.helperText',\n defaultMessage: 'Enter a valid URL'\n }); \n }\n };\n\n const isKeyMapped = () => currentKey?.keyType === keyType && currentKey?.mode === 'MAPPED';\n\n const getEndpoints = (): {tokenEndpoint: string, revokeEndpoint: string, authorizeEndpoint: string} => {\n const selectedKeyManager = idpList.find((idp: IDP) => {\n return idp.name === currentKey?.keyManager;\n })\n if (isKeyMapped() || selectedKeyManager?.name === defaultAsgardeoKeyManagerName || selectedKeyManager?.type === APPDEV_STS_KEY_MANAGER_TYPE) {\n return {\n tokenEndpoint: selectedKeyManager?.tokenEndpoint || '',\n revokeEndpoint: selectedKeyManager?.revokeEndpoint || '',\n authorizeEndpoint: selectedKeyManager?.authorizeEndpoint || ''\n }\n } else {\n if (currentKey?.additionalProperties?.internalKMBaseUrl && currentKey?.additionalProperties?.internalKMBaseUrl !== '') {\n return {\n tokenEndpoint: currentKey?.additionalProperties?.internalKMBaseUrl + RESOURCE_OAUTH2 + RESOURCE_TOKEN,\n revokeEndpoint: currentKey?.additionalProperties?.internalKMBaseUrl + RESOURCE_OAUTH2 + RESOURCE_REVOKE,\n authorizeEndpoint: currentKey?.additionalProperties?.internalKMBaseUrl + RESOURCE_OAUTH2 + RESOURCE_AUTHORIZE\n }\n } else {\n return {\n tokenEndpoint: Settings.tokenEndpoint,\n revokeEndpoint: Settings.revokeEndpoint,\n authorizeEndpoint: Settings.tokenEndpoint.replace(RESOURCE_TOKEN, RESOURCE_AUTHORIZE)\n }\n }\n }\n }\n\n const isDefaultIdPAvailable = () => \n isAsgardeoKeyManagerAvailable() || \n idpList?.filter((idp) => idp.type === \"default\" && idp.enabled).length > 0 || \n (appDevSTSList?.length ?? 0) > 0;\n\n useEffect(() => {\n if (!idpReducer.isLoading && idpReducer?.idps?.list) {\n setIdpList(idpReducer.idps.list);\n setAppDevSTSList(idpReducer.idps.list.filter((idp: any) => idp.type === APPDEV_STS_KEY_MANAGER_TYPE));\n setSupportedGrantTypes(isAsgardeoKeyManagerAvailable() && isResidentKeyManagerNotUsed ?\n Settings.asgardeoGrantTypes : Settings.grantTypes);\n }\n }, [idpReducer]);\n\n useEffect(()=>{\n setCurrentKey(undefined);\n setAsgardeoApplicationId('');\n setManagePermissionButtonEnabled(false);\n applicationKeys && applicationKeys.list?.map((key: Key) => {\n if (key.keyType === keyType) {\n setCurrentKey(key);\n const asgardeoAppId = key.additionalProperties?.asgardeo_app_id;\n if (asgardeoAppId) {\n setAsgardeoApplicationId(asgardeoAppId as string);\n setManagePermissionButtonEnabled(true);\n }\n }\n });\n }, [applicationKeys, keyType]);\n\n useEffect(() => {\n if (applicationId) {\n const organizationId = userReducer.selectedOrg.uuid;\n dispatch(createOauthTokenSuccess({ accessToken: '', tokenScopes: [], validityTime: 0 }));\n dispatchFetchAppKeys(applicationId, organizationId);\n if (Settings.devPortalIdPConfigurationFeatureEnabled) {\n if (keyType === KeyType.PRODUCTION) {\n dispatchFetchIDPs(organizationId, DevPortalAppEnv.PROD);\n } else if (keyType === KeyType.SANDBOX) {\n dispatchFetchIDPs(organizationId, DevPortalAppEnv.SANDBOX);\n }\n } else {\n dispatchFetchIDPs(organizationId);\n }\n }\n }, [applicationId, keyType]);\n\n useEffect(() => {\n if (!isKeyMapping && applicationKeysReducer.isKeyMappingSuccess && applicationId) {\n const organizationId = userReducer.selectedOrg.uuid;\n dispatchFetchAppKeys(applicationId, organizationId);\n }\n }, [isKeyMappingSuccess, isKeyMapping]);\n\n useEffect(() => {\n if (!isKeyUpdating && applicationId) {\n const organizationId = userReducer.selectedOrg.uuid;\n dispatchFetchAppKeys(applicationId, organizationId);\n setClientEditing(false);\n }\n }, [isKeyUpdating]);\n\n useEffect(() => {\n setDisableCallbackUrl(!selectedGrantTypes.includes(AUTHORIZATION_CODE_GRANT_TYPE) &&\n !selectedGrantTypes.includes(IMPLICIT_GRANT_TYPE));\n setCallbackUrlError(validateCallbackUrl(\"\"));\n setIsAuthorizationCodeSelected(selectedGrantTypes.includes(AUTHORIZATION_CODE_GRANT_TYPE));\n setIsClientCredentialsSelected(selectedGrantTypes.includes(CLIENT_CREDENTIALS_GRANT_TYPE));\n }, [selectedGrantTypes]);\n\n useEffect(() => {\n if (disableCallbackUrl) {\n setCallbackUrl('');\n setCallbackUrlError('');\n } else {\n setCallbackUrl('');\n }\n }, [disableCallbackUrl]);\n\n useEffect(() => {\n if(callbackUrl === '' && callbackUrls?.length === 0) {\n setCallbackUrlError(validateCallbackUrl(''));\n }\n }, [callbackUrls]);\n\n useEffect(() => {\n if (isCredentialsAvailable && currentKey && additionalProperties) {\n const appTokenExpTime = additionalProperties.application_access_token_expiry_time;\n setApplicationTokenExpiryTime(appTokenExpTime);\n setApplicationTokenExpiryWarning(validateTokenExpiryTimeRecommendation(Number(appTokenExpTime)));\n\n const userTokenExpTime = additionalProperties.user_access_token_expiry_time;\n setUserAccessTokenExpiryTime(userTokenExpTime);\n setUserAccessTokenExpiryWarning(validateTokenExpiryTimeRecommendation(Number(userTokenExpTime)));\n\n const idTokenExpTime = additionalProperties.id_token_expiry_time;\n setIdTokenExpiryTime(idTokenExpTime);\n setIdTokenExpiryWarning(validateTokenExpiryTimeRecommendation(Number(idTokenExpTime)));\n\n setRefreshTokenExpiryTime(additionalProperties.refresh_token_expiry_time);\n setIsPublicClientEnabled(additionalProperties.bypassClientCredentials as boolean);\n setCallbackUrl('');\n setCallbackUrlError('');\n if (currentKey.callbackUrl) {\n setCallbackUrls(currentKey.callbackUrl.split(','));\n }\n }\n if (isCredentialsAvailable && currentKey && currentKey.supportedGrantTypes) {\n setSelectedGrantTypes([...currentKey.supportedGrantTypes])\n setIsGenerateTokenDisabled(!currentKey.supportedGrantTypes.includes(CLIENT_CREDENTIALS_GRANT_TYPE))\n }\n if (!isCredentialsAvailable) {\n // Set defaults for token expiration time when credentials are not available\n setApplicationTokenExpiryTime(900);\n setUserAccessTokenExpiryTime(900);\n setIdTokenExpiryTime(900);\n }\n setSupportedGrantTypes(isAsgardeoKeyManagerAvailable() && isResidentKeyManagerNotUsed ?\n Settings.asgardeoGrantTypes : Settings.grantTypes);\n }, [isCredentialsAvailable, additionalProperties, currentKey]);\n\n useEffect(() => {\n if (currentKey) {\n setIdpRegistered(true);\n const idp = idpList?.find((idp: any) => {\n if (idp.name === currentKey.keyManager) {\n return idp;\n }\n });\n setClientId(currentKey.consumerKey);\n setSelectedIdp(idp);\n } else {\n setIdpRegistered(false);\n if (Settings.devPortalIdPConfigurationFeatureEnabled && !isDefaultIdPAvailable() && idpList?.length === 1) {\n setSelectedIdp(idpList[0]);\n } else {\n setSelectedIdp(initialIDP);\n }\n setClientId('');\n }\n }, [currentKey, idpList]);\n\n useEffect(() => {\n const scopesAllocatedInApp = application?.subscriptionScopes ?\n application?.subscriptionScopes.map((scope) => { return scope.key }) : []\n setSubscriptionScopes(scopesAllocatedInApp);\n setSelectedScopes(scopesAllocatedInApp);\n setGeneratedScopesForToken(scopesAllocatedInApp);\n }, [application]);\n\n const generateAccessToken = async (selectedPermissions: string[]) => {\n try {\n if (currentKey) {\n const response = await generateToken(\n selectedPermissions,\n applicationId as string,\n currentKey,\n );\n setToken(response?.data.accessToken);\n setGeneratedScopesForToken(response?.data.tokenScopes);\n setIsTokenGenerating(false);\n setTokenOpen(true);\n }\n } catch (error) {\n const errorMessage = intl.formatMessage({\n id: 'application.oAuth.tokenGeneration.error',\n defaultMessage: 'Error occurred while generating token for the application'\n });\n dispatch(setErrorNotification(errorMessage));\n }\n };\n\n const fetchAccessTokenForApp = async () => {\n await generateAccessToken(selectedScopes);\n };\n\n const onApplicationTokenExpiryChange = (event: ChangeEvent) => {\n const expiryTime = event.target.value;\n setApplicationTokenExpiryTime(expiryTime);\n const validationError = validateTokenExpiryTime(expiryTime);\n setApplicationTokenExpiryError(validationError);\n if (!validationError) {\n const validationWarning = validateTokenExpiryTimeRecommendation(Number(expiryTime));\n setApplicationTokenExpiryWarning(validationWarning);\n }\n };\n\n const onUserAccessTokenExpiryChange = (event: ChangeEvent) => {\n const expiryTime = event.target.value;\n const validationError = validateTokenExpiryTime(expiryTime);\n setUserAccessTokenExpiryTime(expiryTime);\n setUserAccessTokenExpiryError(validationError);\n if (!validationError) {\n const validationWarning = validateTokenExpiryTimeRecommendation(Number(expiryTime));\n setUserAccessTokenExpiryWarning(validationWarning);\n }\n };\n\n const onRefreshTokenExpiryChange = (event: ChangeEvent) => {\n const expiryTime = event.target.value;\n setRefreshTokenExpiryError(validateTokenExpiryTime(expiryTime));\n setRefreshTokenExpiryTime(expiryTime);\n };\n\n const onIdTokenExpiryChange = (event: ChangeEvent) => {\n const expiryTime = event.target.value;\n setIdTokenExpiryTime(expiryTime);\n const validationError = validateTokenExpiryTime(expiryTime);\n setIdTokenExpiryError(validationError);\n if (!validationError) {\n const validationWarning = validateTokenExpiryTimeRecommendation(Number(expiryTime));\n setIdTokenExpiryWarning(validationWarning);\n }\n };\n\n const handleTokenExchangeTypeSelection = () => {\n if (selectedGrantTypes.includes(TOKEN_EXCHANGE_GRANT_TYPE)) {\n setTokenExchangeFlag(true)\n } else {\n setTokenExchangeFlag(false)\n }\n }\n\n const handleGenerateCredentialsClick = () => {\n const organizationId = userReducer.selectedOrg.uuid;\n const additionalProperties = {\n 'application_access_token_expiry_time': applicationTokenExpiryTime,\n 'refresh_token_expiry_time': refreshTokenExpiryTime,\n 'id_token_expiry_time': idTokenExpiryTime,\n 'user_access_token_expiry_time': userAccessTokenExpiryTime,\n 'bypassClientCredentials': isPublicClientEnabled? \"true\" : \"false\",\n 'pkceMandatory': isPkceEnabled ? \"true\" : \"false\",\n };\n trackAppProdKeyGeneration(\n `${applicationId}`,\n `${applicationTokenExpiryTime}`,\n `${refreshTokenExpiryTime}`,\n `${idTokenExpiryTime}`\n );\n const callbackUrlList = callbackUrls?.toString();\n let keyManager = Settings.keyManager;\n if (isResidentKeyManagerNotUsed && isAsgardeoKeyManagerAvailable()) {\n keyManager = defaultAsgardeoKeyManagerName;\n } else if (appDevSTSList?.length > 0) {\n keyManager = appDevSTSList.find((idp: any) => idp.name.includes('_us_prod'))?.name || \n appDevSTSList.find((idp: any) => idp.name.includes('_prod'))?.name || appDevSTSList[0].name;\n }\n dispatchGenerateAppKey(applicationId as string, organizationId, selectedGrantTypes, callbackUrlList,\n additionalProperties, keyType, keyManager);\n handleTokenExchangeTypeSelection();\n };\n\n const handleUpdateClick = () => {\n if (currentKey) {\n const additionalProperties = {\n 'application_access_token_expiry_time': applicationTokenExpiryTime,\n 'refresh_token_expiry_time': refreshTokenExpiryTime,\n 'id_token_expiry_time': idTokenExpiryTime,\n 'user_access_token_expiry_time': userAccessTokenExpiryTime,\n 'bypassClientCredentials': isPublicClientEnabled ? \"true\" : \"false\",\n 'pkceMandatory': isPkceEnabled ? \"true\" : \"false\",\n };\n const callbackUrlList = callbackUrls?.toString();\n const updatedKey = {\n ...currentKey,\n callbackUrl: callbackUrlList,\n supportedGrantTypes: selectedGrantTypes,\n additionalProperties: additionalProperties\n };\n dispatchUpdateAppKey(applicationId as string, updatedKey);\n handleTokenExchangeTypeSelection();\n } else {\n const errorMessage = intl.formatMessage({\n id: 'application.productionKeys.oAuth.update.keyNotFound.error',\n defaultMessage: 'No key found for the environment type: ' + keyType\n });\n dispatch(setErrorNotification(errorMessage));\n }\n };\n\n const handleSelectedGrantTypes = (event: ChangeEvent) => {\n const {checked, value} = event.target;\n if (checked) {\n setSelectedGrantTypes([...selectedGrantTypes, value]);\n if (value === TOKEN_EXCHANGE_GRANT_TYPE) {\n setTokenExchangeFlag(true)\n }\n } else {\n setSelectedGrantTypes(selectedGrantTypes.filter((item) => {\n if (value === TOKEN_EXCHANGE_GRANT_TYPE) {\n return !(item === REFRESH_TOKEN_GRANT_TYPE || item === TOKEN_EXCHANGE_GRANT_TYPE);\n } else {\n return value !== item;\n }\n }));\n if (value === TOKEN_EXCHANGE_GRANT_TYPE) {\n setTokenExchangeFlag(false);\n setIsPublicClientEnabled(false);\n }\n if (value === AUTHORIZATION_CODE_GRANT_TYPE) {\n setIsPkceEnabled(false);\n }\n }\n };\n\n const onChangeCallbackUrl = (event: ChangeEvent) => {\n const callbackUrl = event.target.value;\n setCallbackUrlError(validateCallbackUrl(callbackUrl));\n setCallbackUrl(callbackUrl);\n };\n\n const handleClickCurlOpen = () => {\n setCurlOpen(true);\n };\n\n const handleClickCurlClose = () => {\n setCurlOpen(false);\n };\n\n const handleClickTokenOpen = () => {\n fetchAccessTokenForApp();\n setTokenOpen(true);\n };\n\n const setPermissionsCallback = (permissions: string[]) => {\n setSelectedScopes(permissions);\n }\n\n const handleClickGenerate = () => {\n if (selectedScopes.length !== 0) {\n setSubscriptionScopes(selectedScopes);\n }\n setToken('');\n setIsTokenGenerating(true);\n generateAccessToken(selectedScopes);\n trackAppTestKeyGeneration(`${applicationId}`);\n }\n\n const handleClickTokenClose = () => {\n setTokenOpen(false);\n setToken('');\n setSelectedScopes(subscriptionScopes);\n setIsTokenGenerating(false);\n dispatch(createOauthTokenSuccess({ accessToken: '', tokenScopes: [], validityTime: 0 }));\n };\n\n const handleTabChange = (event: React.ChangeEvent, newValue: number) => {\n\n setSelectedTab(newValue);\n };\n\n const handlePublicClientChange = () => {\n if (!isPublicClientEnabled) {\n setSelectedGrantTypes(selectedGrantTypes.filter(item => item !== CLIENT_CREDENTIALS_GRANT_TYPE));\n }\n setIsPublicClientEnabled(!isPublicClientEnabled);\n }\n\n const handleEnablePkceChange = () => {\n setIsPkceEnabled(!isPkceEnabled);\n };\n\n const handleClientIdChange = (clientId: string) => {\n setClientId(clientId);\n };\n\n const isExternalIDPsConfigured = () => (idpList.filter((idp) => idp.type !== \"default\" &&\n idp.enabled).length) > 0\n\n const publicClientDescription = (\n \n );\n\n const enablePkceDescription = (\n \n );\n\n const getTokenGenerateBtnText = () => {\n return intl.formatMessage({\n id: 'components.app.appProductionKeys.oAuth.tokenGeneration.buttonText',\n defaultMessage: 'Generate Token'\n });\n };\n\n const getTokenGenerateCurlBtnText = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oauth.tokenGeneration.curl.buttonText',\n defaultMessage: 'cURL'\n });\n };\n\n const getCallbackUrlHelperText = () => {\n if (callbackUrl) {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.callbackUrl.action.helperText',\n defaultMessage: \"Press enter to add\"\n });\n }\n };\n\n const getApplicationTokenHelperText = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.applicationAccessTokenExpiryTime.helperText',\n defaultMessage: 'Type application access token expiry time in seconds'\n });\n };\n\n const userTokenHelperText = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.userAccessTokenExpiryTime.helperText',\n defaultMessage: 'Type user access token expiry time in seconds'\n });\n };\n\n const getRefreshTokenHelperText = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.refreshTokenExpiryTime.helperText',\n defaultMessage: 'Type refresh token expiry time in seconds'\n });\n };\n\n const getIdTokenHelperText = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.idTokenExpiryTime.helperText',\n defaultMessage: 'Type ID token expiry time in seconds'\n });\n };\n\n const getUserKeysTooltip = () => {\n if (!isCredentialsAvailable) {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.keys.userKeys',\n defaultMessage: 'Generate Application Keys'\n });\n } else if (isCredentialsAvailable && !isTokenExchangeSelected) {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.tokenExchange.notSelected',\n defaultMessage: 'Update the Application Keys by enabling token exchange'\n });\n } else {\n return \"\"\n }\n }\n\n const getPublicClientDisabledTooltip = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.publicClient.disabled.tooltip',\n defaultMessage: 'Please disable the client credentials grant type to allow authentication without the client secret'\n });\n }\n\n const getRefreshTokenDisabledTooltip = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.refreshToken.tooltip',\n defaultMessage: 'Please enable the token exchange grant type to enable refresh token grant type'\n });\n }\n\n const getExternalIdpAddedTooltip = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.tokenExchange.tooltip',\n defaultMessage: 'Please add an external identity provider to use this grant type'\n });\n }\n\n const getClientCredentialsDisabledTooltip = () => {\n return intl.formatMessage({\n id: 'application.productionKeys.oAuth.clientCredentials.tooltip',\n defaultMessage: 'Please disallow authentication without the client secret to use client credentials grant type'\n });\n }\n\n const confirmationDialogI18n = {\n title: intl.formatMessage({\n id: 'application.productionKeys.oAuth.clientCredentials.editConfirmationDialog.title',\n defaultMessage: 'Update Client ID'\n }),\n content: intl.formatMessage({\n id: 'application.productionKeys.oAuth.clientCredentials.editConfirmationDialog.content',\n defaultMessage: 'Editing the client ID may impact existing client requests. Are you sure you want to proceed?'\n }),\n okayButtonLabel: intl.formatMessage({\n id: 'application.productionKeys.oAuth.clientCredentials.editConfirmationDialog.okButtonLabel',\n defaultMessage: 'Update'\n }),\n cancelButtonLabel: intl.formatMessage({\n id: 'application.productionKeys.oAuth.clientCredentials.editConfirmationDialog.cancelButtonLabel',\n defaultMessage: 'Cancel'\n }),\n loadingText: intl.formatMessage({\n id: 'application.productionKeys.oAuth.clientCredentials.editConfirmationDialog.loadingText',\n defaultMessage: 'Saving...'\n })\n };\n\n const buttonDisabled = isLoading || applicationTokenExpiryError !== \"\" || refreshTokenExpiryError !== \"\"\n || idTokenExpiryError !== \"\" || !disableCallbackUrl && callbackUrlError !== \"\" || userAccessTokenExpiryError !== \"\"\n || !disableCallbackUrl && callbackUrls && callbackUrls.length == 0 || selectedGrantTypes?.length == 0 \n || (selectedGrantTypes?.length == 1 && selectedGrantTypes?.includes(REFRESH_TOKEN_GRANT_TYPE));\n\n const NoKeysHelpText = () => {\n return (\n \n \n \n \n \n \n \n );\n }\n\n const GenerateKeysButton = () => {\n return (\n \n \n \n \n \n \n \n );\n }\n\n const getGrantTypeDisableTooltips = (grantType: GrantType) => {\n return (\n (\n !(isAsgardeoKeyManagerAvailable() && isResidentKeyManagerNotUsed) &&\n isExternalIDPsConfigured() && !isTokenExchangeSelected &&\n grantType.value === REFRESH_TOKEN_GRANT_TYPE &&\n getRefreshTokenDisabledTooltip()\n ) ||\n !(isExternalIDPsConfigured()) && (\n grantType.value === REFRESH_TOKEN_GRANT_TYPE ||\n grantType.value === TOKEN_EXCHANGE_GRANT_TYPE\n ) && getExternalIdpAddedTooltip() ||\n (\n isPublicClientEnabled &&\n grantType.value === CLIENT_CREDENTIALS_GRANT_TYPE &&\n getClientCredentialsDisabledTooltip()\n ) || ''\n )\n }\n\n const handleDelete = (url: string) => {\n const existinUrls = [... callbackUrls]\n existinUrls.splice(existinUrls.indexOf(url), 1)\n setCallbackUrls(existinUrls);\n };\n\n const isGrantTypeDisabled = (grantType: GrantType) => {\n return (\n (\n isPublicClientEnabled &&\n grantType.value === CLIENT_CREDENTIALS_GRANT_TYPE\n ) || \n (\n !(isAsgardeoKeyManagerAvailable() && isResidentKeyManagerNotUsed) &&\n !(isExternalIDPsConfigured()) &&\n (\n grantType.value === REFRESH_TOKEN_GRANT_TYPE ||\n grantType.value === TOKEN_EXCHANGE_GRANT_TYPE\n )\n ) ||\n (\n !(isAsgardeoKeyManagerAvailable() && isResidentKeyManagerNotUsed) &&\n isCredentialsAvailable &&\n isExternalIDPsConfigured() &&\n !isTokenExchangeSelected &&\n grantType.value === REFRESH_TOKEN_GRANT_TYPE\n ) \n )\n }\n\n const onPressEnter = (event: KeyboardEvent) => {\n if(event.key === 'Enter' && callbackUrlError == \"\"){\n if (callbackUrls?.includes(callbackUrl)) {\n setCallbackUrlError(intl.formatMessage({\n id: 'application.productionKeys.oAuth.callbackUrl.duplicate.helperText',\n defaultMessage: 'This redirect URL is already added.'\n }));\n } else {\n callbackUrls.push(callbackUrl);\n setCallbackUrl('');\n }\n \n }\n };\n\n const setIdp = (selection: any) => {\n const idp = idpList.find((idp) => idp.name === selection.target.value);\n if (idp) {\n setSelectedIdp(idp);\n } else {\n setSelectedIdp(initialIDP);\n }\n };\n\n const handleClientAdd = () => {\n const payload: ApplicationKeyMapping = {\n consumerKey: clientId,\n keyType: keyType,\n keyManager: selectedIdp?.name || '',\n }\n if (applicationId && clientId && selectedIdp) {\n dispatchSetApplicationKeyMap(applicationId, payload);\n }\n };\n\n const confirmUpdate = () => {\n if (currentKey) {\n const updatedKey = {\n ...currentKey,\n consumerKey: clientId,\n supportedGrantTypes: selectedGrantTypes,\n additionalProperties: additionalProperties\n };\n dispatchUpdateAppKey(applicationId as string, updatedKey);\n }\n setIsDialogOpen(false);\n };\n\n const cancelUpdate = () => {\n setIsDialogOpen(false);\n setClientEditing(false);\n };\n\n const handleClientEdit = () => {\n setIsDialogOpen(true);\n setClientEditing(true);\n }\n\n const availableExternalIdps = (): any[] => \n idpList.filter((idp: any) => idp.tokenType === IdpRegisterType.EXTERNAL && idp.enabled);\n\n const IdpList = () => {\n return (\n \n {(Settings.devPortalIdPConfigurationFeatureEnabled && idpList?.length === 1 && selectedIdp) ? (\n \n \n \n ) : (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {availableExternalIdps().map((idp: IDP) => (\n \n \n \n ))}\n \n \n \n \n \n )}\n \n )\n }\n\n const ClientEditActions = () => {\n return (\n \n {!isClientEditing && (\n \n )}\n \n );\n };\n\n const TokenEndpointList = () => {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n { getEndpoints().revokeEndpoint && \n \n \n \n \n \n \n \n \n \n \n }\n {(isKeyMapped() || (isAsgardeoKeyManagerAvailable() && isResidentKeyManagerNotUsed))&&\n \n \n \n \n \n \n \n \n \n \n } \n \n )\n };\n\n const AddIdpClientForm = () => {\n return (\n \n \n \n \n \n \n \n \n\n \n setClientId(e.target.value)}\n />\n {!idpRegistered && (\n \n )}\n {idpRegistered && }\n \n \n {!idpRegistered && (\n \n \n \n )}\n {isDialogOpen && (\n \n )}\n \n \n );\n };\n\n const AdvancedConfigContent = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {supportedGrantTypes.map((grantType: GrantType) => (\n \n \n \n \n }\n label={grantType.type}\n labelPlacement=\"end\"\n onChange={handleSelectedGrantTypes}\n />\n \n \n \n ))}\n {selectedGrantTypes && selectedGrantTypes.length === 0 && (\n \n \n \n \n \n \n \n \n )}\n {selectedGrantTypes && selectedGrantTypes.length == 1 && selectedGrantTypes.includes(REFRESH_TOKEN_GRANT_TYPE) && (\n \n \n \n \n \n \n \n \n )}\n \n \n \n {!disableCallbackUrl && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n

    {callbackUrlError}

    \n \n )}\n className={classes.textField}\n data-testid='callback-url'\n />\n {callbackUrls?.map((url: string) => {\n return (\n handleDelete(url)} />\n )\n })}\n
    \n
    \n
    \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n label={publicClientDescription}\n labelPlacement=\"end\"\n onChange={handlePublicClientChange}\n />\n \n \n \n \n {supportedGrantTypes.map((grantType: GrantType) => grantType.value).includes(AUTHORIZATION_CODE_GRANT_TYPE) && (\n \n \n \n \n \n \n \n \n \n \n \n \n }\n label={enablePkceDescription}\n labelPlacement=\"end\"\n onChange={handleEnablePkceChange}\n />\n \n \n \n )}\n\n \n \n \n \n \n \n \n \n
    \n \n
    \n

    {applicationTokenExpiryError}

    \n \n ) : applicationTokenExpiryWarning !== \"\" ? (\n
    \n
    \n \n
    \n

    {applicationTokenExpiryWarning}

    \n
    \n ) : getApplicationTokenHelperText()}\n className={applicationTokenExpiryError === \"\" && applicationTokenExpiryWarning !== \"\" ?\n classes.textFieldWarning : classes.textField}\n data-testid='application-token-expiry-time'\n />\n
    \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n

    {userAccessTokenExpiryError}

    \n \n ): userAccessTokenExpiryWarning !== \"\" ? (\n
    \n
    \n \n
    \n

    {userAccessTokenExpiryWarning}

    \n
    \n ): userTokenHelperText()}\n className={userAccessTokenExpiryError === \"\" && userAccessTokenExpiryWarning !== \"\" ?\n classes.textFieldWarning : classes.textField}\n data-testid='user-token-expiry-time'\n />\n
    \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n

    {refreshTokenExpiryError}

    \n \n }\n className={classes.textField}\n data-testid='refresh-token-expiry-time'\n />\n
    \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n

    {idTokenExpiryError}

    \n \n ) : idTokenExpiryWarning !== \"\" ? (\n
    \n
    \n \n
    \n

    {idTokenExpiryWarning}

    \n
    \n ) : getIdTokenHelperText()}\n className={idTokenExpiryError === \"\" && idTokenExpiryWarning !== \"\" ?\n classes.textFieldWarning : classes.textField}\n data-testid='id-token-expiry-time'\n />\n
    \n \n \n {(ApplicationPermission.hasPermission(AppPermission.WRITE, application, userInfo, user.allowedScopes) && isCredentialsAvailable) &&\n UpdateKeysButton()\n }\n \n \n \n );\n }\n\n const AccordianContent = () => {\n return (\n \n {!isCredentialsAvailable ?\n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n >\n \n \n \n \n \n { ApplicationPermission.hasPermission(AppPermission.WRITE, application, userInfo, user.allowedScopes) &&\n \n {GenerateKeysButton()}\n \n }\n \n \n \n \n \n \n \n
    \n
    \n
    \n \n \n {AdvancedConfigContent()}\n \n
    \n :\n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n >\n \n Advanced Configurations\n \n \n \n {AdvancedConfigContent()}\n \n \n }\n
    \n );\n }\n\n const UpdateKeysButton = () => {\n const updateDisabled = buttonDisabled || !selectedGrantTypes || selectedGrantTypes.length === 0;\n return (\n \n \n \n \n \n \n \n );\n }\n\n const onClickUserKeys = () => {\n setSelectedTab(1);\n }\n\n const managePermissionButtonTooltip = intl.formatMessage({\n id: 'application.productionKeys.oAuth.permissions.managePermissionButton.tooltip',\n defaultMessage: 'Manage permissions with Asgardeo '\n });\n\n const managePermissionButtonLabel = intl.formatMessage({\n id: 'application.productionKeys.oAuth.permissions.managePermissionButton.label',\n defaultMessage: 'Manage Permissions'\n });\n\n const onManagePermissionButtonClick = () => {\n if (asgardeoApplicationId) {\n window.open(\n `${Settings.asgardeoConsoleUrl}/t/${organizationHandle}/app/applications/${asgardeoApplicationId}#tab=application-roles`,\n \"_blank\"\n );\n } else {\n window.open(Settings.permissionAdminPortalUrl + '?' +\n Settings.permissionPortalOrgIdParam + '=' + selectedOrg.uuid, \"_blank\");\n }\n }\n\n const BuiltInKeyManagerWarning = () => {\n return (\n \n \n \n \n \n )\n }}\n />\n \n \n }\n testId='built-in-key-manager-usage-warning'\n />\n )\n }\n\n const CredentialsAvailableSwitch = () => {\n if (isCredentialsAvailable) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n () => {\n if (!isGenerateTokenDisabled) {\n return (\n \n \n \n \n : undefined}\n id='generate-token-btn'\n disabled={isGenerateTokenDisabled}\n />\n {tokenOpen &&\n \n }\n \n \n \n {curlOpen &&\n \n }\n \n \n {!(isAsgardeoKeyManagerAvailable() && isResidentKeyManagerNotUsed) &&\n \n \n \n \n \n \n )\n }}\n />\n \n \n }\n testId='test-token-doc-info'\n />\n \n }\n \n )\n } else if (!(isExternalIDPsConfigured() && isCredentialsAvailable)) {\n return (\n \n \n \n \n \n \n )\n }}\n />\n \n \n }\n testId='test-token-doc-warning'\n /> \n \n )\n } else {\n return (\n \n \n \n \n \n \n )\n }}\n />\n \n \n }\n testId='test-token-user-keys-warning'\n /> \n \n )\n } \n }\n }\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n {Settings.permissionAdminPortalEnabled && (\n \n \n }\n disabled={isManagePermissionButtonDisabled}\n variant='text'\n >\n \n {managePermissionButtonLabel}\n \n \n \n \n )}\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n );\n } else {\n return (\n \n { ((Settings.devPortalIdPConfigurationFeatureEnabled && idpList?.length > 0) || availableExternalIdps().length > 0) && }\n { Settings.devPortalIdPConfigurationFeatureEnabled && !isAsgardeoKeyManagerAvailable() && isAdminUser(user.allowedScopes) && idpList?.length == 1 && selectedIdp?.type === 'default' ? (\n \n \n \n \n \n \n \n ) : (\n \n \n \n )}\n \n );\n }\n };\n\n const ApplicationKeysContent = () => {\n return (\n \n { isKeyMapped() ?\n <>\n \n \n \n \n \n {ApplicationPermission.hasPermission(AppPermission.WRITE, application, userInfo, user.allowedScopes) && AddIdpClientForm()}\n \n \n \n \n \n : \n <>\n \n {CredentialsAvailableSwitch()}\n \n \n }\n \n { !currentKey && selectedIdp && selectedIdp?.type !== 'default' && selectedIdp?.type !== APPDEV_STS_KEY_MANAGER_TYPE &&\n selectedIdp?.name !== defaultAsgardeoKeyManagerName ? \n ApplicationPermission.hasPermission(AppPermission.WRITE, application, userInfo, user.allowedScopes) && AddIdpClientForm() : \n !isKeyMapped() && AccordianContent()\n }\n \n \n );\n };\n\n const SelectedIDP = () => {\n return (\n \n \n \n \n    :\n \n \n \n \n )\n }\n\n const OauthContent = () => {\n if (isLoading) {\n return (\n
    \n \n
    \n );\n } else {\n return (\n \n {isAsgardeoKeyManagerAvailable() && isCredentialsAvailable && !isKeyFromAsgardeoKM && !isKeyMapped() && appDevSTSList?.length === 0 &&\n \n \n \n \n \n }\n testId='resident-key-manager-usage-warning'\n />\n }\n {!isAsgardeoKeyManagerAvailable() && isExternalIDPsConfigured() ? (\n <>\n \n \n\n {!isAsgardeoKeyManagerAvailable() && isExternalIDPsConfigured() && isTokenExchangeSelected && isCredentialsAvailable && (\n \n )}\n {!isAsgardeoKeyManagerAvailable() && isExternalIDPsConfigured() && isTokenExchangeSelected && !isCredentialsAvailable && (\n \n \n \n \n \n )}\n\n \n \n {ApplicationKeysContent()}\n \n {\n !isAsgardeoKeyManagerAvailable() && isExternalIDPsConfigured() && (\n \n {isCredentialsAvailable && isTokenExchangeSelected &&\n \n }\n\n \n )\n }\n \n ) : (\n <>\n \n \n \n {ApplicationKeysContent()}\n \n )}\n \n \n )\n }\n }\n\n return (\n
    \n
    \n \n {OauthContent()}\n
    \n );\n}\n\nconst mapDispatchToProps = {\n dispatchGenerateAppKey: createAppKeys,\n dispatchFetchAppKeys: fetchAppKeys,\n dispatchUpdateAppKey: updateApplicationKey,\n dispatchGenerateApplicationToken: generateApplicationToken,\n dispatchFetchIDPs: fetchIDPs,\n dispatchFetchSubscriptionsList: fetchSubscriptions,\n dispatchSetApplicationKeyMap: mapApplicationKeys,\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n applicationReducer: state.applicationReducer,\n applicationKeysReducer: state.applicationKeysReducer,\n userReducer: state.userReducer,\n idpReducer: state.idpReducer,\n subscriptionReducer: state.subscriptionsReducer,\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OauthKey);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport { connect } from \"react-redux\";\nimport { Route, Switch } from \"react-router-dom\";\n\nimport { ApplicationReducer, ApplicationState, KeyType, UserReducer } from \"../../../data/interfaces\";\n\nimport ApiKey from \"./Apikey\";\nimport OauthKey from \"./Oauth\";\nimport { PATH_SEPARATOR } from \"../../../data/constants\";\n\ninterface ProductionKeyProps {\n applicationReducer: ApplicationReducer\n userReducer: UserReducer\n}\n\nfunction AppProductionKeys(props: ProductionKeyProps) {\n const applicationReducer = props.applicationReducer;\n const appList = applicationReducer?.applications?.list;\n const application = appList?.length > 0 ? appList[0] : undefined;\n const applicationId = application ? application.applicationId : ':applicationId';\n const { selectedOrg } = props.userReducer;\n const selectedOrgHandleName = selectedOrg.handle;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n applicationReducer: state.applicationReducer,\n userReducer: state.userReducer\n }\n};\n\nexport default connect(mapStateToProps)(AppProductionKeys);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from \"react\";\n\nimport { Button, Typography } from '@material-ui/core';\nimport classNames from \"classnames\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n primaryBtn: {\n textTransform: \"capitalize\",\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n marginLeft: theme.spacing(2),\n fontSize: 12,\n boxShadow: \"inset 0 0 0 1px rgba(0,0,0,0.06), 0 1px 2px 0 rgba(0,0,0,0.15)\",\n \"&:hover\": {\n backgroundColor: \"#5464D0\",\n color: theme.palette.common.white,\n boxShadow: \"inset 0 0 0 1px rgba(0,0,0,0.06), 0 2px 4px 0 rgba(0,0,0,0.07)\"\n },\n \"&:focus\": {\n backgroundColor: theme.palette.primary.main,\n background: \"linear-gradient(180deg, rgba(0,0,0,0.07) 0%, rgba(0,0,0,0) 100%)\",\n color: theme.palette.common.white,\n boxShadow: \"inset 0 0 0 1px rgba(0,0,0,0.08), 0 0 0 0 rgba(0,0,0,0.07)\"\n },\n \"&:active\": {\n backgroundColor: theme.palette.primary.main\n }\n },\n rounded: {\n height: theme.spacing(4.5),\n borderRadius: theme.spacing(2.2),\n paddingRight: theme.spacing(2.5)\n },\n disabled : {\n backgroundColor: \"#D5D8EE !important\",\n color: \"#FFFFFF !important\",\n boxShadow: \"0 0 0 0 rgba(0,0,0,0.07)\",\n '&:hover, &:active, &:focus': {\n boxShadow: \"none\"\n }\n },\n iconBtnText: {\n marginLeft: -theme.spacing(0.5),\n marginTop: -theme.spacing(0.25)\n },\n btnText: {\n marginTop: -theme.spacing(0.25)\n },\n}));\n\nexport interface ButtonProps {\n children?: string;\n onClick: (param?: any) => void,\n text?: string;\n variant?: string;\n className?: string;\n role?: string;\n disableRipple?: boolean;\n disableFocusRipple?: boolean;\n startIcon?: JSX.Element;\n fullWidth?: boolean;\n disabled?: boolean;\n btnSize?: \"medium\" | \"large\" | \"small\";\n dataTestId?: string;\n id?: string;\n}\n\nexport function PrimaryButtonRounded(props: ButtonProps) {\n const classes = useStyles();\n const { text, startIcon, onClick, fullWidth, disabled, className, btnSize, dataTestId, id } = props;\n return (\n \n {text ? (\n \n {text}\n \n ) : null}\n \n );\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { ChangeEvent, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { connect } from \"react-redux\";\nimport { useIntl } from 'react-intl';\n\nimport { MenuItem, Select } from \"@material-ui/core\";\nimport { ApplicationState, UserReducer } from \"../../../data/interfaces\";\n\nimport { createSubscription } from \"../../../data/operations\";\nimport PrimaryButton from \"../../../elements/PrimaryButton\";\n\nimport { useStyles } from \"./styles\";\nimport Settings from '../../../conf/settings';\n\ninterface ActionProps {\n applicationId?: string,\n apiId?: string,\n apiName?: string,\n apiVersion?: string,\n userReducer: UserReducer,\n throttlingPolicies: string[],\n alreadySubscribed?: boolean,\n dispatchCreateSubscription: (appId: string, organizationId: string, apiId: string,\n throttlingPolicy: string, versionRange?: string) => void,\n}\n\nfunction Actions(props: ActionProps) {\n const {\n applicationId,\n apiId,\n apiName,\n apiVersion,\n userReducer,\n throttlingPolicies,\n alreadySubscribed,\n dispatchCreateSubscription\n } = props;\n const classes = useStyles();\n const intl = useIntl();\n const { orgs: userOrganizations, selectedOrg } = userReducer;\n const [throttlingPolicy, setThrottlingPolicy] = useState(throttlingPolicies[0]);\n\n const subscriptionButtonLabel = intl.formatMessage({\n id: 'application.subscriptions.createDialog.subscribeButton.label',\n defaultMessage: 'Add'\n });\n\n const onThrottlingPolicyChange = (event: ChangeEvent) => {\n const throttlingPolicy = event.target.value;\n setThrottlingPolicy(throttlingPolicy);\n };\n\n const subscribeToApi = () => {\n const organizationId = selectedOrg.uuid;\n dispatchCreateSubscription(\n applicationId as string,\n organizationId,\n apiId as string,\n throttlingPolicy,\n Settings.intelligentRoutingFeatureEnabled && apiVersion?.startsWith(\"v\")\n ? apiVersion.split(\".\")[0] : undefined\n );\n };\n\n const SelectPolicy = (apiId: string, apiName: string, policies: string[]) => {\n return (\n \n {policies?.map((policy) => (\n \n {policy}\n \n ))}\n \n );\n };\n\n const SubscribeBtn = (apiName: string) => {\n return (\n \n );\n };\n\n return (\n
    \n
    \n {SelectPolicy(apiId as string, apiName as string, throttlingPolicies)}\n {SubscribeBtn(apiName as string)}\n
    \n
    \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n userReducer: state.userReducer\n }\n};\n\nconst mapDispatchToProps = {\n dispatchCreateSubscription: createSubscription,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Actions);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { ChangeEvent, forwardRef, Ref, RefAttributes, useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport debounce from \"lodash.debounce\";\n\nimport { Box, Dialog, DialogContent, DialogTitle, IconButton, TextField, Typography } from \"@material-ui/core\";\nimport { ArrowDropDown, ChevronLeft, ChevronRight, Close, Info, Search } from \"@material-ui/icons\";\nimport MaterialTable, { Column, MTablePagination } from \"@material-table/core\";\n\nimport {\n ApiReducer, ApplicationReducer, ApplicationState, SubscriptionsReducer, ToSubscribeAttributes, UserReducer\n} from \"../../../data/interfaces\";\nimport { fetchApiListAuthenticated } from \"../../../data/operations\";\nimport { PreLoaderLogo } from \"../../../elements/PreLoaderLogo\";\n\nimport Actions from \"./Actions\";\nimport { useStyles } from './styles';\nimport { date } from \"joi\";\nimport { API_COUNT_PER_PAGE, API_PAGINATION_QUERY, MAJOR_VERSION, VALUE_ZERO } from \"../../../data/constants\";\nimport { formatSubscriptionApiVersion, getApiMajorVersionRange, Version } from '.';\nimport Settings from '../../../conf/settings';\n\ninterface CreateSubscriptionProps {\n open: boolean,\n onClose: () => void,\n applicationReducer: ApplicationReducer,\n subscriptionReducer: SubscriptionsReducer,\n apiReducer: ApiReducer,\n userReducer: UserReducer,\n dispatchFetchApis: (\n organizationId: string,\n pagination?: string,\n requireThumbnails?: boolean,\n aggregateBy?: string\n ) => void,\n}\n\nfunction CreateSubscription(props: CreateSubscriptionProps) {\n const { open, onClose, subscriptionReducer, applicationReducer, apiReducer, userReducer, dispatchFetchApis } = props;\n const classes = useStyles();\n const intl = useIntl();\n const subscriptions = subscriptionReducer?.subscriptions;\n const apis = apiReducer?.apiList;\n const isApisFetching = apiReducer?.loading;\n const { orgs: userOrganization, selectedOrg } = userReducer;\n const isSubscriptionsFetching = subscriptionReducer?.isLoading;\n const appList = applicationReducer?.applications?.list;\n const application = appList?.length > 0 ? appList[0] : undefined;\n const applicationId = application?.applicationId;\n const [searchQuery, setSearchQuery] = useState('');\n const [updatedApiList, setUpdatedApiList] = useState([]);\n const [subscribedApiList, setSubscribedApiList] = useState<{name: string, versionRange: string}[]>([]);\n const [currentPage, setCurrentPage] = useState(0);\n\n const searchFieldPlaceholder = intl.formatMessage({\n id: 'application.subscriptions.createDialog.searchInput.placeHolder',\n defaultMessage: 'Search API'\n });\n\n const nameColumn = intl.formatMessage({\n id: 'application.subscriptions.createDialog.subscriptionTable.column.name',\n defaultMessage: 'Name'\n });\n\n const versionColumn = intl.formatMessage({\n id: 'application.subscriptions.createDialog.subscriptionTable.column.version',\n defaultMessage: 'Version'\n });\n\n const policyColumn = intl.formatMessage({\n id: 'application.subscriptions.createDialog.subscriptionTable.column.policy',\n defaultMessage: 'Policy'\n });\n\n const tableSearchPlaceholder = intl.formatMessage({\n id: 'application.subscriptions.createDialog.subscriptionTable.searchInput.placeHolder',\n defaultMessage: 'Search API'\n });\n\n const handleSearchFieldChange = (event: ChangeEvent) => {\n handleApiSearch(event.target.value);\n setSearchQuery(event.target.value);\n };\n\n const handleApiSearch = useCallback(debounce((apiDisplayName: string) => {\n let paginationQuery = API_PAGINATION_QUERY\n .replace('{LIMIT}', API_COUNT_PER_PAGE.toString())\n .replace('{OFFSET}', VALUE_ZERO.toString());\n\n if (apiDisplayName) {\n paginationQuery = paginationQuery.concat(\"display-name:\" + encodeURI(apiDisplayName));\n }\n setCurrentPage(0);\n if (Settings.intelligentRoutingFeatureEnabled) {\n dispatchFetchApis(selectedOrg.uuid, paginationQuery, false, MAJOR_VERSION);\n } else {\n dispatchFetchApis(selectedOrg.uuid, paginationQuery, false);\n }\n }, 700), []);\n\n const RenderActionsColumn = (rowData: ToSubscribeAttributes) => {\n if (rowData?.availablePolicies) {\n return (\n );\n } else {\n return (\n \n );\n }\n };\n\n const RenderVersionColumn = (rowData: ToSubscribeAttributes) => {\n return (\n \n );\n }\n\n const getSearchIcon = (props: RefAttributes,\n ref: Ref) => ;\n\n const getNextPageIcon = (props: RefAttributes,\n ref: Ref) => ;\n\n const getPreviousPageIcon = (props: RefAttributes,\n ref: Ref) => ;\n\n const getArrowIcon = (props: RefAttributes,\n ref: Ref) => ;\n\n const SearchField = () => {\n return (\n
    \n \n
    \n );\n };\n\n const toSubColumns = [\n { title: nameColumn, field: 'api', width: '40%' },\n { title: versionColumn, field: 'version', width: '20%', render: RenderVersionColumn },\n { title: policyColumn, field: 'policy', width: '40%', render: RenderActionsColumn }\n ] as Column[];\n\n const tableIcons = {\n Search: forwardRef(getSearchIcon),\n NextPage: forwardRef(getNextPageIcon),\n PreviousPage: forwardRef(getPreviousPageIcon),\n SortArrow: forwardRef(getArrowIcon)\n };\n\n const handlePageChange = (event: React.MouseEvent | null, page: number) => {\n setCurrentPage(page);\n let paginationQuery = API_PAGINATION_QUERY\n .replace('{LIMIT}', API_COUNT_PER_PAGE.toString())\n .replace('{OFFSET}', (page * API_COUNT_PER_PAGE).toString());\n\n if (searchQuery) {\n paginationQuery = paginationQuery.concat(\"display-name:\" + encodeURI(searchQuery));\n }\n\n if (Settings.intelligentRoutingFeatureEnabled) {\n dispatchFetchApis(selectedOrg.uuid, paginationQuery, false, MAJOR_VERSION);\n } else {\n dispatchFetchApis(selectedOrg.uuid, paginationQuery, false);\n }\n }\n\n useEffect(() => {\n updateApiTableData();\n }, [apis]);\n\n useEffect(() => {\n updateSubscribedApiList();\n }, [subscriptions]);\n\n useEffect(() => {\n updateApiTableData();\n }, [subscribedApiList]);\n\n const pagination = (paginationProps: any) => {\n return (\n \n );\n }\n\n const setTableData = () => {\n updateSubscribedApiList();\n const paginationQuery = API_PAGINATION_QUERY\n .replace('{LIMIT}', API_COUNT_PER_PAGE.toString())\n .replace('{OFFSET}', VALUE_ZERO.toString());\n if (Settings.intelligentRoutingFeatureEnabled) {\n dispatchFetchApis(selectedOrg.uuid, paginationQuery, false, MAJOR_VERSION);\n } else {\n dispatchFetchApis(selectedOrg.uuid, paginationQuery, false);\n }\n }\n\n const updateSubscribedApiList = () => {\n const subscribedApiList = subscriptions?.list?.map((subscription) => {\n const apiVersion = subscription?.apiInfo?.version;\n if (apiVersion) {\n const versionRange = Settings.intelligentRoutingFeatureEnabled && apiVersion.startsWith(\"v\")\n ? apiVersion.split('.')[0] : apiVersion;\n return { name: subscription.apiInfo?.name || \"\", versionRange };\n }\n return { name: subscription.apiInfo?.name || \"\", versionRange: \"\" };\n });\n setSubscribedApiList(subscribedApiList);\n }\n\n const updateApiTableData = () => {\n const data: ToSubscribeAttributes[] = [];\n if (apis?.count > 0) {\n apis?.list?.forEach((api) => {\n let subscribed = false;\n if (subscribedApiList?.find(subApi =>\n subApi.name === api.name && (subApi.versionRange === getApiMajorVersionRange(api.version)\n || subApi.versionRange === api.version)\n )) {\n subscribed = true;\n }\n data.push({\n api: api.displayName,\n apiId: api.id,\n version: formatSubscriptionApiVersion(api.version),\n availablePolicies: api.throttlingPolicies,\n hasSubscribed: subscribed\n })\n });\n }\n setUpdatedApiList(data);\n }\n\n const ToSubscribeTable = () => {\n if (updatedApiList.length > 0) {\n return (\n
    \n
    \n \n
    \n
    \n );\n } else {\n return (\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n );\n }\n };\n\n const ConditionalDialogContent = () => {\n if (isApisFetching || isSubscriptionsFetching) {\n return (\n
    \n \n
    \n );\n } else {\n return (\n \n );\n }\n }\n\n const DialogContents = () => {\n return (\n \n \n \n \n {SearchField()}\n {ConditionalDialogContent()}\n \n );\n };\n\n return (\n \n \n {\n onClose ? (\n \n \n \n ) : null\n }\n \n {DialogContents()}\n \n );\n}\n\nconst mapDispatchToProps = {\n dispatchFetchApis: fetchApiListAuthenticated\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n applicationReducer: state.applicationReducer,\n subscriptionReducer: state.subscriptionsReducer,\n apiReducer: state.apiReducer,\n userReducer: state.userReducer\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CreateSubscription);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { ChangeEvent, Fragment, useState } from \"react\";\nimport { FormattedMessage } from 'react-intl';\nimport { connect } from \"react-redux\";\n\nimport { Button, Dialog, DialogActions, DialogContent, MenuItem, Select, Typography } from \"@material-ui/core\";\nimport classNames from \"classnames\";\n\nimport { ApiReducer, ApplicationState, Subscription, UserReducer } from \"../../../data/interfaces\";\nimport { fetchApiDetails, updateSubscription } from \"../../../data/operations\";\n\nimport { useStyles } from './styles';\nimport { PreLoaderLogo } from \"../../../elements/PreLoaderLogo\";\n\ninterface EditSubscriptionProps {\n open: boolean,\n onClose: () => void,\n subscription: Subscription,\n apiReducer: ApiReducer,\n userReducer: UserReducer,\n dispatchUpdateSubscription: (subscriptionId: string, subscription : Subscription, organizationId: string) => void,\n dispatchFetchApiDetails: (apiId: string) => void,\n}\n\nfunction EditSubscription(props: EditSubscriptionProps) {\n const {\n open, onClose, subscription, apiReducer, userReducer, dispatchFetchApiDetails, dispatchUpdateSubscription\n } = props;\n const classes = useStyles();\n const [throttlingPolicy, setThrottlingPolicy] = useState(subscription?.throttlingPolicy);\n const apiId = subscription.apiInfo?.id;\n const isAPIDetailsFetching = apiReducer.loading;\n const throttlingPolicies = apiReducer?.api?.tiers?.map((tier) => { return tier.tierName });\n\n const onThrottlingPolicyChange = (event: ChangeEvent) => {\n setThrottlingPolicy(event.target.value);\n };\n\n const updateSubscription = () => {\n const organizationId = userReducer.selectedOrg.uuid;\n subscription.requestedThrottlingPolicy = throttlingPolicy;\n dispatchUpdateSubscription(subscription.subscriptionId, subscription, organizationId);\n onClose();\n };\n\n const DialogContents = () => {\n if (isAPIDetailsFetching) {\n return (\n
    \n \n
    \n );\n } else {\n return (\n \n \n
    \n \n \n \n \n \n \n \n {throttlingPolicies?.map((policy) => (\n \n {policy}\n \n ))}\n \n
    \n
    \n \n \n \n \n \n \n \n \n
    \n );\n }\n };\n\n return (\n dispatchFetchApiDetails(apiId as string)}\n fullWidth={true}\n maxWidth=\"xs\"\n classes={{paper: classes.dialogRootStyle}}\n >\n \n \n );\n}\n\nconst mapDispatchToProps = {\n dispatchUpdateSubscription: updateSubscription,\n dispatchFetchApiDetails: fetchApiDetails\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n userReducer: state.userReducer\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EditSubscription);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { forwardRef, Ref, RefAttributes, useLayoutEffect, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { connect } from \"react-redux\";\nimport { useHistory } from 'react-router-dom';\n\nimport { Box, Button, CircularProgress, Container, Grid, Tooltip, Typography } from \"@material-ui/core\";\nimport {\n AddRounded, ChevronLeft, ChevronRight, Info, FileCopyRounded, CheckCircleRounded\n} from \"@material-ui/icons\";\nimport classNames from \"classnames\";\nimport MaterialTable, { Column } from \"@material-table/core\";\n\nimport {\n ApplicationReducer, ApplicationState, SubscribedApiScopesReducer, Subscription, SubscriptionsReducer, UserReducer\n} from \"../../../data/interfaces\";\nimport { deleteSubscription, fetchSubscribedApiScopes, fetchSubscriptions } from \"../../../data/operations\";\nimport { PreLoaderLogo } from \"../../../elements/PreLoaderLogo\";\nimport { PrimaryButtonRounded } from \"../../../elements/PrimaryButtonRounded\";\nimport { Status } from \"../../../elements/Status\";\nimport AppInfoBar from \"../../shared/AppInfoBar\";\nimport { ConfirmationDialog } from \"../../shared/ConfirmationDialog/ConfirmationDialog\";\n\nimport CreateSubscription from \"./CreateSubscriptionDialog\";\nimport EditSubscriptionDialog from \"./EditSubscriptionDialog\";\nimport \"./style.scss\";\nimport { useStyles } from './styles';\nimport {PATH_SEPARATOR} from \"../../../data/constants\";\nimport {trackAddingAppSubscription} from \"../../../util/app-insights\";\nimport CustomIcons from '../../../icons/CustomIcons';\nimport Settings from '../../../conf/settings';\nimport { isCustomSubPoliciesEnabled } from '../../../data/utils';\nimport { ApplicationPermission } from '../../../util/app-permissions';\nimport { AppPermission } from '../../../data/emus';\n\ninterface RowAttributes {\n apiId?: string;\n api?: string;\n version?: string;\n lifecycleStatus?: string;\n subscriptionTier?: string;\n requestedSubscriptionTier?: string;\n subscriptionStatus?: string;\n subscription: Subscription;\n}\n\ninterface AppSubscriptionsProps {\n applicationReducer: ApplicationReducer,\n subscriptionReducer: SubscriptionsReducer,\n userReducer: UserReducer,\n subscribedApiScopesReducer: SubscribedApiScopesReducer,\n dispatchFetchSubscriptionsList: (applicationId: string, organizationId: string, type: string, \n limit?: number, offset?: number) => void,\n dispatchDeleteSubscription: (subscriptionId: string) => void,\n dispatchFetchSubscribedApiScopes: (organizationId: string, apiIds: string[]) => Promise,\n}\n\nexport const formatSubscriptionApiVersion = (apiVersion: string, versionRange = true): string => {\n if (versionRange) {\n const majorVersionRange = getApiMajorVersionRange(apiVersion);\n return majorVersionRange ? majorVersionRange.concat(\".*\") : apiVersion;\n } else {\n return apiVersion;\n }\n}\n\nexport const formattedLifeCycleStatus = (text: string): string => {\n const words = text.split(\" \");\n let output = \"\";\n for (const word of words) {\n if (word.length > 0) {\n output += word[0].toUpperCase() + word.slice(1).toLowerCase() + \" \";\n }\n return output.trim();\n }\n return output;\n};\n\nexport const getApiMajorVersionRange = (version: string) => {\n if (version.startsWith(\"v\") && Settings.intelligentRoutingFeatureEnabled) {\n return version.split(\".\")[0];\n } else {\n return null;\n }\n}\n\nexport const Version = (versionProps: { version: string }) => {\n const { version } = versionProps;\n return (\n \n \n {version.replace(\".*\", \"\")}\n \n \n );\n}\n\nexport const Plan = ({ rowData }: { rowData: RowAttributes }) => {\n const { subscriptionTier, requestedSubscriptionTier, subscriptionStatus } =\n rowData;\n const tooltipContent = (\n <>\n Current subscription: {subscriptionTier}\n {subscriptionStatus === \"TIER_UPDATE_PENDING\" && (\n Pending Update: {requestedSubscriptionTier}\n )}\n \n );\n return (\n \n \n {subscriptionTier}\n \n \n );\n};\n\n\nfunction AppSubscriptions(props: AppSubscriptionsProps) {\n const {\n applicationReducer, subscriptionReducer, subscribedApiScopesReducer, dispatchFetchSubscriptionsList,\n dispatchDeleteSubscription, userReducer, dispatchFetchSubscribedApiScopes,\n } = props;\n const appList = applicationReducer?.applications?.list;\n const application = appList?.length > 0 ? appList[0] : undefined;\n const isFetchingSubscriptions = subscriptionReducer.isLoading;\n const isDeletingSubscription = subscriptionReducer.isDeletingSubscription;\n const subscriptionList = subscriptionReducer.subscriptions;\n const selectedOrgHandleName = userReducer.selectedOrg.handle;\n const { userInfo, user } = userReducer;\n const scopes = user.allowedScopes\n const { loading: isSubscribedApiScopesLoading } = subscribedApiScopesReducer;\n const classes = useStyles();\n const history = useHistory();\n const intl = useIntl();\n const [selectedSubscription, setSelectedSubscription] = useState();\n const [openNewSubscriptionWizard, setOpenNewSubscriptionWizard] = useState(false);\n const [openDeleteSubscriptionWizard, setOpenDeleteSubscriptionWizard] = useState(false);\n const [openEditSubscriptionWizard, setOpenEditSubscriptionWizard] = useState(false);\n const [copiedIconVisible, setCopiedIconVisible] = useState(false);\n const [currentPage, setCurrentPage] = useState(0);\n\n let data: RowAttributes[] = [];\n if (subscriptionList?.count > 0) {\n data = subscriptionList.list.map((subscription: Subscription) => {\n return {\n apiId: subscription.apiInfo?.versionInfo?.majorRange?.latestVersionAPIId || subscription.apiInfo?.id,\n api: subscription.apiInfo?.displayName,\n version: formatSubscriptionApiVersion(subscription.apiInfo?.version || '', !!subscription?.versionRange),\n lifecycleStatus: formattedLifeCycleStatus(subscription.apiInfo?.lifeCycleStatus ?? \"\"),\n subscriptionTier: subscription.throttlingPolicy,\n requestedSubscriptionTier: subscription.requestedThrottlingPolicy,\n subscriptionStatus: subscription.status,\n subscription\n }\n });\n }\n const pageSize = data.length > 5 ? 5 : data.length;\n\n useLayoutEffect(() => {\n if (application?.applicationId) {\n const organizationId = userReducer.selectedOrg.uuid;\n /* Todo - Keep this limit and offset as fixed values for now due to the urgency of the fix. \n This will be fixed in near future. \n */\n dispatchFetchSubscriptionsList(application?.applicationId, organizationId, 'application', 150, 0);\n }\n }, [application]);\n\n const onClickDeleteSubscription = (subscription: Subscription) => {\n setSelectedSubscription(subscription);\n setOpenDeleteSubscriptionWizard(true);\n };\n\n const onClickDeleteSubscriptionDialogOk = async () => {\n await dispatchDeleteSubscription(selectedSubscription?.subscriptionId as string);\n setOpenDeleteSubscriptionWizard(false);\n };\n\n const onClickDeleteSubscriptionDialogCancel = () => {\n setOpenDeleteSubscriptionWizard(false);\n };\n\n const onClickEditSubscription = (subscription: Subscription) => {\n if (isCustomSubPoliciesEnabled(userReducer.selectedOrg.uuid)) {\n history.push(\n PATH_SEPARATOR + \n selectedOrgHandleName + \n PATH_SEPARATOR + \n 'applications' + \n PATH_SEPARATOR + \n application?.applicationId + \n '/edit-subscription/' + subscription.subscriptionId);\n } else {\n setSelectedSubscription(subscription);\n setOpenEditSubscriptionWizard(true);\n }\n };\n\n const onClickEditSubscriptionDialogCancel = () => {\n setOpenEditSubscriptionWizard(false);\n };\n\n const onClickCreateSubscriptionDialogCancelButton = () => {\n setOpenNewSubscriptionWizard(false);\n };\n\n const onClickCreateSubscription = () => {\n if (isCustomSubPoliciesEnabled(userReducer.selectedOrg.uuid)) {\n history.push(\n PATH_SEPARATOR + \n selectedOrgHandleName + \n PATH_SEPARATOR + \n 'applications' + \n PATH_SEPARATOR + \n application?.applicationId + \n '/new-subscriptions');\n } else {\n setOpenNewSubscriptionWizard(true);\n trackAddingAppSubscription();\n }\n };\n\n const onClickCopyScopes = async () => {\n const apiIds = subscriptionList.list.map((subscription) => { return subscription.apiInfo?.id });\n const scopes = await dispatchFetchSubscribedApiScopes(userReducer.selectedOrg.uuid, apiIds as string[]);\n if (scopes) {\n const scopesToCopy = scopes.join(' ');\n navigator.clipboard.writeText(scopesToCopy);\n }\n setCopiedIconVisible(true);\n setTimeout(() => {\n setCopiedIconVisible(false);\n }, 2000);\n };\n\n const createSubscriptionText = intl.formatMessage({\n id: 'application.subscriptions.add.button.label',\n defaultMessage: 'Add APIs'\n });\n\n const copyScopesText = intl.formatMessage({\n id: 'components.app.appSubscriptions.index.copyScopes.button.label',\n defaultMessage: 'Copy Scopes'\n });\n\n const apiColumn = intl.formatMessage({\n id: 'application.subscriptions.table.column.api',\n defaultMessage: 'API'\n });\n\n const versionColumn = intl.formatMessage({\n id: 'application.subscriptions.table.column.version',\n defaultMessage: 'VERSION'\n });\n\n const lcStatusColumn = intl.formatMessage({\n id: 'application.subscriptions.table.column.lifecycleStatus',\n defaultMessage: 'LIFECYCLE STATUS'\n });\n\n const planColumn = intl.formatMessage({\n id: 'application.subscriptions.table.column.plan',\n defaultMessage: 'SUBSCRIPTION PLAN'\n });\n\n const statusColumn = intl.formatMessage({\n id: 'application.subscriptions.table.column.status',\n defaultMessage: 'STATUS'\n });\n\n const actionsColumn = intl.formatMessage({\n id: 'application.subscriptions.table.column.actions',\n defaultMessage: 'ACTIONS'\n });\n\n const confirmationDialogI18n = {\n title: intl.formatMessage({\n id: 'application.subscriptions.deleteConfirmationDialog.title',\n defaultMessage: 'Delete Subscription'\n }),\n content: intl.formatMessage({\n id: 'application.subscriptions.deleteConfirmationDialog.content',\n defaultMessage: 'Are you sure you want to delete the subscription?'\n }),\n okayButtonLabel: intl.formatMessage({\n id: 'application.subscriptions.deleteConfirmationDialog.okButtonLabel',\n defaultMessage: 'Delete'\n }),\n cancelButtonLabel: intl.formatMessage({\n id: 'application.subscriptions.deleteConfirmationDialog.cancelButtonLabel',\n defaultMessage: 'Cancel'\n }),\n loadingText: intl.formatMessage({\n id: 'application.subscriptions.deleteConfirmationDialog.loadingText',\n defaultMessage: 'Deleting...'\n })\n };\n\n const getNextPageIcon = (props: RefAttributes,\n ref: Ref) => ;\n\n const getPreviousPageIcon = (props: RefAttributes,\n ref: Ref) => ;\n\n\n const ApiColumn = (rowData: RowAttributes) => {\n return (\n history.push(PATH_SEPARATOR + selectedOrgHandleName + '/apis/' + rowData.apiId)}\n className={classes.apiNameColumn}\n >\n {rowData.api}\n \n );\n };\n\n const StatusColumn = (rowData: RowAttributes) => {\n return (\n \n );\n };\n\n const ActionsColumn = (rowData: RowAttributes) => {\n return (\n \n );\n };\n\n const VersionColumn = (rowData: RowAttributes) => {\n return (\n \n );\n };\n\n const PlanColumn = (rowData: RowAttributes) => {\n return ;\n };\n\n \n\n const createBtnDisableToolTip = intl.formatMessage({\n id: 'application.subscriptions.add.button.lackOfPermissionTooltip',\n defaultMessage: \"You don't have permission to add subscriptions from this application\"\n });\n\n const CreateBtn = (disabled?: boolean) => {\n return (\n
    \n \n \n }\n text={createSubscriptionText}\n className={classes.addApiBtn}\n disabled={disabled}\n />\n \n \n
    \n \n );\n };\n\n const CopyScopesBtn = () => {\n return (\n : }\n text={copyScopesText}\n className={classes.copyScopesBtn}\n disabled={isSubscribedApiScopesLoading}\n />\n );\n };\n\n const DeleteBtn = (subscription: Subscription, disabled?: boolean) => {\n return (\n onClickDeleteSubscription(subscription)}\n className={classNames(classes.deleteBtn, {\n [classes.disabled]: disabled\n })}\n disabled={disabled}\n >\n \n \n \n \n );\n };\n\n const EditBtn = (subscription: Subscription, disabled?: boolean) => {\n return (\n onClickEditSubscription(subscription)}\n className={classNames(classes.hoverBtn, classes.editBtn, {\n [classes.disabled]: disabled\n })}\n disabled={disabled}\n >\n \n \n \n \n );\n };\n\n const editButtonDisabledDueToPermissionTooltip = intl.formatMessage({\n id: 'application.subscriptions.edit.button.lackOfPermissionTooltip',\n defaultMessage: \"You don't have permission to edit this subscription\"\n });\n\n const deleteButtonDisabledDueToPermissionTooltip = intl.formatMessage({\n id: 'application.subscriptions.delete.button.lackOfPermissionTooltip',\n defaultMessage: \"You don't have permission to delete this subscription\"\n });\n\n const editButtonDisabledDueToBlockedTooltip = intl.formatMessage({\n id: 'application.subscriptions.edit.button.subscriptionDisabledTooltip',\n defaultMessage: \"Editing is only allowed for active subscriptions\"\n });\n\n const Actions = (btnProps: {subscription: Subscription}) => {\n const { subscription } = btnProps;\n const hasPermission = ApplicationPermission.hasPermission(AppPermission.WRITE, application, userInfo, scopes);\n const isEditDisabled = (subscription.status !== \"UNBLOCKED\" && subscription.status !== \"APPROVED\") || !hasPermission;\n const isDeleteDisabled = !hasPermission;\n \n const getEditTooltipText = () => {\n if (!hasPermission) {\n return editButtonDisabledDueToPermissionTooltip;\n }\n return isEditDisabled ? editButtonDisabledDueToBlockedTooltip : \"\";\n };\n\n return (\n
    \n
    \n \n \n {EditBtn(subscription, isEditDisabled)}\n \n \n \n \n {DeleteBtn(subscription, isDeleteDisabled)}\n \n \n
    \n
    \n );\n };\n\n const tableIcons = {\n NextPage: forwardRef(getNextPageIcon),\n PreviousPage: forwardRef(getPreviousPageIcon)\n };\n\n const columns = [\n { title: apiColumn, field: 'api', width: '25%', render: ApiColumn },\n { title: versionColumn, field: 'version', width: '10%', render: VersionColumn },\n { title: lcStatusColumn, field: 'lifecycleStatus', width: '15%' },\n { title: planColumn, field: 'subscriptionTier', width: '18%', render: PlanColumn },\n { title: statusColumn, field: 'subscriptionStatus', width: '16%', render: StatusColumn },\n { title: actionsColumn, width: '16%', render: ActionsColumn }\n ] as Column[];\n\n const SubscriptionTable = () => {\n if (data.length > 0 && !isFetchingSubscriptions) {\n return (\n
    \n
    \n \n
    \n
    \n );\n } else {\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n );\n }\n };\n\n const SubscriptionContent = () => {\n if (isFetchingSubscriptions) {\n return (\n
    \n \n
    \n );\n } else {\n const hasCreatePermission = ApplicationPermission.hasPermission(AppPermission.WRITE, application, userInfo, scopes);\n return (\n \n \n \n
    \n \n \n \n {CreateBtn(!hasCreatePermission)}\n {subscriptionList.list?.length > 0 && }\n {isSubscribedApiScopesLoading && }\n
    \n
    \n \n \n \n
    \n
    \n );\n }\n };\n\n return (\n
    \n
    \n \n \n {openNewSubscriptionWizard &&\n \n }\n {openEditSubscriptionWizard &&\n \n }\n {openDeleteSubscriptionWizard &&\n \n }\n
    \n )\n}\n\nconst mapDispatchToProps = {\n dispatchFetchSubscriptionsList: fetchSubscriptions,\n dispatchDeleteSubscription: deleteSubscription,\n dispatchFetchSubscribedApiScopes: fetchSubscribedApiScopes,\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n applicationReducer: state.applicationReducer,\n subscriptionReducer: state.subscriptionsReducer,\n subscribedApiScopesReducer: state.subscribedApiScopesReducer,\n userReducer: state.userReducer\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AppSubscriptions);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useEffect } from 'react';\nimport { makeStyles, Theme } from '@material-ui/core/styles';\n\nimport { Grid, Tooltip, Typography } from '@material-ui/core';\nimport { FormattedMessage } from 'react-intl';\nimport { PrimaryButtonRounded} from '../../elements/PrimaryButtonRounded';\nimport { HomeRounded, LockOpenRounded } from '@material-ui/icons';\nimport { useHistory, useParams } from 'react-router-dom';\nimport Settings from '../../conf/settings';\nimport { addExternalUserToOrg } from '../../data/operations';\nimport { connect } from 'react-redux';\nimport { AddExternalUserToOrgReducer, ApplicationState, StorageOperations } from '../../data/interfaces';\nimport { useSnackbar } from 'notistack';\nimport { PreLoaderLogo } from '../../elements/PreLoaderLogo';\nimport { RESOURCE_SIGN_IN, RETURN_TO_PATH, SELECTED_ORG_HANDLE_NAME } from '../../data/constants';\nimport { localStoreOperation, sessionStoreOperation } from '../../data/utils';\n\nconst useStyles = makeStyles((theme: Theme) => ({\n appBarSpacer: {\n minHeight: theme.spacing(16)\n },\n noPermissionTitle: {\n ...theme.custom.noPermission.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n ...theme.custom.homePage.styles\n },\n loaderContainer: {\n width: 'cal(100%-75px)',\n height: '60vh',\n backgroundColor: theme.palette.secondary.light,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n buttonSpacer: {\n minHeight: theme.spacing(8)\n },\n}));\n\nexport interface NoPermissionProps {\n addExternalUserToOrgReducer: AddExternalUserToOrgReducer\n addExternalUserToOrg: (organizationHandle: string) => Promise\n}\n\nfunction NoPermission({ addExternalUserToOrgReducer, addExternalUserToOrg } : NoPermissionProps) {\n const classes = useStyles();\n const { orgName } = useParams<{orgName: string}>();\n const history = useHistory();\n const { enqueueSnackbar } = useSnackbar();\n const { loading, error } = addExternalUserToOrgReducer;\n const isChoreoControlPlaneOrg: boolean = Settings.choreoControlPlaneOrgHandleName === orgName;\n\n const onRequestAccessClick = async () => {\n const status = await addExternalUserToOrg(orgName);\n if (status === 200) {\n sessionStoreOperation(StorageOperations.ADD, RETURN_TO_PATH, window.location.pathname);\n window.location.reload();\n }\n };\n\n const onGoBackHomeClick = () => {\n const organizationHandle = localStoreOperation(StorageOperations.GET, SELECTED_ORG_HANDLE_NAME);\n const redirectURL = organizationHandle ? '/' + organizationHandle : RESOURCE_SIGN_IN;\n history.push(redirectURL);\n };\n\n useEffect(() => {\n if (error) {\n enqueueSnackbar('Error while adding user to the requested organization', { variant: 'error' })\n }\n }, [addExternalUserToOrgReducer]);\n\n return (\n
    \n
    \n {\n loading ?\n
    \n \n
    \n :\n \n \n \n \n \n {isChoreoControlPlaneOrg ?\n
    \n \n }\n text='Request Access'\n />\n \n
    \n \n }\n text='Go Back Home'\n />\n \n
    \n :\n \n }\n text='Go Back Home'\n />\n \n }\n \n }\n
    \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n addExternalUserToOrgReducer: state.addExternalUserToOrgReducer,\n }\n}\n\nconst mapDispatchToProps = {\n addExternalUserToOrg: addExternalUserToOrg\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(NoPermission);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport {\n ADD_EXTERNAL_USER_TO_ORG_FAILURE,\n ADD_EXTERNAL_USER_TO_ORG_REQUEST,\n ADD_EXTERNAL_USER_TO_ORG_SUCCESS\n} from '../types/addExternalUserToOrg';\n\nexport const addExternalUserToOrgRequest = () => {\n return {\n type: ADD_EXTERNAL_USER_TO_ORG_REQUEST\n }\n}\n\nexport const addExternalUserToOrgSuccess = () => {\n return {\n type: ADD_EXTERNAL_USER_TO_ORG_SUCCESS\n }\n}\n\nexport const addExternalUserToOrgFailure = (error: string) => {\n return {\n type: ADD_EXTERNAL_USER_TO_ORG_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useEffect, useLayoutEffect, useState } from \"react\";\nimport {\n ApiReducer,\n ApplicationState,\n Subscription,\n SubscriptionList,\n SubscriptionPoliciesReducer,\n SubscriptionsReducer,\n ToSubscribeAttributes,\n UserReducer,\n} from \"../../../data/interfaces\";\nimport { connect } from \"react-redux\";\nimport { useStyles } from \"./styles\";\nimport AppInfoBar from \"../../shared/AppInfoBar\";\nimport { FormattedMessage } from \"react-intl\";\nimport { ArrowBack, Info } from \"@material-ui/icons\";\nimport {\n API_PAGINATION_QUERY,\n MAJOR_VERSION,\n PATH_SEPARATOR,\n VALUE_ZERO,\n} from \"../../../data/constants\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n Box,\n Button,\n Container,\n FormControl,\n Grid,\n TextField,\n Typography,\n} from \"@material-ui/core\";\nimport { formatSubscriptionApiVersion, getApiMajorVersionRange } from \".\";\nimport {\n createSubscription,\n fetchApiListAuthenticated,\n fetchSubscriptionPoliciesList,\n fetchSubscriptions,\n updateSubscription,\n} from \"../../../data/operations\";\nimport Settings from \"../../../conf/settings\";\nimport { PreLoaderLogo } from \"../../../elements/PreLoaderLogo\";\nimport SubscriptionPolicyCard from \"./SubscriptionPolicyCard\";\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\n\ninterface ApplicationApiSubscriptionsProps {\n menuDrawerOpen: boolean;\n organizationHandle: string;\n applicationId: string;\n subscriptionId: string;\n apiReducer: ApiReducer;\n dispatchFetchApis: (\n organizationId: string,\n pagination?: string,\n requireThumbnails?: boolean,\n aggregateBy?: string\n ) => void;\n userReducer: UserReducer;\n fetchSubscriptionPoliciesList: (organizationId: string) => Promise;\n subscriptionPoliciesReducer: SubscriptionPoliciesReducer;\n subscriptionReducer: SubscriptionsReducer;\n dispatchFetchSubscriptionsList: (\n applicationId: string,\n organizationId: string,\n type: string,\n limit?: number,\n offset?: number\n ) => void;\n dispatchCreateSubscription: (\n appId: string,\n organizationId: string,\n apiId: string,\n throttlingPolicy: string,\n versionRange?: string,\n message?: string\n ) => void;\n updateSubscription: (\n subscriptionId: string,\n subscription: Subscription,\n organizationId: string,\n message?: string\n ) => Promise;\n}\n\nfunction ApplicationApiSubscriptions(props: ApplicationApiSubscriptionsProps) {\n const {\n organizationHandle,\n applicationId,\n apiReducer,\n dispatchFetchApis,\n userReducer,\n fetchSubscriptionPoliciesList,\n subscriptionPoliciesReducer,\n subscriptionReducer,\n dispatchFetchSubscriptionsList,\n dispatchCreateSubscription,\n updateSubscription,\n subscriptionId,\n } = props;\n const classes = useStyles();\n const history = useHistory();\n const { selectedOrg } = userReducer;\n const [updatedApiList, setUpdatedApiList] = useState(\n []\n );\n const [buttonClicked, setButtonClicked] = useState(false);\n const [availableApiVersions, setAvailableApiVersions] = useState(\n []\n );\n const [selectedApi, setSelecetedApi] = useState();\n const [selectedApiVersion, setSelecetedApiVersion] = useState();\n const [selectedSubPolicy, setSelectedSubPolicy] = useState();\n const [subscribedApiList, setSubscribedApiList] = useState<\n { name: string; versionRange: string; selectedSubPolicy: string }[]\n >([]);\n const { apiList, loading: apiLoading } = apiReducer;\n const { subscriptionPolicies, loading: isSubpoliciesLoading } =\n subscriptionPoliciesReducer;\n const { subscriptions, isLoading: isSubscriptionsLoading } =\n subscriptionReducer;\n const apis = apiList;\n const DEFAULT_API_VERSION = \"Select Version\";\n\n const handleBackButtonClick = () => {\n history.push(\n PATH_SEPARATOR +\n organizationHandle +\n PATH_SEPARATOR +\n \"applications\" +\n PATH_SEPARATOR +\n applicationId +\n PATH_SEPARATOR +\n \"subscriptions\"\n );\n };\n\n const defaultApi: ToSubscribeAttributes = {\n api: \"Select API\",\n apiId: \"\",\n version: DEFAULT_API_VERSION,\n availablePolicies: [],\n hasSubscribed: false,\n policy: \"\",\n };\n\n const MAXIMUM_API_COUNT = 1000;\n const paginationQuery = API_PAGINATION_QUERY.replace(\n \"{LIMIT}\",\n MAXIMUM_API_COUNT.toString()\n ).replace(\"{OFFSET}\", VALUE_ZERO.toString());\n\n const updateApiData = () => {\n const data: ToSubscribeAttributes[] = [];\n let subscribedApiItem;\n if (apis?.count > 0) {\n apis?.list?.forEach((api) => {\n let subscribed = false;\n subscribedApiItem = subscribedApiList?.find(\n (subApi) =>\n subApi.name === api.name &&\n (subApi.versionRange === getApiMajorVersionRange(api.version) ||\n subApi.versionRange === api.version)\n );\n if (subscribedApiItem) {\n subscribed = true;\n }\n data.push({\n api: api.displayName,\n apiId: api.id,\n version: formatSubscriptionApiVersion(api.version),\n availablePolicies: api.throttlingPolicies,\n hasSubscribed: subscribed,\n policy: subscribedApiItem?.selectedSubPolicy,\n });\n });\n }\n return data;\n };\n\n const updateSubscribedApiList = () => {\n const mappedSubscribedApiList = subscriptions?.list?.map((subscription) => {\n const apiVersion = subscription?.apiInfo?.version;\n const subPolicy = subscription?.throttlingPolicy;\n if (apiVersion) {\n const versionRange =\n Settings.intelligentRoutingFeatureEnabled &&\n apiVersion.startsWith(\"v\")\n ? apiVersion.split(\".\")[0]\n : apiVersion;\n return {\n name: subscription.apiInfo?.name || \"\",\n versionRange,\n selectedSubPolicy: subPolicy,\n };\n }\n return {\n name: subscription.apiInfo?.name || \"\",\n versionRange: \"\",\n selectedSubPolicy: subPolicy,\n };\n });\n setSubscribedApiList(mappedSubscribedApiList);\n };\n\n const getAvailableVersions = (\n apiName: string,\n apiList: ToSubscribeAttributes[]\n ) => {\n if (subscriptionId !== undefined) {\n return apiList\n .filter((api) => api.api === apiName)\n .map((api) => api.version)\n .filter((version) => version !== undefined) as string[];\n }\n return apiList\n .filter((api) => api.api === apiName && !api.hasSubscribed)\n .map((api) => api.version)\n .filter((version) => version !== undefined) as string[];\n };\n\n const removeSubscribedVersions = (versions: string[]) => {\n const apisList = subscribedApiList\n .filter(\n (api) => api.name.toLowerCase() === selectedApi?.api?.toLowerCase()\n )\n .map((api) => api.versionRange);\n return versions.filter(\n (version) => !apisList.includes(version.split(\".\")[0])\n );\n };\n\n const changeSubPolicy = (throttlingPolicy: string) => {\n setSelecetedApi({\n ...selectedApi,\n policy: throttlingPolicy,\n });\n setSelectedSubPolicy(throttlingPolicy);\n };\n\n const getSubscriptionByApplication = (\n subscriptions: SubscriptionList,\n selectedApiId: string,\n selectedApiVersion: string\n ): Subscription => {\n return (\n subscriptions.list.find((subscription) => {\n if (subscription.apiInfo) {\n const { id } = subscription.apiInfo;\n return (\n id === selectedApiId &&\n selectedApiVersion === subscription.versionRange\n );\n }\n return false;\n }) || ({} as Subscription)\n );\n };\n\n const createSubscription = async () => {\n const apiForVersion = updatedApiList.find(\n (api) =>\n api.version === selectedApiVersion && api.api === selectedApi?.api\n );\n if (selectedApi?.hasSubscribed) {\n const subscriptionData = getSubscriptionByApplication(\n subscriptions,\n selectedApi?.apiId as string,\n getApiMajorVersionRange(selectedApiVersion as string) as string\n );\n const payload: Subscription = {\n applicationId: subscriptionData.applicationId,\n apiId: subscriptionData.apiId,\n throttlingPolicy:\n subscriptionData.throttlingPolicy ?? (selectedSubPolicy as string),\n requestedThrottlingPolicy: selectedSubPolicy as string,\n status: subscriptionData.status,\n subscriptionId: subscriptionData.subscriptionId,\n };\n await updateSubscription(\n subscriptionData.subscriptionId,\n payload,\n selectedOrg.uuid,\n 'Subscription update requested successfully'\n );\n } else {\n await dispatchCreateSubscription(\n applicationId as string,\n selectedOrg.uuid,\n apiForVersion?.apiId as string,\n selectedSubPolicy as string,\n Settings.intelligentRoutingFeatureEnabled &&\n selectedApiVersion?.startsWith('v')\n ? selectedApiVersion.split('.')[0]\n : undefined,\n subscriptionPolicies.list.find(\n (policy) => policy.name === selectedSubPolicy\n )?.attributes?.isApprovalRequired\n ? 'Subscription requested successfully'\n : 'Subscription created successfully'\n );\n setSelecetedApi({\n ...selectedApi,\n hasSubscribed: true,\n policy: selectedSubPolicy,\n });\n }\n setButtonClicked(true);\n updateSubscribedApiList();\n handleBackButtonClick();\n };\n\n const handleApiSelection = (value: string) => {\n setUpdatedApiList(updateApiData());\n const matchedApisForUserSelection = updatedApiList.filter(\n (api) => api.api === value && !api.hasSubscribed\n );\n const isSingleMatch = matchedApisForUserSelection.length === 1;\n const selectedApi = isSingleMatch\n ? matchedApisForUserSelection[0]\n : getUniqueAPIList().find((api) => api?.api === value);\n const versionList = getAvailableVersions(\n value,\n isSingleMatch ? matchedApisForUserSelection : updatedApiList\n );\n\n setSelecetedApi(selectedApi);\n setAvailableApiVersions(versionList);\n setSelecetedApiVersion(versionList[0]);\n setSelectedSubPolicy(selectedApi?.policy);\n };\n\n const handleApiVersionSelection = (value: string) => {\n if (value === null) {\n return;\n }\n const userSelectedApi = updatedApiList.find(\n (api) => api.api === selectedApi?.api && api.version === value\n );\n setSelecetedApi(userSelectedApi);\n setSelecetedApiVersion(value as string);\n setSelectedSubPolicy(userSelectedApi?.policy);\n const versionList = getAvailableVersions(\n selectedApi?.api as string,\n updatedApiList\n );\n setAvailableApiVersions(removeSubscribedVersions(versionList));\n };\n\n useLayoutEffect(() => {\n if (applicationId) {\n dispatchFetchSubscriptionsList(\n applicationId,\n selectedOrg.uuid,\n \"application\",\n 150,\n 0\n );\n }\n if (Settings.intelligentRoutingFeatureEnabled) {\n dispatchFetchApis(\n selectedOrg.uuid,\n paginationQuery,\n false,\n MAJOR_VERSION\n );\n } else {\n dispatchFetchApis(selectedOrg.uuid, paginationQuery, false);\n }\n fetchSubscriptionPoliciesList(selectedOrg.uuid);\n }, []);\n\n useEffect(() => {\n if (subscriptionId && updateApiData().length > 0) {\n const newAPIData = updateApiData();\n const matchedSubscription = subscriptions.list.find(\n (subscription) => subscription.subscriptionId === subscriptionId\n );\n if (matchedSubscription) {\n const subscribedApi = newAPIData.find(\n (api) => api.apiId === matchedSubscription.apiInfo?.id\n );\n setSelecetedApi({\n policy: matchedSubscription.throttlingPolicy,\n api: matchedSubscription.apiInfo?.displayName,\n version: subscribedApi?.version,\n apiId: matchedSubscription.apiInfo?.id,\n availablePolicies: subscribedApi?.availablePolicies,\n hasSubscribed: true,\n });\n setSelecetedApiVersion(subscribedApi?.version);\n setSelectedSubPolicy(matchedSubscription.throttlingPolicy);\n const gversions = getAvailableVersions(\n matchedSubscription.apiInfo?.displayName as string,\n updatedApiList\n );\n setAvailableApiVersions(gversions);\n }\n } else if (\n subscriptionId === undefined &&\n selectedApi === undefined &&\n updatedApiList.length > 0 &&\n updatedApiList[0].api\n ) {\n const firstUniqueApi = getUniqueAPIList()[0];\n setSelecetedApi(firstUniqueApi);\n if (firstUniqueApi) {\n setSelecetedApi({\n policy: undefined,\n api: firstUniqueApi.api,\n version: firstUniqueApi.version,\n apiId: firstUniqueApi.apiId,\n availablePolicies: firstUniqueApi.availablePolicies,\n hasSubscribed: false,\n });\n }\n setSelecetedApi(defaultApi);\n setSelecetedApiVersion(DEFAULT_API_VERSION);\n setSelectedSubPolicy(\"\");\n }\n }, [updatedApiList]);\n\n useEffect(() => {\n updateSubscribedApiList();\n setButtonClicked(false);\n }, [subscriptions, buttonClicked]);\n\n useEffect(() => {\n if (apis?.list && apis?.list.length > 0) {\n setUpdatedApiList(updateApiData());\n }\n }, [apis?.list]);\n\n const getUniqueAPIList = () => {\n const listToFilter =\n subscriptionId === undefined\n ? updatedApiList.filter((api) => !api.hasSubscribed)\n : updatedApiList;\n\n const uniqueApis = Array.from(\n new Set(listToFilter.map((api) => api.api))\n ).map((name) => listToFilter.find((api) => api.api === name));\n\n return uniqueApis;\n };\n\n const APISelector = () => {\n return (\n
    \n \n api?.api || \"\")}\n getOptionLabel={(option) => option || \"\"}\n renderInput={(params) => (\n \n )}\n disabled={subscriptionId !== undefined}\n onChange={(_, value) => handleApiSelection(value as string)}\n value={selectedApi?.api || \"\"}\n />\n \n
    \n );\n };\n\n const ApiVersionSelector = () => {\n return (\n
    \n \n option || \"\"}\n renderInput={(params) => (\n \n )}\n disabled={subscriptionId !== undefined}\n onChange={(_, value) => handleApiVersionSelection(value as string)}\n value={selectedApi?.version || \"\"}\n />\n \n
    \n );\n };\n\n const isSubPolicySlected = (policy: string) => {\n const matchedApi = subscribedApiList.find(\n (api) =>\n api.name.toLowerCase() === selectedApi?.api?.toLowerCase() &&\n api.versionRange === selectedApiVersion?.split(\".\")[0] &&\n api.selectedSubPolicy === policy\n );\n if (matchedApi === undefined) {\n return false;\n }\n return true;\n };\n\n const SubscriptionPolicySelector = () => {\n return (\n \n {selectedApi?.availablePolicies?.length == 0 && (\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n )}\n {selectedApi?.availablePolicies?.map((policyName) => {\n return (\n \n {subscriptionPolicies.list.map((subPolicy) => {\n if (subPolicy.name === policyName) {\n return (\n \n );\n }\n })}\n \n );\n })}\n \n );\n };\n\n const subscriptionButtonText = () => {\n if (\n subscriptionPolicies.list.find(\n (policy) => policy.name === selectedSubPolicy\n )?.attributes?.isApprovalRequired\n ) {\n return subscriptionId ? (\n \n ) : (\n \n );\n } else {\n return subscriptionId ? (\n \n ) : (\n \n );\n }\n };\n\n return (\n
    \n {apiLoading && isSubpoliciesLoading && isSubscriptionsLoading ? (\n
    \n \n
    \n ) : (\n
    \n
    \n
    \n \n \n \n \n
    \n handleBackButtonClick()}\n data-testid=\"generate-creds-btn\"\n className={classes.backToSubscriptionBtn}\n startIcon={}\n >\n \n \n
    \n \n {subscriptionId ? (\n \n \n \n ) : (\n \n \n \n )}\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n handleBackButtonClick()}\n className={classes.btnText}\n >\n \n \n \n {subscriptionButtonText()}\n \n \n \n \n \n
    \n
    \n )}\n
    \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n userReducer: state.userReducer,\n subscriptionPoliciesReducer: state.subscriptionPoliciesReducer,\n subscriptionReducer: state.subscriptionsReducer,\n };\n};\n\nconst mapDispatchToProps = {\n dispatchFetchApis: fetchApiListAuthenticated,\n fetchSubscriptionPoliciesList: fetchSubscriptionPoliciesList,\n dispatchFetchSubscriptionsList: fetchSubscriptions,\n dispatchCreateSubscription: createSubscription,\n updateSubscription: updateSubscription,\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(ApplicationApiSubscriptions);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { Redirect, Route, useHistory, useLocation, useParams, Switch } from \"react-router-dom\";\n\nimport { CssBaseline, makeStyles } from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\n\nimport {\n FIDP, RETURN_TO_PATH, RESOURCE_LOGIN, RESOURCE_SIGN_IN, SELECTED_ORG_UUID,\n ORG_QUERY_PARAM, PATH_SEPARATOR\n} from \"../data/constants\";\nimport { ApplicationState, NotificationReducer, StorageOperations, UserReducer } from '../data/interfaces';\nimport { fetchApplicationDetails, resetNotificationMsg } from '../data/operations';\nimport { isProductionKeyGenerationAccessible, isSandboxKeyGenerationAccessible, isSelfSignupEnabled, localStoreOperation, sessionStoreOperation } from \"../data/utils\";\nimport AppOverview from \"./app/AppOverview\";\nimport AppProductionKeys from \"./app/AppProductionKeys\";\nimport AppSubscriptions from \"./app/AppSubscriptions\";\nimport DevPortalFooter from './shared/DevPortalFooter';\nimport MainMenuDrawer from './shared/MainMenuDrawer/index';\nimport NoPermission from './shared/NoPermission';\nimport Settings from '../conf/settings';\nimport ApplicationApiSubscriptions from './app/AppSubscriptions/ApplicationApiSubscriptoins';\n\nconst useStyles = makeStyles(() => ({\n root: {\n display: 'flex'\n }\n}));\n\ninterface AppProps {\n menuDrawerOpen: boolean,\n userReducer: UserReducer,\n notificationReducer: NotificationReducer,\n fetchApplicationDetails: (applicationId: string) => Promise\n resetNotificationMessage: () => void;\n}\n\nfunction AppPage(props: AppProps) {\n const classes = useStyles();\n const history = useHistory();\n const location = useLocation();\n const {\n userReducer, notificationReducer, menuDrawerOpen, fetchApplicationDetails, resetNotificationMessage\n } = props;\n const { orgName, applicationId, subscriptionId } = useParams<{orgName: string; applicationId: string, subscriptionId: string}>();\n const { enqueueSnackbar } = useSnackbar();\n const { apimTokenObtained, orgs: userOrganizations, user } = userReducer;\n const allowedScopes = user.allowedScopes;\n const { type: notificationType, message: notification } = notificationReducer;\n\n const checkUserAccessToCurrentPathOrg = (): boolean => {\n const selectedOrganization = userOrganizations.find(userOrg => userOrg.handle === orgName);\n return !!selectedOrganization;\n }\n\n const hasUserAccessToCurrentPathOrg = checkUserAccessToCurrentPathOrg();\n\n useEffect(() => {\n if (notification !== \"\") {\n enqueueSnackbar(notification, { variant: notificationType });\n resetNotificationMessage();\n }\n }, [notificationReducer]);\n\n useEffect(() => {\n if (!apimTokenObtained) {\n sessionStoreOperation(StorageOperations.ADD, RETURN_TO_PATH, window.location.pathname);\n const queryParam = new URLSearchParams(location.search);\n const orgUuid = queryParam.get(ORG_QUERY_PARAM);\n if (orgUuid) {\n localStoreOperation(StorageOperations.ADD, SELECTED_ORG_UUID, orgUuid);\n }\n // Checking whether request is from choreo portal and setting fidp value\n if (queryParam.get('fidp')) {\n localStoreOperation(StorageOperations.ADD, FIDP, queryParam.get('fidp') ?? \"\");\n history.push(RESOURCE_SIGN_IN);\n } else if (localStoreOperation(StorageOperations.GET, FIDP)) {\n // Redirecting user to sigin if fidp value already exists in local store\n history.push(RESOURCE_SIGN_IN);\n } else if (!isSelfSignupEnabled(orgName)) {\n // Redirecting user to login page if fidp value does not exist\n // and selected org is not a self sign up enabled org\n history.push(RESOURCE_LOGIN);\n } else {\n // Redirecting user to devportal home page if fidp value does not exist\n // and selected org have self signup enabled\n history.push(`/${orgName}`);\n }\n } else if (hasUserAccessToCurrentPathOrg) {\n fetchApplicationDetails(applicationId);\n }\n }, []);\n\n const getCredentialGenerationPath = () => {\n const pathList = [];\n if (isProductionKeyGenerationAccessible(allowedScopes)) {\n pathList.push(\n PATH_SEPARATOR + orgName + '/applications/' + applicationId + '/credentials/production',\n PATH_SEPARATOR + orgName + '/applications/' + applicationId + '/credentials/production/oauth'\n );\n }\n if (Settings.sandboxKeyGenerationEnabled && isSandboxKeyGenerationAccessible(allowedScopes)) {\n pathList.push(\n PATH_SEPARATOR + orgName + '/applications/' + applicationId + '/credentials/sandbox',\n PATH_SEPARATOR + orgName + '/applications/' + applicationId + '/credentials/sandbox/oauth'\n );\n }\n return pathList;\n }\n\n return hasUserAccessToCurrentPathOrg && user.allowedScopes.includes('apim:subscribe')? (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n ):\n (\n
    \n \n \n
    \n )\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n userReducer: state.userReducer,\n notificationReducer: state.notificationReducer\n }\n};\n\nconst mapDispatchToProps = {\n resetNotificationMessage: resetNotificationMsg,\n fetchApplicationDetails\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AppPage);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from \"@material-ui/core/styles\";\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n primaryTitleContainer: {\n paddingTop: theme.spacing(4),\n },\n primaryTitle: {\n ...theme.custom.appLandingPage.primaryTitleStyle\n },\n secondaryTitle: {\n ...theme.custom.appLandingPage.secondaryTitleStyle,\n marginBottom: theme.spacing(3.5)\n },\n imgContainer: {\n marginTop: theme.spacing(3),\n },\n image: {\n '@media (max-width: 1280px)': {\n width: \"100%\",\n height: \"100%\"\n }\n },\n createBtn: {\n marginLeft: theme.spacing(0),\n marginBottom: theme.spacing(1.5)\n }\n })\n);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState } from \"react\";\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { Container, Grid, Typography } from '@material-ui/core';\nimport { AddRounded } from \"@material-ui/icons\";\n\nimport { PrimaryButtonRounded } from \"../../../elements/PrimaryButtonRounded\";\nimport CustomIcons from \"../../../icons/CustomIcons\";\nimport CreateApp from \"../../app/CreateApp\";\n\nimport { useStyles } from \"./styles\";\n\nexport function AppLandingContent() {\n const classes = useStyles();\n const intl = useIntl();\n const [isNewAppWizardOpen, setNewAppWizardOpen] = useState(false);\n\n const openNewAppWizard = () => {\n setNewAppWizardOpen(true);\n };\n\n const closeNewAppWizard = () => {\n setNewAppWizardOpen(false);\n };\n\n const createButtonLabel = intl.formatMessage({\n id: 'application.home.landingPage.createButton.label',\n defaultMessage: 'Create'\n });\n\n const CreateBtn = () => {\n return (\n }\n text={createButtonLabel}\n />\n );\n };\n\n return (\n \n \n \n \n
    \n \n
    \n
    \n \n \n \n
    \n \n \n \n \n
    \n
    \n
    \n \n
    \n );\n}\n\nexport default AppLandingContent;\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from \"@material-ui/core/styles\";\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n height: '100vh',\n ...theme.custom.appListingPage.styles\n },\n content: {\n marginTop: theme.spacing(13),\n overflow: 'auto',\n },\n cellContent: {\n paddingLeft: theme.spacing(1)\n },\n pageTitle: {\n ...theme.custom.appListingPage.title\n },\n subtitle: {\n marginTop: theme.spacing(1),\n ...theme.custom.appListingPage.subTitle\n },\n moreButtons: {\n display: 'flex',\n alignItems: \"center\",\n justifyContent: \"flex-end\"\n },\n deleteBtn: {\n height: theme.spacing(4),\n paddingLeft: theme.spacing(1.5),\n paddingRight: theme.spacing(2),\n borderRadius: theme.spacing(2),\n marginLeft: theme.spacing(0.5),\n backgroundSize: theme.spacing(2.5),\n ...theme.custom.appListingPage.appDeleteButtonStyle\n },\n btnText: {\n marginLeft: theme.spacing(1.625),\n ...theme.custom.appListingPage.deleteButtonTextStyle\n },\n hoverBtn: {\n height: theme.spacing(4),\n paddingLeft: theme.spacing(1.5),\n paddingRight: theme.spacing(2),\n borderRadius: theme.spacing(2),\n marginLeft: theme.spacing(1),\n ...theme.custom.appListingPage.hoverButtonStyle\n },\n shareBtn: {\n '& .MuiButton-startIcon': {\n margin: `${theme.spacing(0.5)}px ${theme.spacing(1)}px 0px 0px`,\n }\n },\n createBtn: {\n ...theme.custom.appListingPage.createBtn,\n },\n titleSection: {\n marginTop: theme.spacing(4),\n paddingBottom: theme.spacing(2),\n paddingTop: theme.spacing(3),\n },\n titleContainer: {\n display: \"flex\",\n alignItems: \"center\"\n },\n defaultThumbnail: {\n ...theme.custom.appListingPage.defaultAppThumbnail\n },\n editBtn: {\n backgroundSize: theme.spacing(2.5),\n ...theme.custom.appListingPage.editButtonIcon\n },\n titleApps: {\n flexGrow: 1,\n textAlign: 'left'\n },\n title: {\n ...theme.custom.appListingPage.listHeaderTextStyle\n },\n searchIcon: {\n height: theme.spacing(5),\n paddingLeft: theme.spacing(1.375),\n paddingRight: theme.spacing(1.375),\n marginRight: theme.spacing(2),\n ...theme.custom.appListingPage.searchButtonStyles\n },\n loaderContainer: {\n width: \"cal(100%-75px)\",\n height: \"60vh\",\n backgroundColor: theme.palette.secondary.light,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...theme.custom.appListingPage.styles\n },\n searchField: {\n [`screen and @media (min-width: 540px)`]: {\n verticalAlign: 'top',\n horizontalAlign: 'right',\n position: 'absolute',\n right: '356px',\n minHeight: '40px'\n },\n marginRight: theme.spacing(2),\n ...theme.custom.appListingPage.appSearchFieldStyle,\n '& .MuiInput-underline:hover:not(.Mui-disabled)::before ': {\n display: 'none'\n },\n '& .MuiInput-underline::after': {\n display: 'none'\n },\n '& .MuiInput-underline::before ': {\n display: 'none'\n },\n '& .MuiInput-underline': {\n borderBottom: \"none\"\n }\n },\n tableArea: {\n ...theme.custom.appListingPage.styles\n },\n applicationList: {\n '& .MuiPaper-root': {\n backgroundColor: theme.custom.appListingPage.styles.backgroundColor,\n '& .MuiTable-root:first-child': {\n '& .MuiTableBody-root': {\n backgroundColor: theme.custom.appListingPage.styles.backgroundColor\n }\n }\n },\n },\n ownerChip: {\n marginLeft: theme.spacing(2)\n },\n appTable: {\n '& .MuiTable-root': {\n padding: theme.spacing(1),\n }\n }\n })\n);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, {\n ChangeEvent,\n createRef,\n forwardRef,\n MouseEvent,\n Ref,\n RefAttributes,\n useEffect,\n useLayoutEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { connect } from \"react-redux\";\nimport { useHistory, useParams } from 'react-router-dom';\nimport { formatDistanceStrict } from 'date-fns';\n\nimport {\n Avatar,\n Button,\n Container,\n Grid,\n IconButton,\n TextField,\n Typography,\n CssBaseline,\n Chip,\n} from '@material-ui/core';\nimport { AddRounded, ArrowDropDown, ChevronLeft, ChevronRight } from \"@material-ui/icons\";\nimport classNames from \"classnames\";\nimport MaterialTable, { Column, MTableBodyRow } from \"@material-table/core\";\n\nimport {\n FIDP, RETURN_TO_PATH, RESOURCE_LOGIN, RESOURCE_SIGN_IN,\n SELECTED_ORG_UUID, ORG_QUERY_PARAM, PATH_SEPARATOR\n} from \"../../../data/constants\";\nimport {\n Application, ApplicationReducer, ApplicationState, NotificationReducer, StorageOperations, UserReducer\n} from \"../../../data/interfaces\";\nimport { deleteApplication, fetchApplicationList, resetNotificationMsg } from \"../../../data/operations\";\nimport { isSelfSignupEnabled, localStoreOperation, sessionStoreOperation } from \"../../../data/utils\";\nimport { PreLoaderLogo } from \"../../../elements/PreLoaderLogo\";\nimport { PrimaryButtonRounded } from \"../../../elements/PrimaryButtonRounded\";\nimport { Status } from \"../../../elements/Status\";\nimport CreateApp from '../../app/CreateApp';\nimport { ConfirmationDialog } from \"../../shared/ConfirmationDialog/ConfirmationDialog\";\nimport DevPortalFooter from \"../../shared/DevPortalFooter\";\nimport AppLandingContent from \"../AppLandingPage/AppLandingPage\";\n\nimport \"./style.scss\";\nimport { useStyles } from './styles';\nimport { useSnackbar } from \"notistack\";\nimport NoPermission from '../../shared/NoPermission';\nimport {\n trackApplicationSelection,\n trackApplicationSelectionDelete,\n trackApplicationSelectionEdit\n} from \"../../../util/app-insights\";\nimport ShareIcon from '../../../icons/Share';\nimport ShareApplication from '../../app/ShareApplication';\nimport { AppPermission } from '../../../data/emus';\nimport { ApplicationPermission } from '../../../util/app-permissions';\n\ninterface AppListProps {\n userReducer: UserReducer,\n applicationReducer: ApplicationReducer,\n notificationReducer: NotificationReducer,\n resetNotificationMessage: () => void,\n dispatchFetchAppList: () => void,\n dispatchDeleteApplication: (applicationId: string) => void\n}\n\ninterface RowData {\n id: string,\n name: string,\n isOwner: boolean,\n subscriptionCount?: number,\n createdTime?: string | JSX.Element\n}\n\ninterface RowProps {\n data: RowData;\n}\n\ninterface SortingData {\n columnName: string,\n asc: boolean\n}\n\nconst defaultSortedColumn: SortingData = { columnName: 'name', asc: true };\n\nfunction AppListC(props: AppListProps) {\n const classes = useStyles();\n const intl = useIntl();\n const history = useHistory();\n const { orgName } = useParams<{orgName: string}>();\n const { enqueueSnackbar } = useSnackbar();\n const {\n userReducer, applicationReducer, dispatchFetchAppList, dispatchDeleteApplication, notificationReducer,\n resetNotificationMessage\n } = props;\n const { type: notificationType, message: notification } = notificationReducer;\n const { apimTokenObtained, orgs: userOrganizations, selectedOrg, userInfo, user } = userReducer;\n const scopes = user.allowedScopes\n const apps = applicationReducer.applications?.list;\n const isLoading = applicationReducer.isLoading;\n const selectedOrgHandleName = selectedOrg.handle;\n const [sortedColumn, setSortedColumn] = useState(defaultSortedColumn);\n const [isDeleteAppWizardOpen, setDeleteAppWizardOpen] = useState(false);\n const [isSelected, setIsSelected] = useState(\"\");\n const [selectedApp, setSelectedApp] = useState();\n const [appDeletionError, setAppDeletionError] = useState(\"\");\n const [list, setListData] = useState([]);\n const [tableColumns, setTableColumns] = useState[]>();\n const [isNewAppWizardOpen, setIsNewAppWizardOpen] = useState(false);\n const [isAppSharingOpen, setAppSharingOpen] = useState(false);\n const [isShown, setIsShown] = useState(false);\n const [isEdit, setIsEdit] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [rowsPerPage, setRowsPerPage] = useState(5);\n const [pageNumber, setPageNumber] = useState(0);\n const appTable = createRef();\n\n const checkUserAccessToCurrentPathOrg = (): boolean => {\n const selectedOrganization = userOrganizations.find(userOrg => userOrg.handle === orgName);\n return !!selectedOrganization;\n }\n\n const hasUserAccessToCurrentPathOrg = checkUserAccessToCurrentPathOrg();\n\n useEffect(() => {\n if (notification !== \"\") {\n enqueueSnackbar(notification, { variant: notificationType });\n resetNotificationMessage();\n }\n }, [notificationReducer]);\n\n useEffect(() => {\n if (!apimTokenObtained) {\n sessionStoreOperation(StorageOperations.ADD, RETURN_TO_PATH, window.location.pathname);\n const queryParam = new URLSearchParams(location.search);\n const orgUuid = queryParam.get(ORG_QUERY_PARAM);\n if (orgUuid) {\n localStoreOperation(StorageOperations.ADD, SELECTED_ORG_UUID, orgUuid);\n }\n // Checking whether request is from choreo portal and setting fidp value\n if (queryParam.get('fidp')) {\n localStoreOperation(StorageOperations.ADD, FIDP, queryParam.get('fidp') ?? \"\");\n history.push(RESOURCE_SIGN_IN);\n } else if (localStoreOperation(StorageOperations.GET, FIDP)) {\n // Redirecting user to sigin if fidp value already exists in local store\n history.push(RESOURCE_SIGN_IN);\n } else if (!isSelfSignupEnabled(orgName)) {\n // Redirecting user to login page if fidp value does not exist\n // and selected org is not a self sign up enabled org\n history.push(RESOURCE_LOGIN);\n } else {\n // Redirecting user to devportal home page if fidp value does not exist\n // and selcted org have self signup enabled\n history.push(`/${orgName}`);\n }\n } else if (hasUserAccessToCurrentPathOrg) {\n dispatchFetchAppList();\n }\n }, [selectedOrg]);\n\n const toggleHover = (event: MouseEvent, rowData: RowProps) => {\n event.stopPropagation();\n setIsSelected(rowData.data.name);\n };\n\n const mouseLeaveMoreButton = (event: MouseEvent) => {\n event.stopPropagation();\n setIsSelected(\"\");\n };\n\n const handleSearchFieldChange = (event: ChangeEvent) => {\n setSearchQuery(event.target.value);\n };\n\n const openDeleteAppWizard = (app: Application) => (event: MouseEvent) => {\n event.stopPropagation();\n trackApplicationSelectionDelete(`${app?.applicationId}`);\n setSelectedApp(app);\n setDeleteAppWizardOpen(true);\n };\n\n const closeDeleteAppWizard = () => {\n setDeleteAppWizardOpen(false);\n };\n\n const searchButtonPlaceholder = intl.formatMessage({\n id: 'application.home.appList.searchButton.placeholder',\n defaultMessage: 'Search'\n });\n\n const createButtonLabel = intl.formatMessage({\n id: 'application.home.appList.createButton.label',\n defaultMessage: 'Create'\n });\n\n const countSuffixSingular = intl.formatMessage({\n id: 'application.home.appList.count.singularSuffix',\n defaultMessage: 'Application'\n });\n\n const countSuffixPlural = intl.formatMessage({\n id: 'application.home.appList.count.pluralSuffix',\n defaultMessage: 'Applications'\n });\n\n const appTableI18n = {\n application: intl.formatMessage({\n id: 'application.home.appList.table.column.application',\n defaultMessage: 'APPLICATION'\n }),\n status: intl.formatMessage({\n id: 'application.home.appList.table.column.status',\n defaultMessage: 'STATUS'\n }),\n subscriptions: intl.formatMessage({\n id: 'application.home.appList.table.column.subscriptions',\n defaultMessage: 'SUBSCRIPTIONS'\n }),\n created: intl.formatMessage({\n id: 'application.home.appList.table.column.created',\n defaultMessage: 'CREATED'\n }),\n nextPageLabel: intl.formatMessage({\n id: 'application.home.appList.table.nextPageLabel',\n defaultMessage: 'Next'\n }),\n previousPageLabel: intl.formatMessage({\n id: 'application.home.appList.table.previousPageLabel',\n defaultMessage: 'Previous'\n })\n };\n\n const confirmationDialogI18n = {\n title: intl.formatMessage({\n id: 'application.home.appList.deleteConfirmationDialog.title',\n defaultMessage: 'Delete Application'\n }),\n content: intl.formatMessage({\n id: 'application.home.appList.deleteConfirmationDialog.content',\n defaultMessage: 'Are you sure you want to delete application - ' + selectedApp?.name + ' ?'\n }),\n okayButtonLabel: intl.formatMessage({\n id: 'application.home.appList.deleteConfirmationDialog.okButtonLabel',\n defaultMessage: 'Delete'\n }),\n cancelButtonLabel: intl.formatMessage({\n id: 'application.home.appList.deleteConfirmationDialog.cancelButtonLabel',\n defaultMessage: 'Cancel'\n }),\n loadingText: intl.formatMessage({\n id: 'application.home.appList.deleteConfirmationDialog.loadingText',\n defaultMessage: 'Deleting...'\n })\n };\n\n const DeleteBtn = (app: Application) => {\n return (\n \n \n \n \n \n );\n };\n\n const MoreOptions = (btnProps: { app: Application }) => {\n const { app } = btnProps;\n return (\n
    \n {/* TODO - will add share functionality by a separate PR */}\n {/* { ApplicationPermission.hasPermission(AppPermission.SHARE, app, userInfo) && ShareBtn(app) } */}\n { ApplicationPermission.hasPermission(AppPermission.WRITE, app, userInfo, scopes) && EditBtn(app) }\n { ApplicationPermission.hasPermission(AppPermission.WRITE, app, userInfo, scopes) && DeleteBtn(app) }\n
    \n );\n };\n\n const mapAppToRow = () => {\n setListData([]);\n apps?.forEach((app: Application) => {\n const appStatus: JSX.Element = \n ;\n setListData((prevState: RowData[]) => (\n [...prevState, {\n id: app.applicationId as string,\n name: app.name,\n isOwner: app.owner === userInfo.sub,\n status: appStatus,\n subscriptionCount: app.subscriptionCount,\n createdTime: formatDistanceStrict(new Date(parseInt(app.createdTime)), new Date(), { addSuffix: true, })\n }]\n ));\n });\n };\n\n useEffect(() => {\n const modified = list?.map((tableItem: RowData) => {\n const matchingApp = apps?.find(app => app.name === tableItem.name);\n const createdTime = formatDistanceStrict(new Date(parseInt(matchingApp?.createdTime || '')),\n new Date(),\n { addSuffix: true, });\n return {\n ...tableItem,\n createdTime: isSelected === tableItem.name ? :\n createdTime\n };\n });\n setListData(modified);\n }, [isSelected]);\n\n const getSortingOrder = (columnName: string): boolean => {\n return sortedColumn.columnName === columnName ? !sortedColumn.asc : true;\n };\n\n const handleCustomSort = (column: number) => {\n switch (column) {\n case 0:\n setSortedColumn({ columnName: 'name', asc: getSortingOrder('name') });\n break;\n case 1:\n setSortedColumn({ columnName: 'status', asc: getSortingOrder('status') });\n break;\n case 2:\n setSortedColumn({ columnName: 'subscriptionCount', asc: getSortingOrder('subscriptionCount') });\n break;\n case 3:\n setSortedColumn({ columnName: 'createdTime', asc: getSortingOrder('createdTime') });\n break;\n default:\n break;\n }\n };\n\n const RenderApplicationColumn = (rowData: RowData) => {\n return (\n
    \n \n {rowData.name.substr(0, 1).toUpperCase()}\n \n {rowData.name} \n {\n rowData.isOwner && \n }\n
    \n );\n };\n\n const columns = useMemo(() => {\n return [{\n title: appTableI18n.application, field: \"name\", width: \"40%\",\n defaultSort: sortedColumn.columnName === 'name' ? (sortedColumn.asc ? 'asc' : 'desc') : undefined,\n cellStyle: { fontSize: \"1rem\" },\n customSort: (a: RowData, b: RowData) => a.name.toLocaleLowerCase().localeCompare(b.name.toLocaleLowerCase()),\n render: RenderApplicationColumn\n },\n {\n title: appTableI18n.status, field: \"status\", width: \"20%\", searchable: false, sorting: true,\n defaultSort: sortedColumn.columnName === 'status' ? (sortedColumn.asc ? 'asc' : 'desc') : undefined,\n align: \"center\",\n cellStyle: { fontSize: 12 }\n },\n {\n title: appTableI18n.subscriptions, field: \"subscriptionCount\", width: \"5%\", searchable: false,\n align: \"center\",\n defaultSort: sortedColumn.columnName === 'subscriptionCount' ? (sortedColumn.asc ? 'asc' : 'desc') : undefined\n },\n {\n title: appTableI18n.created, field: \"createdTime\", width: \"15%\", searchable: false,\n align: \"right\",\n defaultSort: sortedColumn.columnName === 'created' ? (sortedColumn.asc ? 'asc' : 'desc') : undefined\n }];\n }, [sortedColumn]);\n\n useEffect(() => {\n setTableColumns(columns as Column[]);\n mapAppToRow();\n }, [columns, apps]);\n\n useLayoutEffect(() => {\n const updateSize = async () => {\n setRowsPerPage(Math.min(Math.max(Math.floor((window.innerHeight - 484) / 56), 3), 15))\n };\n updateSize();\n window.addEventListener('resize', updateSize);\n return () => window.removeEventListener('resize', updateSize);\n }, []);\n\n const handlePageNumberChange = (page: number) => {\n setPageNumber(page * rowsPerPage / list.length)\n };\n\n const handleAppOpen = (appId: string) => {\n history.push(PATH_SEPARATOR + selectedOrgHandleName + '/applications/' + appId + '/overview');\n };\n\n const openNewAppWizard = () => {\n setIsEdit(false);\n setIsNewAppWizardOpen(true);\n };\n\n const openEditAppWizard = (app: Application) => (event: React.MouseEvent) => {\n event.stopPropagation();\n trackApplicationSelectionEdit(`${app?.applicationId}`);\n setSelectedApp(app);\n setIsEdit(true);\n setIsNewAppWizardOpen(true);\n };\n \n const openShareAppWizard = (app: Application) => (event: React.MouseEvent) => {\n event.stopPropagation();\n setSelectedApp(app);\n setAppSharingOpen(true);\n };\n\n const closeNewAppWizard = () => {\n setIsNewAppWizardOpen(false);\n };\n\n const onCloseAppSharing = () => {\n setAppSharingOpen(false);\n };\n\n const triggerShow = () => {\n if (!isShown || (isShown && searchQuery.length === 0)) {\n setIsShown(!isShown);\n }\n };\n\n const onDeleteDialogOkClick = async () => {\n setAppDeletionError('');\n await dispatchDeleteApplication(selectedApp?.applicationId as string);\n history.push(PATH_SEPARATOR + selectedOrgHandleName + '/applications');\n setDeleteAppWizardOpen(false);\n };\n\n const getNextPageIcon = (props: RefAttributes,\n ref: Ref) => ;\n\n const getPreviousPageIcon = (props: RefAttributes,\n ref: Ref) => ;\n\n const getArrowIcon = (props: RefAttributes,\n ref: Ref) => ;\n\n const CreateBtn = () => {\n return (\n }\n text={createButtonLabel}\n className={classes.createBtn}\n />\n );\n };\n\n const EditBtn = (app: Application) => {\n return (\n \n \n \n \n \n );\n };\n\n const ShareBtn = (app: Application) => {\n return (\n }\n data-testid={`share-btn-${app.name}`}\n >\n \n \n \n \n );\n };\n\n const SearchBtn = () => {\n return (\n \n \n \n );\n };\n\n const SearchField = () => {\n return (\n
    \n \n
    \n );\n };\n\n const tableIcons = {\n NextPage: forwardRef(getNextPageIcon),\n PreviousPage: forwardRef(getPreviousPageIcon),\n SortArrow: forwardRef(getArrowIcon)\n };\n\n const MaterialRow = (rowProps: RowProps) => {\n return (\n ) => { toggleHover(event, rowProps) }}\n onMouseLeave={(event: MouseEvent) => { mouseLeaveMoreButton(event) }}\n data-testid={`application-list-${rowProps.data.name}`}\n {...rowProps}\n />\n );\n };\n\n const AppsTable = () => {\n return (\n
    \n { setRowsPerPage(pageSize) }}\n onPageChange={handlePageNumberChange}\n options={{\n pageSize: 5,\n initialPage: list !== [] ? Math.round(pageNumber * list.length / rowsPerPage) : 0,\n showFirstLastPageButtons: false,\n thirdSortClick: false,\n pageSizeOptions: Array.from(Array(15).keys()),\n searchText: searchQuery\n }}\n columns={tableColumns as Column[]}\n icons={tableIcons}\n data={list}\n onRowClick={(_, rowData) => {\n handleAppOpen(rowData?.id as string);\n trackApplicationSelection(`${rowData?.id}`);\n }}\n localization={{\n pagination: {\n nextTooltip: appTableI18n.nextPageLabel,\n previousTooltip: appTableI18n.previousPageLabel\n }\n }}\n components={{ Row: MaterialRow }}\n />\n \n
    \n );\n };\n\n const countSuffix = apps?.length > 1 ? countSuffixPlural : countSuffixSingular;\n\n const AppListContent = () => {\n if (isLoading) {\n return (\n
    \n \n
    \n );\n } else {\n return (\n
    \n \n \n
    \n \n
    \n
    \n
    \n \n \n \n
    \n {isShown ? SearchField() : SearchBtn()}\n {(!isLoading) ? CreateBtn() : null}\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n {AppsTable()}\n \n \n \n {isNewAppWizardOpen &&\n \n }\n { isAppSharingOpen && \n \n }\n
    \n );\n }\n };\n\n const Content = () => {\n if (isLoading) {\n return (\n
    \n \n
    \n );\n } else if (!hasUserAccessToCurrentPathOrg) {\n return (\n \n );\n } else if (apps && apps.length === 0) {\n return (\n \n );\n } else if (apps && apps?.length > 0) {\n return (\n
    \n \n \n \n \n \n \n {AppListContent()}\n
    \n );\n }\n };\n\n return (\n
    \n \n \n \n \n {Content() as JSX.Element}\n \n \n \n \n
    \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n userReducer: state.userReducer,\n applicationReducer: state.applicationReducer,\n notificationReducer: state.notificationReducer\n }\n};\n\nconst mapDispatchToProps = {\n dispatchDeleteApplication: deleteApplication,\n dispatchFetchAppList: fetchApplicationList,\n resetNotificationMessage: resetNotificationMsg\n};\n\nconst AppList = connect(mapStateToProps, mapDispatchToProps)(AppListC);\nexport default AppList;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nexport const useStyles = makeStyles((theme) => ({\n signInContainer: {\n height: '100vh',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center'\n },\n signInText: {\n fontFamily: 'GilmerBold',\n fontSize: '29px',\n margin: '50px'\n },\n tryAgainBtn: {\n margin: '20px',\n textTransform: \"capitalize\"\n },\n loaderContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n}));\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useEffect, useMemo, useState } from 'react'\nimport { connect, useDispatch } from 'react-redux';\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useAuthContext } from '@asgardeo/auth-react';\nimport { useIntl } from 'react-intl';\n\nimport { CssBaseline, Container } from '@material-ui/core';\n\nimport {\n fetchUserOrganizations,\n userLogin,\n changeUserOrganization,\n obtainApimToken,\n acceptInvitation,\n addEnterpriseUserToOrg\n} from '../../data/operations';\nimport { ApplicationState, StorageOperations, UserReducer, Organization } from '../../data/interfaces';\nimport { localStoreOperation, sessionStoreOperation } from '../../data/utils';\nimport {\n FIDP, RESOURCE_LOGIN, RETURN_TO_PATH, MAX_RETRY_COUNT,\n SELECTED_ORG_UUID, VALUE_ZERO, VALUE_ONE, AUTHORIZATION_ERROR, CORRELATION_ID\n} from '../../data/constants';\nimport { useStyles } from './styles';\nimport { PreLoaderLogo } from '../../elements/PreLoaderLogo';\nimport * as Utils from '../../data/utils';\nimport * as Constants from '../../data/constants';\nimport Settings from '../../conf/settings';\nimport {setErrorNotification} from \"../../store/actions/notification\";\nimport { trackLoginPageLoad } from '../../util/app-insights';\n\nexport interface IAcceptInvitation {\n status: string;\n message: string;\n}\n\ninterface SignInProps {\n userReducer: UserReducer,\n userLogin: (fidp?: string, state?: string, correlationId?: string, orgName?: string, enterpriseEmail?:string) => void,\n fetchUserOrganizations: (correlationId: string) => Promise,\n addEnterpriseUserToOrg: () => Promise,\n changeUserOrganization: (selectedOrganization: Organization) => void,\n obtainApimToken: (orgHandle: string, correlationId: string) => Promise\n}\n\nfunction SignIn(props: SignInProps) {\n const classes = useStyles();\n const dispatch = useDispatch();\n const intl = useIntl();\n const { state } = useAuthContext();\n const [retryCount, setRetryCount] = useState(0);\n const [invitationAccepted, setInvitationAccepted] = useState(false);\n const {\n signedIn, orgs: userOrganizations, loading: userReducerLoading, userInfo,\n apimTokenObtained, apimTokenObtaining, error, selectedOrg, status\n } = props.userReducer;\n const history = useHistory();\n const location = useLocation<{confirmationOrg: string; confirmationKey: string; enterpriseEmail: string}>();\n const confirmationOrg = location.state?.confirmationOrg;\n const confirmationKey = location.state?.confirmationKey;\n const enterpriseEmail = location.state?.enterpriseEmail;\n const params = new URLSearchParams(location.search);\n const authCode = params.get(\"code\");\n const errorCode = params.get(\"error\");\n const stateQueryParam = params.get(\"state\") || '';\n const orgName = localStoreOperation(StorageOperations.GET, Constants.SELECTED_ORG_HANDLE_NAME) || '';\n const correlationId = localStoreOperation(StorageOperations.GET, CORRELATION_ID) || '';\n const clientErrorStatusCodes = [401, 404];\n const successStatusCodesToRedirectToUnauthorizedPage = [202];\n const errorCodesToAddEnterpriseUserToOrg = [1003, 1020, 1023];\n const errorCodesToRedirectToUnauthorizedPage = [1020, 1021, 1022];\n\n const [isInvitation, stateCustomDomain, stateConfirmationOrg, stateConfirmationKey] = useMemo(() => {\n if (!stateQueryParam) {\n return [false, undefined, undefined, undefined];\n }\n let stateString;\n try {\n stateString = atob(stateQueryParam);\n } catch (e) {\n return [false, undefined, undefined, undefined];\n }\n\n let confirmationOrg;\n let confirmationKey;\n let customDomain;\n let isInvitation;\n\n const stateObj = JSON.parse(stateString);\n if (stateString.includes('confirmationKey') && stateString.includes('confirmationOrg') && stateString\n .includes('customDomain')) {\n confirmationOrg = stateObj.confirmationOrg;\n confirmationKey = stateObj.confirmationKey;\n customDomain = stateObj.customDomain;\n isInvitation = true;\n } else if (stateString.includes('confirmationKey') && stateString.includes('confirmationOrg') && !stateString\n .includes('customDomain')) {\n confirmationOrg = stateObj.confirmationOrg;\n confirmationKey = stateObj.confirmationKey;\n customDomain = undefined;\n isInvitation = true;\n } else if ((!stateString.includes('confirmationKey') || !stateString.includes('confirmationOrg')) && stateString\n .includes('customDomain')) {\n confirmationOrg = undefined;\n confirmationKey = undefined;\n customDomain = stateObj.customDomain;\n isInvitation = false;\n } else {\n confirmationOrg = undefined;\n confirmationKey = undefined;\n customDomain = undefined;\n isInvitation = false;\n }\n\n return [isInvitation, customDomain, confirmationOrg, confirmationKey];\n }, [stateQueryParam]);\n\n const extractOrgHandleFromPath = (path: string | null | undefined): string => {\n if (!path) {\n return '';\n }\n const result = path.match('^/([^/]+)');\n if (result && result.length > 0) {\n return result[1];\n }\n return '';\n }\n\n const replaceWithCustomDomain = () => {\n const currentHost = window.location.hostname;\n const isCustomDomainCurrently = currentHost !== window.Settings.devportalHost;\n if (!isCustomDomainCurrently && stateCustomDomain && window.location.search.includes(\"code\") && authCode !== null) {\n window.location.replace(window.location.href.replace(Settings.devportalHost, stateCustomDomain));\n }\n };\n\n useEffect(() => {\n if (errorCode && (errorCode === \"microsoft_email_not_found\" || errorCode === Constants.LOGIN_REQUIRED)) {\n history.push('/client-error');\n return;\n }\n if (!state.isAuthenticated) {\n replaceWithCustomDomain();\n const customDomain = Settings.customDomain;\n let fidp = localStoreOperation(StorageOperations.GET, FIDP);\n // @TODO Starting temporary change during the transition from Choreo IDP to Asgardeo\n if (fidp === Settings.oldGoogleFidp) {\n fidp = Settings.googleFidp\n } else if (fidp === Settings.oldGithubFidp) {\n fidp = Settings.githubFidp\n }\n localStoreOperation(StorageOperations.ADD, FIDP, fidp ?? \"\")\n // Ending temporary change\n if (fidp && !apimTokenObtaining) {\n const stateObj: { [key: string]: string } = {};\n if (confirmationKey && confirmationOrg && customDomain) {\n stateObj.confirmationKey = confirmationKey;\n stateObj.confirmationOrg = confirmationOrg;\n stateObj.customDomain = customDomain;\n } else if (confirmationKey && confirmationOrg && !customDomain) {\n stateObj.confirmationKey = confirmationKey;\n stateObj.confirmationOrg = confirmationOrg;\n } else if ((!confirmationKey || !confirmationOrg) && customDomain) {\n stateObj.customDomain = customDomain;\n }\n\n const stateString = btoa(JSON.stringify(stateObj));\n props.userLogin(fidp, stateString, correlationId, orgName, enterpriseEmail);\n } else {\n history.push(RESOURCE_LOGIN);\n trackLoginPageLoad(correlationId);\n }\n }\n }, []);\n\n useEffect(() => {\n if (!signedIn || !isInvitation) {\n return;\n }\n\n acceptInvitation(stateConfirmationOrg, stateConfirmationKey)\n ?.then((response) => {\n const acceptInvitation = response?.data as IAcceptInvitation;\n if (acceptInvitation.status === \"200\") {\n setInvitationAccepted(true);\n } else {\n dispatch(setErrorNotification(intl.formatMessage({\n id: \"signIn.messages.acceptInvitation.failed\",\n defaultMessage: \"Failed to accept the invitation\"\n })));\n }\n })\n .catch(() => dispatch(setErrorNotification(intl.formatMessage({\n id: \"signIn.messages.acceptInvitation.failed\",\n defaultMessage: \"Failed to accept the invitation\"\n }))));\n }, [signedIn, isInvitation, stateConfirmationOrg, stateConfirmationKey]);\n\n useEffect(() => {\n if (isInvitation && !invitationAccepted) {\n return;\n }\n replaceWithCustomDomain();\n\n if (successStatusCodesToRedirectToUnauthorizedPage.some(o => o === status)) {\n history.push(AUTHORIZATION_ERROR + 1021);\n }\n\n if (signedIn && userOrganizations?.length > VALUE_ZERO && !apimTokenObtaining) {\n const returnTo = sessionStoreOperation(StorageOperations.GET, RETURN_TO_PATH);\n const returnToOrgHandle = extractOrgHandleFromPath(returnTo);\n const selectedOrgUuidFromStorage = localStoreOperation(StorageOperations.GET, SELECTED_ORG_UUID);\n let currentUserOrg: Organization;\n if (userOrganizations.length === VALUE_ONE) {\n currentUserOrg = userOrganizations[VALUE_ZERO];\n props.changeUserOrganization(currentUserOrg);\n } else if (returnToOrgHandle) {\n currentUserOrg = userOrganizations.find((userOrg: Organization) =>\n userOrg.handle === returnToOrgHandle) || userOrganizations[VALUE_ZERO];\n props.changeUserOrganization(currentUserOrg);\n } else if (selectedOrgUuidFromStorage) {\n currentUserOrg = userOrganizations.find((userOrg: Organization) =>\n userOrg.uuid === selectedOrgUuidFromStorage) || userOrganizations[VALUE_ZERO];\n props.changeUserOrganization(currentUserOrg);\n } else {\n currentUserOrg = userOrganizations.find((userOrg: Organization) =>\n userOrg.name === userInfo?.name) || userOrganizations[VALUE_ZERO];\n props.changeUserOrganization(currentUserOrg);\n }\n if(selectedOrg.handle && !apimTokenObtained) {\n props.obtainApimToken(selectedOrg.handle, correlationId);\n }\n if (apimTokenObtained) {\n Utils.localStoreOperation(StorageOperations.ADD, Constants.SELECTED_ORG_HANDLE_NAME, currentUserOrg.handle);\n if (returnTo) {\n sessionStoreOperation(StorageOperations.REMOVE, RETURN_TO_PATH);\n history.push(returnTo);\n } else {\n history.push('/' + currentUserOrg.handle);\n }\n }\n } else if (signedIn && !apimTokenObtaining && !apimTokenObtained && userOrganizations?.length < 1 && !userReducerLoading && retryCount < MAX_RETRY_COUNT) {\n setRetryCount(retryCount + 1);\n if (typeof error === \"object\" && clientErrorStatusCodes.some(o => o === error?.response?.status) && userInfo?.is_eidp === \"true\") {\n if (errorCodesToAddEnterpriseUserToOrg.some(o => o === error?.response?.data?.code)) {\n props.addEnterpriseUserToOrg();\n }\n if (errorCodesToRedirectToUnauthorizedPage.some(o => o === error?.response?.data?.code)) {\n history.push(AUTHORIZATION_ERROR + error?.response?.data?.code);\n }\n } else {\n props.fetchUserOrganizations(correlationId);\n }\n } else if (retryCount >= MAX_RETRY_COUNT) {\n let err_code = \"\";\n if ( typeof error === \"object\"){\n err_code = error?.response?.data?.code ? error?.response?.data?.code : \"\";\n }\n history.push(AUTHORIZATION_ERROR + err_code);\n }\n }, [props.userReducer, isInvitation, invitationAccepted])\n\n return (\n
    \n \n \n
    \n \n
    \n
    \n
    \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n userReducer: state.userReducer\n }\n}\n\nconst mapDispatchToProps = {\n userLogin: userLogin,\n fetchUserOrganizations: fetchUserOrganizations,\n addEnterpriseUserToOrg: addEnterpriseUserToOrg,\n changeUserOrganization: changeUserOrganization,\n obtainApimToken: obtainApimToken\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SignIn);\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createStyles, makeStyles, Theme } from \"@material-ui/core/styles\";\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n loginBg: {\n ...theme.custom.login.loginBg,\n },\n logo: {\n width: 117,\n },\n container: {\n paddingTop: theme.spacing(30),\n },\n box: {\n flexBasis: \"0\",\n paddingBottom: theme.spacing(30),\n paddingTop: theme.spacing(2),\n },\n loginWrapper: {\n padding: theme.spacing(4),\n maxWidth: \"fit-content\",\n borderRadius: 10,\n minWidth: theme.spacing(34),\n ...theme.custom.login.loginWrapper,\n },\n tagLineContainer: {\n paddingBottom: theme.spacing(2),\n },\n tagLine: {\n fontSize: 17,\n fontWeight: \"bold\",\n fontStretch: \"normal\",\n fontStyle: \"normal\",\n lineHeight: theme.spacing(0.2),\n letterSpacing: \"normal\",\n ...theme.custom.login.tagLine,\n },\n google: {\n width: 264,\n ...theme.custom.login.google,\n },\n github: {\n width: 264,\n ...theme.custom.login.github,\n },\n microsoft: {\n width: 264,\n ...theme.custom.login.microsoft,\n },\n email: {\n width: theme.spacing(33),\n ...theme.custom.login.email,\n },\n enterprise: {\n width: 264,\n ...theme.custom.login.enterprise,\n },\n loginBtn: {\n fontFamily: \"Roboto\",\n paddingLeft: 8,\n paddingRight: 12,\n height: 40,\n textTransform: \"none\",\n fontSize: 14,\n fontWeight: 500,\n lineHeight: 1.5,\n borderRadius: 2,\n letterSpacing: 0.22,\n boxShadow: \"0 0 1px 0 rgba(0,0,0,0.12), 0 1px 1px 0 rgba(0,0,0,0.24)\",\n marginTop: theme.spacing(1.5),\n backgroundColor: theme.palette.common.white,\n whiteSpace: \"nowrap\",\n \"&:hover, &:focus, &:active\": {\n backgroundColor: \"#EEEEEE\",\n boxShadow: \"0 0 2px 0 rgba(0,0,0,0.12), 0 2px 2px 0 rgba(0,0,0,0.24)\",\n },\n ...theme.custom.login.loginBtn,\n },\n btnIcon: {\n marginLeft: theme.spacing(-4.75),\n marginRight: theme.spacing(3),\n height: theme.spacing(2.25),\n minWidth: theme.spacing(2.25),\n },\n msftBtnIcon: {\n marginRight: theme.spacing(3),\n marginLeft: theme.spacing(-2.75),\n height: theme.spacing(2.25),\n minWidth: theme.spacing(2.25),\n },\n enterpriseBtnIcon: {\n marginRight: theme.spacing(3),\n height: theme.spacing(2.25),\n minWidth: theme.spacing(2.25)\n },\n btnContainer: {\n marginTop: theme.spacing(2),\n },\n msgContainer: {\n marginTop: theme.spacing(6),\n marginBottom: theme.spacing(3),\n },\n successMsg: {\n color: theme.palette.common.white,\n display: \"inline\",\n fontSize: \"15px\",\n ...theme.custom.login.successMsg,\n },\n contentContainer: {\n marginTop: theme.spacing(4),\n },\n logoTitle: {\n color: theme.palette.common.white,\n flexGrow: 1,\n paddingLeft: \"15px\",\n paddingRight: \"15px\",\n fontWeight: \"bold\",\n textAlign: \"left\",\n fontSize: \"25px\",\n lineHeight: 1.55,\n ...theme.custom.login.logoTitle,\n },\n divider: {\n backgroundColor: theme.palette.common.white,\n marginLeft: \"15px\",\n ...theme.custom.login.divider,\n },\n enterpriseAlign: {\n marginLeft: theme.spacing(-2),\n },\n emailBtnIcon: {\n margin: theme.spacing(0, 2.875, -0.1, -7.8),\n height: theme.spacing(2.25),\n width: theme.spacing(2.25),\n },\n emailIcon: {\n fontSize: theme.spacing(2),\n },\n orDividerText: {\n display: 'flex',\n justifyContent: 'center',\n cursor: 'default',\n marginTop: theme.spacing(1.75),\n color: theme.palette.secondary.main,\n },\n })\n);\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport * as yup from 'yup';\nimport React, { Dispatch, SetStateAction, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport {\n Box,\n Button,\n Container,\n Link,\n OutlinedInput,\n InputAdornment,\n Tooltip,\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Error } from '@material-ui/icons';\n\ninterface EnterpriseLoginBoxProps {\n setEnableEnterpriseLogin: Dispatch>;\n handleEnterpriseLoginClick: (userEmail: string) => void;\n}\n\nconst useStyles = makeStyles((theme) => ({\n enterpriseLoginText: {\n marginTop: theme.spacing(1),\n '& .MuiInputBase-root': {\n height: theme.spacing(5),\n },\n '& .MuiOutlinedInput-input': {\n padding: '11.5px 14px',\n },\n },\n loginTextAdornedEnd: {\n paddingRight: 0,\n },\n continueEnterpriseLoginBtn: {\n ...theme.custom.login.continueEnterpriseLoginBtn\n },\n enterpriseContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n goBackLink: {\n ...theme.custom.login.enterpriseGoBackLink\n },\n}));\n\nexport default function EnterpriseLoginBox(props: EnterpriseLoginBoxProps) {\n const classes = useStyles();\n const intl = useIntl();\n const { setEnableEnterpriseLogin, handleEnterpriseLoginClick } = props;\n const [enterpriseUserEmail, setEnterpriseUserEmail] = useState('');\n const [isEmailValid, setIsEmailValid] = useState();\n const [displayError, setDisplayError] = useState(false);\n const [inputEmailError, setInputEmailError] = useState('');\n\n const emailValidationSchema = yup\n .string()\n .email(\n intl.formatMessage({\n id: 'elements.enterpriseLoginBox.authentication.login.textfield.invalidEmail',\n defaultMessage:\n 'Enter a valid email address in the format email@example.com',\n })\n )\n .required(\n intl.formatMessage({\n id: 'elements.enterpriseLoginBox.authentication.login.textfield.emptyEmail',\n defaultMessage: 'Enter the email address',\n })\n );\n\n const validateEnterpriseEmail = (email: string) => {\n try {\n emailValidationSchema.validateSync(email, { abortEarly: false });\n setIsEmailValid(true);\n setInputEmailError('');\n } catch (emailError: any) {\n setInputEmailError(emailError.message);\n setIsEmailValid(false);\n }\n };\n\n const handleEmailChange = (event: React.ChangeEvent) => {\n const userEmail = event.target.value;\n setDisplayError(false);\n validateEnterpriseEmail(userEmail);\n setEnterpriseUserEmail(userEmail);\n };\n\n const handleContinueClick = () => {\n if (isEmailValid) {\n handleEnterpriseLoginClick(enterpriseUserEmail);\n } else {\n validateEnterpriseEmail(enterpriseUserEmail);\n setDisplayError(true);\n }\n };\n\n const handleKeyPress = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter') {\n handleContinueClick();\n }\n };\n\n return (\n \n \n \n \n \n \n \n )\n }\n />\n \n \n \n {\n setEnableEnterpriseLogin(false);\n }}\n >\n \n \n \n \n );\n}\n","/*\n * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { createSvgIcon } from '@material-ui/core';\nimport React from 'react';\n\nexport default createSvgIcon(\n ,\n 'Email'\n);\n","/*\n * Copyright (c) 2023, WSO2 LLC (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 LLC and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from \"react\";\nimport { FormattedMessage} from \"react-intl\";\n\nimport Button from \"@material-ui/core/Button\";\nimport { Typography, Box } from \"@material-ui/core\";\nimport classNames from \"classnames\";\nimport EmailIcon from '../../icons/Email';\n\nimport { useStyles } from \"./style\";\nimport Settings from \"../../conf/settings\"\n\ninterface LoginCardProps {\n handleEmailLogin: () => void,\n handleGithubLogin: () => void,\n handleGoogleLogin: () => void,\n handleMicrosoftLogin: () => void,\n}\n\nfunction LoginCard(loginCardProps: LoginCardProps) {\n const classes = useStyles();\n const { handleEmailLogin, handleGithubLogin, handleGoogleLogin, handleMicrosoftLogin } = loginCardProps;\n\n const GoogleButtonText = () => {\n if (Settings.enableEmailLogin) {\n return (\n \n );\n }\n return (\n \n );\n };\n\n const GithubButtonText = () => {\n if (Settings.enableEmailLogin) {\n return (\n \n );\n }\n return (\n \n );\n };\n\n const MicrosoftButtonText = () => {\n if (Settings.enableEmailLogin) {\n return (\n \n );\n }\n return (\n \n );\n };\n\n return (\n \n {Settings.enableEmailLogin && (\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n {Settings.enableMicrosoftLogin && (\n \n \n \n \n )}\n \n );\n}\n\nexport default LoginCard;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { FormattedMessage } from \"react-intl\";\nimport { AsgardeoSPAClient, Hooks } from \"@asgardeo/auth-react\";\n\nimport Button from \"@material-ui/core/Button\";\nimport clsx from 'clsx';\nimport Container from \"@material-ui/core/Container\";\nimport Grid from \"@material-ui/core/Grid\";\nimport { Typography, Box, Divider } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core/styles\";\nimport classNames from \"classnames\";\n\nimport { useStyles } from \"./style\";\nimport {\n RESOURCE_SIGN_IN,\n FIDP,\n SELECTED_ORG_HANDLE_NAME,\n FORBIDDEN_SELECTED_ORG_HANDLE_NAME,\n} from \"../../data/constants\";\nimport { isSelfSignupEnabled, localStoreOperation } from \"../../data/utils\";\nimport { StorageOperations } from \"../../data/interfaces\";\nimport DevPortalFooter from \"../shared/DevPortalFooter\";\nimport Settings from \"../../conf/settings\";\nimport EnterpriseLoginBox from \"../../elements/EnterpriseLoginBox\";\nimport LoginCard from \"./loginCard\";\n\nfunction Login() {\n const classes = useStyles();\n const history = useHistory();\n const theme = useTheme();\n const authClient = AsgardeoSPAClient.getInstance();\n const [enableEnterpriseLogin, setEnableEnterpriseLogin] = useState(false);\n\n useEffect(() => {\n // Removing localStore fidp value on sigin out\n authClient?.on(Hooks.SignOut, () => {\n const orgName =\n localStoreOperation(StorageOperations.GET, SELECTED_ORG_HANDLE_NAME) ||\n \"\";\n localStoreOperation(StorageOperations.REMOVE, FIDP);\n localStoreOperation(StorageOperations.REMOVE, SELECTED_ORG_HANDLE_NAME);\n if (isSelfSignupEnabled(orgName)) {\n history.push(`/${orgName}`);\n }\n const forbiddenOrgName = localStoreOperation(StorageOperations.GET, FORBIDDEN_SELECTED_ORG_HANDLE_NAME)\n if (forbiddenOrgName){\n history.replace(forbiddenOrgName);\n localStoreOperation(StorageOperations.REMOVE, FORBIDDEN_SELECTED_ORG_HANDLE_NAME);\n }\n });\n }, []);\n\n const handleGithubLogin = () => {\n localStoreOperation(StorageOperations.ADD, FIDP, Settings.githubFidp);\n history.push(RESOURCE_SIGN_IN);\n };\n\n const handleGoogleLogin = () => {\n localStoreOperation(StorageOperations.ADD, FIDP, Settings.googleFidp);\n history.push(RESOURCE_SIGN_IN);\n };\n\n const handleMicrosoftLogin = () => {\n localStoreOperation(StorageOperations.ADD, FIDP, Settings.microsoftFidp);\n history.push(RESOURCE_SIGN_IN);\n };\n\n const handleEmailLogin = () => {\n localStoreOperation(StorageOperations.ADD, FIDP, Settings.emailFidp);\n history.push(RESOURCE_SIGN_IN);\n };\n\n const handleEnterpriseLogin = (userEmail: string) => {\n localStoreOperation(StorageOperations.ADD, FIDP, Settings.enterpriseFidp);\n history.push(RESOURCE_SIGN_IN, { enterpriseEmail: userEmail});\n };\n\n const defaultMsg = (\n \n \n \n \n \n );\n\n return (\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {defaultMsg}
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n {\n enableEnterpriseLogin ? \n \n :\n <>\n \n setEnableEnterpriseLogin(true)}\n aria-label=\"Enterprise ID sign in\"\n data-cyid=\"sign-in-with-enterprise\"\n >\n \n \n \n \n }\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n \n
    \n );\n}\n\nexport default Login;\n","/*\n * Copyright (c) 2020, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n*/\n\nimport React from 'react';\n\nimport { Container, CssBaseline, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n signInContainer: {\n height: '100vh',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center'\n },\n signInText: {\n fontFamily: 'GilmerBold',\n fontSize: '29px',\n marginTop: '50px'\n },\n tryAgainBtn: {\n margin: '20px',\n textTransform: \"capitalize\"\n },\n loaderContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n}));\n\nfunction PageNotFound() {\n const classes = useStyles();\n\n return (\n
    \n \n \n
    \n \n
    \n 404. Page not found \n \n We are sorry, we couldn't find the resource you requested.\n \n
    \n
    \n )\n}\n\nexport default PageNotFound\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles } from \"@material-ui/core\";\n\nexport const useStyles = makeStyles((theme) => {\n const hoverStyles = {\n \"& .versionInfo\": {\n height: 0,\n opacity: 0,\n },\n \"& .api-card-content\": {\n maxHeight: \"100px\",\n overflow: \"hidden\",\n },\n };\n\n const cardBaseStyles = {\n display: \"flex\",\n flexDirection: \"column\",\n maxWidth: theme.spacing(34.5),\n transition: \"0.2s\",\n ...theme.custom.elements.apiCard.styles,\n };\n\n return {\n card: {\n ...cardBaseStyles,\n \"&:hover\": {\n ...theme?.custom.elements.apiCard.styles[\"&:hover\"],\n ...hoverStyles,\n },\n },\n noHoverCard: {\n ...cardBaseStyles,\n cursor: \"default\",\n \"&:hover\": hoverStyles,\n },\n versionInfo: {\n transition: \"0.2s ease\",\n opacity: 1,\n },\n cardDiv: {\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n },\n cardContent: {\n flexGrow: 1,\n maxWidth: theme.spacing(30.25),\n ...theme.custom.elements.apiCard.content,\n paddingTop: theme.spacing(0.5),\n maxHeight: 50,\n overflow: \"hidden\",\n transition: \"0.2s\",\n },\n cardContentWrapper: {\n height: theme.spacing(13),\n },\n apiIconImage: {\n ...theme.custom.elements.apiCard.icon,\n textTransform: \"capitalize\",\n },\n cardHeader: {\n textAlign: \"left\",\n alignItems: \"flex-start\",\n height: theme.spacing(10),\n },\n cardHeaderPrototype: {\n paddingBottom: theme.spacing(0.5),\n },\n cardHeaderTitle: {\n overflowWrap: \"anywhere\",\n ...theme.custom.elements.apiCard.title,\n },\n cardheaderSubTitle: {\n marginTop: \"0px\",\n },\n cardHeaderTitleSkeleton: {\n marginBottom: 6,\n },\n cardActionRoot: {\n padding: \"16px\",\n justifyContent: \"center\",\n },\n cardActionRootPrototype: {\n paddingTop: theme.spacing(0.5),\n },\n cardActionSkeleton: {\n marginTop: 16,\n },\n tryOutButton: {\n ...theme.custom.elements.apiCard.tryOutButton,\n },\n docsButton: {\n ...theme.custom.elements.apiCard.docsButton,\n },\n lifecycleStatus: {\n ...theme.custom.elements.apiCard.lifecycleStatus,\n boxSizing: \"border-box\",\n border: \"1px solid #8D91A3\",\n fontSize: \"10px\",\n backgroundColor: \"#E0E2E9\",\n padding: \"2px 10px\",\n borderRadius: \"5px\",\n },\n apiType: {\n ...theme.custom.elements.apiCard.apiType,\n fontSize: 11,\n },\n apiTitle: {\n overflow: \"hidden\",\n WebkitLineClamp: 2,\n WebkitBoxOrient: \"vertical\",\n display: \"-webkit-box\",\n },\n lsStatusWrapper: {\n marginLeft: theme.spacing(1),\n },\n rating: {\n ...theme.custom.elements.apiCard.rating,\n marginTop: theme.spacing(0.2),\n },\n versionWrapper: {\n ...theme.custom.elements.apiCard.versionWrapper,\n padding: `${theme.spacing(2)}px 0 0 ${theme.spacing(2)}px`,\n },\n };\n});\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useHistory } from 'react-router-dom';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Rating, Skeleton } from '@material-ui/lab';\nimport {\n Avatar,\n Box,\n Button,\n Card,\n CardActions,\n CardContent,\n CardHeader,\n Grid,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport { useStyles } from './styles';\nimport {\n API_TYPE_GRAPHQL,\n API_TYPE_WS,\n MAX_DESCRIPTION_LENGTH,\n PATH_SEPARATOR,\n RESOURCE_API,\n RESOURCE_API_DOCUMENTS,\n RESOURCE_API_TRYOUT,\n RESOURCE_OVERVIEW,\n} from '../../../data/constants';\nimport { UserReducer } from '../../../data/interfaces';\nimport {\n trackApiSelectFromAPIList, trackDocumentationClickFromAPICard,\n trackTryOutClickFromAPICard\n} from \"../../../util/app-insights\";\nimport Settings from '../../../conf/settings';\n\ninterface ApiCardProps {\n apiId: string;\n apiVersion: string;\n apiTitle: string;\n apiRating: number;\n apiSummary: string;\n apiImageUrl: string;\n organizationHandle: string;\n userReducer: UserReducer;\n lifeCycleStatus?: string;\n testId?: string;\n isInternalAPI?: boolean;\n apiType?: string;\n}\n\nfunction ApiCard(props: ApiCardProps) {\n const classes = useStyles();\n const history = useHistory();\n const {\n apiId,\n apiVersion,\n apiTitle,\n apiRating,\n apiSummary,\n apiImageUrl,\n organizationHandle,\n userReducer,\n lifeCycleStatus,\n testId,\n isInternalAPI,\n apiType,\n } = props;\n const isApimTokenObtained = userReducer.apimTokenObtained;\n const truncatedApiSummary =\n apiSummary?.length > MAX_DESCRIPTION_LENGTH\n ? apiSummary.substring(0, MAX_DESCRIPTION_LENGTH) + '...'\n : apiSummary;\n\n const intl = useIntl();\n\n const navigateToApiOverview = (event: React.MouseEvent) => {\n event.stopPropagation();\n if (apiTitle) {\n trackApiSelectFromAPIList(`${apiId}`);\n history.push(\n PATH_SEPARATOR +\n organizationHandle +\n RESOURCE_API +\n PATH_SEPARATOR +\n apiId +\n RESOURCE_OVERVIEW\n );\n }\n };\n\n const navigateToApiTryout = (event: React.MouseEvent) => {\n event.stopPropagation();\n trackTryOutClickFromAPICard(apiId);\n history.push(\n PATH_SEPARATOR +\n organizationHandle +\n RESOURCE_API +\n PATH_SEPARATOR +\n apiId +\n RESOURCE_API_TRYOUT\n );\n };\n\n const navigateToApiDocs = (event: React.MouseEvent) => {\n event.stopPropagation();\n trackDocumentationClickFromAPICard(apiId);\n history.push(\n PATH_SEPARATOR +\n organizationHandle +\n RESOURCE_API +\n PATH_SEPARATOR +\n apiId +\n RESOURCE_API_DOCUMENTS\n );\n };\n\n const ApiCardContent = (): JSX.Element | null => {\n return apiSummary ? (\n \n {truncatedApiSummary}\n \n ) : null;\n };\n\n const ApiCardAction = (): JSX.Element => {\n return (\n \n {apiTitle ? (\n \n {isApimTokenObtained && (\n \n \n \n )}\n \n \n ) : (\n \n )}\n \n );\n };\n\n const ApiCardHeader = (): JSX.Element => {\n return (\n \n ) : (\n \n )\n }\n title={\n apiTitle ? (\n \n \n \n \n \n \n {apiType === API_TYPE_WS ? (\n \n ) : apiType === API_TYPE_GRAPHQL ? (\n \n ) : (\n \n )}\n \n \n \n
    \n {lifeCycleStatus === 'PROTOTYPED' && (\n \n \n \n )}\n
    \n
    \n
    \n
    \n \n {apiTitle}\n \n
    \n {isInternalAPI && \n \n \n \"interal-api-icon\"\n\n \n }\n
    \n ) : (\n \n )\n }>\n
    \n );\n };\n\n const VersionInfo = () => {\n return (\n apiTitle ? (\n
    \n \n \n \n \n \n \n |\n \n \n \n \n \n
    \n ) : (\n \n )\n )\n }\n\n return (\n
    \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n );\n}\n\nexport default React.memo(ApiCard);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory, useLocation, useParams } from 'react-router-dom';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport {\n Container,\n Grid,\n Typography,\n CssBaseline,\n makeStyles,\n IconButton,\n Chip,\n Box,\n useTheme,\n OutlinedInput,\n InputAdornment,\n Button,\n} from '@material-ui/core';\nimport {\n ChevronLeft as ChevronLeftIcon,\n ChevronRight as ChevronRightIcon,\n} from '@material-ui/icons';\n\nimport {\n ApplicationState,\n UserReducer,\n StorageOperations,\n ApiReducer,\n Api,\n ApiTag,\n ApiTagsReducer,\n ApiList,\n ApiCategory,\n ApiCategoriesReducer,\n OrganizationMetadataReducer,\n} from '../data/interfaces';\nimport {\n fetchApiListAuthenticated,\n fetchApiListUnAuthenticated,\n fetchApiTagList,\n fetchApiCategoryList,\n fetchApiListByMajorVersionAuthenticated,\n fetchApiListByMajorVersionUnAuthenticated,\n} from '../data/operations';\nimport {\n RETURN_TO_PATH,\n SELECTED_ORG_UUID,\n ORG_QUERY_PARAM,\n FIDP,\n RESOURCE_SIGN_IN,\n RESOURCE_LOGIN,\n API_TAGS_QUERY,\n API_CATEGORY_QUERY,\n RGB_ALPHA,\n DEFAULT_RGB_ALPHA,\n DEFAULT_API_TAGS_COLOR,\n API_GENERAL_QUERY,\n KEY_ENTER,\n SELECTED_ORG_HANDLE_NAME, API_DISPLAY_NAME_QUERY,\n} from '../data/constants';\nimport {\n isValidData,\n sessionStoreOperation,\n localStoreOperation,\n getIsInternalAPI,\n isSelfSignupEnabled,\n getAPIType,\n} from '../data/utils';\nimport DevPortalFooter from './shared/DevPortalFooter';\nimport ApiCard from './api-list/ApiCard';\nimport NoPermission from './shared/NoPermission';\nimport {trackApiLoadOnSearch} from \"../util/app-insights\";\nimport Settings from '../conf/settings';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flexGrow: 1,\n height: '100vh',\n flexDirection: 'column',\n },\n appBarSpacer: {\n minHeight: theme.spacing(16),\n },\n content: {\n flexGrow: 1,\n overflow: 'auto',\n ...theme.custom.apiListingPage.styles,\n },\n container: {\n paddingTop: theme.spacing(5.75),\n paddingBottom: theme.spacing(4),\n maxWidth: theme.spacing(185),\n },\n drawerPaper: {\n position: 'relative',\n whiteSpace: 'nowrap',\n display: 'flex',\n flexDirection: 'column',\n borderRight: 'none',\n backgroundColor: '#f7f8fb',\n },\n listPadding: {\n display: 'flex',\n paddingTop: '0',\n paddingBottom: '0',\n flexDirection: 'column',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'row',\n },\n },\n apiListPageTitle: {\n ...theme.custom.apiListingPage.title.styles,\n },\n apiListPageSubTitle: {\n ...theme.custom.apiListingPage.subTitle.styles,\n },\n apiListGrid: {\n minWidth: theme.spacing(38.5),\n minHeight: theme.spacing(30.5),\n },\n allApisButton: {\n height: theme.spacing(4),\n width: theme.spacing(9),\n margin: '17px 8px 8px 8px',\n fontSize: '11px',\n textTransform: 'capitalize',\n backgroundColor: 'rgba(255,255,255,0)',\n borderColor: '#f7f8fb',\n borderRadius: '7px',\n color: '#40404B',\n fontFamily: 'GilmerMedium',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)',\n },\n allApisButtonBox: {\n textAlign: 'left',\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center',\n },\n },\n apiTags: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n [theme.breakpoints.down('sm')]: {\n justifyContent: 'center',\n },\n flexWrap: 'wrap',\n listStyle: 'none',\n padding: theme.spacing(0.5),\n margin: 0,\n },\n apiCategories: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n [theme.breakpoints.down('sm')]: {\n justifyContent: 'center',\n flexDirection: 'row',\n },\n flexWrap: 'wrap',\n listStyle: 'none',\n padding: theme.spacing(0.5),\n margin: 0,\n },\n apiCategoriesBox: {\n display: 'flex',\n justifyContent: 'flex-start',\n [theme.breakpoints.down('sm')]: {\n justifyContent: 'center',\n },\n overflow: 'auto',\n },\n apiTagCategorySection: {\n paddingLeft: theme.spacing(),\n [theme.breakpoints.down('md')]: {\n paddingLeft: '0px',\n },\n },\n apiTagCategoryTitle: {\n ...theme.custom.apiListingPage.tagCategory.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center',\n },\n },\n categoryChip: {\n margin: theme.spacing(0.5),\n backgroundColor: '#f7f8fb',\n border: 'none',\n borderRadius: '6px',\n },\n tagChip: {\n margin: theme.spacing(0.5),\n backgroundColor: '#a6b3ff',\n border: 'none',\n borderRadius: '6px',\n ...theme.custom.apiListingPage.tagChip\n },\n apiSearchBar: {\n [theme.breakpoints.down('sm')]: {\n width: theme.spacing(50),\n },\n ...theme.custom.apiListingPage.apiSearchBar.textField,\n },\n apiSearchBarButton: {\n ...theme.custom.apiListingPage.apiSearchBar.searchButton,\n },\n apiSearchBarAdornedEnd: {\n paddingRight: theme.spacing(1),\n },\n apiSearchBarAdornedStart: {\n paddingLeft: theme.spacing(1),\n },\n apiSearchBarInputAdornedStart: {\n paddingLeft: theme.spacing(1),\n paddingTop: theme.spacing(0),\n paddingBottom: theme.spacing(0),\n height: theme.spacing(4.5),\n },\n}));\n\nexport interface ApiListProps {\n apiReducer: ApiReducer;\n userReducer: UserReducer;\n apiTagsReducer: ApiTagsReducer;\n apiCategoriesReducer: ApiCategoriesReducer;\n organizationMetadataReducer: OrganizationMetadataReducer;\n fetchApiListAuthenticated: (\n organizationId: string,\n pagination?: string\n ) => Promise;\n fetchApiListByMajorVersionAuthenticated: (\n organizationId: string,\n pagination?: string\n ) => Promise;\n fetchApiListUnAuthenticated: (\n organizationId: string,\n pagination?: string\n ) => Promise;\n fetchApiListByMajorVersionUnAuthenticated: (\n organizationId: string,\n pagination?: string\n) => Promise;\n fetchApiTagList: (organizationId: string) => Promise;\n fetchApiCategoryList: (organizationId: string) => Promise;\n}\n\nfunction ApiListPage({\n apiReducer,\n userReducer,\n apiTagsReducer,\n apiCategoriesReducer,\n organizationMetadataReducer,\n fetchApiListAuthenticated,\n fetchApiListUnAuthenticated,\n fetchApiListByMajorVersionAuthenticated,\n fetchApiListByMajorVersionUnAuthenticated,\n fetchApiTagList,\n fetchApiCategoryList,\n}: ApiListProps) {\n const classes = useStyles();\n const history = useHistory();\n const location = useLocation();\n const theme = useTheme();\n const intl = useIntl();\n const { orgName } = useParams<{orgName: string}>();\n const { loading: apiLoading, apiList, thumbnailMap } = apiReducer;\n const publicOrgUuid = organizationMetadataReducer?.organizationMetadata?.uuid;\n const {\n apimTokenObtained,\n orgs: userOrganizations,\n selectedOrg,\n signedIn\n } = userReducer;\n const { tagList } = apiTagsReducer;\n const { categoryList } = apiCategoriesReducer;\n const [tagCounts, setTagCounts] = useState({ minValue: 0, maxValue: 0 });\n const [apiSearchBarText, setApiSearchBarText] = useState('');\n const [apiListState, setApiListState] = useState<{\n apiList: ApiList;\n thumbnailMap: { [key: string]: string };\n tagList: ApiTag[];\n categoryList: ApiCategory[];\n }>({\n apiList: apiList,\n thumbnailMap: thumbnailMap,\n tagList: tagList.list,\n categoryList: categoryList.list,\n });\n\n const checkUserAccessToCurrentPathOrg = (): boolean => {\n const selectedOrganization = userOrganizations.find(\n (userOrg) => userOrg.handle === orgName\n );\n return !!selectedOrganization;\n };\n\n const hasUserAccessToCurrentPathOrg = checkUserAccessToCurrentPathOrg();\n\n const getApiListAuthenticated = async (organizationId: string, pagination?: string) => {\n if (Settings.intelligentRoutingFeatureEnabled) {\n fetchApiListByMajorVersionAuthenticated(organizationId, pagination);\n } else {\n fetchApiListAuthenticated(organizationId, pagination);\n }\n }\n\n const getApiListUnAuthenticated = async (organizationId: string, pagination?: string) => {\n if (Settings.intelligentRoutingFeatureEnabled) {\n fetchApiListByMajorVersionUnAuthenticated(organizationId, pagination);\n } else {\n fetchApiListUnAuthenticated(organizationId, pagination);\n }\n }\n\n const getApiNextPage = () => {\n const paginationNext = apiListState.apiList?.pagination?.next;\n if (paginationNext && selectedOrg.uuid) {\n getApiListAuthenticated(selectedOrg.uuid, paginationNext);\n } else if (paginationNext && publicOrgUuid && !apimTokenObtained) {\n getApiListUnAuthenticated(publicOrgUuid, paginationNext);\n }\n document\n .querySelector('#apiListMainContent')\n ?.scrollTo({ top: 0, behavior: 'smooth' });\n };\n\n const getApiPreviousPage = () => {\n const paginationPrev = apiListState.apiList?.pagination?.previous;\n if (paginationPrev && selectedOrg.uuid && apimTokenObtained) {\n getApiListAuthenticated(selectedOrg.uuid, paginationPrev);\n } else if (paginationPrev && publicOrgUuid && !apimTokenObtained) {\n getApiListUnAuthenticated(publicOrgUuid, paginationPrev);\n }\n document\n .querySelector('#apiListMainContent')\n ?.scrollTo({ top: 0, behavior: 'smooth' });\n };\n\n const handleTagClick = (tagValue?: string) => {\n if (!tagValue && selectedOrg.uuid) {\n getApiListAuthenticated(selectedOrg.uuid);\n } else if (tagValue && selectedOrg.uuid) {\n // Uri encode the value to preserve the whitespaces in the tag. i.e tags:Business Intelligence/Dashboards\n // Wrap tag value with double quotes to let the API Manager know that the tag value should be matched exactly\n const selectedTag = encodeURIComponent(\"\\\"\" + tagValue + \"\\\"\");\n getApiListAuthenticated(selectedOrg.uuid, API_TAGS_QUERY + selectedTag);\n }\n };\n\n const handleCategoryClick = (categoryValue?: string) => {\n if (!categoryValue && selectedOrg.uuid) {\n getApiListAuthenticated(selectedOrg.uuid);\n } else if (categoryValue && selectedOrg.uuid) {\n // Double uri encode the value to preserve the whitespaces in the categoryValue\n const selectedCategory = encodeURIComponent(encodeURIComponent(categoryValue));\n getApiListAuthenticated(\n selectedOrg.uuid,\n API_CATEGORY_QUERY + selectedCategory\n );\n }\n };\n\n const handleSearchBarChange = (\n event: React.ChangeEvent\n ) => {\n setApiSearchBarText(event.target.value);\n };\n\n const handleSearchBarButtonClick = () => {\n const searchQuery = apiSearchBarText ? API_DISPLAY_NAME_QUERY + apiSearchBarText : '';\n if (selectedOrg.uuid && apimTokenObtained) {\n trackApiLoadOnSearch(searchQuery, tagList?.list.map(tag => tag.value));\n getApiListAuthenticated(\n selectedOrg.uuid,\n searchQuery\n );\n } else if (!apimTokenObtained && publicOrgUuid) {\n getApiListUnAuthenticated(\n publicOrgUuid,\n searchQuery\n );\n }\n };\n\n const getTagColor = (tagValue: number) => {\n const tagColor = DEFAULT_API_TAGS_COLOR;\n const { maxValue, minValue } = tagCounts;\n if (maxValue == 1) {\n return tagColor.replace(RGB_ALPHA, DEFAULT_RGB_ALPHA);\n }\n // Mapping the range of tag counts between 30% and 100% ALPHA value\n const colorGradientPercentage =\n (7 * tagValue - 10 * minValue + 3 * maxValue) /\n (10 * (maxValue - minValue));\n return tagColor.replace(RGB_ALPHA, colorGradientPercentage.toString());\n };\n\n useEffect(() => {\n if (apiList) {\n setApiListState((prevState) => {\n return {\n ...prevState,\n apiList: apiList,\n };\n });\n }\n }, [apiList]);\n\n useEffect(() => {\n if (isValidData(thumbnailMap)) {\n setApiListState((prevState) => {\n return {\n ...prevState,\n thumbnailMap: thumbnailMap,\n };\n });\n }\n }, [thumbnailMap]);\n\n useEffect(() => {\n if (tagList) {\n setApiListState((prevState) => {\n return {\n ...prevState,\n tagList: tagList.list,\n };\n });\n setTagCounts({\n minValue: Math.min(...tagList.list.map((tag) => tag.count)),\n maxValue: Math.max(...tagList.list.map((tag) => tag.count)),\n });\n }\n }, [tagList]);\n\n useEffect(() => {\n if (categoryList) {\n setApiListState((prevState) => {\n return {\n ...prevState,\n categoryList: categoryList.list,\n };\n });\n }\n }, [categoryList]);\n\n useEffect(() => {\n if (signedIn && orgName && !hasUserAccessToCurrentPathOrg) {\n history.push(\"/forbidden\");\n }\n }, [selectedOrg]);\n\n useEffect(() => {\n if (!apimTokenObtained) {\n // @TODO Temporarily disabling anonymous view\n // fetchApiUnauthenticated(apiId);\n sessionStoreOperation(\n StorageOperations.ADD,\n RETURN_TO_PATH,\n window.location.pathname\n );\n const queryParam = new URLSearchParams(location.search);\n const orgUuid = queryParam.get(ORG_QUERY_PARAM);\n if (orgUuid) {\n localStoreOperation(StorageOperations.ADD, SELECTED_ORG_UUID, orgUuid);\n }\n // Checking whether request is from choreo portal and setting fidp value\n if (queryParam.get('fidp')) {\n localStoreOperation(\n StorageOperations.ADD,\n FIDP,\n queryParam.get('fidp') ?? ''\n );\n history.push(RESOURCE_SIGN_IN);\n } else if (localStoreOperation(StorageOperations.GET, FIDP) && orgName == localStoreOperation(StorageOperations.GET, SELECTED_ORG_HANDLE_NAME)) {\n // Redirecting user to sigin if fidp value already exists in local store and orghandle in url and local store are equivalent\n history.push(RESOURCE_SIGN_IN);\n } else if (publicOrgUuid) {\n // None of the users need to be navigated to login page, if the fidp value is not exists then all the users\n // will be navigated to public API view (Listing public APIs)\n getApiListUnAuthenticated(publicOrgUuid);\n }\n } else if (\n apimTokenObtained &&\n selectedOrg.uuid &&\n hasUserAccessToCurrentPathOrg\n ) {\n getApiListAuthenticated(selectedOrg.uuid);\n fetchApiTagList(selectedOrg.uuid);\n fetchApiCategoryList(selectedOrg.uuid);\n }\n }, [selectedOrg]);\n\n return (\n
    \n \n
    \n
    \n \n \n \n \n {theme.custom.apiListingPage.title.text ??\n intl.formatMessage({\n id: 'apiListingPage.banner.title',\n defaultMessage: 'Find and Connect to APIs',\n })}\n \n \n {theme.custom.apiListingPage.subTitle.text ??\n intl.formatMessage({\n id: 'apiListingPage.banner.subTitle',\n defaultMessage:\n 'Explore our APIs and discover how you can use them to develop your application',\n })}\n \n ) => {\n if (event.key === KEY_ENTER) {\n handleSearchBarButtonClick();\n }\n }}\n endAdornment={\n \n \n \n \n \n }\n startAdornment={\n \n \n \n }\n labelWidth={0}\n className={classes.apiSearchBar}\n classes={{\n adornedStart: classes.apiSearchBarAdornedStart,\n adornedEnd: classes.apiSearchBarAdornedEnd,\n inputAdornedStart: classes.apiSearchBarInputAdornedStart,\n }}\n />\n \n {apiLoading ? (\n \n {[...Array(3).keys()].map((key) => (\n \n \n \n ))}\n \n ) : apiListState.apiList.list?.length > 0 ? (\n \n \n {apiListState.categoryList.length > 0 && (\n \n \n {theme.custom.apiListingPage.tagCategory\n .categoryTitle ??\n intl.formatMessage({\n id: 'apiListingPage.leftMenu.apiCategories.title',\n defaultMessage: 'API Categories',\n })}\n \n \n
    \n \n {apiListState.categoryList.map((category) => {\n return (\n
  • \n \n handleCategoryClick(category.name)\n }\n variant='outlined'\n />\n
  • \n );\n })}\n
    \n
    \n
    \n )}\n \n \n {theme.custom.apiListingPage.tagCategory.tagsTitle ??\n intl.formatMessage({\n id: 'apiListingPage.leftMenu.apiTags.title',\n defaultMessage: 'Tags',\n })}\n \n \n
    \n \n handleTagClick()}\n variant='outlined'\n />\n {apiListState.tagList.map((tag) => {\n return (\n
  • \n handleTagClick(tag.value)}\n variant='outlined'\n style={{\n backgroundColor: getTagColor(tag.count),\n }}\n />\n
  • \n );\n })}\n
    \n
    \n
    \n
    \n \n \n {apiListState.apiList.list.map((api: Api) => (\n \n \n \n ))}\n \n \n \n \n \n \n \n {apiListState.apiList?.pagination?.offset + 1}-\n {apiListState.apiList?.pagination?.offset +\n apiListState.apiList?.count}{' '}\n of {apiListState.apiList?.pagination?.total}\n \n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n )}\n \n
    \n
    \n
    \n \n
    \n );\n}\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n apiReducer: state.apiReducer,\n userReducer: state.userReducer,\n apiTagsReducer: state.apiTagsReducer,\n apiCategoriesReducer: state.apiCategoriesReducer,\n organizationMetadataReducer: state.organizationMetadataReducer,\n };\n};\n\nconst mapDispatchToProps = {\n fetchApiListAuthenticated: fetchApiListAuthenticated,\n fetchApiListUnAuthenticated: fetchApiListUnAuthenticated,\n fetchApiListByMajorVersionAuthenticated: fetchApiListByMajorVersionAuthenticated,\n fetchApiListByMajorVersionUnAuthenticated: fetchApiListByMajorVersionUnAuthenticated,\n fetchApiTagList: fetchApiTagList,\n fetchApiCategoryList: fetchApiCategoryList,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ApiListPage);\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { ApiTagList } from '../../data/interfaces';\nimport {\n FETCH_API_TAGS_REQUEST, FETCH_API_TAGS_SUCCESS, FETCH_API_TAGS_FAILURE\n} from '../types/tags';\n\nexport const fetchApiTagsRequest = () => {\n return {\n type: FETCH_API_TAGS_REQUEST\n }\n}\n\nexport const fetchApiTagsSuccess = (tags: ApiTagList) => {\n return {\n type: FETCH_API_TAGS_SUCCESS,\n payload: tags\n }\n}\n\nexport const fetchApiTagsFailure = (error: string) => {\n return {\n type: FETCH_API_TAGS_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { ApiCategoryList } from '../../data/interfaces';\nimport {\n FETCH_API_CATEGORY_REQUEST, FETCH_API_CATEGORY_SUCCESS, FETCH_API_CATEGORY_FAILURE\n} from '../types/categories';\n\nexport const fetchApiCategoriesRequest = () => {\n return {\n type: FETCH_API_CATEGORY_REQUEST\n }\n}\n\nexport const fetchApiCategoriesSuccess = (categories: ApiCategoryList) => {\n return {\n type: FETCH_API_CATEGORY_SUCCESS,\n payload: categories\n }\n}\n\nexport const fetchApiCategoriesFailure = (error: string) => {\n return {\n type: FETCH_API_CATEGORY_FAILURE,\n payload: error\n }\n}\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport { makeStyles, Theme } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n root: {\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n height: '100vh',\n },\n content: {\n flexGrow: 1,\n overflow: 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n ...theme.custom.homePage.styles\n },\n appBarSpacer: {\n minHeight: theme.spacing(28.5)\n },\n homeTitle: {\n ...theme.custom.homePage.title.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n homeSubTitle: {\n ...theme.custom.homePage.subTitle.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n homeTitleBox: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n homeTitleButtons: {\n width: '470px',\n textAlign: 'left',\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center',\n marginBottom: theme.spacing(12)\n }\n },\n homeBanner: {\n ...theme.custom.homePage.banner.styles,\n maxWidth: '700px',\n },\n signUpButton: {\n fontSize: '13px',\n lineHeight: '16px',\n textTransform: 'capitalize',\n width: '179px',\n height: '48px',\n borderRadius: '25px',\n marginRight: '16px'\n },\n browseButton: {\n ...theme.custom.homePage.browseButton.styles\n },\n browseButtonFeatured: {\n ...theme.custom.homePage.sections.featuredApis.browseButton.styles\n },\n introVideoTitle: {\n ...theme.custom.homePage.sections.introVideo.title.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n introVideoSubTitle: {\n ...theme.custom.homePage.sections.introVideo.subTitle.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n featuredTitle: {\n ...theme.custom.homePage.sections.featuredApis.title.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n featuredSubTitle: {\n ...theme.custom.homePage.sections.featuredApis.subTitle.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n organization: {\n ...theme.custom.homePage.sections.organization.styles\n },\n organizationTitle: {\n ...theme.custom.homePage.sections.organization.title.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n organizationSubTitle: {\n ...theme.custom.homePage.sections.organization.subTitle.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n organizationCardTitle: {\n ...theme.custom.homePage.sections.organization.cardStyles.title\n },\n organizationCardContent: {\n ...theme.custom.homePage.sections.organization.cardStyles.content\n },\n organizationCardIcon: {\n ...theme.custom.homePage.sections.organization.cardStyles.icon\n },\n useCases: {\n ...theme.custom.homePage.sections.useCases.styles\n },\n useCasesTitle: {\n ...theme.custom.homePage.sections.useCases.title.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n useCasesSubTitle: {\n ...theme.custom.homePage.sections.useCases.subTitle.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n useCasesCardTitle: {\n ...theme.custom.homePage.sections.useCases.cardStyles.title\n },\n useCasesCardContent: {\n ...theme.custom.homePage.sections.useCases.cardStyles.content\n },\n useCasesCardIcon: {\n ...theme.custom.homePage.sections.useCases.cardStyles.icon\n },\n devBlogs: {\n ...theme.custom.homePage.sections.developerBlog.styles\n },\n blogTitle: {\n ...theme.custom.homePage.sections.developerBlog.title.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n blogSubTitle: {\n ...theme.custom.homePage.sections.developerBlog.subTitle.styles,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n },\n blogCardTitle: {\n ...theme.custom.homePage.sections.developerBlog.cardStyles.title\n },\n blogCardAuthor: {\n ...theme.custom.homePage.sections.developerBlog.cardStyles.author\n },\n blogCardContent: {\n ...theme.custom.homePage.sections.developerBlog.cardStyles.content\n },\n blogReadMoreBtn: {\n ...theme.custom.homePage.sections.developerBlog.cardStyles.readMoreButton\n },\n iframe: {\n ...theme.custom.homePage.sections.introVideo.videoIFrame,\n [theme.breakpoints.down('sm')]: {\n height: '100%',\n width: '100%'\n }\n },\n}));\n","/*\n * Copyright (c) 2021, WSO2 Inc. (http://www.wso2.com). All Rights Reserved.\n *\n * This software is the property of WSO2 Inc. and its suppliers, if any.\n * Dissemination of any information or reproduction of any material contained\n * herein is strictly forbidden, unless permitted by WSO2 in accordance with\n * the WSO2 Commercial License available at http://wso2.com/licenses.\n * For specific language governing the permissions and limitations under\n * this license, please see the license as well as any agreement you’ve\n * entered into with WSO2 governing the purchase of this software and any\n * associated services.\n */\n\nimport React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useLocation } from \"react-router-dom\";\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport {\n ApplicationState, UserReducer, NotificationReducer, StorageOperations,\n ApiReducer, Api, OrganizationMetadataReducer\n} from '../../data/interfaces';\nimport { fetchFeaturedApiListAuthenticated } from '../../data/operations';\nimport {\n RESOURCE_API,\n HOME_PAGE_API_QUERY,\n RETURN_TO_PATH,\n SELECTED_ORG_UUID,\n ORG_QUERY_PARAM,\n FIDP,\n RESOURCE_SIGN_IN,\n PATH_SEPARATOR,\n CORRELATION_ID,\n CORRELATION_ID_QUERY_PARAM,\n RESOURCE_CLIENT_ERROR, SELECTED_ORG_HANDLE_NAME\n} from '../../data/constants';\nimport { sessionStoreOperation, localStoreOperation, isValidData, getAPIType } from '../../data/utils';\nimport DevPortalFooter from '../shared/DevPortalFooter';\nimport { Avatar, Box, Button, Container, Grid, Typography, useTheme, CssBaseline } from '@material-ui/core';\nimport GreyOutlinedButton from '../../elements/GreyOutlinedButton';\nimport ApiCard from '../api-list/ApiCard';\nimport { useStyles } from './styles';\nimport { trackBrowseAPIButtonCLick, trackHomePageLoad } from '../../util/app-insights';\n\nexport interface ApiProps {\n apiReducer: ApiReducer,\n userReducer: UserReducer,\n organizationMetadataReducer: OrganizationMetadataReducer,\n notificationReducer: NotificationReducer,\n fetchFeaturedApiListAuthenticated: (organizationId: string, pagination?: string) => Promise\n}\n\nfunction DevportalHome({ apiReducer, userReducer, organizationMetadataReducer, fetchFeaturedApiListAuthenticated }: ApiProps) {\n const classes = useStyles();\n const theme = useTheme();\n const intl = useIntl();\n const history = useHistory();\n const location = useLocation();\n const { orgName } = useParams<{orgName: string}>();\n const { apimTokenObtained, orgs: userOrganizations, selectedOrg, signedIn } = userReducer;\n const { featuredApiListLoading: apiLoading, featuredApiList, thumbnailMap } = apiReducer;\n const [apiListState, setApiListState] = useState<{ apiList: Api[], thumbnailMap: { [key: string]: string } }>\n ({ apiList: featuredApiList.list, thumbnailMap: thumbnailMap });\n const apiListQuery = theme.custom.homePage.sections.featuredApis.apiListQuery ?? HOME_PAGE_API_QUERY;\n const browseApisHandleClick = () => {\n trackBrowseAPIButtonCLick();\n history.push(PATH_SEPARATOR + orgName + RESOURCE_API);\n }\n\n const checkUserAccessToCurrentPathOrg = (): boolean => {\n const selectedOrganization = userOrganizations.find(userOrg => userOrg.handle === orgName);\n return !!selectedOrganization;\n }\n\n const hasUserAccessToCurrentPathOrg = checkUserAccessToCurrentPathOrg();\n\n useEffect(() => {\n if (hasUserAccessToCurrentPathOrg) {\n trackHomePageLoad(localStoreOperation(StorageOperations.GET, CORRELATION_ID) || '');\n }\n }, [hasUserAccessToCurrentPathOrg]);\n\n useEffect(() => {\n if (signedIn && orgName && !hasUserAccessToCurrentPathOrg) {\n history.push(\"/forbidden\");\n }\n }, [selectedOrg]);\n\n const sectionsOrder: string[] = theme.custom.homePage.sections.displayOrder ??\n [\"IntroVideo\", \"FeaturedApis\", \"OrganizationInfo\", \"UseCases\", \"DeveloperBlogs\"];\n\n const IntroVideo = () => (\n theme.custom.homePage.sections.introVideo.enabled ?\n \n \n \n {\n theme.custom.homePage.sections.introVideo.title.text ??\n intl.formatMessage({\n id: \"home.sections.introVideo.title\",\n defaultMessage: \"Getting Started with Choreo APIs\"\n })\n }\n \n \n {\n theme.custom.homePage.sections.introVideo.subTitle.text ??\n intl.formatMessage({\n id: \"home.sections.introVideo.subTitle\",\n defaultMessage: \"Build the future with us. Our APIs enable you to automate, \"\n + \"innovate, and connect to millions of Choreo customers\"\n })\n }\n \n \n