src/lib/form/extractors/strategies/parent-label.ts

Total Symbols
1
Lines of Code
17
Avg Complexity
2.0
Avg Coverage
100.0%

Symbols by Kind

method 1

All Symbols

Name Kind Visibility Status Lines Signature
find method - 11-15 find(element: HTMLElement): : LabelResult | null

Full Source

/**
 * Label Strategy — parent-label
 *
 * The element is wrapped inside a <label> tag.
 */

import type { LabelResult, LabelStrategy } from "../label-strategy.interface";

export const parentLabelStrategy: LabelStrategy = {
  name: "parent-label",
  find(element: HTMLElement): LabelResult | null {
    const parentLabel = element.closest("label");
    const text = parentLabel?.textContent?.trim();
    return text ? { text, strategy: "parent-label" } : null;
  },
};