{"version":3,"file":"pv-frontend-pv-shared-components-card-section.mjs","sources":["../../../projects/pv-shared-components/card-section/card-section.component.ts","../../../projects/pv-shared-components/card-section/card-section.component.html","../../../projects/pv-shared-components/card-section/pv-frontend-pv-shared-components-card-section.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  NgModule,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { PvButtonModule } from '@pv-frontend/pv-shared-components/button';\nimport { OverrideStyleConfig } from '@pv-frontend/pv-shared-components/common/types';\nimport { SvgIconModule } from '@pv-frontend/pv-shared-components/svg-icon';\nimport { ClickTrackingModule } from '@pv-frontend/pv-shared-directives/tracking';\n\nexport interface CardSectionStyleConfig {\n  backgroundImage?: OverrideStyleConfig;\n  title?: {\n    container?: OverrideStyleConfig;\n    image?: OverrideStyleConfig;\n    emphasizedText?: OverrideStyleConfig;\n    text?: OverrideStyleConfig;\n  };\n  link?: OverrideStyleConfig;\n  card?: OverrideStyleConfig;\n}\n\n@Component({\n  selector: 'pv-card-section',\n  styleUrls: ['./card-section.component.scss'],\n  templateUrl: './card-section.component.html',\n  encapsulation: ViewEncapsulation.None,\n})\nexport class CardSection {\n  @Input()\n  public backgroundIconName?: string = '';\n\n  @Input()\n  public titleIconName?: string = '';\n\n  @Input()\n  public emphasizedTitleText?: string = '';\n\n  @Input()\n  public titleText?: string = '';\n\n  @Input()\n  public style?: CardSectionStyleConfig = {};\n\n  @Input()\n  public showViewAllButton?: boolean = false;\n\n  @Input()\n  public buttonPosition?: 'top-right' | 'bottom';\n\n  @Input()\n  public buttonLabel: string = '';\n\n  @Input()\n  public analyticsEnabled: boolean = false;\n\n  @Input()\n  public labelForAnalytics: string = '';\n\n  @Input()\n  public svgIconClickable: boolean = false;\n\n  @Output()\n  // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n  public onButtonClick: EventEmitter<unknown> = new EventEmitter();\n\n  @Output()\n  public svgIconClickEmitter: EventEmitter<void> = new EventEmitter();\n\n  public handleIconClick(event: Event): void {\n    event.preventDefault();\n    if (this.svgIconClickable) {\n      this.svgIconClickEmitter.emit();\n    }\n  }\n}\n\n@NgModule({\n  imports: [CommonModule, SvgIconModule, PvButtonModule, ClickTrackingModule],\n  exports: [CardSection],\n  declarations: [CardSection],\n})\nexport class PvCardSectionModule {}\n","<div class=\"pv-card-section\" [style]=\"this.style?.card\">\n  <pv-svg-icon\n    [style]=\"this.style?.backgroundImage\"\n    [name]=\"this.backgroundIconName\"\n    *ngIf=\"this.backgroundIconName\"></pv-svg-icon>\n  <div\n    class=\"pv-card-section-title flex flex-row pt-4 pl-3 pr-1 justify-content-between text-base\"\n    [style]=\"this.style?.title?.container\">\n    <div class=\"flex flex-row align-items-center gap-1 align-items-center\">\n      <pv-svg-icon\n        styleClass=\"pv-card-title-image {{\n          this.svgIconClickable ? 'cursor-pointer' : ''\n        }}\"\n        [style]=\"this.style?.title?.image\"\n        [name]=\"this.titleIconName\"\n        (click)=\"this.handleIconClick($event)\"\n        *ngIf=\"this.titleIconName\"></pv-svg-icon>\n      <span\n        *ngIf=\"this.emphasizedTitleText\"\n        class=\"font-bold\"\n        [style]=\"this.style?.title?.emphasizedText\">\n        {{ this.emphasizedTitleText }}\n      </span>\n      <span *ngIf=\"this.titleText\" [style]=\"this.style?.title?.text\">\n        {{ this.titleText }}\n      </span>\n    </div>\n\n    <span *ngIf=\"this.showViewAllButton && this.buttonPosition === 'top-right'\">\n      <ng-template [ngTemplateOutlet]=\"cardSectionButton\"></ng-template>\n    </span>\n  </div>\n  <ng-content></ng-content>\n  <span\n    class=\"flex justify-content-center w-full mb-3\"\n    *ngIf=\"showViewAllButton && this.buttonPosition === 'bottom'\">\n    <ng-template [ngTemplateOutlet]=\"cardSectionButton\"></ng-template>\n  </span>\n\n  <ng-template #cardSectionButton>\n    <pv-button\n      [label]=\"this.buttonLabel\"\n      size=\"small\"\n      variant=\"link\"\n      [style]=\"this.style?.link\"\n      (clickEvent)=\"this.onButtonClick.emit($event)\"\n      [analyticsEnabledForButton]=\"this.analyticsEnabled\"\n      [labelForAnalytics]=\"this.labelForAnalytics\"></pv-button>\n  </ng-template>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}