import { LitElement } from 'lit'; import { type StateController } from '../controllers/state.js'; import type { ApexCellContext, ColumnConfiguration, PropertyType } from '../internal/types.js'; import type ApexGridRow from './row.js'; /** * Component representing a DOM cell of the Apex grid. * * @csspart cell - The cell host element. * @csspart editor - The editor wrapper rendered while the cell is in edit mode. */ export default class ApexGridCell extends LitElement { #private; static get tagName(): "apex-grid-cell"; static styles: import("lit").CSSResult; static register(): void; /** * The value which will be rendered by the component. */ value: PropertyType; /** * A reference to the column configuration object. */ column: ColumnConfiguration; /** * Indicates whether this is the active cell in the grid. * */ active: boolean; /** * Whether the cell is currently in edit mode. Set by the parent row from the * editing controller's state so cells re-render on edit state changes. */ editing: boolean; state: StateController; /** * The parent row component holding this cell. */ row: ApexGridRow; protected editorElement: HTMLElement | null; protected get context(): ApexCellContext; protected get editingController(): import("../controllers/editing.js").EditingController; protected get isEditing(): boolean; protected get isEditable(): boolean; /** * 1-based column index used to populate `aria-colindex`. Accounts for the * auto-rendered selection + expansion columns ahead of the data columns. */ colindex: number; /** * Reactive token forwarded from {@link StateController.decorationVersion}. * Changing it re-runs {@link willUpdate} so module-driven cell decoration is * re-evaluated when it changes (e.g. while dragging a selection range). Stays * `0` for the community grid, so cells are never re-decorated there. */ decorationVersion: number; connectedCallback(): void; disconnectedCallback(): void; protected willUpdate(): void; protected updated(): void; protected renderDefaultEditor(): import("lit-html").TemplateResult<1>; protected renderEditor(): unknown; /** * Renders the tree affordance — depth-based indent + a chevron toggle (or * leaf spacer) — that prefixes the group cell when {@link ApexGrid.tree} * is enabled. Returns `nothing` for every other cell. */ protected renderTreeAffordance(): import("lit-html").TemplateResult<1> | null; /** * Resolves the value to display for the cell. Synthesized tree parents * (those that appear only as a path segment with no backing data) render * their last path segment in the group column and nothing elsewhere. */ protected resolveDisplayValue(): unknown; protected renderCellBody(): unknown; protected render(): unknown; } declare global { interface HTMLElementTagNameMap { [ApexGridCell.tagName]: ApexGridCell; } }