sicua
Version:
A tool for analyzing project structure and dependencies
105 lines (104 loc) • 3.25 kB
TypeScript
/**
* Enhanced text content extractor for JSX elements
* Handles complex patterns like conditional rendering, variables, and nested elements
*/
import { JSXElementInfo } from "../types/accessibilityTypes";
export declare class TextContentExtractor {
/**
* Extracts accessible text content from JSX elements
* Handles conditional rendering, variables, nested text, and ARIA labeling
*/
static extractAccessibleText(element: JSXElementInfo): string | null;
/**
* Extracts text from ARIA labeling attributes
*/
private static extractAriaText;
/**
* Extracts text from title attribute
*/
private static extractTitleText;
/**
* Extracts text content from element's children and text content
*/
private static extractContentText;
/**
* Extracts text from JSX prop values handling different types
*/
private static extractTextFromProp;
/**
* Recursively extracts text from child elements
*/
private static extractTextFromChildren;
/**
* Extracts text from JSX expressions in props or children
*/
private static extractTextFromExpressions;
/**
* Extracts text from JSX expression strings
* Handles conditional rendering, variables, and template literals
*/
private static extractTextFromExpression;
/**
* Checks if a string is a string literal
*/
private static isStringLiteral;
/**
* Extracts text from string literals
*/
private static extractStringLiteral;
/**
* Extracts text from conditional expressions (ternary)
* Pattern: condition ? "text1" : "text2"
*/
private static extractTextFromConditional;
/**
* Extracts text from logical expressions
* Pattern: condition && "text" or condition || "text"
*/
private static extractTextFromLogical;
/**
* Extracts text from template literals
*/
private static extractTextFromTemplate;
/**
* Extracts text from variable references
* Handles common variable names that likely contain text
*/
private static extractTextFromVariable;
/**
* Checks if an element is non-text (decorative, hidden, etc.)
*/
private static isNonTextElement;
/**
* Checks if an element has any form of accessible text
*/
static hasAccessibleText(element: JSXElementInfo): boolean;
/**
* Checks if an element likely has text but we can't extract it statically
*/
static likelyHasText(element: JSXElementInfo): boolean;
/**
* Check for JSX expressions that likely contain text
*/
private static hasJSXExpressionText;
/**
* Analyze JSX context string for text expressions
*/
private static analyzeJSXContext;
/**
* Analyze children for JSX expressions that contain text
*/
private static analyzeChildrenForExpressions;
/**
* Check if element has props that indicate text content
*/
private static hasTextIndicatingProps;
/**
* Enhanced text expression detection
*/
private static isTextExpression;
/**
* Check if element is decorative (enhanced version)
*/
private static isDecorativeElement;
}