UNPKG

@praxisui/table-rule-builder

Version:

Praxis Table Rule Builder: UI components and engine utils for table rules

164 lines (151 loc) 6.72 kB
import * as i0 from '@angular/core'; import { OnInit, OnDestroy, EventEmitter } from '@angular/core'; import { FormGroup, FormBuilder } from '@angular/forms'; import { Subject } from 'rxjs'; type RuleScope = 'cell' | 'row' | 'column' | 'table'; interface RuleEffectDefinition { id?: string; scope: RuleScope; description?: string; estilo?: { color?: string; bgColor?: string; bold?: boolean; italic?: boolean; underline?: boolean; transform?: 'uppercase' | 'lowercase' | 'capitalize' | null; opacity?: number; fontScale?: number; }; layout?: { border?: 'none' | 'left' | 'right' | 'top' | 'bottom' | 'all'; borderColor?: string; borderWidth?: number; padding?: number; align?: 'start' | 'center' | 'end'; elevation?: number; }; iconBadge?: { icon?: string; iconColor?: string; iconPos?: 'before' | 'after' | 'overlay'; badgeText?: string; badgeStyle?: 'solid' | 'soft' | 'outline'; badgeColor?: string; }; background?: { color?: string; gradient?: string; alpha?: number; blur?: number; }; animation?: { type?: 'pulse' | 'blink' | 'grow' | 'fade' | 'slide-in'; durationMs?: number; trigger?: 'onChange' | 'onAppear' | 'onHover'; repeat?: 'once' | 'loop'; delayMs?: number; }; tooltip?: { text?: string; position?: 'top' | 'right' | 'bottom' | 'left'; bgColor?: string; delayMs?: number; }; cssClass?: string; inlineStyle?: string; } interface EffectEditorPlugin { id: 'estilo' | 'layout' | 'icone' | 'fundo' | 'animacao' | 'tooltip'; label: string; icon: string; order: number; loadComponent?: () => Promise<any>; } declare class EffectRegistryService { private plugins; register(plugin: EffectEditorPlugin): void; list(): EffectEditorPlugin[]; static ɵfac: i0.ɵɵFactoryDeclaration<EffectRegistryService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<EffectRegistryService>; } declare class RuleEffectsPanelComponent implements OnInit, OnDestroy { private fb; private registry; labels: Record<string, string>; t(key: string): string; scope: RuleScope; private _value?; set value(v: RuleEffectDefinition | undefined); get value(): RuleEffectDefinition | undefined; valueChange: EventEmitter<RuleEffectDefinition>; apply: EventEmitter<void>; reset: EventEmitter<void>; activeTab: 'estilo' | 'layout' | 'icone' | 'fundo' | 'animacao' | 'tooltip'; effectsForm: FormGroup; destroy$: Subject<void>; isHovering: boolean; readonly tabOrder: Array<typeof this.activeTab>; constructor(fb: FormBuilder, registry: EffectRegistryService); ngOnInit(): void; patchForm(v: RuleEffectDefinition): void; setTab(tab: typeof this.activeTab): void; applyPreset(key: string): void; onApply(): void; onReset(): void; ngOnDestroy(): void; get estiloGroup(): FormGroup; get layoutGroup(): FormGroup; get iconBadgeGroup(): FormGroup; get backgroundGroup(): FormGroup; get animationGroup(): FormGroup; get tooltipGroup(): FormGroup; get formValue(): RuleEffectDefinition; onTabsKeydown(event: KeyboardEvent): void; onHoverPreview(over: boolean): void; computeTextStyle(v: RuleEffectDefinition): any; computeCellStyle(v: RuleEffectDefinition): any; computeCellClass(v: RuleEffectDefinition): any; badgeBackground(v: RuleEffectDefinition): string | null; badgeBorder(v: RuleEffectDefinition): string | null; static ɵfac: i0.ɵɵFactoryDeclaration<RuleEffectsPanelComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<RuleEffectsPanelComponent, "praxis-rule-effects-panel", never, { "scope": { "alias": "scope"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; "apply": "apply"; "reset": "reset"; }, never, never, true, never>; } declare const DEFAULT_EFFECT_PRESETS: Record<string, RuleEffectDefinition>; declare function toCellClassAndStyle(effect: RuleEffectDefinition): { classList: string[]; style: Record<string, string>; }; declare class EstiloEditorComponent { group: FormGroup; formatOpacity(v: number | null): string; static ɵfac: i0.ɵɵFactoryDeclaration<EstiloEditorComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<EstiloEditorComponent, "praxis-effects-estilo-editor", never, { "group": { "alias": "group"; "required": false; }; }, {}, never, never, true, never>; } declare class LayoutEditorComponent { group: FormGroup; static ɵfac: i0.ɵɵFactoryDeclaration<LayoutEditorComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<LayoutEditorComponent, "praxis-effects-layout-editor", never, { "group": { "alias": "group"; "required": false; }; }, {}, never, never, true, never>; } declare class IconeBadgeEditorComponent { group: FormGroup; static ɵfac: i0.ɵɵFactoryDeclaration<IconeBadgeEditorComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<IconeBadgeEditorComponent, "praxis-effects-icone-badge-editor", never, { "group": { "alias": "group"; "required": false; }; }, {}, never, never, true, never>; } declare class FundoEditorComponent { group: FormGroup; static ɵfac: i0.ɵɵFactoryDeclaration<FundoEditorComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<FundoEditorComponent, "praxis-effects-fundo-editor", never, { "group": { "alias": "group"; "required": false; }; }, {}, never, never, true, never>; } declare class AnimacaoEditorComponent { group: FormGroup; static ɵfac: i0.ɵɵFactoryDeclaration<AnimacaoEditorComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<AnimacaoEditorComponent, "praxis-effects-animacao-editor", never, { "group": { "alias": "group"; "required": false; }; }, {}, never, never, true, never>; } declare class TooltipEditorComponent { group: FormGroup; static ɵfac: i0.ɵɵFactoryDeclaration<TooltipEditorComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<TooltipEditorComponent, "praxis-effects-tooltip-editor", never, { "group": { "alias": "group"; "required": false; }; }, {}, never, never, true, never>; } export { AnimacaoEditorComponent, DEFAULT_EFFECT_PRESETS, EffectRegistryService, EstiloEditorComponent, FundoEditorComponent, IconeBadgeEditorComponent, LayoutEditorComponent, RuleEffectsPanelComponent, TooltipEditorComponent, toCellClassAndStyle }; export type { EffectEditorPlugin, RuleEffectDefinition, RuleScope };