{"version":3,"file":"praxisui-table-rule-builder.mjs","sources":["../../../projects/praxis-table-rule-builder/src/lib/effects/presets/default-presets.ts","../../../projects/praxis-table-rule-builder/src/lib/effects/editors/estilo-editor.component.ts","../../../projects/praxis-table-rule-builder/src/lib/effects/editors/layout-editor.component.ts","../../../projects/praxis-table-rule-builder/src/lib/effects/editors/icone-badge-editor.component.ts","../../../projects/praxis-table-rule-builder/src/lib/effects/editors/fundo-editor.component.ts","../../../projects/praxis-table-rule-builder/src/lib/effects/editors/animacao-editor.component.ts","../../../projects/praxis-table-rule-builder/src/lib/effects/editors/tooltip-editor.component.ts","../../../projects/praxis-table-rule-builder/src/lib/effects/services/effect-registry.service.ts","../../../projects/praxis-table-rule-builder/src/lib/effects/rule-effects-panel.component.ts","../../../projects/praxis-table-rule-builder/src/lib/effects/rule-effects-panel.component.html","../../../projects/praxis-table-rule-builder/src/lib/effects/apply-effects.util.ts","../../../projects/praxis-table-rule-builder/src/praxisui-table-rule-builder.ts"],"sourcesContent":["import { RuleEffectDefinition } from '../models/rule-effects.model';\n\nexport const DEFAULT_EFFECT_PRESETS: Record<string, RuleEffectDefinition> = {\n  aprovado: {\n    scope: 'row',\n    estilo: { color: '#eafff5', bold: true },\n    iconBadge: {\n      icon: 'check_circle',\n      iconColor: '#35D07F',\n      iconPos: 'before',\n      badgeText: 'Aprovado',\n      badgeStyle: 'soft',\n      badgeColor: '#2a8455',\n    },\n    background: { color: 'rgba(53,208,127,0.08)' },\n    layout: { border: 'left', borderColor: '#35D07F', borderWidth: 3 },\n  },\n  alerta: {\n    scope: 'row',\n    estilo: { color: '#fff8e1', bold: true },\n    iconBadge: {\n      icon: 'warning',\n      iconColor: '#FFC107',\n      iconPos: 'before',\n      badgeText: 'Atenção',\n      badgeStyle: 'outline',\n      badgeColor: '#FFC107',\n    },\n    background: { color: 'rgba(255,193,7,0.12)' },\n  },\n  erro: {\n    scope: 'row',\n    estilo: { color: '#ffeaea', bold: true },\n    iconBadge: {\n      icon: 'error',\n      iconColor: '#EF5350',\n      iconPos: 'before',\n      badgeText: 'Erro',\n      badgeStyle: 'solid',\n      badgeColor: '#EF5350',\n    },\n    background: { color: 'rgba(239,83,80,0.10)' },\n  },\n  info: {\n    scope: 'row',\n    iconBadge: { icon: 'info', iconColor: '#64B5F6', iconPos: 'before' },\n    background: { color: 'rgba(100,181,246,0.10)' },\n  },\n};\n\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSliderModule } from '@angular/material/slider';\n\n@Component({\n  selector: 'praxis-effects-estilo-editor',\n  standalone: true,\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    MatFormFieldModule,\n    MatInputModule,\n    MatButtonToggleModule,\n    MatIconModule,\n    MatSliderModule,\n  ],\n  template: `\n    <div class=\"estilo-grid\" role=\"group\" aria-label=\"Editor de estilo\" [formGroup]=\"group\">\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Cor do texto</mat-label>\n        <input matInput type=\"text\" formControlName=\"color\" placeholder=\"#E7ECF6\" />\n      </mat-form-field>\n\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Cor de fundo do texto</mat-label>\n        <input matInput type=\"text\" formControlName=\"bgColor\" placeholder=\"#122033\" />\n      </mat-form-field>\n\n      <div class=\"toggles\">\n        <mat-button-toggle-group multiple>\n          <mat-button-toggle [checked]=\"group.get('bold')?.value\" (change)=\"group.get('bold')?.setValue($event.source.checked)\" aria-label=\"Negrito\">\n            <mat-icon>format_bold</mat-icon>\n          </mat-button-toggle>\n          <mat-button-toggle [checked]=\"group.get('italic')?.value\" (change)=\"group.get('italic')?.setValue($event.source.checked)\" aria-label=\"Itálico\">\n            <mat-icon>format_italic</mat-icon>\n          </mat-button-toggle>\n          <mat-button-toggle [checked]=\"group.get('underline')?.value\" (change)=\"group.get('underline')?.setValue($event.source.checked)\" aria-label=\"Sublinhado\">\n            <mat-icon>format_underlined</mat-icon>\n          </mat-button-toggle>\n        </mat-button-toggle-group>\n      </div>\n\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Transformação</mat-label>\n        <select matNativeControl formControlName=\"transform\" aria-label=\"Transformação do texto\">\n          <option [ngValue]=\"null\">Nenhuma</option>\n          <option value=\"uppercase\">MAIÚSCULAS</option>\n          <option value=\"lowercase\">minúsculas</option>\n          <option value=\"capitalize\">Capitalizar</option>\n        </select>\n      </mat-form-field>\n\n      <div class=\"sliders\">\n        <label class=\"slider\">\n          <span>Opacidade</span>\n          <mat-slider min=\"0\" max=\"1\" step=\"0.05\" [displayWith]=\"formatOpacity\">\n            <input matSliderThumb formControlName=\"opacity\" />\n          </mat-slider>\n        </label>\n        <label class=\"slider\">\n          <span>Tamanho</span>\n          <mat-slider min=\"-2\" max=\"2\" step=\"1\">\n            <input matSliderThumb formControlName=\"fontScale\" />\n          </mat-slider>\n        </label>\n      </div>\n    </div>\n  `,\n  styles: [\n    `\n    .estilo-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; align-items: start; }\n    .toggles { display:flex; align-items:center; gap: 8px; }\n    .sliders { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; }\n    .slider { display:flex; flex-direction: column; gap: 6px; }\n    `,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EstiloEditorComponent {\n  @Input() group!: FormGroup;\n  // Public for template (strictTemplates): used by mat-slider\n  formatOpacity(v: number | null): string { return (v ?? 0).toFixed(2); }\n}\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n  selector: 'praxis-effects-layout-editor',\n  standalone: true,\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatButtonToggleModule, MatIconModule],\n  template: `\n    <div class=\"layout-grid\" role=\"group\" aria-label=\"Editor de layout\" [formGroup]=\"group\">\n      <div class=\"borders\">\n        <span class=\"lbl\">Borda</span>\n        <mat-button-toggle-group [value]=\"group.get('border')?.value\" (change)=\"group.get('border')?.setValue($event.value)\" aria-label=\"Borda\">\n          <mat-button-toggle value=\"none\"><mat-icon>crop_free</mat-icon></mat-button-toggle>\n          <mat-button-toggle value=\"left\"><mat-icon>border_left</mat-icon></mat-button-toggle>\n          <mat-button-toggle value=\"right\"><mat-icon>border_right</mat-icon></mat-button-toggle>\n          <mat-button-toggle value=\"top\"><mat-icon>border_top</mat-icon></mat-button-toggle>\n          <mat-button-toggle value=\"bottom\"><mat-icon>border_bottom</mat-icon></mat-button-toggle>\n          <mat-button-toggle value=\"all\"><mat-icon>border_all</mat-icon></mat-button-toggle>\n        </mat-button-toggle-group>\n      </div>\n\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Cor da borda</mat-label>\n        <input matInput type=\"text\" formControlName=\"borderColor\" placeholder=\"#487BFF\" />\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Espessura</mat-label>\n        <input matInput type=\"number\" formControlName=\"borderWidth\" placeholder=\"2\" />\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Padding</mat-label>\n        <input matInput type=\"number\" formControlName=\"padding\" placeholder=\"6\" />\n      </mat-form-field>\n\n      <div class=\"align\">\n        <span class=\"lbl\">Alinhamento</span>\n        <mat-button-toggle-group [value]=\"group.get('align')?.value\" (change)=\"group.get('align')?.setValue($event.value)\" aria-label=\"Alinhamento\">\n          <mat-button-toggle value=\"start\"><mat-icon>format_align_left</mat-icon></mat-button-toggle>\n          <mat-button-toggle value=\"center\"><mat-icon>format_align_center</mat-icon></mat-button-toggle>\n          <mat-button-toggle value=\"end\"><mat-icon>format_align_right</mat-icon></mat-button-toggle>\n        </mat-button-toggle-group>\n      </div>\n\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Elevação (sombra)</mat-label>\n        <input matInput type=\"number\" formControlName=\"elevation\" placeholder=\"6\" />\n      </mat-form-field>\n    </div>\n  `,\n  styles: [\n    `\n    .layout-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; align-items:center; }\n    .borders, .align { display:flex; align-items:center; gap:8px; }\n    .lbl { font-size:.85rem; opacity:.8; }\n    `,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LayoutEditorComponent {\n  @Input() group!: FormGroup;\n}\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n  selector: 'praxis-effects-icone-badge-editor',\n  standalone: true,\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatButtonToggleModule, MatIconModule],\n  template: `\n    <div class=\"icone-grid\" role=\"group\" aria-label=\"Editor de ícone e badge\" [formGroup]=\"group\">\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Ícone (mat-icon)</mat-label>\n        <input matInput type=\"text\" formControlName=\"icon\" placeholder=\"check_circle\" />\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Cor do ícone</mat-label>\n        <input matInput type=\"text\" formControlName=\"iconColor\" placeholder=\"#35D07F\" />\n      </mat-form-field>\n\n      <div class=\"pos\">\n        <span class=\"lbl\">Posição do ícone</span>\n        <mat-button-toggle-group [value]=\"group.get('iconPos')?.value\" (change)=\"group.get('iconPos')?.setValue($event.value)\" aria-label=\"Posição do ícone\">\n          <mat-button-toggle value=\"before\">Antes</mat-button-toggle>\n          <mat-button-toggle value=\"after\">Depois</mat-button-toggle>\n          <mat-button-toggle value=\"overlay\">Sobreposto</mat-button-toggle>\n        </mat-button-toggle-group>\n      </div>\n\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Texto do badge</mat-label>\n        <input matInput type=\"text\" formControlName=\"badgeText\" placeholder=\"Aprovado\" />\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Cor do badge</mat-label>\n        <input matInput type=\"text\" formControlName=\"badgeColor\" placeholder=\"#2a8455\" />\n      </mat-form-field>\n\n      <div class=\"variant\">\n        <span class=\"lbl\">Estilo</span>\n        <mat-button-toggle-group [value]=\"group.get('badgeStyle')?.value\" (change)=\"group.get('badgeStyle')?.setValue($event.value)\" aria-label=\"Estilo do badge\">\n          <mat-button-toggle value=\"solid\">Sólido</mat-button-toggle>\n          <mat-button-toggle value=\"soft\">Suave</mat-button-toggle>\n          <mat-button-toggle value=\"outline\">Contorno</mat-button-toggle>\n        </mat-button-toggle-group>\n      </div>\n    </div>\n  `,\n  styles: [\n    `\n    .icone-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; align-items:center; }\n    .pos, .variant { display:flex; align-items:center; gap:8px; }\n    .lbl { font-size:.85rem; opacity:.8; }\n    `,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconeBadgeEditorComponent {\n  @Input() group!: FormGroup;\n}\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSliderModule } from '@angular/material/slider';\n\n@Component({\n  selector: 'praxis-effects-fundo-editor',\n  standalone: true,\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatSliderModule],\n  template: `\n    <div class=\"fundo-grid\" role=\"group\" aria-label=\"Editor de fundo\" [formGroup]=\"group\">\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Cor</mat-label>\n        <input matInput type=\"text\" formControlName=\"color\" placeholder=\"#122033\" />\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\" class=\"full\">\n        <mat-label>Gradient CSS</mat-label>\n        <input matInput type=\"text\" formControlName=\"gradient\" placeholder=\"linear-gradient(180deg, #202637, #1c2230)\" />\n      </mat-form-field>\n\n      <label class=\"slider\">\n        <span>Transparência</span>\n        <mat-slider min=\"0\" max=\"100\" step=\"5\">\n          <input matSliderThumb formControlName=\"alpha\" />\n        </mat-slider>\n      </label>\n      <label class=\"slider\">\n        <span>Desfoque (px)</span>\n        <mat-slider min=\"0\" max=\"20\" step=\"1\">\n          <input matSliderThumb formControlName=\"blur\" />\n        </mat-slider>\n      </label>\n    </div>\n  `,\n  styles: [\n    `\n    .fundo-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; align-items:center; }\n    .full { grid-column: 1 / -1; }\n    .slider { display:flex; flex-direction: column; gap: 6px; }\n    `,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FundoEditorComponent {\n  @Input() group!: FormGroup;\n}\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n  selector: 'praxis-effects-animacao-editor',\n  standalone: true,\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule],\n  template: `\n    <div class=\"anim-grid\" role=\"group\" aria-label=\"Editor de animação\" [formGroup]=\"group\">\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Tipo</mat-label>\n        <select matNativeControl formControlName=\"type\" aria-label=\"Tipo de animação\">\n          <option value=\"pulse\">Pulse</option>\n          <option value=\"blink\">Blink</option>\n          <option value=\"grow\">Grow</option>\n          <option value=\"fade\">Fade</option>\n          <option value=\"slide-in\">Slide In</option>\n        </select>\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Duração (ms)</mat-label>\n        <input matInput type=\"number\" formControlName=\"durationMs\" placeholder=\"800\" />\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Delay (ms)</mat-label>\n        <input matInput type=\"number\" formControlName=\"delayMs\" placeholder=\"0\" />\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Disparo</mat-label>\n        <select matNativeControl formControlName=\"trigger\" aria-label=\"Disparo da animação\">\n          <option value=\"onChange\">Ao mudar</option>\n          <option value=\"onAppear\">Ao aparecer</option>\n          <option value=\"onHover\">Ao passar o mouse</option>\n        </select>\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Repetição</mat-label>\n        <select matNativeControl formControlName=\"repeat\" aria-label=\"Repetição da animação\">\n          <option value=\"once\">Uma vez</option>\n          <option value=\"loop\">Loop</option>\n        </select>\n      </mat-form-field>\n    </div>\n  `,\n  styles: [\n    `\n    .anim-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; align-items:center; }\n    `,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AnimacaoEditorComponent { @Input() group!: FormGroup; }\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n  selector: 'praxis-effects-tooltip-editor',\n  standalone: true,\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule],\n  template: `\n    <div class=\"tooltip-grid\" role=\"group\" aria-label=\"Editor de tooltip\" [formGroup]=\"group\">\n      <mat-form-field appearance=\"outline\" class=\"full\">\n        <mat-label>Texto</mat-label>\n        <input matInput type=\"text\" formControlName=\"text\" placeholder=\"Detalhes da célula\" />\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Posição</mat-label>\n        <select matNativeControl formControlName=\"position\" aria-label=\"Posição do tooltip\">\n          <option value=\"top\">Topo</option>\n          <option value=\"right\">Direita</option>\n          <option value=\"bottom\">Baixo</option>\n          <option value=\"left\">Esquerda</option>\n        </select>\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Cor do fundo</mat-label>\n        <input matInput type=\"text\" formControlName=\"bgColor\" placeholder=\"#2E3142\" />\n      </mat-form-field>\n      <mat-form-field appearance=\"outline\">\n        <mat-label>Delay (ms)</mat-label>\n        <input matInput type=\"number\" formControlName=\"delayMs\" placeholder=\"300\" />\n      </mat-form-field>\n    </div>\n  `,\n  styles: [\n    `\n    .tooltip-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; align-items:center; }\n    .full { grid-column: 1 / -1; }\n    `,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipEditorComponent { @Input() group!: FormGroup; }\n","import { Injectable } from '@angular/core';\n\nexport interface EffectEditorPlugin {\n  id: 'estilo' | 'layout' | 'icone' | 'fundo' | 'animacao' | 'tooltip';\n  label: string;\n  icon: string;\n  order: number;\n  loadComponent?: () => Promise<any>;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EffectRegistryService {\n  private plugins: EffectEditorPlugin[] = [];\n\n  register(plugin: EffectEditorPlugin) {\n    if (this.plugins.find((p) => p.id === plugin.id)) return; // avoid duplicates\n    this.plugins.push(plugin);\n    this.plugins.sort((a, b) => a.order - b.order);\n  }\n\n  list(): EffectEditorPlugin[] {\n    return this.plugins.slice();\n  }\n}\n\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\n\nimport { RuleEffectDefinition, RuleScope } from './models/rule-effects.model';\nimport { DEFAULT_EFFECT_PRESETS } from './presets/default-presets';\nimport { EffectRegistryService } from './services/effect-registry.service';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\n\nimport { EstiloEditorComponent } from './editors/estilo-editor.component';\nimport { LayoutEditorComponent } from './editors/layout-editor.component';\nimport { IconeBadgeEditorComponent } from './editors/icone-badge-editor.component';\nimport { FundoEditorComponent } from './editors/fundo-editor.component';\nimport { AnimacaoEditorComponent } from './editors/animacao-editor.component';\nimport { TooltipEditorComponent } from './editors/tooltip-editor.component';\n\n@Component({\n  selector: 'praxis-rule-effects-panel',\n  standalone: true,\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    MatFormFieldModule,\n    MatInputModule,\n    MatButtonModule,\n    MatIconModule,\n    MatTooltipModule,\n    MatMenuModule,\n    MatButtonToggleModule,\n    EstiloEditorComponent,\n    LayoutEditorComponent,\n    IconeBadgeEditorComponent,\n    FundoEditorComponent,\n    AnimacaoEditorComponent,\n    TooltipEditorComponent,\n  ],\n  templateUrl: './rule-effects-panel.component.html',\n  styleUrls: ['./rule-effects-panel.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RuleEffectsPanelComponent implements OnInit, OnDestroy {\n  // i18n-friendly labels map\n  labels: Record<string, string> = {\n    'panel.title': 'C. Efeitos',\n    'panel.subtitle': 'Configure estilos e elementos visuais quando a regra for verdadeira',\n    'tabs.estilo': 'Estilo',\n    'tabs.layout': 'Layout',\n    'tabs.icone': 'Ícone / Badge',\n    'tabs.fundo': 'Fundo',\n    'tabs.animacao': 'Animação',\n    'tabs.tooltip': 'Tooltip',\n    'preview.title': 'Pré-visualização',\n    'preview.hint': 'As mudanças acima refletem o estilo aplicado quando a condição é verdadeira.',\n    'advanced.title': 'Avançado',\n    'advanced.description': 'Descrição',\n    'actions.apply': 'Aplicar',\n    'actions.reset': 'Redefinir',\n    'presets.label': 'Presets',\n  };\n  t(key: string): string { return this.labels[key] ?? key; }\n\n  @Input() scope: RuleScope = 'row';\n  private _value?: RuleEffectDefinition;\n  @Input() set value(v: RuleEffectDefinition | undefined) {\n    this._value = v;\n    if (v && this.effectsForm) this.patchForm(v);\n  }\n  get value() { return this._value; }\n\n  @Output() valueChange = new EventEmitter<RuleEffectDefinition>();\n  @Output() apply = new EventEmitter<void>();\n  @Output() reset = new EventEmitter<void>();\n\n  activeTab: 'estilo' | 'layout' | 'icone' | 'fundo' | 'animacao' | 'tooltip' = 'estilo';\n  effectsForm!: FormGroup;\n  destroy$ = new Subject<void>();\n\n  isHovering = false;\n\n  readonly tabOrder: Array<typeof this.activeTab> = ['estilo', 'layout', 'icone', 'fundo', 'animacao', 'tooltip'];\n\n  constructor(private fb: FormBuilder, private registry: EffectRegistryService) {}\n\n  ngOnInit() {\n    // Register built-in editors for the registry (extensible)\n    this.registry.register({ id: 'estilo', icon: 'text_format', label: this.t('tabs.estilo'), order: 1 });\n    this.registry.register({ id: 'layout', icon: 'view_quilt', label: this.t('tabs.layout'), order: 2 });\n    this.registry.register({ id: 'icone', icon: 'verified', label: this.t('tabs.icone'), order: 3 });\n    this.registry.register({ id: 'fundo', icon: 'gradient', label: this.t('tabs.fundo'), order: 4 });\n    this.registry.register({ id: 'animacao', icon: 'animation', label: this.t('tabs.animacao'), order: 5 });\n    this.registry.register({ id: 'tooltip', icon: 'info', label: this.t('tabs.tooltip'), order: 6 });\n\n    this.effectsForm = this.fb.group({\n      description: [''],\n      estilo: this.fb.group({\n        color: ['#ffffff'],\n        bgColor: [''],\n        bold: [false],\n        italic: [false],\n        underline: [false],\n        transform: [null],\n        opacity: [1],\n        fontScale: [0],\n      }),\n      layout: this.fb.group({\n        border: ['none'],\n        borderColor: ['#487BFF'],\n        borderWidth: [2],\n        padding: [6],\n        align: ['start'],\n        elevation: [6],\n      }),\n      iconBadge: this.fb.group({\n        icon: ['check_circle'],\n        iconColor: ['#35D07F'],\n        iconPos: ['before'],\n        badgeText: [''],\n        badgeStyle: ['soft'],\n        badgeColor: ['#2a8455'],\n      }),\n      background: this.fb.group({\n        color: ['#122033'],\n        gradient: [''],\n        alpha: [0],\n        blur: [0],\n      }),\n      animation: this.fb.group({\n        type: ['pulse'],\n        durationMs: [800],\n        trigger: ['onChange'],\n        repeat: ['once'],\n        delayMs: [0],\n      }),\n      tooltip: this.fb.group({\n        text: [''],\n        position: ['bottom'],\n        bgColor: ['#2E3142'],\n        delayMs: [300],\n      }),\n      cssClass: [''],\n      inlineStyle: [''],\n    });\n\n    this.effectsForm.valueChanges.pipe(auditTime(200), takeUntil(this.destroy$)).subscribe((formValue) => {\n      const value: RuleEffectDefinition = { scope: this.scope, ...(formValue as any) };\n      this.valueChange.emit(value);\n    });\n\n    if (this._value) this.patchForm(this._value);\n  }\n\n  patchForm(v: RuleEffectDefinition) {\n    this.effectsForm.patchValue(v as any, { emitEvent: false });\n  }\n\n  setTab(tab: typeof this.activeTab) {\n    this.activeTab = tab;\n  }\n\n  applyPreset(key: string) {\n    const preset = DEFAULT_EFFECT_PRESETS[key];\n    if (!preset) return;\n    const merged: RuleEffectDefinition = { ...preset, scope: this.scope } as RuleEffectDefinition;\n    this.patchForm(merged);\n    this.valueChange.emit(merged);\n  }\n\n  onApply() {\n    this.apply.emit();\n  }\n\n  onReset() {\n    this.effectsForm.reset();\n    this.reset.emit();\n  }\n\n  ngOnDestroy() {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  // Typed subgroup getters for strict template type checking\n  get estiloGroup(): FormGroup { return this.effectsForm.get('estilo') as FormGroup; }\n  get layoutGroup(): FormGroup { return this.effectsForm.get('layout') as FormGroup; }\n  get iconBadgeGroup(): FormGroup { return this.effectsForm.get('iconBadge') as FormGroup; }\n  get backgroundGroup(): FormGroup { return this.effectsForm.get('background') as FormGroup; }\n  get animationGroup(): FormGroup { return this.effectsForm.get('animation') as FormGroup; }\n  get tooltipGroup(): FormGroup { return this.effectsForm.get('tooltip') as FormGroup; }\n\n  // Safe access for template — avoids TS casts in templates\n  get formValue(): RuleEffectDefinition {\n    const v = (this.effectsForm?.value || {}) as any;\n    return { scope: this.scope, ...v } as RuleEffectDefinition;\n  }\n\n  // A11y: keyboard navigation for tabs\n  onTabsKeydown(event: KeyboardEvent) {\n    if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n    event.preventDefault();\n    const idx = this.tabOrder.indexOf(this.activeTab);\n    const next = event.key === 'ArrowRight' ? (idx + 1) % this.tabOrder.length : (idx - 1 + this.tabOrder.length) % this.tabOrder.length;\n    this.activeTab = this.tabOrder[next];\n  }\n\n  onHoverPreview(over: boolean) {\n    this.isHovering = over;\n  }\n\n  // Preview helpers\n  public computeTextStyle(v: RuleEffectDefinition): any {\n    const s = v?.estilo || {};\n    const size = s.fontScale ? `calc(1rem + ${s.fontScale * 0.1}rem)` : '1rem';\n    const transform = s.transform ?? 'none';\n    return {\n      color: s.color || null,\n      fontWeight: s.bold ? 600 : 400,\n      fontStyle: s.italic ? 'italic' : 'normal',\n      textDecoration: s.underline ? 'underline' : 'none',\n      opacity: s.opacity ?? 1,\n      fontSize: size,\n      textTransform:\n        transform === 'uppercase'\n          ? 'uppercase'\n          : transform === 'lowercase'\n          ? 'lowercase'\n          : transform === 'capitalize'\n          ? 'capitalize'\n          : 'none',\n    } as any;\n  }\n\n  public computeCellStyle(v: RuleEffectDefinition): any {\n    const b = v?.background || {};\n    const ly = v?.layout || {};\n    const bg = b.gradient ? b.gradient : (b.color || 'transparent');\n    const alpha = (b.alpha ?? 0) / 100;\n    const bgWithAlpha = b.color ? `color-mix(in srgb, ${b.color} ${100 - alpha * 100}%, transparent)` : bg;\n\n    const borderColor = ly.borderColor || 'transparent';\n    const borderWidth = (ly.borderWidth ?? 0) + 'px';\n    const borderStyle = ly.border === 'none' ? 'none' : `${borderWidth} solid ${borderColor}`;\n\n    const base: any = {\n      background: bgWithAlpha,\n      filter: b.blur ? `blur(${b.blur}px)` : 'none',\n      padding: (ly.padding ?? 6) + 'px',\n      boxShadow: ly.elevation ? `0 ${Math.min(ly.elevation, 24)}px ${Math.min(ly.elevation, 24)}px rgba(0,0,0,.25)` : 'none',\n      justifyContent: ly.align === 'center' ? 'center' : ly.align === 'end' ? 'flex-end' : 'flex-start',\n    };\n\n    if (ly.border === 'all') base.border = borderStyle;\n    if (ly.border === 'left') base.borderLeft = borderStyle;\n    if (ly.border === 'right') base.borderRight = borderStyle;\n    if (ly.border === 'top') base.borderTop = borderStyle;\n    if (ly.border === 'bottom') base.borderBottom = borderStyle;\n\n    return base;\n  }\n\n  public computeCellClass(v: RuleEffectDefinition): any {\n    const anim = v?.animation;\n    const triggerHover = anim?.trigger === 'onHover';\n    const triggerAppear = anim?.trigger === 'onAppear';\n    const triggerChange = anim?.trigger === 'onChange';\n    const repeatClass = anim?.repeat === 'loop' ? 'anim--loop' : 'anim--once';\n    const active =\n      (triggerHover && this.isHovering) ||\n      triggerAppear ||\n      triggerChange; // we don’t track changes here, preview is always ‘changed’\n    return {\n      [`anim--${anim?.type}`]: !!anim?.type && active,\n      [repeatClass]: !!anim?.type && active,\n      'icon--overlay': v?.iconBadge?.icon && v?.iconBadge?.iconPos === 'overlay',\n    };\n  }\n\n  public badgeBackground(v: RuleEffectDefinition): string | null {\n    const s = v?.iconBadge;\n    if (!s?.badgeText) return null;\n    if (s.badgeStyle === 'solid') return s.badgeColor || '#444';\n    if (s.badgeStyle === 'soft') return `linear-gradient(180deg, ${s.badgeColor || '#444'}, #00000055)`;\n    if (s.badgeStyle === 'outline') return 'transparent';\n    return null;\n  }\n\n  public badgeBorder(v: RuleEffectDefinition): string | null {\n    const s = v?.iconBadge;\n    return s?.badgeStyle === 'outline' ? s.badgeColor || '#777' : '#0000';\n  }\n}\n","<div class=\"rulefx\">\n  <header class=\"rulefx__header\">\n    <h3 class=\"rulefx__title\">{{ t('panel.title') }}</h3>\n    <p class=\"rulefx__subtitle\">{{ t('panel.subtitle') }}</p>\n    <div class=\"rulefx__actions\">\n      <button mat-stroked-button [matMenuTriggerFor]=\"presetsMenu\" [attr.aria-label]=\"t('presets.label')\">\n        <mat-icon>bookmarks</mat-icon>\n        {{ t('presets.label') }}\n      </button>\n      <mat-menu #presetsMenu=\"matMenu\">\n        <button mat-menu-item (click)=\"applyPreset('aprovado')\"><mat-icon>check_circle</mat-icon> Aprovado</button>\n        <button mat-menu-item (click)=\"applyPreset('alerta')\"><mat-icon>warning</mat-icon> Alerta</button>\n        <button mat-menu-item (click)=\"applyPreset('erro')\"><mat-icon>error</mat-icon> Erro</button>\n        <button mat-menu-item (click)=\"applyPreset('info')\"><mat-icon>info</mat-icon> Info</button>\n      </mat-menu>\n      <button mat-flat-button color=\"primary\" (click)=\"onApply()\" [attr.aria-label]=\"t('actions.apply')\" [matTooltip]=\"t('actions.apply')\" matTooltipPosition=\"below\">\n        <mat-icon>done</mat-icon>\n        {{ t('actions.apply') }}\n      </button>\n      <button mat-stroked-button (click)=\"onReset()\" [attr.aria-label]=\"t('actions.reset')\" [matTooltip]=\"t('actions.reset')\" matTooltipPosition=\"below\">\n        <mat-icon>restart_alt</mat-icon>\n        {{ t('actions.reset') }}\n      </button>\n    </div>\n  </header>\n\n  <!-- Ribbon com seis categorias -->\n  <nav\n    class=\"rulefx__ribbon\"\n    aria-label=\"Categorias de efeitos\"\n    role=\"tablist\"\n    (keydown)=\"onTabsKeydown($event)\"\n  >\n    <button\n      class=\"ribbon__tab\"\n      [class.is-active]=\"activeTab === 'estilo'\"\n      type=\"button\"\n      role=\"tab\"\n      [attr.aria-selected]=\"activeTab === 'estilo'\"\n      [attr.tabindex]=\"activeTab === 'estilo' ? 0 : -1\"\n      (click)=\"setTab('estilo')\"\n      [matTooltip]=\"t('tabs.estilo')\"\n      matTooltipPosition=\"below\"\n    >\n      <span class=\"material-icons\">text_format</span>\n      <span>{{ t('tabs.estilo') }}</span>\n    </button>\n    <button\n      class=\"ribbon__tab\"\n      [class.is-active]=\"activeTab === 'layout'\"\n      type=\"button\"\n      role=\"tab\"\n      [attr.aria-selected]=\"activeTab === 'layout'\"\n      [attr.tabindex]=\"activeTab === 'layout' ? 0 : -1\"\n      (click)=\"setTab('layout')\"\n      [matTooltip]=\"t('tabs.layout')\"\n      matTooltipPosition=\"below\"\n    >\n      <span class=\"material-icons\">view_quilt</span>\n      <span>{{ t('tabs.layout') }}</span>\n    </button>\n    <button\n      class=\"ribbon__tab\"\n      [class.is-active]=\"activeTab === 'icone'\"\n      type=\"button\"\n      role=\"tab\"\n      [attr.aria-selected]=\"activeTab === 'icone'\"\n      [attr.tabindex]=\"activeTab === 'icone' ? 0 : -1\"\n      (click)=\"setTab('icone')\"\n      [matTooltip]=\"t('tabs.icone')\"\n      matTooltipPosition=\"below\"\n    >\n      <span class=\"material-icons\">verified</span>\n      <span>{{ t('tabs.icone') }}</span>\n    </button>\n    <button\n      class=\"ribbon__tab\"\n      [class.is-active]=\"activeTab === 'fundo'\"\n      type=\"button\"\n      role=\"tab\"\n      [attr.aria-selected]=\"activeTab === 'fundo'\"\n      [attr.tabindex]=\"activeTab === 'fundo' ? 0 : -1\"\n      (click)=\"setTab('fundo')\"\n      [matTooltip]=\"t('tabs.fundo')\"\n      matTooltipPosition=\"below\"\n    >\n      <span class=\"material-icons\">gradient</span>\n      <span>{{ t('tabs.fundo') }}</span>\n    </button>\n    <button\n      class=\"ribbon__tab\"\n      [class.is-active]=\"activeTab === 'animacao'\"\n      type=\"button\"\n      role=\"tab\"\n      [attr.aria-selected]=\"activeTab === 'animacao'\"\n      [attr.tabindex]=\"activeTab === 'animacao' ? 0 : -1\"\n      (click)=\"setTab('animacao')\"\n      [matTooltip]=\"t('tabs.animacao')\"\n      matTooltipPosition=\"below\"\n    >\n      <span class=\"material-icons\">animation</span>\n      <span>{{ t('tabs.animacao') }}</span>\n    </button>\n    <button\n      class=\"ribbon__tab\"\n      [class.is-active]=\"activeTab === 'tooltip'\"\n      type=\"button\"\n      role=\"tab\"\n      [attr.aria-selected]=\"activeTab === 'tooltip'\"\n      [attr.tabindex]=\"activeTab === 'tooltip' ? 0 : -1\"\n      (click)=\"setTab('tooltip')\"\n      [matTooltip]=\"t('tabs.tooltip')\"\n      matTooltipPosition=\"below\"\n    >\n      <span class=\"material-icons\">info</span>\n      <span>{{ t('tabs.tooltip') }}</span>\n    </button>\n  </nav>\n\n  <!-- Quickbar contextual -->\n  <section class=\"rulefx__quickbar\" aria-live=\"polite\" *ngIf=\"effectsForm\">\n    <ng-container [ngSwitch]=\"activeTab\">\n      <ng-container *ngSwitchCase=\"'estilo'\">\n        <praxis-effects-estilo-editor [group]=\"estiloGroup\"></praxis-effects-estilo-editor>\n      </ng-container>\n      <ng-container *ngSwitchCase=\"'layout'\">\n        <praxis-effects-layout-editor [group]=\"layoutGroup\"></praxis-effects-layout-editor>\n      </ng-container>\n      <ng-container *ngSwitchCase=\"'icone'\">\n        <praxis-effects-icone-badge-editor [group]=\"iconBadgeGroup\"></praxis-effects-icone-badge-editor>\n      </ng-container>\n      <ng-container *ngSwitchCase=\"'fundo'\">\n        <praxis-effects-fundo-editor [group]=\"backgroundGroup\"></praxis-effects-fundo-editor>\n      </ng-container>\n      <ng-container *ngSwitchCase=\"'animacao'\">\n        <praxis-effects-animacao-editor [group]=\"animationGroup\"></praxis-effects-animacao-editor>\n      </ng-container>\n      <ng-container *ngSwitchCase=\"'tooltip'\">\n        <praxis-effects-tooltip-editor [group]=\"tooltipGroup\"></praxis-effects-tooltip-editor>\n      </ng-container>\n    </ng-container>\n  </section>\n\n  <!-- Pré-visualização e seção avançada -->\n  <section class=\"rulefx__body\">\n    <div class=\"rulefx__preview\">\n      <div class=\"preview__title\">{{ t('preview.title') }}</div>\n\n      <div\n        class=\"preview__cell\"\n        [ngStyle]=\"computeCellStyle(formValue)\"\n        [ngClass]=\"computeCellClass(formValue)\"\n        (mouseenter)=\"onHoverPreview(true)\"\n        (mouseleave)=\"onHoverPreview(false)\"\n      >\n        <span\n          *ngIf=\"formValue.iconBadge?.icon && formValue.iconBadge?.iconPos === 'before'\"\n          class=\"material-icons preview__icon\"\n          [style.color]=\"formValue.iconBadge?.iconColor\"\n        >\n          {{ formValue.iconBadge?.icon }}\n        </span>\n\n        <span class=\"preview__text\" [ngStyle]=\"computeTextStyle(formValue)\">\n          Joana Silva — Ativo desde 2019\n        </span>\n\n        <span\n          *ngIf=\"formValue.iconBadge?.badgeText\"\n          class=\"preview__badge\"\n          [ngStyle]=\"{ 'background': badgeBackground(formValue), 'border-color': badgeBorder(formValue) }\"\n        >\n          {{ formValue.iconBadge?.badgeText }}\n        </span>\n\n        <span\n          *ngIf=\"formValue.iconBadge?.icon && formValue.iconBadge?.iconPos === 'after'\"\n          class=\"material-icons preview__icon\"\n          [style.color]=\"formValue.iconBadge?.iconColor\"\n        >\n          {{ formValue.iconBadge?.icon }}\n        </span>\n      </div>\n\n      <p class=\"preview__hint\">{{ t('preview.hint') }}</p>\n    </div>\n\n    <div class=\"rulefx__advanced\">\n      <details class=\"advanced__section\">\n        <summary>{{ t('advanced.title') }}</summary>\n        <div class=\"advanced__grid\" [formGroup]=\"effectsForm\">\n          <label class=\"textctl\">\n            <span>{{ t('advanced.description') }}</span>\n            <input type=\"text\" formControlName=\"description\" placeholder=\"ex.: Destacar preços altos\" />\n          </label>\n          <label class=\"textctl\">\n            <span>Classe CSS</span>\n            <input type=\"text\" formControlName=\"cssClass\" placeholder=\"ex.: praxis-cell--alert\" />\n          </label>\n          <label class=\"textctl\">\n            <span>Estilo inline</span>\n            <input type=\"text\" formControlName=\"inlineStyle\" placeholder=\"ex.: text-shadow: 0 0 8px rgba(0,255,163,.5)\" />\n          </label>\n        </div>\n      </details>\n    </div>\n  </section>\n</div>\n","import { RuleEffectDefinition } from './models/rule-effects.model';\n\nexport function toCellClassAndStyle(effect: RuleEffectDefinition): {\n  classList: string[];\n  style: Record<string, string>;\n} {\n  const classList: string[] = [];\n  const style: Record<string, string> = {};\n\n  // Advanced class and inline style\n  if (effect.cssClass) classList.push(effect.cssClass);\n  if (effect.inlineStyle) style['cssText'] = effect.inlineStyle;\n\n  // Background\n  const b = effect.background || {};\n  const ly = effect.layout || {};\n  const bg = b.gradient ? b.gradient : (b.color || 'transparent');\n  const alpha = (b.alpha ?? 0) / 100;\n  const bgWithAlpha = b.color ? `color-mix(in srgb, ${b.color} ${100 - alpha * 100}%, transparent)` : bg;\n  style['background'] = bgWithAlpha;\n  if (b.blur) style['filter'] = `blur(${b.blur}px)`;\n\n  // Layout\n  if (ly.padding != null) style['padding'] = `${ly.padding}px`;\n  if (ly.elevation) style['box-shadow'] = `0 ${Math.min(ly.elevation, 24)}px ${Math.min(ly.elevation, 24)}px rgba(0,0,0,.25)`;\n  if (ly.align) style['justify-content'] = ly.align === 'center' ? 'center' : ly.align === 'end' ? 'flex-end' : 'flex-start';\n  const borderColor = ly.borderColor || 'transparent';\n  const borderWidth = (ly.borderWidth ?? 0) + 'px';\n  const borderStyle = ly.border === 'none' ? 'none' : `${borderWidth} solid ${borderColor}`;\n  switch (ly.border) {\n    case 'all': style['border'] = borderStyle; break;\n    case 'left': style['border-left'] = borderStyle; break;\n    case 'right': style['border-right'] = borderStyle; break;\n    case 'top': style['border-top'] = borderStyle; break;\n    case 'bottom': style['border-bottom'] = borderStyle; break;\n  }\n\n  // Text (estilo)\n  const s = effect.estilo || {};\n  if (s.color) style['color'] = s.color;\n  if (s.bgColor) style['background-color'] = s.bgColor;\n  if (s.bold) style['font-weight'] = '600';\n  if (s.italic) style['font-style'] = 'italic';\n  if (s.underline) style['text-decoration'] = 'underline';\n  if (s.opacity != null) style['opacity'] = String(s.opacity);\n  if (s.transform) style['text-transform'] = s.transform;\n  if (s.fontScale && s.fontScale !== 0) style['font-size'] = `calc(1rem + ${s.fontScale * 0.1}rem)`;\n\n  // Icon overlay class\n  if (effect.iconBadge?.iconPos === 'overlay') classList.push('icon--overlay');\n\n  // Animation\n  const anim = effect.animation;\n  if (anim?.type) {\n    classList.push(`anim--${anim.type}`);\n    classList.push(anim.repeat === 'loop' ? 'anim--loop' : 'anim--once');\n    if (anim.durationMs) style['animation-duration'] = `${anim.durationMs}ms`;\n    if (anim.delayMs) style['animation-delay'] = `${anim.delayMs}ms`;\n  }\n\n  return { classList, style };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i2.EffectRegistryService","i3","i6"],"mappings":"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"}