{"version":3,"file":"seniorsistemas-angular-components-token-list.mjs","sources":["../../projects/angular-components/token-list/src/lib/token-list/token-list.component.ts","../../projects/angular-components/token-list/src/lib/token-list/token-list.component.html","../../projects/angular-components/token-list/src/lib/token-list/token-list.module.ts","../../projects/angular-components/token-list/src/seniorsistemas-angular-components-token-list.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { IToken } from './models/token';\r\n\r\n/**\r\n * @description Componente de lista de tokens (etiquetas) clicáveis e opcionalmente\r\n * removíveis. Emite eventos ao selecionar ou remover um token.\r\n *\r\n * @example\r\n * ```html\r\n * <s-token-list\r\n *   [tokens]=\"listaDeTokens\"\r\n *   [removableTokens]=\"true\"\r\n *   (tokenSelected)=\"onTokenSelecionado($event)\"\r\n *   (tokenRemoved)=\"onTokenRemovido($event)\" />\r\n * ```\r\n *\r\n * @category Summary\r\n */\r\n@Component({\r\n    selector: 's-token-list',\r\n    templateUrl: './token-list.component.html',\r\n    styleUrls: ['./token-list.component.scss'],\r\n    standalone: true,\r\n    imports: [NgClass],\r\n})\r\nexport class TokenListComponent {\r\n    public static nextId = 0;\r\n\r\n    /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\r\n    @Input()\r\n    public id = `s-token-list-${TokenListComponent.nextId++}`;\r\n\r\n    /** @description Lista de tokens exibidos. Campo obrigatório. */\r\n    @Input({ required: true })\r\n    public tokens!: IToken[];\r\n\r\n    /** @description Exibe o botão de remoção em cada token. @default false */\r\n    @Input()\r\n    public removableTokens = false;\r\n\r\n    /** @description Quando `true`, remove os eventos de ponteiro (hover/clique) dos tokens. @default false */\r\n    @Input()\r\n    public hidePointerEvents = false;\r\n\r\n    /** @description Classe do ícone do botão de remover token. @default 'far fa-times' */\r\n    @Input()\r\n    public removeIconClass = 'far fa-times';\r\n\r\n    /** @description Emitido quando o usuário clica em um token não desabilitado. */\r\n    @Output()\r\n    public tokenSelected: EventEmitter<IToken> = new EventEmitter();\r\n\r\n    /** @description Emitido quando o usuário remove um token não desabilitado. */\r\n    @Output()\r\n    public tokenRemoved: EventEmitter<IToken> = new EventEmitter();\r\n\r\n    public onTokenSelected(token: IToken): void {\r\n        if (!token.disabled) {\r\n            this.tokenSelected.next(token);\r\n        }\r\n    }\r\n\r\n    public onTokenRemoved(token: IToken): void {\r\n        if (!token.disabled) {\r\n            this.tokenRemoved.next(token);\r\n        }\r\n    }\r\n}\r\n","<div\n    [id]=\"id\"\n    class=\"token-list\"\n>\n    @for (token of tokens; track $index) {\n        <span\n            [id]=\"token.id\"\n            class=\"token\"\n            [ngClass]=\"{\n                'no-pointer-events': hidePointerEvents,\n                'token--disabled': token.disabled,\n            }\"\n        >\n            <a\n                [id]=\"(token.id || 'token') + '-label'\"\n                class=\"token-label\"\n                (click)=\"onTokenSelected(token)\"\n            >\n                {{ token.label }}\n            </a>\n            @if (removableTokens && !token.notRemovable) {\n                <span\n                    [id]=\"token.id + '-remove'\"\n                    [class]=\"removeIconClass\"\n                    (click)=\"onTokenRemoved(token)\"\n                >\n                </span>\n            }\n        </span>\n    }\n</div>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { TokenListComponent } from './token-list.component';\r\n\r\n@NgModule({\r\n    imports: [TokenListComponent],\r\n    exports: [TokenListComponent],\r\n})\r\nexport class TokenListModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}