{"version":3,"file":"seniorsistemas-angular-components-badge.mjs","sources":["../../projects/angular-components/badge/src/lib/badge/badge.component.ts","../../projects/angular-components/badge/src/lib/badge/badge.component.html","../../projects/angular-components/badge/src/lib/badge/badge.module.ts","../../projects/angular-components/badge/src/seniorsistemas-angular-components-badge.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, input, Input, Output } from '@angular/core';\n\nimport { BadgeColors } from './types/badge-colors';\nimport { BadgeTypes } from './types/badge-types';\n\n/**\n * @description Componente de badge (etiqueta) para exibir rótulos coloridos e clicáveis,\n * com suporte a ícones, variantes visuais (pill, tag) e estado selecionável.\n *\n * @example\n * ```html\n * <s-badge color=\"blue\" type=\"pill\" text=\"Ativo\" />\n * ```\n *\n * @category Feedback\n */\n@Component({\n    selector: 's-badge',\n    templateUrl: './badge.component.html',\n    styleUrls: ['./badge.component.scss'],\n})\nexport class BadgeComponent {\n    /** @description Variante visual do badge. @default 'pill' */\n    @Input()\n    public type?: BadgeTypes = 'pill';\n\n    /** @description Cor do badge. @default 'blue' */\n    @Input()\n    public color?: BadgeColors = 'blue';\n\n    /** @description Texto de título exibido no badge. */\n    @Input()\n    public title?: string;\n\n    /** @description Texto principal exibido dentro do badge. */\n    @Input()\n    public text?: string;\n\n    /** @description Habilita o modo selecionável, emitindo o evento `selected` ao clicar. @default false */\n    @Input()\n    public selectable = false;\n\n    /** @description Classe CSS do ícone exibido no badge (ex.: `'fa fa-check'`). */\n    @Input()\n    public iconClass?: string;\n\n    /** @description Posição do ícone em relação ao texto. @default 'left' */\n    @Input()\n    public iconPosition?: 'left' | 'right' = 'left';\n\n    /** @description Configuração do info-sign exibido no badge, com texto e tempo de exibição opcional. */\n    @Input() infoSign!: { text: string; displayTime?: number };\n\n    /** @description Emitido ao clicar no badge, enviando o valor de `text`. */\n    @Output()\n    public selected = new EventEmitter<string>();\n\n    @HostListener('click')\n    public onClick(): void {\n        this.selected.emit(this.text);\n    }\n\n    enableTruncateText = input(false);\n}\n\n","<span\n    class=\"badge\"\n    [ngClass]=\"{\n        'badge--pill': type === 'pill',\n        'badge--chip': type === 'chip',\n        'badge--red': color === 'red',\n        'badge--orange': color === 'orange',\n        'badge--yellow': color === 'yellow',\n        'badge--blue': color === 'blue',\n        'badge--green': color === 'green',\n        'badge--gray': color === 'gray',\n        'badge--selectable': selectable,\n    }\"\n>\n    @if (infoSign) {\n        <span *sInfoSign=\"infoSign.text; displayTime: infoSign.displayTime ?? 0\"></span>\n    }\n    @if (iconClass) {\n        <span\n            [class]=\"'badge-icon ' + iconClass\"\n            [ngClass]=\"{\n                'badge-icon--left': iconPosition === 'left' && text,\n                'badge-icon--right': iconPosition === 'right' && text,\n            }\"\n        >\n        </span>\n    }\n    @if (title) {\n        <span class=\"badge-title\">{{ title }}:</span>\n    }\n    @if (text) {\n        <span\n            class=\"badge-text\"\n            [class.badge-text-truncated]=\"enableTruncateText()\"\n            [sTooltip]=\"text\"\n            [visible]=\"enableTruncateText()\"\n            [checkTruncatedText]=\"enableTruncateText()\"\n        >{{text}}</span>\n    }\n</span>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { BadgeComponent } from './badge.component';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\n\n@NgModule({\n    imports: [CommonModule, RouterModule, InfoSignModule, TooltipModule, TemplateModule],\n    declarations: [BadgeComponent],\n    exports: [BadgeComponent, RouterModule],\n})\nexport class BadgeModule {}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}