@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
46 lines (45 loc) • 1.61 kB
TypeScript
import { Label } from '../components/calcite-label/customElement.js';
export interface LabelableComponent {
/** When true, disabled prevents interaction. */
disabled: boolean;
/** The host element. */
readonly el: HTMLElement;
/** Text label. */
label?: string;
/** The label this component is associated with. */
labelEl: HTMLCalciteLabelElement;
/** Hook for components to provide custom label click behavior. */
onLabelClick: (event: CustomEvent<any>) => void;
}
/**
* Exported for testing purposes only
*
* @private
*/
export declare const labelClickEvent = "calciteInternalLabelClick";
export declare const labelConnectedEvent = "calciteInternalLabelConnected";
export declare const labelDisconnectedEvent = "calciteInternalLabelDisconnected";
/**
* Helper to set up label interactions on connectedCallback.
*
* @param component
*/
export declare function connectLabel(component: LabelableComponent): void;
/**
* Helper to tear down label interactions on disconnectedCallback on labelable components.
*
* @param component
*/
export declare function disconnectLabel(component: LabelableComponent): void;
/**
* Helper to get the label text from a component.
*
* @param component
*/
export declare function getLabelText(component: LabelableComponent): string;
/**
* Helper to associate an explicit label (i.e., using `for`) with a labelable component that does not have an associated label.
*
* @param label - the label element
*/
export declare function associateExplicitLabelToUnlabeledComponent(label: HTMLCalciteLabelElement): Promise<void>;