{"version":3,"file":"moxa-formoxa-mx-badge.mjs","sources":["../../../../libs/formoxa/mx-badge/src/lib/directives/mx-badge.directive.ts","../../../../libs/formoxa/mx-badge/src/moxa-formoxa-mx-badge.ts"],"sourcesContent":["import {\n  Directive,\n  ElementRef,\n  Inject,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n  booleanAttribute,\n  DOCUMENT\n} from '@angular/core';\nimport { BadgeDigits, BadgeDisplay } from '../models/mx-badge.model';\n\n@Directive({\n  selector: '[mxBadge]',\n  standalone: true,\n  host: {\n    class: 'mx-badge',\n    '[class.mx-badge-circle]': '!mxBadge',\n    '[class.mx-badge-number]': '!!mxBadge',\n    '[class.mx-badge-single-number]': '!!mxBadge && badgeContext.length < 2',\n    '[class.mx-badge-overflow-number]': '!!mxBadge && badgeContext.length > 1',\n    '[class.mx-badge-absolute]': 'mxBadgePosition === \"absolute\"',\n    '[class.mx-badge-behind]': 'mxBadgePosition === \"behind\"',\n    '[class.mx-badge-hidden]': '!mxBadgeDisplay',\n    '[class.mx-badge--outline]': 'mxBadgeWithOutline'\n  }\n})\nexport class MxBadgeDirective implements OnInit, OnChanges, OnDestroy {\n  @Input() mxBadge: number | '' = '';\n  @Input() mxBadgePosition: BadgeDisplay = 'absolute';\n  @Input({ transform: booleanAttribute }) mxBadgeDisplay: boolean = true;\n  @Input() mxBadgeDigits: BadgeDigits = 1;\n  @Input({ transform: booleanAttribute }) mxBadgeWithOutline: boolean = false;\n\n  badgeElement: HTMLElement | null = null;\n  badgeContext: string = '';\n\n  constructor(\n    @Inject(DOCUMENT) private document: Document,\n    private elRef: ElementRef<HTMLElement>\n  ) {}\n\n  ngOnInit(): void {\n    if (!this.badgeElement) {\n      this.setBadgeContext(this.mxBadge);\n      this.createBadge();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if ('mxBadge' in changes) {\n      this.setBadgeContext(changes['mxBadge'].currentValue);\n      this.updateBadgeText();\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.badgeElement) {\n      this.badgeElement.remove();\n    }\n  }\n\n  private updateBadgeText(): void {\n    if (!this.badgeElement) {\n      this.createBadge();\n    } else {\n      this.badgeElement.textContent = this.badgeContext;\n    }\n  }\n\n  private createBadge(): void {\n    const badgeElement = this.document.createElement('span');\n    badgeElement.classList.add('mx-badge-content');\n    badgeElement.textContent = this.badgeContext;\n    this.elRef.nativeElement.appendChild(badgeElement);\n\n    this.badgeElement = badgeElement;\n  }\n\n  private setBadgeContext(value: number | ''): void {\n    const maxVal = Math.pow(10, this.mxBadgeDigits) - 1;\n    if (!value) {\n      this.badgeContext = '';\n      return;\n    }\n\n    const input = value || 0;\n    this.badgeContext = input > maxVal ? maxVal.toString() + '+' : value.toString();\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}