{ "version": 3, "sources": ["libs/crm/dynamic/src/lib/pipeline-settings/pipeline-settings-form/pipeline-settings-form.component.ts", "libs/crm/dynamic/src/lib/pipeline-settings/pipeline-settings-form/pipeline-settings-form.component.html"], "sourcesContent": ["import { Component } from '@angular/core';\nimport {\n AbstractControl,\n FormArray,\n FormControl,\n FormGroup,\n ValidatorFn,\n Validators,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { whitespaceValidator } from '@vendasta/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PipelineSettingsService } from '../pipeline-settings.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Pipeline, Stage, StandardIds } from '@galaxy/crm/static';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, firstValueFrom, Observable, of, take } from 'rxjs';\nimport { filter, map, switchMap } from 'rxjs/operators';\nimport { OpenConfirmationModalService } from '@vendasta/galaxy/confirmation-modal';\nimport { StageData, StageMap } from '../interfaces';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { MatCard, MatCardContent, MatCardActions } from '@angular/material/card';\nimport { MatDivider } from '@angular/material/divider';\nimport { NgClass, AsyncPipe } from '@angular/common';\nimport { MatIconButton, MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { GalaxyStickyFooterModule } from '@vendasta/galaxy/sticky-footer';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\n\nconst probabilityValidator: ValidatorFn = (control: AbstractControl) => {\n const formArray = control as FormArray;\n const probabilityMap = new Map<number, FormControl[]>();\n for (const control of formArray.controls) {\n const probabilityControl = control.get('probability') as FormControl;\n const probability = probabilityControl?.value || 0;\n if (!probabilityMap.has(probability)) {\n probabilityMap.set(probability, []);\n }\n probabilityMap.get(probability)?.push(probabilityControl);\n }\n\n let duplicateFound = false;\n for (const controls of probabilityMap.values()) {\n if (controls.length > 1) {\n controls.forEach((c) => {\n c.setErrors({ ...c.errors, duplicate: true });\n c.markAsTouched();\n });\n duplicateFound = true;\n } else {\n const c = controls[0];\n if (c.errors && 'duplicate' in c.errors) {\n delete c.errors['duplicate'];\n c.setErrors(Object.keys(c.errors).length ? c.errors : null);\n c.markAsTouched();\n }\n }\n }\n\n return duplicateFound ? { duplicate: true } : null;\n};\n\n@Component({\n selector: 'crm-pipeline-settings-form',\n templateUrl: './pipeline-settings-form.component.html',\n styleUrls: ['./pipeline-settings-form.component.scss'],\n imports: [\n GalaxyLoadingSpinnerModule,\n FormsModule,\n ReactiveFormsModule,\n GalaxyFormFieldModule,\n MatInput,\n MatCard,\n MatDivider,\n MatCardContent,\n NgClass,\n MatIconButton,\n MatIcon,\n MatCardActions,\n MatButton,\n GalaxyStickyFooterModule,\n GalaxyButtonLoadingIndicatorModule,\n AsyncPipe,\n TranslateModule,\n ],\n})\nexport class PipelineSettingsFormComponent {\n protected readonly pipelineForm = new FormGroup({\n stages: new FormArray<FormGroup>([], {\n validators: probabilityValidator,\n }),\n name: new FormControl('', {\n validators: whitespaceValidator(),\n nonNullable: true,\n }),\n });\n\n protected readonly currentPipeline$ = this.pipelineSettingsService.currentPipeline$;\n protected readonly fallbackPipelineId$ = this.pipelineSettingsService.fallbackPipelineId$;\n protected readonly loading$ = this.pipelineSettingsService.loadingPipeline$;\n protected readonly savingChanges$$ = new BehaviorSubject(false);\n protected readonly pendingChanges$$ = new BehaviorSubject(false);\n\n constructor(\n private readonly pipelineSettingsService: PipelineSettingsService,\n private readonly activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private readonly snackbarService: SnackbarService,\n private readonly confirmationModal: OpenConfirmationModalService,\n private readonly translateService: TranslateService,\n ) {\n this.pipelineForm.valueChanges.pipe(takeUntilDestroyed()).subscribe((_) => this.pendingChanges$$.next(true));\n this.activatedRoute.params.pipe(takeUntilDestroyed()).subscribe((params) => {\n if (params['pipelineId']) {\n this.pipelineSettingsService.setPipelineId(params['pipelineId']);\n } else {\n this.loadFallbackPipeline();\n }\n });\n\n this.currentPipeline$.pipe(takeUntilDestroyed()).subscribe((pipeline) => {\n if (pipeline?.id) {\n this.setFormValues(pipeline);\n }\n });\n }\n\n protected get stages(): FormArray<FormGroup> {\n return this.pipelineForm.controls.stages;\n }\n\n protected keyIsInteger(event: KeyboardEvent): boolean {\n return /^[0-9]$/.test(event.key);\n }\n\n protected addStage(): void {\n const lastOpenStageIndex = this.stages.controls.map((s) => s.get('status')?.value).lastIndexOf('Open');\n const nextProbability = (this.stages.controls[lastOpenStageIndex]?.get('probability')?.value || 0) + 1;\n const newStage = new FormGroup({\n name: new FormControl('', whitespaceValidator()),\n probability: new FormControl(nextProbability, [Validators.required, Validators.min(1), Validators.max(99)]),\n status: new FormControl('Open'),\n });\n this.stages.insert(lastOpenStageIndex + 1, newStage);\n newStage.markAllAsTouched();\n newStage.get('name')?.markAsDirty();\n newStage.get('probability')?.markAsDirty();\n }\n\n private setFormValues(pipeline: Pipeline) {\n this.pipelineForm.reset({ name: pipeline.name }, { emitEvent: false });\n this.stages.clear();\n let closedWonExists = false;\n let closedLostExists = false;\n pipeline.stages.forEach((stage) => {\n const idCtrl = new FormControl(stage.id);\n const nameCtrl = new FormControl(stage.name, whitespaceValidator());\n const stageProbability = this.getStageProbability(stage);\n const probabilityCtrl = new FormControl(this.getStageProbability(stage));\n const statusCtrl = new FormControl(this.getStageStatus(stage));\n\n if (stageProbability === 0) {\n closedLostExists = true;\n probabilityCtrl.disable();\n } else if (stageProbability === 100) {\n closedWonExists = true;\n probabilityCtrl.disable();\n } else {\n probabilityCtrl.setValidators([Validators.required, Validators.min(1), Validators.max(99)]);\n }\n const newStage = new FormGroup({\n id: idCtrl,\n name: nameCtrl,\n probability: probabilityCtrl,\n status: statusCtrl,\n });\n this.stages.push(newStage, { emitEvent: false });\n });\n this.pendingChanges$$.next(false);\n\n // add Closed stages if they don't exist in the current settings\n if (!closedWonExists) {\n const nameCtrl = new FormControl(\n this.translateService.instant('PIPELINES.SETTINGS.DEFAULTS.CLOSED_WON'),\n whitespaceValidator(),\n );\n const probabilityCtrl = new FormControl(100);\n const statusCtrl = new FormControl('Closed Won');\n probabilityCtrl.disable();\n const newStage = new FormGroup({\n name: nameCtrl,\n probability: probabilityCtrl,\n status: statusCtrl,\n });\n this.stages.push(newStage);\n }\n if (!closedLostExists) {\n const nameCtrl = new FormControl(\n this.translateService.instant('PIPELINES.SETTINGS.DEFAULTS.CLOSED_LOST'),\n whitespaceValidator(),\n );\n const probabilityCtrl = new FormControl(0);\n const statusCtrl = new FormControl('Closed Lost');\n probabilityCtrl.disable();\n const newStage = new FormGroup({\n name: nameCtrl,\n probability: probabilityCtrl,\n status: statusCtrl,\n });\n this.stages.push(newStage);\n }\n }\n\n private patchFormValues(pipeline: Pipeline) {\n for (let i = 0; i < this.stages.length; i++) {\n const stageGroup = this.stages.at(i);\n const stage = pipeline.stages.find((s) => this.getStageProbability(s) === stageGroup.get('probability')?.value);\n if (stage) {\n if (stage.id && !stageGroup.get('id')) {\n stageGroup.setControl('id', new FormControl(''));\n }\n stageGroup.patchValue({\n id: stage?.id || '',\n name: stage?.name,\n probability: this.getStageProbability(stage),\n status: this.getStageStatus(stage),\n });\n }\n }\n }\n\n private getStageProbability(stage: Stage) {\n const mutationFloat = stage.mutations.find(\n (mutation) => mutation.fieldId === StandardIds.OpportunityProbability,\n )?.floatValue;\n return mutationFloat ? Math.round(mutationFloat * 100) : 0;\n }\n\n private getStageStatus(stage: Stage): string {\n const mutationValue = stage.mutations.find(\n (mutation) => mutation.fieldId === StandardIds.OpportunityStatus,\n )?.stringValue;\n return mutationValue ?? 'Open';\n }\n\n private loadFallbackPipeline() {\n this.fallbackPipelineId$\n .pipe(\n filter((id) => !!id),\n take(1),\n )\n .subscribe((fallbackPipelineId) => {\n this.router.navigate([`${fallbackPipelineId}`], {\n relativeTo: this.activatedRoute,\n });\n });\n }\n\n protected saveChanges(pipelineId: string) {\n if (this.pipelineForm.valid && this.pipelineForm.dirty) {\n this.savingChanges$$.next(true);\n const pipelineName = this.pipelineForm.controls.name.value ?? '';\n const stageProbabilities: StageMap = new Map<string, StageData>(\n this.stages.controls.map((stage) => [\n stage.get('name')?.value,\n {\n id: stage.get('id')?.value || '',\n probability: stage.get('probability')?.value / 100,\n status: stage.get('status')?.value,\n },\n ]),\n );\n this.pipelineSettingsService\n .updatePipeline$('Opportunity', pipelineId, pipelineName, stageProbabilities)\n .subscribe({\n next: (pipeline) => {\n this.patchFormValues(pipeline);\n this.savingChanges$$.next(false);\n this.pendingChanges$$.next(false);\n this.pipelineForm.markAsPristine();\n this.snackbarService.openSuccessSnack('PIPELINES.SETTINGS.SNACKBARS.SAVE_SUCCESS');\n },\n error: () => {\n this.savingChanges$$.next(false);\n this.snackbarService.openErrorSnack('PIPELINES.SETTINGS.SNACKBARS.SAVE_FAILED');\n },\n });\n } else if (this.pipelineForm.dirty) {\n this.snackbarService.openErrorSnack('PIPELINES.SETTINGS.SNACKBARS.FORM_INVALID');\n }\n }\n\n deleteDisplayStage(index: number) {\n this.stages.removeAt(index);\n this.pipelineForm.markAsDirty();\n }\n\n async delete(pipelineId: string): Promise<void> {\n const proceed = await firstValueFrom(\n this.confirmationModal.openModal({\n type: 'warn',\n title: 'PIPELINES.SETTINGS.MODALS.DELETE_TITLE',\n message: 'PIPELINES.SETTINGS.MODALS.DELETE_MESSAGE',\n confirmButtonText: 'ACTIONS.DELETE',\n cancelButtonText: 'ACTIONS.CANCEL',\n actionOnEnterKey: false,\n }),\n );\n if (proceed) {\n const success = await firstValueFrom(this.pipelineSettingsService.deletePipeline$(pipelineId));\n if (success) {\n this.snackbarService.openSuccessSnack('PIPELINES.SETTINGS.SNACKBARS.DELETE_SUCCESS');\n await this.router.navigate(['../'], { relativeTo: this.activatedRoute });\n } else {\n this.snackbarService.openErrorSnack('PIPELINES.SETTINGS.SNACKBARS.DELETE_FAILED');\n }\n }\n }\n\n protected async cancel() {\n const pipeline = await firstValueFrom(this.currentPipeline$);\n if (pipeline?.id) {\n this.setFormValues(pipeline);\n }\n }\n\n canDeactivate(): Observable<boolean> {\n return this.pendingChanges$$.pipe(\n switchMap((pendingChanges) => {\n if (pendingChanges) {\n return this.confirmationModal\n .openModal({\n type: 'warn',\n title: 'PIPELINES.SETTINGS.MODALS.UNSAVED_CHANGES_TITLE',\n message: 'PIPELINES.SETTINGS.MODALS.UNSAVED_CHANGES_MESSAGE',\n confirmButtonText: 'PIPELINES.SETTINGS.MODALS.UNSAVED_CHANGES_CONFIRM',\n })\n .pipe(map((confirmation) => !!confirmation));\n } else {\n return of(true);\n }\n }),\n );\n }\n}\n", "@let currentPipeline = currentPipeline$ | async;\n@if (loading$ | async) {\n <glxy-loading-spinner [fullHeight]=\"true\" [size]=\"'large'\"></glxy-loading-spinner>\n} @else {\n @if (currentPipeline?.id) {\n <div class=\"pipeline-forms\" [formGroup]=\"pipelineForm\">\n <glxy-form-field [bottomSpacing]=\"false\">\n <glxy-label>{{ 'PIPELINES.SETTINGS.FORM.TITLES.PIPELINE_NAME' | translate }}</glxy-label>\n <input\n type=\"text\"\n formControlName=\"name\"\n placeholder=\"{{ 'PIPELINES.SETTINGS.FORM.PLACEHOLDER.PIPELINE_NAME' | translate }}\"\n matInput\n />\n </glxy-form-field>\n <div class=\"pipeline-stage-form-title-group\">\n <div class=\"pipeline-stage-form-title\">\n {{ 'PIPELINES.SETTINGS.FORM.TITLES.PIPELINE_NAME' | translate }}\n </div>\n <div class=\"pipeline-stage-form-subtitle\">\n {{ 'PIPELINES.SETTINGS.FORM.SUBTITLES.PIPELINE_STAGES' | translate }}\n </div>\n </div>\n <mat-card>\n <div class=\"pipeline-stages-header\">\n <div class=\"row\">\n <div class=\"col col-sm-8 pipeline-stages-content\">\n {{ 'PIPELINES.SETTINGS.FORM.TITLES.STAGE_NAME' | translate }}\n </div>\n <div class=\"col col-sm-4 pipeline-stages-content\">\n {{ 'PIPELINES.SETTINGS.FORM.TITLES.CLOSE_PROBABILITY' | translate }}\n </div>\n </div>\n </div>\n <mat-divider></mat-divider>\n <mat-card-content>\n @for (stageForm of stages.controls; track stageForm; let i = $index, last = $last) {\n @let status = stageForm.get('status')?.value;\n @let readonly = status !== 'Open';\n <div class=\"row pipeline-stages-form-group\" [formGroup]=\"stageForm\">\n <div class=\"col col-sm-8 pipeline-stages-content\">\n <glxy-form-field [bottomSpacing]=\"last ? false : 'small'\">\n <input\n type=\"text\"\n formControlName=\"name\"\n placeholder=\"{{ 'PIPELINES.SETTINGS.FORM.TITLES.STAGE_NAME' | translate }}\"\n [ngClass]=\"{\n 'closed-won-input': status === 'Closed Won',\n 'closed-lost-input': status === 'Closed Lost',\n }\"\n matInput\n />\n </glxy-form-field>\n </div>\n <div class=\"col col-sm-4 pipeline-stages-content\">\n <div class=\"close-probability\">\n <glxy-form-field\n [showLabel]=\"false\"\n [bottomSpacing]=\"last ? false : 'small'\"\n [suffixText]=\"'%'\"\n class=\"probability-input\"\n >\n @if (readonly) {\n <input\n type=\"number\"\n formControlName=\"probability\"\n class=\"disabled\"\n [ngClass]=\"{\n 'closed-won-input': status === 'Closed Won',\n 'closed-lost-input': status === 'Closed Lost',\n }\"\n matInput\n />\n } @else {\n <input\n type=\"number\"\n formControlName=\"probability\"\n min=\"1\"\n max=\"99\"\n step=\"1\"\n (keypress)=\"keyIsInteger($event)\"\n matInput\n />\n }\n </glxy-form-field>\n @if (readonly) {\n <button mat-icon-button type=\"button\" disabled></button>\n } @else {\n <button mat-icon-button type=\"button\" (click)=\"deleteDisplayStage(i)\">\n <mat-icon class=\"pipeline-stages-button\">close</mat-icon>\n </button>\n }\n </div>\n </div>\n </div>\n @if (!last) {\n <mat-divider></mat-divider>\n }\n }\n </mat-card-content>\n <mat-card-actions>\n <button mat-button type=\"button\" color=\"primary\" class=\"pipeline-stages-content\" (click)=\"addStage()\">\n + {{ 'PIPELINES.SETTINGS.CTA.ADD_STAGE' | translate }}\n </button>\n </mat-card-actions>\n </mat-card>\n </div>\n <glxy-sticky-footer>\n <glxy-button-loading-indicator [isLoading]=\"savingChanges$$ | async\">\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"saveChanges(currentPipeline?.id)\"\n [disabled]=\"(pendingChanges$$ | async) === false\"\n >\n {{ 'ACTIONS.SAVE' | translate }}\n </button>\n </glxy-button-loading-indicator>\n <button mat-stroked-button (click)=\"cancel()\" [disabled]=\"(pendingChanges$$ | async) === false\">\n {{ 'ACTIONS.CANCEL' | translate }}\n </button>\n <glxy-sticky-footer-secondary>\n <button mat-stroked-button color=\"warn\" type=\"button\" (click)=\"delete(currentPipeline?.id)\">\n {{ 'ACTIONS.DELETE' | translate }}\n </button>\n </glxy-sticky-footer-secondary>\n </glxy-sticky-footer>\n }\n}\n"], "mappings": "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", "names": ["\u0275\u0275element", "\u0275\u0275property", "\u0275\u0275pureFunction2", "_c0", "status_r2", "\u0275\u0275elementStart", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r3", "ctx_r3", "\u0275\u0275nextContext", "\u0275\u0275resetView", "keyIsInteger", "\u0275\u0275elementEnd", "_r5", "\u0275$index_48_r6", "$index", "deleteDisplayStage", "\u0275\u0275text", "\u0275\u0275declareLet", "\u0275\u0275template", "PipelineSettingsFormComponent_Conditional_4_Conditional_0_For_26_Conditional_10_Template", "PipelineSettingsFormComponent_Conditional_4_Conditional_0_For_26_Conditional_11_Template", "PipelineSettingsFormComponent_Conditional_4_Conditional_0_For_26_Conditional_12_Template", "PipelineSettingsFormComponent_Conditional_4_Conditional_0_For_26_Conditional_13_Template", "PipelineSettingsFormComponent_Conditional_4_Conditional_0_For_26_Conditional_14_Template", "\u0275\u0275storeLet", "tmp_15_0", "stageForm_r7", "get", "value", "\u0275\u0275advance", "\u0275$count_48_r8", "\u0275\u0275propertyInterpolate", "\u0275\u0275pipeBind1", "status_r9", "\u0275\u0275conditional", "readonly_r10", "\u0275\u0275repeaterCreate", "PipelineSettingsFormComponent_Conditional_4_Conditional_0_For_26_Template", "\u0275\u0275repeaterTrackByIdentity", "_r1", "addStage", "currentPipeline_r11", "\u0275\u0275readContextLet", "saveChanges", "id", "cancel", "delete", "pipelineForm", "\u0275\u0275textInterpolate", "\u0275\u0275textInterpolate1", "\u0275\u0275repeater", "stages", "controls", "savingChanges$$", "pendingChanges$$", "PipelineSettingsFormComponent_Conditional_4_Conditional_0_Template", "probabilityValidator", "PipelineSettingsFormComponent", "init_pipeline_settings_form_component", "__esmMin", "init_forms", "init_src", "init_rxjs_interop", "init_esm", "init_operators", "init_ngx_translate_core", "init_loading_spinner", "init_form_field", "init_input", "init_card", "init_divider", "init_common", "init_button", "init_icon", "init_sticky_footer", "init_button_loading_indicator", "control", "formArray", "probabilityMap", "Map", "probabilityControl", "probability", "has", "set", "push", "duplicateFound", "values", "length", "forEach", "c", "setErrors", "__spreadProps", "__spreadValues", "errors", "duplicate", "markAsTouched", "Object", "keys", "constructor", "pipelineSettingsService", "activatedRoute", "router", "snackbarService", "confirmationModal", "translateService", "FormGroup", "FormArray", "validators", "name", "FormControl", "whitespaceValidator", "nonNullable", "currentPipeline$", "fallbackPipelineId$", "loading$", "loadingPipeline$", "BehaviorSubject", "valueChanges", "pipe", "takeUntilDestroyed", "subscribe", "_", "next", "params", "setPipelineId", "loadFallbackPipeline", "pipeline", "setFormValues", "event", "test", "key", "lastOpenStageIndex", "map", "s", "lastIndexOf", "nextProbability", "newStage", "Validators", "required", "min", "max", "status", "insert", "markAllAsTouched", "markAsDirty", "reset", "emitEvent", "clear", "closedWonExists", "closedLostExists", "stage", "idCtrl", "nameCtrl", "stageProbability", "getStageProbability", "probabilityCtrl", "statusCtrl", "getStageStatus", "disable", "setValidators", "instant", "patchFormValues", "i", "stageGroup", "at", "find", "setControl", "patchValue", "mutationFloat", "mutations", "mutation", "fieldId", "StandardIds", "OpportunityProbability", "floatValue", "Math", "round", "OpportunityStatus", "stringValue", "filter", "take", "fallbackPipelineId", "navigate", "relativeTo", "pipelineId", "valid", "dirty", "pipelineName", "stageProbabilities", "updatePipeline$", "markAsPristine", "openSuccessSnack", "error", "openErrorSnack", "index", "removeAt", "__async", "firstValueFrom", "openModal", "type", "title", "message", "confirmButtonText", "cancelButtonText", "actionOnEnterKey", "deletePipeline$", "canDeactivate", "switchMap", "pendingChanges", "confirmation", "of", "\u0275\u0275directiveInject", "PipelineSettingsService", "ActivatedRoute", "Router", "SnackbarService", "OpenConfirmationModalService", "TranslateService", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "PipelineSettingsFormComponent_Conditional_2_Template", "PipelineSettingsFormComponent_Conditional_4_Template", "GalaxyLoadingSpinnerModule", "LoadingSpinnerComponent", "FormsModule", "DefaultValueAccessor", "NumberValueAccessor", "NgControlStatus", "NgControlStatusGroup", "MinValidator", "MaxValidator", "ReactiveFormsModule", "FormGroupDirective", "FormControlName", "GalaxyFormFieldModule", "FormFieldComponent", "LabelDirective", "MatInput", "MatCard", "MatDivider", "MatCardContent", "NgClass", "MatIconButton", "MatIcon", "MatCardActions", "MatButton", "GalaxyStickyFooterModule", "StickyFooterComponent", "StickyFooterSecondaryDirective", "GalaxyButtonLoadingIndicatorModule", "ButtonLoadingIndicatorComponent", "AsyncPipe", "TranslateModule", "TranslatePipe", "styles"] }