@sheetwrite/svelteinterface
Advanced framework adapter props for workbook data or datasource ownership.
- Package
@sheetwrite/svelte- Source
packages/svelte/src/props.ts#L12
Members 29
workbook Live workbook schema adopted by the Grid.
workbook: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["workbook"];data Eager values for the active sheet.
data?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["data"];datasource Lazy visible-row provider.
datasource?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["datasource"];datasourceStorage Datasource storage policy.
datasourceStorage?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["datasourceStorage"];renderer Canvas or worker paint backend.
renderer?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["renderer"];workerUrl Browser-fetchable worker module URL.
workerUrl?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["workerUrl"];theme Live resolved-theme overrides.
theme?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["theme"];readOnly Disables mutations, not navigation.
readOnly?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["readOnly"];protectionResolver Client protected-range check.
protectionResolver?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["protectionResolver"];mutationPolicy Atomic or partial denial policy.
mutationPolicy?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["mutationPolicy"];transactionResourceLimits Overrides inclusive operation-count and encoded-byte ceilings for every atomic mutation.
transactionResourceLimits?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["transactionResourceLimits"];renderers Named custom cell renderers.
renderers?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["renderers"];overscan Extra rows painted around the viewport.
overscan?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["overscan"];minColumns Minimum column count with padding.
minColumns?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["minColumns"];config Built-in UI control configuration.
config?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["config"];height Host height as pixels or a CSS length.
height?: number | string;fill Fills the parent's available size.
fill?: true;fallback Content shown until initialization succeeds.
fallback?: Snippet;grid Bindable live Grid, cleared on reset or unmount.
grid?: Gridinterface Grid {
readonly store: Store;
readonly actions: GridActions;
setActiveSheet(id: SheetId): void;
scrollToCell(addr: CellAddress): void;
getCellAtPoint(
clientX: number,
clientY: number,
): CellAddress | null;
getActiveSheet(): SheetId;
getCellInput(row: number, col: number): CellInputSnapshot | null;
getSelection(): Selection | null;
setSelection(sel: Selection | null): void;
setTheme(theme: Partial<Theme>): void;
replaceTheme(theme: Partial<Theme> | undefined): void;
// … 106 more lines — see the API reference
}interface Grid {
readonly store: Store;
readonly actions: GridActions;
setActiveSheet(id: SheetId): void;
scrollToCell(addr: CellAddress): void;
getCellAtPoint(
clientX: number,
clientY: number,
): CellAddress | null;
getActiveSheet(): SheetId;
getCellInput(row: number, col: number): CellInputSnapshot | null;
getSelection(): Selection | null;
setSelection(sel: Selection | null): void;
setTheme(theme: Partial<Theme>): void;
replaceTheme(theme: Partial<Theme> | undefined): void;
// … 106 more lines — see the API reference
}interface Grid {
readonly store: Store;
readonly actions: GridActions;
setActiveSheet(
id: SheetId,
): void;
scrollToCell(
addr: CellAddress,
): void;
getCellAtPoint(
clientX: number,
clientY: number,
): CellAddress | null;
getActiveSheet(): SheetId;
getCellInput(
row: number,
col: number,
): CellInputSnapshot | null;
getSelection(): Selection | null;
// … 229 more lines — see the API reference
}Imperative grid handle for document commands, events, rendering, and teardown.API reference →;onGridChange Receives every committed Grid change, including its applied transaction.
onGridChange?: (event: ChangeEventinterface ChangeEvent {
transaction: Transaction;
changes: CellChange[];
commitReason: CommitReason;
source: OperationSource;
epoch?: number;
}interface ChangeEvent {
transaction: Transaction;
changes: CellChange[];
commitReason: CommitReason;
source: OperationSource;
epoch?: number;
}interface ChangeEvent {
transaction: Transaction;
changes: CellChange[];
commitReason: CommitReason;
source: OperationSource;
epoch?: number;
}Payload of the change event; flows OUT for API submission/reconcile.API reference →) => void;onSelectionChange Receives the current selection, or null after it is cleared.
onSelectionChange?: (selection: Selectiontype Selection =
| { kind: "cell"; addr: CellAddress }
| { kind: "range"; range: Range }
| { kind: "row"; sheet: SheetId; row: number }
| { kind: "column"; sheet: SheetId; col: number }
| { kind: "multi"; ranges: Range[] };type Selection =
| { kind: "cell"; addr: CellAddress }
| { kind: "range"; range: Range }
| { kind: "row"; sheet: SheetId; row: number }
| { kind: "column"; sheet: SheetId; col: number }
| { kind: "multi"; ranges: Range[] };type Selection =
| {
kind: "cell";
addr: CellAddress;
}
| {
kind: "range";
range: Range;
}
| {
kind: "row";
sheet: SheetId;
row: number;
}
| {
kind: "column";
sheet: SheetId;
col: number;
}
// … 4 more lines — see the API reference
}Current cell, range, row, column, or multi-range selection.API reference → | null) => void;onViewportChange Receives visible row bounds and vertical scroll offset after scrolling.
onViewportChange?: (event: GridEventsinterface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: {
selection: Selection | null;
};
scroll: {
scrollTop: number;
firstRow: number;
lastRow: number;
};
"edit-begin": {
addr: CellAddress;
};
"edit-commit": {
addr: CellAddress;
value: CellValue;
};
search: SearchResult;
"mutation-rejected": {
// … 21 more lines — see the API reference
}Payload map for events emitted by a Grid.API reference →["scroll"]) => void;onEditBegin Fires when cell editing begins.
onEditBegin?: (event: GridEventsinterface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: {
selection: Selection | null;
};
scroll: {
scrollTop: number;
firstRow: number;
lastRow: number;
};
"edit-begin": {
addr: CellAddress;
};
"edit-commit": {
addr: CellAddress;
value: CellValue;
};
search: SearchResult;
"mutation-rejected": {
// … 21 more lines — see the API reference
}Payload map for events emitted by a Grid.API reference →["edit-begin"]) => void;onEditCommit Fires after an edit commits its parsed cell value.
onEditCommit?: (event: GridEventsinterface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: {
selection: Selection | null;
};
scroll: {
scrollTop: number;
firstRow: number;
lastRow: number;
};
"edit-begin": {
addr: CellAddress;
};
"edit-commit": {
addr: CellAddress;
value: CellValue;
};
search: SearchResult;
"mutation-rejected": {
// … 21 more lines — see the API reference
}Payload map for events emitted by a Grid.API reference →["edit-commit"]) => void;onSearch Receives refreshed search matches and active-match index.
onSearch?: (result: GridEventsinterface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: {
selection: Selection | null;
};
scroll: {
scrollTop: number;
firstRow: number;
lastRow: number;
};
"edit-begin": {
addr: CellAddress;
};
"edit-commit": {
addr: CellAddress;
value: CellValue;
};
search: SearchResult;
"mutation-rejected": {
// … 21 more lines — see the API reference
}Payload map for events emitted by a Grid.API reference →["search"]) => void;onActiveSheetChange Fires after the visible sheet changes.
onActiveSheetChange?: (event: GridEventsinterface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: {
selection: Selection | null;
};
scroll: {
scrollTop: number;
firstRow: number;
lastRow: number;
};
"edit-begin": {
addr: CellAddress;
};
"edit-commit": {
addr: CellAddress;
value: CellValue;
};
search: SearchResult;
"mutation-rejected": {
// … 21 more lines — see the API reference
}Payload map for events emitted by a Grid.API reference →["active-sheet"]) => void;onReady Fires after the adapter publishes a ready Grid generation.
onReady?: (event: GridReadyEventinterface GridReadyEvent {
grid: Grid;
generation: number;
reason: GridReadyReason;
}interface GridReadyEvent {
grid: Grid;
generation: number;
reason: GridReadyReason;
}interface GridReadyEvent {
grid: Grid;
generation: number;
reason: GridReadyReason;
}Grid handle, generation, and reason published after adapter initialization.API reference →) => void;onInitializationError Receives a WASM initialization failure while the adapter remains mounted.
onInitializationError?: (error: unknown) => void;wasmSource Explicit source passed to process-wide WASM initialization; concurrent initialization is first-source-wins.
wasmSource?: BufferSource | URL | string | Request | WebAssembly.Module;Declaration
View full TypeScript declaration
export interface SheetwriteGridProps extends Omit< HTMLAttributes<HTMLDivElement>, keyof GridAdapterEventHandlersinterface GridAdapterEventHandlers {
onGridChange?: (event: ChangeEvent) => void;
onSelectionChange?: (selection: Selection | null) => void;
onViewportChange?: (event: GridEvents["scroll"]) => void;
onEditBegin?: (event: GridEvents["edit-begin"]) => void;
onEditCommit?: (event: GridEvents["edit-commit"]) => void;
onSearch?: (result: GridEvents["search"]) => void;
onActiveSheetChange?: (event: GridEvents["active-sheet"]) => void;
onReady?: (event: GridReadyEvent) => void;
onInitializationError?: (error: unknown) => void;
}interface GridAdapterEventHandlers {
onGridChange?: (event: ChangeEvent) => void;
onSelectionChange?: (selection: Selection | null) => void;
onViewportChange?: (event: GridEvents["scroll"]) => void;
onEditBegin?: (event: GridEvents["edit-begin"]) => void;
onEditCommit?: (event: GridEvents["edit-commit"]) => void;
onSearch?: (result: GridEvents["search"]) => void;
onActiveSheetChange?: (event: GridEvents["active-sheet"]) => void;
onReady?: (event: GridReadyEvent) => void;
onInitializationError?: (error: unknown) => void;
}interface GridAdapterEventHandlers {
onGridChange?: (
event: ChangeEvent,
) => void;
onSelectionChange?: (
selection: Selection | null,
) => void;
onViewportChange?: (
event: GridEvents["scroll"],
) => void;
onEditBegin?: (
event: GridEvents["edit-begin"],
) => void;
onEditCommit?: (
event: GridEvents["edit-commit"],
) => void;
onSearch?: (
result: GridEvents["search"],
) => void;
// … 10 more lines — see the API reference
}Framework-neutral readiness, change, and error callbacks shared by adapters.API reference → | "children"> { workbook: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["workbook"]; data?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["data"]; datasource?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["datasource"]; datasourceStorage?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["datasourceStorage"]; renderer?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["renderer"]; workerUrl?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["workerUrl"]; theme?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["theme"]; readOnly?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["readOnly"]; protectionResolver?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["protectionResolver"]; mutationPolicy?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["mutationPolicy"]; transactionResourceLimits?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["transactionResourceLimits"]; renderers?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["renderers"]; overscan?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["overscan"]; minColumns?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["minColumns"]; config?: GridOptionsinterface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<string, CellRenderer>;
overscan?: number;
minColumns?: number;
// … 2 more lines — see the API reference
}interface GridOptions {
workbook: Workbook;
data?: ColumnarData;
datasource?: DataSource;
datasourceStorage?: DataSourceStorageOptions;
renderer?: "canvas" | "worker";
workerUrl?: string | URL;
theme?: Partial<Theme>;
readOnly?: boolean;
protectionResolver?: ProtectionResolver;
mutationPolicy?: MutationPolicyMode;
transactionResourceLimits?: Partial<TransactionResourceLimits>;
renderers?: Record<
string,
CellRenderer
>;
overscan?: number;
minColumns?: number;
config?: GridConfig;
}Workbook, data, rendering, policy, and built-in UI options used to create a Grid.API reference →["config"]; height?: number | string; fill?: true; fallback?: Snippet; grid?: Gridinterface Grid {
readonly store: Store;
readonly actions: GridActions;
setActiveSheet(id: SheetId): void;
scrollToCell(addr: CellAddress): void;
getCellAtPoint(
clientX: number,
clientY: number,
): CellAddress | null;
getActiveSheet(): SheetId;
getCellInput(row: number, col: number): CellInputSnapshot | null;
getSelection(): Selection | null;
setSelection(sel: Selection | null): void;
setTheme(theme: Partial<Theme>): void;
replaceTheme(theme: Partial<Theme> | undefined): void;
// … 106 more lines — see the API reference
}interface Grid {
readonly store: Store;
readonly actions: GridActions;
setActiveSheet(id: SheetId): void;
scrollToCell(addr: CellAddress): void;
getCellAtPoint(
clientX: number,
clientY: number,
): CellAddress | null;
getActiveSheet(): SheetId;
getCellInput(row: number, col: number): CellInputSnapshot | null;
getSelection(): Selection | null;
setSelection(sel: Selection | null): void;
setTheme(theme: Partial<Theme>): void;
replaceTheme(theme: Partial<Theme> | undefined): void;
// … 106 more lines — see the API reference
}interface Grid {
readonly store: Store;
readonly actions: GridActions;
setActiveSheet(
id: SheetId,
): void;
scrollToCell(
addr: CellAddress,
): void;
getCellAtPoint(
clientX: number,
clientY: number,
): CellAddress | null;
getActiveSheet(): SheetId;
getCellInput(
row: number,
col: number,
): CellInputSnapshot | null;
getSelection(): Selection | null;
// … 229 more lines — see the API reference
}Imperative grid handle for document commands, events, rendering, and teardown.API reference →; onGridChange?: (event: ChangeEventinterface ChangeEvent {
transaction: Transaction;
changes: CellChange[];
commitReason: CommitReason;
source: OperationSource;
epoch?: number;
}interface ChangeEvent {
transaction: Transaction;
changes: CellChange[];
commitReason: CommitReason;
source: OperationSource;
epoch?: number;
}interface ChangeEvent {
transaction: Transaction;
changes: CellChange[];
commitReason: CommitReason;
source: OperationSource;
epoch?: number;
}Payload of the change event; flows OUT for API submission/reconcile.API reference →) => void; onSelectionChange?: (selection: Selectiontype Selection =
| { kind: "cell"; addr: CellAddress }
| { kind: "range"; range: Range }
| { kind: "row"; sheet: SheetId; row: number }
| { kind: "column"; sheet: SheetId; col: number }
| { kind: "multi"; ranges: Range[] };type Selection =
| { kind: "cell"; addr: CellAddress }
| { kind: "range"; range: Range }
| { kind: "row"; sheet: SheetId; row: number }
| { kind: "column"; sheet: SheetId; col: number }
| { kind: "multi"; ranges: Range[] };type Selection =
| {
kind: "cell";
addr: CellAddress;
}
| {
kind: "range";
range: Range;
}
| {
kind: "row";
sheet: SheetId;
row: number;
}
| {
kind: "column";
sheet: SheetId;
col: number;
}
// … 4 more lines — see the API reference
}Current cell, range, row, column, or multi-range selection.API reference → | null) => void; onViewportChange?: (event: GridEventsinterface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: {
selection: Selection | null;
};
scroll: {
scrollTop: number;
firstRow: number;
lastRow: number;
};
"edit-begin": {
addr: CellAddress;
};
"edit-commit": {
addr: CellAddress;
value: CellValue;
};
search: SearchResult;
"mutation-rejected": {
// … 21 more lines — see the API reference
}Payload map for events emitted by a Grid.API reference →["scroll"]) => void; onEditBegin?: (event: GridEventsinterface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: {
selection: Selection | null;
};
scroll: {
scrollTop: number;
firstRow: number;
lastRow: number;
};
"edit-begin": {
addr: CellAddress;
};
"edit-commit": {
addr: CellAddress;
value: CellValue;
};
search: SearchResult;
"mutation-rejected": {
// … 21 more lines — see the API reference
}Payload map for events emitted by a Grid.API reference →["edit-begin"]) => void; onEditCommit?: (event: GridEventsinterface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: {
selection: Selection | null;
};
scroll: {
scrollTop: number;
firstRow: number;
lastRow: number;
};
"edit-begin": {
addr: CellAddress;
};
"edit-commit": {
addr: CellAddress;
value: CellValue;
};
search: SearchResult;
"mutation-rejected": {
// … 21 more lines — see the API reference
}Payload map for events emitted by a Grid.API reference →["edit-commit"]) => void; onSearch?: (result: GridEventsinterface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: {
selection: Selection | null;
};
scroll: {
scrollTop: number;
firstRow: number;
lastRow: number;
};
"edit-begin": {
addr: CellAddress;
};
"edit-commit": {
addr: CellAddress;
value: CellValue;
};
search: SearchResult;
"mutation-rejected": {
// … 21 more lines — see the API reference
}Payload map for events emitted by a Grid.API reference →["search"]) => void; onActiveSheetChange?: (event: GridEventsinterface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: { selection: Selection | null };
scroll: { scrollTop: number; firstRow: number; lastRow: number };
"edit-begin": { addr: CellAddress };
"edit-commit": { addr: CellAddress; value: CellValue };
search: SearchResult;
"mutation-rejected": { issues: MutationIssue[] };
"active-sheet": { sheet: SheetId };
"renderer-fallback": { requested: "worker"; error: unknown };
"datasource-error": {
request: Omit<DataSourceRequest, "signal">;
error: unknown;
};
"export-error": { format: "xlsx"; error: unknown };
}interface GridEvents {
change: ChangeEvent;
selection: {
selection: Selection | null;
};
scroll: {
scrollTop: number;
firstRow: number;
lastRow: number;
};
"edit-begin": {
addr: CellAddress;
};
"edit-commit": {
addr: CellAddress;
value: CellValue;
};
search: SearchResult;
"mutation-rejected": {
// … 21 more lines — see the API reference
}Payload map for events emitted by a Grid.API reference →["active-sheet"]) => void; onReady?: (event: GridReadyEventinterface GridReadyEvent {
grid: Grid;
generation: number;
reason: GridReadyReason;
}interface GridReadyEvent {
grid: Grid;
generation: number;
reason: GridReadyReason;
}interface GridReadyEvent {
grid: Grid;
generation: number;
reason: GridReadyReason;
}Grid handle, generation, and reason published after adapter initialization.API reference →) => void; onInitializationError?: (error: unknown) => void; wasmSource?: BufferSource | URL | string | Request | WebAssembly.Module;}