import { EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core'; import { MJQueryEntityExtended, MJQueryParameterEntity } from '@memberjunction/core-entities'; import { QueryParameterValues } from '../query-data-grid/models/query-grid-types'; import * as i0 from "@angular/core"; /** * A single parameter field in the form */ interface ParameterField { info: MJQueryParameterEntity; value: string | number | boolean | Date | string[] | null; error: string | null; touched: boolean; } /** * A slide-in form for entering query parameters before execution. * Features: * - Dynamic form generation from MJQueryParameterEntity metadata * - Type-appropriate input controls (text, number, date, checkbox, multi-select) * - Validation with helpful error messages * - Sample values as placeholders * - Description tooltips * * @example * ```html * * * ``` */ export declare class QueryParameterFormComponent implements OnInit, OnChanges, OnDestroy { private cdr; /** * The query metadata containing parameter definitions */ QueryInfo: MJQueryEntityExtended | null; /** * Initial values to populate the form (e.g., from saved state) */ InitialValues: QueryParameterValues; /** * Whether the panel is open/visible */ IsOpen: boolean; /** * Panel width in pixels */ PanelWidth: number; /** * Whether to show the overlay backdrop */ ShowOverlay: boolean; /** * Fired when user submits the form with valid parameters */ ParametersSubmit: EventEmitter; /** * Fired when panel is closed */ Close: EventEmitter; Fields: ParameterField[]; HasRequiredParams: boolean; AllRequiredFilled: boolean; constructor(cdr: ChangeDetectorRef); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; private buildForm; private getInitialValue; private parseDefaultValue; OnValueChange(field: ParameterField, value: unknown): void; OnDateChange(field: ParameterField, value: Date | null): void; OnCheckboxChange(field: ParameterField, event: Event): void; private validateField; private validateAllFields; private updateAllRequiredFilled; get HasErrors(): boolean; get CanSubmit(): boolean; Submit(): void; Cancel(): void; Reset(): void; GetInputType(param: MJQueryParameterEntity): string; GetPlaceholder(param: MJQueryParameterEntity): string; TrackByField(index: number, field: ParameterField): string; GetStringValue(value: ParameterField['value']): string; GetNumberValue(value: ParameterField['value']): number | null; GetDateValue(value: ParameterField['value']): string; GetBooleanValue(value: ParameterField['value']): boolean; GetArrayDisplayValue(value: ParameterField['value']): string; OnInputChange(field: ParameterField, event: Event): void; OnNumberInputChange(field: ParameterField, event: Event): void; OnDateInputChange(field: ParameterField, event: Event): void; OnArrayInputChange(field: ParameterField, event: Event): void; /** * Parses array parameter input, supporting both JSON array syntax * (`["A","B","C"]`) and plain comma-separated values (`A, B, C`). */ private parseArrayInput; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {}; //# sourceMappingURL=query-parameter-form.component.d.ts.map