{"version":3,"file":"pv-frontend-pv-shared-components-button.mjs","sources":["../../../projects/pv-shared-components/button/button.component.ts","../../../projects/pv-shared-components/button/button.component.html","../../../projects/pv-shared-components/button/button.module.ts","../../../projects/pv-shared-components/button/pv-frontend-pv-shared-components-button.ts"],"sourcesContent":["import {\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n} from '@angular/core';\nimport { OverrideStyleConfig } from '@pv-frontend/pv-shared-components/common/types';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonVariant = 'link' | 'contained' | 'outlined' | 'text';\nexport type ButtonSize = 'small' | 'medium' | 'large';\n\n@Component({\n  selector: 'pv-button',\n  templateUrl: './button.component.html',\n  styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent implements OnChanges {\n  @Input() public style: OverrideStyleConfig = {};\n  @Input() public styleClass: string = '';\n  @Input() public variant: ButtonVariant = 'contained';\n  @Input() public isRounded: boolean = false;\n  @Input() public isDisabled: boolean = false;\n  @Input() public isLoading: boolean = false;\n  @Input() public type: ButtonType = 'button';\n  @Input() public size: ButtonSize = 'medium';\n  @Input() public label: string = '';\n  @Input() public analyticsEnabledForButton: boolean = false;\n  @Input() public labelForAnalytics: string = '';\n\n  @Output() public clickEvent: EventEmitter<unknown> =\n    new EventEmitter<unknown>();\n\n  private buttonSizes = {\n    small: 'p-button-sm',\n    medium: 'p-button',\n    large: 'p-button-lg',\n  };\n\n  private buttonVariants = {\n    link: 'p-button-link font-bold',\n    contained: 'p-button-raised font-bold',\n    outlined: 'p-button-outlined font-bold',\n    text: 'p-button-text font-bold',\n  };\n\n  public variantClass!: string;\n  public roundedClass!: string;\n  public buttonSizeClass!: string;\n\n  public ngOnChanges(): void {\n    this.buttonSizeClass = this.buttonSizes[this.size];\n    this.roundedClass = this.isRounded ? 'p-button-rounded' : '';\n    this.variantClass = this.buttonVariants[this.variant];\n  }\n\n  public handleClick(event: MouseEvent): void {\n    event.stopPropagation();\n    event.preventDefault();\n    if (!this.isDisabled) {\n      this.clickEvent.emit(event);\n    }\n  }\n\n  public getButtonClasses(): string {\n    return `${this.variantClass} ${this.roundedClass} ${this.buttonSizeClass} flex align-items-center justify-content-center ${this.styleClass}`;\n  }\n}\n","<p-button\n  [styleClass]=\"getButtonClasses()\"\n  [type]=\"type\"\n  [label]=\"label\"\n  [loading]=\"isLoading\"\n  [disabled]=\"isDisabled\"\n  (click)=\"handleClick($event)\"\n  [style]=\"style\"\n  [pvClickTrack]=\"analyticsEnabledForButton\"\n  [pvTrackLabel]=\"labelForAnalytics\">\n  <ng-content></ng-content>\n</p-button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ClickTrackingModule } from '@pv-frontend/pv-shared-directives/tracking';\nimport { ButtonModule as PrimeNgButtonModule } from 'primeng/button';\n\nimport { ButtonComponent } from '../button/button.component';\n\n@NgModule({\n  declarations: [ButtonComponent],\n  imports: [CommonModule, PrimeNgButtonModule, ClickTrackingModule],\n  exports: [ButtonComponent],\n})\nexport class PvButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["PrimeNgButtonModule"],"mappings":"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"}