{"version":3,"file":"tapsellorg-angular-material-library-src-lib-status-label.mjs","sources":["../../projects/pegah-library/src/lib/status-label/config.ts","../../projects/pegah-library/src/lib/status-label/status-label.component.ts","../../projects/pegah-library/src/lib/status-label/status-label.component.html","../../projects/pegah-library/src/lib/status-label/status-label.module.ts","../../projects/pegah-library/src/lib/status-label/tapsellorg-angular-material-library-src-lib-status-label.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { PghStatusDefaultLabelTypes, PghStatusLabelConfig } from './model';\n\nexport const PGH_STATUS_CONFIG = new InjectionToken<\n  PghStatusLabelConfig<PghStatusDefaultLabelTypes>\n>('pghStatusLabelConfig', {\n  providedIn: 'root',\n  factory: () => ({}),\n});\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  input,\n  OnChanges,\n  SimpleChanges,\n} from '@angular/core';\nimport { PGH_STATUS_CONFIG } from './config';\nimport {\n  PghStatusDefaultLabelTypes,\n  PghStatusLabelConfig,\n  PghStatusLabelSize,\n  PghStatusLabelStyleMode,\n  PghStatusTypeDef,\n  PghStatusTypeMappings,\n} from './model';\n\n@Component({\n  selector: 'pgh-status-label',\n  templateUrl: './status-label.component.html',\n  styleUrls: ['./status-label.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class PghStatusLabelComponent implements OnChanges {\n  TYPE_CSS_CLASS: Record<string, PghStatusTypeDef> = {\n    success: { colorCode: 'success', iconName: 'done' },\n    primary: { colorCode: 'primary' },\n    accent: { colorCode: 'accent' },\n    warning: { colorCode: 'warning', iconName: 'report_problem' },\n    danger: { colorCode: 'danger', iconName: 'close' },\n    info: { colorCode: 'info', iconName: 'info' },\n  };\n  type = input<PghStatusDefaultLabelTypes | (string & {})>('primary');\n  label = input<string | undefined>(undefined);\n  showIcon = input<boolean>(this.statusConfig.showIcon ?? true);\n  typeMapping = input<PghStatusTypeMappings<string> | undefined>(undefined);\n  styleMode = input<PghStatusLabelStyleMode>(this.statusConfig.styleMode ?? 'stroked');\n  labelSize = input<PghStatusLabelSize>(this.statusConfig.labelSize ?? 'medium');\n\n  constructor(@Inject(PGH_STATUS_CONFIG) private statusConfig: PghStatusLabelConfig<string>) {\n    this.updateAdditionalTypeDefinitions();\n    this.mapTypeMappingsToTypeDefinitions();\n  }\n\n  private updateAdditionalTypeDefinitions() {\n    this.TYPE_CSS_CLASS = { ...this.TYPE_CSS_CLASS, ...this.statusConfig.additionalTypes };\n  }\n\n  get typeConfig() {\n    return this.TYPE_CSS_CLASS[this.type()] || { colorCode: this.type() };\n  }\n\n  private mapTypeMappingsToTypeDefinitions(\n    typeMapping: PghStatusTypeMappings<string> | undefined = this.statusConfig.typesMapping,\n  ) {\n    if (!typeMapping) return;\n\n    this.TYPE_CSS_CLASS = {\n      ...this.TYPE_CSS_CLASS,\n      ...Object.keys(typeMapping).reduce(\n        (res, existingType) => ({ ...res, ...this.enrichMappingsOf(typeMapping, existingType) }),\n        {},\n      ),\n    };\n  }\n\n  private enrichMappingsOf(typeMapping: PghStatusTypeMappings<string>, type: string) {\n    return (typeMapping[type] || []).reduce(\n      (res, typeEquivalent) => ({ ...res, [typeEquivalent]: this.TYPE_CSS_CLASS[type] }),\n      {},\n    );\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.typeMapping) {\n      this.mapTypeMappingsToTypeDefinitions(this.typeMapping());\n    }\n  }\n}\n","<span\n  [class]=\"\n    'pgh-status-label text-truncate' +\n    (' pgh-status-label-' + styleMode()) +\n    (' pgh-status-label-' + labelSize())\n  \"\n  [style.--pgh-status-label-color-code]=\"'var(--' + typeConfig.colorCode + ')'\"\n  [style.--pgh-status-label-color-code-dark]=\"'var(--' + typeConfig.colorCode + '-700)'\"\n  [style.--pgh-status-label-color-code-light]=\"'var(--' + typeConfig.colorCode + '-50)'\"\n>\n  @if (typeConfig.iconName && showIcon()) {\n  <mat-icon class=\"pgh-status-label-icon\" [svgIcon]=\"typeConfig.iconName || ''\"></mat-icon>\n  }\n  {{ label() }}\n  <ng-content></ng-content>\n</span>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghStatusLabelComponent } from './status-label.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n  declarations: [PghStatusLabelComponent],\n  exports: [PghStatusLabelComponent],\n  imports: [CommonModule, MatIconModule],\n})\nexport class PghStatusLabelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}