diff --git a/vuu-ui/packages/vuu-data-ag-grid/src/ViewportRowModelDataSource.ts b/vuu-ui/packages/vuu-data-ag-grid/src/ViewportRowModelDataSource.ts index decca8b38..d453c96e4 100644 --- a/vuu-ui/packages/vuu-data-ag-grid/src/ViewportRowModelDataSource.ts +++ b/vuu-ui/packages/vuu-data-ag-grid/src/ViewportRowModelDataSource.ts @@ -85,6 +85,7 @@ export class ViewportRowModelDataSource { if (itemsOrOrderChanged(this.columns, columns)) { this.columns = columns; this.columnMap = buildColumnMap(columns); + this.reverseColumnMap = reverseColumnMap(this.columnMap); } } }; diff --git a/vuu-ui/packages/vuu-data-local/src/array-data-source/array-data-source.ts b/vuu-ui/packages/vuu-data-local/src/array-data-source/array-data-source.ts index 0325a4477..66e911d13 100644 --- a/vuu-ui/packages/vuu-data-local/src/array-data-source/array-data-source.ts +++ b/vuu-ui/packages/vuu-data-local/src/array-data-source/array-data-source.ts @@ -6,6 +6,7 @@ import { DataSourceFilter, DataSourceRow, DataSourceStatus, + DataSourceSubscribedMessage, MenuRpcResponse, Selection, SubscribeCallback, @@ -216,13 +217,15 @@ export class ArrayDataSource }; } - this.clientCallback?.({ + const subscribedMessage: DataSourceSubscribedMessage = { ...config, type: "subscribed", clientViewportId: this.viewport, range: this.#range, tableSchema: this.tableSchema, - }); + }; + this.clientCallback?.(subscribedMessage); + this.emit("subscription-open", subscribedMessage); if (hasConfigProps) { // invoke setter to action config diff --git a/vuu-ui/packages/vuu-data-remote/src/vuu-data-source.ts b/vuu-ui/packages/vuu-data-remote/src/vuu-data-source.ts index 4308175df..a56934b75 100644 --- a/vuu-ui/packages/vuu-data-remote/src/vuu-data-source.ts +++ b/vuu-ui/packages/vuu-data-remote/src/vuu-data-source.ts @@ -191,6 +191,7 @@ export class VuuDataSource this.#status = "subscribed"; this.tableSchema = message.tableSchema; this.clientCallback?.(message); + this.emit("subscription-open", message); } else if (message.type === "disabled") { this.#status = "disabled"; } else if (message.type === "enabled") { diff --git a/vuu-ui/packages/vuu-data-types/index.d.ts b/vuu-ui/packages/vuu-data-types/index.d.ts index 665003c9f..a9eb5e2c8 100644 --- a/vuu-ui/packages/vuu-data-types/index.d.ts +++ b/vuu-ui/packages/vuu-data-types/index.d.ts @@ -339,6 +339,7 @@ export type DataSourceEvents = { optimize: (optimize: OptimizeStrategy) => void; range: (range: VuuRange) => void; resize: (size: number) => void; + "subscription-open": (subscription: DataSourceSubscribedMessage) => void; }; /**