{"version":3,"file":"ng-devui-badge.mjs","sources":["../../devui/badge/badge.component.ts","../../devui/badge/badge.component.html","../../devui/badge/badge.module.ts","../../devui/badge/ng-devui-badge.ts"],"sourcesContent":["import {\n  AfterViewInit,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Input,\n  ViewChild\n} from '@angular/core';\nimport { BadgePositionType, BadgeStatusType } from './badge.types';\n\n\n@Component({\n  selector: 'd-badge',\n  templateUrl: './badge.component.html',\n  styleUrls: ['./badge.component.scss']\n})\nexport class BadgeComponent implements AfterViewInit {\n  hasContent = true;\n\n  @ViewChild('contentProjection') contentProjection?: ElementRef;\n  @Input() count: number | string;\n  @Input() maxCount = 99;\n  @Input() showDot = false;\n  @Input() status: BadgeStatusType;\n  /**\n   * @deprecated\n   * 用position替代\n   */\n  @Input() set badgePos(value: BadgePositionType) {\n    this.position = value;\n  }\n  @Input() position: BadgePositionType = 'top-right';\n  /**\n   * @deprecated\n   * 用offset替代\n   */\n  @Input() set offsetXY(value: [number, number]) {\n    this.offset = value;\n  }\n  @Input() offset: [number, number];\n\n  @Input() bgColor: string;\n  @Input() textColor: string;\n\n  hasContentProjection() {\n    const nodes = this.contentProjection?.nativeElement;\n    const contents = nodes.childNodes;\n    this.hasContent = contents.length ? true : false;\n  }\n\n  parseCountToNumber() {\n    if(typeof(this.count) === 'number') {\n      return this.count;\n    } else {\n      const parseNumber = parseInt(this.count);\n      return isNaN(parseNumber) ? -1 : parseNumber;\n    }\n  }\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n  ) { }\n\n  ngAfterViewInit() {\n    this.hasContentProjection();\n    this.cdr.detectChanges();\n  }\n\n}\n","<span #contentProjection><ng-content></ng-content></span>\n<span\n  *ngIf=\"!showDot && !hasContent\"\n  class=\"devui-badge-count devui-badge-count-{{ status }}\"\n  [style.background]=\"bgColor\"\n  [style.color]=\"textColor\"\n>\n  {{ count }}\n</span>\n<span *ngIf=\"showDot && !hasContent\" class=\"devui-badge-status devui-badge-status-{{ status }}\"></span>\n<span\n  *ngIf=\"hasContent\"\n  class=\"devui-badge-content devui-badge-content-{{ status }} devui-badge-content-{{ position }}\"\n  [style.background]=\"bgColor\"\n  [style.color]=\"textColor\"\n  [style.right.px]=\"offset && offset[0] ? -offset[0] : null\"\n  [style.top.px]=\"offset && offset[1] ? offset[1] : null\"\n  [ngClass]=\"{ 'devui-badge-content-count': !showDot, 'devui-badge-content-dot': showDot }\"\n>\n  <ng-container *ngIf=\"!showDot && parseCountToNumber() <= maxCount\">{{ count }}</ng-container>\n  <ng-container *ngIf=\"!showDot && parseCountToNumber() > maxCount\">{{ maxCount }}+</ng-container>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BadgeComponent } from './badge.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n  ],\n  exports: [BadgeComponent],\n  declarations: [BadgeComponent]\n})\nexport class BadgeModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}