import { EventEmitter, OnInit, ElementRef, ChangeDetectorRef, NgZone } from '@angular/core'; import { NormalStepConfig, TestCaseEventType, EventTypeConfig, StepParameter, TestCaseStepConfig } from '../test-case-step.models'; import { CustomEditStepService } from '../custom-edit-step/custom-edit-step.service'; import { ElementPopupService } from '../element-popup/element-popup.service'; import { TestDataModalService } from '../test-data-modal/test-data-modal.service'; import { DomSanitizer } from '@angular/platform-browser'; import { ViewDetailsPayload } from '../step-details-modal/step-details-modal-data'; import * as i0 from "@angular/core"; export declare class TestCaseNormalStepComponent implements OnInit { private readonly customEditStep; private readonly elementPopup; private readonly testDataModal; private readonly cdr; private readonly ngZone; private readonly sanitizer; dropdownContainer?: ElementRef; descriptionTrigger?: ElementRef; testDataTrigger?: ElementRef; editTrigger?: ElementRef; elementTrigger?: ElementRef; clickElementTrigger?: ElementRef; viewDetailsTrigger?: ElementRef; config: NormalStepConfig; stepNumber: number | string; /** Array index from parent renderer - use for editInDepth (stepNumber "10.3" parses wrong) */ index?: number; action: string; eventType: TestCaseEventType; parameters: StepParameter[]; selected: boolean; disabled: boolean; isNested: boolean; isInsideLoop: boolean; isInsideStepGroup: boolean; isReorder: boolean; /** True when any ancestor step is skipped; used to cascade skipped styling to nested rows. */ isParentSkipped: boolean; editable: boolean; stepIndex?: number; isDuplicating: boolean; /** Visual indentation level for nested structures (passed down from renderer). */ nestingLevel: number; eventTypeChange: EventEmitter; parameterChange: EventEmitter<{ parameter: StepParameter; value: string; }>; edit: EventEmitter; editInDepth: EventEmitter<{ step: TestCaseStepConfig; index: number; }>; link: EventEmitter; duplicate: EventEmitter; delete: EventEmitter; moreOptions: EventEmitter; viewDetails: EventEmitter; selectionChange: EventEmitter; clickAction: EventEmitter; stepUpdate: EventEmitter; eventTypeDropdownOpen: boolean; /** Stored test data modal state for reopening with same selections. */ private testDataModalState; constructor(customEditStep: CustomEditStepService, elementPopup: ElementPopupService, testDataModal: TestDataModalService, cdr: ChangeDetectorRef, ngZone: NgZone, sanitizer: DomSanitizer); /** Base left padding for step rows (matches px-4 = 16px) plus 24px per nesting level (matches pl-10 = 40px at level 1). */ getRowPaddingLeftPx(): number; /** Unique colors per event type; badge uses consistent size (w-8 h-8 rounded-lg). */ eventTypeConfigs: EventTypeConfig[]; ngOnInit(): void; getCurrentEventTypeConfig(): EventTypeConfig; /** * Convert escaped newline sequences to real newlines for AI Agent text rendering. * Handles both JSON-escaped "\\n" and existing CR/LF variants. */ private normalizeAiAgentNewlinesForDisplay; getActionDescription(): string; getActionSuffix(): string; /** Current description for custom event type (first parameter value). */ getCustomDescription(): string; /** * Get the URL parameter for navigate steps (old UI style - show only URL) * Returns the first parameter with name 'url' or 'URL', or the first parameter if none found */ getNavigateUrlParameter(): StepParameter | null; /** Current URL value for navigate step (for Test Data modal). */ getNavigateUrlValue(): string; /** Opens Test Data modal below the given trigger; used when eventType === 'navigate'. */ openTestDataModal(origin: ElementRef | HTMLElement | MouseEvent): void; /** Opens Step Description modal below the given trigger; used when eventType === 'custom'. */ openStepDescriptionModal(origin: ElementRef | HTMLElement | MouseEvent): void; openElementPopup(origin: ElementRef | HTMLElement | MouseEvent): void; onEventTypeSelect(eventType: TestCaseEventType): void; onParameterChange(parameter: StepParameter, value: string): void; onEdit(): void; onLink(): void; onDuplicate(): void; onDelete(): void; onSkipToggle(): void; onMoreOptions(): void; onViewDetails(event?: MouseEvent): void; private getStepTitle; onSelectionChange(checked: boolean): void; toggleEventTypeDropdown(): void; closeEventTypeDropdown(): void; onDocumentClick(event: MouseEvent): void; clickOnAction(event: MouseEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }