{"version":3,"file":"2733.8277b2bbf3c58e08.js","sources":["./src/app/components/create-vcs-account-integration/accounts-constants.ts","./src/app/components/create-vcs-app-integration-v3/create-vcs-app-integration-v3.component.html","./src/app/components/create-vcs-app-integration-v3/create-vcs-app-integration-v3.component.ts"],"sourceRoot":"webpack:///","sourcesContent":["export const vcsAccountIcons: any = {\n GITHUB: 'github-account',\n GITLAB: 'gitlab-account',\n BITBUCKET: 'bitbucket-account',\n};\n\nexport const cloudAccountIcons: any = {\n AWS: 'aws',\n AZURE: 'azure',\n GCP: 'gcp',\n KUBERNETES: 'kubernetes',\n};\n","\n \n \n \n \n \n \n \n \n \n \n \n \n\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { triggerAnalyticsEvent } from 'src/app/utils/analytics/trigger-analytics';\nimport {\n UiAccountsControllerService,\n UiOneTimeWebhookControllerService,\n} from 'src/app/cc-api/services';\nimport { toTitleCase } from 'src/app/utils/string-util';\nimport { FacetsPage } from 'src/app/facets/facets-page/facets-page.component';\nimport { NbPopoverDirective } from '@nebular/theme';\nimport {\n protocolDisallowPattern,\n whiteSpaceInputPattern,\n} from 'src/app/constants/inputPatterns';\nimport { Subscription, interval, switchMap, startWith } from 'rxjs';\nimport { vcsAccountIcons } from 'src/app/components/create-vcs-account-integration/accounts-constants';\nimport { TokenExpiryService } from 'src/app/services/token-expiry.service';\nimport debounce from 'lodash/debounce';\nimport { VCSLinkingRequest } from 'src/app/cc-api/models/vcslinking-request';\nimport { CustomToastService } from 'src/app/pages/custom-toast/custom-toast.service';\n\n@Component({\n selector: 'app-create-vcs-app-integration-v3',\n templateUrl: './create-vcs-app-integration-v3.component.html',\n styleUrls: ['./create-vcs-app-integration-v3.component.scss'],\n})\nexport class CreateVcsAppV3Component extends FacetsPage {\n @Output() afterSaveAccount: EventEmitter = new EventEmitter();\n @Output() afterChangeIntegration: EventEmitter = new EventEmitter();\n @ViewChild(NbPopoverDirective) popover: NbPopoverDirective; //copy popover\n @Input() passedRef: any;\n @Input() vcsAccountType: any;\n @Input() allowCancel: boolean = true;\n vcsAccountIcons = vcsAccountIcons;\n accountForm: UntypedFormGroup = this.fb.group({\n accountName: [\n '',\n [Validators.required, Validators.pattern('^[a-z0-9-]+$')],\n ],\n hostNameToggle: [false],\n hostedOn: ['github.com'],\n });\n orgNameForm: FormGroup = this.fb.group({\n selectedOrgName: ['', [Validators.required]],\n projectId: ['', [Validators.required]],\n });\n readonly ACCOUNTS_WRITE = 'ACCOUNTS_WRITE';\n alertTitle: string;\n alertType: string;\n alertDescription: string;\n creatingVcsAccount: boolean = false;\n accountCreateError: boolean = false;\n enableStepTwo: boolean = false;\n pollingWebhook: boolean = false;\n loadingOrgNames: boolean = false;\n pollingInterval: number = 5000;\n orgNames: { label: string; value: string }[] = [];\n webhookSubscription: Subscription;\n webhookCreating: boolean = false;\n projectKeyOptions: { label: string; value: string }[] = [];\n updatingVcsAccount: boolean = false;\n account: any;\n orgsLinkedToAccount: boolean = false;\n accountOrgUpdateError: boolean = false;\n loadingProjectKey: boolean = false;\n parentWindow: any;\n organizationKeyWordMap = {\n BITBUCKET: 'Workspaces',\n GITLAB: 'Groups',\n };\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private accountControllerService: UiAccountsControllerService,\n private fb: FormBuilder,\n private tokenExpiryService: TokenExpiryService,\n private webhookIntegrationService: UiOneTimeWebhookControllerService,\n private router: Router,\n private customToast: CustomToastService,\n ) {\n super(activatedRoute);\n }\n\n get accountName() {\n return this.accountForm.get('accountName');\n }\n\n get hostedOn() {\n return this.accountForm.get('hostedOn');\n }\n\n get selectedOrgName() {\n return this.orgNameForm.get('selectedOrgName');\n }\n\n get projectId() {\n return this.orgNameForm.get('projectId');\n }\n\n get hostNameToggle() {\n return this.accountForm.get('hostNameToggle');\n }\n\n //check if github account is created and there is no error while creating the account.\n //if no error then show Done button to the user which will close the popup\n get githubAccountCreated() {\n return !this.accountCreateError && this.vcsAccountType === 'GITHUB';\n }\n\n //check if gitlab and bitbucket account is updated with workspace name and show the final done button and there should is no error while updating the account.\n //if no error then show Done button to the user which will close the popup\n get nonGithubAccountUpdated() {\n return (\n !this.accountOrgUpdateError &&\n this.orgsLinkedToAccount &&\n ['GITLAB', 'BITBUCKET'].includes(this.vcsAccountType)\n );\n }\n\n OnPageLoad(p: Params): void {\n this.alertDescription = '';\n this.account = null;\n this.accountOrgUpdateError = false;\n this.enableStepTwo = false;\n this.accountCreateError = false;\n if (this.vcsAccountType === 'GITHUB') {\n this.hostedOn.addValidators([\n Validators.required,\n Validators.pattern(protocolDisallowPattern),\n ]);\n }\n if (this.vcsAccountType === 'GITLAB') {\n this.projectId?.clearValidators();\n this.projectId?.updateValueAndValidity();\n this.hostedOn.setValue('https://gitlab.com');\n }\n this.parentWindow = window;\n }\n\n /*\n * Clicking on Next button will have 2 conditions.\n 1. When step 2 is not shown to the user, then show step 2 with token generation instruction and input field\n 2. When step 2 is shown to the user, submit the account and show success or error message to the user\n \n * While saving the account input fields needs to be disabled and they should stay disabled when success message is shown\n */\n showNextStep() {\n if (!this.enableStepTwo) {\n this.enableStepTwo = true;\n this.accountName?.disable();\n this.hostedOn.disable();\n this.webhookCreating = true;\n triggerAnalyticsEvent(`ORG_SETTINGS_ACCOUNT_MANAGEMENT_ADDITION_LINK`, {\n accountName: this.accountName?.value,\n provider: this.vcsAccountType,\n });\n const linkApiParams: VCSLinkingRequest = {\n accountName: this.accountName?.value,\n enterpriseHostName: ['github.com', 'https://gitlab.com'].includes(\n this.hostedOn?.value?.trim(),\n )\n ? null\n : this.hostedOn?.value?.trim(),\n webhook: {\n status: 'WAITING',\n type: this.vcsAccountType,\n },\n };\n this.accountControllerService\n .requestVCSLinkingUsingPOST(linkApiParams)\n .subscribe(\n (webhookResp) => {\n this.webhookCreating = false;\n if (webhookResp?.redirectUrl) {\n this.openChildWindow(webhookResp?.redirectUrl);\n this.closeAndReturnToParent();\n }\n this.startPollingWebhook(webhookResp?.webhook?.id);\n },\n (error) => {\n this.webhookCreating = false;\n if (error?.error?.code === '400') {\n this.enableStepTwo = false;\n }\n this.accountName.enable();\n this.hostedOn.enable();\n this.customToast.error(\n error?.error?.message || `Account linking failed`,\n );\n },\n );\n }\n }\n\n openChildWindow(url) {\n // Store reference to parent window\n const parentWindow = window;\n\n // Open child window and store its reference\n const childWindow = window?.open(url, '_blank');\n\n // Add event listener for when child window closes\n const checkChild = setInterval(() => {\n if (childWindow?.closed) {\n clearInterval(checkChild);\n // Focus back to parent window\n parentWindow?.focus();\n }\n }, 500);\n\n return childWindow;\n }\n\n // Child window code\n closeAndReturnToParent() {\n // Optional: You can communicate with parent window if needed\n if (window?.opener && !window?.opener?.closed) {\n window?.opener?.focus();\n }\n\n // Close the current window\n window.close();\n }\n\n startPollingWebhook(webhookId) {\n this.pollingWebhook = true;\n this.enableStepTwo = true;\n this.webhookSubscription = interval(this.pollingInterval)\n .pipe(\n startWith(0),\n switchMap(() =>\n this.webhookIntegrationService.pollWebhookUsingGET(webhookId),\n ),\n )\n .subscribe(\n async (response: any) => {\n if (response && response?.status !== 'WAITING') {\n this.pollingWebhook = false;\n this.alertType =\n response?.status === 'SUCCESS' ? 'success' : 'danger';\n if (response?.status === 'SUCCESS') {\n this.accountControllerService\n ?.getAccountByNameUsingGET(this.accountName?.value)\n .subscribe(\n (account) => {\n this.account = account;\n if (['GITLAB', 'BITBUCKET'].includes(account?.provider)) {\n this.getOrgsBasedOnAccountId(account);\n this.getProjectKeyOptions(account?.['orgName']);\n }\n this.onAccountCreateSuccess(account);\n },\n (error) => {\n if (error?.status === 404) {\n this.onAccountPresent();\n }\n },\n );\n } else {\n const error = {\n error: {\n message: response?.errorMessage,\n },\n };\n this.onAccountCreateFailure(error);\n }\n this.afterSaveAccount.emit(this.accountName?.value);\n // If response is received, stop polling\n this.stopPolling();\n triggerAnalyticsEvent(\n `ORG_SETTINGS_ACCOUNT_MANAGEMENT_ADDITION_SUCCESSFUL`,\n {\n accountName: this.accountName?.value,\n provider: this.vcsAccountType,\n },\n );\n }\n },\n (error) => {\n this.pollingWebhook = false;\n this.onAccountCreateFailure(error);\n triggerAnalyticsEvent(\n `ORG_SETTINGS_ACCOUNT_MANAGEMENT_ADDITION_ERROR`,\n {\n accountName: this.accountName?.value,\n provider: this.vcsAccountType,\n },\n );\n },\n );\n }\n\n async onAccountPresent() {\n this.alertType = 'warning';\n this.alertTitle = `GitHub app already installed`;\n this.alertDescription =\n 'This organization already has an active GitHub integration. Please select another GitHub organization during installation to install it in another organization';\n }\n\n stopPolling() {\n if (this.webhookSubscription) {\n this.webhookSubscription.unsubscribe();\n this.pollingWebhook = false;\n }\n }\n\n getProjectKeyOptions(orgName?) {\n if (orgName) {\n this.projectKeyOptions = [];\n this.loadingProjectKey = true;\n this.accountControllerService\n .getBitbucketProjectsForWorkspaceUsingGET({\n workspace: orgName || this.account?.orgName,\n accountId: this.account?.id,\n })\n .subscribe(\n (projectKeys) => {\n projectKeys?.forEach((projectKey) => {\n this.projectKeyOptions.push({\n label: projectKey,\n value: projectKey,\n });\n });\n setTimeout(() => {\n this.projectId.setValue(this.account?.projectKey);\n }, 10);\n this.loadingProjectKey = false;\n },\n (err) => {\n this.projectKeyOptions = [];\n this.loadingProjectKey = false;\n },\n );\n }\n }\n\n updateVcsAccount() {\n this.updatingVcsAccount = true;\n const updateAccountParams = {\n id: this.account?.id,\n vcsAccountUpdateRequest: {\n organisationName: this.selectedOrgName?.value,\n projectKey: this.projectId?.value,\n },\n };\n this.accountControllerService\n .updateVCSAccountUsingPATCH(updateAccountParams)\n .subscribe(\n (response) => {\n this.customToast.success(\n `Your ${this.account?.name} account is updated successfully`,\n );\n this.afterSaveAccount.emit(this.account);\n this.passedRef?.close();\n this.updatingVcsAccount = false;\n this.orgsLinkedToAccount = true;\n triggerAnalyticsEvent(\n `ORG_SETTINGS_ACCOUNT_MANAGEMENT_ADDITION_LINK_ORG_SUCCESS`,\n {\n accountName: this.accountName?.value,\n provider: this.vcsAccountType,\n },\n );\n this.accountOrgUpdateError = false;\n },\n (error) => {\n this.updatingVcsAccount = false;\n this.orgsLinkedToAccount = false;\n this.accountOrgUpdateError = true;\n triggerAnalyticsEvent(\n `ORG_SETTINGS_ACCOUNT_MANAGEMENT_ADDITION_LINK_ORG_ERROR`,\n {\n accountName: this.accountName?.value,\n provider: this.vcsAccountType,\n },\n );\n this.customToast.error(\n error?.error?.message || `Failed to update account`,\n );\n },\n );\n }\n\n onClickHandleCancel(ref: any) {\n triggerAnalyticsEvent(`ORG_SETTINGS_ACCOUNT_MANAGEMENT_ADDITION_CANCEL`);\n ref.close();\n }\n\n async onAccountCreateSuccess(account) {\n this.accountCreateError = false;\n this.alertType = 'success';\n this.alertTitle = `Success! ${account?.name} connected to ${\n account?.provider === 'GITHUB' && account?.orgName\n ? account?.orgName + ' organization, on Facets'\n : 'Facets'\n }.`;\n this.alertDescription = `GitOps is enabled and your infrastructure configurations will now automatically sync between Facets & ${toTitleCase(\n account?.provider,\n )}`;\n this.afterSaveAccount.emit(account);\n await this.tokenExpiryService.extractExpiringAndExpiredVCSAccounts();\n }\n\n onAccountCreateFailure(error?) {\n this.resetInputFields();\n this.accountCreateError = true;\n this.enableStepTwo = false;\n this.customToast.error({\n title: 'Account linking failed',\n content:\n error?.error?.message ||\n 'Please re-enter the correct details and try again.',\n });\n }\n\n getOrgsBasedOnAccountId(account) {\n this.loadingOrgNames = true;\n this.accountControllerService\n .getVcsOrganizationsByAccountIdUsingGET(account?.id)\n .subscribe(\n (response) => {\n this.loadingOrgNames = false;\n this.orgNames = response?.map((org) => ({ label: org, value: org }));\n this.selectedOrgName.setValue(account?.orgName);\n },\n () => {\n this.loadingOrgNames = false;\n },\n );\n }\n\n resetInputFields() {\n this.accountName.enable();\n this.hostedOn.enable();\n this.selectedOrgName.enable();\n }\n\n resetInputs() {\n this.resetInputFields();\n\n this.selectedOrgName.clearValidators();\n this.selectedOrgName.updateValueAndValidity();\n this.selectedOrgName.markAsUntouched();\n\n this.enableStepTwo = false;\n this.alertDescription = '';\n this.alertTitle = '';\n this.accountCreateError = false;\n }\n\n hostNameToggleEvent(event) {\n this.hostedOn?.setValue('github.com');\n }\n\n changeIntegrationMethod() {\n this.afterChangeIntegration.emit('PAT');\n }\n}\n"],"names":["vcsAccountIcons","GITHUB","GITLAB","BITBUCKET","cloudAccountIcons","AWS","AZURE","GCP","KUBERNETES","i0","CreateVcsAppV3Component","FacetsPage","constructor","activatedRoute","accountControllerService","fb","tokenExpiryService","webhookIntegrationService","router","customToast","super","this","EventEmitter","group","accountName","Validators","hostNameToggle","hostedOn","selectedOrgName","projectId","accountForm","get","orgNameForm","githubAccountCreated","accountCreateError","vcsAccountType","nonGithubAccountUpdated","accountOrgUpdateError","orgsLinkedToAccount","includes","OnPageLoad","p","alertDescription","account","enableStepTwo","addValidators","protocolDisallowPattern","clearValidators","updateValueAndValidity","setValue","parentWindow","window","showNextStep","disable","webhookCreating","triggerAnalyticsEvent","value","provider","linkApiParams","enterpriseHostName","trim","webhook","status","type","requestVCSLinkingUsingPOST","subscribe","webhookResp","redirectUrl","openChildWindow","closeAndReturnToParent","startPollingWebhook","id","error","code","enable","message","url","childWindow","open","checkChild","setInterval","closed","clearInterval","focus","opener","close","webhookId","pollingWebhook","webhookSubscription","interval","pollingInterval","pipe","startWith","switchMap","pollWebhookUsingGET","response","_this","alertType","getAccountByNameUsingGET","getOrgsBasedOnAccountId","getProjectKeyOptions","orgName","onAccountCreateSuccess","onAccountPresent","onAccountCreateFailure","errorMessage","afterSaveAccount","emit","stopPolling","_this2","alertTitle","unsubscribe","projectKeyOptions","loadingProjectKey","getBitbucketProjectsForWorkspaceUsingGET","workspace","accountId","projectKeys","forEach","projectKey","push","label","setTimeout","err","updateVcsAccount","updatingVcsAccount","updateVCSAccountUsingPATCH","vcsAccountUpdateRequest","organisationName","success","name","passedRef","onClickHandleCancel","ref","_this3","toTitleCase","extractExpiringAndExpiredVCSAccounts","resetInputFields","title","content","loadingOrgNames","getVcsOrganizationsByAccountIdUsingGET","orgNames","map","org","resetInputs","markAsUntouched","hostNameToggleEvent","event","changeIntegrationMethod","afterChangeIntegration","static","_angular_core__WEBPACK_IMPORTED_MODULE_7__","selectors","NbPopoverDirective"],"mappings":"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","debug_id":"ee4e063b-1732-578a-ba7b-55055d40ea32"}