@vuu-ui/vuu-filters 0.8.14-debug → 0.8.15-debug

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/cjs/index.js +521 -127
  2. package/cjs/index.js.map +4 -4
  3. package/esm/index.js +514 -109
  4. package/esm/index.js.map +4 -4
  5. package/index.css +16 -18
  6. package/index.css.map +2 -2
  7. package/package.json +10 -10
  8. package/types/vuu-data/src/array-data-source/aggregate-utils.d.ts +8 -0
  9. package/types/vuu-data/src/array-data-source/array-data-source.d.ts +84 -0
  10. package/types/vuu-data/src/array-data-source/array-data-utils.d.ts +5 -0
  11. package/types/vuu-data/src/array-data-source/group-utils.d.ts +10 -0
  12. package/types/vuu-data/src/array-data-source/sort-utils.d.ts +4 -0
  13. package/types/vuu-data/src/authenticate.d.ts +1 -0
  14. package/types/vuu-data/src/connection-manager.d.ts +50 -0
  15. package/types/vuu-data/src/connectionTypes.d.ts +5 -0
  16. package/types/vuu-data/src/constants.d.ts +41 -0
  17. package/types/vuu-data/src/data-source.d.ts +237 -0
  18. package/types/vuu-data/src/index.d.ts +10 -0
  19. package/types/vuu-data/src/inlined-worker.d.ts +1 -0
  20. package/types/vuu-data/src/json-data-source.d.ts +56 -0
  21. package/types/vuu-data/src/message-utils.d.ts +28 -0
  22. package/types/vuu-data/src/remote-data-source.d.ts +65 -0
  23. package/types/vuu-data/src/server-proxy/messages.d.ts +38 -0
  24. package/types/vuu-data/src/vuuUIMessageTypes.d.ts +228 -0
  25. package/types/vuu-data/src/websocket-connection.d.ts +25 -0
  26. package/types/vuu-filters/src/filter-bar/FilterBarMenu.d.ts +2 -0
  27. package/types/{filter-bar → vuu-filters/src/filter-bar}/useFilterBar.d.ts +10 -5
  28. package/types/vuu-filters/src/filter-bar/useFilterBarMenu.d.ts +5 -0
  29. package/types/{filter-bar → vuu-filters/src/filter-bar}/useFilters.d.ts +3 -1
  30. package/types/{filter-builder-menu → vuu-filters/src/filter-builder-menu}/FilterBuilderMenu.d.ts +3 -1
  31. package/types/{filter-clause → vuu-filters/src/filter-clause}/FilterClauseEditor.d.ts +6 -2
  32. package/types/{filter-clause → vuu-filters/src/filter-clause}/TextInput.d.ts +1 -0
  33. package/types/{filter-clause → vuu-filters/src/filter-clause}/filterClauseTypes.d.ts +4 -1
  34. package/types/{filter-clause → vuu-filters/src/filter-clause}/useFilterClauseEditor.d.ts +9 -3
  35. package/types/{filter-pill → vuu-filters/src/filter-pill}/FilterPill.d.ts +1 -1
  36. package/types/vuu-filters/src/filter-pill/filterAsReactNode.d.ts +3 -0
  37. package/types/{filter-utils.d.ts → vuu-filters/src/filter-utils.d.ts} +2 -1
  38. /package/types/{column-filter → vuu-filters/src/column-filter}/utils.d.ts +0 -0
  39. /package/types/{filter-bar → vuu-filters/src/filter-bar}/FilterBar.d.ts +0 -0
  40. /package/types/{filter-bar → vuu-filters/src/filter-bar}/index.d.ts +0 -0
  41. /package/types/{filter-builder-menu → vuu-filters/src/filter-builder-menu}/index.d.ts +0 -0
  42. /package/types/{filter-clause → vuu-filters/src/filter-clause}/ExpandoCombobox.d.ts +0 -0
  43. /package/types/{filter-clause → vuu-filters/src/filter-clause}/FilterMenu.d.ts +0 -0
  44. /package/types/{filter-clause → vuu-filters/src/filter-clause}/FilterMenuOptions.d.ts +0 -0
  45. /package/types/{filter-clause → vuu-filters/src/filter-clause}/NumericInput.d.ts +0 -0
  46. /package/types/{filter-clause → vuu-filters/src/filter-clause}/index.d.ts +0 -0
  47. /package/types/{filter-clause → vuu-filters/src/filter-clause}/operator-utils.d.ts +0 -0
  48. /package/types/{filter-input → vuu-filters/src/filter-input}/FilterInput.d.ts +0 -0
  49. /package/types/{filter-input → vuu-filters/src/filter-input}/FilterLanguage.d.ts +0 -0
  50. /package/types/{filter-input → vuu-filters/src/filter-input}/filterInfo.d.ts +0 -0
  51. /package/types/{filter-input → vuu-filters/src/filter-input}/highlighting.d.ts +0 -0
  52. /package/types/{filter-input → vuu-filters/src/filter-input}/index.d.ts +0 -0
  53. /package/types/{filter-input → vuu-filters/src/filter-input}/theme.d.ts +0 -0
  54. /package/types/{filter-input → vuu-filters/src/filter-input}/useCodeMirrorEditor.d.ts +0 -0
  55. /package/types/{filter-input → vuu-filters/src/filter-input}/useFilterAutoComplete.d.ts +0 -0
  56. /package/types/{filter-input → vuu-filters/src/filter-input}/useFilterSuggestionProvider.d.ts +0 -0
  57. /package/types/{filter-pill → vuu-filters/src/filter-pill}/index.d.ts +0 -0
  58. /package/types/{filter-pill-menu → vuu-filters/src/filter-pill-menu}/FilterPillMenu.d.ts +0 -0
  59. /package/types/{filter-pill-menu → vuu-filters/src/filter-pill-menu}/FilterPillMenuOptions.d.ts +0 -0
  60. /package/types/{filter-pill-menu → vuu-filters/src/filter-pill-menu}/index.d.ts +0 -0
  61. /package/types/{index.d.ts → vuu-filters/src/index.d.ts} +0 -0
  62. /package/types/{local-config.d.ts → vuu-filters/src/local-config.d.ts} +0 -0
  63. /package/types/{use-filter-config.d.ts → vuu-filters/src/use-filter-config.d.ts} +0 -0
  64. /package/types/{use-rest-config.d.ts → vuu-filters/src/use-rest-config.d.ts} +0 -0
@@ -0,0 +1,65 @@
1
+ import { DataSourceFilter, DataSourceRow } from "@vuu-ui/vuu-data-types";
2
+ import { Selection } from "@vuu-ui/vuu-table-types";
3
+ import { ClientToServerEditRpc, ClientToServerMenuRPC, ClientToServerViewportRpcCall, LinkDescriptorWithLabel, VuuAggregation, VuuDataRowDto, VuuGroupBy, VuuMenu, VuuRange, VuuRowDataItemType, VuuSort, VuuTable } from "@vuu-ui/vuu-protocol-types";
4
+ import { EventEmitter } from "@vuu-ui/vuu-utils";
5
+ import { DataSource, DataSourceCallbackMessage, DataSourceConfig, DataSourceConstructorProps, DataSourceEvents, DataSourceStatus, OptimizeStrategy, RpcResponse, SubscribeCallback, SubscribeProps } from "./data-source";
6
+ import { MenuRpcResponse } from "./vuuUIMessageTypes";
7
+ import { TableSchema } from "./message-utils";
8
+ export declare class RemoteDataSource extends EventEmitter<DataSourceEvents> implements DataSource {
9
+ #private;
10
+ private bufferSize;
11
+ private server;
12
+ private clientCallback;
13
+ private configChangePending;
14
+ private rangeRequest;
15
+ table: VuuTable;
16
+ tableSchema: TableSchema | undefined;
17
+ viewport: string | undefined;
18
+ constructor({ bufferSize, aggregations, columns, filter, groupBy, sort, table, title, viewport, visualLink, }: DataSourceConstructorProps);
19
+ subscribe({ viewport, columns, aggregations, range, sort, groupBy, filter, }: SubscribeProps, callback: SubscribeCallback): Promise<void>;
20
+ handleMessageFromServer: (message: DataSourceCallbackMessage) => void;
21
+ unsubscribe(): void;
22
+ suspend(): this;
23
+ resume(): this;
24
+ disable(): this;
25
+ enable(callback?: SubscribeCallback): this;
26
+ select(selected: Selection): void;
27
+ openTreeNode(key: string): void;
28
+ closeTreeNode(key: string): void;
29
+ get links(): LinkDescriptorWithLabel[] | undefined;
30
+ get menu(): VuuMenu | undefined;
31
+ get status(): DataSourceStatus;
32
+ get optimize(): OptimizeStrategy;
33
+ set optimize(optimize: OptimizeStrategy);
34
+ private revertDebounce;
35
+ get selectedRowsCount(): number;
36
+ get size(): number;
37
+ get range(): VuuRange;
38
+ set range(range: VuuRange);
39
+ private rawRangeRequest;
40
+ private debounceRangeRequest;
41
+ private throttleRangeRequest;
42
+ get config(): DataSourceConfig;
43
+ set config(config: DataSourceConfig);
44
+ applyConfig(config: DataSourceConfig): true | undefined;
45
+ get columns(): string[];
46
+ set columns(columns: string[]);
47
+ get aggregations(): VuuAggregation[];
48
+ set aggregations(aggregations: VuuAggregation[]);
49
+ get sort(): VuuSort;
50
+ set sort(sort: VuuSort);
51
+ get filter(): DataSourceFilter;
52
+ set filter(filter: DataSourceFilter);
53
+ get groupBy(): VuuGroupBy;
54
+ set groupBy(groupBy: VuuGroupBy);
55
+ get title(): string | undefined;
56
+ set title(title: string | undefined);
57
+ get visualLink(): LinkDescriptorWithLabel | undefined;
58
+ set visualLink(visualLink: LinkDescriptorWithLabel | undefined);
59
+ private setConfigPending;
60
+ rpcCall<T extends RpcResponse = RpcResponse>(rpcRequest: Omit<ClientToServerViewportRpcCall, "vpId">): Promise<T | undefined>;
61
+ menuRpcCall(rpcRequest: Omit<ClientToServerMenuRPC, "vpId"> | ClientToServerEditRpc): Promise<MenuRpcResponse | undefined>;
62
+ applyEdit(row: DataSourceRow, columnName: string, value: VuuRowDataItemType): Promise<string | true>;
63
+ insertRow(key: string, data: VuuDataRowDto): Promise<string | true>;
64
+ deleteRow(rowKey: string): Promise<string | true>;
65
+ }
@@ -0,0 +1,38 @@
1
+ export declare const CHANGE_VP_SUCCESS = "CHANGE_VP_SUCCESS";
2
+ export declare const CHANGE_VP_RANGE_SUCCESS = "CHANGE_VP_RANGE_SUCCESS";
3
+ export declare const CLOSE_TREE_NODE = "CLOSE_TREE_NODE";
4
+ export declare const CLOSE_TREE_SUCCESS = "CLOSE_TREE_SUCCESS";
5
+ export declare const CLOSE_TREE_REJECT = "CLOSE_TREE_REJECT";
6
+ export declare const CREATE_VISUAL_LINK = "CREATE_VISUAL_LINK";
7
+ export declare const CREATE_VP = "CREATE_VP";
8
+ export declare const DISABLE_VP = "DISABLE_VP";
9
+ export declare const DISABLE_VP_SUCCESS = "DISABLE_VP_SUCCESS";
10
+ export declare const DISABLE_VP_REJECT = "DISABLE_VP_REJECT";
11
+ export declare const ENABLE_VP = "ENABLE_VP";
12
+ export declare const ENABLE_VP_SUCCESS = "ENABLE_VP_SUCCESS";
13
+ export declare const ENABLE_VP_REJECT = "ENABLE_VP_REJECT";
14
+ export declare const GET_TABLE_META = "GET_TABLE_META";
15
+ export declare const GET_VP_VISUAL_LINKS = "GET_VP_VISUAL_LINKS";
16
+ export declare const GET_VIEW_PORT_MENUS = "GET_VIEW_PORT_MENUS";
17
+ export declare const VIEW_PORT_MENUS_SELECT_RPC = "VIEW_PORT_MENUS_SELECT_RPC";
18
+ export declare const VIEW_PORT_MENU_CELL_RPC = "VIEW_PORT_MENU_CELL_RPC";
19
+ export declare const VIEW_PORT_MENU_TABLE_RPC = "VIEW_PORT_MENU_TABLE_RPC";
20
+ export declare const VIEW_PORT_MENU_ROW_RPC = "VIEW_PORT_MENU_ROW_RPC";
21
+ export declare const VIEW_PORT_MENU_RESP = "VIEW_PORT_MENU_RESP";
22
+ export declare const VIEW_PORT_MENU_REJ = "VIEW_PORT_MENU_REJ";
23
+ export declare const HB = "HB";
24
+ export declare const HB_RESP = "HB_RESP";
25
+ export declare const LOGIN = "LOGIN";
26
+ export declare const OPEN_TREE_NODE = "OPEN_TREE_NODE";
27
+ export declare const OPEN_TREE_SUCCESS = "OPEN_TREE_SUCCESS";
28
+ export declare const OPEN_TREE_REJECT = "OPEN_TREE_REJECT";
29
+ export declare const REMOVE_VP = "REMOVE_VP";
30
+ export declare const REMOVE_VP_REJECT = "REMOVE_VP_REJECT";
31
+ export declare const RPC_CALL = "RPC_CALL";
32
+ export declare const RPC_RESP = "RPC_RESP";
33
+ export declare const MENU_RPC_RESP = "MENU_RPC_RESP";
34
+ export declare const SET_SELECTION = "SET_SELECTION";
35
+ export declare const SET_SELECTION_SUCCESS = "SET_SELECTION_SUCCESS";
36
+ export declare const TABLE_ROW = "TABLE_ROW";
37
+ export declare const SIZE = "SIZE";
38
+ export declare const UPDATE = "U";
@@ -0,0 +1,228 @@
1
+ import { ClientToServerTableList, ClientToServerTableMeta, LinkDescriptorWithLabel, ServerToClientBody, ServerToClientMenuSessionTableAction, ServerToClientViewportRpcResponse, TypeAheadMethod, VuuAggregation, VuuColumns, VuuGroupBy, VuuRange, VuuSort, VuuTable } from "@vuu-ui/vuu-protocol-types";
2
+ import { DataSourceFilter } from "@vuu-ui/vuu-data-types";
3
+ import { TableSchema, WithRequestId } from "./message-utils";
4
+ import { DataSourceMenusMessage, DataSourceVisualLinkCreatedMessage, DataSourceVisualLinkRemovedMessage, DataSourceVisualLinksMessage, RpcResponse, VuuFeatureInvocationMessage, VuuFeatureMessage, WithFullConfig } from "./data-source";
5
+ import { GridAction, Selection } from "@vuu-ui/vuu-table-types";
6
+ import { WebSocketProtocol } from "./websocket-connection";
7
+ export interface OpenDialogAction {
8
+ type: "OPEN_DIALOG_ACTION";
9
+ tableSchema?: TableSchema;
10
+ table?: VuuTable;
11
+ }
12
+ export interface NoAction {
13
+ type: "NO_ACTION";
14
+ }
15
+ export declare type MenuRpcAction = OpenDialogAction | NoAction;
16
+ export type ConnectionStatus = "connecting" | "connection-open-awaiting-session" | "connected" | "disconnected" | "reconnected";
17
+ export interface ConnectionStatusMessage {
18
+ type: "connection-status";
19
+ reason?: string;
20
+ retry?: boolean;
21
+ status: ConnectionStatus;
22
+ }
23
+ export declare const isConnectionStatusMessage: (msg: object | ConnectionStatusMessage) => msg is ConnectionStatusMessage;
24
+ export interface ConnectionQualityMetrics {
25
+ type: "connection-metrics";
26
+ messagesLength: number;
27
+ }
28
+ export declare const isConnectionQualityMetrics: (msg: object) => msg is ConnectionQualityMetrics;
29
+ export interface ServerProxySubscribeMessage {
30
+ aggregations: VuuAggregation[];
31
+ bufferSize?: number;
32
+ columns: VuuColumns;
33
+ filter: DataSourceFilter;
34
+ groupBy: VuuGroupBy;
35
+ range: VuuRange;
36
+ sort: VuuSort;
37
+ table: VuuTable;
38
+ title?: string;
39
+ viewport: string;
40
+ visualLink?: LinkDescriptorWithLabel;
41
+ }
42
+ export type VuuUIMessageInConnected = {
43
+ type: "connected";
44
+ };
45
+ export type VuuUIMessageInWorkerReady = {
46
+ type: "ready";
47
+ };
48
+ export interface ViewportMessageIn {
49
+ clientViewportId: string;
50
+ }
51
+ export interface VuuUIMessageInRPC {
52
+ method: string;
53
+ result: unknown;
54
+ requestId: string;
55
+ type: "RPC_RESP";
56
+ }
57
+ export interface VuuUIMessageInRPCEditReject {
58
+ error: string;
59
+ requestId?: string;
60
+ type: "VP_EDIT_RPC_REJECT";
61
+ }
62
+ export interface VuuUIMessageInRPCEditResponse {
63
+ action: unknown;
64
+ requestId: string;
65
+ rpcName: string;
66
+ type: "VP_EDIT_RPC_RESPONSE";
67
+ }
68
+ export declare const messageHasResult: (msg: object) => msg is VuuUIMessageInRPC;
69
+ export declare const isTableSchema: (message: VuuUIMessageIn) => message is VuuUIMessageInTableMeta;
70
+ export interface VuuUIMessageInTableList {
71
+ requestId: string;
72
+ type: "TABLE_LIST_RESP";
73
+ tables: VuuTable[];
74
+ }
75
+ export interface VuuUIMessageInTableMeta {
76
+ requestId: string;
77
+ tableSchema: TableSchema;
78
+ type: "TABLE_META_RESP";
79
+ }
80
+ export interface MenuRpcResponse {
81
+ action: MenuRpcAction;
82
+ error?: string;
83
+ requestId: string;
84
+ rpcName?: string;
85
+ tableAlreadyOpen?: boolean;
86
+ type: "VIEW_PORT_MENU_RESP";
87
+ }
88
+ export interface ViewportRpcResponse {
89
+ action: ServerToClientViewportRpcResponse["action"];
90
+ requestId: string;
91
+ rpcName?: string;
92
+ type: "VIEW_PORT_RPC_RESPONSE";
93
+ }
94
+ export interface MenuRpcReject extends ViewportMessageIn {
95
+ error?: string;
96
+ requestId: string;
97
+ rpcName?: string;
98
+ type: "VIEW_PORT_MENU_REJ";
99
+ }
100
+ export interface VuuUIMessageInMenuRej {
101
+ error: string;
102
+ requestId: string;
103
+ rpcName: string;
104
+ type: "VIEW_PORT_MENU_REJ";
105
+ }
106
+ export type VuuUIMessageIn = VuuUIMessageInConnected | VuuUIMessageInWorkerReady | VuuUIMessageInRPC | ViewportRpcResponse | MenuRpcResponse | MenuRpcReject | VuuUIMessageInTableList | VuuUIMessageInTableMeta | VuuUIMessageInRPCEditReject | VuuUIMessageInRPCEditResponse;
107
+ export declare const isErrorResponse: (response?: RpcResponse) => response is VuuUIMessageInRPCEditReject;
108
+ export declare const hasAction: (response?: RpcResponse) => response is MenuRpcResponse | VuuUIMessageInRPCEditResponse;
109
+ export interface VuuUIMessageOutConnect {
110
+ protocol: WebSocketProtocol;
111
+ type: "connect";
112
+ token: string;
113
+ url: string;
114
+ username?: string;
115
+ retryLimitDisconnect?: number;
116
+ retryLimitStartup?: number;
117
+ }
118
+ export interface VuuUIMessageOutSubscribe extends ServerProxySubscribeMessage {
119
+ type: "subscribe";
120
+ }
121
+ export interface VuuUIMessageOutUnsubscribe {
122
+ type: "unsubscribe";
123
+ viewport: string;
124
+ }
125
+ export interface VuuUIMessageOutSuspend {
126
+ type: "suspend";
127
+ viewport: string;
128
+ }
129
+ export interface VuuUIMessageOutResume {
130
+ type: "resume";
131
+ viewport: string;
132
+ }
133
+ export interface ViewportMessageOut {
134
+ viewport: string;
135
+ }
136
+ export interface RequestMessage {
137
+ requestId: string;
138
+ }
139
+ export interface VuuUIMessageOutColumns extends ViewportMessageOut {
140
+ type: "setColumns";
141
+ columns: string[];
142
+ }
143
+ export interface VuuUIMessageOutViewRange extends ViewportMessageOut {
144
+ type: "setViewRange";
145
+ range: {
146
+ from: number;
147
+ to: number;
148
+ };
149
+ }
150
+ export interface VuuUIMessageOutAggregate extends ViewportMessageOut {
151
+ aggregations: VuuAggregation[];
152
+ type: "aggregate";
153
+ }
154
+ export interface VuuUIMessageOutCloseTreeNode extends ViewportMessageOut {
155
+ key: string;
156
+ type: "closeTreeNode";
157
+ }
158
+ export interface VuuUIMessageOutCreateLink extends ViewportMessageOut {
159
+ childColumnName: string;
160
+ parentColumnName: string;
161
+ parentClientVpId: string;
162
+ type: "createLink";
163
+ }
164
+ export interface VuuUIMessageOutRemoveLink extends ViewportMessageOut {
165
+ type: "removeLink";
166
+ }
167
+ export interface VuuUIMessageOutSetTitle extends ViewportMessageOut {
168
+ title: string;
169
+ type: "setTitle";
170
+ }
171
+ export interface VuuUIMessageOutDisable extends ViewportMessageOut {
172
+ type: "disable";
173
+ }
174
+ export interface VuuUIMessageOutEnable extends ViewportMessageOut {
175
+ type: "enable";
176
+ }
177
+ export interface VuuUIMessageOutOpenTreeNode extends ViewportMessageOut {
178
+ key: string;
179
+ type: "openTreeNode";
180
+ }
181
+ export interface VuuUIMessageOutResume extends ViewportMessageOut {
182
+ type: "resume";
183
+ }
184
+ export interface VuuUIMessageOutSelect extends ViewportMessageOut {
185
+ selected: Selection;
186
+ type: "select";
187
+ }
188
+ export interface VuuUIMessageOutSelectAll extends ViewportMessageOut {
189
+ type: "selectAll";
190
+ }
191
+ export interface VuuUIMessageOutSelectNone extends ViewportMessageOut {
192
+ type: "selectNone";
193
+ }
194
+ export interface VuuUIMessageOutSort extends ViewportMessageOut {
195
+ sort: VuuSort;
196
+ type: "sort";
197
+ }
198
+ export interface VuuUIMessageOutSuspend extends ViewportMessageOut {
199
+ type: "suspend";
200
+ }
201
+ export interface VuuUIMessageOutFilter extends ViewportMessageOut {
202
+ filter: DataSourceFilter;
203
+ type: "filter";
204
+ }
205
+ export interface VuuUIMessageOutGroupby extends ViewportMessageOut {
206
+ groupBy: VuuGroupBy;
207
+ type: "groupBy";
208
+ }
209
+ export interface VuuUIMessageOutConfig extends ViewportMessageOut {
210
+ config: WithFullConfig;
211
+ type: "config";
212
+ }
213
+ export type VuuUIMessageOutViewport = VuuUIMessageOutAggregate | VuuUIMessageOutCloseTreeNode | VuuUIMessageOutColumns | VuuUIMessageOutConfig | VuuUIMessageOutCreateLink | VuuUIMessageOutFilter | VuuUIMessageOutDisable | VuuUIMessageOutEnable | VuuUIMessageOutGroupby | VuuUIMessageOutOpenTreeNode | VuuUIMessageOutRemoveLink | VuuUIMessageOutResume | VuuUIMessageOutSelect | VuuUIMessageOutSelectAll | VuuUIMessageOutSelectNone | VuuUIMessageOutSetTitle | VuuUIMessageOutSuspend | VuuUIMessageOutSort | VuuUIMessageOutViewRange;
214
+ export declare const isViewporttMessage: (msg: object) => msg is VuuUIMessageOutViewport;
215
+ export interface TypeAheadRpcRequest {
216
+ method: TypeAheadMethod;
217
+ params: [VuuTable, ...string[]];
218
+ type: "RPC_CALL";
219
+ }
220
+ export type VuuUIMessageOut = VuuUIMessageOutConnect | VuuUIMessageOutSubscribe | VuuUIMessageOutUnsubscribe | VuuUIMessageOutViewport | WithRequestId<ClientToServerTableList> | WithRequestId<ClientToServerTableMeta>;
221
+ export declare const isSessionTableActionMessage: (messageBody: ServerToClientBody) => messageBody is ServerToClientMenuSessionTableAction;
222
+ export declare const isSessionTable: (table?: unknown) => boolean;
223
+ export declare const isVisualLinksAction: (action: GridAction) => action is DataSourceVisualLinksMessage;
224
+ export declare const isVisualLinkCreatedAction: (action: GridAction) => action is DataSourceVisualLinkCreatedMessage;
225
+ export declare const isVisualLinkRemovedAction: (action: GridAction) => action is DataSourceVisualLinkRemovedMessage;
226
+ export declare const isViewportMenusAction: (action: GridAction) => action is DataSourceMenusMessage;
227
+ export declare const isVuuFeatureAction: (action: GridAction) => action is VuuFeatureMessage;
228
+ export declare const isVuuFeatureInvocation: (action: GridAction) => action is VuuFeatureInvocationMessage;
@@ -0,0 +1,25 @@
1
+ import { ServerToClientMessage, ClientToServerMessage } from "@vuu-ui/vuu-protocol-types";
2
+ import { Connection } from "./connectionTypes";
3
+ import { ConnectionQualityMetrics, ConnectionStatusMessage } from "./vuuUIMessageTypes";
4
+ export type ConnectionMessage = ServerToClientMessage | ConnectionStatusMessage | ConnectionQualityMetrics;
5
+ export type ConnectionCallback = (msg: ConnectionMessage) => void;
6
+ export type WebSocketProtocol = string | string[] | undefined;
7
+ declare const setWebsocket: unique symbol;
8
+ declare const connectionCallback: unique symbol;
9
+ export declare function connect(connectionString: string, protocol: WebSocketProtocol, callback: ConnectionCallback, retryLimitDisconnect?: number, retryLimitStartup?: number): Promise<Connection>;
10
+ export declare class WebsocketConnection implements Connection<ClientToServerMessage> {
11
+ [connectionCallback]: ConnectionCallback;
12
+ close: () => void;
13
+ requiresLogin: boolean;
14
+ send: (msg: ClientToServerMessage) => void;
15
+ status: "closed" | "ready" | "connection-open-awaiting-session" | "connected" | "reconnected";
16
+ protocol: WebSocketProtocol;
17
+ url: string;
18
+ messagesCount: number;
19
+ private connectionMetricsInterval;
20
+ constructor(ws: WebSocket, url: string, protocol: WebSocketProtocol, callback: ConnectionCallback);
21
+ reconnect(): void;
22
+ [setWebsocket](ws: WebSocket): void;
23
+ handleWebsocketMessage: (evt: MessageEvent) => void;
24
+ }
25
+ export {};
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const FilterBarMenu: () => JSX.Element;
@@ -1,14 +1,15 @@
1
1
  import { MenuActionHandler } from "@vuu-ui/vuu-data-types";
2
2
  import { Filter, FilterClause, FilterWithPartialClause } from "@vuu-ui/vuu-filter-types";
3
- import { PromptProps } from "@vuu-ui/vuu-popups";
4
3
  import { ActiveItemChangeHandler, NavigationOutOfBoundsHandler } from "@vuu-ui/vuu-layout";
5
- import { KeyboardEvent, KeyboardEventHandler, RefObject } from "react";
4
+ import { PromptProps } from "@vuu-ui/vuu-popups";
5
+ import { FocusEventHandler, KeyboardEvent, KeyboardEventHandler, RefObject } from "react";
6
+ import { FilterClauseCancelHandler } from "../filter-clause/useFilterClauseEditor";
6
7
  import { FilterPillProps } from "../filter-pill";
7
8
  import { FilterBarProps } from "./FilterBar";
8
- export interface FilterBarHookProps extends Pick<FilterBarProps, "activeFilterIndex" | "filters" | "onApplyFilter" | "onChangeActiveFilterIndex" | "onFiltersChanged" | "showMenu"> {
9
+ export interface FilterBarHookProps extends Pick<FilterBarProps, "activeFilterIndex" | "filters" | "onApplyFilter" | "onChangeActiveFilterIndex" | "onFiltersChanged" | "showMenu" | "tableSchema"> {
9
10
  containerRef: RefObject<HTMLDivElement>;
10
11
  }
11
- export declare const useFilterBar: ({ activeFilterIndex: activeFilterIdexProp, containerRef, filters: filtersProp, onApplyFilter, onChangeActiveFilterIndex: onChangeActiveFilterIndexProp, onFiltersChanged, showMenu: showMenuProp, }: FilterBarHookProps) => {
12
+ export declare const useFilterBar: ({ activeFilterIndex: activeFilterIdexProp, containerRef, filters: filtersProp, onApplyFilter, onChangeActiveFilterIndex: onChangeActiveFilterIndexProp, onFiltersChanged, showMenu: showMenuProp, tableSchema, }: FilterBarHookProps) => {
12
13
  activeFilterIndex: number[];
13
14
  addButtonProps: {
14
15
  ref: RefObject<HTMLButtonElement>;
@@ -16,11 +17,15 @@ export declare const useFilterBar: ({ activeFilterIndex: activeFilterIdexProp, c
16
17
  };
17
18
  editFilter: Partial<Filter> | FilterWithPartialClause | undefined;
18
19
  filters: Filter[];
20
+ onBlurFilterClause: FocusEventHandler<Element>;
21
+ onCancelFilterClause: FilterClauseCancelHandler;
19
22
  onChangeActiveFilterIndex: ActiveItemChangeHandler;
20
23
  onClickAddFilter: () => void;
21
24
  onClickRemoveFilter: () => void;
22
25
  onChangeFilterClause: (filterClause: Partial<FilterClause>) => void;
23
- onKeyDown: (evt: KeyboardEvent) => void;
26
+ onFocusFilterClause: () => void;
27
+ onKeyDownFilterbar: (evt: KeyboardEvent) => void;
28
+ onKeyDownMenu: KeyboardEventHandler<Element>;
24
29
  onMenuAction: MenuActionHandler;
25
30
  onNavigateOutOfBounds: NavigationOutOfBoundsHandler;
26
31
  pillProps: Partial<FilterPillProps>;
@@ -0,0 +1,5 @@
1
+ import { MenuActionHandler, MenuBuilder } from "@vuu-ui/vuu-data-types";
2
+ export declare const useFilterBarMenu: () => {
3
+ menuBuilder: MenuBuilder<string, unknown>;
4
+ menuActionHandler: MenuActionHandler;
5
+ };
@@ -1,10 +1,12 @@
1
1
  import { Filter } from "@vuu-ui/vuu-filter-types";
2
+ import { TableSchema } from "packages/vuu-data/src";
2
3
  export interface FiltersHookProps {
3
4
  defaultFilters?: Filter[];
4
5
  filters?: Filter[];
5
6
  onFiltersChanged?: (filters: Filter[]) => void;
7
+ tableSchema?: TableSchema;
6
8
  }
7
- export declare const useFilters: ({ defaultFilters, filters: filtersProp, onFiltersChanged, }: FiltersHookProps) => {
9
+ export declare const useFilters: ({ defaultFilters, filters: filtersProp, onFiltersChanged, tableSchema, }: FiltersHookProps) => {
8
10
  filters: Filter[];
9
11
  onAddFilter: (filter: Filter) => number;
10
12
  onChangeFilter: (filter: Filter) => number;
@@ -1,8 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { ContextMenuProps } from "@vuu-ui/vuu-popups";
3
3
  import { MenuActionHandler } from "@vuu-ui/vuu-data-types";
4
+ import { ListProps } from "@vuu-ui/vuu-ui-controls";
4
5
  import "./FilterBuilderMenu.css";
5
6
  export interface FilterBuilderMenuProps extends Omit<ContextMenuProps, "children"> {
7
+ ListProps?: Pick<ListProps, "onKeyDownCapture">;
6
8
  onMenuAction: MenuActionHandler;
7
9
  }
8
- export declare const FilterBuilderMenu: ({ onMenuAction }: FilterBuilderMenuProps) => JSX.Element;
10
+ export declare const FilterBuilderMenu: ({ ListProps, onMenuAction, }: FilterBuilderMenuProps) => JSX.Element;
@@ -1,13 +1,17 @@
1
1
  import { TableSchema } from "@vuu-ui/vuu-data";
2
2
  import { SuggestionFetcher } from "@vuu-ui/vuu-data-react";
3
3
  import { FilterClause } from "@vuu-ui/vuu-filter-types";
4
+ import { CloseReason } from "@vuu-ui/vuu-ui-controls";
4
5
  import { HTMLAttributes } from "react";
6
+ import { FilterClauseCancelHandler } from "./useFilterClauseEditor";
5
7
  import "./FilterClauseEditor.css";
6
8
  export interface FilterClauseEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
7
9
  filterClause: Partial<FilterClause>;
10
+ onCancel?: FilterClauseCancelHandler;
8
11
  onChange: (filterClause: Partial<FilterClause>) => void;
9
- onClose: () => void;
12
+ onDropdownClose?: (closeReason: CloseReason) => void;
13
+ onDropdownOpen?: () => void;
10
14
  suggestionProvider?: () => SuggestionFetcher;
11
15
  tableSchema: TableSchema;
12
16
  }
13
- export declare const FilterClauseEditor: ({ className, onChange, onClose, filterClause, suggestionProvider, tableSchema, ...htmlAttributes }: FilterClauseEditorProps) => JSX.Element;
17
+ export declare const FilterClauseEditor: ({ className, onCancel, onChange, onDropdownClose, onDropdownOpen, filterClause, suggestionProvider, tableSchema, ...htmlAttributes }: FilterClauseEditorProps) => JSX.Element;
@@ -2,6 +2,7 @@ import { HTMLAttributes, RefObject } from "react";
2
2
  import { SuggestionFetcher } from "@vuu-ui/vuu-data-react";
3
3
  import { FilterClauseValueEditor } from "./filterClauseTypes";
4
4
  export interface TextInputProps extends FilterClauseValueEditor, HTMLAttributes<HTMLDivElement> {
5
+ "data-field"?: string;
5
6
  ref: RefObject<HTMLDivElement>;
6
7
  operator: string;
7
8
  suggestionProvider?: () => SuggestionFetcher;
@@ -1,11 +1,14 @@
1
- import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
2
1
  import { FilterClause } from "@vuu-ui/vuu-filter-types";
3
2
  import { VuuTable } from "@vuu-ui/vuu-protocol-types";
3
+ import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
4
+ import { CloseReason } from "@vuu-ui/vuu-ui-controls";
4
5
  import { InputProps } from "@salt-ds/core";
5
6
  export interface FilterClauseValueEditor<T = string> {
6
7
  InputProps?: InputProps;
7
8
  filterClause: Partial<FilterClause>;
8
9
  column: ColumnDescriptor;
10
+ onDeselect?: () => void;
9
11
  onInputComplete: (value: T | T[]) => void;
12
+ onOpenChange?: (open: boolean, closeReason: CloseReason) => void;
10
13
  table?: VuuTable;
11
14
  }
@@ -1,22 +1,28 @@
1
1
  import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
2
2
  import { FilterClause, FilterClauseOp } from "@vuu-ui/vuu-filter-types";
3
3
  import { TableSchema } from "@vuu-ui/vuu-data";
4
- import { KeyboardEvent } from "react";
4
+ import { KeyboardEvent, KeyboardEventHandler } from "react";
5
5
  import { SingleSelectionHandler } from "@vuu-ui/vuu-ui-controls/src";
6
6
  type FilterClauseValue = boolean | boolean[] | string | string[] | number | number[];
7
+ export type FilterClauseCancelType = "Backspace";
8
+ export type FilterClauseCancelHandler = (reason: FilterClauseCancelType) => void;
7
9
  export interface FilterClauseEditorHookProps {
8
10
  filterClause: Partial<FilterClause>;
11
+ onCancel?: FilterClauseCancelHandler;
9
12
  onChange: (filterClause: Partial<FilterClause>) => void;
10
13
  tableSchema: TableSchema;
11
14
  }
12
- export declare const useFilterClauseEditor: ({ filterClause, onChange, tableSchema, }: FilterClauseEditorHookProps) => {
15
+ export declare const useFilterClauseEditor: ({ filterClause, onCancel, onChange, tableSchema, }: FilterClauseEditorHookProps) => {
13
16
  InputProps: {
14
17
  inputProps: {
15
- onKeyDown: (evt: KeyboardEvent<HTMLInputElement>) => void;
18
+ onKeyDownCapture: (evt: KeyboardEvent<HTMLInputElement>) => void;
16
19
  };
17
20
  };
18
21
  columnRef: import("react").RefObject<HTMLDivElement>;
19
22
  onChangeValue: (value: string | string[] | number | number[]) => void;
23
+ onClear: (e: any) => void;
24
+ onClearKeyDown: KeyboardEventHandler<Element>;
25
+ onDeselectValue: () => void;
20
26
  onSelectionChangeColumn: SingleSelectionHandler<ColumnDescriptor>;
21
27
  onSelectionChangeOperator: SingleSelectionHandler<string>;
22
28
  operator: FilterClauseOp | undefined;
@@ -11,4 +11,4 @@ export interface FilterPillProps extends Pick<Partial<EditableLabelProps>, "onEx
11
11
  onMenuAction?: MenuActionHandler;
12
12
  showMenu?: boolean;
13
13
  }
14
- export declare const FilterPill: ({ editable, filter, className: classNameProp, onBeginEdit, onExitEditMode, onMenuAction, showMenu, ...htmlAttributes }: FilterPillProps) => JSX.Element;
14
+ export declare const FilterPill: ({ className: classNameProp, editable, filter, id: idProp, onBeginEdit, onExitEditMode, onMenuAction, showMenu, ...htmlAttributes }: FilterPillProps) => JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { Filter } from "@vuu-ui/vuu-filter-types";
2
+ import { ReactNode } from "react";
3
+ export declare const filterAsReactNode: (f: Filter) => ReactNode;
@@ -1,5 +1,5 @@
1
1
  import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
2
- import { Filter, FilterClause, FilterCombinatorOp, FilterWithPartialClause, NumericFilterClauseOp } from "@vuu-ui/vuu-filter-types";
2
+ import { Filter, FilterClause, FilterCombinatorOp, FilterWithPartialClause, MultiClauseFilter, NumericFilterClauseOp } from "@vuu-ui/vuu-filter-types";
3
3
  export declare const AND = "and";
4
4
  export declare const EQUALS = "=";
5
5
  export declare const GREATER_THAN = ">";
@@ -13,6 +13,7 @@ export declare const filterClauses: (filter: Partial<Filter> | FilterWithPartial
13
13
  type AddFilterOptions = {
14
14
  combineWith: FilterCombinatorOp;
15
15
  };
16
+ export declare const removeLastClause: (filter: MultiClauseFilter) => Filter;
16
17
  /**
17
18
  Allows an empty FilterClause to be appended to an existing filter - for use
18
19
  in filter editing UI only.