{"version":3,"file":"937.60c06ea5cf1db778.js","sources":["./src/app/components/copy-icon-with-tooltip/copy-icon-with-tooltip.component.ts","./src/app/components/copy-icon-with-tooltip/copy-icon-with-tooltip.component.html","./src/app/components/create-cloud-account-integration/integration-constants.ts","./src/app/components/create-cloud-account-integration/create-cloud-account-integration.component.html","./src/app/components/create-cloud-account-integration/create-cloud-account-integration.component.ts","./src/app/components/kubernetes-account-create-edit/kubernetes-account-create-edit.component.ts","./src/app/components/kubernetes-account-create-edit/kubernetes-account-create-edit.component.html","./src/app/components/reactive-text-area/reactive-text-area.component.html","./src/app/components/reactive-text-area/reactive-text-area.component.ts","./src/app/components/reactive-toggle/reactive-toggle.component.html","./src/app/components/reactive-toggle/reactive-toggle.component.ts","./src/app/utils/toast.utils.ts","./projects/ngx-window-token/src/lib/window.ts","./node_modules/ngx-clipboard/fesm2020/ngx-clipboard.mjs"],"sourceRoot":"webpack:///","sourcesContent":["import { Component, Input } from '@angular/core';\nimport { ClipboardService } from 'ngx-clipboard';\n\n@Component({\n selector: 'app-copy-icon-with-tooltip',\n templateUrl: './copy-icon-with-tooltip.component.html',\n styleUrls: ['./copy-icon-with-tooltip.component.scss'],\n})\nexport class CopyIconWithTooltipComponent {\n @Input() tooltip: string = 'Copied!';\n @Input() icon: string = 'copy-outline';\n @Input() copyText: string = '';\n @Input() iconColor: string;\n disableTooltip: boolean = true;\n\n constructor(private clipboardService: ClipboardService) {}\n\n copyToken() {\n this.disableTooltip = false;\n this.clipboardService.copy(this.copyText);\n setTimeout(() => {\n this.disableTooltip = true;\n }, 2000);\n }\n}\n","\n\n","export const alertStatusDescriptionMap = {\n SUCCESS: \"You're all set to start Launching Environments\",\n EXPIRED:\n 'Looks like you have been timed out, please create a new subscription.',\n};\n\nexport const alertStatusTitleMapping = {\n SUCCESS: 'Account is linked successfully',\n FAILED: 'Failed to link account',\n EXPIRED: 'Account subscription timed out',\n};\n\nexport const scriptLinkMap = {\n AZURE: {\n scriptOne:\n 'https://facets-cloud.github.io/facets-schemas/scripts/azure-account-link.sh',\n scriptTwo: 'azure-account-link.sh',\n },\n GCP: {\n scriptOne:\n 'https://facets-cloud.github.io/facets-schemas/scripts/gcp-account-link.sh',\n scriptTwo: 'gcp-account-link.sh',\n },\n AWS: {\n scriptOne:\n 'https://facets-cloud.github.io/facets-schemas/scripts/aws-account-link.sh',\n scriptTwo: 'aws-account-link.sh',\n },\n KUBERNETES: {\n scriptOne:\n 'https://facets-cloud.github.io/facets-schemas/scripts/link-k8s-acc.sh',\n scriptTwo: 'link-k8s-acc.sh',\n },\n};\n\nexport const cloudShellLinkMap = {\n AWS: 'https://ap-south-1.console.aws.amazon.com/cloudshell/home?region=ap-south-1#e8a9b144-b70c-468d-be1e-fd0249123b16',\n AZURE: 'https://portal.azure.com/#cloudshell/',\n GCP: 'https://console.cloud.google.com/welcome?project=facets-cp-test&cloudshell=true--',\n};\n","\n \n

\n Step 1: Link your\n {{ cloudProviderType | titlecase }} Account which can be used while\n creating projects or launching the environments.\n

\n \n \n \n \n
\n

Authorizing Cloud Integration.

\n

We're now waiting for you to execute the command.

\n
\n \n \n \n
\n \n \n \n Back\n \n \n {{ alertDescription?.length && !webhookError ? 'Done' : 'Cancel' }}\n \n \n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n Validators,\n UntypedFormControl,\n} from '@angular/forms';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { triggerAnalyticsEvent } from 'src/app/utils/analytics/trigger-analytics';\nimport {\n UiMetaControllerService,\n UiOneTimeWebhookControllerService,\n UiAccountsControllerService,\n} from 'src/app/cc-api/services';\nimport { FacetsPage } from 'src/app/facets/facets-page/facets-page.component';\nimport { CustomToastService } from 'src/app/pages/custom-toast/custom-toast.service';\nimport { Subscription, interval, switchMap, startWith } from 'rxjs';\nimport { NbPopoverDirective } from '@nebular/theme';\nimport { OnAPIErrorService } from '../../services/on-api-error.service';\nimport { whiteSpaceInputPattern } from '../../constants/inputPatterns';\nimport {\n alertStatusDescriptionMap,\n alertStatusTitleMapping,\n scriptLinkMap,\n cloudShellLinkMap,\n} from './integration-constants';\n\n@Component({\n selector: 'app-create-cloud-account-integration',\n templateUrl: './create-cloud-account-integration.component.html',\n styleUrls: ['./create-cloud-account-integration.component.scss'],\n})\nexport class CreateCloudAccountIntegrationComponent extends FacetsPage {\n @Output() afterSaveAccount: EventEmitter = new EventEmitter();\n @ViewChild(NbPopoverDirective) popover: NbPopoverDirective; //copy popover\n @Input() mode: 'create' | 'edit' = 'create';\n @Input() passedRef: any;\n @Input() cloudProviderType: any;\n accountName: UntypedFormControl = new UntypedFormControl('', [\n Validators.required,\n Validators.pattern('^[a-z0-9-]+$'),\n ]);\n consoleCommand: string;\n private cpUrl: string = window.location.host;\n readonly ACCOUNTS_WRITE = 'ACCOUNTS_WRITE';\n generatingWebhookId: boolean = false;\n fetchingCpAccount: boolean = false;\n pollingWebhook: boolean = false;\n webhookSubscription: Subscription;\n pollingInterval: number = 5000;\n webhookId: string = '';\n alertTitle: string;\n alertType: string;\n alertDescription: string;\n enableStepTwo: boolean = false;\n webhookError: boolean = false;\n cloudShelllinkMap = cloudShellLinkMap;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private webhookIntegrationService: UiOneTimeWebhookControllerService,\n private accountsControllerService: UiAccountsControllerService,\n private customToast: CustomToastService,\n private uiMetaControllerService: UiMetaControllerService,\n private fb: UntypedFormBuilder,\n ) {\n super(activatedRoute);\n }\n\n OnPageLoad(p: Params): void {\n this.alertDescription = '';\n this.consoleCommand = '';\n this.webhookId = null;\n this.enableStepTwo = false;\n this.webhookError = false;\n }\n\n generateWebhook() {\n this.resetValues();\n this.generatingWebhookId = true;\n this.accountsControllerService\n .requestCloudAccountLinkingUsingPOST({\n accountName: this.accountName?.value,\n webhook: {\n type: this.cloudProviderType?.toUpperCase(),\n },\n })\n .subscribe(\n (data) => {\n this.webhookId = data?.id;\n if (this.cloudProviderType === 'AWS') {\n this.fetchCPAccount();\n } else {\n this.generateCommand();\n }\n this.generatingWebhookId = false;\n this.accountName?.disable();\n triggerAnalyticsEvent(\n `ORG_SETTINGS_ACCOUNT_MANAGEMENT_ADDITION_NEXT`,\n );\n },\n (error) => {\n this.generatingWebhookId = false;\n this.showErrorText(error);\n },\n );\n }\n\n fetchCPAccount() {\n this.fetchingCpAccount = true;\n this.uiMetaControllerService.getCPAccountUsingGET().subscribe(\n (cpAccount) => {\n this.fetchingCpAccount = false;\n this.generateCommand(cpAccount);\n },\n (error) => {\n this.fetchingCpAccount = false;\n this.showErrorText(error);\n },\n );\n }\n\n showErrorText(error) {\n this.webhookError = true;\n this.alertDescription =\n error?.error?.message ||\n 'There was an issue proceeding to the next step. Please click \"Next\" once more to continue.';\n this.alertTitle = 'Failed to create account';\n this.alertType = 'danger';\n this.accountName.enable();\n }\n\n generateCommand(cpAccount?) {\n this.consoleCommand = `curl -sLO ${\n scriptLinkMap[this.cloudProviderType]?.scriptOne\n } && sh ${scriptLinkMap[this.cloudProviderType]?.scriptTwo} ${this.cpUrl} ${\n this.accountName?.value\n } ${this.webhookId} ${\n this.cloudProviderType === 'AWS' ? cpAccount?.accountId : ''\n }`;\n this.startPollingWebhook();\n }\n\n resetValues() {\n this.webhookError = false;\n this.alertDescription = '';\n this.alertTitle = '';\n }\n\n startPollingWebhook() {\n this.pollingWebhook = true;\n this.resetValues();\n this.enableStepTwo = true;\n this.webhookSubscription = interval(this.pollingInterval)\n .pipe(\n startWith(0),\n switchMap(() =>\n this.webhookIntegrationService.pollWebhookUsingGET(this.webhookId),\n ),\n )\n .subscribe(\n (response: any) => {\n if (response && response?.status !== 'WAITING') {\n this.pollingWebhook = false;\n this.webhookId = '';\n this.alertTitle = alertStatusTitleMapping[response?.status];\n if (response?.status === 'FAILED') {\n this.alertDescription = response?.errorMessage;\n } else {\n this.alertDescription =\n alertStatusDescriptionMap[response?.status];\n }\n this.alertType =\n response?.status === 'SUCCESS' ? 'success' : 'danger';\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 },\n );\n }\n },\n (error) => {\n this.pollingWebhook = false;\n this.showErrorText(error);\n this.enableStepTwo = false;\n triggerAnalyticsEvent(\n `ORG_SETTINGS_ACCOUNT_MANAGEMENT_ADDITION_ERROR`,\n );\n },\n );\n }\n\n stopPolling() {\n if (this.webhookSubscription) {\n this.webhookSubscription.unsubscribe();\n this.pollingWebhook = false;\n }\n }\n\n resetInputs() {\n this.accountName.enable();\n this.enableStepTwo = false;\n this.consoleCommand = '';\n this.stopPolling();\n this.alertDescription = '';\n this.alertTitle = '';\n triggerAnalyticsEvent(`ORG_SETTINGS_ACCOUNT_MANAGEMENT_ADDITION_BACK`);\n }\n\n closePopup() {\n triggerAnalyticsEvent(\n `ORG_SETTINGS_ACCOUNT_MANAGEMENT_${this.mode?.toUpperCase()}_CANCEL`,\n );\n this.stopPolling();\n this.passedRef.close();\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { KubernetesAccount } from 'src/app/cc-api/models';\nimport { UiAccountsControllerService } from 'src/app/cc-api/services';\nimport { whiteSpaceInputPattern } from 'src/app/constants/inputPatterns';\nimport { CustomToastService } from 'src/app/pages/custom-toast/custom-toast.service';\nimport { triggerAnalyticsEvent } from 'src/app/utils/analytics/trigger-analytics';\nimport { getToastSubTexts } from 'src/app/utils/toast.utils';\n\n@Component({\n selector: 'app-kubernetes-account-create-edit',\n templateUrl: './kubernetes-account-create-edit.component.html',\n styleUrls: ['./kubernetes-account-create-edit.component.scss'],\n})\nexport class KubernetesAccountCreateEditComponent implements OnChanges {\n @Input() cardWidth: string = '35vw';\n @Input() mode: string = '';\n @Input() passRef: any;\n @Output() afterSaveAccount: EventEmitter = new EventEmitter();\n @Input() kubernetesAccountData: any;\n createUpdateInProgress: boolean = false;\n verifyInProgress: boolean = false;\n accountDetails: KubernetesAccount;\n kubernetesAccountForm: UntypedFormGroup = this.fb.group({\n name: ['', [Validators.required, Validators.pattern('^[a-z0-9-]+$')]],\n host: [\n '',\n [Validators.required, Validators.pattern(whiteSpaceInputPattern)],\n ],\n certificateAuthority: [\n '',\n [Validators.required, Validators.pattern(whiteSpaceInputPattern)],\n ],\n token: [\n '',\n [Validators.required, Validators.pattern(whiteSpaceInputPattern)],\n ],\n });\n readonly ACCOUNTS_WRITE = 'ACCOUNTS_WRITE';\n\n constructor(\n private fb: UntypedFormBuilder,\n private accountControllerService: UiAccountsControllerService,\n private customToast: CustomToastService,\n ) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.kubernetesAccountData?.currentValue) {\n this.accountDetails = changes.kubernetesAccountData?.currentValue;\n this.kubernetesAccountForm.patchValue({\n name: this.accountDetails?.name || '',\n host: this.accountDetails?.host || '',\n certificateAuthority: this.accountDetails?.certificateAuthority || '',\n token: this.accountDetails?.token || '',\n });\n this.kubernetesAccountForm.patchValue(\n changes.kubernetesAccountData?.currentValue,\n );\n }\n }\n\n createEditKubernetesAccount() {\n this.createUpdateInProgress = true;\n const isCreateMode = this.mode === 'create';\n let accountName =\n this.kubernetesAccountForm?.controls?.name?.value?.trim() || '';\n let host = this.kubernetesAccountForm?.controls?.host?.value?.trim() || '';\n let certificateAuthority =\n this.kubernetesAccountForm?.controls?.certificateAuthority?.value?.trim() ||\n '';\n let token =\n this.kubernetesAccountForm?.controls?.token?.value?.trim() || '';\n\n let accountParams: KubernetesAccount = {\n name: accountName,\n accountType: 'CLOUD',\n provider: 'KUBERNETES',\n host: host,\n certificateAuthority,\n token,\n };\n\n let httpReq;\n if (isCreateMode) {\n httpReq =\n this.accountControllerService.createKubernetesAccountUsingPOST(\n accountParams,\n );\n } else if (this.mode === 'edit') {\n httpReq = this.accountControllerService.updateKubernetesAccountUsingPUT({\n id: this.accountDetails?.id,\n k8sAccountRequest: {\n ...accountParams,\n id: this.accountDetails?.id,\n createdBy: this.accountDetails?.createdBy,\n creationDate: this.accountDetails?.creationDate,\n },\n });\n }\n let { successSubText, failureSubText } = getToastSubTexts(this.mode);\n httpReq.subscribe(\n (data) => {\n this.customToast.success(\n `Kubernetes account ${data?.name} ${successSubText} successfully`,\n );\n this.afterSaveAccount.emit(data);\n triggerAnalyticsEvent(\n `ORG_SETTINGS_ACCOUNT_MANAGEMENT_${this.mode?.toUpperCase()}_SUCCESSFUL`,\n {\n accountName: accountName,\n accountType: accountParams.accountType,\n },\n );\n this.passRef.close();\n this.createUpdateInProgress = false;\n this.kubernetesAccountForm.reset();\n },\n (err) => {\n this.createUpdateInProgress = false;\n this.customToast.error(\n err?.error?.message ||\n ` Failed to ${failureSubText} kubernetes account`,\n );\n triggerAnalyticsEvent(\n `ORG_SETTINGS_ACCOUNT_MANAGEMENT_${this.mode?.toUpperCase()}_ERROR`,\n );\n },\n );\n }\n get host() {\n return this.kubernetesAccountForm.get('host');\n }\n get certificateAuthority() {\n return this.kubernetesAccountForm.get('certificateAuthority');\n }\n get token() {\n return this.kubernetesAccountForm.get('token');\n }\n get name() {\n return this.kubernetesAccountForm.get('name');\n }\n verifyAccount() {\n triggerAnalyticsEvent(\n `ORG_SETTINGS_ACCOUNT_MANAGEMENT_${this.mode?.toUpperCase()}_VERIFY_ACCOUNT`,\n );\n this.verifyInProgress = true;\n const { host, certificateAuthority, token, name } =\n this.kubernetesAccountForm?.controls || {};\n let kubernetesAccountDetails: KubernetesAccount = {\n host: host?.value?.trim(),\n name: name?.value?.trim(),\n certificateAuthority: certificateAuthority?.value,\n token: token?.value?.trim(),\n accountType: 'CLOUD',\n provider: 'KUBERNETES',\n };\n this.accountControllerService\n .validateKubernetesAccountUsingPOST(kubernetesAccountDetails)\n .subscribe(\n (data) => {\n this.verifyInProgress = false;\n this.customToast.success(`This is a verified account`);\n },\n (error) => {\n this.verifyInProgress = false;\n this.customToast.error(\n error?.error?.message || `Failed to verify account`,\n );\n },\n );\n }\n\n onClickHandleCancel(passRef: any) {\n triggerAnalyticsEvent(\n `ORG_SETTINGS_ACCOUNT_MANAGEMENT_${this.mode?.toUpperCase()}_CANCEL`,\n );\n passRef.close();\n }\n}\n","\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n \n \n \n Cancel\n \n \n
\n","
\n \n \n 0\"\n >
\n
\n \n
\n

\n {{ disabledMsg }}\n

\n
\n \n \n {{ missingMsg }}\n

\n \n {{ invalidPatternMsg }}\n

\n \n {{ invalidLengthMsg }}\n

\n
\n \n
\n \n
\n \n\n
\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { SortOptionsService } from './../../services/sort-options.service';\n\nconst noop = () => {};\n\n@Component({\n selector: 'app-reactive-text-area',\n templateUrl: './reactive-text-area.component.html',\n styleUrls: ['./reactive-text-area.component.scss'],\n})\nexport class ReactiveTextAreaComponent implements OnInit {\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() change = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input() fieldName: string = '';\n @Input() customFormControl: UntypedFormControl;\n @Input() patternMatch: string;\n @Input() missingMsg: string;\n @Input() invalidMsg: string;\n @Input() invalidLengthMsg: string;\n @Input() invalidPatternMsg: string;\n @Input() placeholder: string;\n @Input() label: string;\n @Input() tooltipText: string;\n @Input() required: boolean = false;\n @Input() disabledMsg: string = '';\n @Input() minlength: number;\n @Input() maxlength: number;\n @Input() fieldSize: string = 'small';\n @Input() type = 'text';\n @Input() inputClass = '';\n @Input() min: number;\n @Input() max: number;\n @Input() autocomplete: 'on' | 'off' = 'off';\n @Input() formMargin: number = 3;\n @Input() inputSize: number = 5;\n @Input() labelSize: number = 3;\n @Input() rows: number = 2;\n @Input() showInfoAsTooltip: boolean = true;\n @Input() showFormDivider: boolean = false;\n\n ngOnInit(): void {\n this.invalidMsg = this.invalidMsg || this.label + ' is invalid!';\n this.missingMsg = this.missingMsg || this.label + ' is required!';\n this.placeholder = this.placeholder || this.label;\n\n if (!this.label) {\n this.inputSize = 12;\n this.labelSize = 0;\n }\n }\n\n onChangeInputVal(event) {\n this.change.emit(event);\n }\n}\n","
\n \n \n 0\"\n >
\n
\n \n {{ toggleInbuildLabel }}\n \n \n
\n\n
\n","import {\n Component,\n Input,\n OnInit,\n OnChanges,\n SimpleChanges,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { SortOptionsService } from './../../services/sort-options.service';\n\nconst noop = () => {};\n\n@Component({\n selector: 'app-reactive-toggle',\n templateUrl: './reactive-toggle.component.html',\n styleUrls: ['./reactive-toggle.component.scss'],\n})\nexport class ReactiveToggleComponent implements OnInit {\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() change = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input() fieldId: string = '';\n @Input() fieldName: string = '';\n @Input() customFormControl: UntypedFormControl;\n @Input() label: string;\n @Input() tooltipText: string;\n @Input() disabled: boolean = false;\n @Input() disabledMsg: string = '';\n @Input() fieldSize: string = 'small';\n @Input() toggleClass = '';\n @Input() formMargin: number = 3;\n @Input() toggleSize: number = 5;\n @Input() labelSize: number = 3;\n @Input() showInfoAsTooltip: boolean = false;\n @Input() showFormDivider: boolean = false;\n @Input() toggleInbuildLabel = '';\n @Input() toggleInbuildLabelPosition;\n @Input() required: boolean;\n\n ngOnInit(): void {\n if (!this.label) {\n this.toggleSize = 12;\n this.labelSize = 0;\n }\n }\n\n onChangeToggle(event) {\n this.change.emit(event);\n }\n}\n","export const getToastSubTexts = (mode) => {\n switch (mode) {\n case 'create': {\n return {\n successSubText: 'created',\n failureSubText: 'create',\n };\n }\n case 'edit': {\n return {\n successSubText: 'updated',\n failureSubText: 'update',\n };\n }\n }\n};\n","import { InjectionToken } from '@angular/core';\n\nexport const WINDOW = new InjectionToken(\n 'WindowToken',\n typeof window !== 'undefined' && window.document\n ? { providedIn: 'root', factory: () => window }\n : { providedIn: 'root', factory: () => undefined }\n);\n","import { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, Optional, EventEmitter, Directive, Input, Output, NgModule } from '@angular/core';\nimport { WINDOW } from 'ngx-window-token';\nimport { Subject } from 'rxjs';\n\n/**\n * The following code is heavily copied from https://github.com/zenorocha/clipboard.js\n */\nclass ClipboardService {\n constructor(ngZone, document, window) {\n this.ngZone = ngZone;\n this.document = document;\n this.window = window;\n this.copySubject = new Subject();\n this.copyResponse$ = this.copySubject.asObservable();\n this.config = {};\n }\n configure(config) {\n this.config = config;\n }\n copy(content) {\n if (!this.isSupported || !content) {\n return this.pushCopyResponse({ isSuccess: false, content });\n }\n const copyResult = this.copyFromContent(content);\n if (copyResult) {\n return this.pushCopyResponse({ content, isSuccess: copyResult });\n }\n return this.pushCopyResponse({ isSuccess: false, content });\n }\n get isSupported() {\n return !!this.document.queryCommandSupported && !!this.document.queryCommandSupported('copy') && !!this.window;\n }\n isTargetValid(element) {\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n if (element.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n return true;\n }\n throw new Error('Target should be input or textarea');\n }\n /**\n * Attempts to copy from an input `targetElm`\n */\n copyFromInputElement(targetElm, isFocus = true) {\n try {\n this.selectTarget(targetElm);\n const re = this.copyText();\n this.clearSelection(isFocus ? targetElm : undefined, this.window);\n return re && this.isCopySuccessInIE11();\n }\n catch (error) {\n return false;\n }\n }\n /**\n * This is a hack for IE11 to return `true` even if copy fails.\n */\n isCopySuccessInIE11() {\n const clipboardData = this.window['clipboardData'];\n if (clipboardData && clipboardData.getData) {\n if (!clipboardData.getData('Text')) {\n return false;\n }\n }\n return true;\n }\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n copyFromContent(content, container = this.document.body) {\n // check if the temp textarea still belongs to the current container.\n // In case we have multiple places using ngx-clipboard, one is in a modal using container but the other one is not.\n if (this.tempTextArea && !container.contains(this.tempTextArea)) {\n this.destroy(this.tempTextArea.parentElement || undefined);\n }\n if (!this.tempTextArea) {\n this.tempTextArea = this.createTempTextArea(this.document, this.window);\n try {\n container.appendChild(this.tempTextArea);\n }\n catch (error) {\n throw new Error('Container should be a Dom element');\n }\n }\n this.tempTextArea.value = content;\n const toReturn = this.copyFromInputElement(this.tempTextArea, false);\n if (this.config.cleanUpAfterCopy) {\n this.destroy(this.tempTextArea.parentElement || undefined);\n }\n return toReturn;\n }\n /**\n * Remove temporary textarea if any exists.\n */\n destroy(container = this.document.body) {\n if (this.tempTextArea) {\n container.removeChild(this.tempTextArea);\n // removeChild doesn't remove the reference from memory\n this.tempTextArea = undefined;\n }\n }\n /**\n * Select the target html input element.\n */\n selectTarget(inputElement) {\n inputElement.select();\n inputElement.setSelectionRange(0, inputElement.value.length);\n return inputElement.value.length;\n }\n copyText() {\n return this.document.execCommand('copy');\n }\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n clearSelection(inputElement, window) {\n inputElement && inputElement.focus();\n window.getSelection()?.removeAllRanges();\n }\n /**\n * Creates a fake textarea for copy command.\n */\n createTempTextArea(doc, window) {\n const isRTL = doc.documentElement.getAttribute('dir') === 'rtl';\n let ta;\n ta = doc.createElement('textarea');\n // Prevent zooming on iOS\n ta.style.fontSize = '12pt';\n // Reset box model\n ta.style.border = '0';\n ta.style.padding = '0';\n ta.style.margin = '0';\n // Move element out of screen horizontally\n ta.style.position = 'absolute';\n ta.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n const yPosition = window.pageYOffset || doc.documentElement.scrollTop;\n ta.style.top = yPosition + 'px';\n ta.setAttribute('readonly', '');\n return ta;\n }\n /**\n * Pushes copy operation response to copySubject, to provide global access\n * to the response.\n */\n pushCopyResponse(response) {\n if (this.copySubject.observers.length > 0) {\n this.ngZone.run(() => {\n this.copySubject.next(response);\n });\n }\n }\n /**\n * @deprecated use pushCopyResponse instead.\n */\n pushCopyReponse(response) {\n this.pushCopyResponse(response);\n }\n}\nClipboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: ClipboardService, deps: [{ token: i0.NgZone }, { token: DOCUMENT }, { token: WINDOW, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nClipboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: ClipboardService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: ClipboardService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [WINDOW]\n }] }]; } });\n\nclass ClipboardDirective {\n constructor(ngZone, host, renderer, clipboardSrv) {\n this.ngZone = ngZone;\n this.host = host;\n this.renderer = renderer;\n this.clipboardSrv = clipboardSrv;\n this.cbOnSuccess = new EventEmitter();\n this.cbOnError = new EventEmitter();\n this.onClick = (event) => {\n if (!this.clipboardSrv.isSupported) {\n this.handleResult(false, undefined, event);\n }\n else if (this.targetElm && this.clipboardSrv.isTargetValid(this.targetElm)) {\n this.handleResult(this.clipboardSrv.copyFromInputElement(this.targetElm), this.targetElm.value, event);\n }\n else if (this.cbContent) {\n this.handleResult(this.clipboardSrv.copyFromContent(this.cbContent, this.container), this.cbContent, event);\n }\n };\n }\n // eslint-disable-next-line no-empty, @typescript-eslint/no-empty-function\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n // By default each host listener schedules change detection and also wrapped\n // into additional function that calls `markForCheck()`. We're listening the `click`\n // event in the context of the root zone to avoid running unnecessary change detections,\n // since this directive doesn't do anything template-related (e.g. updates template variables).\n this.clickListener = this.renderer.listen(this.host.nativeElement, 'click', this.onClick);\n });\n }\n ngOnDestroy() {\n if (this.clickListener) {\n this.clickListener();\n }\n this.clipboardSrv.destroy(this.container);\n }\n /**\n * Fires an event based on the copy operation result.\n * @param succeeded\n */\n handleResult(succeeded, copiedContent, event) {\n let response = {\n isSuccess: succeeded,\n content: copiedContent,\n successMessage: this.cbSuccessMsg,\n event\n };\n if (succeeded) {\n if (this.cbOnSuccess.observed) {\n this.ngZone.run(() => {\n this.cbOnSuccess.emit(response);\n });\n }\n }\n else {\n if (this.cbOnError.observed) {\n this.ngZone.run(() => {\n this.cbOnError.emit(response);\n });\n }\n }\n this.clipboardSrv.pushCopyResponse(response);\n }\n}\nClipboardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: ClipboardDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: ClipboardService }], target: i0.ɵɵFactoryTarget.Directive });\nClipboardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.1\", type: ClipboardDirective, selector: \"[ngxClipboard]\", inputs: { targetElm: [\"ngxClipboard\", \"targetElm\"], container: \"container\", cbContent: \"cbContent\", cbSuccessMsg: \"cbSuccessMsg\" }, outputs: { cbOnSuccess: \"cbOnSuccess\", cbOnError: \"cbOnError\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: ClipboardDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ngxClipboard]' }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: ClipboardService }]; }, propDecorators: { targetElm: [{\n type: Input,\n args: ['ngxClipboard']\n }], container: [{\n type: Input\n }], cbContent: [{\n type: Input\n }], cbSuccessMsg: [{\n type: Input\n }], cbOnSuccess: [{\n type: Output\n }], cbOnError: [{\n type: Output\n }] } });\n\nclass ClipboardIfSupportedDirective {\n constructor(_clipboardService, _viewContainerRef, _templateRef) {\n this._clipboardService = _clipboardService;\n this._viewContainerRef = _viewContainerRef;\n this._templateRef = _templateRef;\n }\n ngOnInit() {\n if (this._clipboardService.isSupported) {\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n }\n}\nClipboardIfSupportedDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: ClipboardIfSupportedDirective, deps: [{ token: ClipboardService }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nClipboardIfSupportedDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.1\", type: ClipboardIfSupportedDirective, selector: \"[ngxClipboardIfSupported]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: ClipboardIfSupportedDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngxClipboardIfSupported]'\n }]\n }], ctorParameters: function () { return [{ type: ClipboardService }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; } });\n\nclass ClipboardModule {\n}\nClipboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: ClipboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nClipboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: ClipboardModule, declarations: [ClipboardDirective, ClipboardIfSupportedDirective], imports: [CommonModule], exports: [ClipboardDirective, ClipboardIfSupportedDirective] });\nClipboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: ClipboardModule, imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: ClipboardModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [ClipboardDirective, ClipboardIfSupportedDirective],\n exports: [ClipboardDirective, ClipboardIfSupportedDirective]\n }]\n }] });\n\n/*\n * Public API Surface of ngx-clipboard\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ClipboardDirective, ClipboardIfSupportedDirective, ClipboardModule, ClipboardService };\n"],"names":["CopyIconWithTooltipComponent","constructor","clipboardService","this","copyToken","disableTooltip","copy","copyText","setTimeout","static","_angular_core__WEBPACK_IMPORTED_MODULE_0__","selectors","i0","ctx","alertStatusDescriptionMap","SUCCESS","EXPIRED","alertStatusTitleMapping","FAILED","scriptLinkMap","AZURE","scriptOne","scriptTwo","GCP","AWS","KUBERNETES","cloudShellLinkMap","CreateCloudAccountIntegrationComponent","FacetsPage","activatedRoute","webhookIntegrationService","accountsControllerService","customToast","uiMetaControllerService","fb","super","EventEmitter","UntypedFormControl","Validators","window","location","host","OnPageLoad","p","alertDescription","consoleCommand","webhookId","enableStepTwo","webhookError","generateWebhook","resetValues","generatingWebhookId","requestCloudAccountLinkingUsingPOST","accountName","value","webhook","type","cloudProviderType","toUpperCase","subscribe","data","id","fetchCPAccount","generateCommand","disable","triggerAnalyticsEvent","error","showErrorText","fetchingCpAccount","getCPAccountUsingGET","cpAccount","message","alertTitle","alertType","enable","cpUrl","accountId","startPollingWebhook","pollingWebhook","webhookSubscription","interval","pollingInterval","pipe","startWith","switchMap","pollWebhookUsingGET","response","status","errorMessage","afterSaveAccount","emit","stopPolling","unsubscribe","resetInputs","closePopup","mode","passedRef","close","core","NbPopoverDirective","KubernetesAccountCreateEditComponent","accountControllerService","group","name","whiteSpaceInputPattern","certificateAuthority","token","ngOnChanges","changes","kubernetesAccountData","currentValue","accountDetails","kubernetesAccountForm","patchValue","createEditKubernetesAccount","createUpdateInProgress","isCreateMode","httpReq","controls","trim","accountParams","accountType","provider","createKubernetesAccountUsingPOST","updateKubernetesAccountUsingPUT","k8sAccountRequest","createdBy","creationDate","successSubText","failureSubText","getToastSubTexts","success","passRef","reset","err","get","verifyAccount","verifyInProgress","kubernetesAccountDetails","validateKubernetesAccountUsingPOST","onClickHandleCancel","_angular_core__WEBPACK_IMPORTED_MODULE_4__","ReactiveTextAreaComponent","ngOnInit","invalidMsg","label","missingMsg","placeholder","inputSize","labelSize","onChangeInputVal","event","change","ReactiveToggleComponent","toggleSize","onChangeToggle","InjectionToken","document","providedIn","factory","ClipboardService","ngZone","copySubject","Subject","copyResponse$","asObservable","config","configure","content","isSupported","pushCopyResponse","isSuccess","copyResult","copyFromContent","queryCommandSupported","isTargetValid","element","HTMLInputElement","HTMLTextAreaElement","hasAttribute","Error","copyFromInputElement","targetElm","isFocus","selectTarget","re","clearSelection","undefined","isCopySuccessInIE11","clipboardData","getData","container","body","tempTextArea","contains","destroy","parentElement","createTempTextArea","appendChild","toReturn","cleanUpAfterCopy","removeChild","inputElement","select","setSelectionRange","length","execCommand","focus","getSelection","removeAllRanges","doc","isRTL","documentElement","getAttribute","ta","createElement","style","fontSize","border","padding","margin","position","top","pageYOffset","scrollTop","setAttribute","observers","run","next","pushCopyReponse","ɵfac","DOCUMENT","WINDOW","ɵprov"],"mappings":";;uLAQO,IAAMA,EAA4B,MAAnC,MAAOA,EAOXC,YAAoBC,2BANXC,aAAkB,UAClBA,UAAe,eACfA,cAAmB,GAE5BA,qBAA0B,CAE+B,CAEzDC,YACED,KAAKE,gBAAiB,EACtBF,KAAKD,iBAAiBI,KAAKH,KAAKI,UAChCC,WAAW,KACTL,KAAKE,gBAAiB,GACrB,IACL,CAACI,kDAfUT,GAA4BU,kDAA5BV,EAA4BW,mTCRzCC,qBAGEA,gCAASC,aAAW,GAOtBD,cATEA,qBAAa,iCAAbA,CAAa,sBAAbA,CAAa,gFDOFZ,CAA4B,kIERlC,MAAMc,EAA4B,CACvCC,QAAS,iDACTC,QACE,yEAGSC,EAA0B,CACrCF,QAAS,iCACTG,OAAQ,yBACRF,QAAS,kCAGEG,EAAgB,CAC3BC,MAAO,CACLC,UACE,8EACFC,UAAW,yBAEbC,IAAK,CACHF,UACE,4EACFC,UAAW,uBAEbE,IAAK,CACHH,UACE,4EACFC,UAAW,uBAEbG,WAAY,CACVJ,UACE,wEACFC,UAAW,oBAIFI,EAAoB,CAC/BF,IAAK,mHACLJ,MAAO,wCACPG,IAAK,0MCVGX,gBACEA,2DACAA,gBACEA,8BAAwDA,QACzDA,+GAEHA,+BAJKA,sEACDA,kGAIJA,gBACEA,kLAGFA,kFAfNA,kBAAkE,QAAlEA,CAAkE,MAAlEA,CAAkE,YAGnCA,mBAAOA,QAChCA,yBAOAA,yBAKFA,QACAA,gBAAiE,aACtCA,SAAoBA,QAC7CA,0CAIFA,kCAnBSA,gEAOAA,0DAOkBA,iCAEvBA,mEAMRA,kBAIEA,kBAMAA,kBAAyC,UACvBA,0CAA8BA,QAC9CA,aAAGA,6DAAiDA,mBANpDA,wDASJA,uDAEEA,0BAAkB,qBAAlBA,CAAkB,2EAOpBA,8BAQEA,2DAAWA,0BAAiB,GAC7BA,gCAJCA,iCAAyB,uEAAzBA,CAAyB,mIAK3BA,qBAOEA,yDAASA,sBAAa,GAEtBA,kBACFA,SCzDG,IAAMe,EAAuC,MAA9C,MAAOA,UAA+CC,IA0B1D3B,YACU4B,EACAC,EACAC,EACAC,EACAC,EACAC,GAERC,MAAMN,GAPE1B,sBACAA,iCACAA,iCACAA,mBACAA,+BACAA,UA/BAA,sBAAsC,IAAIiC,MAE3CjC,UAA0B,SAGnCA,iBAAkC,IAAIkC,KAAmB,GAAI,CAC3DC,cACAA,aAAmB,kBAGbnC,WAAgBoC,OAAOC,SAASC,KAC/BtC,oBAAiB,iBAC1BA,0BAA+B,EAC/BA,wBAA6B,EAC7BA,qBAA0B,EAE1BA,qBAA0B,IAC1BA,eAAoB,GAIpBA,oBAAyB,EACzBA,mBAAwB,EACxBA,uBAAoBuB,CAWpB,CAEAgB,WAAWC,GACTxC,KAAKyC,iBAAmB,GACxBzC,KAAK0C,eAAiB,GACtB1C,KAAK2C,UAAY,KACjB3C,KAAK4C,eAAgB,EACrB5C,KAAK6C,cAAe,CACtB,CAEAC,kBACE9C,KAAK+C,cACL/C,KAAKgD,qBAAsB,EAC3BhD,KAAK4B,0BACFqB,oCAAoC,CACnCC,YAAalD,KAAKkD,aAAaC,MAC/BC,QAAS,CACPC,KAAMrD,KAAKsD,mBAAmBC,iBAGjCC,UACEC,IACCzD,KAAK2C,UAAYc,GAAMC,GACQ,QAA3B1D,KAAKsD,kBACPtD,KAAK2D,iBAEL3D,KAAK4D,kBAEP5D,KAAKgD,qBAAsB,EAC3BhD,KAAKkD,aAAaW,WAAO,EACzBC,KACE,gDAA+C,EAGlDC,IACC/D,KAAKgD,qBAAsB,EAC3BhD,KAAKgE,cAAcD,EAAK,EAGhC,CAEAJ,iBACE3D,KAAKiE,mBAAoB,EACzBjE,KAAK8B,wBAAwBoC,uBAAuBV,UACjDW,IACCnE,KAAKiE,mBAAoB,EACzBjE,KAAK4D,gBAAgBO,EAAS,EAE/BJ,IACC/D,KAAKiE,mBAAoB,EACzBjE,KAAKgE,cAAcD,EAAK,EAG9B,CAEAC,cAAcD,GACZ/D,KAAK6C,cAAe,EACpB7C,KAAKyC,iBACHsB,GAAOA,OAAOK,SACd,6FACFpE,KAAKqE,WAAa,2BAClBrE,KAAKsE,UAAY,SACjBtE,KAAKkD,YAAYqB,QACnB,CAEAX,gBAAgBO,GACdnE,KAAK0C,eAAiB,aACpB1B,EAAchB,KAAKsD,oBAAoBpC,mBAC/BF,EAAchB,KAAKsD,oBAAoBnC,aAAanB,KAAKwE,SACjExE,KAAKkD,aAAaC,SAChBnD,KAAK2C,aACoB,QAA3B3C,KAAKsD,kBAA8Ba,GAAWM,UAAY,KAE5DzE,KAAK0E,qBACP,CAEA3B,cACE/C,KAAK6C,cAAe,EACpB7C,KAAKyC,iBAAmB,GACxBzC,KAAKqE,WAAa,EACpB,CAEAK,sBACE1E,KAAK2E,gBAAiB,EACtB3E,KAAK+C,cACL/C,KAAK4C,eAAgB,EACrB5C,KAAK4E,uBAAsBC,KAAS7E,KAAK8E,iBACtCC,QACCC,KAAU,IAAC,EACXC,KAAU,IACRjF,KAAK2B,0BAA0BuD,oBAAoBlF,KAAK2C,aAG3Da,UACE2B,IACKA,GAAiC,YAArBA,GAAUC,SACxBpF,KAAK2E,gBAAiB,EACtB3E,KAAK2C,UAAY,GACjB3C,KAAKqE,WAAavD,EAAwBqE,GAAUC,QAElDpF,KAAKyC,iBADkB,WAArB0C,GAAUC,OACYD,GAAUE,aAGhC1E,EAA0BwE,GAAUC,QAExCpF,KAAKsE,UACkB,YAArBa,GAAUC,OAAuB,UAAY,SAC/CpF,KAAKsF,iBAAiBC,KAAKvF,KAAKkD,aAAaC,OAE7CnD,KAAKwF,eAAW,EAChB1B,KACE,sDACA,CACEZ,YAAalD,KAAKkD,aAAaC,QAChC,EAINY,IACC/D,KAAK2E,gBAAiB,EACtB3E,KAAKgE,cAAcD,GACnB/D,KAAK4C,eAAgB,KACrBkB,KACE,iDAAgD,EAI1D,CAEA0B,cACMxF,KAAK4E,sBACP5E,KAAK4E,oBAAoBa,cACzBzF,KAAK2E,gBAAiB,EAE1B,CAEAe,cACE1F,KAAKkD,YAAYqB,SACjBvE,KAAK4C,eAAgB,EACrB5C,KAAK0C,eAAiB,GACtB1C,KAAKwF,cACLxF,KAAKyC,iBAAmB,GACxBzC,KAAKqE,WAAa,MAClBP,KAAsB,gDACxB,CAEA6B,cACE7B,OACE,mCAAmC9D,KAAK4F,MAAMrC,wBAEhDvD,KAAKwF,cACLxF,KAAK6F,UAAUC,OACjB,CAACxF,kDA3LUkB,GAAsCuE,6GAAtCvE,EAAsChB,0FAEtCwF,MAAkB,ugDDvC/BvF,mBAAS,mBAATA,CAAS,MAATA,CAAS,YAGsBA,mBAAOA,QAAQA,8BAG1CA,QACAA,+EAiBAA,yBA0BAA,wBAeAA,wCAOFA,QACAA,6BACEA,oCAUAA,2BAWAA,qBAKEA,gCAASC,cAAY,GAErBD,UACFA,mBApG0CA,mJAexCA,6FAA0E,4IAT1EA,qBAAiB,uBAAjBA,CAAiB,kHAAjBA,CAAiB,mCAebA,8FA2BHA,yDAeAA,+EASAA,mHAUAA,+FAYDA,iGAKAA,4tBCjEOe,CAAuC,mKCX7C,IAAMyE,EAAoC,MAA3C,MAAOA,EA0BXnG,YACUiC,EACAmE,EACArE,GAFA7B,UACAA,gCACAA,mBA5BDA,eAAoB,OACpBA,UAAe,GAEdA,sBAAsC,IAAIiC,MAEpDjC,6BAAkC,EAClCA,uBAA4B,EAE5BA,2BAA0CA,KAAK+B,GAAGoE,MAAM,CACtDC,KAAM,CAAC,GAAI,CAACjE,cAAqBA,aAAmB,kBACpDG,KAAM,CACJ,GACA,CAACH,cAAqBA,aAAmBkE,QAE3CC,qBAAsB,CACpB,GACA,CAACnE,cAAqBA,aAAmBkE,QAE3CE,MAAO,CACL,GACA,CAACpE,cAAqBA,aAAmBkE,UAGpCrG,oBAAiB,gBAMvB,CAEHwG,YAAYC,GACNA,EAAQC,uBAAuBC,eACjC3G,KAAK4G,eAAiBH,EAAQC,uBAAuBC,aACrD3G,KAAK6G,sBAAsBC,WAAW,CACpCV,KAAMpG,KAAK4G,gBAAgBR,MAAQ,GACnC9D,KAAMtC,KAAK4G,gBAAgBtE,MAAQ,GACnCgE,qBAAsBtG,KAAK4G,gBAAgBN,sBAAwB,GACnEC,MAAOvG,KAAK4G,gBAAgBL,OAAS,KAEvCvG,KAAK6G,sBAAsBC,WACzBL,EAAQC,uBAAuBC,cAGrC,CAEAI,8BACE/G,KAAKgH,wBAAyB,EAC9B,MAAMC,EAA6B,WAAdjH,KAAK4F,KAC1B,IAkBIsB,EAlBAhE,EACFlD,KAAK6G,uBAAuBM,UAAUf,MAAMjD,OAAOiE,QAAU,GAC3D9E,EAAOtC,KAAK6G,uBAAuBM,UAAU7E,MAAMa,OAAOiE,QAAU,GACpEd,EACFtG,KAAK6G,uBAAuBM,UAAUb,sBAAsBnD,OAAOiE,QACnE,GACEb,EACFvG,KAAK6G,uBAAuBM,UAAUZ,OAAOpD,OAAOiE,QAAU,GAE5DC,EAAmC,CACrCjB,KAAMlD,EACNoE,YAAa,QACbC,SAAU,aACVjF,KAAMA,EACNgE,uBACAC,SAIEU,EACFC,EACElH,KAAKkG,yBAAyBsB,iCAC5BH,GAEmB,SAAdrH,KAAK4F,OACdsB,EAAUlH,KAAKkG,yBAAyBuB,gCAAgC,CACtE/D,GAAI1D,KAAK4G,gBAAgBlD,GACzBgE,kBAAmB,IACdL,EACH3D,GAAI1D,KAAK4G,gBAAgBlD,GACzBiE,UAAW3H,KAAK4G,gBAAgBe,UAChCC,aAAc5H,KAAK4G,gBAAgBgB,iBAIzC,IAAMC,iBAAgBC,mBAAc,EAAKC,KAAiB/H,KAAK4F,MAC/DsB,EAAQ1D,UACLC,IACCzD,KAAK6B,YAAYmG,QACf,sBAAsBvE,GAAM2C,QAAQyB,kBAEtC7H,KAAKsF,iBAAiBC,KAAK9B,IAAI,EAC/BK,KACE,mCAAmC9D,KAAK4F,MAAMrC,2BAC9C,CACEL,YAAaA,EACboE,YAAaD,EAAcC,cAG/BtH,KAAKiI,QAAQnC,QACb9F,KAAKgH,wBAAyB,EAC9BhH,KAAK6G,sBAAsBqB,OAAK,EAEjCC,IACCnI,KAAKgH,wBAAyB,EAC9BhH,KAAK6B,YAAYkC,MACfoE,GAAKpE,OAAOK,SACV,cAAc0D,yBAAmC,EAErDhE,KACE,mCAAmC9D,KAAK4F,MAAMrC,sBAAqB,EAI3E,CACIjB,WACF,OAAOtC,KAAK6G,sBAAsBuB,IAAI,OACxC,CACI9B,2BACF,OAAOtG,KAAK6G,sBAAsBuB,IAAI,uBACxC,CACI7B,YACF,OAAOvG,KAAK6G,sBAAsBuB,IAAI,QACxC,CACIhC,WACF,OAAOpG,KAAK6G,sBAAsBuB,IAAI,OACxC,CACAC,iBACEvE,OACE,mCAAmC9D,KAAK4F,MAAMrC,gCAEhDvD,KAAKsI,kBAAmB,EACxB,MAAQhG,OAAMgE,uBAAsBC,QAAOH,QACzCpG,KAAK6G,uBAAuBM,UAAY,GAC1C,IAAIoB,EAA8C,CAChDjG,KAAMA,GAAMa,OAAOiE,OACnBhB,KAAMA,GAAMjD,OAAOiE,OACnBd,qBAAsBA,GAAsBnD,MAC5CoD,MAAOA,GAAOpD,OAAOiE,OACrBE,YAAa,QACbC,SAAU,cAEZvH,KAAKkG,yBACFsC,mCAAmCD,GACnC/E,UACEC,IACCzD,KAAKsI,kBAAmB,EACxBtI,KAAK6B,YAAYmG,QAAQ,6BAA4B,EAEtDjE,IACC/D,KAAKsI,kBAAmB,EACxBtI,KAAK6B,YAAYkC,MACfA,GAAOA,OAAOK,SAAW,2BAA0B,EAI7D,CAEAqE,oBAAoBR,IAClBnE,OACE,mCAAmC9D,KAAK4F,MAAMrC,wBAEhD0E,EAAQnC,OACV,CAACxF,kDAnKU2F,GAAoCyC,yEAApCzC,EAAoCzF,gxDC1BjDC,mBAAS,mBAATA,CAAS,WAATA,CAAS,WAIDA,qCAaFA,QACAA,iBACEA,qCAcFA,QACAA,iBACEA,oCAgBFA,QACAA,iBACEA,qCAcFA,YAGJA,6BAAiC,wBAY7BA,kCAAWC,+BAA6B,GACzCD,QACDA,8BAWEA,kCAAWC,iBAAe,GAE3BD,QACDA,sBAIEA,gCAASC,gCAA4B,GAErCD,qBACFA,mBAvGmBA,oDAIbA,8BAAiB,uBAAjBA,CAAiB,4BAejBA,8BAAiB,uBAAjBA,CAAiB,2BAAjBA,CAAiB,sEAgBjBA,8BAAiB,uBAAjBA,CAAiB,2CAAjBA,CAAiB,wGAkBjBA,8BAAiB,uBAAjBA,CAAiB,4BAAjBA,CAAiB,+CAiBrBA,4DAAiD,0BAAjDA,CAAiD,mCAAjDA,CAAiD,0FAajDA,yCAA0B,0BAA1BA,CAA0B,6BAA1BA,CAA0B,uKD3DnBwF,CAAoC,yHEf/CxF,oCACEA,yEA0BAA,iBAA8C,SAE1CA,SACFA,gCADEA,gEAUFA,eAIEA,SACFA,+BADEA,+DAEFA,eAIEA,SACFA,+BADEA,sEAEFA,eAOEA,SACFA,+BADEA,qEA1BJA,iBAOEA,qBAMAA,qBAMAA,qBASFA,8BAnBKA,4HAMAA,2HAMAA,8PAcTA,4BCnEO,IAAMkI,EAAyB,MAAhC,MAAOA,EALb7I,cAOYE,YAAS,IAAIiC,MAEdjC,eAAoB,GAUpBA,eAAoB,EACpBA,iBAAsB,GAGtBA,eAAoB,QACpBA,UAAO,OACPA,gBAAa,GAGbA,kBAA6B,MAC7BA,gBAAqB,EACrBA,eAAoB,EACpBA,eAAoB,EACpBA,UAAe,EACfA,wBAA6B,EAC7BA,sBAA2B,EAEpC4I,WACE5I,KAAK6I,WAAa7I,KAAK6I,YAAc7I,KAAK8I,MAAQ,eAClD9I,KAAK+I,WAAa/I,KAAK+I,YAAc/I,KAAK8I,MAAQ,gBAClD9I,KAAKgJ,YAAchJ,KAAKgJ,aAAehJ,KAAK8I,MAEvC9I,KAAK8I,QACR9I,KAAKiJ,UAAY,GACjBjJ,KAAKkJ,UAAY,EAErB,CAEAC,iBAAiBC,GACfpJ,KAAKqJ,OAAO9D,KAAK6D,EACnB,CAAC9I,kDA5CUqI,EAAyB,sCAAzBA,EAAyBnI,ynCDXtCC,eACEA,mCAUAA,uBAIAA,eAA8C,gBAqB1CA,yCAAiBC,qBAAwB,GAC1CD,QACDA,uBAKAA,uBA8BAA,iBACEA,SACFA,YAGJA,6BA9EKA,4CAMDA,yJAJAA,uBAAe,sBAAfA,CAAe,wBAAfA,CAAe,yCAWdA,oDAEEA,mDAODA,6BALAA,+BAAuB,mBAAvBA,CAAuB,kCAAvBA,CAAuB,4BAAvBA,CAAuB,yBAAvBA,CAAuB,sBAAvBA,CAAuB,wBAAvBA,CAAuB,wBAAvBA,CAAuB,gJAAvBA,CAAuB,eAqBNA,qEAOhBA,gNAiCFA,qHCnEQkI,CAAyB,yHCFpClI,oCACEA,sEA0BJA,4BCjBO,IAAM6I,EAAuB,MAA9B,MAAOA,EALbxJ,cAOYE,YAAS,IAAIiC,MAEdjC,aAAkB,GAClBA,eAAoB,GAIpBA,eAAoB,EACpBA,iBAAsB,GACtBA,eAAoB,QACpBA,iBAAc,GACdA,gBAAqB,EACrBA,gBAAqB,EACrBA,eAAoB,EACpBA,wBAA6B,EAC7BA,sBAA2B,EAC3BA,wBAAqB,GAI9B4I,WACO5I,KAAK8I,QACR9I,KAAKuJ,WAAa,GAClBvJ,KAAKkJ,UAAY,EAErB,CAEAM,eAAeJ,GACbpJ,KAAKqJ,OAAO9D,KAAK6D,EACnB,CAAC9I,kDA/BUgJ,EAAuB,sCAAvBA,EAAuB9I,u0BDnBpCC,iBACEA,mCAQAA,uBAIAA,eAA+C,iBAe3CA,yCAAiBC,mBAAsB,GAGvCD,SACFA,QACAA,qDACFA,UAEFA,6BA9BIA,8DAJAA,uBAAe,wBAAfA,CAAe,sBAAfA,CAAe,yCASdA,qDAEEA,oDAcDA,8BAZAA,iCAAyB,8EAAzBA,CAAyB,eAAzBA,CAAyB,kCAAzBA,CAAyB,sBAAzBA,CAAyB,gJAAzBA,CAAyB,8CAgBzBA,6CAKDA,kGCjBQ6I,CAAuB,uCCnB7B,MAAMvB,EAAoBnC,IAC/B,OAAQA,GACN,IAAK,SACH,MAAO,CACLiC,eAAgB,UAChBC,eAAgB,UAGpB,IAAK,OACH,MAAO,CACLD,eAAgB,UAChBC,eAAgB,UAEnB,+DCXQ,QAAS,IAAI2B,MACxB,qBACOrH,OAAW,KAAeA,OAAOsH,SACpC,CAAEC,WAAY,OAAQC,QAAS,IAAMxH,QACrC,CAAEuH,WAAY,OAAQC,QAAS,wBCArC,IAGMC,EAAgB,MAAtB,MAAMA,EACF/J,YAAYgK,EAAQJ,EAAUtH,GAC1BpC,KAAK8J,OAASA,EACd9J,KAAK0J,SAAWA,EAChB1J,KAAKoC,OAASA,EACdpC,KAAK+J,YAAc,IAAIC,IACvBhK,KAAKiK,cAAgBjK,KAAK+J,YAAYG,eACtClK,KAAKmK,OAAS,CAAC,CACnB,CACAC,UAAUD,GACNnK,KAAKmK,OAASA,CAClB,CACAhK,KAAKkK,GACD,IAAKrK,KAAKsK,cAAgBD,EACtB,OAAOrK,KAAKuK,iBAAiB,CAAEC,WAAW,EAAOH,YAErD,MAAMI,EAAazK,KAAK0K,gBAAgBL,GACxC,OACWrK,KAAKuK,iBADZE,EAC6B,CAAEJ,UAASG,UAAWC,GAE1B,CAAED,WAAW,EAAOH,WACrD,CACIC,kBACA,QAAStK,KAAK0J,SAASiB,yBAA2B3K,KAAK0J,SAASiB,sBAAsB,WAAa3K,KAAKoC,MAC5G,CACAwI,cAAcC,GACV,GAAIA,aAAmBC,kBAAoBD,aAAmBE,oBAAqB,CAC/E,GAAIF,EAAQG,aAAa,YACrB,MAAM,IAAIC,MAAM,qFAEpB,OAAO,EAEX,MAAM,IAAIA,MAAM,qCACpB,CAIAC,qBAAqBC,EAAWC,GAAU,GACtC,IACIpL,KAAKqL,aAAaF,GAClB,MAAMG,EAAKtL,KAAKI,WAChB,YAAKmL,eAAeH,EAAUD,OAAYK,EAAWxL,KAAKoC,QACnDkJ,GAAMtL,KAAKyL,qBAItB,CAHA,MAEI,OAAO,CACX,CACJ,CAIAA,sBACI,MAAMC,EAAgB1L,KAAKoC,OAAOsJ,cAClC,QAAIA,GAAiBA,EAAcC,UAC1BD,EAAcC,QAAQ,QAKnC,CAKAjB,gBAAgBL,EAASuB,EAAY5L,KAAK0J,SAASmC,MAM/C,GAHI7L,KAAK8L,eAAiBF,EAAUG,SAAS/L,KAAK8L,eAC9C9L,KAAKgM,QAAQhM,KAAK8L,aAAaG,oBAAiBT,IAE/CxL,KAAK8L,aAAc,CACpB9L,KAAK8L,aAAe9L,KAAKkM,mBAAmBlM,KAAK0J,SAAU1J,KAAKoC,QAChE,IACIwJ,EAAUO,YAAYnM,KAAK8L,aAI/B,CAHA,MAEI,MAAM,IAAIb,MAAM,oCACpB,EAEJjL,KAAK8L,aAAa3I,MAAQkH,EAC1B,MAAM+B,EAAWpM,KAAKkL,qBAAqBlL,KAAK8L,cAAc,GAC9D,OAAI9L,KAAKmK,OAAOkC,kBACZrM,KAAKgM,QAAQhM,KAAK8L,aAAaG,oBAAiBT,GAE7CY,CACX,CAIAJ,QAAQJ,EAAY5L,KAAK0J,SAASmC,MAC1B7L,KAAK8L,eACLF,EAAUU,YAAYtM,KAAK8L,cAE3B9L,KAAK8L,kBAAeN,EAE5B,CAIAH,aAAakB,GACTA,SAAaC,SACbD,EAAaE,kBAAkB,EAAGF,EAAapJ,MAAMuJ,QAC9CH,EAAapJ,MAAMuJ,MAC9B,CACAtM,WACI,OAAOJ,KAAK0J,SAASiD,YAAY,OACrC,CAIApB,eAAegB,EAAcnK,GACzBmK,GAAgBA,EAAaK,QAC7BxK,EAAOyK,gBAAgBC,iBAC3B,CAIAZ,mBAAmBa,EAAK3K,GACpB,MAAM4K,EAAoD,QAA5CD,EAAIE,gBAAgBC,aAAa,OAC/C,IAAIC,EAaJA,OAZAA,EAAKJ,EAAIK,cAAc,YAEvBD,EAAGE,MAAMC,SAAW,OAEpBH,EAAGE,MAAME,OAAS,IAClBJ,EAAGE,MAAMG,QAAU,IACnBL,EAAGE,MAAMI,OAAS,IAElBN,EAAGE,MAAMK,SAAW,WACpBP,EAAGE,MAAML,EAAQ,QAAU,QAAU,UAGrCG,EAAGE,MAAMM,KADSvL,EAAOwL,aAAeb,EAAIE,gBAAgBY,WACjC,KAC3BV,EAAGW,aAAa,WAAY,IACrBX,CACX,CAKA5C,iBAAiBpF,GACTnF,KAAK+J,YAAYgE,UAAUrB,OAAS,GACpC1M,KAAK8J,OAAOkE,IAAI,KACZhO,KAAK+J,YAAYkE,KAAK9I,EAAQ,EAG1C,CAIA+I,gBAAgB/I,GACZnF,KAAKuK,iBAAiBpF,EAC1B,EAEJ0E,SAAiBsE,UAAI,0BAAwFtE,GAAVpJ,MAA4CA,OAA5CA,MAAkE2N,MAAlE3N,MAAuF4N,EAAM,KAChMxE,EAAiByE,WADkF7N,MAAE,OACYoJ,EAAgBD,QAAhBC,EAAgB,qBAAc,SA3JzIA,CAAgB","debug_id":"164ea1e4-41fd-50a3-9e5e-7db6129f872b"}