@deephaven/jsapi-types 1.0.0-dev0.31.0 → 1.0.0-dev0.33.1

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 (2) hide show
  1. package/dist/index.d.ts +1810 -1647
  2. package/package.json +2 -4
package/dist/index.d.ts CHANGED
@@ -17,6 +17,36 @@ export interface IIterableResult<T> {
17
17
  }
18
18
  export namespace dh.storage {
19
19
 
20
+ /**
21
+ * Storage service metadata about files and folders.
22
+ */
23
+ export class ItemDetails {
24
+ protected constructor();
25
+
26
+ get filename():string;
27
+ get basename():string;
28
+ get size():number;
29
+ get etag():string;
30
+ get type():ItemTypeType;
31
+ get dirname():string;
32
+ }
33
+
34
+ /**
35
+ * Represents a file's contents loaded from the server. If an etag was specified when loading, client should first test
36
+ * if the etag of this instance matches - if so, the contents will be empty, and the client's existing contents should
37
+ * be used.
38
+ */
39
+ export class FileContents {
40
+ protected constructor();
41
+
42
+ static blob(blob:Blob):FileContents;
43
+ static text(...text:string[]):FileContents;
44
+ static arrayBuffers(...buffers:ArrayBuffer[]):FileContents;
45
+ text():Promise<string>;
46
+ arrayBuffer():Promise<ArrayBuffer>;
47
+ get etag():string;
48
+ }
49
+
20
50
  /**
21
51
  * Remote service to read and write files on the server. Paths use "/" as a separator, and should not start with "/".
22
52
  */
@@ -75,36 +105,6 @@ export namespace dh.storage {
75
105
  createDirectory(path:string):Promise<void>;
76
106
  }
77
107
 
78
- /**
79
- * Storage service metadata about files and folders.
80
- */
81
- export class ItemDetails {
82
- protected constructor();
83
-
84
- get filename():string;
85
- get basename():string;
86
- get size():number;
87
- get etag():string;
88
- get type():ItemTypeType;
89
- get dirname():string;
90
- }
91
-
92
- /**
93
- * Represents a file's contents loaded from the server. If an etag was specified when loading, client should first test
94
- * if the etag of this instance matches - if so, the contents will be empty, and the client's existing contents should
95
- * be used.
96
- */
97
- export class FileContents {
98
- protected constructor();
99
-
100
- static blob(blob:Blob):FileContents;
101
- static text(...text:string[]):FileContents;
102
- static arrayBuffers(...buffers:ArrayBuffer[]):FileContents;
103
- text():Promise<string>;
104
- arrayBuffer():Promise<ArrayBuffer>;
105
- get etag():string;
106
- }
107
-
108
108
 
109
109
  type ItemTypeType = string;
110
110
  export class ItemType {
@@ -116,6 +116,47 @@ export namespace dh.storage {
116
116
 
117
117
  export namespace dh {
118
118
 
119
+ /**
120
+ * Common interface for various ways of accessing table data and formatting.
121
+ *
122
+ * Java note: this interface contains some extra overloads that aren't available in JS. Implementations are expected to
123
+ * implement only abstract methods, and default methods present in this interface will dispatch accordingly.
124
+ */
125
+ export interface TableData {
126
+ get(index:LongWrapper|number):Row;
127
+ getData(index:LongWrapper|number, column:Column):any;
128
+ getFormat(index:LongWrapper|number, column:Column):Format;
129
+ get columns():Array<Column>;
130
+ get rows():Array<Row>;
131
+ }
132
+ /**
133
+ * Javascript wrapper for {@link io.deephaven.web.shared.data.ColumnStatistics} This class holds the results of a call to generate statistics on a
134
+ * table column.
135
+ */
136
+ export interface ColumnStatistics {
137
+ /**
138
+ * Gets the type of formatting that should be used for given statistic.
139
+ * <p>
140
+ * the format type for a statistic. A null return value means that the column formatting should be used.
141
+ * @param name - the display name of the statistic
142
+ * @return String
143
+ */
144
+ getType(name:string):string;
145
+ /**
146
+ * Gets a map with the name of each unique value as key and the count as the value. A map of each unique value's
147
+ * name to the count of how many times it occurred in the column. This map will be empty for tables containing more
148
+ * than 19 unique values.
149
+ * @return Map of String double
150
+ */
151
+ get uniqueValues():Map<string, number>;
152
+ /**
153
+ * Gets a map with the display name of statistics as keys and the numeric stat as a value.
154
+ * <p>
155
+ * A map of each statistic's name to its value.
156
+ * @return Map of String and Object
157
+ */
158
+ get statisticsMap():Map<string, object>;
159
+ }
119
160
  /**
120
161
  * This object may be pooled internally or discarded and not updated. Do not retain references to it.
121
162
  */
@@ -141,11 +182,6 @@ export namespace dh {
141
182
  */
142
183
  readonly numberFormat?:string|null;
143
184
  }
144
- export interface ColumnGroup {
145
- get name():string|null;
146
- get children():string[]|null;
147
- get color():string|null;
148
- }
149
185
  /**
150
186
  * Row implementation that also provides additional read-only properties. represents visible rows in the table,
151
187
  * but with additional properties to reflect the tree structure.
@@ -171,18 +207,15 @@ export namespace dh {
171
207
  get hasChildren():boolean;
172
208
  get index():LongWrapper;
173
209
  }
174
- /**
175
- * Common interface for various ways of accessing table data and formatting.
176
- *
177
- * Java note: this interface contains some extra overloads that aren't available in JS. Implementations are expected to
178
- * implement only abstract methods, and default methods present in this interface will dispatch accordingly.
179
- */
180
- export interface TableData {
181
- get(index:LongWrapper|number):Row;
182
- getData(index:LongWrapper|number, column:Column):any;
183
- getFormat(index:LongWrapper|number, column:Column):Format;
184
- get columns():Array<Column>;
185
- get rows():Array<unknown>;
210
+ export interface LayoutHints {
211
+ readonly searchDisplayMode?:SearchDisplayModeType|null;
212
+
213
+ get hiddenColumns():string[]|null;
214
+ get frozenColumns():string[]|null;
215
+ get columnGroups():ColumnGroup[]|null;
216
+ get areSavedLayoutsAllowed():boolean;
217
+ get frontColumns():string[]|null;
218
+ get backColumns():string[]|null;
186
219
  }
187
220
  export interface Row {
188
221
  get(column:Column):any;
@@ -201,6 +234,83 @@ export namespace dh {
201
234
  toString():string;
202
235
  }
203
236
  /**
237
+ * Represents a server-side object that may not yet have been fetched by the client. When this object will no longer be
238
+ * used, if {@link fetch} is not called on this object, then {@link close} must be to ensure server-side resources
239
+ * are correctly freed.
240
+ */
241
+ export interface WidgetExportedObject {
242
+ /**
243
+ * Returns the type of this export, typically one of {@link dh.VariableType}, but may also include plugin types. If
244
+ * null, this object cannot be fetched, but can be passed to the server, such as via
245
+ * {@link Widget.sendMessage}.
246
+ * @return the string type of this server-side object, or null.
247
+ */
248
+ readonly type?:string|null;
249
+
250
+ /**
251
+ * Exports another copy of this reference, allowing it to be fetched separately. Results in rejection if the ticket
252
+ * was already closed (either by calling {@link WidgetExportedObject.close} or closing the object returned from {@link WidgetExportedObject.fetch}).
253
+ * @return a promise returning a reexported copy of this object, still referencing the same server-side object.
254
+ */
255
+ reexport():Promise<WidgetExportedObject>;
256
+ /**
257
+ * Returns a promise that will fetch the object represented by this reference. Multiple calls to this will return
258
+ * the same instance.
259
+ * @return a promise that will resolve to a client side object that represents the reference on the server.
260
+ */
261
+ fetch():Promise<any>;
262
+ /**
263
+ * Releases the server-side resources associated with this object, regardless of whether other client-side objects
264
+ * exist that also use that object. Should not be called after fetch() has been invoked.
265
+ */
266
+ close():void;
267
+ }
268
+ /**
269
+ * Encapsulates event handling around table subscriptions by "cheating" and wrapping up a JsTable instance to do the
270
+ * real dirty work. This allows a viewport to stay open on the old table if desired, while this one remains open.
271
+ * <p>
272
+ * As this just wraps a JsTable (and thus a CTS), it holds its own flattened, pUT'd handle to get deltas from the
273
+ * server. The setViewport method can be used to adjust this table instead of creating a new one.
274
+ * <p>
275
+ * Existing methods on JsTable like setViewport and getViewportData are intended to proxy to this, which then will talk
276
+ * to the underlying handle and accumulated data.
277
+ * <p>
278
+ * As long as we keep the existing methods/events on JsTable, close() is not required if no other method is called, with
279
+ * the idea then that the caller did not actually use this type. This means that for every exported method (which then
280
+ * will mark the instance of "actually being used, please don't automatically close me"), there must be an internal
281
+ * version called by those existing JsTable method, which will allow this instance to be cleaned up once the JsTable
282
+ * deems it no longer in use.
283
+ * <p>
284
+ * Note that if the caller does close an instance, this shuts down the JsTable's use of this (while the converse is not
285
+ * true), providing a way to stop the server from streaming updates to the client.
286
+ *
287
+ * This object serves as a "handle" to a subscription, allowing it to be acted on directly or canceled outright. If you
288
+ * retain an instance of this, you have two choices - either only use it to call `close()` on it to stop the table's
289
+ * viewport without creating a new one, or listen directly to this object instead of the table for data events, and
290
+ * always call `close()` when finished. Calling any method on this object other than close() will result in it
291
+ * continuing to live on after `setViewport` is called on the original table, or after the table is modified.
292
+ */
293
+ export interface TableViewportSubscription extends HasEventHandling {
294
+ /**
295
+ * Changes the rows and columns set on this viewport. This cannot be used to change the update interval.
296
+ * @param firstRow -
297
+ * @param lastRow -
298
+ * @param columns -
299
+ * @param updateIntervalMs -
300
+ */
301
+ setViewport(firstRow:number, lastRow:number, columns?:Column[]|undefined|null, updateIntervalMs?:number|undefined|null):void;
302
+ /**
303
+ * Stops this viewport from running, stopping all events on itself and on the table that created it.
304
+ */
305
+ close():void;
306
+ /**
307
+ * Gets the data currently visible in this viewport
308
+ * @return Promise of {@link dh.TableData}.
309
+ */
310
+ getViewportData():Promise<TableData>;
311
+ snapshot(rows:RangeSet, columns:Column[]):Promise<TableData>;
312
+ }
313
+ /**
204
314
  * Behaves like a Table, but doesn't expose all of its API for changing the internal state. Instead, state is driven by
205
315
  * the upstream table - when it changes handle, this listens and updates its own handle accordingly.
206
316
  *
@@ -291,6 +401,11 @@ export namespace dh {
291
401
  */
292
402
  get filter():Array<FilterCondition>;
293
403
  /**
404
+ * True if this table has been closed.
405
+ * @return boolean
406
+ */
407
+ get isClosed():boolean;
408
+ /**
294
409
  * The total number of rows in this table. This may change as the base table's configuration, filter, or contents
295
410
  * change.
296
411
  * @return double
@@ -317,98 +432,32 @@ export namespace dh {
317
432
  * @return {@link dh.CustomColumn} array
318
433
  */
319
434
  get customColumns():Array<CustomColumn>;
320
- }
321
- export interface WorkerHeapInfo {
322
435
  /**
323
- * Total heap size available for this worker.
436
+ * True if this table may receive updates from the server, including size changed events, updated events after
437
+ * initial snapshot.
438
+ * @return boolean
324
439
  */
325
- get totalHeapSize():number;
326
- get freeMemory():number;
327
- get maximumHeapSize():number;
440
+ get isRefreshing():boolean;
328
441
  }
329
- /**
330
- * Encapsulates event handling around table subscriptions by "cheating" and wrapping up a JsTable instance to do the
331
- * real dirty work. This allows a viewport to stay open on the old table if desired, while this one remains open.
332
- * <p>
333
- * As this just wraps a JsTable (and thus a CTS), it holds its own flattened, pUT'd handle to get deltas from the
334
- * server. The setViewport method can be used to adjust this table instead of creating a new one.
335
- * <p>
336
- * Existing methods on JsTable like setViewport and getViewportData are intended to proxy to this, which then will talk
337
- * to the underlying handle and accumulated data.
338
- * <p>
339
- * As long as we keep the existing methods/events on JsTable, close() is not required if no other method is called, with
340
- * the idea then that the caller did not actually use this type. This means that for every exported method (which then
341
- * will mark the instance of "actually being used, please don't automatically close me"), there must be an internal
342
- * version called by those existing JsTable method, which will allow this instance to be cleaned up once the JsTable
343
- * deems it no longer in use.
344
- * <p>
345
- * Note that if the caller does close an instance, this shuts down the JsTable's use of this (while the converse is not
346
- * true), providing a way to stop the server from streaming updates to the client.
347
- *
348
- * This object serves as a "handle" to a subscription, allowing it to be acted on directly or canceled outright. If you
349
- * retain an instance of this, you have two choices - either only use it to call `close()` on it to stop the table's
350
- * viewport without creating a new one, or listen directly to this object instead of the table for data events, and
351
- * always call `close()` when finished. Calling any method on this object other than close() will result in it
352
- * continuing to live on after `setViewport` is called on the original table, or after the table is modified.
353
- */
354
- export interface TableViewportSubscription extends HasEventHandling {
355
- /**
356
- * Changes the rows and columns set on this viewport. This cannot be used to change the update interval.
357
- * @param firstRow -
358
- * @param lastRow -
359
- * @param columns -
360
- * @param updateIntervalMs -
361
- */
362
- setViewport(firstRow:number, lastRow:number, columns?:Column[]|undefined|null, updateIntervalMs?:number|undefined|null):void;
442
+ export interface HasEventHandling {
363
443
  /**
364
- * Stops this viewport from running, stopping all events on itself and on the table that created it.
444
+ * Listen for events on this object.
445
+ * @param name - the name of the event to listen for
446
+ * @param callback - a function to call when the event occurs
447
+ * @return Returns a cleanup function.
448
+ * @typeParam T - the type of the data that the event will provide
365
449
  */
366
- close():void;
450
+ addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
451
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
452
+ hasListeners(name:string):boolean;
367
453
  /**
368
- * Gets the data currently visible in this viewport
369
- * @return Promise of {@link dh.TableData}.
454
+ * Removes an event listener added to this table.
455
+ * @param name -
456
+ * @param callback -
457
+ * @return
458
+ * @typeParam T -
370
459
  */
371
- getViewportData():Promise<TableData>;
372
- snapshot(rows:RangeSet, columns:Column[]):Promise<TableData>;
373
- }
374
- /**
375
- * This object may be pooled internally or discarded and not updated. Do not retain references to it. Instead, request
376
- * the viewport again.
377
- */
378
- export interface ViewportRow extends Row {
379
- get index():LongWrapper;
380
- }
381
- export interface JoinableTable {
382
- freeze():Promise<Table>;
383
- snapshot(baseTable:Table, doInitialSnapshot?:boolean, stampColumns?:string[]):Promise<Table>;
384
- /**
385
- * @deprecated
386
- */
387
- join(joinType:object, rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>, asOfMatchRule?:object):Promise<Table>;
388
- asOfJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>, asOfMatchRule?:string):Promise<Table>;
389
- crossJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>, reserve_bits?:number):Promise<Table>;
390
- exactJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
391
- naturalJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
392
- }
393
- /**
394
- * Wrap LocalDate values for use in JS. Provides text formatting for display and access to the underlying value.
395
- */
396
- export interface LocalDateWrapper {
397
- valueOf():string;
398
- getYear():number;
399
- getMonthValue():number;
400
- getDayOfMonth():number;
401
- toString():string;
402
- }
403
- export interface LayoutHints {
404
- readonly searchDisplayMode?:SearchDisplayModeType|null;
405
-
406
- get hiddenColumns():string[]|null;
407
- get frozenColumns():string[]|null;
408
- get columnGroups():ColumnGroup[]|null;
409
- get areSavedLayoutsAllowed():boolean;
410
- get frontColumns():string[];
411
- get backColumns():string[]|null;
460
+ removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
412
461
  }
413
462
  /**
414
463
  * Event data, describing the indexes that were added/removed/updated, and providing access to Rows (and thus data
@@ -442,55 +491,14 @@ export namespace dh {
442
491
  * @return dh.RangeSet
443
492
  */
444
493
  get modified():RangeSet;
445
- get rows():Array<unknown>;
446
- }
447
- export interface HasEventHandling {
448
- /**
449
- * Listen for events on this object.
450
- * @param name - the name of the event to listen for
451
- * @param callback - a function to call when the event occurs
452
- * @return Returns a cleanup function.
453
- * @typeParam T - the type of the data that the event will provide
454
- */
455
- addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
456
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
457
- hasListeners(name:string):boolean;
458
- /**
459
- * Removes an event listener added to this table.
460
- * @param name -
461
- * @param callback -
462
- * @return
463
- * @typeParam T -
464
- */
465
- removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
494
+ get rows():Array<Row>;
466
495
  }
467
496
  /**
468
- * Javascript wrapper for {@link io.deephaven.web.shared.data.ColumnStatistics} This class holds the results of a call to generate statistics on a
469
- * table column.
497
+ * This object may be pooled internally or discarded and not updated. Do not retain references to it. Instead, request
498
+ * the viewport again.
470
499
  */
471
- export interface ColumnStatistics {
472
- /**
473
- * Gets the type of formatting that should be used for given statistic.
474
- * <p>
475
- * the format type for a statistic. A null return value means that the column formatting should be used.
476
- * @param name - the display name of the statistic
477
- * @return String
478
- */
479
- getType(name:string):string;
480
- /**
481
- * Gets a map with the name of each unique value as key and the count as the value. A map of each unique value's
482
- * name to the count of how many times it occurred in the column. This map will be empty for tables containing more
483
- * than 19 unique values.
484
- * @return Map of String double
485
- */
486
- get uniqueValues():Map<string, number>;
487
- /**
488
- * Gets a map with the display name of statistics as keys and the numeric stat as a value.
489
- * <p>
490
- * A map of each statistic's name to its value.
491
- * @return Map of String and Object
492
- */
493
- get statisticsMap():Map<string, object>;
500
+ export interface ViewportRow extends Row {
501
+ get index():LongWrapper;
494
502
  }
495
503
  /**
496
504
  * Represents the contents of a single widget data message from the server, with a binary data paylod and exported
@@ -519,23 +527,23 @@ export namespace dh {
519
527
  */
520
528
  get exportedObjects():WidgetExportedObject[];
521
529
  }
522
- export interface TreeViewportData extends TableData {
523
- get offset():number;
524
- get columns():Array<Column>;
525
- get rows():Array<TreeRow>;
526
- }
527
530
  /**
528
- * Represents a server-side object that may not yet have been fetched by the client. Does not memoize its result, so
529
- * fetch() should only be called once, and calling close() on this object will also close the result of the fetch.
531
+ * Wrap LocalDate values for use in JS. Provides text formatting for display and access to the underlying value.
530
532
  */
531
- export interface WidgetExportedObject {
532
- fetch():Promise<any>;
533
+ export interface LocalDateWrapper {
534
+ valueOf():string;
535
+ getYear():number;
536
+ getMonthValue():number;
537
+ getDayOfMonth():number;
538
+ toString():string;
539
+ }
540
+ export interface WorkerHeapInfo {
533
541
  /**
534
- * Releases the server-side resources associated with this object, regardless of whether or not other client-side
535
- * objects exist that also use that object.
542
+ * Total heap size available for this worker.
536
543
  */
537
- close():void;
538
- get type():string;
544
+ get totalHeapSize():number;
545
+ get freeMemory():number;
546
+ get maximumHeapSize():number;
539
547
  }
540
548
  /**
541
549
  * Contains data in the current viewport. Also contains the offset to this data, so that the actual row number may be
@@ -563,236 +571,335 @@ export namespace dh {
563
571
  get bytes():string;
564
572
  get expiry():number;
565
573
  }
574
+ export interface JoinableTable {
575
+ freeze():Promise<Table>;
576
+ snapshot(baseTable:Table, doInitialSnapshot?:boolean, stampColumns?:string[]):Promise<Table>;
577
+ /**
578
+ * @deprecated
579
+ */
580
+ join(joinType:object, rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>, asOfMatchRule?:object):Promise<Table>;
581
+ asOfJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>, asOfMatchRule?:string):Promise<Table>;
582
+ crossJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>, reserve_bits?:number):Promise<Table>;
583
+ exactJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
584
+ naturalJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
585
+ }
586
+ export interface ColumnGroup {
587
+ get name():string|null;
588
+ get children():string[]|null;
589
+ get color():string|null;
590
+ }
591
+ export interface TreeViewportData extends TableData {
592
+ get offset():number;
593
+ get columns():Array<Column>;
594
+ get rows():Array<TreeRow>;
595
+ }
596
+
597
+ export class IdeSession implements HasEventHandling {
598
+ static readonly EVENT_COMMANDSTARTED:string;
599
+ static readonly EVENT_REQUEST_FAILED:string;
566
600
 
567
- /**
568
- * A js type for operating on input tables.
569
- *
570
- * Represents a User Input Table, which can have data added to it from other sources.
571
- *
572
- * You may add rows using dictionaries of key-value tuples (representing columns by name), add tables containing all the
573
- * key/value columns to add, or delete tables containing the keys to delete. Each operation is atomic, and will either
574
- * succeed completely or fail completely. To guarantee order of operations, apply an operation and wait for the response
575
- * before sending the next operation.
576
- *
577
- * Each table has one or more key columns, where each unique combination of keys will appear at most once in the table.
578
- *
579
- * To view the results of the Input Table, you should use standard table operations on the InputTable's source Table
580
- * object.
581
- */
582
- export class InputTable {
583
601
  protected constructor();
584
602
 
585
603
  /**
586
- * Adds a single row to the table. For each key or value column name in the Input Table, we retrieve that javascript
587
- * property at that name and validate it can be put into the given column type.
588
- * @param row -
589
- * @param userTimeZone -
590
- * @return Promise of dh.InputTable
591
- */
592
- addRow(row:{ [key: string]: any; }, userTimeZone?:string):Promise<InputTable>;
593
- /**
594
- * Add multiple rows to a table.
595
- * @param rows -
596
- * @param userTimeZone -
597
- * @return Promise of dh.InputTable
598
- */
599
- addRows(rows:{ [key: string]: any; }[], userTimeZone?:string):Promise<InputTable>;
600
- /**
601
- * Add an entire table to this Input Table. Only column names that match the definition of the input table will be
602
- * copied, and all key columns must have values filled in. This only copies the current state of the source table;
603
- * future updates to the source table will not be reflected in the Input Table. The returned promise will be
604
- * resolved to the same InputTable instance this method was called upon once the server returns.
605
- * @param tableToAdd -
606
- * @return Promise of dh.InputTable
607
- */
608
- addTable(tableToAdd:Table):Promise<InputTable>;
609
- /**
610
- * Add multiple tables to this Input Table.
611
- * @param tablesToAdd -
612
- * @return Promise of dh.InputTable
613
- */
614
- addTables(tablesToAdd:Table[]):Promise<InputTable>;
615
- /**
616
- * Deletes an entire table from this Input Table. Key columns must match the Input Table.
617
- * @param tableToDelete -
618
- * @return Promise of dh.InputTable
619
- */
620
- deleteTable(tableToDelete:Table):Promise<InputTable>;
621
- /**
622
- * Delete multiple tables from this Input Table.
623
- * @param tablesToDelete -
624
- * @return
604
+ * Load the named table, with columns and size information already fully populated.
605
+ * @param name -
606
+ * @param applyPreviewColumns - optional boolean
607
+ * @return {@link Promise} of {@link dh.Table}
625
608
  */
626
- deleteTables(tablesToDelete:Table[]):Promise<InputTable>;
609
+ getTable(name:string, applyPreviewColumns?:boolean):Promise<Table>;
627
610
  /**
628
- * A list of the key columns, by name
629
- * @return String array.
611
+ * Load the named Figure, including its tables and tablemaps as needed.
612
+ * @param name -
613
+ * @return promise of dh.plot.Figure
630
614
  */
631
- get keys():string[];
615
+ getFigure(name:string):Promise<dh.plot.Figure>;
632
616
  /**
633
- * A list of the value columns, by name
634
- * @return String array.
617
+ * Loads the named tree table or roll-up table, with column data populated. All nodes are collapsed by default, and
618
+ * size is presently not available until the viewport is first set.
619
+ * @param name -
620
+ * @return {@link Promise} of {@link dh.TreeTable}
635
621
  */
636
- get values():string[];
622
+ getTreeTable(name:string):Promise<TreeTable>;
623
+ getHierarchicalTable(name:string):Promise<TreeTable>;
624
+ getObject(definitionObject:dh.ide.VariableDescriptor):Promise<any>;
625
+ newTable(columnNames:string[], types:string[], data:string[][], userTimeZone:string):Promise<Table>;
637
626
  /**
638
- * A list of the key Column objects
639
- * @return {@link dh.Column} array.
627
+ * Merges the given tables into a single table. Assumes all tables have the same structure.
628
+ * @param tables -
629
+ * @return {@link Promise} of {@link dh.Table}
640
630
  */
641
- get keyColumns():Column[];
631
+ mergeTables(tables:Table[]):Promise<Table>;
632
+ bindTableToVariable(table:Table, name:string):Promise<void>;
633
+ subscribeToFieldUpdates(callback:(arg0:dh.ide.VariableChanges)=>void):()=>void;
634
+ close():void;
635
+ runCode(code:string):Promise<dh.ide.CommandResult>;
636
+ onLogMessage(callback:(arg0:dh.ide.LogItem)=>void):()=>void;
637
+ openDocument(params:object):void;
638
+ changeDocument(params:object):void;
639
+ getCompletionItems(params:object):Promise<Array<dh.lsp.CompletionItem>>;
640
+ getSignatureHelp(params:object):Promise<Array<dh.lsp.SignatureInformation>>;
641
+ getHover(params:object):Promise<dh.lsp.Hover>;
642
+ closeDocument(params:object):void;
642
643
  /**
643
- * A list of the value Column objects
644
- * @return {@link dh.Column} array.
644
+ * Creates an empty table with the specified number of rows. Optionally columns and types may be specified, but all
645
+ * values will be null.
646
+ * @param size -
647
+ * @return {@link Promise} of {@link dh.Table}
645
648
  */
646
- get valueColumns():Column[];
649
+ emptyTable(size:number):Promise<Table>;
647
650
  /**
648
- * The source table for this Input Table
649
- * @return dh.table
651
+ * Creates a new table that ticks automatically every "periodNanos" nanoseconds. A start time may be provided; if so
652
+ * the table will be populated with the interval from the specified date until now.
653
+ * @param periodNanos -
654
+ * @param startTime -
655
+ * @return {@link Promise} of {@link dh.Table}
650
656
  */
651
- get table():Table;
657
+ timeTable(periodNanos:number, startTime?:DateWrapper):Promise<Table>;
658
+ addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
659
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
660
+ hasListeners(name:string):boolean;
661
+ removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
652
662
  }
653
663
 
654
664
  /**
655
- * Presently optional and not used by the server, this allows the client to specify some authentication details. String
656
- * authToken <i>- base 64 encoded auth token. String serviceId -</i> The service ID to use for the connection.
665
+ * Wrap BigInteger values for use in JS. Provides text formatting for display and access to the underlying value.
657
666
  */
658
- export class ConnectOptions {
659
- headers:{ [key: string]: string; };
667
+ export class BigIntegerWrapper {
668
+ protected constructor();
660
669
 
661
- constructor();
670
+ static ofString(str:string):BigIntegerWrapper;
671
+ asNumber():number;
672
+ valueOf():string;
673
+ toString():string;
662
674
  }
663
675
 
664
676
  /**
665
- * This class allows iteration over non-contiguous indexes. In the future, this will support the EcmaScript 2015
666
- * Iteration protocol, but for now has one method which returns an iterator, and also supports querying the size.
667
- * Additionally, we may add support for creating RangeSet objects to better serve some use cases.
677
+ * Describes data that can be filtered, either a column reference or a literal value. Used this way, the type of a value
678
+ * can be specified so that values which are ambiguous or not well supported in JS will not be confused with Strings or
679
+ * imprecise numbers (e.g., nanosecond-precision date values). Additionally, once wrapped in this way, methods can be
680
+ * called on these value literal instances. These instances are immutable - any method called on them returns a new
681
+ * instance.
668
682
  */
669
- export class RangeSet {
683
+ export class FilterValue {
670
684
  protected constructor();
671
685
 
672
- static ofRange(first:number, last:number):RangeSet;
673
- static ofItems(rows:number[]):RangeSet;
674
- static ofRanges(ranges:RangeSet[]):RangeSet;
675
- static ofSortedRanges(ranges:RangeSet[]):RangeSet;
676
686
  /**
677
- * a new iterator over all indexes in this collection.
678
- * @return Iterator of {@link dh.LongWrapper}
687
+ * Constructs a number for the filter API from the given parameter. Can also be used on the values returned from
688
+ * {@link TableData.get} for DateTime values. To create
689
+ * a filter with a date, use <b>dh.DateWrapper.ofJsDate</b> or
690
+ * {@link i18n.DateTimeFormat.parse}. To create a filter with a
691
+ * 64-bit long integer, use {@link LongWrapper.ofString}.
692
+ * @param input - the number to wrap as a FilterValue
693
+ * @return an immutable FilterValue that can be built into a filter
679
694
  */
680
- iterator():Iterator<LongWrapper>;
695
+ static ofNumber(input:LongWrapper|number):FilterValue;
681
696
  /**
682
- * The total count of items contained in this collection. In some cases this can be expensive to compute, and
683
- * generally should not be needed except for debugging purposes, or preallocating space (i.e., do not call this
684
- * property each time through a loop).
685
- * @return double
697
+ * a filter condition checking if the current value is equal to the given parameter
698
+ * @param term -
699
+ * @return {@link dh.FilterCondition}
686
700
  */
687
- get size():number;
688
- }
689
-
690
- export class CoreClient implements HasEventHandling {
691
- static readonly EVENT_CONNECT:string;
692
- static readonly EVENT_DISCONNECT:string;
693
- static readonly EVENT_RECONNECT:string;
694
- static readonly EVENT_RECONNECT_AUTH_FAILED:string;
695
- static readonly EVENT_REFRESH_TOKEN_UPDATED:string;
696
- static readonly EVENT_REQUEST_FAILED:string;
697
- static readonly EVENT_REQUEST_STARTED:string;
698
- static readonly EVENT_REQUEST_SUCCEEDED:string;
699
- static readonly LOGIN_TYPE_PASSWORD:string;
700
- static readonly LOGIN_TYPE_ANONYMOUS:string;
701
-
702
- constructor(serverUrl:string, connectOptions?:ConnectOptions);
703
-
704
- running():Promise<CoreClient>;
705
- getServerUrl():string;
706
- getAuthConfigValues():Promise<string[][]>;
707
- login(credentials:LoginCredentials):Promise<void>;
708
- relogin(token:RefreshToken):Promise<void>;
709
- onConnected(timeoutInMillis?:number):Promise<void>;
710
- getServerConfigValues():Promise<string[][]>;
711
- getStorageService():dh.storage.StorageService;
712
- getAsIdeConnection():Promise<IdeConnection>;
713
- disconnect():void;
714
- addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
715
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
716
- hasListeners(name:string):boolean;
717
- removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
718
- }
719
-
720
- /**
721
- * Describes a grouping and aggregations for a roll-up table. Pass to the <b>Table.rollup</b> function to create a
722
- * roll-up table.
723
- */
724
- export class RollupConfig {
701
+ eq(term:FilterValue):FilterCondition;
725
702
  /**
726
- * Ordered list of columns to group by to form the hierarchy of the resulting roll-up table.
703
+ * a filter condition checking if the current value is equal to the given parameter, ignoring differences of upper
704
+ * vs lower case
705
+ * @param term -
706
+ * @return {@link dh.FilterCondition}
727
707
  */
728
- groupingColumns:Array<String>;
708
+ eqIgnoreCase(term:FilterValue):FilterCondition;
729
709
  /**
730
- * Mapping from each aggregation name to the ordered list of columns it should be applied to in the resulting
731
- * roll-up table.
710
+ * a filter condition checking if the current value is not equal to the given parameter
711
+ * @param term -
712
+ * @return {@link dh.FilterCondition}
732
713
  */
733
- aggregations:{ [key: string]: Array<AggregationOperationType>; };
714
+ notEq(term:FilterValue):FilterCondition;
734
715
  /**
735
- * Optional parameter indicating if an extra leaf node should be added at the bottom of the hierarchy, showing the
736
- * rows in the underlying table which make up that grouping. Since these values might be a different type from the
737
- * rest of the column, any client code must check if TreeRow.hasChildren = false, and if so, interpret those values
738
- * as if they were Column.constituentType instead of Column.type. Defaults to false.
716
+ * a filter condition checking if the current value is not equal to the given parameter, ignoring differences of
717
+ * upper vs lower case
718
+ * @param term -
719
+ * @return {@link dh.FilterCondition}
739
720
  */
740
- includeConstituents:boolean;
741
- includeOriginalColumns?:boolean|null;
721
+ notEqIgnoreCase(term:FilterValue):FilterCondition;
742
722
  /**
743
- * Optional parameter indicating if original column descriptions should be included. Defaults to true.
723
+ * a filter condition checking if the current value is greater than the given parameter
724
+ * @param term -
725
+ * @return {@link dh.FilterCondition}
744
726
  */
745
- includeDescriptions:boolean;
746
-
747
- constructor();
748
- }
749
-
750
- export class CustomColumn {
751
- static readonly TYPE_FORMAT_COLOR:string;
752
- static readonly TYPE_FORMAT_NUMBER:string;
753
- static readonly TYPE_FORMAT_DATE:string;
754
- static readonly TYPE_NEW:string;
755
-
756
- protected constructor();
757
-
758
- valueOf():string;
759
- toString():string;
727
+ greaterThan(term:FilterValue):FilterCondition;
760
728
  /**
761
- * The expression to evaluate this custom column.
762
- * @return String
729
+ * a filter condition checking if the current value is less than the given parameter
730
+ * @param term -
731
+ * @return {@link dh.FilterCondition}
763
732
  */
764
- get expression():string;
733
+ lessThan(term:FilterValue):FilterCondition;
765
734
  /**
766
- * The name of the column to use.
767
- * @return String
735
+ * a filter condition checking if the current value is greater than or equal to the given parameter
736
+ * @param term -
737
+ * @return {@link dh.FilterCondition}
768
738
  */
769
- get name():string;
739
+ greaterThanOrEqualTo(term:FilterValue):FilterCondition;
770
740
  /**
771
- * Type of custom column. One of
772
- *
741
+ * a filter condition checking if the current value is less than or equal to the given parameter
742
+ * @param term -
743
+ * @return {@link dh.FilterCondition}
744
+ */
745
+ lessThanOrEqualTo(term:FilterValue):FilterCondition;
746
+ /**
747
+ * a filter condition checking if the current value is in the given set of values
748
+ * @param terms -
749
+ * @return {@link dh.FilterCondition}
750
+ */
751
+ in(terms:FilterValue[]):FilterCondition;
752
+ /**
753
+ * a filter condition checking if the current value is in the given set of values, ignoring differences of upper vs
754
+ * lower case
755
+ * @param terms -
756
+ * @return {@link dh.FilterCondition}
757
+ */
758
+ inIgnoreCase(terms:FilterValue[]):FilterCondition;
759
+ /**
760
+ * a filter condition checking that the current value is not in the given set of values
761
+ * @param terms -
762
+ * @return {@link dh.FilterCondition}
763
+ */
764
+ notIn(terms:FilterValue[]):FilterCondition;
765
+ /**
766
+ * a filter condition checking that the current value is not in the given set of values, ignoring differences of
767
+ * upper vs lower case
768
+ * @param terms -
769
+ * @return {@link dh.FilterCondition}
770
+ */
771
+ notInIgnoreCase(terms:FilterValue[]):FilterCondition;
772
+ /**
773
+ * a filter condition checking if the given value contains the given string value
774
+ * @param term -
775
+ * @return {@link dh.FilterCondition}
776
+ */
777
+ contains(term:FilterValue):FilterCondition;
778
+ /**
779
+ * a filter condition checking if the given value contains the given string value, ignoring differences of upper vs
780
+ * lower case
781
+ * @param term -
782
+ * @return {@link dh.FilterCondition}
783
+ */
784
+ containsIgnoreCase(term:FilterValue):FilterCondition;
785
+ /**
786
+ * a filter condition checking if the given value matches the provided regular expressions string. Regex patterns
787
+ * use Java regex syntax
788
+ * @param pattern -
789
+ * @return {@link dh.FilterCondition}
790
+ */
791
+ matches(pattern:FilterValue):FilterCondition;
792
+ /**
793
+ * a filter condition checking if the given value matches the provided regular expressions string, ignoring
794
+ * differences of upper vs lower case. Regex patterns use Java regex syntax
795
+ * @param pattern -
796
+ * @return {@link dh.FilterCondition}
797
+ */
798
+ matchesIgnoreCase(pattern:FilterValue):FilterCondition;
799
+ /**
800
+ * a filter condition checking if the current value is a true boolean
801
+ * @return {@link dh.FilterCondition}
802
+ */
803
+ isTrue():FilterCondition;
804
+ /**
805
+ * a filter condition checking if the current value is a false boolean
806
+ * @return {@link dh.FilterCondition}
807
+ */
808
+ isFalse():FilterCondition;
809
+ /**
810
+ * a filter condition checking if the current value is a null value
811
+ * @return {@link dh.FilterCondition}
812
+ */
813
+ isNull():FilterCondition;
814
+ /**
815
+ * a filter condition invoking the given method on the current value, with the given parameters. Currently supported
816
+ * functions that can be invoked on a String:
773
817
  * <ul>
774
- * <li>FORMAT_COLOR</li>
775
- * <li>FORMAT_NUMBER</li>
776
- * <li>FORMAT_DATE</li>
777
- * <li>NEW</li>
818
+ * <li><b>startsWith</b>: Returns true if the current string value starts with the supplied string argument</li>
819
+ * <li><b>endsWith</b>: Returns true if the current string value ends with the supplied string argument</li>
820
+ * <li><b>matches</b>: Returns true if the current string value matches the supplied string argument used as a Java
821
+ * regular expression</li>
822
+ * <li><b>contains</b>: Returns true if the current string value contains the supplied string argument
823
+ * <p>
824
+ * When invoking against a constant, this should be avoided in favor of FilterValue.contains
825
+ * </p>
826
+ * </li>
778
827
  * </ul>
779
- * @return String
828
+ * @param method -
829
+ * @param args -
830
+ * @return
780
831
  */
781
- get type():string;
832
+ invoke(method:string, ...args:FilterValue[]):FilterCondition;
833
+ toString():string;
834
+ /**
835
+ * Constructs a string for the filter API from the given parameter.
836
+ * @param input -
837
+ * @return
838
+ */
839
+ static ofString(input:any):FilterValue;
840
+ /**
841
+ * Constructs a boolean for the filter API from the given parameter.
842
+ * @param b -
843
+ * @return
844
+ */
845
+ static ofBoolean(b:boolean):FilterValue;
782
846
  }
783
847
 
848
+
784
849
  /**
785
850
  * A Widget represents a server side object that sends one or more responses to the client. The client can then
786
851
  * interpret these responses to see what to render, or how to respond.
787
- *
852
+ * <p>
788
853
  * Most custom object types result in a single response being sent to the client, often with other exported objects, but
789
854
  * some will have streamed responses, and allow the client to send follow-up requests of its own. This class's API is
790
855
  * backwards compatible, but as such does not offer a way to tell the difference between a streaming or non-streaming
791
856
  * object type, the client code that handles the payloads is expected to know what to expect. See
792
- * dh.WidgetMessageDetails for more information.
793
- *
857
+ * {@link dh.WidgetMessageDetails} for more information.
858
+ * <p>
794
859
  * When the promise that returns this object resolves, it will have the first response assigned to its fields. Later
795
- * responses from the server will be emitted as "message" events. When the connection with the server ends
860
+ * responses from the server will be emitted as "message" events. When the connection with the server ends, the "close"
861
+ * event will be emitted. In this way, the connection will behave roughly in the same way as a WebSocket - either side
862
+ * can close, and after close no more messages will be processed. There can be some latency in closing locally while
863
+ * remote messages are still pending - it is up to implementations of plugins to handle this case.
864
+ * <p>
865
+ * Also like WebSockets, the plugin API doesn't define how to serialize messages, and just handles any binary payloads.
866
+ * What it does handle however, is allowing those messages to include references to server-side objects with those
867
+ * payloads. Those server side objects might be tables or other built-in types in the Deephaven JS API, or could be
868
+ * objects usable through their own plugins. They also might have no plugin at all, allowing the client to hold a
869
+ * reference to them and pass them back to the server, either to the current plugin instance, or through another API.
870
+ * The `Widget` type does not specify how those objects should be used or their lifecycle, but leaves that
871
+ * entirely to the plugin. Messages will arrive in the order they were sent.
872
+ * <p>
873
+ * This can suggest several patterns for how plugins operate:
874
+ * <ul>
875
+ * <li>The plugin merely exists to transport some other object to the client. This can be useful for objects which can
876
+ * easily be translated to some other type (like a Table) when the user clicks on it. An example of this is
877
+ * `pandas.DataFrame` will result in a widget that only contains a static
878
+ * {@link dh.Table}. Presently, the widget is immediately closed, and only the Table is
879
+ * provided to the JS API consumer.</li>
880
+ * <li>The plugin provides references to Tables and other objects, and those objects can live longer than the object
881
+ * which provided them. One concrete example of this could have been
882
+ * {@link dh.PartitionedTable} when fetching constituent tables, but it was implemented
883
+ * before bidirectional plugins were implemented. Another example of this is plugins that serve as a "factory", giving
884
+ * the user access to table manipulation/creation methods not supported by gRPC or the JS API.</li>
885
+ * <li>The plugin provides reference to Tables and other objects that only make sense within the context of the widget
886
+ * instance, so when the widget goes away, those objects should be released as well. This is also an example of
887
+ * {@link dh.PartitionedTable}, as the partitioned table tracks creation of new keys through
888
+ * an internal table instance.</li>
889
+ * </ul>
890
+ *
891
+ * Handling server objects in messages also has more than one potential pattern that can be used:
892
+ * <ul>
893
+ * <li>One object per message - the message clearly is about that object, no other details required.</li>
894
+ * <li>Objects indexed within their message - as each message comes with a list of objects, those objects can be
895
+ * referenced within the payload by index. This is roughly how {@link dh.plot.Figure}
896
+ * behaves, where the figure descriptor schema includes an index for each created series, describing which table should
897
+ * be used, which columns should be mapped to each axis.</li>
898
+ * <li>Objects indexed since widget creation - each message would append its objects to a list created when the widget
899
+ * was first made, and any new exports that arrive in a new message would be appended to that list. Then, subsequent
900
+ * messages can reference objects already sent. This imposes a limitation where the client cannot release any exports
901
+ * without the server somehow signaling that it will never reference that export again.</li>
902
+ * </ul>
796
903
  */
797
904
  export class Widget implements WidgetMessageDetails, HasEventHandling {
798
905
  static readonly EVENT_MESSAGE:string;
@@ -817,6 +924,11 @@ export namespace dh {
817
924
  nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
818
925
  hasListeners(name:string):boolean;
819
926
  removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
927
+ /**
928
+ *
929
+ * @return the exported objects sent in the initial message from the server. The client is responsible for closing
930
+ * them when finished using them.
931
+ */
820
932
  get exportedObjects():WidgetExportedObject[];
821
933
  /**
822
934
  *
@@ -825,930 +937,1095 @@ export namespace dh {
825
937
  get type():string;
826
938
  }
827
939
 
828
-
829
- export class QueryInfo {
830
- static readonly EVENT_TABLE_OPENED:string;
831
- static readonly EVENT_DISCONNECT:string;
832
- static readonly EVENT_RECONNECT:string;
833
- static readonly EVENT_CONNECT:string;
834
-
835
- protected constructor();
836
- }
837
-
838
940
  /**
839
- * Presently, this is the entrypoint into the Deephaven JS API. By creating an instance of this with the server URL and
840
- * some options, JS applications can run code on the server, and interact with available exportable objects.
941
+ * Provides access to data in a table. Note that several methods present their response through Promises. This allows
942
+ * the client to both avoid actually connecting to the server until necessary, and also will permit some changes not to
943
+ * inform the UI right away that they have taken place.
841
944
  */
842
- export class IdeConnection implements HasEventHandling {
843
- /**
844
- * @deprecated
845
- */
846
- static readonly HACK_CONNECTION_FAILURE:string;
945
+ export class Table implements JoinableTable, HasEventHandling {
946
+ readonly description?:string|null;
947
+ readonly pluginName?:string|null;
948
+ readonly layoutHints?:null|LayoutHints;
949
+ static readonly EVENT_SIZECHANGED:string;
950
+ static readonly EVENT_UPDATED:string;
951
+ static readonly EVENT_ROWADDED:string;
952
+ static readonly EVENT_ROWREMOVED:string;
953
+ static readonly EVENT_ROWUPDATED:string;
954
+ static readonly EVENT_SORTCHANGED:string;
955
+ static readonly EVENT_FILTERCHANGED:string;
956
+ static readonly EVENT_CUSTOMCOLUMNSCHANGED:string;
847
957
  static readonly EVENT_DISCONNECT:string;
848
958
  static readonly EVENT_RECONNECT:string;
849
- static readonly EVENT_SHUTDOWN:string;
959
+ static readonly EVENT_RECONNECTFAILED:string;
960
+ static readonly EVENT_REQUEST_FAILED:string;
961
+ static readonly EVENT_REQUEST_SUCCEEDED:string;
962
+ static readonly SIZE_UNCOALESCED:number;
850
963
 
851
- /**
852
- * creates a new instance, from which console sessions can be made. <b>options</b> are optional.
853
- * @param serverUrl - The url used when connecting to the server. Read-only.
854
- * @param connectOptions - Optional Object
855
- * @param fromJava - Optional boolean
856
- * @deprecated
857
- */
858
- constructor(serverUrl:string, connectOptions?:ConnectOptions, fromJava?:boolean);
964
+ protected constructor();
859
965
 
966
+ batch(userCode:(arg0:unknown)=>void):Promise<Table>;
860
967
  /**
861
- * closes the current connection, releasing any resources on the server or client.
968
+ * Retrieve a column by the given name. You should prefer to always retrieve a new Column instance instead of
969
+ * caching a returned value.
970
+ * @param key -
971
+ * @return {@link dh.Column}
862
972
  */
863
- close():void;
864
- running():Promise<IdeConnection>;
865
- getObject(definitionObject:dh.ide.VariableDescriptor):Promise<any>;
866
- subscribeToFieldUpdates(callback:(arg0:dh.ide.VariableChanges)=>void):()=>void;
973
+ findColumn(key:string):Column;
867
974
  /**
868
- * Register a callback function to handle any log messages that are emitted on the server. Returns a function ,
869
- * which can be invoked to remove this log handler. Any log handler registered in this way will receive as many old
870
- * log messages as are presently available.
871
- * @param callback -
872
- * @return {@link io.deephaven.web.shared.fu.JsRunnable}
975
+ * Retrieve multiple columns specified by the given names.
976
+ * @param keys -
977
+ * @return {@link dh.Column} array
873
978
  */
874
- onLogMessage(callback:(arg0:dh.ide.LogItem)=>void):()=>void;
875
- startSession(type:string):Promise<IdeSession>;
876
- getConsoleTypes():Promise<Array<string>>;
877
- getWorkerHeapInfo():Promise<WorkerHeapInfo>;
878
- }
879
-
880
- export class LoginCredentials {
881
- type?:string|null;
882
- username?:string|null;
883
- token?:string|null;
884
-
885
- constructor();
886
- }
887
-
888
- /**
889
- * Describes how a Totals Table will be generated from its parent table. Each table has a default (which may be null)
890
- * indicating how that table was configured when it was declared, and each Totals Table has a similar property
891
- * describing how it was created. Both the <b>Table.getTotalsTable</b> and <b>Table.getGrandTotalsTable</b> methods take
892
- * this config as an optional parameter - without it, the table's default will be used, or if null, a default instance
893
- * of <b>TotalsTableConfig</b> will be supplied.
894
- *
895
- * This class has a no-arg constructor, allowing an instance to be made with the default values provided. However, any
896
- * JS object can be passed in to the methods which accept instances of this type, provided their values adhere to the
897
- * expected formats.
898
- */
899
- export class TotalsTableConfig {
979
+ findColumns(keys:string[]):Column[];
980
+ isBlinkTable():boolean;
900
981
  /**
901
- * @deprecated
982
+ * If .hasInputTable is true, you may call this method to gain access to an InputTable object which can be used to
983
+ * mutate the data within the table. If the table is not an Input Table, the promise will be immediately rejected.
984
+ * @return Promise of dh.InputTable
902
985
  */
903
- static readonly COUNT:string;
986
+ inputTable():Promise<InputTable>;
904
987
  /**
905
- * @deprecated
988
+ * Indicates that this Table instance will no longer be used, and its connection to the server can be cleaned up.
906
989
  */
907
- static readonly MIN:string;
990
+ close():void;
991
+ getAttributes():string[];
908
992
  /**
909
- * @deprecated
993
+ * null if no property exists, a string if it is an easily serializable property, or a ```Promise
994
+ * &lt;Table&gt;``` that will either resolve with a table or error out if the object can't be passed to JS.
995
+ * @param attributeName -
996
+ * @return Object
910
997
  */
911
- static readonly MAX:string;
998
+ getAttribute(attributeName:string):unknown|undefined|null;
912
999
  /**
913
- * @deprecated
1000
+ * Replace the currently set sort on this table. Returns the previously set value. Note that the sort property will
1001
+ * immediately return the new value, but you may receive update events using the old sort before the new sort is
1002
+ * applied, and the <b>sortchanged</b> event fires. Reusing existing, applied sorts may enable this to perform
1003
+ * better on the server. The <b>updated</b> event will also fire, but <b>rowadded</b> and <b>rowremoved</b> will
1004
+ * not.
1005
+ * @param sort -
1006
+ * @return {@link dh.Sort} array
914
1007
  */
915
- static readonly SUM:string;
1008
+ applySort(sort:Sort[]):Array<Sort>;
916
1009
  /**
917
- * @deprecated
1010
+ * Replace the currently set filters on the table. Returns the previously set value. Note that the filter property
1011
+ * will immediately return the new value, but you may receive update events using the old filter before the new one
1012
+ * is applied, and the <b>filterchanged</b> event fires. Reusing existing, applied filters may enable this to
1013
+ * perform better on the server. The <b>updated</b> event will also fire, but <b>rowadded</b> and <b>rowremoved</b>
1014
+ * will not.
1015
+ * @param filter -
1016
+ * @return {@link dh.FilterCondition} array
918
1017
  */
919
- static readonly ABS_SUM:string;
1018
+ applyFilter(filter:FilterCondition[]):Array<FilterCondition>;
920
1019
  /**
921
- * @deprecated
1020
+ * used when adding new filter and sort operations to the table, as long as they are present.
1021
+ * @param customColumns -
1022
+ * @return {@link dh.CustomColumn} array
922
1023
  */
923
- static readonly VAR:string;
1024
+ applyCustomColumns(customColumns:Array<string|CustomColumn>):Array<CustomColumn>;
924
1025
  /**
925
- * @deprecated
1026
+ * If the columns parameter is not provided, all columns will be used. If the updateIntervalMs parameter is not
1027
+ * provided, a default of one second will be used. Until this is called, no data will be available. Invoking this
1028
+ * will result in events to be fired once data becomes available, starting with an `updated` event and a
1029
+ * <b>rowadded</b> event per row in that range. The returned object allows the viewport to be closed when no longer
1030
+ * needed.
1031
+ * @param firstRow -
1032
+ * @param lastRow -
1033
+ * @param columns -
1034
+ * @param updateIntervalMs -
1035
+ * @return {@link dh.TableViewportSubscription}
926
1036
  */
927
- static readonly AVG:string;
1037
+ setViewport(firstRow:number, lastRow:number, columns?:Array<Column>|undefined|null, updateIntervalMs?:number|undefined|null):TableViewportSubscription;
928
1038
  /**
929
- * @deprecated
1039
+ * Gets the currently visible viewport. If the current set of operations has not yet resulted in data, it will not
1040
+ * resolve until that data is ready. If this table is closed before the promise resolves, it will be rejected - to
1041
+ * separate the lifespan of this promise from the table itself, call
1042
+ * {@link TableViewportSubscription.getViewportData} on the result from {@link Table.setViewport}.
1043
+ * @return Promise of {@link dh.TableData}
930
1044
  */
931
- static readonly STD:string;
1045
+ getViewportData():Promise<TableData>;
932
1046
  /**
933
- * @deprecated
1047
+ * Creates a subscription to the specified columns, across all rows in the table. The optional parameter
1048
+ * updateIntervalMs may be specified to indicate how often the server should send updates, defaulting to one second
1049
+ * if omitted. Useful for charts or taking a snapshot of the table atomically. The initial snapshot will arrive in a
1050
+ * single event, but later changes will be sent as updates. However, this may still be very expensive to run from a
1051
+ * browser for very large tables. Each call to subscribe creates a new subscription, which must have <b>close()</b>
1052
+ * called on it to stop it, and all events are fired from the TableSubscription instance.
1053
+ * @param columns -
1054
+ * @param updateIntervalMs -
1055
+ * @return {@link dh.TableSubscription}
934
1056
  */
935
- static readonly FIRST:string;
1057
+ subscribe(columns:Array<Column>, updateIntervalMs?:number):TableSubscription;
936
1058
  /**
937
- * @deprecated
1059
+ * a new table containing the distinct tuples of values from the given columns that are present in the original
1060
+ * table. This table can be manipulated as any other table. Sorting is often desired as the default sort is the
1061
+ * order of appearance of values from the original table.
1062
+ * @param columns -
1063
+ * @return Promise of dh.Table
938
1064
  */
939
- static readonly LAST:string;
1065
+ selectDistinct(columns:Column[]):Promise<Table>;
940
1066
  /**
941
- * @deprecated
1067
+ * Creates a new copy of this table, so it can be sorted and filtered separately, and maintain a different viewport.
1068
+ * @return Promise of dh.Table
942
1069
  */
943
- static readonly SKIP:string;
1070
+ copy():Promise<Table>;
944
1071
  /**
945
- * Specifies if a Totals Table should be expanded by default in the UI. Defaults to false.
1072
+ * a promise that will resolve to a Totals Table of this table. This table will obey the configurations provided as
1073
+ * a parameter, or will use the table's default if no parameter is provided, and be updated once per second as
1074
+ * necessary. Note that multiple calls to this method will each produce a new TotalsTable which must have close()
1075
+ * called on it when not in use.
1076
+ * @param config -
1077
+ * @return Promise of dh.TotalsTable
946
1078
  */
947
- showTotalsByDefault:boolean;
1079
+ getTotalsTable(config?:TotalsTableConfig|undefined|null):Promise<TotalsTable>;
948
1080
  /**
949
- * Specifies if a Grand Totals Table should be expanded by default in the UI. Defaults to false.
1081
+ * a promise that will resolve to a Totals Table of this table, ignoring any filters. See <b>getTotalsTable()</b>
1082
+ * above for more specifics.
1083
+ * @param config -
1084
+ * @return promise of dh.TotalsTable
950
1085
  */
951
- showGrandTotalsByDefault:boolean;
1086
+ getGrandTotalsTable(config?:TotalsTableConfig|undefined|null):Promise<TotalsTable>;
952
1087
  /**
953
- * Specifies the default operation for columns that do not have a specific operation applied; defaults to "Sum".
1088
+ * a promise that will resolve to a new roll-up <b>TreeTable</b> of this table. Multiple calls to this method will
1089
+ * each produce a new <b>TreeTable</b> which must have close() called on it when not in use.
1090
+ * @param configObject -
1091
+ * @return Promise of dh.TreeTable
954
1092
  */
955
- defaultOperation:AggregationOperationType;
1093
+ rollup(configObject:RollupConfig):Promise<TreeTable>;
956
1094
  /**
957
- * Mapping from each column name to the aggregation(s) that should be applied to that column in the resulting Totals
958
- * Table. If a column is omitted, the defaultOperation is used.
1095
+ * a promise that will resolve to a new `TreeTable` of this table. Multiple calls to this method will each produce a
1096
+ * new `TreeTable` which must have close() called on it when not in use.
1097
+ * @param configObject -
1098
+ * @return Promise dh.TreeTable
959
1099
  */
960
- operationMap:{ [key: string]: Array<AggregationOperationType>; };
1100
+ treeTable(configObject:TreeTableConfig):Promise<TreeTable>;
961
1101
  /**
962
- * Groupings to use when generating the Totals Table. One row will exist for each unique set of values observed in
963
- * these columns. See also `Table.selectDistinct`.
1102
+ * a "frozen" version of this table (a server-side snapshot of the entire source table). Viewports on the frozen
1103
+ * table will not update. This does not change the original table, and the new table will not have any of the client
1104
+ * side sorts/filters/columns. New client side sorts/filters/columns can be added to the frozen copy.
1105
+ * @return Promise of dh.Table
964
1106
  */
965
- groupBy:Array<string>;
966
-
967
- constructor();
968
-
969
- toString():string;
970
- }
971
-
972
- /**
973
- * Configuration object for running Table.treeTable to produce a hierarchical view of a given "flat" table.
974
- *
975
- * Like TotalsTableConfig, `TreeTableConfig` supports an operation map indicating how to aggregate the data, as well as
976
- * an array of column names which will be the layers in the roll-up tree, grouped at each level. An additional optional
977
- * value can be provided describing the strategy the engine should use when grouping the rows.
978
- */
979
- export class TreeTableConfig {
1107
+ freeze():Promise<Table>;
1108
+ snapshot(baseTable:Table, doInitialSnapshot?:boolean, stampColumns?:string[]):Promise<Table>;
980
1109
  /**
981
- * The column representing the unique ID for each item
1110
+ *
1111
+ * @deprecated a promise that will be resolved with a newly created table holding the results of the join operation.
1112
+ * The last parameter is optional, and if not specified or empty, all columns from the right table will
1113
+ * be added to the output. Callers are responsible for ensuring that there are no duplicates - a match
1114
+ * pair can be passed instead of a name to specify the new name for the column. Supported `joinType`
1115
+ * values (consult Deephaven's "Joining Data from Multiple Tables for more detail): "Join" <a href='https://docs.deephaven.io/latest/Content/writeQueries/tableOperations/joins.htm#Joining_Data_from_Multiple_Tables'>Joining_Data_from_Multiple_Tables</a>
1116
+ * "Natural" "AJ" "ReverseAJ" "ExactJoin" "LeftJoin"
1117
+ * @param joinType -
1118
+ * @param rightTable -
1119
+ * @param columnsToMatch -
1120
+ * @param columnsToAdd -
1121
+ * @param asOfMatchRule -
1122
+ * @return Promise of dh.Table
982
1123
  */
983
- idColumn:string;
1124
+ join(joinType:object, rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:unknown|undefined|null):Promise<Table>;
984
1125
  /**
985
- * The column representing the parent ID for each item
1126
+ * a promise that will be resolved with the newly created table holding the results of the specified as-of join
1127
+ * operation. The <b>columnsToAdd</b> parameter is optional, not specifying it will result in all columns from the
1128
+ * right table being added to the output. The <b>asOfMatchRule</b> is optional, defaults to <b>LESS_THAN_EQUAL</b>
1129
+ *
1130
+ * <p>
1131
+ * the allowed values are:
1132
+ * </p>
1133
+ *
1134
+ * <ul>
1135
+ * <li>LESS_THAN_EQUAL</li>
1136
+ * <li>LESS_THAN</li>
1137
+ * <li>GREATER_THAN_EQUAL</li>
1138
+ * <li>GREATER_THAN</li>
1139
+ * </ul>
1140
+ * @param rightTable -
1141
+ * @param columnsToMatch -
1142
+ * @param columnsToAdd -
1143
+ * @param asOfMatchRule -
1144
+ * @return Promise og dh.Table
986
1145
  */
987
- parentColumn:string;
1146
+ asOfJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:string|undefined|null):Promise<Table>;
988
1147
  /**
989
- * Optional parameter indicating if items with an invalid parent ID should be promoted to root. Defaults to false.
1148
+ * a promise that will be resolved with the newly created table holding the results of the specified cross join
1149
+ * operation. The <b>columnsToAdd</b> parameter is optional, not specifying it will result in all columns from the
1150
+ * right table being added to the output. The <b>reserveBits</b> optional parameter lets the client control how the
1151
+ * key space is distributed between the rows in the two tables, see the Java <b>Table</b> class for details.
1152
+ * @param rightTable -
1153
+ * @param columnsToMatch -
1154
+ * @param columnsToAdd -
1155
+ * @param reserve_bits -
1156
+ * @return Promise of dh.Table
990
1157
  */
991
- promoteOrphansToRoot:boolean;
992
-
993
- constructor();
994
- }
995
-
996
- export class Ide {
997
- constructor();
998
-
1158
+ crossJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>, reserve_bits?:number):Promise<Table>;
999
1159
  /**
1000
- * @deprecated
1160
+ * a promise that will be resolved with the newly created table holding the results of the specified exact join
1161
+ * operation. The `columnsToAdd` parameter is optional, not specifying it will result in all columns from the right
1162
+ * table being added to the output.
1163
+ * @param rightTable -
1164
+ * @param columnsToMatch -
1165
+ * @param columnsToAdd -
1166
+ * @return Promise of dh.Table
1001
1167
  */
1002
- getExistingSession(websocketUrl:string, authToken:string, serviceId:string, language:string):Promise<IdeSession>;
1168
+ exactJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
1003
1169
  /**
1004
- * @deprecated
1170
+ * a promise that will be resolved with the newly created table holding the results of the specified natural join
1171
+ * operation. The <b>columnsToAdd</b> parameter is optional, not specifying it will result in all columns from the
1172
+ * right table being added to the output.
1173
+ * @param rightTable -
1174
+ * @param columnsToMatch -
1175
+ * @param columnsToAdd -
1176
+ * @return Promise of dh.Table
1005
1177
  */
1006
- static getExistingSession(websocketUrl:string, authToken:string, serviceId:string, language:string):Promise<IdeSession>;
1007
- }
1008
-
1009
- /**
1010
- * Describes data that can be filtered, either a column reference or a literal value. Used this way, the type of a value
1011
- * can be specified so that values which are ambiguous or not well supported in JS will not be confused with Strings or
1012
- * imprecise numbers (e.g., nanosecond-precision date values). Additionally, once wrapped in this way, methods can be
1013
- * called on these value literal instances. These instances are immutable - any method called on them returns a new
1014
- * instance.
1015
- */
1016
- export class FilterValue {
1017
- protected constructor();
1018
-
1178
+ naturalJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
1179
+ byExternal(keys:object, dropKeys?:boolean):Promise<PartitionedTable>;
1019
1180
  /**
1020
- * Constructs a number for the filter API from the given parameter. Can also be used on the values returned from
1021
- * {@link TableData.get} for DateTime values. To create
1022
- * a filter with a date, use <b>dh.DateWrapper.ofJsDate</b> or
1023
- * {@link i18n.DateTimeFormat.parse}. To create a filter with a
1024
- * 64-bit long integer, use {@link LongWrapper.ofString}.
1025
- * @param input - the number to wrap as a FilterValue
1026
- * @return an immutable FilterValue that can be built into a filter
1181
+ * Creates a new PartitionedTable from the contents of the current table, partitioning data based on the specified
1182
+ * keys.
1183
+ * @param keys -
1184
+ * @param dropKeys -
1185
+ * @return Promise dh.PartitionedTable
1027
1186
  */
1028
- static ofNumber(input:LongWrapper|number):FilterValue;
1187
+ partitionBy(keys:object, dropKeys?:boolean):Promise<PartitionedTable>;
1029
1188
  /**
1030
- * a filter condition checking if the current value is equal to the given parameter
1031
- * @param term -
1032
- * @return {@link dh.FilterCondition}
1189
+ * a promise that will resolve to ColumnStatistics for the column of this table.
1190
+ * @param column -
1191
+ * @return Promise of dh.ColumnStatistics
1033
1192
  */
1034
- eq(term:FilterValue):FilterCondition;
1193
+ getColumnStatistics(column:Column):Promise<ColumnStatistics>;
1035
1194
  /**
1036
- * a filter condition checking if the current value is equal to the given parameter, ignoring differences of upper
1037
- * vs lower case
1038
- * @param term -
1039
- * @return {@link dh.FilterCondition}
1195
+ * Seek the row matching the data provided
1196
+ * @param startingRow - Row to start the seek from
1197
+ * @param column - Column to seek for value on
1198
+ * @param valueType - Type of value provided
1199
+ * @param seekValue - Value to seek
1200
+ * @param insensitive - Optional value to flag a search as case-insensitive. Defaults to `false`.
1201
+ * @param contains - Optional value to have the seek value do a contains search instead of exact equality. Defaults to
1202
+ * `false`.
1203
+ * @param isBackwards - Optional value to seek backwards through the table instead of forwards. Defaults to `false`.
1204
+ * @return A promise that resolves to the row value found.
1040
1205
  */
1041
- eqIgnoreCase(term:FilterValue):FilterCondition;
1206
+ seekRow(startingRow:number, column:Column, valueType:ValueTypeType, seekValue:any, insensitive?:boolean|undefined|null, contains?:boolean|undefined|null, isBackwards?:boolean|undefined|null):Promise<number>;
1207
+ toString():string;
1042
1208
  /**
1043
- * a filter condition checking if the current value is not equal to the given parameter
1044
- * @param term -
1045
- * @return {@link dh.FilterCondition}
1209
+ * True if this table represents a user Input Table (created by InputTable.newInputTable). When true, you may call
1210
+ * .inputTable() to add or remove data from the underlying table.
1211
+ * @return boolean
1046
1212
  */
1047
- notEq(term:FilterValue):FilterCondition;
1213
+ get hasInputTable():boolean;
1048
1214
  /**
1049
- * a filter condition checking if the current value is not equal to the given parameter, ignoring differences of
1050
- * upper vs lower case
1051
- * @param term -
1052
- * @return {@link dh.FilterCondition}
1215
+ * The columns that are present on this table. This is always all possible columns. If you specify fewer columns in
1216
+ * .setViewport(), you will get only those columns in your ViewportData. <b>Number size</b> The total count of rows
1217
+ * in the table. The size can and will change; see the <b>sizechanged</b> event for details. Size will be negative
1218
+ * in exceptional cases (eg. the table is uncoalesced, see the <b>isUncoalesced</b> property for details).
1219
+ * @return {@link dh.Column} array
1053
1220
  */
1054
- notEqIgnoreCase(term:FilterValue):FilterCondition;
1221
+ get columns():Array<Column>;
1055
1222
  /**
1056
- * a filter condition checking if the current value is greater than the given parameter
1057
- * @param term -
1058
- * @return {@link dh.FilterCondition}
1223
+ * The default configuration to be used when building a <b>TotalsTable</b> for this table.
1224
+ * @return dh.TotalsTableConfig
1059
1225
  */
1060
- greaterThan(term:FilterValue):FilterCondition;
1226
+ get totalsTableConfig():TotalsTableConfig;
1061
1227
  /**
1062
- * a filter condition checking if the current value is less than the given parameter
1063
- * @param term -
1064
- * @return {@link dh.FilterCondition}
1228
+ * An ordered list of Sorts to apply to the table. To update, call <b>applySort()</b>. Note that this getter will
1229
+ * return the new value immediately, even though it may take a little time to update on the server. You may listen
1230
+ * for the <b>sortchanged</b> event to know when to update the UI.
1231
+ * @return {@link dh.Sort} array
1065
1232
  */
1066
- lessThan(term:FilterValue):FilterCondition;
1233
+ get sort():Array<Sort>;
1067
1234
  /**
1068
- * a filter condition checking if the current value is greater than or equal to the given parameter
1069
- * @param term -
1070
- * @return {@link dh.FilterCondition}
1235
+ * An ordered list of custom column formulas to add to the table, either adding new columns or replacing existing
1236
+ * ones. To update, call <b>applyCustomColumns()</b>.
1237
+ * @return {@link dh.CustomColumn} array
1071
1238
  */
1072
- greaterThanOrEqualTo(term:FilterValue):FilterCondition;
1239
+ get customColumns():Array<CustomColumn>;
1073
1240
  /**
1074
- * a filter condition checking if the current value is less than or equal to the given parameter
1075
- * @param term -
1076
- * @return {@link dh.FilterCondition}
1241
+ * True if this table may receive updates from the server, including size changed events, updated events after
1242
+ * initial snapshot.
1243
+ * @return boolean
1077
1244
  */
1078
- lessThanOrEqualTo(term:FilterValue):FilterCondition;
1245
+ get isRefreshing():boolean;
1079
1246
  /**
1080
- * a filter condition checking if the current value is in the given set of values
1081
- * @param terms -
1082
- * @return {@link dh.FilterCondition}
1247
+ * An ordered list of Filters to apply to the table. To update, call applyFilter(). Note that this getter will
1248
+ * return the new value immediately, even though it may take a little time to update on the server. You may listen
1249
+ * for the <b>filterchanged</b> event to know when to update the UI.
1250
+ * @return {@link dh.FilterCondition} array
1083
1251
  */
1084
- in(terms:FilterValue[]):FilterCondition;
1252
+ get filter():Array<FilterCondition>;
1085
1253
  /**
1086
- * a filter condition checking if the current value is in the given set of values, ignoring differences of upper vs
1087
- * lower case
1088
- * @param terms -
1089
- * @return {@link dh.FilterCondition}
1254
+ * The total count of the rows in the table, excluding any filters. Unlike <b>size</b>, changes to this value will
1255
+ * not result in any event. <b>Sort[] sort</b> an ordered list of Sorts to apply to the table. To update, call
1256
+ * applySort(). Note that this getter will return the new value immediately, even though it may take a little time
1257
+ * to update on the server. You may listen for the <b>sortchanged</b> event to know when to update the UI.
1258
+ * @return double
1090
1259
  */
1091
- inIgnoreCase(terms:FilterValue[]):FilterCondition;
1260
+ get totalSize():number;
1092
1261
  /**
1093
- * a filter condition checking that the current value is not in the given set of values
1094
- * @param terms -
1095
- * @return {@link dh.FilterCondition}
1262
+ * The total count of rows in the table. The size can and will change; see the <b>sizechanged</b> event for details.
1263
+ * Size will be negative in exceptional cases (e.g., the table is uncoalesced; see the <b>isUncoalesced</b>
1264
+ * property). for details).
1265
+ * @return double
1096
1266
  */
1097
- notIn(terms:FilterValue[]):FilterCondition;
1267
+ get size():number;
1098
1268
  /**
1099
- * a filter condition checking that the current value is not in the given set of values, ignoring differences of
1100
- * upper vs lower case
1101
- * @param terms -
1102
- * @return {@link dh.FilterCondition}
1269
+ * True if this table has been closed.
1270
+ * @return boolean
1103
1271
  */
1104
- notInIgnoreCase(terms:FilterValue[]):FilterCondition;
1272
+ get isClosed():boolean;
1105
1273
  /**
1106
- * a filter condition checking if the given value contains the given string value
1107
- * @param term -
1108
- * @return {@link dh.FilterCondition}
1274
+ * Read-only. True if this table is uncoalesced. Set a viewport or filter on the partition columns to coalesce the
1275
+ * table. Check the <b>isPartitionColumn</b> property on the table columns to retrieve the partition columns. Size
1276
+ * will be unavailable until table is coalesced.
1277
+ * @return boolean
1109
1278
  */
1110
- contains(term:FilterValue):FilterCondition;
1279
+ get isUncoalesced():boolean;
1111
1280
  /**
1112
- * a filter condition checking if the given value contains the given string value, ignoring differences of upper vs
1113
- * lower case
1114
- * @param term -
1115
- * @return {@link dh.FilterCondition}
1281
+ * Listen for events on this object.
1282
+ * @param name - the name of the event to listen for
1283
+ * @param callback - a function to call when the event occurs
1284
+ * @return Returns a cleanup function.
1285
+ * @typeParam T - the type of the data that the event will provide
1116
1286
  */
1117
- containsIgnoreCase(term:FilterValue):FilterCondition;
1287
+ addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
1288
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
1289
+ hasListeners(name:string):boolean;
1118
1290
  /**
1119
- * a filter condition checking if the given value matches the provided regular expressions string. Regex patterns
1120
- * use Java regex syntax
1121
- * @param pattern -
1122
- * @return {@link dh.FilterCondition}
1291
+ * Removes an event listener added to this table.
1292
+ * @param name -
1293
+ * @param callback -
1294
+ * @return
1295
+ * @typeParam T -
1123
1296
  */
1124
- matches(pattern:FilterValue):FilterCondition;
1297
+ removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
1125
1298
  /**
1126
- * a filter condition checking if the given value matches the provided regular expressions string, ignoring
1127
- * differences of upper vs lower case. Regex patterns use Java regex syntax
1128
- * @param pattern -
1129
- * @return {@link dh.FilterCondition}
1299
+ * a Sort than can be used to reverse a table. This can be passed into n array in applySort. Note that Tree Tables
1300
+ * do not support reverse.
1301
+ * @return {@link dh.Sort}
1130
1302
  */
1131
- matchesIgnoreCase(pattern:FilterValue):FilterCondition;
1303
+ static reverse():Sort;
1304
+ }
1305
+
1306
+ export class Ide {
1307
+ constructor();
1308
+
1132
1309
  /**
1133
- * a filter condition checking if the current value is a true boolean
1134
- * @return {@link dh.FilterCondition}
1310
+ * @deprecated
1135
1311
  */
1136
- isTrue():FilterCondition;
1312
+ getExistingSession(websocketUrl:string, authToken:string, serviceId:string, language:string):Promise<IdeSession>;
1137
1313
  /**
1138
- * a filter condition checking if the current value is a false boolean
1139
- * @return {@link dh.FilterCondition}
1314
+ * @deprecated
1140
1315
  */
1141
- isFalse():FilterCondition;
1142
- /**
1143
- * a filter condition checking if the current value is a null value
1144
- * @return {@link dh.FilterCondition}
1145
- */
1146
- isNull():FilterCondition;
1147
- /**
1148
- * a filter condition invoking the given method on the current value, with the given parameters. Currently supported
1149
- * functions that can be invoked on a String:
1150
- * <ul>
1151
- * <li><b>startsWith</b>: Returns true if the current string value starts with the supplied string argument</li>
1152
- * <li><b>endsWith</b>: Returns true if the current string value ends with the supplied string argument</li>
1153
- * <li><b>matches</b>: Returns true if the current string value matches the supplied string argument used as a Java
1154
- * regular expression</li>
1155
- * <li><b>contains</b>: Returns true if the current string value contains the supplied string argument
1156
- * <p>
1157
- * When invoking against a constant, this should be avoided in favor of FilterValue.contains
1158
- * </p>
1159
- * </li>
1160
- * </ul>
1161
- * @param method -
1162
- * @param args -
1163
- * @return
1164
- */
1165
- invoke(method:string, ...args:FilterValue[]):FilterCondition;
1166
- toString():string;
1167
- /**
1168
- * Constructs a string for the filter API from the given parameter.
1169
- * @param input -
1170
- * @return
1171
- */
1172
- static ofString(input:any):FilterValue;
1173
- /**
1174
- * Constructs a boolean for the filter API from the given parameter.
1175
- * @param b -
1176
- * @return
1177
- */
1178
- static ofBoolean(b:boolean):FilterValue;
1179
- }
1180
-
1181
- /**
1182
- * Event fired when a command is issued from the client.
1183
- */
1184
- export class CommandInfo {
1185
- constructor(code:string, result:Promise<dh.ide.CommandResult>);
1186
-
1187
- get result():Promise<dh.ide.CommandResult>;
1188
- get code():string;
1316
+ static getExistingSession(websocketUrl:string, authToken:string, serviceId:string, language:string):Promise<IdeSession>;
1189
1317
  }
1190
1318
 
1191
1319
  /**
1192
- * Provides access to data in a table. Note that several methods present their response through Promises. This allows
1193
- * the client to both avoid actually connecting to the server until necessary, and also will permit some changes not to
1194
- * inform the UI right away that they have taken place.
1320
+ * Deprecated for use in Deephaven Core.
1321
+ * @deprecated
1195
1322
  */
1196
- export class Table implements JoinableTable, HasEventHandling {
1197
- readonly description?:string|null;
1198
- readonly pluginName?:string|null;
1199
- readonly layoutHints?:null|LayoutHints;
1200
- static readonly EVENT_SIZECHANGED:string;
1201
- static readonly EVENT_UPDATED:string;
1202
- static readonly EVENT_ROWADDED:string;
1203
- static readonly EVENT_ROWREMOVED:string;
1204
- static readonly EVENT_ROWUPDATED:string;
1205
- static readonly EVENT_SORTCHANGED:string;
1206
- static readonly EVENT_FILTERCHANGED:string;
1207
- static readonly EVENT_CUSTOMCOLUMNSCHANGED:string;
1208
- static readonly EVENT_DISCONNECT:string;
1209
- static readonly EVENT_RECONNECT:string;
1210
- static readonly EVENT_RECONNECTFAILED:string;
1323
+ export class Client {
1211
1324
  static readonly EVENT_REQUEST_FAILED:string;
1325
+ static readonly EVENT_REQUEST_STARTED:string;
1212
1326
  static readonly EVENT_REQUEST_SUCCEEDED:string;
1213
- static readonly SIZE_UNCOALESCED:number;
1214
1327
 
1328
+ constructor();
1329
+ }
1330
+
1331
+ export class LongWrapper {
1215
1332
  protected constructor();
1216
1333
 
1217
- batch(userCode:(arg0:unknown)=>void):Promise<Table>;
1334
+ static ofString(str:string):LongWrapper;
1335
+ asNumber():number;
1336
+ valueOf():string;
1337
+ toString():string;
1338
+ }
1339
+
1340
+ /**
1341
+ * Configuration object for running Table.treeTable to produce a hierarchical view of a given "flat" table.
1342
+ *
1343
+ * Like TotalsTableConfig, `TreeTableConfig` supports an operation map indicating how to aggregate the data, as well as
1344
+ * an array of column names which will be the layers in the roll-up tree, grouped at each level. An additional optional
1345
+ * value can be provided describing the strategy the engine should use when grouping the rows.
1346
+ */
1347
+ export class TreeTableConfig {
1218
1348
  /**
1219
- * Retrieve a column by the given name. You should prefer to always retrieve a new Column instance instead of
1220
- * caching a returned value.
1221
- * @param key -
1222
- * @return {@link dh.Column}
1349
+ * The column representing the unique ID for each item
1223
1350
  */
1224
- findColumn(key:string):Column;
1351
+ idColumn:string;
1225
1352
  /**
1226
- * Retrieve multiple columns specified by the given names.
1227
- * @param keys -
1228
- * @return {@link dh.Column} array
1353
+ * The column representing the parent ID for each item
1229
1354
  */
1230
- findColumns(keys:string[]):Column[];
1231
- isBlinkTable():boolean;
1355
+ parentColumn:string;
1232
1356
  /**
1233
- * If .hasInputTable is true, you may call this method to gain access to an InputTable object which can be used to
1234
- * mutate the data within the table. If the table is not an Input Table, the promise will be immediately rejected.
1235
- * @return Promise of dh.InputTable
1357
+ * Optional parameter indicating if items with an invalid parent ID should be promoted to root. Defaults to false.
1236
1358
  */
1237
- inputTable():Promise<InputTable>;
1359
+ promoteOrphansToRoot:boolean;
1360
+
1361
+ constructor();
1362
+ }
1363
+
1364
+ /**
1365
+ * Describes how a Totals Table will be generated from its parent table. Each table has a default (which may be null)
1366
+ * indicating how that table was configured when it was declared, and each Totals Table has a similar property
1367
+ * describing how it was created. Both the <b>Table.getTotalsTable</b> and <b>Table.getGrandTotalsTable</b> methods take
1368
+ * this config as an optional parameter - without it, the table's default will be used, or if null, a default instance
1369
+ * of <b>TotalsTableConfig</b> will be supplied.
1370
+ *
1371
+ * This class has a no-arg constructor, allowing an instance to be made with the default values provided. However, any
1372
+ * JS object can be passed in to the methods which accept instances of this type, provided their values adhere to the
1373
+ * expected formats.
1374
+ */
1375
+ export class TotalsTableConfig {
1238
1376
  /**
1239
- * Indicates that this Table instance will no longer be used, and its connection to the server can be cleaned up.
1377
+ * @deprecated
1240
1378
  */
1241
- close():void;
1242
- getAttributes():string[];
1379
+ static readonly COUNT:string;
1243
1380
  /**
1244
- * null if no property exists, a string if it is an easily serializable property, or a ```Promise
1245
- * &lt;Table&gt;``` that will either resolve with a table or error out if the object can't be passed to JS.
1246
- * @param attributeName -
1247
- * @return Object
1381
+ * @deprecated
1248
1382
  */
1249
- getAttribute(attributeName:string):unknown|undefined|null;
1383
+ static readonly MIN:string;
1250
1384
  /**
1251
- * Replace the currently set sort on this table. Returns the previously set value. Note that the sort property will
1252
- * immediately return the new value, but you may receive update events using the old sort before the new sort is
1253
- * applied, and the <b>sortchanged</b> event fires. Reusing existing, applied sorts may enable this to perform
1254
- * better on the server. The <b>updated</b> event will also fire, but <b>rowadded</b> and <b>rowremoved</b> will
1255
- * not.
1256
- * @param sort -
1257
- * @return {@link dh.Sort} array
1385
+ * @deprecated
1258
1386
  */
1259
- applySort(sort:Sort[]):Array<Sort>;
1387
+ static readonly MAX:string;
1260
1388
  /**
1261
- * Replace the currently set filters on the table. Returns the previously set value. Note that the filter property
1262
- * will immediately return the new value, but you may receive update events using the old filter before the new one
1263
- * is applied, and the <b>filterchanged</b> event fires. Reusing existing, applied filters may enable this to
1264
- * perform better on the server. The <b>updated</b> event will also fire, but <b>rowadded</b> and <b>rowremoved</b>
1265
- * will not.
1266
- * @param filter -
1267
- * @return {@link dh.FilterCondition} array
1389
+ * @deprecated
1268
1390
  */
1269
- applyFilter(filter:FilterCondition[]):Array<FilterCondition>;
1391
+ static readonly SUM:string;
1270
1392
  /**
1271
- * used when adding new filter and sort operations to the table, as long as they are present.
1272
- * @param customColumns -
1273
- * @return {@link dh.CustomColumn} array
1393
+ * @deprecated
1274
1394
  */
1275
- applyCustomColumns(customColumns:Array<string|CustomColumn>):Array<CustomColumn>;
1395
+ static readonly ABS_SUM:string;
1276
1396
  /**
1277
- * If the columns parameter is not provided, all columns will be used. If the updateIntervalMs parameter is not
1278
- * provided, a default of one second will be used. Until this is called, no data will be available. Invoking this
1279
- * will result in events to be fired once data becomes available, starting with an `updated` event and a
1280
- * <b>rowadded</b> event per row in that range. The returned object allows the viewport to be closed when no longer
1281
- * needed.
1282
- * @param firstRow -
1283
- * @param lastRow -
1284
- * @param columns -
1285
- * @param updateIntervalMs -
1286
- * @return {@link dh.TableViewportSubscription}
1397
+ * @deprecated
1287
1398
  */
1288
- setViewport(firstRow:number, lastRow:number, columns?:Array<Column>|undefined|null, updateIntervalMs?:number|undefined|null):TableViewportSubscription;
1399
+ static readonly VAR:string;
1289
1400
  /**
1290
- * Gets the currently visible viewport. If the current set of operations has not yet resulted in data, it will not
1291
- * resolve until that data is ready. If this table is closed before the promise resolves, it will be rejected - to
1292
- * separate the lifespan of this promise from the table itself, call
1293
- * {@link TableViewportSubscription.getViewportData} on the result from {@link Table.setViewport}.
1294
- * @return Promise of {@link dh.TableData}
1401
+ * @deprecated
1295
1402
  */
1296
- getViewportData():Promise<TableData>;
1403
+ static readonly AVG:string;
1297
1404
  /**
1298
- * Creates a subscription to the specified columns, across all rows in the table. The optional parameter
1299
- * updateIntervalMs may be specified to indicate how often the server should send updates, defaulting to one second
1300
- * if omitted. Useful for charts or taking a snapshot of the table atomically. The initial snapshot will arrive in a
1301
- * single event, but later changes will be sent as updates. However, this may still be very expensive to run from a
1302
- * browser for very large tables. Each call to subscribe creates a new subscription, which must have <b>close()</b>
1303
- * called on it to stop it, and all events are fired from the TableSubscription instance.
1304
- * @param columns -
1305
- * @param updateIntervalMs -
1306
- * @return {@link dh.TableSubscription}
1405
+ * @deprecated
1307
1406
  */
1308
- subscribe(columns:Array<Column>, updateIntervalMs?:number):TableSubscription;
1407
+ static readonly STD:string;
1309
1408
  /**
1310
- * a new table containing the distinct tuples of values from the given columns that are present in the original
1311
- * table. This table can be manipulated as any other table. Sorting is often desired as the default sort is the
1312
- * order of appearance of values from the original table.
1313
- * @param columns -
1314
- * @return Promise of dh.Table
1409
+ * @deprecated
1315
1410
  */
1316
- selectDistinct(columns:Column[]):Promise<Table>;
1411
+ static readonly FIRST:string;
1317
1412
  /**
1318
- * Creates a new copy of this table, so it can be sorted and filtered separately, and maintain a different viewport.
1319
- * @return Promise of dh.Table
1413
+ * @deprecated
1320
1414
  */
1321
- copy():Promise<Table>;
1415
+ static readonly LAST:string;
1322
1416
  /**
1323
- * a promise that will resolve to a Totals Table of this table. This table will obey the configurations provided as
1324
- * a parameter, or will use the table's default if no parameter is provided, and be updated once per second as
1325
- * necessary. Note that multiple calls to this method will each produce a new TotalsTable which must have close()
1326
- * called on it when not in use.
1327
- * @param config -
1328
- * @return Promise of dh.TotalsTable
1417
+ * @deprecated
1329
1418
  */
1330
- getTotalsTable(config?:TotalsTableConfig|undefined|null):Promise<TotalsTable>;
1419
+ static readonly SKIP:string;
1331
1420
  /**
1332
- * a promise that will resolve to a Totals Table of this table, ignoring any filters. See <b>getTotalsTable()</b>
1333
- * above for more specifics.
1334
- * @param config -
1335
- * @return promise of dh.TotalsTable
1421
+ * Specifies if a Totals Table should be expanded by default in the UI. Defaults to false.
1336
1422
  */
1337
- getGrandTotalsTable(config?:TotalsTableConfig|undefined|null):Promise<TotalsTable>;
1423
+ showTotalsByDefault:boolean;
1338
1424
  /**
1339
- * a promise that will resolve to a new roll-up <b>TreeTable</b> of this table. Multiple calls to this method will
1340
- * each produce a new <b>TreeTable</b> which must have close() called on it when not in use.
1341
- * @param configObject -
1342
- * @return Promise of dh.TreeTable
1425
+ * Specifies if a Grand Totals Table should be expanded by default in the UI. Defaults to false.
1343
1426
  */
1344
- rollup(configObject:RollupConfig):Promise<TreeTable>;
1427
+ showGrandTotalsByDefault:boolean;
1345
1428
  /**
1346
- * a promise that will resolve to a new `TreeTable` of this table. Multiple calls to this method will each produce a
1347
- * new `TreeTable` which must have close() called on it when not in use.
1348
- * @param configObject -
1349
- * @return Promise dh.TreeTable
1429
+ * Specifies the default operation for columns that do not have a specific operation applied; defaults to "Sum".
1350
1430
  */
1351
- treeTable(configObject:TreeTableConfig):Promise<TreeTable>;
1431
+ defaultOperation:AggregationOperationType;
1352
1432
  /**
1353
- * a "frozen" version of this table (a server-side snapshot of the entire source table). Viewports on the frozen
1354
- * table will not update. This does not change the original table, and the new table will not have any of the client
1355
- * side sorts/filters/columns. New client side sorts/filters/columns can be added to the frozen copy.
1356
- * @return Promise of dh.Table
1433
+ * Mapping from each column name to the aggregation(s) that should be applied to that column in the resulting Totals
1434
+ * Table. If a column is omitted, the defaultOperation is used.
1357
1435
  */
1358
- freeze():Promise<Table>;
1359
- snapshot(baseTable:Table, doInitialSnapshot?:boolean, stampColumns?:string[]):Promise<Table>;
1436
+ operationMap:{ [key: string]: Array<AggregationOperationType>; };
1360
1437
  /**
1361
- *
1362
- * @deprecated a promise that will be resolved with a newly created table holding the results of the join operation.
1363
- * The last parameter is optional, and if not specified or empty, all columns from the right table will
1364
- * be added to the output. Callers are responsible for ensuring that there are no duplicates - a match
1365
- * pair can be passed instead of a name to specify the new name for the column. Supported `joinType`
1366
- * values (consult Deephaven's "Joining Data from Multiple Tables for more detail): "Join" <a href='https://docs.deephaven.io/latest/Content/writeQueries/tableOperations/joins.htm#Joining_Data_from_Multiple_Tables'>Joining_Data_from_Multiple_Tables</a>
1367
- * "Natural" "AJ" "ReverseAJ" "ExactJoin" "LeftJoin"
1368
- * @param joinType -
1369
- * @param rightTable -
1370
- * @param columnsToMatch -
1371
- * @param columnsToAdd -
1372
- * @param asOfMatchRule -
1373
- * @return Promise of dh.Table
1438
+ * Groupings to use when generating the Totals Table. One row will exist for each unique set of values observed in
1439
+ * these columns. See also `Table.selectDistinct`.
1440
+ */
1441
+ groupBy:Array<string>;
1442
+
1443
+ constructor();
1444
+
1445
+ toString():string;
1446
+ }
1447
+
1448
+ /**
1449
+ * Describes a Sort present on the table. No visible constructor, created through the use of Column.sort(), will be tied
1450
+ * to that particular column data. Sort instances are immutable, and use a builder pattern to make modifications. All
1451
+ * methods return a new Sort instance.
1452
+ */
1453
+ export class Sort {
1454
+ static readonly ASCENDING:string;
1455
+ static readonly DESCENDING:string;
1456
+ static readonly REVERSE:string;
1457
+
1458
+ protected constructor();
1459
+
1460
+ /**
1461
+ * Builds a Sort instance to sort values in ascending order.
1462
+ * @return {@link dh.Sort}
1463
+ */
1464
+ asc():Sort;
1465
+ /**
1466
+ * Builds a Sort instance to sort values in descending order.
1467
+ * @return {@link dh.Sort}
1468
+ */
1469
+ desc():Sort;
1470
+ /**
1471
+ * Builds a Sort instance which takes the absolute value before applying order.
1472
+ * @return {@link dh.Sort}
1473
+ */
1474
+ abs():Sort;
1475
+ toString():string;
1476
+ /**
1477
+ * True if the absolute value of the column should be used when sorting; defaults to false.
1478
+ * @return boolean
1479
+ */
1480
+ get isAbs():boolean;
1481
+ /**
1482
+ * The column which is sorted.
1483
+ * @return {@link dh.Column}
1484
+ */
1485
+ get column():Column;
1486
+ /**
1487
+ * The direction of this sort, either <b>ASC</b>, <b>DESC</b>, or <b>REVERSE</b>.
1488
+ * @return String
1489
+ */
1490
+ get direction():string;
1491
+ }
1492
+
1493
+ /**
1494
+ * Represents a non-viewport subscription to a table, and all data currently known to be present in the subscribed
1495
+ * columns. This class handles incoming snapshots and deltas, and fires events to consumers to notify of data changes.
1496
+ *
1497
+ * Unlike {@link dh.TableViewportSubscription}, the "original" table does not have a reference to this instance, only the
1498
+ * "private" table instance does, since the original cannot modify the subscription, and the private instance must
1499
+ * forward data to it.
1500
+ *
1501
+ * Represents a subscription to the table on the server. Changes made to the table will not be reflected here - the
1502
+ * subscription must be closed and a new one optioned to see those changes. The event model is slightly different from
1503
+ * viewports to make it less expensive to compute for large tables.
1504
+ */
1505
+ export class TableSubscription implements HasEventHandling {
1506
+ /**
1507
+ * Indicates that some new data is available on the client, either an initial snapshot or a delta update. The
1508
+ * <b>detail</b> field of the event will contain a TableSubscriptionEventData detailing what has changed, or
1509
+ * allowing access to the entire range of items currently in the subscribed columns.
1510
+ */
1511
+ static readonly EVENT_UPDATED:string;
1512
+
1513
+ protected constructor();
1514
+
1515
+ /**
1516
+ * Stops the subscription on the server.
1517
+ */
1518
+ close():void;
1519
+ addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
1520
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
1521
+ hasListeners(name:string):boolean;
1522
+ removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
1523
+ /**
1524
+ * The columns that were subscribed to when this subscription was created
1525
+ * @return {@link dh.Column}
1526
+ */
1527
+ get columns():Array<Column>;
1528
+ }
1529
+
1530
+ /**
1531
+ * Event fired when a command is issued from the client.
1532
+ */
1533
+ export class CommandInfo {
1534
+ constructor(code:string, result:Promise<dh.ide.CommandResult>);
1535
+
1536
+ get result():Promise<dh.ide.CommandResult>;
1537
+ get code():string;
1538
+ }
1539
+
1540
+ /**
1541
+ * Exists to keep the dh.TableMap namespace so that the web UI can remain compatible with the DHE API, which still calls
1542
+ * this type TableMap.
1543
+ * @deprecated
1544
+ */
1545
+ export class TableMap {
1546
+ static readonly EVENT_KEYADDED:string;
1547
+ static readonly EVENT_DISCONNECT:string;
1548
+ static readonly EVENT_RECONNECT:string;
1549
+ static readonly EVENT_RECONNECTFAILED:string;
1550
+
1551
+ protected constructor();
1552
+ }
1553
+
1554
+ export class DateWrapper extends LongWrapper {
1555
+ protected constructor();
1556
+
1557
+ static ofJsDate(date:Date):DateWrapper;
1558
+ asDate():Date;
1559
+ }
1560
+
1561
+ export class QueryInfo {
1562
+ static readonly EVENT_TABLE_OPENED:string;
1563
+ static readonly EVENT_DISCONNECT:string;
1564
+ static readonly EVENT_RECONNECT:string;
1565
+ static readonly EVENT_CONNECT:string;
1566
+
1567
+ protected constructor();
1568
+ }
1569
+
1570
+ export class LoginCredentials {
1571
+ type?:string|null;
1572
+ username?:string|null;
1573
+ token?:string|null;
1574
+
1575
+ constructor();
1576
+ }
1577
+
1578
+ export class CoreClient implements HasEventHandling {
1579
+ static readonly EVENT_CONNECT:string;
1580
+ static readonly EVENT_DISCONNECT:string;
1581
+ static readonly EVENT_RECONNECT:string;
1582
+ static readonly EVENT_RECONNECT_AUTH_FAILED:string;
1583
+ static readonly EVENT_REFRESH_TOKEN_UPDATED:string;
1584
+ static readonly EVENT_REQUEST_FAILED:string;
1585
+ static readonly EVENT_REQUEST_STARTED:string;
1586
+ static readonly EVENT_REQUEST_SUCCEEDED:string;
1587
+ static readonly LOGIN_TYPE_PASSWORD:string;
1588
+ static readonly LOGIN_TYPE_ANONYMOUS:string;
1589
+
1590
+ constructor(serverUrl:string, connectOptions?:ConnectOptions);
1591
+
1592
+ running():Promise<CoreClient>;
1593
+ getServerUrl():string;
1594
+ getAuthConfigValues():Promise<string[][]>;
1595
+ login(credentials:LoginCredentials):Promise<void>;
1596
+ relogin(token:RefreshToken):Promise<void>;
1597
+ onConnected(timeoutInMillis?:number):Promise<void>;
1598
+ getServerConfigValues():Promise<string[][]>;
1599
+ getStorageService():dh.storage.StorageService;
1600
+ getAsIdeConnection():Promise<IdeConnection>;
1601
+ disconnect():void;
1602
+ addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
1603
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
1604
+ hasListeners(name:string):boolean;
1605
+ removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
1606
+ }
1607
+
1608
+ /**
1609
+ * Describes a filter which can be applied to a table. Replacing these instances may be more expensive than reusing
1610
+ * them. These instances are immutable - all operations that compose them to build bigger expressions return a new
1611
+ * instance.
1612
+ */
1613
+ export class FilterCondition {
1614
+ protected constructor();
1615
+
1616
+ /**
1617
+ * the opposite of this condition
1618
+ * @return FilterCondition
1619
+ */
1620
+ not():FilterCondition;
1621
+ /**
1622
+ * a condition representing the current condition logically ANDed with the other parameters
1623
+ * @param filters -
1624
+ * @return FilterCondition
1625
+ */
1626
+ and(...filters:FilterCondition[]):FilterCondition;
1627
+ /**
1628
+ * a condition representing the current condition logically ORed with the other parameters
1629
+ * @param filters -
1630
+ * @return FilterCondition.
1631
+ */
1632
+ or(...filters:FilterCondition[]):FilterCondition;
1633
+ /**
1634
+ * a string suitable for debugging showing the details of this condition.
1635
+ * @return String.
1636
+ */
1637
+ toString():string;
1638
+ get columns():Array<Column>;
1639
+ /**
1640
+ * a filter condition invoking a static function with the given parameters. Currently supported Deephaven static
1641
+ * functions:
1642
+ * <ul>
1643
+ * <li><b>inRange</b>: Given three comparable values, returns true if the first is less than the second but greater
1644
+ * than the third</li>
1645
+ * <li><b>isInf</b>:Returns true if the given number is <i>infinity</i></li>
1646
+ * <li><b>isNaN</b>:Returns true if the given number is <i>not a number</i></li>
1647
+ * <li><b>isNormal</b>:Returns true if the given number <i>is not null</i>, <i>is not infinity</i>, and <i>is not
1648
+ * "not a number"</i></li>
1649
+ * <li><b>startsWith</b>:Returns true if the first string starts with the second string</li>
1650
+ * <li><b>endsWith</b>Returns true if the first string ends with the second string</li>
1651
+ * <li><b>matches</b>:Returns true if the first string argument matches the second string used as a Java regular
1652
+ * expression</li>
1653
+ * <li><b>contains</b>:Returns true if the first string argument contains the second string as a substring</li>
1654
+ * <li><b>in</b>:Returns true if the first string argument can be found in the second array argument.
1655
+ * <p>
1656
+ * Note that the array can only be specified as a column reference at this time - typically the `FilterValue.in`
1657
+ * method should be used in other cases
1658
+ * </p>
1659
+ * </li>
1660
+ * </ul>
1661
+ * @param function -
1662
+ * @param args -
1663
+ * @return dh.FilterCondition
1664
+ */
1665
+ static invoke(func:string, ...args:FilterValue[]):FilterCondition;
1666
+ /**
1667
+ * a filter condition which will check if the given value can be found in any supported column on whatever table
1668
+ * this FilterCondition is passed to. This FilterCondition is somewhat unique in that it need not be given a column
1669
+ * instance, but will adapt to any table. On numeric columns, with a value passed in which can be parsed as a
1670
+ * number, the column will be filtered to numbers which equal, or can be "rounded" effectively to this number. On
1671
+ * String columns, the given value will match any column which contains this string in a case-insensitive search. An
1672
+ * optional second argument can be passed, an array of `FilterValue` from the columns to limit this search to (see
1673
+ * {@link dh.Column.filter}).
1674
+ * @param value -
1675
+ * @param columns -
1676
+ * @return dh.FilterCondition
1677
+ */
1678
+ static search(value:FilterValue, columns?:FilterValue[]):FilterCondition;
1679
+ }
1680
+
1681
+ /**
1682
+ * This class allows iteration over non-contiguous indexes. In the future, this will support the EcmaScript 2015
1683
+ * Iteration protocol, but for now has one method which returns an iterator, and also supports querying the size.
1684
+ * Additionally, we may add support for creating RangeSet objects to better serve some use cases.
1685
+ */
1686
+ export class RangeSet {
1687
+ protected constructor();
1688
+
1689
+ static ofRange(first:number, last:number):RangeSet;
1690
+ static ofItems(rows:number[]):RangeSet;
1691
+ static ofRanges(ranges:RangeSet[]):RangeSet;
1692
+ static ofSortedRanges(ranges:RangeSet[]):RangeSet;
1693
+ /**
1694
+ * a new iterator over all indexes in this collection.
1695
+ * @return Iterator of {@link dh.LongWrapper}
1696
+ */
1697
+ iterator():Iterator<LongWrapper>;
1698
+ /**
1699
+ * The total count of items contained in this collection. In some cases this can be expensive to compute, and
1700
+ * generally should not be needed except for debugging purposes, or preallocating space (i.e., do not call this
1701
+ * property each time through a loop).
1702
+ * @return double
1703
+ */
1704
+ get size():number;
1705
+ }
1706
+
1707
+ /**
1708
+ * Describes a grouping and aggregations for a roll-up table. Pass to the <b>Table.rollup</b> function to create a
1709
+ * roll-up table.
1710
+ */
1711
+ export class RollupConfig {
1712
+ /**
1713
+ * Ordered list of columns to group by to form the hierarchy of the resulting roll-up table.
1374
1714
  */
1375
- join(joinType:object, rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:unknown|undefined|null):Promise<Table>;
1715
+ groupingColumns:Array<String>;
1376
1716
  /**
1377
- * a promise that will be resolved with the newly created table holding the results of the specified as-of join
1378
- * operation. The <b>columnsToAdd</b> parameter is optional, not specifying it will result in all columns from the
1379
- * right table being added to the output. The <b>asOfMatchRule</b> is optional, defaults to <b>LESS_THAN_EQUAL</b>
1380
- *
1381
- * <p>
1382
- * the allowed values are:
1383
- * </p>
1384
- *
1385
- * <ul>
1386
- * <li>LESS_THAN_EQUAL</li>
1387
- * <li>LESS_THAN</li>
1388
- * <li>GREATER_THAN_EQUAL</li>
1389
- * <li>GREATER_THAN</li>
1390
- * </ul>
1391
- * @param rightTable -
1392
- * @param columnsToMatch -
1393
- * @param columnsToAdd -
1394
- * @param asOfMatchRule -
1395
- * @return Promise og dh.Table
1717
+ * Mapping from each aggregation name to the ordered list of columns it should be applied to in the resulting
1718
+ * roll-up table.
1396
1719
  */
1397
- asOfJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:string|undefined|null):Promise<Table>;
1720
+ aggregations:{ [key: string]: Array<AggregationOperationType>; };
1398
1721
  /**
1399
- * a promise that will be resolved with the newly created table holding the results of the specified cross join
1400
- * operation. The <b>columnsToAdd</b> parameter is optional, not specifying it will result in all columns from the
1401
- * right table being added to the output. The <b>reserveBits</b> optional parameter lets the client control how the
1402
- * key space is distributed between the rows in the two tables, see the Java <b>Table</b> class for details.
1403
- * @param rightTable -
1404
- * @param columnsToMatch -
1405
- * @param columnsToAdd -
1406
- * @param reserve_bits -
1407
- * @return Promise of dh.Table
1722
+ * Optional parameter indicating if an extra leaf node should be added at the bottom of the hierarchy, showing the
1723
+ * rows in the underlying table which make up that grouping. Since these values might be a different type from the
1724
+ * rest of the column, any client code must check if TreeRow.hasChildren = false, and if so, interpret those values
1725
+ * as if they were Column.constituentType instead of Column.type. Defaults to false.
1408
1726
  */
1409
- crossJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>, reserve_bits?:number):Promise<Table>;
1727
+ includeConstituents:boolean;
1728
+ includeOriginalColumns?:boolean|null;
1410
1729
  /**
1411
- * a promise that will be resolved with the newly created table holding the results of the specified exact join
1412
- * operation. The `columnsToAdd` parameter is optional, not specifying it will result in all columns from the right
1413
- * table being added to the output.
1414
- * @param rightTable -
1415
- * @param columnsToMatch -
1416
- * @param columnsToAdd -
1417
- * @return Promise of dh.Table
1730
+ * Optional parameter indicating if original column descriptions should be included. Defaults to true.
1418
1731
  */
1419
- exactJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
1732
+ includeDescriptions:boolean;
1733
+
1734
+ constructor();
1735
+ }
1736
+
1737
+ /**
1738
+ * Presently optional and not used by the server, this allows the client to specify some authentication details. String
1739
+ * authToken <i>- base 64 encoded auth token. String serviceId -</i> The service ID to use for the connection.
1740
+ */
1741
+ export class ConnectOptions {
1742
+ headers:{ [key: string]: string; };
1743
+
1744
+ constructor();
1745
+ }
1746
+
1747
+ export class CustomColumn {
1748
+ static readonly TYPE_FORMAT_COLOR:string;
1749
+ static readonly TYPE_FORMAT_NUMBER:string;
1750
+ static readonly TYPE_FORMAT_DATE:string;
1751
+ static readonly TYPE_NEW:string;
1752
+
1753
+ protected constructor();
1754
+
1755
+ valueOf():string;
1756
+ toString():string;
1420
1757
  /**
1421
- * a promise that will be resolved with the newly created table holding the results of the specified natural join
1422
- * operation. The <b>columnsToAdd</b> parameter is optional, not specifying it will result in all columns from the
1423
- * right table being added to the output.
1424
- * @param rightTable -
1425
- * @param columnsToMatch -
1426
- * @param columnsToAdd -
1427
- * @return Promise of dh.Table
1758
+ * The expression to evaluate this custom column.
1759
+ * @return String
1428
1760
  */
1429
- naturalJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
1430
- byExternal(keys:object, dropKeys?:boolean):Promise<PartitionedTable>;
1761
+ get expression():string;
1431
1762
  /**
1432
- * Creates a new PartitionedTable from the contents of the current table, partitioning data based on the specified
1433
- * keys.
1434
- * @param keys -
1435
- * @param dropKeys -
1436
- * @return Promise dh.PartitionedTable
1763
+ * The name of the column to use.
1764
+ * @return String
1437
1765
  */
1438
- partitionBy(keys:object, dropKeys?:boolean):Promise<PartitionedTable>;
1766
+ get name():string;
1439
1767
  /**
1440
- * a promise that will resolve to ColumnStatistics for the column of this table.
1441
- * @param column -
1442
- * @return Promise of dh.ColumnStatistics
1768
+ * Type of custom column. One of
1769
+ *
1770
+ * <ul>
1771
+ * <li>FORMAT_COLOR</li>
1772
+ * <li>FORMAT_NUMBER</li>
1773
+ * <li>FORMAT_DATE</li>
1774
+ * <li>NEW</li>
1775
+ * </ul>
1776
+ * @return String
1443
1777
  */
1444
- getColumnStatistics(column:Column):Promise<ColumnStatistics>;
1778
+ get type():string;
1779
+ }
1780
+
1781
+ /**
1782
+ * Presently, this is the entrypoint into the Deephaven JS API. By creating an instance of this with the server URL and
1783
+ * some options, JS applications can run code on the server, and interact with available exportable objects.
1784
+ */
1785
+ export class IdeConnection implements HasEventHandling {
1445
1786
  /**
1446
- * Seek the row matching the data provided
1447
- * @param startingRow - Row to start the seek from
1448
- * @param column - Column to seek for value on
1449
- * @param valueType - Type of value provided
1450
- * @param seekValue - Value to seek
1451
- * @param insensitive - Optional value to flag a search as case-insensitive. Defaults to `false`.
1452
- * @param contains - Optional value to have the seek value do a contains search instead of exact equality. Defaults to
1453
- * `false`.
1454
- * @param isBackwards - Optional value to seek backwards through the table instead of forwards. Defaults to `false`.
1455
- * @return A promise that resolves to the row value found.
1787
+ * @deprecated
1456
1788
  */
1457
- seekRow(startingRow:number, column:Column, valueType:ValueTypeType, seekValue:any, insensitive?:boolean|undefined|null, contains?:boolean|undefined|null, isBackwards?:boolean|undefined|null):Promise<number>;
1458
- toString():string;
1789
+ static readonly HACK_CONNECTION_FAILURE:string;
1790
+ static readonly EVENT_DISCONNECT:string;
1791
+ static readonly EVENT_RECONNECT:string;
1792
+ static readonly EVENT_SHUTDOWN:string;
1793
+
1459
1794
  /**
1460
- * True if this table represents a user Input Table (created by InputTable.newInputTable). When true, you may call
1461
- * .inputTable() to add or remove data from the underlying table.
1462
- * @return boolean
1795
+ * creates a new instance, from which console sessions can be made. <b>options</b> are optional.
1796
+ * @param serverUrl - The url used when connecting to the server. Read-only.
1797
+ * @param connectOptions - Optional Object
1798
+ * @param fromJava - Optional boolean
1799
+ * @deprecated
1463
1800
  */
1464
- get hasInputTable():boolean;
1801
+ constructor(serverUrl:string, connectOptions?:ConnectOptions, fromJava?:boolean);
1802
+
1465
1803
  /**
1466
- * The columns that are present on this table. This is always all possible columns. If you specify fewer columns in
1467
- * .setViewport(), you will get only those columns in your ViewportData. <b>Number size</b> The total count of rows
1468
- * in the table. The size can and will change; see the <b>sizechanged</b> event for details. Size will be negative
1469
- * in exceptional cases (eg. the table is uncoalesced, see the <b>isUncoalesced</b> property for details).
1470
- * @return {@link dh.Column} array
1804
+ * closes the current connection, releasing any resources on the server or client.
1471
1805
  */
1472
- get columns():Array<Column>;
1806
+ close():void;
1807
+ running():Promise<IdeConnection>;
1808
+ getObject(definitionObject:dh.ide.VariableDescriptor):Promise<any>;
1809
+ subscribeToFieldUpdates(callback:(arg0:dh.ide.VariableChanges)=>void):()=>void;
1473
1810
  /**
1474
- * The default configuration to be used when building a <b>TotalsTable</b> for this table.
1475
- * @return dh.TotalsTableConfig
1811
+ * Register a callback function to handle any log messages that are emitted on the server. Returns a function ,
1812
+ * which can be invoked to remove this log handler. Any log handler registered in this way will receive as many old
1813
+ * log messages as are presently available.
1814
+ * @param callback -
1815
+ * @return {@link io.deephaven.web.shared.fu.JsRunnable}
1476
1816
  */
1477
- get totalsTableConfig():TotalsTableConfig;
1817
+ onLogMessage(callback:(arg0:dh.ide.LogItem)=>void):()=>void;
1818
+ startSession(type:string):Promise<IdeSession>;
1819
+ getConsoleTypes():Promise<Array<string>>;
1820
+ getWorkerHeapInfo():Promise<WorkerHeapInfo>;
1478
1821
  /**
1479
- * An ordered list of Sorts to apply to the table. To update, call <b>applySort()</b>. Note that this getter will
1480
- * return the new value immediately, even though it may take a little time to update on the server. You may listen
1481
- * for the <b>sortchanged</b> event to know when to update the UI.
1482
- * @return {@link dh.Sort} array
1822
+ * Listen for events on this object.
1823
+ * @param name - the name of the event to listen for
1824
+ * @param callback - a function to call when the event occurs
1825
+ * @return Returns a cleanup function.
1826
+ * @typeParam T - the type of the data that the event will provide
1483
1827
  */
1484
- get sort():Array<Sort>;
1828
+ addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
1829
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
1830
+ hasListeners(name:string):boolean;
1485
1831
  /**
1486
- * An ordered list of custom column formulas to add to the table, either adding new columns or replacing existing
1487
- * ones. To update, call <b>applyCustomColumns()</b>.
1488
- * @return {@link dh.CustomColumn} array
1832
+ * Removes an event listener added to this table.
1833
+ * @param name -
1834
+ * @param callback -
1835
+ * @return
1836
+ * @typeParam T -
1489
1837
  */
1490
- get customColumns():Array<CustomColumn>;
1838
+ removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
1839
+ }
1840
+
1841
+ /**
1842
+ * A js type for operating on input tables.
1843
+ *
1844
+ * Represents a User Input Table, which can have data added to it from other sources.
1845
+ *
1846
+ * You may add rows using dictionaries of key-value tuples (representing columns by name), add tables containing all the
1847
+ * key/value columns to add, or delete tables containing the keys to delete. Each operation is atomic, and will either
1848
+ * succeed completely or fail completely. To guarantee order of operations, apply an operation and wait for the response
1849
+ * before sending the next operation.
1850
+ *
1851
+ * Each table has one or more key columns, where each unique combination of keys will appear at most once in the table.
1852
+ *
1853
+ * To view the results of the Input Table, you should use standard table operations on the InputTable's source Table
1854
+ * object.
1855
+ */
1856
+ export class InputTable {
1857
+ protected constructor();
1858
+
1491
1859
  /**
1492
- * An ordered list of Filters to apply to the table. To update, call applyFilter(). Note that this getter will
1493
- * return the new value immediately, even though it may take a little time to update on the server. You may listen
1494
- * for the <b>filterchanged</b> event to know when to update the UI.
1495
- * @return {@link dh.FilterCondition} array
1860
+ * Adds a single row to the table. For each key or value column name in the Input Table, we retrieve that javascript
1861
+ * property at that name and validate it can be put into the given column type.
1862
+ * @param row -
1863
+ * @param userTimeZone -
1864
+ * @return Promise of dh.InputTable
1496
1865
  */
1497
- get filter():Array<FilterCondition>;
1866
+ addRow(row:{ [key: string]: any; }, userTimeZone?:string):Promise<InputTable>;
1498
1867
  /**
1499
- * The total count of the rows in the table, excluding any filters. Unlike <b>size</b>, changes to this value will
1500
- * not result in any event. <b>Sort[] sort</b> an ordered list of Sorts to apply to the table. To update, call
1501
- * applySort(). Note that this getter will return the new value immediately, even though it may take a little time
1502
- * to update on the server. You may listen for the <b>sortchanged</b> event to know when to update the UI.
1503
- * @return double
1868
+ * Add multiple rows to a table.
1869
+ * @param rows -
1870
+ * @param userTimeZone -
1871
+ * @return Promise of dh.InputTable
1872
+ */
1873
+ addRows(rows:{ [key: string]: any; }[], userTimeZone?:string):Promise<InputTable>;
1874
+ /**
1875
+ * Add an entire table to this Input Table. Only column names that match the definition of the input table will be
1876
+ * copied, and all key columns must have values filled in. This only copies the current state of the source table;
1877
+ * future updates to the source table will not be reflected in the Input Table. The returned promise will be
1878
+ * resolved to the same InputTable instance this method was called upon once the server returns.
1879
+ * @param tableToAdd -
1880
+ * @return Promise of dh.InputTable
1881
+ */
1882
+ addTable(tableToAdd:Table):Promise<InputTable>;
1883
+ /**
1884
+ * Add multiple tables to this Input Table.
1885
+ * @param tablesToAdd -
1886
+ * @return Promise of dh.InputTable
1504
1887
  */
1505
- get totalSize():number;
1888
+ addTables(tablesToAdd:Table[]):Promise<InputTable>;
1506
1889
  /**
1507
- * The total count of rows in the table. The size can and will change; see the <b>sizechanged</b> event for details.
1508
- * Size will be negative in exceptional cases (e.g., the table is uncoalesced; see the <b>isUncoalesced</b>
1509
- * property). for details).
1510
- * @return double
1890
+ * Deletes an entire table from this Input Table. Key columns must match the Input Table.
1891
+ * @param tableToDelete -
1892
+ * @return Promise of dh.InputTable
1511
1893
  */
1512
- get size():number;
1894
+ deleteTable(tableToDelete:Table):Promise<InputTable>;
1513
1895
  /**
1514
- * True if this table has been closed.
1515
- * @return boolean
1896
+ * Delete multiple tables from this Input Table.
1897
+ * @param tablesToDelete -
1898
+ * @return
1516
1899
  */
1517
- get isClosed():boolean;
1900
+ deleteTables(tablesToDelete:Table[]):Promise<InputTable>;
1518
1901
  /**
1519
- * Read-only. True if this table is uncoalesced. Set a viewport or filter on the partition columns to coalesce the
1520
- * table. Check the <b>isPartitionColumn</b> property on the table columns to retrieve the partition columns. Size
1521
- * will be unavailable until table is coalesced.
1522
- * @return boolean
1902
+ * A list of the key columns, by name
1903
+ * @return String array.
1523
1904
  */
1524
- get isUncoalesced():boolean;
1905
+ get keys():string[];
1525
1906
  /**
1526
- * Listen for events on this object.
1527
- * @param name - the name of the event to listen for
1528
- * @param callback - a function to call when the event occurs
1529
- * @return Returns a cleanup function.
1530
- * @typeParam T - the type of the data that the event will provide
1907
+ * A list of the value columns, by name
1908
+ * @return String array.
1531
1909
  */
1532
- addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
1533
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
1534
- hasListeners(name:string):boolean;
1910
+ get values():string[];
1535
1911
  /**
1536
- * Removes an event listener added to this table.
1537
- * @param name -
1538
- * @param callback -
1539
- * @return
1540
- * @typeParam T -
1912
+ * A list of the key Column objects
1913
+ * @return {@link dh.Column} array.
1541
1914
  */
1542
- removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
1915
+ get keyColumns():Column[];
1543
1916
  /**
1544
- * a Sort than can be used to reverse a table. This can be passed into n array in applySort. Note that Tree Tables
1545
- * do not support reverse.
1546
- * @return {@link dh.Sort}
1917
+ * A list of the value Column objects
1918
+ * @return {@link dh.Column} array.
1547
1919
  */
1548
- static reverse():Sort;
1920
+ get valueColumns():Column[];
1921
+ /**
1922
+ * The source table for this Input Table
1923
+ * @return dh.table
1924
+ */
1925
+ get table():Table;
1549
1926
  }
1550
1927
 
1551
1928
  /**
1552
- * Wrap BigInteger values for use in JS. Provides text formatting for display and access to the underlying value.
1929
+ * Wrap BigDecimal values for use in JS. Provides text formatting for display and access to the underlying value.
1553
1930
  */
1554
- export class BigIntegerWrapper {
1931
+ export class BigDecimalWrapper {
1555
1932
  protected constructor();
1556
1933
 
1557
- static ofString(str:string):BigIntegerWrapper;
1934
+ static ofString(value:string):BigDecimalWrapper;
1558
1935
  asNumber():number;
1559
1936
  valueOf():string;
1560
1937
  toString():string;
1561
1938
  }
1562
1939
 
1563
1940
  /**
1564
- * Describes a Sort present on the table. No visible constructor, created through the use of Column.sort(), will be tied
1565
- * to that particular column data. Sort instances are immutable, and use a builder pattern to make modifications. All
1566
- * methods return a new Sort instance.
1941
+ * Describes the structure of the column, and if desired can be used to get access to the data to be rendered in this
1942
+ * column.
1567
1943
  */
1568
- export class Sort {
1569
- static readonly ASCENDING:string;
1570
- static readonly DESCENDING:string;
1571
- static readonly REVERSE:string;
1572
-
1573
- protected constructor();
1574
-
1575
- /**
1576
- * Builds a Sort instance to sort values in ascending order.
1577
- * @return {@link dh.Sort}
1578
- */
1579
- asc():Sort;
1580
- /**
1581
- * Builds a Sort instance to sort values in descending order.
1582
- * @return {@link dh.Sort}
1583
- */
1584
- desc():Sort;
1585
- /**
1586
- * Builds a Sort instance which takes the absolute value before applying order.
1587
- * @return {@link dh.Sort}
1588
- */
1589
- abs():Sort;
1590
- toString():string;
1591
- /**
1592
- * True if the absolute value of the column should be used when sorting; defaults to false.
1593
- * @return boolean
1594
- */
1595
- get isAbs():boolean;
1596
- /**
1597
- * The column which is sorted.
1598
- * @return {@link dh.Column}
1599
- */
1600
- get column():Column;
1944
+ export class Column {
1601
1945
  /**
1602
- * The direction of this sort, either <b>ASC</b>, <b>DESC</b>, or <b>REVERSE</b>.
1946
+ * If this column is part of a roll-up tree table, represents the type of the row data that can be found in this
1947
+ * column for leaf nodes if includeConstituents is enabled. Otherwise, it is <b>null</b>.
1603
1948
  * @return String
1604
1949
  */
1605
- get direction():string;
1606
- }
1607
-
1608
- /**
1609
- * Represents a set of Tables each corresponding to some key. The keys are available locally, but a call must be made to
1610
- * the server to get each Table. All tables will have the same structure.
1611
- */
1612
- export class PartitionedTable implements HasEventHandling {
1613
- /**
1614
- * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
1615
- */
1616
- static readonly EVENT_KEYADDED:string;
1617
- /**
1618
- * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
1619
- */
1620
- static readonly EVENT_DISCONNECT:string;
1621
- /**
1622
- * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
1623
- */
1624
- static readonly EVENT_RECONNECT:string;
1625
- /**
1626
- * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
1627
- */
1628
- static readonly EVENT_RECONNECTFAILED:string;
1950
+ readonly constituentType?:string|null;
1951
+ readonly description?:string|null;
1629
1952
 
1630
1953
  protected constructor();
1631
1954
 
1632
- typedTicket():dhinternal.io.deephaven.proto.ticket_pb.TypedTicket;
1633
- /**
1634
- * Fetch the table with the given key.
1635
- * @param key - The key to fetch. An array of values for each key column, in the same order as the key columns are.
1636
- * @return Promise of dh.Table
1637
- */
1638
- getTable(key:object):Promise<Table>;
1639
- /**
1640
- * Open a new table that is the result of merging all constituent tables. See
1641
- * {@link io.deephaven.engine.table.PartitionedTable#merge()} for details.
1642
- * @return A merged representation of the constituent tables.
1643
- */
1644
- getMergedTable():Promise<Table>;
1645
1955
  /**
1646
- * The set of all currently known keys. This is kept up to date, so getting the list after adding an event listener
1647
- * for <b>keyadded</b> will ensure no keys are missed.
1648
- * @return Set of Object
1956
+ * the value for this column in the given row. Type will be consistent with the type of the Column.
1957
+ * @param row -
1958
+ * @return Any
1649
1959
  */
1650
- getKeys():Set<object>;
1960
+ get(row:Row):any;
1961
+ getFormat(row:Row):Format;
1651
1962
  /**
1652
- * Indicates that this PartitionedTable will no longer be used, removing subcriptions to updated keys, etc. This
1653
- * will not affect tables in use.
1963
+ * Creates a sort builder object, to be used when sorting by this column.
1964
+ * @return {@link dh.Sort}
1654
1965
  */
1655
- close():void;
1966
+ sort():Sort;
1656
1967
  /**
1657
- * The count of known keys.
1658
- * @return int
1968
+ * Creates a new value for use in filters based on this column. Used either as a parameter to another filter
1969
+ * operation, or as a builder to create a filter operation.
1970
+ * @return {@link dh.FilterValue}
1659
1971
  */
1660
- get size():number;
1972
+ filter():FilterValue;
1661
1973
  /**
1662
- * Listen for events on this object.
1663
- * @param name - the name of the event to listen for
1664
- * @param callback - a function to call when the event occurs
1665
- * @return Returns a cleanup function.
1666
- * @typeParam T - the type of the data that the event will provide
1974
+ * a <b>CustomColumn</b> object to apply using `applyCustomColumns` with the expression specified.
1975
+ * @param expression -
1976
+ * @return {@link dh.CustomColumn}
1667
1977
  */
1668
- addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
1669
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
1670
- hasListeners(name:string):boolean;
1978
+ formatColor(expression:string):CustomColumn;
1671
1979
  /**
1672
- * Removes an event listener added to this table.
1673
- * @param name -
1674
- * @param callback -
1675
- * @return
1676
- * @typeParam T -
1980
+ * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
1981
+ * @param expression -
1982
+ * @return {@link dh.CustomColumn}
1677
1983
  */
1678
- removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
1679
- }
1680
-
1681
- /**
1682
- * Describes a filter which can be applied to a table. Replacing these instances may be more expensive than reusing
1683
- * them. These instances are immutable - all operations that compose them to build bigger expressions return a new
1684
- * instance.
1685
- */
1686
- export class FilterCondition {
1687
- protected constructor();
1688
-
1984
+ formatNumber(expression:string):CustomColumn;
1689
1985
  /**
1690
- * the opposite of this condition
1691
- * @return FilterCondition
1986
+ * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
1987
+ * @param expression -
1988
+ * @return {@link dh.CustomColumn}
1692
1989
  */
1693
- not():FilterCondition;
1990
+ formatDate(expression:string):CustomColumn;
1991
+ toString():string;
1694
1992
  /**
1695
- * a condition representing the current condition logically ANDed with the other parameters
1696
- * @param filters -
1697
- * @return FilterCondition
1993
+ * Label for this column.
1994
+ * @return String
1698
1995
  */
1699
- and(...filters:FilterCondition[]):FilterCondition;
1996
+ get name():string;
1700
1997
  /**
1701
- * a condition representing the current condition logically ORed with the other parameters
1702
- * @param filters -
1703
- * @return FilterCondition.
1998
+ * True if this column is a partition column. Partition columns are used for filtering uncoalesced tables (see
1999
+ * <b>isUncoalesced</b> property on <b>Table</b>)
2000
+ * @return boolean
1704
2001
  */
1705
- or(...filters:FilterCondition[]):FilterCondition;
2002
+ get isPartitionColumn():boolean;
1706
2003
  /**
1707
- * a string suitable for debugging showing the details of this condition.
1708
- * @return String.
2004
+ *
2005
+ * @deprecated do not use. Internal index of the column in the table, to be used as a key on the Row.
2006
+ * @return int
1709
2007
  */
1710
- toString():string;
1711
- get columns():Array<Column>;
2008
+ get index():number;
2009
+ get isSortable():boolean;
1712
2010
  /**
1713
- * a filter condition invoking a static function with the given parameters. Currently supported Deephaven static
1714
- * functions:
1715
- * <ul>
1716
- * <li><b>inRange</b>: Given three comparable values, returns true if the first is less than the second but greater
1717
- * than the third</li>
1718
- * <li><b>isInf</b>:Returns true if the given number is <i>infinity</i></li>
1719
- * <li><b>isNaN</b>:Returns true if the given number is <i>not a number</i></li>
1720
- * <li><b>isNormal</b>:Returns true if the given number <i>is not null</i>, <i>is not infinity</i>, and <i>is not
1721
- * "not a number"</i></li>
1722
- * <li><b>startsWith</b>:Returns true if the first string starts with the second string</li>
1723
- * <li><b>endsWith</b>Returns true if the first string ends with the second string</li>
1724
- * <li><b>matches</b>:Returns true if the first string argument matches the second string used as a Java regular
1725
- * expression</li>
1726
- * <li><b>contains</b>:Returns true if the first string argument contains the second string as a substring</li>
1727
- * <li><b>in</b>:Returns true if the first string argument can be found in the second array argument.
1728
- * <p>
1729
- * Note that the array can only be specified as a column reference at this time - typically the `FilterValue.in`
1730
- * method should be used in other cases
1731
- * </p>
1732
- * </li>
1733
- * </ul>
1734
- * @param function -
1735
- * @param args -
1736
- * @return dh.FilterCondition
2011
+ * Type of the row data that can be found in this column.
2012
+ * @return String
1737
2013
  */
1738
- static invoke(func:string, ...args:FilterValue[]):FilterCondition;
2014
+ get type():string;
1739
2015
  /**
1740
- * a filter condition which will check if the given value can be found in any supported column on whatever table
1741
- * this FilterCondition is passed to. This FilterCondition is somewhat unique in that it need not be given a column
1742
- * instance, but will adapt to any table. On numeric columns, with a value passed in which can be parsed as a
1743
- * number, the column will be filtered to numbers which equal, or can be "rounded" effectively to this number. On
1744
- * String columns, the given value will match any column which contains this string in a case-insensitive search. An
1745
- * optional second argument can be passed, an array of `FilterValue` from the columns to limit this search to (see
1746
- * {@link dh.Column.filter}).
1747
- * @param value -
1748
- * @param columns -
1749
- * @return dh.FilterCondition
2016
+ * Format entire rows colors using the expression specified. Returns a <b>CustomColumn</b> object to apply to a
2017
+ * table using <b>applyCustomColumns</b> with the parameters specified.
2018
+ * @param expression -
2019
+ * @return {@link dh.CustomColumn}
1750
2020
  */
1751
- static search(value:FilterValue, columns?:FilterValue[]):FilterCondition;
2021
+ static formatRowColor(expression:string):CustomColumn;
2022
+ /**
2023
+ * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
2024
+ * @param name -
2025
+ * @param expression -
2026
+ * @return {@link dh.CustomColumn}
2027
+ */
2028
+ static createCustomColumn(name:string, expression:string):CustomColumn;
1752
2029
  }
1753
2030
 
1754
2031
  /**
@@ -1916,6 +2193,10 @@ export namespace dh {
1916
2193
  */
1917
2194
  get includeConstituents():boolean;
1918
2195
  get groupedColumns():Array<Column>;
2196
+ /**
2197
+ * True if this table has been closed.
2198
+ * @return boolean
2199
+ */
1919
2200
  get isClosed():boolean;
1920
2201
  /**
1921
2202
  * The current number of rows given the table's contents and the various expand/collapse states of each node. (No
@@ -1935,6 +2216,12 @@ export namespace dh {
1935
2216
  */
1936
2217
  get sort():Array<Sort>;
1937
2218
  /**
2219
+ * True if this table may receive updates from the server, including size changed events, updated events after
2220
+ * initial snapshot.
2221
+ * @return boolean
2222
+ */
2223
+ get isRefreshing():boolean;
2224
+ /**
1938
2225
  * Listen for events on this object.
1939
2226
  * @param name - the name of the event to listen for
1940
2227
  * @param callback - a function to call when the event occurs
@@ -1954,288 +2241,95 @@ export namespace dh {
1954
2241
  removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
1955
2242
  }
1956
2243
 
1957
- export class LongWrapper {
1958
- protected constructor();
1959
-
1960
- static ofString(str:string):LongWrapper;
1961
- asNumber():number;
1962
- valueOf():string;
1963
- toString():string;
1964
- }
1965
-
1966
2244
  /**
1967
- * Represents a non-viewport subscription to a table, and all data currently known to be present in the subscribed
1968
- * columns. This class handles incoming snapshots and deltas, and fires events to consumers to notify of data changes.
1969
- *
1970
- * Unlike {@link dh.TableViewportSubscription}, the "original" table does not have a reference to this instance, only the
1971
- * "private" table instance does, since the original cannot modify the subscription, and the private instance must
1972
- * forward data to it.
1973
- *
1974
- * Represents a subscription to the table on the server. Changes made to the table will not be reflected here - the
1975
- * subscription must be closed and a new one optioned to see those changes. The event model is slightly different from
1976
- * viewports to make it less expensive to compute for large tables.
2245
+ * Represents a set of Tables each corresponding to some key. The keys are available locally, but a call must be made to
2246
+ * the server to get each Table. All tables will have the same structure.
1977
2247
  */
1978
- export class TableSubscription implements HasEventHandling {
2248
+ export class PartitionedTable implements HasEventHandling {
1979
2249
  /**
1980
- * Indicates that some new data is available on the client, either an initial snapshot or a delta update. The
1981
- * <b>detail</b> field of the event will contain a TableSubscriptionEventData detailing what has changed, or
1982
- * allowing access to the entire range of items currently in the subscribed columns.
2250
+ * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
1983
2251
  */
1984
- static readonly EVENT_UPDATED:string;
1985
-
1986
- protected constructor();
1987
-
2252
+ static readonly EVENT_KEYADDED:string;
1988
2253
  /**
1989
- * Stops the subscription on the server.
2254
+ * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
1990
2255
  */
1991
- close():void;
1992
- addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
1993
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
1994
- hasListeners(name:string):boolean;
1995
- removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
2256
+ static readonly EVENT_DISCONNECT:string;
1996
2257
  /**
1997
- * The columns that were subscribed to when this subscription was created
1998
- * @return {@link dh.Column}
2258
+ * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
1999
2259
  */
2000
- get columns():Array<Column>;
2001
- }
2002
-
2003
- /**
2004
- * Deprecated for use in Deephaven Core.
2005
- * @deprecated
2006
- */
2007
- export class Client {
2008
- static readonly EVENT_REQUEST_FAILED:string;
2009
- static readonly EVENT_REQUEST_STARTED:string;
2010
- static readonly EVENT_REQUEST_SUCCEEDED:string;
2011
-
2012
- constructor();
2013
- }
2014
-
2015
- /**
2016
- * Describes the structure of the column, and if desired can be used to get access to the data to be rendered in this
2017
- * column.
2018
- */
2019
- export class Column {
2260
+ static readonly EVENT_RECONNECT:string;
2020
2261
  /**
2021
- * If this column is part of a roll-up tree table, represents the type of the row data that can be found in this
2022
- * column for leaf nodes if includeConstituents is enabled. Otherwise, it is <b>null</b>.
2023
- * @return String
2262
+ * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
2024
2263
  */
2025
- readonly constituentType?:string|null;
2026
- readonly description?:string|null;
2264
+ static readonly EVENT_RECONNECTFAILED:string;
2027
2265
 
2028
2266
  protected constructor();
2029
2267
 
2268
+ typedTicket():dhinternal.io.deephaven.proto.ticket_pb.TypedTicket;
2030
2269
  /**
2031
- * the value for this column in the given row. Type will be consistent with the type of the Column.
2032
- * @param row -
2033
- * @return Any
2034
- */
2035
- get(row:Row):any;
2036
- getFormat(row:Row):Format;
2037
- /**
2038
- * Creates a sort builder object, to be used when sorting by this column.
2039
- * @return {@link dh.Sort}
2040
- */
2041
- sort():Sort;
2042
- /**
2043
- * Creates a new value for use in filters based on this column. Used either as a parameter to another filter
2044
- * operation, or as a builder to create a filter operation.
2045
- * @return {@link dh.FilterValue}
2046
- */
2047
- filter():FilterValue;
2048
- /**
2049
- * a <b>CustomColumn</b> object to apply using `applyCustomColumns` with the expression specified.
2050
- * @param expression -
2051
- * @return {@link dh.CustomColumn}
2270
+ * Fetch the table with the given key.
2271
+ * @param key - The key to fetch. An array of values for each key column, in the same order as the key columns are.
2272
+ * @return Promise of dh.Table
2052
2273
  */
2053
- formatColor(expression:string):CustomColumn;
2274
+ getTable(key:object):Promise<Table>;
2054
2275
  /**
2055
- * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
2056
- * @param expression -
2057
- * @return {@link dh.CustomColumn}
2276
+ * Open a new table that is the result of merging all constituent tables. See
2277
+ * {@link io.deephaven.engine.table.PartitionedTable#merge()} for details.
2278
+ * @return A merged representation of the constituent tables.
2058
2279
  */
2059
- formatNumber(expression:string):CustomColumn;
2280
+ getMergedTable():Promise<Table>;
2060
2281
  /**
2061
- * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
2062
- * @param expression -
2063
- * @return {@link dh.CustomColumn}
2282
+ * The set of all currently known keys. This is kept up to date, so getting the list after adding an event listener
2283
+ * for <b>keyadded</b> will ensure no keys are missed.
2284
+ * @return Set of Object
2064
2285
  */
2065
- formatDate(expression:string):CustomColumn;
2066
- toString():string;
2286
+ getKeys():Set<object>;
2067
2287
  /**
2068
- * Label for this column.
2069
- * @return String
2288
+ * Fetch a table containing all the valid keys of the partitioned table.
2289
+ * @return Promise of a Table
2070
2290
  */
2071
- get name():string;
2291
+ getKeyTable():Promise<Table>;
2072
2292
  /**
2073
- * True if this column is a partition column. Partition columns are used for filtering uncoalesced tables (see
2074
- * <b>isUncoalesced</b> property on <b>Table</b>)
2075
- * @return boolean
2293
+ * Indicates that this PartitionedTable will no longer be used, removing subcriptions to updated keys, etc. This
2294
+ * will not affect tables in use.
2076
2295
  */
2077
- get isPartitionColumn():boolean;
2296
+ close():void;
2078
2297
  /**
2079
- *
2080
- * @deprecated do not use. Internal index of the column in the table, to be used as a key on the Row.
2298
+ * The count of known keys.
2081
2299
  * @return int
2082
2300
  */
2083
- get index():number;
2084
- get isSortable():boolean;
2085
- /**
2086
- * Type of the row data that can be found in this column.
2087
- * @return String
2088
- */
2089
- get type():string;
2090
- /**
2091
- * Format entire rows colors using the expression specified. Returns a <b>CustomColumn</b> object to apply to a
2092
- * table using <b>applyCustomColumns</b> with the parameters specified.
2093
- * @param expression -
2094
- * @return {@link dh.CustomColumn}
2095
- */
2096
- static formatRowColor(expression:string):CustomColumn;
2097
- /**
2098
- * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
2099
- * @param name -
2100
- * @param expression -
2101
- * @return {@link dh.CustomColumn}
2102
- */
2103
- static createCustomColumn(name:string, expression:string):CustomColumn;
2104
- }
2105
-
2106
- /**
2107
- * Exists to keep the dh.TableMap namespace so that the web UI can remain compatible with the DHE API, which still calls
2108
- * this type TableMap.
2109
- * @deprecated
2110
- */
2111
- export class TableMap {
2112
- static readonly EVENT_KEYADDED:string;
2113
- static readonly EVENT_DISCONNECT:string;
2114
- static readonly EVENT_RECONNECT:string;
2115
- static readonly EVENT_RECONNECTFAILED:string;
2116
-
2117
- protected constructor();
2118
- }
2119
-
2120
- /**
2121
- * Wrap BigDecimal values for use in JS. Provides text formatting for display and access to the underlying value.
2122
- */
2123
- export class BigDecimalWrapper {
2124
- protected constructor();
2125
-
2126
- static ofString(value:string):BigDecimalWrapper;
2127
- asNumber():number;
2128
- valueOf():string;
2129
- toString():string;
2130
- }
2131
-
2132
- export class IdeSession implements HasEventHandling {
2133
- static readonly EVENT_COMMANDSTARTED:string;
2134
- static readonly EVENT_REQUEST_FAILED:string;
2135
-
2136
- protected constructor();
2137
-
2138
- /**
2139
- * Load the named table, with columns and size information already fully populated.
2140
- * @param name -
2141
- * @param applyPreviewColumns - optional boolean
2142
- * @return {@link Promise} of {@link dh.Table}
2143
- */
2144
- getTable(name:string, applyPreviewColumns?:boolean):Promise<Table>;
2145
- /**
2146
- * Load the named Figure, including its tables and tablemaps as needed.
2147
- * @param name -
2148
- * @return promise of dh.plot.Figure
2149
- */
2150
- getFigure(name:string):Promise<dh.plot.Figure>;
2151
- /**
2152
- * Loads the named tree table or roll-up table, with column data populated. All nodes are collapsed by default, and
2153
- * size is presently not available until the viewport is first set.
2154
- * @param name -
2155
- * @return {@link Promise} of {@link dh.TreeTable}
2156
- */
2157
- getTreeTable(name:string):Promise<TreeTable>;
2158
- getHierarchicalTable(name:string):Promise<TreeTable>;
2159
- getObject(definitionObject:dh.ide.VariableDescriptor):Promise<any>;
2160
- newTable(columnNames:string[], types:string[], data:string[][], userTimeZone:string):Promise<Table>;
2301
+ get size():number;
2161
2302
  /**
2162
- * Merges the given tables into a single table. Assumes all tables have the same structure.
2163
- * @param tables -
2164
- * @return {@link Promise} of {@link dh.Table}
2303
+ * An array of the columns in the tables that can be retrieved from this partitioned table, including both key and
2304
+ * non-key columns.
2305
+ * @return Array of Column
2165
2306
  */
2166
- mergeTables(tables:Table[]):Promise<Table>;
2167
- bindTableToVariable(table:Table, name:string):Promise<void>;
2168
- subscribeToFieldUpdates(callback:(arg0:dh.ide.VariableChanges)=>void):()=>void;
2169
- close():void;
2170
- runCode(code:string):Promise<dh.ide.CommandResult>;
2171
- onLogMessage(callback:(arg0:dh.ide.LogItem)=>void):()=>void;
2172
- openDocument(params:object):void;
2173
- changeDocument(params:object):void;
2174
- getCompletionItems(params:object):Promise<Array<dh.lsp.CompletionItem>>;
2175
- getSignatureHelp(params:object):Promise<Array<dh.lsp.SignatureInformation>>;
2176
- getHover(params:object):Promise<dh.lsp.Hover>;
2177
- closeDocument(params:object):void;
2307
+ get columns():Column[];
2178
2308
  /**
2179
- * Creates an empty table with the specified number of rows. Optionally columns and types may be specified, but all
2180
- * values will be null.
2181
- * @param size -
2182
- * @return {@link Promise} of {@link dh.Table}
2309
+ * An array of all the key columns that the tables are partitioned by.
2310
+ * @return Array of Column
2183
2311
  */
2184
- emptyTable(size:number):Promise<Table>;
2312
+ get keyColumns():Column[];
2185
2313
  /**
2186
- * Creates a new table that ticks automatically every "periodNanos" nanoseconds. A start time may be provided; if so
2187
- * the table will be populated with the interval from the specified date until now.
2188
- * @param periodNanos -
2189
- * @param startTime -
2190
- * @return {@link Promise} of {@link dh.Table}
2314
+ * Listen for events on this object.
2315
+ * @param name - the name of the event to listen for
2316
+ * @param callback - a function to call when the event occurs
2317
+ * @return Returns a cleanup function.
2318
+ * @typeParam T - the type of the data that the event will provide
2191
2319
  */
2192
- timeTable(periodNanos:number, startTime?:DateWrapper):Promise<Table>;
2193
2320
  addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
2194
2321
  nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
2195
2322
  hasListeners(name:string):boolean;
2323
+ /**
2324
+ * Removes an event listener added to this table.
2325
+ * @param name -
2326
+ * @param callback -
2327
+ * @return
2328
+ * @typeParam T -
2329
+ */
2196
2330
  removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
2197
2331
  }
2198
2332
 
2199
- export class DateWrapper extends LongWrapper {
2200
- protected constructor();
2201
-
2202
- static ofJsDate(date:Date):DateWrapper;
2203
- asDate():Date;
2204
- }
2205
-
2206
-
2207
- type SearchDisplayModeType = string;
2208
- export class SearchDisplayMode {
2209
- static readonly SEARCH_DISPLAY_DEFAULT:SearchDisplayModeType;
2210
- static readonly SEARCH_DISPLAY_HIDE:SearchDisplayModeType;
2211
- static readonly SEARCH_DISPLAY_SHOW:SearchDisplayModeType;
2212
- }
2213
-
2214
- type ValueTypeType = string;
2215
- export class ValueType {
2216
- static readonly STRING:ValueTypeType;
2217
- static readonly NUMBER:ValueTypeType;
2218
- static readonly DOUBLE:ValueTypeType;
2219
- static readonly LONG:ValueTypeType;
2220
- static readonly DATETIME:ValueTypeType;
2221
- static readonly BOOLEAN:ValueTypeType;
2222
- }
2223
-
2224
- /**
2225
- * A set of string constants that can be used to describe the different objects the JS API can export.
2226
- */
2227
- type VariableTypeType = string;
2228
- export class VariableType {
2229
- static readonly TABLE:VariableTypeType;
2230
- static readonly TREETABLE:VariableTypeType;
2231
- static readonly HIERARCHICALTABLE:VariableTypeType;
2232
- static readonly TABLEMAP:VariableTypeType;
2233
- static readonly PARTITIONEDTABLE:VariableTypeType;
2234
- static readonly FIGURE:VariableTypeType;
2235
- static readonly OTHERWIDGET:VariableTypeType;
2236
- static readonly PANDAS:VariableTypeType;
2237
- static readonly TREEMAP:VariableTypeType;
2238
- }
2239
2333
 
2240
2334
  /**
2241
2335
  * This enum describes the name of each supported operation/aggregation type when creating a `TreeTable`.
@@ -2258,30 +2352,48 @@ export namespace dh {
2258
2352
  static readonly SKIP:AggregationOperationType;
2259
2353
  }
2260
2354
 
2355
+ /**
2356
+ * A set of string constants that can be used to describe the different objects the JS API can export.
2357
+ */
2358
+ type VariableTypeType = string;
2359
+ export class VariableType {
2360
+ static readonly TABLE:VariableTypeType;
2361
+ static readonly TREETABLE:VariableTypeType;
2362
+ static readonly HIERARCHICALTABLE:VariableTypeType;
2363
+ static readonly TABLEMAP:VariableTypeType;
2364
+ static readonly PARTITIONEDTABLE:VariableTypeType;
2365
+ static readonly FIGURE:VariableTypeType;
2366
+ static readonly OTHERWIDGET:VariableTypeType;
2367
+ static readonly PANDAS:VariableTypeType;
2368
+ static readonly TREEMAP:VariableTypeType;
2369
+ }
2370
+
2371
+ type ValueTypeType = string;
2372
+ export class ValueType {
2373
+ static readonly STRING:ValueTypeType;
2374
+ static readonly NUMBER:ValueTypeType;
2375
+ static readonly DOUBLE:ValueTypeType;
2376
+ static readonly LONG:ValueTypeType;
2377
+ static readonly DATETIME:ValueTypeType;
2378
+ static readonly BOOLEAN:ValueTypeType;
2379
+ }
2380
+
2381
+ type SearchDisplayModeType = string;
2382
+ export class SearchDisplayMode {
2383
+ static readonly SEARCH_DISPLAY_DEFAULT:SearchDisplayModeType;
2384
+ static readonly SEARCH_DISPLAY_HIDE:SearchDisplayModeType;
2385
+ static readonly SEARCH_DISPLAY_SHOW:SearchDisplayModeType;
2386
+ }
2387
+
2261
2388
  }
2262
2389
 
2263
2390
  export namespace dh.ide {
2264
2391
 
2265
- /**
2266
- * Indicates the result of code run on the server.
2267
- */
2268
- export interface CommandResult {
2269
- /**
2270
- * Describes changes made in the course of this command.
2271
- * @return {@link dh.ide.VariableChanges}.
2272
- */
2273
- get changes():VariableChanges;
2274
- /**
2275
- * If the command failed, the error message will be provided here.
2276
- * @return String
2277
- */
2278
- get error():string;
2279
- }
2280
2392
  /**
2281
2393
  * A format to describe a variable available to be read from the server. Application fields are optional, and only
2282
2394
  * populated when a variable is provided by application mode.
2283
- *
2284
- * APIs which take a VariableDefinition` must at least be provided an object with a <b>type</b> and <b>id</b> field.
2395
+ * <p>
2396
+ * APIs which take a VariableDefinition must at least be provided an object with a <b>type</b> and <b>id</b> field.
2285
2397
  */
2286
2398
  export interface VariableDefinition {
2287
2399
  get name():string;
@@ -2319,6 +2431,27 @@ export namespace dh.ide {
2319
2431
  get applicationName():string;
2320
2432
  }
2321
2433
  /**
2434
+ * Represents a serialized fishlib LogRecord, suitable for display on javascript clients. A log entry sent from the
2435
+ * server.
2436
+ */
2437
+ export interface LogItem {
2438
+ /**
2439
+ * The level of the log message, enabling the client to ignore messages.
2440
+ * @return String
2441
+ */
2442
+ get logLevel():string;
2443
+ /**
2444
+ * Timestamp of the message in microseconds since Jan 1, 1970 UTC.
2445
+ * @return double
2446
+ */
2447
+ get micros():number;
2448
+ /**
2449
+ * The log message written on the server.
2450
+ * @return String
2451
+ */
2452
+ get message():string;
2453
+ }
2454
+ /**
2322
2455
  * Specifies a type and either id or name (but not both).
2323
2456
  */
2324
2457
  export interface VariableDescriptor {
@@ -2351,25 +2484,19 @@ export namespace dh.ide {
2351
2484
  get updated():Array<VariableDefinition>;
2352
2485
  }
2353
2486
  /**
2354
- * Represents a serialized fishlib LogRecord, suitable for display on javascript clients. A log entry sent from the
2355
- * server.
2487
+ * Indicates the result of code run on the server.
2356
2488
  */
2357
- export interface LogItem {
2358
- /**
2359
- * The level of the log message, enabling the client to ignore messages.
2360
- * @return String
2361
- */
2362
- get logLevel():string;
2489
+ export interface CommandResult {
2363
2490
  /**
2364
- * Timestamp of the message in microseconds since Jan 1, 1970 UTC.
2365
- * @return double
2491
+ * Describes changes made in the course of this command.
2492
+ * @return {@link dh.ide.VariableChanges}.
2366
2493
  */
2367
- get micros():number;
2494
+ get changes():VariableChanges;
2368
2495
  /**
2369
- * The log message written on the server.
2496
+ * If the command failed, the error message will be provided here.
2370
2497
  * @return String
2371
2498
  */
2372
- get message():string;
2499
+ get error():string;
2373
2500
  }
2374
2501
  }
2375
2502
 
@@ -2642,16 +2769,6 @@ export namespace dh.i18n {
2642
2769
 
2643
2770
  export namespace dh.plot {
2644
2771
 
2645
- export interface FigureDataUpdatedEvent {
2646
- getArray(series:Series, sourceType:number, mappingFunc?:(arg0:any)=>any):Array<any>;
2647
- get series():Series[];
2648
- }
2649
- export interface OneClick {
2650
- setValueForColumn(columnName:string, value:any):void;
2651
- getValueForColumn(columName:string):any;
2652
- get requireAllFiltersToDisplay():boolean;
2653
- get columns():dh.Column[];
2654
- }
2655
2772
  /**
2656
2773
  * Provides access to the data for displaying in a figure.
2657
2774
  */
@@ -2696,6 +2813,45 @@ export namespace dh.plot {
2696
2813
  get multiSeries():MultiSeries;
2697
2814
  get shapeLabel():string;
2698
2815
  }
2816
+ export interface FigureDataUpdatedEvent {
2817
+ getArray(series:Series, sourceType:number, mappingFunc?:(arg0:any)=>any):Array<any>;
2818
+ get series():Series[];
2819
+ }
2820
+ /**
2821
+ * Describes a template that will be used to make new series instances when a new table added to a plotBy.
2822
+ */
2823
+ export interface MultiSeries {
2824
+ /**
2825
+ * The name for this multi-series.
2826
+ * @return String
2827
+ */
2828
+ get name():string;
2829
+ /**
2830
+ * The plotting style to use for the series that will be created. See <b>SeriesPlotStyle</b> enum for more details.
2831
+ * @return int
2832
+ */
2833
+ get plotStyle():SeriesPlotStyleType;
2834
+ }
2835
+ /**
2836
+ * Describes how to access and display data required within a series.
2837
+ */
2838
+ export interface SeriesDataSource {
2839
+ /**
2840
+ * the type of data stored in the underlying table's Column.
2841
+ * @return String
2842
+ */
2843
+ get columnType():string;
2844
+ /**
2845
+ * the axis that this source should be drawn on.
2846
+ * @return dh.plot.Axis
2847
+ */
2848
+ get axis():Axis;
2849
+ /**
2850
+ * the feature of this series represented by this source. See the <b>SourceType</b> enum for more details.
2851
+ * @return int
2852
+ */
2853
+ get type():SourceTypeType;
2854
+ }
2699
2855
  /**
2700
2856
  * Defines one axis used with by series. These instances will be found both on the Chart and the Series instances, and
2701
2857
  * may be shared between Series instances.
@@ -2758,48 +2914,204 @@ export namespace dh.plot {
2758
2914
  */
2759
2915
  get businessCalendar():dh.calendar.BusinessCalendar;
2760
2916
  /**
2761
- * The type for this axis. See <b>AxisFormatType</b> enum for more details.
2762
- * @return int
2917
+ * The type for this axis. See <b>AxisFormatType</b> enum for more details.
2918
+ * @return int
2919
+ */
2920
+ get formatType():AxisFormatTypeType;
2921
+ get minRange():number;
2922
+ }
2923
+ export interface OneClick {
2924
+ setValueForColumn(columnName:string, value:any):void;
2925
+ getValueForColumn(columName:string):any;
2926
+ get requireAllFiltersToDisplay():boolean;
2927
+ get columns():dh.Column[];
2928
+ }
2929
+
2930
+ export class ChartDescriptor {
2931
+ colspan?:number|null;
2932
+ rowspan?:number|null;
2933
+ series:Array<SeriesDescriptor>;
2934
+ axes:Array<AxisDescriptor>;
2935
+ chartType:string;
2936
+ title?:string|null;
2937
+ titleFont?:string|null;
2938
+ titleColor?:string|null;
2939
+ showLegend?:boolean|null;
2940
+ legendFont?:string|null;
2941
+ legendColor?:string|null;
2942
+ is3d?:boolean|null;
2943
+
2944
+ constructor();
2945
+ }
2946
+
2947
+ export class AxisDescriptor {
2948
+ formatType:string;
2949
+ type:string;
2950
+ position:string;
2951
+ log?:boolean|null;
2952
+ label?:string|null;
2953
+ labelFont?:string|null;
2954
+ ticksFont?:string|null;
2955
+ formatPattern?:string|null;
2956
+ color?:string|null;
2957
+ minRange?:number|null;
2958
+ maxRange?:number|null;
2959
+ minorTicksVisible?:boolean|null;
2960
+ majorTicksVisible?:boolean|null;
2961
+ minorTickCount?:number|null;
2962
+ gapBetweenMajorTicks?:number|null;
2963
+ majorTickLocations?:Array<number>|null;
2964
+ tickLabelAngle?:number|null;
2965
+ invert?:boolean|null;
2966
+ isTimeAxis?:boolean|null;
2967
+
2968
+ constructor();
2969
+ }
2970
+
2971
+ export class FigureFetchError {
2972
+ error:object;
2973
+ errors:Array<string>;
2974
+
2975
+ protected constructor();
2976
+ }
2977
+
2978
+ /**
2979
+ * Helper class to manage snapshots and deltas and keep not only a contiguous JS array of data per column in the
2980
+ * underlying table, but also support a mapping function to let client code translate data in some way for display and
2981
+ * keep that cached as well.
2982
+ */
2983
+ export class ChartData {
2984
+ constructor(table:dh.Table);
2985
+
2986
+ update(tableData:dh.SubscriptionTableData):void;
2987
+ getColumn(columnName:string, mappingFunc:(arg0:any)=>any, currentUpdate:dh.TableData):Array<any>;
2988
+ /**
2989
+ * Removes some column from the cache, avoiding extra computation on incoming events, and possibly freeing some
2990
+ * memory. If this pair of column name and map function are requested again, it will be recomputed from scratch.
2763
2991
  */
2764
- get formatType():AxisFormatTypeType;
2765
- get minRange():number;
2992
+ removeColumn(columnName:string, mappingFunc:(arg0:any)=>any):void;
2993
+ }
2994
+
2995
+ export class SeriesDataSourceException {
2996
+ protected constructor();
2997
+
2998
+ get source():SeriesDataSource;
2999
+ get message():string;
2766
3000
  }
3001
+
2767
3002
  /**
2768
- * Describes how to access and display data required within a series.
3003
+ * Provide the details for a chart.
2769
3004
  */
2770
- export interface SeriesDataSource {
3005
+ export class Chart implements dh.HasEventHandling {
2771
3006
  /**
2772
- * the type of data stored in the underlying table's Column.
3007
+ * a new series was added to this chart as part of a multi-series. The series instance is the detail for this event.
3008
+ */
3009
+ static readonly EVENT_SERIES_ADDED:string;
3010
+ /**
3011
+ * The title of the chart.
2773
3012
  * @return String
2774
3013
  */
2775
- get columnType():string;
3014
+ readonly title?:string|null;
3015
+
3016
+ protected constructor();
3017
+
3018
+ addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
3019
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
3020
+ hasListeners(name:string):boolean;
3021
+ removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
3022
+ get column():number;
3023
+ get showLegend():boolean;
2776
3024
  /**
2777
- * the axis that this source should be drawn on.
3025
+ * The axes used in this chart.
2778
3026
  * @return dh.plot.Axis
2779
3027
  */
2780
- get axis():Axis;
3028
+ get axes():Axis[];
3029
+ get is3d():boolean;
3030
+ get titleFont():string;
3031
+ get colspan():number;
3032
+ get titleColor():string;
3033
+ get series():Series[];
3034
+ get rowspan():number;
2781
3035
  /**
2782
- * the feature of this series represented by this source. See the <b>SourceType</b> enum for more details.
3036
+ * The type of this chart, see <b>ChartType</b> enum for more details.
2783
3037
  * @return int
2784
3038
  */
2785
- get type():SourceTypeType;
3039
+ get chartType():ChartTypeType;
3040
+ get row():number;
3041
+ get legendColor():string;
3042
+ get legendFont():string;
3043
+ get multiSeries():MultiSeries[];
2786
3044
  }
2787
- /**
2788
- * Describes a template that will be used to make new series instances when a new table added to a plotBy.
2789
- */
2790
- export interface MultiSeries {
3045
+
3046
+ export class SourceDescriptor {
3047
+ axis:AxisDescriptor;
3048
+ table:dh.Table;
3049
+ columnName:string;
3050
+ type:string;
3051
+
3052
+ constructor();
3053
+ }
3054
+
3055
+ export class DownsampleOptions {
2791
3056
  /**
2792
- * The name for this multi-series.
2793
- * @return String
3057
+ * Max number of items in the series before DEFAULT will not attempt to load the series without downsampling. Above
3058
+ * this size if downsample fails or is not applicable, the series won't be loaded unless DISABLE is passed to
3059
+ * series.subscribe().
2794
3060
  */
2795
- get name():string;
3061
+ static MAX_SERIES_SIZE:number;
2796
3062
  /**
2797
- * The plotting style to use for the series that will be created. See <b>SeriesPlotStyle</b> enum for more details.
2798
- * @return int
3063
+ * Max number of items in the series where the subscription will be allowed at all. Above this limit, even with
3064
+ * downsampling disabled, the series will not load data.
2799
3065
  */
2800
- get plotStyle():SeriesPlotStyleType;
3066
+ static MAX_SUBSCRIPTION_SIZE:number;
3067
+ /**
3068
+ * Flag to let the API decide what data will be available, based on the nature of the data, the series, and how the
3069
+ * axes are configured.
3070
+ */
3071
+ static readonly DEFAULT:DownsampleOptions;
3072
+ /**
3073
+ * Flat to entirely disable downsampling, and force all data to load, no matter how many items that would be, up to
3074
+ * the limit of MAX_SUBSCRIPTION_SIZE.
3075
+ */
3076
+ static readonly DISABLE:DownsampleOptions;
3077
+
3078
+ protected constructor();
2801
3079
  }
2802
3080
 
3081
+ /**
3082
+ * Provides the details for a figure.
3083
+ *
3084
+ * The Deephaven JS API supports automatic lossless downsampling of time-series data, when that data is plotted in one
3085
+ * or more line series. Using a scatter plot or a X-axis of some type other than DateTime will prevent this feature from
3086
+ * being applied to a series. To enable this feature, invoke <b>Axis.range(...)</b> to specify the length in pixels of
3087
+ * the axis on the screen, and the range of values that are visible, and the server will use that width (and range, if
3088
+ * any) to reduce the number of points sent to the client.
3089
+ *
3090
+ * Downsampling can also be controlled when calling either <b>Figure.subscribe()</b> or <b>Series.subscribe()</b> - both
3091
+ * can be given an optional <b>dh.plot.DownsampleOptions</b> argument. Presently only two valid values exist,
3092
+ * <b>DEFAULT</b>, and <b>DISABLE</b>, and if no argument is specified, <b>DEFAULT</b> is assumed. If there are more
3093
+ * than 30,000 rows in a table, downsampling will be encouraged - data will not load without calling
3094
+ * <b>subscribe(DISABLE)</b> or enabling downsampling via <b>Axis.range(...)</b>. If there are more than 200,000 rows,
3095
+ * data will refuse to load without downsampling and <b>subscribe(DISABLE)</b> would have no effect.
3096
+ *
3097
+ * Downsampled data looks like normal data, except that select items have been removed if they would be redundant in the
3098
+ * UI given the current configuration. Individual rows are intact, so that a tooltip or some other UI item is sure to be
3099
+ * accurate and consistent, and at least the highest and lowest value for each axis will be retained as well, to ensure
3100
+ * that the "important" values are visible.
3101
+ *
3102
+ * Four events exist to help with interacting with downsampled data, all fired from the <b>Figure</b> instance itself.
3103
+ * First, <b>downsampleneeded</b> indicates that more than 30,000 rows would be fetched, and so specifying downsampling
3104
+ * is no longer optional - it must either be enabled (calling <b>axis.range(...)</b>), or disabled. If the figure is
3105
+ * configured for downsampling, when a change takes place that requires that the server perform some downsampling work,
3106
+ * the <b>downsamplestarted</b> event will first be fired, which can be used to present a brief loading message,
3107
+ * indicating to the user why data is not ready yet - when the server side process is complete,
3108
+ * <b>downsamplefinished</b> will be fired. These events will repeat when the range changes, such as when zooming,
3109
+ * panning, or resizing the figure. Finally, <b>downsamplefailed</b> indicates that something when wrong when
3110
+ * downsampling, or possibly that downsampling cannot be disabled due to the number of rows in the table.
3111
+ *
3112
+ * At this time, not marked as a ServerObject, due to internal implementation issues which leave the door open to
3113
+ * client-created figures.
3114
+ */
2803
3115
  export class Figure implements dh.HasEventHandling {
2804
3116
  /**
2805
3117
  * The title of the figure.
@@ -2843,7 +3155,8 @@ export namespace dh.plot {
2843
3155
  */
2844
3156
  static readonly EVENT_DOWNSAMPLENEEDED:string;
2845
3157
 
2846
- static create(config:FigureDescriptor):Promise<Figure>;
3158
+ protected constructor();
3159
+
2847
3160
  subscribe(forceDisableDownsample?:DownsampleOptions):void;
2848
3161
  /**
2849
3162
  * Disable updates for all series in this figure.
@@ -2882,202 +3195,82 @@ export namespace dh.plot {
2882
3195
  * @typeParam T -
2883
3196
  */
2884
3197
  removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
2885
- }
2886
-
2887
- export class SeriesDataSourceException {
2888
- protected constructor();
2889
-
2890
- get source():SeriesDataSource;
2891
- get message():string;
2892
- }
2893
-
2894
- export class SeriesDescriptor {
2895
- plotStyle:string;
2896
- name?:string|null;
2897
- linesVisible?:boolean|null;
2898
- shapesVisible?:boolean|null;
2899
- gradientVisible?:boolean|null;
2900
- lineColor?:string|null;
2901
- pointLabelFormat?:string|null;
2902
- xToolTipPattern?:string|null;
2903
- yToolTipPattern?:string|null;
2904
- shapeLabel?:string|null;
2905
- shapeSize?:number|null;
2906
- shapeColor?:string|null;
2907
- shape?:string|null;
2908
- dataSources:Array<SourceDescriptor>;
2909
-
2910
- constructor();
2911
- }
2912
-
2913
- /**
2914
- * Helper class to manage snapshots and deltas and keep not only a contiguous JS array of data per column in the
2915
- * underlying table, but also support a mapping function to let client code translate data in some way for display and
2916
- * keep that cached as well.
2917
- */
2918
- export class ChartData {
2919
- constructor(table:dh.Table);
2920
-
2921
- update(tableData:dh.SubscriptionTableData):void;
2922
- getColumn(columnName:string, mappingFunc:(arg0:any)=>any, currentUpdate:dh.TableData):Array<any>;
2923
- /**
2924
- * Removes some column from the cache, avoiding extra computation on incoming events, and possibly freeing some
2925
- * memory. If this pair of column name and map function are requested again, it will be recomputed from scratch.
2926
- */
2927
- removeColumn(columnName:string, mappingFunc:(arg0:any)=>any):void;
2928
- }
2929
-
2930
- export class FigureFetchError {
2931
- error:object;
2932
- errors:Array<string>;
2933
-
2934
- protected constructor();
2935
- }
2936
-
2937
- export class ChartDescriptor {
2938
- colspan?:number|null;
2939
- rowspan?:number|null;
2940
- series:Array<SeriesDescriptor>;
2941
- axes:Array<AxisDescriptor>;
2942
- chartType:string;
2943
- title?:string|null;
2944
- titleFont?:string|null;
2945
- titleColor?:string|null;
2946
- showLegend?:boolean|null;
2947
- legendFont?:string|null;
2948
- legendColor?:string|null;
2949
- is3d?:boolean|null;
2950
-
2951
- constructor();
2952
- }
2953
-
2954
- /**
2955
- * A descriptor used with JsFigureFactory.create to create a figure from JS.
2956
- */
2957
- export class FigureDescriptor {
2958
- title?:string|null;
2959
- titleFont?:string|null;
2960
- titleColor?:string|null;
2961
- isResizable?:boolean|null;
2962
- isDefaultTheme?:boolean|null;
2963
- updateInterval?:number|null;
2964
- cols?:number|null;
2965
- rows?:number|null;
2966
- charts:Array<ChartDescriptor>;
2967
-
2968
- constructor();
3198
+ static create(config:FigureDescriptor):Promise<Figure>;
2969
3199
  }
2970
3200
 
2971
3201
  export class FigureSourceException {
2972
3202
  table:dh.Table;
2973
- source:SeriesDataSource;
2974
-
2975
- protected constructor();
2976
- }
2977
-
2978
- /**
2979
- * Provide the details for a chart.
2980
- */
2981
- export class Chart implements dh.HasEventHandling {
2982
- /**
2983
- * a new series was added to this chart as part of a multi-series. The series instance is the detail for this event.
2984
- */
2985
- static readonly EVENT_SERIES_ADDED:string;
2986
- /**
2987
- * The title of the chart.
2988
- * @return String
2989
- */
2990
- readonly title?:string|null;
2991
-
2992
- protected constructor();
2993
-
2994
- addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
2995
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
2996
- hasListeners(name:string):boolean;
2997
- removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
2998
- get column():number;
2999
- get showLegend():boolean;
3000
- /**
3001
- * The axes used in this chart.
3002
- * @return dh.plot.Axis
3003
- */
3004
- get axes():Axis[];
3005
- get is3d():boolean;
3006
- get titleFont():string;
3007
- get colspan():number;
3008
- get titleColor():string;
3009
- get series():Series[];
3010
- get rowspan():number;
3011
- /**
3012
- * The type of this chart, see <b>ChartType</b> enum for more details.
3013
- * @return int
3014
- */
3015
- get chartType():ChartTypeType;
3016
- get row():number;
3017
- get legendColor():string;
3018
- get legendFont():string;
3019
- get multiSeries():MultiSeries[];
3203
+ source:SeriesDataSource;
3204
+
3205
+ protected constructor();
3020
3206
  }
3021
3207
 
3022
- export class AxisDescriptor {
3023
- formatType:string;
3024
- type:string;
3025
- position:string;
3026
- log?:boolean|null;
3027
- label?:string|null;
3028
- labelFont?:string|null;
3029
- ticksFont?:string|null;
3030
- formatPattern?:string|null;
3031
- color?:string|null;
3032
- minRange?:number|null;
3033
- maxRange?:number|null;
3034
- minorTicksVisible?:boolean|null;
3035
- majorTicksVisible?:boolean|null;
3036
- minorTickCount?:number|null;
3037
- gapBetweenMajorTicks?:number|null;
3038
- majorTickLocations?:Array<number>|null;
3039
- tickLabelAngle?:number|null;
3040
- invert?:boolean|null;
3041
- isTimeAxis?:boolean|null;
3208
+ /**
3209
+ * A descriptor used with JsFigureFactory.create to create a figure from JS.
3210
+ */
3211
+ export class FigureDescriptor {
3212
+ title?:string|null;
3213
+ titleFont?:string|null;
3214
+ titleColor?:string|null;
3215
+ isResizable?:boolean|null;
3216
+ isDefaultTheme?:boolean|null;
3217
+ updateInterval?:number|null;
3218
+ cols?:number|null;
3219
+ rows?:number|null;
3220
+ charts:Array<ChartDescriptor>;
3042
3221
 
3043
3222
  constructor();
3044
3223
  }
3045
3224
 
3046
- export class SourceDescriptor {
3047
- axis:AxisDescriptor;
3048
- table:dh.Table;
3049
- columnName:string;
3050
- type:string;
3225
+ export class SeriesDescriptor {
3226
+ plotStyle:string;
3227
+ name?:string|null;
3228
+ linesVisible?:boolean|null;
3229
+ shapesVisible?:boolean|null;
3230
+ gradientVisible?:boolean|null;
3231
+ lineColor?:string|null;
3232
+ pointLabelFormat?:string|null;
3233
+ xToolTipPattern?:string|null;
3234
+ yToolTipPattern?:string|null;
3235
+ shapeLabel?:string|null;
3236
+ shapeSize?:number|null;
3237
+ shapeColor?:string|null;
3238
+ shape?:string|null;
3239
+ dataSources:Array<SourceDescriptor>;
3051
3240
 
3052
3241
  constructor();
3053
3242
  }
3054
3243
 
3055
- export class DownsampleOptions {
3056
- /**
3057
- * Max number of items in the series before DEFAULT will not attempt to load the series without downsampling. Above
3058
- * this size if downsample fails or is not applicable, the series won't be loaded unless DISABLE is passed to
3059
- * series.subscribe().
3060
- */
3061
- static MAX_SERIES_SIZE:number;
3062
- /**
3063
- * Max number of items in the series where the subscription will be allowed at all. Above this limit, even with
3064
- * downsampling disabled, the series will not load data.
3065
- */
3066
- static MAX_SUBSCRIPTION_SIZE:number;
3067
- /**
3068
- * Flag to let the API decide what data will be available, based on the nature of the data, the series, and how the
3069
- * axes are configured.
3070
- */
3071
- static readonly DEFAULT:DownsampleOptions;
3072
- /**
3073
- * Flat to entirely disable downsampling, and force all data to load, no matter how many items that would be, up to
3074
- * the limit of MAX_SUBSCRIPTION_SIZE.
3075
- */
3076
- static readonly DISABLE:DownsampleOptions;
3077
3244
 
3078
- protected constructor();
3245
+ type AxisFormatTypeType = number;
3246
+ export class AxisFormatType {
3247
+ static readonly CATEGORY:AxisFormatTypeType;
3248
+ static readonly NUMBER:AxisFormatTypeType;
3249
+ }
3250
+
3251
+ type AxisPositionType = number;
3252
+ export class AxisPosition {
3253
+ static readonly TOP:AxisPositionType;
3254
+ static readonly BOTTOM:AxisPositionType;
3255
+ static readonly LEFT:AxisPositionType;
3256
+ static readonly RIGHT:AxisPositionType;
3257
+ static readonly NONE:AxisPositionType;
3079
3258
  }
3080
3259
 
3260
+ /**
3261
+ * This enum describes what kind of chart is being drawn. This may limit what kinds of series can be found on it, or how
3262
+ * those series should be rendered.
3263
+ */
3264
+ type ChartTypeType = number;
3265
+ export class ChartType {
3266
+ static readonly XY:ChartTypeType;
3267
+ static readonly PIE:ChartTypeType;
3268
+ static readonly OHLC:ChartTypeType;
3269
+ static readonly CATEGORY:ChartTypeType;
3270
+ static readonly XYZ:ChartTypeType;
3271
+ static readonly CATEGORY_3D:ChartTypeType;
3272
+ static readonly TREEMAP:ChartTypeType;
3273
+ }
3081
3274
 
3082
3275
  type AxisTypeType = number;
3083
3276
  export class AxisType {
@@ -3089,6 +3282,22 @@ export namespace dh.plot {
3089
3282
  static readonly COLOR:AxisTypeType;
3090
3283
  }
3091
3284
 
3285
+ type SeriesPlotStyleType = number;
3286
+ export class SeriesPlotStyle {
3287
+ static readonly BAR:SeriesPlotStyleType;
3288
+ static readonly STACKED_BAR:SeriesPlotStyleType;
3289
+ static readonly LINE:SeriesPlotStyleType;
3290
+ static readonly AREA:SeriesPlotStyleType;
3291
+ static readonly STACKED_AREA:SeriesPlotStyleType;
3292
+ static readonly PIE:SeriesPlotStyleType;
3293
+ static readonly HISTOGRAM:SeriesPlotStyleType;
3294
+ static readonly OHLC:SeriesPlotStyleType;
3295
+ static readonly SCATTER:SeriesPlotStyleType;
3296
+ static readonly STEP:SeriesPlotStyleType;
3297
+ static readonly ERROR_BAR:SeriesPlotStyleType;
3298
+ static readonly TREEMAP:SeriesPlotStyleType;
3299
+ }
3300
+
3092
3301
  /**
3093
3302
  * This enum describes the source it is in, and how this aspect of the data in the series should be used to render the
3094
3303
  * item. For example, a point in a error-bar plot might have a X value, three Y values (Y, Y_LOW, Y_HIGH), and some
@@ -3118,59 +3327,32 @@ export namespace dh.plot {
3118
3327
  static readonly HOVER_TEXT:SourceTypeType;
3119
3328
  }
3120
3329
 
3121
- type SeriesPlotStyleType = number;
3122
- export class SeriesPlotStyle {
3123
- static readonly BAR:SeriesPlotStyleType;
3124
- static readonly STACKED_BAR:SeriesPlotStyleType;
3125
- static readonly LINE:SeriesPlotStyleType;
3126
- static readonly AREA:SeriesPlotStyleType;
3127
- static readonly STACKED_AREA:SeriesPlotStyleType;
3128
- static readonly PIE:SeriesPlotStyleType;
3129
- static readonly HISTOGRAM:SeriesPlotStyleType;
3130
- static readonly OHLC:SeriesPlotStyleType;
3131
- static readonly SCATTER:SeriesPlotStyleType;
3132
- static readonly STEP:SeriesPlotStyleType;
3133
- static readonly ERROR_BAR:SeriesPlotStyleType;
3134
- static readonly TREEMAP:SeriesPlotStyleType;
3135
- }
3136
-
3137
- type AxisPositionType = number;
3138
- export class AxisPosition {
3139
- static readonly TOP:AxisPositionType;
3140
- static readonly BOTTOM:AxisPositionType;
3141
- static readonly LEFT:AxisPositionType;
3142
- static readonly RIGHT:AxisPositionType;
3143
- static readonly NONE:AxisPositionType;
3144
- }
3330
+ }
3145
3331
 
3146
- type AxisFormatTypeType = number;
3147
- export class AxisFormatType {
3148
- static readonly CATEGORY:AxisFormatTypeType;
3149
- static readonly NUMBER:AxisFormatTypeType;
3150
- }
3332
+ export namespace dh.lsp {
3151
3333
 
3152
- /**
3153
- * This enum describes what kind of chart is being drawn. This may limit what kinds of series can be found on it, or how
3154
- * those series should be rendered.
3155
- */
3156
- type ChartTypeType = number;
3157
- export class ChartType {
3158
- static readonly XY:ChartTypeType;
3159
- static readonly PIE:ChartTypeType;
3160
- static readonly OHLC:ChartTypeType;
3161
- static readonly CATEGORY:ChartTypeType;
3162
- static readonly XYZ:ChartTypeType;
3163
- static readonly CATEGORY_3D:ChartTypeType;
3164
- static readonly TREEMAP:ChartTypeType;
3165
- }
3334
+ export class Range {
3335
+ start:Position;
3336
+ end:Position;
3166
3337
 
3167
- }
3338
+ constructor();
3168
3339
 
3169
- export namespace dh.lsp {
3340
+ isInside(innerStart:Position, innerEnd:Position):boolean;
3341
+ }
3170
3342
 
3171
- export class ParameterInformation {
3343
+ export class CompletionItem {
3172
3344
  label:string;
3345
+ kind:number;
3346
+ detail:string;
3173
3347
  documentation:MarkupContent;
3348
+ deprecated:boolean;
3349
+ preselect:boolean;
3350
+ textEdit:TextEdit;
3351
+ sortText:string;
3352
+ filterText:string;
3353
+ insertTextFormat:number;
3354
+ additionalTextEdits:Array<TextEdit>;
3355
+ commitCharacters:Array<string>;
3174
3356
 
3175
3357
  constructor();
3176
3358
  }
@@ -3188,26 +3370,16 @@ export namespace dh.lsp {
3188
3370
  copy():Position;
3189
3371
  }
3190
3372
 
3191
- export class TextEdit {
3192
- range:Range;
3193
- text:string;
3373
+ export class ParameterInformation {
3374
+ label:string;
3375
+ documentation:MarkupContent;
3194
3376
 
3195
3377
  constructor();
3196
3378
  }
3197
3379
 
3198
- export class CompletionItem {
3199
- label:string;
3200
- kind:number;
3201
- detail:string;
3202
- documentation:MarkupContent;
3203
- deprecated:boolean;
3204
- preselect:boolean;
3205
- textEdit:TextEdit;
3206
- sortText:string;
3207
- filterText:string;
3208
- insertTextFormat:number;
3209
- additionalTextEdits:Array<TextEdit>;
3210
- commitCharacters:Array<string>;
3380
+ export class TextEdit {
3381
+ range:Range;
3382
+ text:string;
3211
3383
 
3212
3384
  constructor();
3213
3385
  }
@@ -3219,13 +3391,11 @@ export namespace dh.lsp {
3219
3391
  constructor();
3220
3392
  }
3221
3393
 
3222
- export class Range {
3223
- start:Position;
3224
- end:Position;
3394
+ export class MarkupContent {
3395
+ kind:string;
3396
+ value:string;
3225
3397
 
3226
3398
  constructor();
3227
-
3228
- isInside(innerStart:Position, innerEnd:Position):boolean;
3229
3399
  }
3230
3400
 
3231
3401
  export class TextDocumentContentChangeEvent {
@@ -3245,17 +3415,26 @@ export namespace dh.lsp {
3245
3415
  constructor();
3246
3416
  }
3247
3417
 
3248
- export class MarkupContent {
3249
- kind:string;
3250
- value:string;
3251
-
3252
- constructor();
3253
- }
3254
-
3255
3418
  }
3256
3419
 
3257
3420
  export namespace dh.calendar {
3258
3421
 
3422
+ export interface BusinessPeriod {
3423
+ get close():string;
3424
+ get open():string;
3425
+ }
3426
+ export interface Holiday {
3427
+ /**
3428
+ * The date of the Holiday.
3429
+ * @return {@link dh.LocalDateWrapper}
3430
+ */
3431
+ get date():dh.LocalDateWrapper;
3432
+ /**
3433
+ * The business periods that are open on the holiday.
3434
+ * @return dh.calendar.BusinessPeriod
3435
+ */
3436
+ get businessPeriods():Array<BusinessPeriod>;
3437
+ }
3259
3438
  /**
3260
3439
  * Defines a calendar with business hours and holidays.
3261
3440
  */
@@ -3286,22 +3465,6 @@ export namespace dh.calendar {
3286
3465
  */
3287
3466
  get businessPeriods():Array<BusinessPeriod>;
3288
3467
  }
3289
- export interface BusinessPeriod {
3290
- get close():string;
3291
- get open():string;
3292
- }
3293
- export interface Holiday {
3294
- /**
3295
- * The date of the Holiday.
3296
- * @return {@link dh.LocalDateWrapper}
3297
- */
3298
- get date():dh.LocalDateWrapper;
3299
- /**
3300
- * The business periods that are open on the holiday.
3301
- * @return dh.calendar.BusinessPeriod
3302
- */
3303
- get businessPeriods():Array<BusinessPeriod>;
3304
- }
3305
3468
 
3306
3469
  type DayOfWeekType = string;
3307
3470
  export class DayOfWeek {