Skip to content
Reeflow
Start Building

@reeflow/core

Defined in: packages/types/dist/index.d.mts:46079

Query types for JSONQL queries

Enumeration MemberValueDefined in
AGGREGATE"aggregate"packages/types/dist/index.d.mts:46082
SQL"sql"packages/types/dist/index.d.mts:46080
TABLE"table"packages/types/dist/index.d.mts:46081

Defined in: apps/sdks/core/src/components/charts/bar/ReeflowBarChart.ts:21

Bar chart component for visualizing data as vertical bars

Automatically determines dimension (x-axis) and measure (y-axis) columns from query results. Supports multiple measures displayed as grouped bars.

<reeflow-bar-chart
connection-id="my-connection"
query='{"select": [{"dimension": "category"}, {"measure": "sales"}], "from": "revenue"}'>
</reeflow-bar-chart>
new ReeflowBarChart(): ReeflowBarChart;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowBarChart

ReeflowChart.constructor

protected chartInstance: EChartsType | null = null;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:54

ReeflowChart.chartInstance

protected chartOptions: EChartsOption = {};

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:57

ReeflowChart.chartOptions

protected chartType: "bar";

Defined in: apps/sdks/core/src/components/charts/bar/ReeflowBarChart.ts:22

Chart type identifier for template rendering (icons, labels) Override in subclasses to specify the chart type

ReeflowChart.chartType

optional componentId: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:48

Component ID from the workbook configuration Used to uniquely identify this component instance

ReeflowChart.componentId

protected errorCode: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:131

ReeflowChart.errorCode

errorMessage: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:134

ReeflowChart.errorMessage

optional height: number;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:51

Chart height in pixels (optional, defaults to container height)

ReeflowChart.height

label: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:81

Optional label displayed above the component

ReeflowChart.label

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowChart.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowChart.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowChart.themeStyle

optional width: number;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:45

Chart width in pixels (optional, defaults to container width)

ReeflowChart.width

get data(): QueryResult | null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:96

QueryResult | null

set data(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:100

ParameterType
value| QueryResult | { columns: unknown[]; rows: unknown[][]; } | null

void

ReeflowChart.data

get query():
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
parameters?: Record<string, string | number | boolean | string[]>;
sql: string;
type: SQL;
}
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
dimensions?: (
| {
column: string;
label?: string;
type: "categorical";
}
| {
column: string;
date_range?: [string, string];
granularity: "day" | "week" | "month" | "quarter" | "year";
label?: string;
type: "time";
})[];
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
measures: {
color?: string;
column?: string;
label?: string;
type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum";
}[];
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: AGGREGATE;
}
| {
columns?: (
| {
label?: string;
name: string;
}
| {
label?: string;
raw: string;
})[];
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
distinct?: boolean;
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: TABLE;
}
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:68

JSONQL query to execute Can be set via attribute or inline script tag with slot=“query”

| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

set query(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:72

ParameterType
value| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

void

ReeflowChart.query

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowChart.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowChart.emitEvent

protected executeQuery(): Promise<QueryResult | null>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:197

Execute the current query and update component state

Promise<QueryResult | null>

ReeflowChart.executeQuery

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowChart.findProvider

protected generateChartOptions(): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/bar/ReeflowBarChart.ts:28

Generate ECharts configuration for bar chart

EChartsOption

ECharts option object with bar chart configuration

ReeflowChart.generateChartOptions

protected getChartAxisThemeOptions(options?): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:344

Get axis theme options for charts with axes (bar, line)

ParameterTypeDescription
options?Partial<AxisThemeOptions>Optional axis theme options to override defaults

EChartsOption

ECharts options with axis theme applied

ReeflowChart.getChartAxisThemeOptions

getChartInstance(): EChartsType | null;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:311

Get the underlying ECharts instance for advanced customization

EChartsType | null

ECharts instance or null if not yet initialized

ReeflowChart.getChartInstance

protected getChartThemeOptions(options?): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:331

Get base theme options for charts

ParameterTypeDescription
options?Partial<BaseThemeOptions>Optional theme options to override defaults

EChartsOption

Base ECharts options with theme applied

ReeflowChart.getChartThemeOptions

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowChart.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowChart.log

refresh(): Promise<void>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:234

Refresh data by re-executing the current query

Promise<void>

Promise that resolves when refresh is complete

ReeflowChart.refresh

render(): TemplateResult;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:121

Render the chart component with state-based content

TemplateResult

Template result with chart canvas or state indicators

ReeflowChart.render

reset(includeQuery): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:242

Reset to initial state

ParameterTypeDefault valueDescription
includeQuerybooleanfalseWhether to also reset the query to null (default: false)

void

ReeflowChart.reset

updateChartOptions(options, notMerge): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:320

Update chart options programmatically after initial render

ParameterTypeDefault valueDescription
optionsEChartsOptionundefinedECharts options to apply
notMergebooleanfalseIf true, replaces existing options instead of merging

void

ReeflowChart.updateChartOptions

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:61

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowChart.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:66

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowChart.disconnectedCallback

static styles: CSSResult = defaultStyles;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:41

Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

Note on Content Security Policy:

Element styles are implemented with <style> tags when the browser doesn’t support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include ‘unsafe-inline’ or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page’s HTML, before loading application code:

<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>

ReeflowChart.styles

firstUpdated(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:73

Invoked when the element is first updated. Implement to perform one time work on the element after update.

firstUpdated() {
this.renderRoot.getElementById('my-text-area').focus();
}

Setting properties inside this method will trigger the element to update again after this update cycle completes.

void

ReeflowChart.firstUpdated

updated(changedProperties): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:77

Invoked whenever the element is updated. Implement to perform post-updating tasks via DOM APIs, for example, focusing an element.

Setting properties inside this method will trigger the element to update again after this update cycle completes.

ParameterType
changedPropertiesMap<string, unknown>

void

ReeflowChart.updated


Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:18

Abstract foundation class for all Reeflow components Provides shared functionality: provider communication, base events

reeflow-state-change - Fired when component state changes. Detail: { state: ReeflowComponentState, oldState: ReeflowComponentState }

new ReeflowBaseComponent(): ReeflowBaseComponent;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowBaseComponent

ReeflowEventEmitter.constructor

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowEventEmitter.emitEvent

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowEventEmitter.log

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:59

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowEventEmitter.connectedCallback
disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:87

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowEventEmitter.disconnectedCallback

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:34

Abstract base chart component using ECharts

Provides shared functionality for all chart types including:

  • Chart lifecycle management (initialization, updates, destruction)
  • Theme support with automatic updates
  • Responsive resizing
  • State management (loading, error, ready, empty)

This is an abstract class. Use concrete implementations like ReeflowBarChart, ReeflowLineChart, or ReeflowPieChart.

reeflow-chart-click - Fired when a chart element (bar, line point, pie slice, etc.) is clicked

reeflow-chart-hover - Fired when the mouse hovers over a chart element

reeflow-chart-legend-toggle - Fired when a legend item is clicked to toggle series visibility

new ReeflowChart(): ReeflowChart;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowChart

ReeflowElement.constructor

protected chartInstance: EChartsType | null = null;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:54

protected chartOptions: EChartsOption = {};

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:57

protected chartType: TemplateComponentType = 'chart';

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:39

Chart type identifier for template rendering (icons, labels) Override in subclasses to specify the chart type

optional componentId: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:48

Component ID from the workbook configuration Used to uniquely identify this component instance

ReeflowElement.componentId

protected errorCode: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:131

ReeflowElement.errorCode

errorMessage: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:134

ReeflowElement.errorMessage

optional height: number;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:51

Chart height in pixels (optional, defaults to container height)

label: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:81

Optional label displayed above the component

ReeflowElement.label

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowElement.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowElement.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowElement.themeStyle

optional width: number;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:45

Chart width in pixels (optional, defaults to container width)

get data(): QueryResult | null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:96

QueryResult | null

set data(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:100

ParameterType
value| QueryResult | { columns: unknown[]; rows: unknown[][]; } | null

void

ReeflowElement.data

get query():
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
parameters?: Record<string, string | number | boolean | string[]>;
sql: string;
type: SQL;
}
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
dimensions?: (
| {
column: string;
label?: string;
type: "categorical";
}
| {
column: string;
date_range?: [string, string];
granularity: "day" | "week" | "month" | "quarter" | "year";
label?: string;
type: "time";
})[];
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
measures: {
color?: string;
column?: string;
label?: string;
type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum";
}[];
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: AGGREGATE;
}
| {
columns?: (
| {
label?: string;
name: string;
}
| {
label?: string;
raw: string;
})[];
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
distinct?: boolean;
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: TABLE;
}
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:68

JSONQL query to execute Can be set via attribute or inline script tag with slot=“query”

| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

set query(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:72

ParameterType
value| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

void

ReeflowElement.query

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowElement.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowElement.emitEvent

protected executeQuery(): Promise<QueryResult | null>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:197

Execute the current query and update component state

Promise<QueryResult | null>

ReeflowElement.executeQuery

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowElement.findProvider

abstract protected generateChartOptions(): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:305

Abstract method to generate chart-specific configuration

Must be implemented by concrete chart components to define chart type and data mapping.

EChartsOption

ECharts option object for the specific chart type

protected getChartAxisThemeOptions(options?): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:344

Get axis theme options for charts with axes (bar, line)

ParameterTypeDescription
options?Partial<AxisThemeOptions>Optional axis theme options to override defaults

EChartsOption

ECharts options with axis theme applied

getChartInstance(): EChartsType | null;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:311

Get the underlying ECharts instance for advanced customization

EChartsType | null

ECharts instance or null if not yet initialized

protected getChartThemeOptions(options?): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:331

Get base theme options for charts

ParameterTypeDescription
options?Partial<BaseThemeOptions>Optional theme options to override defaults

EChartsOption

Base ECharts options with theme applied

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowElement.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowElement.log

refresh(): Promise<void>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:234

Refresh data by re-executing the current query

Promise<void>

Promise that resolves when refresh is complete

ReeflowElement.refresh

render(): TemplateResult;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:121

Render the chart component with state-based content

TemplateResult

Template result with chart canvas or state indicators

ReeflowElement.render
reset(includeQuery): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:242

Reset to initial state

ParameterTypeDefault valueDescription
includeQuerybooleanfalseWhether to also reset the query to null (default: false)

void

ReeflowElement.reset

updateChartOptions(options, notMerge): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:320

Update chart options programmatically after initial render

ParameterTypeDefault valueDescription
optionsEChartsOptionundefinedECharts options to apply
notMergebooleanfalseIf true, replaces existing options instead of merging

void

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:61

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowElement.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:66

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowElement.disconnectedCallback

static styles: CSSResult = defaultStyles;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:41

Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

Note on Content Security Policy:

Element styles are implemented with <style> tags when the browser doesn’t support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include ‘unsafe-inline’ or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page’s HTML, before loading application code:

<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>

ReeflowElement.styles

firstUpdated(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:73

Invoked when the element is first updated. Implement to perform one time work on the element after update.

firstUpdated() {
this.renderRoot.getElementById('my-text-area').focus();
}

Setting properties inside this method will trigger the element to update again after this update cycle completes.

void

ReeflowElement.firstUpdated
updated(changedProperties): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:77

Invoked whenever the element is updated. Implement to perform post-updating tasks via DOM APIs, for example, focusing an element.

Setting properties inside this method will trigger the element to update again after this update cycle completes.

ParameterType
changedPropertiesMap<string, unknown>

void

ReeflowElement.updated


Defined in: apps/sdks/core/src/components/container/ReeflowContainer.ts:27

Generic container component that renders custom content within the standard Reeflow frame structure

This component provides the standard two-layer padding structure (frame + container) with optional title, border, margin, and padding. It’s a generic container that renders any children you provide, making it useful for custom content, empty states, placeholders, or any other UI that needs the standard Reeflow styling and theme support.

The component accepts slotted content via children.

<reeflow-container label="Custom Content">
<div style="text-align: center; padding: 40px;">
<p>Your custom content goes here</p>
</div>
</reeflow-container>
new ReeflowContainer(): ReeflowContainer;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowContainer

ReeflowBaseComponent.constructor

label: string;

Defined in: apps/sdks/core/src/components/container/ReeflowContainer.ts:34

Optional label displayed at the top of the component

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowBaseComponent.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowBaseComponent.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowBaseComponent.themeStyle

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowBaseComponent.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowBaseComponent.emitEvent

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowBaseComponent.findProvider

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowBaseComponent.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowBaseComponent.log

render(): TemplateResult;

Defined in: apps/sdks/core/src/components/container/ReeflowContainer.ts:40

Render the container structure with frame, optional label, and slotted content

TemplateResult

Template result with container structure

ReeflowBaseComponent.render
connectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:59

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowBaseComponent.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:87

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowBaseComponent.disconnectedCallback

static styles: CSSResult = defaultStyles;

Defined in: apps/sdks/core/src/components/container/ReeflowContainer.ts:28

Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

Note on Content Security Policy:

Element styles are implemented with <style> tags when the browser doesn’t support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include ‘unsafe-inline’ or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page’s HTML, before loading application code:

<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>
ReeflowBaseComponent.styles

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:17

Base class for all Reeflow control components

Controls are interactive UI components that capture user input and dynamically filter visualization components via JSONQL’s RF_PARAM() system.

This class can be extended directly or via the WithQuery mixin for controls that need data loading.

reeflow-{control-type}-value-change - Fired when control value changes (e.g., reeflow-select-value-change)

reeflow-state-change - Inherited from ReeflowBaseComponent

reeflow-error - Inherited from ReeflowBaseComponent

new ReeflowControl(): ReeflowControl;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowControl

ReeflowBaseComponent.constructor

controlId: string;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:23

Unique identifier for this control Used in RF_PARAM() references and for registering with the provider

disabled: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:41

Whether the control is disabled

optional label: string;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:29

Optional label displayed above the control

readonly: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:47

Whether the control is read-only

required: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:53

Whether the control is required

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowBaseComponent.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowBaseComponent.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowBaseComponent.themeStyle

optional value: unknown;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:35

Current/initial value of the control

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowWorkbook.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowBaseComponent.emitEvent

protected emitValueChange(_newValue, _oldValue): void;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:80

Emit control-specific value change event Should be overridden by concrete control types to emit their specific events

ParameterTypeDescription
_newValueunknownThe new value of the control
_oldValueunknownThe previous value of the control

void

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowBaseComponent.findProvider

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowBaseComponent.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowBaseComponent.log

protected updateValue(newValue): void;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:91

Update the control value and notify the provider Should be called by concrete implementations when the value changes

ParameterTypeDescription
newValueunknownThe new value to set

void

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:55

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowBaseComponent.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:63

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowBaseComponent.disconnectedCallback


Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:40

Abstract data-driven component class

Extends ReeflowBaseComponent with:

  • JSONQL query execution
  • Data fetching and caching
  • Loading, error, and empty states
  • Support for inline query definitions via script tags

This is an abstract class. Use concrete implementations like ReeflowTable or chart components.

reeflow-data-loaded - Fired when data is successfully loaded. Detail: QueryResult

reeflow-error - Fired when an error occurs. Detail: { code: string, message: string }

reeflow-query-executing - Fired before query execution with original and resolved queries. Detail: { componentId: string, originalQuery: JSONQLQuery, queryWithParams: JSONQLQuery, parameterReferences: string[] }

<!-- Using inline query -->
<reeflow-table label="Sales Data">
<script type="application/json" slot="query">
{"select": [...], "from": "sales"}
</script>
</reeflow-table>
<!-- Using query attribute -->
<reeflow-table
label="Sales Data"
query='{"select": [...], "from": "sales"}'>
</reeflow-table>
new ReeflowElement(): ReeflowElement;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowElement

ReeflowBaseComponent.constructor

optional componentId: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:48

Component ID from the workbook configuration Used to uniquely identify this component instance

protected errorCode: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:131

errorMessage: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:134

label: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:81

Optional label displayed above the component

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowBaseComponent.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowBaseComponent.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowBaseComponent.themeStyle

get data(): QueryResult | null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:96

QueryResult | null

set data(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:100

ParameterType
value| QueryResult | { columns: unknown[]; rows: unknown[][]; } | null

void

get query():
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
parameters?: Record<string, string | number | boolean | string[]>;
sql: string;
type: SQL;
}
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
dimensions?: (
| {
column: string;
label?: string;
type: "categorical";
}
| {
column: string;
date_range?: [string, string];
granularity: "day" | "week" | "month" | "quarter" | "year";
label?: string;
type: "time";
})[];
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
measures: {
color?: string;
column?: string;
label?: string;
type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum";
}[];
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: AGGREGATE;
}
| {
columns?: (
| {
label?: string;
name: string;
}
| {
label?: string;
raw: string;
})[];
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
distinct?: boolean;
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: TABLE;
}
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:68

JSONQL query to execute Can be set via attribute or inline script tag with slot=“query”

| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

set query(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:72

ParameterType
value| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

void

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowBaseComponent.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowBaseComponent.emitEvent

protected executeQuery(): Promise<QueryResult | null>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:197

Execute the current query and update component state

Promise<QueryResult | null>

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowBaseComponent.findProvider

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowBaseComponent.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowBaseComponent.log

refresh(): Promise<void>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:234

Refresh data by re-executing the current query

Promise<void>

Promise that resolves when refresh is complete

reset(includeQuery): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:242

Reset to initial state

ParameterTypeDefault valueDescription
includeQuerybooleanfalseWhether to also reset the query to null (default: false)

void

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:136

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowBaseComponent.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:158

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowBaseComponent.disconnectedCallback

static styles: CSSResult = defaultStyles;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:41

Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

Note on Content Security Policy:

Element styles are implemented with <style> tags when the browser doesn’t support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include ‘unsafe-inline’ or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page’s HTML, before loading application code:

<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>
ReeflowBaseComponent.styles
updated(changedProperties): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:186

Invoked whenever the element is updated. Implement to perform post-updating tasks via DOM APIs, for example, focusing an element.

Setting properties inside this method will trigger the element to update again after this update cycle completes.

ParameterType
changedPropertiesMap<string, unknown>

void

ReeflowBaseComponent.updated

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:17

Base class for all Reeflow components with event emission capabilities

Provides:

  • Standardized event emission with consistent naming (reeflow-* prefix)
  • Centralized logging utility
  • Type-safe event handling

All Reeflow components extend this class transitively through ReeflowBaseComponent. Events are bubbled and composed to work across shadow DOM boundaries.

  • LitElement
new ReeflowEventEmitter(): ReeflowEventEmitter;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowEventEmitter

LitElement.constructor
protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }
protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void


Defined in: apps/sdks/core/src/components/controls/ReeflowInput.ts:31

Input control component for free-form text/number/date entry

reeflow-input-value-change - Fired when input value changes

reeflow-input-validation-change - Fired when validation state changes

<reeflow-input
control-id="search"
type="text"
label="Search"
placeholder="Enter search term..."
value="laptop">
</reeflow-input>
new ReeflowInput(): ReeflowInput;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowInput

ReeflowControl.constructor

controlId: string;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:23

Unique identifier for this control Used in RF_PARAM() references and for registering with the provider

ReeflowControl.controlId

optional debounce: number;

Defined in: apps/sdks/core/src/components/controls/ReeflowInput.ts:71

Debounce delay in milliseconds for text inputs

disabled: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:41

Whether the control is disabled

ReeflowControl.disabled

optional label: string;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:29

Optional label displayed above the control

ReeflowControl.label

optional max: string;

Defined in: apps/sdks/core/src/components/controls/ReeflowInput.ts:59

Maximum value (for number/date types)

optional min: string;

Defined in: apps/sdks/core/src/components/controls/ReeflowInput.ts:53

Minimum value (for number/date types)

optional pattern: string;

Defined in: apps/sdks/core/src/components/controls/ReeflowInput.ts:65

Pattern for validation (regex string)

optional placeholder: string;

Defined in: apps/sdks/core/src/components/controls/ReeflowInput.ts:47

Placeholder text

readonly: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:47

Whether the control is read-only

ReeflowControl.readonly

required: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:53

Whether the control is required

ReeflowControl.required

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowControl.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowControl.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowControl.themeStyle

type: InputType = 'text';

Defined in: apps/sdks/core/src/components/controls/ReeflowInput.ts:41

Input type

optional value: unknown;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:35

Current/initial value of the control

ReeflowControl.value

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowControl.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowControl.emitEvent

protected emitValueChange(newValue, oldValue): void;

Defined in: apps/sdks/core/src/components/controls/ReeflowInput.ts:78

Emit input-specific value change event

ParameterType
newValueunknown
oldValueunknown

void

ReeflowControl.emitValueChange

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowControl.findProvider

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowControl.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowControl.log

protected updateValue(newValue): void;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:91

Update the control value and notify the provider Should be called by concrete implementations when the value changes

ParameterTypeDescription
newValueunknownThe new value to set

void

ReeflowControl.updateValue

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:55

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowControl.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:63

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowControl.disconnectedCallback

render(): TemplateResult<1>;

Defined in: apps/sdks/core/src/components/controls/ReeflowInput.ts:172

Invoked on each update to perform rendering tasks. This method may return any value renderable by lit-html’s ChildPart - typically a TemplateResult. Setting properties inside this method will not trigger the element to update.

TemplateResult<1>

ReeflowControl.render
static styles: CSSResult;

Defined in: apps/sdks/core/src/components/controls/ReeflowInput.ts:32

Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

Note on Content Security Policy:

Element styles are implemented with <style> tags when the browser doesn’t support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include ‘unsafe-inline’ or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page’s HTML, before loading application code:

<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>
ReeflowControl.styles

Defined in: apps/sdks/core/src/components/charts/line/ReeflowLineChart.ts:21

Line chart component for visualizing data trends over time or categories

Automatically determines dimension (x-axis) and measure (y-axis) columns from query results. Supports multiple measures displayed as separate lines with smooth curves.

<reeflow-line-chart
connection-id="my-connection"
query='{"select": [{"dimension": "date"}, {"measure": "revenue"}], "from": "sales"}'>
</reeflow-line-chart>
new ReeflowLineChart(): ReeflowLineChart;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowLineChart

ReeflowChart.constructor

protected chartInstance: EChartsType | null = null;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:54

ReeflowChart.chartInstance

protected chartOptions: EChartsOption = {};

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:57

ReeflowChart.chartOptions

protected chartType: "line";

Defined in: apps/sdks/core/src/components/charts/line/ReeflowLineChart.ts:22

Chart type identifier for template rendering (icons, labels) Override in subclasses to specify the chart type

ReeflowChart.chartType

optional componentId: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:48

Component ID from the workbook configuration Used to uniquely identify this component instance

ReeflowChart.componentId

protected errorCode: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:131

ReeflowChart.errorCode

errorMessage: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:134

ReeflowChart.errorMessage

optional height: number;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:51

Chart height in pixels (optional, defaults to container height)

ReeflowChart.height

label: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:81

Optional label displayed above the component

ReeflowChart.label

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowChart.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowChart.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowChart.themeStyle

optional width: number;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:45

Chart width in pixels (optional, defaults to container width)

ReeflowChart.width

get data(): QueryResult | null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:96

QueryResult | null

set data(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:100

ParameterType
value| QueryResult | { columns: unknown[]; rows: unknown[][]; } | null

void

ReeflowChart.data

get query():
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
parameters?: Record<string, string | number | boolean | string[]>;
sql: string;
type: SQL;
}
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
dimensions?: (
| {
column: string;
label?: string;
type: "categorical";
}
| {
column: string;
date_range?: [string, string];
granularity: "day" | "week" | "month" | "quarter" | "year";
label?: string;
type: "time";
})[];
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
measures: {
color?: string;
column?: string;
label?: string;
type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum";
}[];
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: AGGREGATE;
}
| {
columns?: (
| {
label?: string;
name: string;
}
| {
label?: string;
raw: string;
})[];
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
distinct?: boolean;
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: TABLE;
}
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:68

JSONQL query to execute Can be set via attribute or inline script tag with slot=“query”

| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

set query(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:72

ParameterType
value| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

void

ReeflowChart.query

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowChart.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowChart.emitEvent

protected executeQuery(): Promise<QueryResult | null>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:197

Execute the current query and update component state

Promise<QueryResult | null>

ReeflowChart.executeQuery

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowChart.findProvider

protected generateChartOptions(): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/line/ReeflowLineChart.ts:28

Generate ECharts configuration for line chart

EChartsOption

ECharts option object with line chart configuration

ReeflowChart.generateChartOptions

protected getChartAxisThemeOptions(options?): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:344

Get axis theme options for charts with axes (bar, line)

ParameterTypeDescription
options?Partial<AxisThemeOptions>Optional axis theme options to override defaults

EChartsOption

ECharts options with axis theme applied

ReeflowChart.getChartAxisThemeOptions

getChartInstance(): EChartsType | null;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:311

Get the underlying ECharts instance for advanced customization

EChartsType | null

ECharts instance or null if not yet initialized

ReeflowChart.getChartInstance

protected getChartThemeOptions(options?): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:331

Get base theme options for charts

ParameterTypeDescription
options?Partial<BaseThemeOptions>Optional theme options to override defaults

EChartsOption

Base ECharts options with theme applied

ReeflowChart.getChartThemeOptions

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowChart.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowChart.log

refresh(): Promise<void>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:234

Refresh data by re-executing the current query

Promise<void>

Promise that resolves when refresh is complete

ReeflowChart.refresh

render(): TemplateResult;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:121

Render the chart component with state-based content

TemplateResult

Template result with chart canvas or state indicators

ReeflowChart.render

reset(includeQuery): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:242

Reset to initial state

ParameterTypeDefault valueDescription
includeQuerybooleanfalseWhether to also reset the query to null (default: false)

void

ReeflowChart.reset

updateChartOptions(options, notMerge): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:320

Update chart options programmatically after initial render

ParameterTypeDefault valueDescription
optionsEChartsOptionundefinedECharts options to apply
notMergebooleanfalseIf true, replaces existing options instead of merging

void

ReeflowChart.updateChartOptions

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:61

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowChart.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:66

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowChart.disconnectedCallback

static styles: CSSResult = defaultStyles;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:41

Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

Note on Content Security Policy:

Element styles are implemented with <style> tags when the browser doesn’t support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include ‘unsafe-inline’ or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page’s HTML, before loading application code:

<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>

ReeflowChart.styles

firstUpdated(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:73

Invoked when the element is first updated. Implement to perform one time work on the element after update.

firstUpdated() {
this.renderRoot.getElementById('my-text-area').focus();
}

Setting properties inside this method will trigger the element to update again after this update cycle completes.

void

ReeflowChart.firstUpdated

updated(changedProperties): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:77

Invoked whenever the element is updated. Implement to perform post-updating tasks via DOM APIs, for example, focusing an element.

Setting properties inside this method will trigger the element to update again after this update cycle completes.

ParameterType
changedPropertiesMap<string, unknown>

void

ReeflowChart.updated


Defined in: apps/sdks/core/src/components/charts/pie/ReeflowPieChart.ts:25

Pie chart component for visualizing proportional data as circular segments

Requires at least two columns: a label column (for segment names) and a measure column (for values). Automatically detects column roles or uses the first two columns as label and value.

<reeflow-pie-chart
connection-id="my-connection"
query='{"select": [{"label": "product"}, {"measure": "market_share"}], "from": "products"}'>
</reeflow-pie-chart>
new ReeflowPieChart(): ReeflowPieChart;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowPieChart

ReeflowChart.constructor

protected chartInstance: EChartsType | null = null;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:54

ReeflowChart.chartInstance

protected chartOptions: EChartsOption = {};

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:57

ReeflowChart.chartOptions

protected chartType: "pie";

Defined in: apps/sdks/core/src/components/charts/pie/ReeflowPieChart.ts:26

Chart type identifier for template rendering (icons, labels) Override in subclasses to specify the chart type

ReeflowChart.chartType

optional componentId: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:48

Component ID from the workbook configuration Used to uniquely identify this component instance

ReeflowChart.componentId

protected errorCode: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:131

ReeflowChart.errorCode

errorMessage: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:134

ReeflowChart.errorMessage

optional height: number;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:51

Chart height in pixels (optional, defaults to container height)

ReeflowChart.height

label: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:81

Optional label displayed above the component

ReeflowChart.label

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowChart.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowChart.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowChart.themeStyle

optional width: number;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:45

Chart width in pixels (optional, defaults to container width)

ReeflowChart.width

get data(): QueryResult | null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:96

QueryResult | null

set data(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:100

ParameterType
value| QueryResult | { columns: unknown[]; rows: unknown[][]; } | null

void

ReeflowChart.data

get query():
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
parameters?: Record<string, string | number | boolean | string[]>;
sql: string;
type: SQL;
}
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
dimensions?: (
| {
column: string;
label?: string;
type: "categorical";
}
| {
column: string;
date_range?: [string, string];
granularity: "day" | "week" | "month" | "quarter" | "year";
label?: string;
type: "time";
})[];
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
measures: {
color?: string;
column?: string;
label?: string;
type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum";
}[];
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: AGGREGATE;
}
| {
columns?: (
| {
label?: string;
name: string;
}
| {
label?: string;
raw: string;
})[];
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
distinct?: boolean;
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: TABLE;
}
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:68

JSONQL query to execute Can be set via attribute or inline script tag with slot=“query”

| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

set query(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:72

ParameterType
value| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

void

ReeflowChart.query

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowChart.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowChart.emitEvent

protected executeQuery(): Promise<QueryResult | null>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:197

Execute the current query and update component state

Promise<QueryResult | null>

ReeflowChart.executeQuery

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowChart.findProvider

protected generateChartOptions(): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/pie/ReeflowPieChart.ts:32

Generate ECharts configuration for pie chart

EChartsOption

ECharts option object with pie chart configuration

ReeflowChart.generateChartOptions

protected getChartAxisThemeOptions(options?): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:344

Get axis theme options for charts with axes (bar, line)

ParameterTypeDescription
options?Partial<AxisThemeOptions>Optional axis theme options to override defaults

EChartsOption

ECharts options with axis theme applied

ReeflowChart.getChartAxisThemeOptions

getChartInstance(): EChartsType | null;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:311

Get the underlying ECharts instance for advanced customization

EChartsType | null

ECharts instance or null if not yet initialized

ReeflowChart.getChartInstance

protected getChartThemeOptions(options?): EChartsOption;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:331

Get base theme options for charts

ParameterTypeDescription
options?Partial<BaseThemeOptions>Optional theme options to override defaults

EChartsOption

Base ECharts options with theme applied

ReeflowChart.getChartThemeOptions

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowChart.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowChart.log

refresh(): Promise<void>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:234

Refresh data by re-executing the current query

Promise<void>

Promise that resolves when refresh is complete

ReeflowChart.refresh

render(): TemplateResult;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:121

Render the chart component with state-based content

TemplateResult

Template result with chart canvas or state indicators

ReeflowChart.render

reset(includeQuery): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:242

Reset to initial state

ParameterTypeDefault valueDescription
includeQuerybooleanfalseWhether to also reset the query to null (default: false)

void

ReeflowChart.reset

updateChartOptions(options, notMerge): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:320

Update chart options programmatically after initial render

ParameterTypeDefault valueDescription
optionsEChartsOptionundefinedECharts options to apply
notMergebooleanfalseIf true, replaces existing options instead of merging

void

ReeflowChart.updateChartOptions

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:61

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowChart.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:66

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowChart.disconnectedCallback

static styles: CSSResult = defaultStyles;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:41

Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

Note on Content Security Policy:

Element styles are implemented with <style> tags when the browser doesn’t support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include ‘unsafe-inline’ or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page’s HTML, before loading application code:

<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>

ReeflowChart.styles

firstUpdated(): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:73

Invoked when the element is first updated. Implement to perform one time work on the element after update.

firstUpdated() {
this.renderRoot.getElementById('my-text-area').focus();
}

Setting properties inside this method will trigger the element to update again after this update cycle completes.

void

ReeflowChart.firstUpdated

updated(changedProperties): void;

Defined in: apps/sdks/core/src/components/charts/ReeflowChart.ts:77

Invoked whenever the element is updated. Implement to perform post-updating tasks via DOM APIs, for example, focusing an element.

Setting properties inside this method will trigger the element to update again after this update cycle completes.

ParameterType
changedPropertiesMap<string, unknown>

void

ReeflowChart.updated


Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:24

Provider component that manages authentication context for child Reeflow components Acts as a context provider in the component tree

reeflow-auth-change - Fired when authentication context changes. Detail: { authToken: string }

reeflow-theme-change - Fired when theme or theme mode changes. Detail: { theme: string, themeMode: 'light' | 'dark' }

reeflow-control-value-change - Fired when any control value changes. Detail: { controlId: string, value: unknown, previousValue: unknown }

new ReeflowProvider(): ReeflowProvider;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowProvider

ReeflowEventEmitter.constructor

authHeader: string = 'X-Embed-Authorization';

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:68

The HTTP header name to use for authentication. Defaults to ‘X-Embed-Authorization’ for embedded user tokens. Use ‘Authorization’ for standard Bearer tokens (e.g., Clerk JWT).

authToken: string;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:60

baseUrl: any = DEFAULT_API_BASE_URL;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:71

debug: boolean = false;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:74

mock: boolean = false;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:77

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:80

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:83

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:101

CSS variables for theme customization (passed as inline style string)

Note: This property is named themeStyle instead of style because React has special handling for the style prop (it expects an object and calls .setProperty() on it). Using style directly would conflict with React’s built-in style handling and cause errors.

When this property changes, we sync it to the actual HTML style attribute in the updated() lifecycle method so CSS variables are applied to the element.

<ReeflowProvider themeStyle="--color-primary: #ff0000; --color-secondary: #00ff00" />
get protected sdkId(): string | undefined;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:41

SDK identifier for API tracking (e.g., “core”, “react”).

This is intentionally accessed via data attributes (data-sdk-id) rather than Lit properties for the following reasons:

  1. Internal use only: SDK info is not meant to be set by end users. Data attributes don’t appear in component API documentation or IDE autocomplete.

  2. Per-provider isolation: When a page uses both React and Core SDKs simultaneously, each provider instance can have its own SDK identity. The React SDK wrapper sets data-sdk-id="react" on its provider, while direct Core usage defaults to “core”.

  3. Build-time injection: SDK wrappers (like React) can inject these values at build time without exposing them as configurable props to consumers.

string | undefined

get protected sdkVersion(): string | undefined;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:50

SDK version for API tracking (semver format: x.y.z).

See sdkId getter for documentation on why this uses data attributes.

string | undefined

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowEventEmitter.emitEvent

getApiClient(): ApiClient;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:210

Get the ApiClient instance for this provider

ApiClient

getAuthContext(): {
authToken: string;
};

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:235

Get authentication context

{
authToken: string;
}
NameTypeDefined in
authTokenstringapps/sdks/core/src/components/provider/ReeflowProvider.ts:235
getControlValue(controlId): unknown;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:307

Get a control’s current value

ParameterTypeDescription
controlIdstringUnique identifier for the control

unknown

The current value or undefined if not found

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowEventEmitter.log

registerControl(controlId, control): void;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:267

Register a control with this provider

ParameterTypeDescription
controlIdstringUnique identifier for the control
controlReeflowControlThe control instance

void

resolveParameters(controlIds): Record<string, string | number | boolean | string[]>;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:317

Resolve multiple control values by their IDs Used for RF_PARAM() resolution in queries

ParameterTypeDescription
controlIdsstring[]Array of control IDs to resolve

Record<string, string | number | boolean | string[]>

Record of control ID to value mappings (arrays preserved for multi-select)

setControlValue(controlId, value): void;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:290

Set a control’s value and emit generic control-value-change event

ParameterTypeDescription
controlIdstringUnique identifier for the control
valueunknownThe new value

void

unregisterControl(controlId): void;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:280

Unregister a control from this provider

ParameterTypeDescription
controlIdstringUnique identifier for the control

void

updateAuth(authToken, authHeader?): void;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:244

Update authentication context

ParameterType
authTokenstring
authHeader?string

void

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:187

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowEventEmitter.connectedCallback
render(): TemplateResult<1>;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:350

Invoked on each update to perform rendering tasks. This method may return any value renderable by lit-html’s ChildPart - typically a TemplateResult. Setting properties inside this method will not trigger the element to update.

TemplateResult<1>

ReeflowEventEmitter.render
static styles: CSSResult;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:53

Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

Note on Content Security Policy:

Element styles are implemented with <style> tags when the browser doesn’t support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include ‘unsafe-inline’ or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page’s HTML, before loading application code:

<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>
ReeflowEventEmitter.styles
firstUpdated(): void;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:112

Invoked when the element is first updated. Implement to perform one time work on the element after update.

firstUpdated() {
this.renderRoot.getElementById('my-text-area').focus();
}

Setting properties inside this method will trigger the element to update again after this update cycle completes.

void

ReeflowEventEmitter.firstUpdated
updated(changedProperties): void;

Defined in: apps/sdks/core/src/components/provider/ReeflowProvider.ts:117

Invoked whenever the element is updated. Implement to perform post-updating tasks via DOM APIs, for example, focusing an element.

Setting properties inside this method will trigger the element to update again after this update cycle completes.

ParameterType
changedPropertiesMap<string, unknown>

void

ReeflowEventEmitter.updated

Defined in: apps/sdks/core/src/components/base/ReeflowQueryControl.ts:28

Base class for control components that need to load data from the server

Extends ReeflowControl with:

  • JSONQL query execution
  • Data fetching and caching
  • Support for inline query definitions via script tags
  • RF_PARAM() parameter resolution for cascading controls

Use this class for controls that need to load options or data from the server, such as select dropdowns with dynamic options.

reeflow-query-executing - Fired before query execution with original and resolved queries

class ReeflowSelect extends ReeflowQueryControl {
// Has access to query, queryData, and executeQuery()
}
new ReeflowQueryControl(): ReeflowQueryControl;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowQueryControl

ReeflowControl.constructor

controlId: string;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:23

Unique identifier for this control Used in RF_PARAM() references and for registering with the provider

ReeflowControl.controlId

disabled: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:41

Whether the control is disabled

ReeflowControl.disabled

optional label: string;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:29

Optional label displayed above the control

ReeflowControl.label

readonly: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:47

Whether the control is read-only

ReeflowControl.readonly

required: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:53

Whether the control is required

ReeflowControl.required

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowControl.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowControl.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowControl.themeStyle

optional value: unknown;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:35

Current/initial value of the control

ReeflowControl.value

get query():
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
parameters?: Record<string, string | number | boolean | string[]>;
sql: string;
type: SQL;
}
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
dimensions?: (
| {
column: string;
label?: string;
type: "categorical";
}
| {
column: string;
date_range?: [string, string];
granularity: "day" | "week" | "month" | "quarter" | "year";
label?: string;
type: "time";
})[];
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
measures: {
color?: string;
column?: string;
label?: string;
type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum";
}[];
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: AGGREGATE;
}
| {
columns?: (
| {
label?: string;
name: string;
}
| {
label?: string;
raw: string;
})[];
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
distinct?: boolean;
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: TABLE;
}
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowQueryControl.ts:40

JSONQL query to execute for loading data Can be set via attribute or inline script tag with slot=“query”

| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

set query(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowQueryControl.ts:44

ParameterType
value| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

void

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowControl.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowControl.emitEvent

protected emitValueChange(_newValue, _oldValue): void;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:80

Emit control-specific value change event Should be overridden by concrete control types to emit their specific events

ParameterTypeDescription
_newValueunknownThe new value of the control
_oldValueunknownThe previous value of the control

void

ReeflowControl.emitValueChange

protected executeQuery(): Promise<QueryResult | null>;

Defined in: apps/sdks/core/src/components/base/ReeflowQueryControl.ts:91

Execute the current query and update component state Resolves RF_PARAM() references using control values from the provider

Promise<QueryResult | null>

Promise that resolves with the query result or null on error

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowControl.findProvider

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowControl.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowControl.log

protected updateValue(newValue): void;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:91

Update the control value and notify the provider Should be called by concrete implementations when the value changes

ParameterTypeDescription
newValueunknownThe new value to set

void

ReeflowControl.updateValue

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowQueryControl.ts:62

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowControl.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowQueryControl.ts:80

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowControl.disconnectedCallback


Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:48

Select control component for single or multi-selection from predefined options

Supports both static options (via

reeflow-select-value-change - Fired when selected value changes

reeflow-select-options-loaded - Fired when options are loaded from server

<!-- Static options -->
<reeflow-select control-id="status" label="Status">
<option value="active" selected>Active</option>
<option value="inactive">Inactive</option>
</reeflow-select>
<!-- Server-loaded options -->
<reeflow-select control-id="region" label="Region" value="north-america">
<script type="application/json" slot="query">
{
"type": "table",
"columns": [
{ "column": "regions.id" },
{ "column": "regions.name" }
]
}
</script>
</reeflow-select>
new ReeflowSelect(): ReeflowSelect;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowSelect

ReeflowQueryControl.constructor

controlId: string;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:23

Unique identifier for this control Used in RF_PARAM() references and for registering with the provider

ReeflowQueryControl.controlId

disabled: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:41

Whether the control is disabled

ReeflowQueryControl.disabled

distinct: boolean = false;

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:80

Remove duplicate options based on value When true, only unique values will be shown in the select

optional label: string;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:29

Optional label displayed above the control

ReeflowQueryControl.label

optional labelColumn: string;

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:73

Column name to use as option label When specified, overrides default behavior (second column = label)

multiple: boolean = false;

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:59

Enable multi-select mode When true, value becomes an array

options: SelectOption[] = [];

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:87

Available options for the select Can be set externally to update options without re-mounting the component.

readonly: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:47

Whether the control is read-only

ReeflowQueryControl.readonly

required: boolean = false;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:53

Whether the control is required

ReeflowQueryControl.required

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowQueryControl.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowQueryControl.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowQueryControl.themeStyle

optional value: unknown;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:35

Current/initial value of the control

ReeflowQueryControl.value

optional valueColumn: string;

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:66

Column name to use as option value When specified, overrides default behavior (first column = value)

get query():
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
parameters?: Record<string, string | number | boolean | string[]>;
sql: string;
type: SQL;
}
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
dimensions?: (
| {
column: string;
label?: string;
type: "categorical";
}
| {
column: string;
date_range?: [string, string];
granularity: "day" | "week" | "month" | "quarter" | "year";
label?: string;
type: "time";
})[];
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
measures: {
color?: string;
column?: string;
label?: string;
type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum";
}[];
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: AGGREGATE;
}
| {
columns?: (
| {
label?: string;
name: string;
}
| {
label?: string;
raw: string;
})[];
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
distinct?: boolean;
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: TABLE;
}
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowQueryControl.ts:40

JSONQL query to execute for loading data Can be set via attribute or inline script tag with slot=“query”

| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

set query(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowQueryControl.ts:44

ParameterType
value| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

void

ReeflowQueryControl.query

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowQueryControl.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowQueryControl.emitEvent

protected emitValueChange(newValue, oldValue): void;

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:278

Emit select-specific value change event

ParameterType
newValueunknown
oldValueunknown

void

ReeflowQueryControl.emitValueChange

protected executeQuery(): Promise<QueryResult | null>;

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:164

Override executeQuery to map results to options

Promise<QueryResult | null>

ReeflowQueryControl.executeQuery

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowQueryControl.findProvider

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowQueryControl.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowQueryControl.log

protected updateValue(newValue): void;

Defined in: apps/sdks/core/src/components/base/ReeflowControl.ts:91

Update the control value and notify the provider Should be called by concrete implementations when the value changes

ParameterTypeDescription
newValueunknownThe new value to set

void

ReeflowQueryControl.updateValue

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:92

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowQueryControl.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:124

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowQueryControl.disconnectedCallback

render(): TemplateResult<1>;

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:303

Invoked on each update to perform rendering tasks. This method may return any value renderable by lit-html’s ChildPart - typically a TemplateResult. Setting properties inside this method will not trigger the element to update.

TemplateResult<1>

ReeflowQueryControl.render
static styles: CSSResult;

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:49

Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

Note on Content Security Policy:

Element styles are implemented with <style> tags when the browser doesn’t support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include ‘unsafe-inline’ or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page’s HTML, before loading application code:

<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>
ReeflowQueryControl.styles

Defined in: apps/sdks/core/src/components/table/ReeflowTable.ts:60

Table component for displaying tabular data from Reeflow queries

Native implementation with the following features:

  • Sorting: Click column headers to sort data (ascending/descending)
  • Pagination: Navigate through large datasets with page controls
  • Search: Filter rows across all columns with live search
  • Responsive: Adapts to different screen sizes
  • Themeable: Supports multiple color themes
<reeflow-table
connection-id="my-connection"
query='{"select": ["id", "name", "email"], "from": "users"}'>
</reeflow-table>
<reeflow-table
label="User Directory"
connection-id="my-connection"
query='{"select": ["id", "name", "email"], "from": "users"}'
page-size="50"
search
search-placeholder="Search users..."
sort>
</reeflow-table>
<reeflow-table
connection-id="my-connection"
query='{"select": [...], "from": "table"}'
.pagination=${false}>
</reeflow-table>

reeflow-table-row-click - Fired when a table row is clicked. Detail: { row: unknown[] }

reeflow-table-sort-change - Fired when a column is sorted. Detail: { column: string, direction: 'asc' | 'desc' }

reeflow-table-page-change - Fired when the page changes. Detail: { page: number }

reeflow-table-search-change - Fired when search term changes. Detail: { searchTerm: string }

new ReeflowTable(): ReeflowTable;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowTable

ReeflowElement.constructor

optional componentId: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:48

Component ID from the workbook configuration Used to uniquely identify this component instance

ReeflowElement.componentId

protected errorCode: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:131

ReeflowElement.errorCode

errorMessage: string | null = null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:134

ReeflowElement.errorMessage

label: string;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:81

Optional label displayed above the component

ReeflowElement.label

pageSize: number = 20;

Defined in: apps/sdks/core/src/components/table/ReeflowTable.ts:71

Number of rows to display per page

20
pagination: boolean = false;

Defined in: apps/sdks/core/src/components/table/ReeflowTable.ts:92

Enable pagination

false
search: boolean = false;

Defined in: apps/sdks/core/src/components/table/ReeflowTable.ts:85

Enable search functionality

false
searchPlaceholder: string = 'Search...';

Defined in: apps/sdks/core/src/components/table/ReeflowTable.ts:99

Placeholder text for search input

"Search..."
sort: boolean = false;

Defined in: apps/sdks/core/src/components/table/ReeflowTable.ts:78

Enable sorting on columns

false
theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowElement.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowElement.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowElement.themeStyle

get data(): QueryResult | null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:96

QueryResult | null

set data(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:100

ParameterType
value| QueryResult | { columns: unknown[]; rows: unknown[][]; } | null

void

ReeflowElement.data

get query():
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
parameters?: Record<string, string | number | boolean | string[]>;
sql: string;
type: SQL;
}
| {
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
dimensions?: (
| {
column: string;
label?: string;
type: "categorical";
}
| {
column: string;
date_range?: [string, string];
granularity: "day" | "week" | "month" | "quarter" | "year";
label?: string;
type: "time";
})[];
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
measures: {
color?: string;
column?: string;
label?: string;
type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum";
}[];
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: AGGREGATE;
}
| {
columns?: (
| {
label?: string;
name: string;
}
| {
label?: string;
raw: string;
})[];
connection?: | {
config: {
access_key_id: string;
catalog: string;
database?: string;
output_location?: string;
region: string;
secret_access_key: string;
session_token?: string;
workgroup: string;
};
type: "athena";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "postgresql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
ssl: boolean;
user: string;
};
type: "mysql";
}
| {
config: {
database: string;
host: string;
password: string;
port: number;
schema?: string;
ssl: boolean;
user: string;
};
type: "redshift";
}
| {
config: {
dataset?: string;
location: string;
project_id: string;
service_account_key: string;
};
type: "bigquery";
}
| {
config: {
account: string;
database: string;
role?: string;
schema?: string;
token: string;
user: string;
warehouse: string;
};
type: "snowflake";
}
| {
config: {
database: string;
password: string;
url: string;
user: string;
};
type: "clickhouse";
}
| {
config: {
base_url: | "https://api.tinybird.co"
| "https://api.europe-west2.gcp.tinybird.co"
| "https://api.us-east.tinybird.co"
| "https://api.northamerica-northeast2.gcp.tinybird.co"
| "https://api.eu-central-1.aws.tinybird.co"
| "https://api.eu-west-1.aws.tinybird.co"
| "https://api.us-east.aws.tinybird.co"
| "https://api.us-west-2.aws.tinybird.co";
token: string;
};
type: "tinybird";
}
| {
config: {
catalog: string;
client_id: string;
client_secret: string;
host: string;
schema?: string;
warehouse_id: string;
};
type: "databricks";
};
connection_id?: string;
distinct?: boolean;
filters?: (
| {
column: string;
operator: "gt" | "gte" | "lt" | "lte";
values: string[];
}
| {
column: string;
operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters";
values: string[];
}
| {
column: string;
operator: "in" | "equals";
values: string[];
}
| {
column: string;
operator: "starts_with" | "contains" | "ends_with";
values: string[];
}
| {
column: string;
operator: "between";
values: string[];
}
| {
column: string;
operator: "is_null";
values: string[];
}
| {
column: string;
operator: "today" | "this_month" | "this_year" | "this_quarter";
values: string[];
})[];
joins?: {
from: string;
from_column: string;
to: string;
to_column: string;
type: "inner" | "left" | "right" | "full";
}[];
limit?: string | number;
offset?: string | number;
order_by?: {
column: string;
direction: "asc" | "desc";
}[];
parameters?: Record<string, string | number | boolean | string[]>;
type: TABLE;
}
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:68

JSONQL query to execute Can be set via attribute or inline script tag with slot=“query”

| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

set query(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:72

ParameterType
value| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; } | null

void

ReeflowElement.query

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowElement.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowElement.emitEvent

protected executeQuery(): Promise<QueryResult | null>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:197

Execute the current query and update component state

Promise<QueryResult | null>

ReeflowElement.executeQuery

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowElement.findProvider

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowElement.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowElement.log

refresh(): Promise<void>;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:234

Refresh data by re-executing the current query

Promise<void>

Promise that resolves when refresh is complete

ReeflowElement.refresh

render(): TemplateResult;

Defined in: apps/sdks/core/src/components/table/ReeflowTable.ts:242

Render the table component

TemplateResult

Template result with table structure

ReeflowElement.render
reset(includeQuery): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:242

Reset to initial state

ParameterTypeDefault valueDescription
includeQuerybooleanfalseWhether to also reset the query to null (default: false)

void

ReeflowElement.reset

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:136

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowElement.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:158

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowElement.disconnectedCallback

static styles: CSSResult;

Defined in: apps/sdks/core/src/components/table/ReeflowTable.ts:61

Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

Note on Content Security Policy:

Element styles are implemented with <style> tags when the browser doesn’t support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include ‘unsafe-inline’ or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page’s HTML, before loading application code:

<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>

ReeflowElement.styles

updated(changedProperties): void;

Defined in: apps/sdks/core/src/components/base/ReeflowElement.ts:186

Invoked whenever the element is updated. Implement to perform post-updating tasks via DOM APIs, for example, focusing an element.

Setting properties inside this method will trigger the element to update again after this update cycle completes.

ParameterType
changedPropertiesMap<string, unknown>

void

ReeflowElement.updated


Defined in: apps/sdks/core/src/components/workbook/ReeflowWorkbook.ts:36

Workbook component for displaying complete embedded workbooks

Loads a workbook by ID and displays all its pages with their components. Supports theming, multiple pages, and various component types.

<reeflow-workbook workbook-id="workbook_abc123"></reeflow-workbook>
<reeflow-workbook
workbook-id="workbook_abc123"
theme="ocean"
theme-mode="dark">
</reeflow-workbook>

reeflow-data-loaded - Fired when workbook data is successfully loaded. Detail: EmbeddedWorkbook

reeflow-workbook-page-change - Fired when the user switches to a different page. Detail: { page: number, previousPage: number }

reeflow-error - Fired when an error occurs. Detail: { code: string, message: string }

new ReeflowWorkbook(): ReeflowWorkbook;

Defined in: node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts:527

ReeflowWorkbook

ReeflowBaseComponent.constructor

theme: "default" | "ocean" = DEFAULT_THEME;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:39

ReeflowBaseComponent.theme

themeMode: ThemeMode = DEFAULT_THEME_MODE;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:42

ReeflowBaseComponent.themeMode

optional themeStyle: string;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:45

ReeflowBaseComponent.themeStyle

workbookId: string;

Defined in: apps/sdks/core/src/components/workbook/ReeflowWorkbook.ts:46

ID of the workbook to load

get state(): ReeflowComponentState;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:22

ReeflowComponentState

set state(value): void;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:26

ParameterType
valueReeflowComponentState

void

ReeflowBaseComponent.state

protected emitEvent<T>(type, data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:42

Emit a standardized Reeflow custom event

Events are prefixed with reeflow- and configured to bubble through shadow DOM.

Type Parameter
T extends ReeflowEventType
ParameterTypeDescription
typeTEvent type (becomes reeflow-${type})
data?unknownEvent detail payload

void

this.emitEvent('data-loaded', { rows: 100 });
// Dispatches event: 'reeflow-data-loaded' with detail: { rows: 100 }

ReeflowBaseComponent.emitEvent

protected findProvider():
| ReeflowProvider
| null;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:140

Find ReeflowProvider in the component tree with caching

| ReeflowProvider | null

ReeflowBaseComponent.findProvider

protected getProviderOrThrow(): ReeflowProvider;

Defined in: apps/sdks/core/src/components/base/ReeflowBaseComponent.ts:174

Get ReeflowProvider or throw an error if not found

ReeflowProvider

Error if ReeflowProvider is not found in the component tree

ReeflowBaseComponent.getProviderOrThrow

protected log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/components/base/ReeflowEventEmitter.ts:24

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelLog level (log, error, warn, info, debug)
messagestringMessage to log
data?unknownOptional additional data to include in log

void

ReeflowBaseComponent.log

refresh(): Promise<void>;

Defined in: apps/sdks/core/src/components/workbook/ReeflowWorkbook.ts:157

Refresh workbook data

Promise<void>

connectedCallback(): void;

Defined in: apps/sdks/core/src/components/workbook/ReeflowWorkbook.ts:73

Invoked when the component is added to the document’s DOM.

In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}

Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

void

ReeflowBaseComponent.connectedCallback

disconnectedCallback(): void;

Defined in: apps/sdks/core/src/components/workbook/ReeflowWorkbook.ts:88

Invoked when the component is removed from the document’s DOM.

This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}

An element may be re-connected after being disconnected.

void

ReeflowBaseComponent.disconnectedCallback

render(): TemplateResult<1>;

Defined in: apps/sdks/core/src/components/workbook/ReeflowWorkbook.ts:488

Invoked on each update to perform rendering tasks. This method may return any value renderable by lit-html’s ChildPart - typically a TemplateResult. Setting properties inside this method will not trigger the element to update.

TemplateResult<1>

ReeflowBaseComponent.render
static styles: CSSResult;

Defined in: apps/sdks/core/src/components/workbook/ReeflowWorkbook.ts:37

Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

Note on Content Security Policy:

Element styles are implemented with <style> tags when the browser doesn’t support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include ‘unsafe-inline’ or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page’s HTML, before loading application code:

<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>
ReeflowBaseComponent.styles
updated(changedProperties): void;

Defined in: apps/sdks/core/src/components/workbook/ReeflowWorkbook.ts:96

Invoked whenever the element is updated. Implement to perform post-updating tasks via DOM APIs, for example, focusing an element.

Setting properties inside this method will trigger the element to update again after this update cycle completes.

ParameterType
changedPropertiesMap<string, unknown>

void

ReeflowBaseComponent.updated

Defined in: apps/sdks/core/src/types.ts:84

API error structure Matches the standard NestJS error response format

PropertyTypeDescriptionDefined in
code?stringOptional application-specific error code (e.g., ‘VALIDATION_ERROR’)apps/sdks/core/src/types.ts:92
error?stringError type (e.g., ‘Bad Request’, ‘Unauthorized’, ‘Not Found’)apps/sdks/core/src/types.ts:90
messagestringHuman-readable error messageapps/sdks/core/src/types.ts:88
statusCodenumberHTTP status code (e.g., 400, 401, 404, 500)apps/sdks/core/src/types.ts:86

Defined in: packages/types/dist/index.d.mts:47116

Column information Metadata about query result columns

PropertyTypeDescriptionDefined in
color?stringOptional color metadata associated with the columnpackages/types/dist/index.d.mts:47126
label?stringOptional label associated with the columnpackages/types/dist/index.d.mts:47124
namestringColumn namepackages/types/dist/index.d.mts:47118
role?ColumnRoleOptional role hint for chart visualizationpackages/types/dist/index.d.mts:47122
typestringColumn data typepackages/types/dist/index.d.mts:47120

Defined in: packages/types/dist/index.d.mts:47092

Query execution result Shared type for all query results across the Reeflow ecosystem

PropertyTypeDescriptionDefined in
columnsColumnInfo[]Column metadatapackages/types/dist/index.d.mts:47096
compile_time_msnumberCompilation time in milliseconds (parsing + analysis + validation + transformation)packages/types/dist/index.d.mts:47102
compiled_sqlstringCompiled SQL query after placeholder replacement and validationpackages/types/dist/index.d.mts:47106
execution_time_msnumberExecution time in millisecondspackages/types/dist/index.d.mts:47100
row_countnumberNumber of rows returnedpackages/types/dist/index.d.mts:47098
rowsunknown[][]Array of rows, where each row is an array of column valuespackages/types/dist/index.d.mts:47094
sqlstringOriginal SQL query before compilationpackages/types/dist/index.d.mts:47104

Defined in: apps/sdks/core/src/types.ts:227

Typed Reeflow event

  • CustomEvent
Type Parameter
T extends ReeflowEventType
PropertyModifierTypeDescriptionOverridesDefined in
detailreadonlyReeflowEventDetail[T]Returns any custom data event was created with. Typically used for synthetic events. MDN ReferenceCustomEvent.detailapps/sdks/core/src/types.ts:229
typereadonly`reeflow-${T}`Returns the type of event, e.g. “click”, “hashchange”, or “submit”. MDN ReferenceCustomEvent.typeapps/sdks/core/src/types.ts:228

Defined in: apps/sdks/core/src/types.ts:178

Event detail mapping for type safety

This interface maps each Reeflow event type to its corresponding payload type. All events are prefixed with reeflow- when dispatched (e.g., reeflow-data-loaded).

// Listen to a typed event
element.addEventListener('reeflow-data-loaded', (e: ReeflowEvent<'data-loaded'>) => {
console.log(e.detail); // Type: QueryResult | EmbeddedWorkbook
});
PropertyTypeDescriptionDefined in
auth-change{ authToken: string; }Provider authentication token changedapps/sdks/core/src/types.ts:180
auth-change.authTokenstring-apps/sdks/core/src/types.ts:180
chart-clickChartClickDetailUser clicked on a chart data pointapps/sdks/core/src/types.ts:205
chart-hoverChartHoverDetailUser hovered over a chart data pointapps/sdks/core/src/types.ts:207
chart-legend-toggleChartLegendToggleDetailUser toggled a chart legend item visibilityapps/sdks/core/src/types.ts:209
control-value-change{ controlId: string; previousValue: unknown; value: unknown; }Control value changed (generic event from provider)apps/sdks/core/src/types.ts:213
control-value-change.controlIdstring-apps/sdks/core/src/types.ts:213
control-value-change.previousValueunknown-apps/sdks/core/src/types.ts:213
control-value-change.valueunknown-apps/sdks/core/src/types.ts:213
data-loaded| QueryResult | { description?: Record<string, string> | null; name: z.ZodRecord<z.ZodString, z.ZodString>; pages: { columns: number; content: ( | { config: { [key: string]: unknown; columns?: string[]; filters?: (… | … | … | … | … | … | …)[]; }; id: string; label?: string; layout: { height: number; width: number; x: number; y: number; }; query?: | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; parameters?: Record<…, …>; sql: string; type: SQL; } | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; dimensions?: …[]; filters?: …[]; joins?: …[]; limit?: string | number; measures: { color?: …; column?: …; label?: …; type: …; }[]; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: AGGREGATE; } | { columns?: …[]; connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; distinct?: boolean; filters?: …[]; joins?: …[]; limit?: string | number; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: TABLE; }; source?: { connection_id: string; database?: string; schema?: string; table: string; }; type: "table"; } | { config: { [key: string]: unknown; dimension?: | { column: string; label?: … | …; type: "categorical"; } | { column: string; date_range?: … | …; granularity: … | … | … | … | …; label?: … | …; type: "time"; }; filters?: (… | … | … | … | … | … | …)[]; measures?: { color?: …; column?: …; label?: …; type: …; }[]; }; id: string; label?: string; layout: { height: number; width: number; x: number; y: number; }; query?: | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; parameters?: Record<…, …>; sql: string; type: SQL; } | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; dimensions?: …[]; filters?: …[]; joins?: …[]; limit?: string | number; measures: { color?: …; column?: …; label?: …; type: …; }[]; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: AGGREGATE; } | { columns?: …[]; connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; distinct?: boolean; filters?: …[]; joins?: …[]; limit?: string | number; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: TABLE; }; source?: { connection_id: string; database?: string; schema?: string; table: string; }; type: "bar"; } | { config: { [key: string]: unknown; dimension?: | { column: string; label?: … | …; type: "categorical"; } | { column: string; date_range?: … | …; granularity: … | … | … | … | …; label?: … | …; type: "time"; }; filters?: (… | … | … | … | … | … | …)[]; measures?: { color?: …; column?: …; label?: …; type: …; }[]; }; id: string; label?: string; layout: { height: number; width: number; x: number; y: number; }; query?: | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; parameters?: Record<…, …>; sql: string; type: SQL; } | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; dimensions?: …[]; filters?: …[]; joins?: …[]; limit?: string | number; measures: { color?: …; column?: …; label?: …; type: …; }[]; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: AGGREGATE; } | { columns?: …[]; connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; distinct?: boolean; filters?: …[]; joins?: …[]; limit?: string | number; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: TABLE; }; source?: { connection_id: string; database?: string; schema?: string; table: string; }; type: "line"; } | { config: { [key: string]: unknown; filters?: (… | … | … | … | … | … | …)[]; label_field?: string; value_field?: string; }; id: string; label?: string; layout: { height: number; width: number; x: number; y: number; }; query?: | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; parameters?: Record<…, …>; sql: string; type: SQL; } | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; dimensions?: …[]; filters?: …[]; joins?: …[]; limit?: string | number; measures: { color?: …; column?: …; label?: …; type: …; }[]; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: AGGREGATE; } | { columns?: …[]; connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; distinct?: boolean; filters?: …[]; joins?: …[]; limit?: string | number; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: TABLE; }; source?: { connection_id: string; database?: string; schema?: string; table: string; }; type: "pie"; } | { config: { [key: string]: unknown; controlId: string; defaultValue?: string; disabled: boolean; max?: number; maxLength?: number; min?: number; minLength?: number; pattern?: string; placeholder?: string; required: boolean; type: "number" | "date" | "text" | "url" | "email"; }; id: string; label?: string; layout: { height: number; width: number; x: number; y: number; }; query?: | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; parameters?: Record<…, …>; sql: string; type: SQL; } | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; dimensions?: …[]; filters?: …[]; joins?: …[]; limit?: string | number; measures: { color?: …; column?: …; label?: …; type: …; }[]; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: AGGREGATE; } | { columns?: …[]; connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; distinct?: boolean; filters?: …[]; joins?: …[]; limit?: string | number; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: TABLE; }; source?: { connection_id: string; database?: string; schema?: string; table: string; }; type: "input"; } | { config: { [key: string]: unknown; controlId: string; defaultValue?: string; disabled: boolean; distinct: boolean; filters?: (… | … | … | … | … | … | …)[]; labelColumn?: string; multiple: boolean; options: { label: string; value: string; }[]; required: boolean; valueColumn?: string; }; id: string; label?: string; layout: { height: number; width: number; x: number; y: number; }; query?: | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; parameters?: Record<…, …>; sql: string; type: SQL; } | { connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; dimensions?: …[]; filters?: …[]; joins?: …[]; limit?: string | number; measures: { color?: …; column?: …; label?: …; type: …; }[]; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: AGGREGATE; } | { columns?: …[]; connection?: | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; } | { config: …; type: …; }; connection_id?: string; distinct?: boolean; filters?: …[]; joins?: …[]; limit?: string | number; offset?: string | number; order_by?: …[]; parameters?: Record<…, …>; type: TABLE; }; source?: { connection_id: string; database?: string; schema?: string; table: string; }; type: "select"; })[]; description?: Record<string, string> | null; max_rows: number; name: z.ZodRecord<z.ZodString, z.ZodString>; order: number; row_height: number; }[]; theme_css?: string; }Data was successfully loaded (QueryResult for tables/charts, EmbeddedWorkbook for workbooks)apps/sdks/core/src/types.ts:188
errorApiErrorAn error occurred during component operationapps/sdks/core/src/types.ts:186
input-validation-change{ controlId: string; errors: string[]; isValid: boolean; }Input control validation state changedapps/sdks/core/src/types.ts:221
input-validation-change.controlIdstring-apps/sdks/core/src/types.ts:221
input-validation-change.errorsstring[]-apps/sdks/core/src/types.ts:221
input-validation-change.isValidboolean-apps/sdks/core/src/types.ts:221
input-value-change{ controlId: string; previousValue: unknown; value: unknown; }Input control value changedapps/sdks/core/src/types.ts:219
input-value-change.controlIdstring-apps/sdks/core/src/types.ts:219
input-value-change.previousValueunknown-apps/sdks/core/src/types.ts:219
input-value-change.valueunknown-apps/sdks/core/src/types.ts:219
query-executing{ componentId: string; originalQuery: | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; }; parameterReferences: string[]; queryWithParams: | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; }; }Query is about to be executed with resolved parameters (for debugging/visualization)apps/sdks/core/src/types.ts:190
query-executing.componentIdstring-apps/sdks/core/src/types.ts:191
query-executing.originalQuery| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; }-apps/sdks/core/src/types.ts:192
query-executing.parameterReferencesstring[]-apps/sdks/core/src/types.ts:194
query-executing.queryWithParams| { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; parameters?: Record<string, string | number | boolean | string[]>; sql: string; type: SQL; } | { connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; dimensions?: ( | { column: string; label?: string; type: "categorical"; } | { column: string; date_range?: [string, string]; granularity: "day" | "week" | "month" | "quarter" | "year"; label?: string; type: "time"; })[]; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; measures: { color?: string; column?: string; label?: string; type: "avg" | "count" | "count_distinct" | "max" | "min" | "sum"; }[]; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: AGGREGATE; } | { columns?: ( | { label?: string; name: string; } | { label?: string; raw: string; })[]; connection?: | { config: { access_key_id: string; catalog: string; database?: string; output_location?: string; region: string; secret_access_key: string; session_token?: string; workgroup: string; }; type: "athena"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "postgresql"; } | { config: { database: string; host: string; password: string; port: number; ssl: boolean; user: string; }; type: "mysql"; } | { config: { database: string; host: string; password: string; port: number; schema?: string; ssl: boolean; user: string; }; type: "redshift"; } | { config: { dataset?: string; location: string; project_id: string; service_account_key: string; }; type: "bigquery"; } | { config: { account: string; database: string; role?: string; schema?: string; token: string; user: string; warehouse: string; }; type: "snowflake"; } | { config: { database: string; password: string; url: string; user: string; }; type: "clickhouse"; } | { config: { base_url: | "https://api.tinybird.co" | "https://api.europe-west2.gcp.tinybird.co" | "https://api.us-east.tinybird.co" | "https://api.northamerica-northeast2.gcp.tinybird.co" | "https://api.eu-central-1.aws.tinybird.co" | "https://api.eu-west-1.aws.tinybird.co" | "https://api.us-east.aws.tinybird.co" | "https://api.us-west-2.aws.tinybird.co"; token: string; }; type: "tinybird"; } | { config: { catalog: string; client_id: string; client_secret: string; host: string; schema?: string; warehouse_id: string; }; type: "databricks"; }; connection_id?: string; distinct?: boolean; filters?: ( | { column: string; operator: "gt" | "gte" | "lt" | "lte"; values: string[]; } | { column: string; operator: "last_n_days" | "last_n_months" | "last_n_years" | "last_n_quarters"; values: string[]; } | { column: string; operator: "in" | "equals"; values: string[]; } | { column: string; operator: "starts_with" | "contains" | "ends_with"; values: string[]; } | { column: string; operator: "between"; values: string[]; } | { column: string; operator: "is_null"; values: string[]; } | { column: string; operator: "today" | "this_month" | "this_year" | "this_quarter"; values: string[]; })[]; joins?: { from: string; from_column: string; to: string; to_column: string; type: "inner" | "left" | "right" | "full"; }[]; limit?: string | number; offset?: string | number; order_by?: { column: string; direction: "asc" | "desc"; }[]; parameters?: Record<string, string | number | boolean | string[]>; type: TABLE; }-apps/sdks/core/src/types.ts:193
select-options-loaded{ controlId: string; options: { label: string; value: unknown; }[]; }Select control options loaded from serverapps/sdks/core/src/types.ts:217
select-options-loaded.controlIdstring-apps/sdks/core/src/types.ts:217
select-options-loaded.options{ label: string; value: unknown; }[]-apps/sdks/core/src/types.ts:217
select-value-change{ controlId: string; previousValue: unknown; value: unknown; }Select control value changedapps/sdks/core/src/types.ts:215
select-value-change.controlIdstring-apps/sdks/core/src/types.ts:215
select-value-change.previousValueunknown-apps/sdks/core/src/types.ts:215
select-value-change.valueunknown-apps/sdks/core/src/types.ts:215
state-change{ oldState: ReeflowComponentState; state: ReeflowComponentState; }Component state changed (loading, ready, error, etc.)apps/sdks/core/src/types.ts:184
state-change.oldStateReeflowComponentState-apps/sdks/core/src/types.ts:184
state-change.stateReeflowComponentState-apps/sdks/core/src/types.ts:184
table-page-change{ page: number; }Table page changed (pagination)apps/sdks/core/src/types.ts:201
table-page-change.pagenumber-apps/sdks/core/src/types.ts:201
table-row-click{ row: Record<string, unknown> | unknown[]; }User clicked on a table rowapps/sdks/core/src/types.ts:197
table-row-click.rowRecord<string, unknown> | unknown[]-apps/sdks/core/src/types.ts:197
table-search-change{ searchTerm: string; }Table search term changedapps/sdks/core/src/types.ts:203
table-search-change.searchTermstring-apps/sdks/core/src/types.ts:203
table-sort-change{ column: string; direction: "asc" | "desc"; }Table sorting changedapps/sdks/core/src/types.ts:199
table-sort-change.columnstring-apps/sdks/core/src/types.ts:199
table-sort-change.direction"asc" | "desc"-apps/sdks/core/src/types.ts:199
theme-changeThemeChangedTheme or theme mode changedapps/sdks/core/src/types.ts:182
workbook-page-change{ page: number; previousPage: number; }Workbook page/tab changedapps/sdks/core/src/types.ts:211
workbook-page-change.pagenumber-apps/sdks/core/src/types.ts:211
workbook-page-change.previousPagenumber-apps/sdks/core/src/types.ts:211

Defined in: apps/sdks/core/src/components/controls/ReeflowSelect.ts:11

Option item for ReeflowSelect

PropertyTypeDefined in
labelstringapps/sdks/core/src/components/controls/ReeflowSelect.ts:13
selected?booleanapps/sdks/core/src/components/controls/ReeflowSelect.ts:14
valueunknownapps/sdks/core/src/components/controls/ReeflowSelect.ts:12
type ConnectionConfig = z.infer<typeof ConnectionConfigSchema>;

Defined in: packages/types/dist/index.d.mts:1465


type DataSourceType = typeof DataSourceTypes[number];

Defined in: packages/types/dist/index.d.mts:1253


type EmbeddedWorkbook = z.infer<typeof EmbeddedWorkbookSchema>;

Defined in: packages/types/dist/index.d.mts:16568


type InputType = "text" | "number" | "date" | "daterange" | "email" | "url";

Defined in: apps/sdks/core/src/components/controls/ReeflowInput.ts:11

Input type for ReeflowInput


type JSONQLQuery = z.infer<typeof JSONQLSchema>;

Defined in: packages/types/dist/index.d.mts:47064


type ReeflowComponentState = "initializing" | "loading" | "error" | "ready" | "empty";

Defined in: apps/sdks/core/src/types.ts:36

State type for Reeflow components


type ReeflowEventType =
| "auth-change"
| "theme-change"
| "state-change"
| "error"
| "data-loaded"
| "query-executing"
| "table-row-click"
| "table-sort-change"
| "table-page-change"
| "table-search-change"
| "chart-click"
| "chart-hover"
| "chart-legend-toggle"
| "workbook-page-change"
| "control-value-change"
| "select-value-change"
| "select-options-loaded"
| "input-value-change"
| "input-validation-change";

Defined in: apps/sdks/core/src/types.ts:98

Reeflow event types


type ThemeMode = "light" | "dark" | "auto";

Defined in: apps/sdks/core/src/styles/themes/index.ts:28


type ThemeName = keyof typeof themes;

Defined in: apps/sdks/core/src/styles/themes/index.ts:25


type ThemeTokens = z.infer<typeof themeTokensSchema>;

Defined in: packages/themes/dist/index.d.mts:246

TypeScript type inferred from Zod schema

const availableThemeModes: ThemeMode[];

Defined in: apps/sdks/core/src/styles/themes/index.ts:34


const availableThemes: ThemeName[];

Defined in: apps/sdks/core/src/styles/themes/index.ts:31


const ThemesCSS: {
default: string;
ocean: string;
};

Defined in: apps/sdks/core/src/styles/themes/index.ts:19

NameTypeDefault valueDefined in
defaultstringdefaultThemeapps/sdks/core/src/styles/themes/index.ts:20
oceanstringoceanThemeapps/sdks/core/src/styles/themes/index.ts:21

const version: "0.0.1" = '0.0.1';

Defined in: apps/sdks/core/src/index.ts:25

function log(
level,
message,
data?): void;

Defined in: apps/sdks/core/src/utils/logger.ts:14

Log a message with Reeflow prefix

ParameterTypeDescription
levelLogLevelThe log level (log, error, warn, info, debug)
messagestringThe message to log
data?unknownOptional additional data to log

void