@deephaven/jsapi-types 1.0.0-dev0.37.0 → 1.0.0-dev0.37.2

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 +1984 -1898
  2. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  // Minimum TypeScript Version: 4.3
2
2
  // Generated using com.vertispan.tsdefs.doclet.TsDoclet
3
3
 
4
+ export interface IIterableResult<T> {
5
+ value:T;
6
+ done:boolean;
7
+ }
4
8
  /**
5
9
  * This is part of EcmaScript 2015, documented here for completeness. It supports a single method, <b>next()</b>, which
6
10
  * returns an object with a <b>boolean</b> named <b>done</b> (true if there are no more items to return; false
@@ -11,12 +15,24 @@ export interface Iterator<T> {
11
15
  hasNext():boolean;
12
16
  next():IIterableResult<T>;
13
17
  }
14
- export interface IIterableResult<T> {
15
- value:T;
16
- done:boolean;
17
- }
18
18
  export namespace dh.storage {
19
19
 
20
+ /**
21
+ * Represents a file's contents loaded from the server. If an etag was specified when loading, client should first test
22
+ * if the etag of this instance matches - if so, the contents will be empty, and the client's existing contents should
23
+ * be used.
24
+ */
25
+ export class FileContents {
26
+ protected constructor();
27
+
28
+ static blob(blob:Blob):FileContents;
29
+ static text(...text:string[]):FileContents;
30
+ static arrayBuffers(...buffers:ArrayBuffer[]):FileContents;
31
+ text():Promise<string>;
32
+ arrayBuffer():Promise<ArrayBuffer>;
33
+ get etag():string;
34
+ }
35
+
20
36
  /**
21
37
  * Remote service to read and write files on the server. Paths use "/" as a separator, and should not start with "/".
22
38
  */
@@ -75,22 +91,6 @@ export namespace dh.storage {
75
91
  createDirectory(path:string):Promise<void>;
76
92
  }
77
93
 
78
- /**
79
- * Represents a file's contents loaded from the server. If an etag was specified when loading, client should first test
80
- * if the etag of this instance matches - if so, the contents will be empty, and the client's existing contents should
81
- * be used.
82
- */
83
- export class FileContents {
84
- protected constructor();
85
-
86
- static blob(blob:Blob):FileContents;
87
- static text(...text:string[]):FileContents;
88
- static arrayBuffers(...buffers:ArrayBuffer[]):FileContents;
89
- text():Promise<string>;
90
- arrayBuffer():Promise<ArrayBuffer>;
91
- get etag():string;
92
- }
93
-
94
94
  /**
95
95
  * Storage service metadata about files and folders.
96
96
  */
@@ -117,15 +117,6 @@ export namespace dh.storage {
117
117
 
118
118
  export namespace dh {
119
119
 
120
- /**
121
- * This object may be pooled internally or discarded and not updated. Do not retain references to it. Instead,
122
- * request the viewport again.
123
- */
124
- export interface ViewportRow extends Row {
125
- get(column:Column):any;
126
- getFormat(column:Column):Format;
127
- get index():LongWrapper;
128
- }
129
120
  export interface HasEventHandling {
130
121
  /**
131
122
  * Listen for events on this object.
@@ -146,11 +137,6 @@ export namespace dh {
146
137
  */
147
138
  removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
148
139
  }
149
- export interface ColumnGroup {
150
- get name():string|null;
151
- get children():string[]|null;
152
- get color():string|null;
153
- }
154
140
  /**
155
141
  * Row implementation that also provides additional read-only properties. represents visible rows in the table, but
156
142
  * with additional properties to reflect the tree structure.
@@ -178,34 +164,199 @@ export namespace dh {
178
164
  get hasChildren():boolean;
179
165
  get index():LongWrapper;
180
166
  }
167
+ /**
168
+ * Extends {@link dh.TableData}, but only contains data in the current viewport. The only API change from TableData is that
169
+ * ViewportData also contains the offset to this data, so that the actual row number may be determined.
170
+ * <p>
171
+ * For viewport subscriptions, it is not necessary to read with the key, only with the position.
172
+ * <p>
173
+ * Do not assume that the first row in `rows` is the first visible row, because extra rows may be provided for easier
174
+ * scrolling without going to the server.
175
+ */
176
+ export interface ViewportData extends TableData {
177
+ /**
178
+ * Reads a row object from the viewport, based on its position in the table.
179
+ */
180
+ get(index:LongWrapper|number):ViewportRow;
181
+ getData(index:LongWrapper|number, column:Column):any;
182
+ getFormat(index:LongWrapper|number, column:Column):Format;
183
+ /**
184
+ * The position of the first returned row, null if this data is not for a viewport.
185
+ */
186
+ get offset():number;
187
+ get columns():Array<Column>;
188
+ get rows():Array<ViewportRow>;
189
+ }
190
+ /**
191
+ * Wrap LocalTime values for use in JS. Provides text formatting for display and access to the underlying value.
192
+ */
193
+ export interface LocalTimeWrapper {
194
+ valueOf():string;
195
+ getHour():number;
196
+ getMinute():number;
197
+ getSecond():number;
198
+ getNano():number;
199
+ toString():string;
200
+ }
201
+ export interface LayoutHints {
202
+ readonly searchDisplayMode?:SearchDisplayModeType|null;
203
+
204
+ get hiddenColumns():string[]|null;
205
+ get frozenColumns():string[]|null;
206
+ get columnGroups():ColumnGroup[]|null;
207
+ get areSavedLayoutsAllowed():boolean;
208
+ get frontColumns():string[]|null;
209
+ get backColumns():string[]|null;
210
+ }
211
+ /**
212
+ * Represents a table which can be joined to another table. Current implementations are {@link dh.Table} and
213
+ * {@link dh.TotalsTable}.
214
+ */
215
+ export interface JoinableTable {
216
+ freeze():Promise<Table>;
217
+ snapshot(baseTable:Table, doInitialSnapshot?:boolean, stampColumns?:string[]):Promise<Table>;
218
+ /**
219
+ * Joins this table to the provided table, using one of the specified join types:
220
+ * <ul>
221
+ * <li><code>AJ</code>, <code>ReverseAJ</code> (or <code>RAJ</code>) - inexact timeseries joins, based on the
222
+ * provided matching rule.</li>
223
+ * <li><code>CROSS_JOIN</code> (or <code>Join</code>) - cross join of all rows that have matching values in both
224
+ * tables.</li>
225
+ * <li><code>EXACT_JOIN</code> (or <code>ExactJoin</code> - matches values in exactly one row in the right table,
226
+ * with errors if there is not exactly one.</li>
227
+ * <li><code>NATURAL_JOIN</code> (or <code>Natural</code> - matches values in at most one row in the right table,
228
+ * with nulls if there is no match or errors if there are multiple matches.</li>
229
+ * </ul>
230
+ *
231
+ * Note that <code>Left</code> join is not supported here, unlike DHE.
232
+ * <p>
233
+ * See the <a href="https://deephaven.io/core/docs/conceptual/choose-joins/">Choose a join method</a> document for
234
+ * more guidance on picking a join operation.
235
+ * @deprecated Instead, call the specific method for the join type.
236
+ * @param joinType - The type of join to perform, see the list above.
237
+ * @param rightTable - The table to match to values in this table
238
+ * @param columnsToMatch - Columns that should match
239
+ * @param columnsToAdd - Columns from the right table to add to the result - empty/null/absent to add all columns
240
+ * @param asOfMatchRule - If joinType is AJ/RAJ/ReverseAJ, the match rule to use
241
+ * @return a promise that will resolve to the joined table
242
+ */
243
+ join(joinType:string, rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:string|undefined|null):Promise<Table>;
244
+ /**
245
+ * Performs an inexact timeseries join, where rows in this table will have columns added from the closest matching
246
+ * row from the right table.
247
+ * <p>
248
+ * The `asOfMatchRule` value can be one of:
249
+ * <ul>
250
+ * <li>LESS_THAN_EQUAL</li>
251
+ * <li>LESS_THAN</li>
252
+ * <li>GREATER_THAN_EQUAL</li>
253
+ * <li>GREATER_THAN</li>
254
+ * </ul>
255
+ * @param rightTable - the table to match to values in this table
256
+ * @param columnsToMatch - the columns that should match, according to the asOfMatchRole
257
+ * @param columnsToAdd - columns from the right table to add to the resulting table, empty/null/absent to add all
258
+ * columns
259
+ * @param asOfMatchRule - the match rule to use, see above
260
+ * @return a promise that will resolve to the joined table
261
+ */
262
+ asOfJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:string|undefined|null):Promise<Table>;
263
+ /**
264
+ * a promise that will be resolved with the newly created table holding the results of the specified cross join
265
+ * operation. The <b>columnsToAdd</b> parameter is optional, not specifying it will result in all columns from the
266
+ * right table being added to the output. The <b>reserveBits</b> optional parameter lets the client control how the
267
+ * key space is distributed between the rows in the two tables, see the Java <b>Table</b> class for details.
268
+ * @param rightTable - the table to match to values in this table
269
+ * @param columnsToMatch - the columns that should match exactly
270
+ * @param columnsToAdd - columns from the right table to add to the resulting table, empty/null/absent to add all
271
+ * columns
272
+ * @param reserveBits - the number of bits of key-space to initially reserve per group, null/absent will let the
273
+ * server select a value
274
+ * @return a promise that will resolve to the joined table
275
+ */
276
+ crossJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, reserveBits?:number|undefined|null):Promise<Table>;
277
+ /**
278
+ * a promise that will be resolved with the newly created table holding the results of the specified exact join
279
+ * operation. The `columnsToAdd` parameter is optional, not specifying it will result in all columns from the right
280
+ * table being added to the output.
281
+ * @param rightTable - the table to match to values in this table
282
+ * @param columnsToMatch - the columns that should match exactly
283
+ * @param columnsToAdd - columns from the right table to add to the resulting table, empty/null/absent to add all
284
+ * columns
285
+ * @return a promise that will resolve to the joined table
286
+ */
287
+ exactJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null):Promise<Table>;
288
+ /**
289
+ * a promise that will be resolved with the newly created table holding the results of the specified natural join
290
+ * operation. The <b>columnsToAdd</b> parameter is optional, not specifying it will result in all columns from the
291
+ * right table being added to the output.
292
+ * @param rightTable - the table to match to values in this table
293
+ * @param columnsToMatch - the columns that should match exactly
294
+ * @param columnsToAdd - columns from the right table to add to the resulting table, empty/null/absent to add all
295
+ * columns
296
+ * @return a promise that will resolve to the joined table
297
+ */
298
+ naturalJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null):Promise<Table>;
299
+ }
300
+ /**
301
+ * This object may be pooled internally or discarded and not updated. Do not retain references to it. Instead,
302
+ * request the viewport again.
303
+ */
304
+ export interface ViewportRow extends Row {
305
+ get(column:Column):any;
306
+ getFormat(column:Column):Format;
307
+ get index():LongWrapper;
308
+ }
309
+ export interface TreeViewportData extends TableData {
310
+ get(index:LongWrapper|number):TreeRow;
311
+ getData(index:LongWrapper|number, column:Column):any;
312
+ getFormat(index:LongWrapper|number, column:Column):Format;
313
+ get treeSize():number;
314
+ get columns():Array<Column>;
315
+ get rows():Array<TreeRow>;
316
+ }
181
317
  export interface RefreshToken {
182
318
  get bytes():string;
183
319
  get expiry():number;
184
320
  }
185
321
  /**
186
- * This object may be pooled internally or discarded and not updated. Do not retain references to it.
322
+ * Common interface for various ways of accessing table data and formatting for viewport or non-viewport subscriptions
323
+ * on tables, data in trees, and snapshots.
324
+ * <p>
325
+ * Generally speaking, it is more efficient to access data in column-major order, rather than iterating through each Row
326
+ * and accessing all columns that it holds. The {@link rows} accessor can be useful to read row data, but may
327
+ * incur other costs - it is likely faster to access data by columns using {@link getData}.
187
328
  */
188
- export interface Format {
329
+ export interface TableData {
189
330
  /**
190
- * The format string to apply to the value of this cell.
191
- * @return String
331
+ * Reads a row object from the table, from which any subscribed column can be read.
332
+ * @param index - the position or key to access
333
+ * @return the row at the given location
192
334
  */
193
- readonly formatString?:string|null;
335
+ get(index:LongWrapper|number):Row;
194
336
  /**
195
- * Color to apply to the cell's background, in <b>#rrggbb</b> format.
196
- * @return String
337
+ * Reads a specific cell from the table, by row key and column.
338
+ * @param index - the row in the table to get data from
339
+ * @param column - the column to read
340
+ * @return the value in the table
197
341
  */
198
- readonly backgroundColor?:string|null;
342
+ getData(index:LongWrapper|number, column:Column):any;
199
343
  /**
200
- * Color to apply to the text, in <b>#rrggbb</b> format.
201
- * @return String
344
+ * The server-specified Format to use for the cell at the given position.
345
+ * @param index - the row to read
346
+ * @param column - the column to read
347
+ * @return a Format instance with any server-specified details
202
348
  */
203
- readonly color?:string|null;
349
+ getFormat(index:LongWrapper|number, column:Column):Format;
350
+ get columns():Array<Column>;
204
351
  /**
205
- *
206
- * @deprecated Prefer formatString. Number format string to apply to the value in this cell.
352
+ * A lazily computed array of all rows available on the client.
207
353
  */
208
- readonly numberFormat?:string|null;
354
+ get rows():Array<Row>;
355
+ }
356
+ export interface ColumnGroup {
357
+ get name():string|null;
358
+ get children():string[]|null;
359
+ get color():string|null;
209
360
  }
210
361
  /**
211
362
  * Represents a server-side object that may not yet have been fetched by the client. When this object will no longer be
@@ -239,16 +390,97 @@ export namespace dh {
239
390
  */
240
391
  close():void;
241
392
  }
242
- export interface WorkerHeapInfo {
243
- /**
244
- * Total heap size available for this worker.
245
- */
246
- get totalHeapSize():number;
247
- get freeMemory():number;
248
- get maximumHeapSize():number;
249
- }
250
393
  /**
251
- * Behaves like a Table, but doesn't expose all of its API for changing the internal state. Instead, state is driven by
394
+ * Represents the contents of a single widget data message from the server, with a binary data paylod and exported
395
+ * objects. Implemented both by Widget itself and by the `event.details` when data is received by the client.
396
+ *
397
+ * Terminology note: the name of this type should probably use "Data" instead of "Message", and the methods should use
398
+ * "payload" rather than "data" to match other platforms and the protobuf itself. These names are instead used for
399
+ * backwards compatibility and to better follow JS expectations.
400
+ */
401
+ export interface WidgetMessageDetails {
402
+ /**
403
+ * Returns the data from this message as a base64-encoded string.
404
+ */
405
+ getDataAsBase64():string;
406
+ /**
407
+ * Returns the data from this message as a Uint8Array.
408
+ */
409
+ getDataAsU8():Uint8Array;
410
+ /**
411
+ * Returns the data from this message as a utf-8 string.
412
+ */
413
+ getDataAsString():string;
414
+ /**
415
+ * Returns an array of exported objects sent from the server. The plugin implementation is now responsible for these
416
+ * objects, and should close them when no longer needed.
417
+ */
418
+ get exportedObjects():WidgetExportedObject[];
419
+ }
420
+ /**
421
+ * Wrap LocalDate values for use in JS. Provides text formatting for display and access to the underlying value.
422
+ */
423
+ export interface LocalDateWrapper {
424
+ valueOf():string;
425
+ getYear():number;
426
+ getMonthValue():number;
427
+ getDayOfMonth():number;
428
+ toString():string;
429
+ }
430
+ /**
431
+ * This object may be pooled internally or discarded and not updated. Do not retain references to it.
432
+ */
433
+ export interface Format {
434
+ /**
435
+ * The format string to apply to the value of this cell.
436
+ * @return String
437
+ */
438
+ readonly formatString?:string|null;
439
+ /**
440
+ * Color to apply to the cell's background, in <b>#rrggbb</b> format.
441
+ * @return String
442
+ */
443
+ readonly backgroundColor?:string|null;
444
+ /**
445
+ * Color to apply to the text, in <b>#rrggbb</b> format.
446
+ * @return String
447
+ */
448
+ readonly color?:string|null;
449
+ /**
450
+ *
451
+ * @deprecated Prefer formatString. Number format string to apply to the value in this cell.
452
+ */
453
+ readonly numberFormat?:string|null;
454
+ }
455
+ /**
456
+ * Represents statistics for a given table column.
457
+ */
458
+ export interface ColumnStatistics {
459
+ /**
460
+ * Gets the type of formatting that should be used for given statistic.
461
+ * <p>
462
+ * the format type for a statistic. A null return value means that the column formatting should be used.
463
+ * @param name - the display name of the statistic
464
+ * @return String
465
+ */
466
+ getType(name:string):string;
467
+ /**
468
+ * 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
469
+ * name to the count of how many times it occurred in the column. This map will be empty for tables containing more
470
+ * than 19 unique values.
471
+ * @return Map of String double
472
+ */
473
+ get uniqueValues():Map<string, number>;
474
+ /**
475
+ * Gets a map with the display name of statistics as keys and the numeric stat as a value.
476
+ * <p>
477
+ * A map of each statistic's name to its value.
478
+ * @return Map of String and Object
479
+ */
480
+ get statisticsMap():Map<string, object>;
481
+ }
482
+ /**
483
+ * Behaves like a Table, but doesn't expose all of its API for changing the internal state. Instead, state is driven by
252
484
  * the upstream table - when it changes handle, this listens and updates its own handle accordingly.
253
485
  *
254
486
  * Additionally, this is automatically subscribed to its one and only row, across all columns.
@@ -376,58 +608,50 @@ export namespace dh {
376
608
  */
377
609
  get isRefreshing():boolean;
378
610
  }
379
- export interface TreeViewportData extends TableData {
380
- get(index:LongWrapper|number):TreeRow;
381
- getData(index:LongWrapper|number, column:Column):any;
382
- getFormat(index:LongWrapper|number, column:Column):Format;
383
- get treeSize():number;
384
- get columns():Array<Column>;
385
- get rows():Array<TreeRow>;
386
- }
387
611
  /**
388
- * Common interface for various ways of accessing table data and formatting for viewport or non-viewport subscriptions
389
- * on tables, data in trees, and snapshots.
612
+ * Event data, describing the indexes that were added/removed/updated, and providing access to Rows (and thus data in
613
+ * columns) either by index, or scanning the complete present index.
390
614
  * <p>
391
- * Generally speaking, it is more efficient to access data in column-major order, rather than iterating through each Row
392
- * and accessing all columns that it holds. The {@link rows} accessor can be useful to read row data, but may
393
- * incur other costs - it is likely faster to access data by columns using {@link getData}.
615
+ * This class supports two ways of reading the table - checking the changes made since the last update, and reading all
616
+ * data currently in the table. While it is more expensive to always iterate over every single row in the table, it may
617
+ * in some cases actually be cheaper than maintaining state separately and updating only the changes, though both
618
+ * options should be considered.
619
+ * <p>
620
+ * The RangeSet objects allow iterating over the LongWrapper indexes in the table. Note that these "indexes" are not
621
+ * necessarily contiguous and may be negative, and represent some internal state on the server, allowing it to keep
622
+ * track of data efficiently. Those LongWrapper objects can be passed to the various methods on this instance to read
623
+ * specific rows or cells out of the table.
394
624
  */
395
- export interface TableData {
625
+ export interface SubscriptionTableData extends TableData {
626
+ get fullIndex():RangeSet;
396
627
  /**
397
- * Reads a row object from the table, from which any subscribed column can be read.
398
- * @param index - the position or key to access
399
- * @return the row at the given location
628
+ * The ordered set of row indexes removed since the last update
629
+ * @return the rangeset of removed rows
400
630
  */
401
- get(index:LongWrapper|number):Row;
631
+ get removed():RangeSet;
402
632
  /**
403
- * Reads a specific cell from the table, by row key and column.
404
- * @param index - the row in the table to get data from
405
- * @param column - the column to read
406
- * @return the value in the table
633
+ * The ordered set of row indexes added since the last update.
634
+ * @return the rangeset of rows added
407
635
  */
408
- getData(index:LongWrapper|number, column:Column):any;
636
+ get added():RangeSet;
637
+ get columns():Array<Column>;
409
638
  /**
410
- * The server-specified Format to use for the cell at the given position.
411
- * @param index - the row to read
412
- * @param column - the column to read
413
- * @return a Format instance with any server-specified details
639
+ * The ordered set of row indexes updated since the last update
640
+ * @return the rnageset of modified rows
414
641
  */
415
- getFormat(index:LongWrapper|number, column:Column):Format;
416
- get columns():Array<Column>;
642
+ get modified():RangeSet;
417
643
  /**
418
644
  * A lazily computed array of all rows available on the client.
419
645
  */
420
646
  get rows():Array<Row>;
421
647
  }
422
- /**
423
- * Similar to the browser `CustomEvent` type, this class holds only the type of the event, and optionally some
424
- * details about the event.
425
- * @typeParam T - the type of the event detail
426
- */
427
- export interface Event<T> {
428
- readonly detail?:null|@jsinterop.annotations.JsNullable T;
429
-
430
- get type():string;
648
+ export interface WorkerHeapInfo {
649
+ /**
650
+ * Total heap size available for this worker.
651
+ */
652
+ get totalHeapSize():number;
653
+ get freeMemory():number;
654
+ get maximumHeapSize():number;
431
655
  }
432
656
  /**
433
657
  * Represents a row available in a subscription/snapshot on the client. Do not retain references to rows - they will
@@ -440,238 +664,99 @@ export namespace dh {
440
664
  get index():LongWrapper;
441
665
  }
442
666
  /**
443
- * Represents a table which can be joined to another table. Current implementations are {@link dh.Table} and
444
- * {@link dh.TotalsTable}.
667
+ * Similar to the browser `CustomEvent` type, this class holds only the type of the event, and optionally some
668
+ * details about the event.
669
+ * @typeParam T - the type of the event detail
445
670
  */
446
- export interface JoinableTable {
447
- freeze():Promise<Table>;
448
- snapshot(baseTable:Table, doInitialSnapshot?:boolean, stampColumns?:string[]):Promise<Table>;
671
+ export interface Event<T> {
672
+ get detail():T;
673
+ get type():string;
674
+ }
675
+
676
+ export class LoginCredentials {
677
+ type?:string|null;
678
+ username?:string|null;
679
+ token?:string|null;
680
+
681
+ constructor();
682
+ }
683
+
684
+ /**
685
+ * Represents a non-viewport subscription to a table, and all data currently known to be present in the subscribed
686
+ * columns. This class handles incoming snapshots and deltas, and fires events to consumers to notify of data changes.
687
+ *
688
+ * Unlike {@link dh.TableViewportSubscription}, the "original" table does not have a reference to this instance, only the
689
+ * "private" table instance does, since the original cannot modify the subscription, and the private instance must
690
+ * forward data to it.
691
+ *
692
+ * Represents a subscription to the table on the server. Changes made to the table will not be reflected here - the
693
+ * subscription must be closed and a new one optioned to see those changes. The event model is slightly different from
694
+ * viewports to make it less expensive to compute for large tables.
695
+ */
696
+ export class TableSubscription implements HasEventHandling {
697
+ protected constructor();
698
+
449
699
  /**
450
- * Joins this table to the provided table, using one of the specified join types:
451
- * <ul>
452
- * <li><code>AJ</code>, <code>ReverseAJ</code> (or <code>RAJ</code>) - inexact timeseries joins, based on the
453
- * provided matching rule.</li>
454
- * <li><code>CROSS_JOIN</code> (or <code>Join</code>) - cross join of all rows that have matching values in both
455
- * tables.</li>
456
- * <li><code>EXACT_JOIN</code> (or <code>ExactJoin</code> - matches values in exactly one row in the right table,
457
- * with errors if there is not exactly one.</li>
458
- * <li><code>NATURAL_JOIN</code> (or <code>Natural</code> - matches values in at most one row in the right table,
459
- * with nulls if there is no match or errors if there are multiple matches.</li>
460
- * </ul>
461
- *
462
- * Note that <code>Left</code> join is not supported here, unlike DHE.
463
- * <p>
464
- * See the <a href="https://deephaven.io/core/docs/conceptual/choose-joins/">Choose a join method</a> document for
465
- * more guidance on picking a join operation.
466
- * @deprecated Instead, call the specific method for the join type.
467
- * @param joinType - The type of join to perform, see the list above.
468
- * @param rightTable - The table to match to values in this table
469
- * @param columnsToMatch - Columns that should match
470
- * @param columnsToAdd - Columns from the right table to add to the result - empty/null/absent to add all columns
471
- * @param asOfMatchRule - If joinType is AJ/RAJ/ReverseAJ, the match rule to use
472
- * @return a promise that will resolve to the joined table
700
+ * Updates the subscription to use the given columns and update interval.
701
+ * @param columns - the new columns to subscribe to
702
+ * @param updateIntervalMs - the new update interval, or null/omit to use the default of one second
473
703
  */
474
- join(joinType:string, rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:string|undefined|null):Promise<Table>;
704
+ changeSubscription(columns:Array<Column>, updateIntervalMs:number|undefined|null):void;
705
+ get columns():Array<Column>;
475
706
  /**
476
- * Performs an inexact timeseries join, where rows in this table will have columns added from the closest matching
477
- * row from the right table.
478
- * <p>
479
- * The `asOfMatchRule` value can be one of:
480
- * <ul>
481
- * <li>LESS_THAN_EQUAL</li>
482
- * <li>LESS_THAN</li>
483
- * <li>GREATER_THAN_EQUAL</li>
484
- * <li>GREATER_THAN</li>
485
- * </ul>
486
- * @param rightTable - the table to match to values in this table
487
- * @param columnsToMatch - the columns that should match, according to the asOfMatchRole
488
- * @param columnsToAdd - columns from the right table to add to the resulting table, empty/null/absent to add all
489
- * columns
490
- * @param asOfMatchRule - the match rule to use, see above
491
- * @return a promise that will resolve to the joined table
707
+ * Stops the subscription on the server.
492
708
  */
493
- asOfJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:string|undefined|null):Promise<Table>;
709
+ close():void;
494
710
  /**
495
- * a promise that will be resolved with the newly created table holding the results of the specified cross join
496
- * operation. The <b>columnsToAdd</b> parameter is optional, not specifying it will result in all columns from the
497
- * right table being added to the output. The <b>reserveBits</b> optional parameter lets the client control how the
498
- * key space is distributed between the rows in the two tables, see the Java <b>Table</b> class for details.
499
- * @param rightTable - the table to match to values in this table
500
- * @param columnsToMatch - the columns that should match exactly
501
- * @param columnsToAdd - columns from the right table to add to the resulting table, empty/null/absent to add all
502
- * columns
503
- * @param reserveBits - the number of bits of key-space to initially reserve per group, null/absent will let the
504
- * server select a value
505
- * @return a promise that will resolve to the joined table
711
+ * Listen for events on this object.
712
+ * @param name - the name of the event to listen for
713
+ * @param callback - a function to call when the event occurs
714
+ * @return Returns a cleanup function.
715
+ * @typeParam T - the type of the data that the event will provide
506
716
  */
507
- crossJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, reserveBits?:number|undefined|null):Promise<Table>;
508
- /**
509
- * a promise that will be resolved with the newly created table holding the results of the specified exact join
510
- * operation. The `columnsToAdd` parameter is optional, not specifying it will result in all columns from the right
511
- * table being added to the output.
512
- * @param rightTable - the table to match to values in this table
513
- * @param columnsToMatch - the columns that should match exactly
514
- * @param columnsToAdd - columns from the right table to add to the resulting table, empty/null/absent to add all
515
- * columns
516
- * @return a promise that will resolve to the joined table
517
- */
518
- exactJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null):Promise<Table>;
519
- /**
520
- * a promise that will be resolved with the newly created table holding the results of the specified natural join
521
- * operation. The <b>columnsToAdd</b> parameter is optional, not specifying it will result in all columns from the
522
- * right table being added to the output.
523
- * @param rightTable - the table to match to values in this table
524
- * @param columnsToMatch - the columns that should match exactly
525
- * @param columnsToAdd - columns from the right table to add to the resulting table, empty/null/absent to add all
526
- * columns
527
- * @return a promise that will resolve to the joined table
528
- */
529
- naturalJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null):Promise<Table>;
530
- }
531
- /**
532
- * Represents the contents of a single widget data message from the server, with a binary data paylod and exported
533
- * objects. Implemented both by Widget itself and by the `event.details` when data is received by the client.
534
- *
535
- * Terminology note: the name of this type should probably use "Data" instead of "Message", and the methods should use
536
- * "payload" rather than "data" to match other platforms and the protobuf itself. These names are instead used for
537
- * backwards compatibility and to better follow JS expectations.
538
- */
539
- export interface WidgetMessageDetails {
540
- /**
541
- * Returns the data from this message as a base64-encoded string.
542
- */
543
- getDataAsBase64():string;
544
- /**
545
- * Returns the data from this message as a Uint8Array.
546
- */
547
- getDataAsU8():Uint8Array;
548
- /**
549
- * Returns the data from this message as a utf-8 string.
550
- */
551
- getDataAsString():string;
552
- /**
553
- * Returns an array of exported objects sent from the server. The plugin implementation is now responsible for these
554
- * objects, and should close them when no longer needed.
555
- */
556
- get exportedObjects():WidgetExportedObject[];
557
- }
558
- /**
559
- * Extends {@link dh.TableData}, but only contains data in the current viewport. The only API change from TableData is that
560
- * ViewportData also contains the offset to this data, so that the actual row number may be determined.
561
- * <p>
562
- * For viewport subscriptions, it is not necessary to read with the key, only with the position.
563
- * <p>
564
- * Do not assume that the first row in `rows` is the first visible row, because extra rows may be provided for easier
565
- * scrolling without going to the server.
566
- */
567
- export interface ViewportData extends TableData {
568
- /**
569
- * Reads a row object from the viewport, based on its position in the table.
570
- */
571
- get(index:LongWrapper|number):ViewportRow;
572
- getData(index:LongWrapper|number, column:Column):any;
573
- getFormat(index:LongWrapper|number, column:Column):Format;
717
+ addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
718
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<Event<T>>;
719
+ hasListeners(name:string):boolean;
574
720
  /**
575
- * The position of the first returned row, null if this data is not for a viewport.
721
+ * Removes an event listener added to this table.
722
+ * @param name -
723
+ * @param callback -
724
+ * @return
725
+ * @typeParam T -
576
726
  */
577
- get offset():number;
578
- get columns():Array<Column>;
579
- get rows():Array<ViewportRow>;
727
+ removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
580
728
  }
729
+
581
730
  /**
582
- * Event data, describing the indexes that were added/removed/updated, and providing access to Rows (and thus data in
583
- * columns) either by index, or scanning the complete present index.
584
- * <p>
585
- * This class supports two ways of reading the table - checking the changes made since the last update, and reading all
586
- * data currently in the table. While it is more expensive to always iterate over every single row in the table, it may
587
- * in some cases actually be cheaper than maintaining state separately and updating only the changes, though both
588
- * options should be considered.
589
- * <p>
590
- * The RangeSet objects allow iterating over the LongWrapper indexes in the table. Note that these "indexes" are not
591
- * necessarily contiguous and may be negative, and represent some internal state on the server, allowing it to keep
592
- * track of data efficiently. Those LongWrapper objects can be passed to the various methods on this instance to read
593
- * specific rows or cells out of the table.
731
+ * Addition optional configuration that can be passed to the {@link dh.CoreClient} constructor.
594
732
  */
595
- export interface SubscriptionTableData extends TableData {
596
- get fullIndex():RangeSet;
597
- /**
598
- * The ordered set of row indexes removed since the last update
599
- * @return the rangeset of removed rows
600
- */
601
- get removed():RangeSet;
602
- /**
603
- * The ordered set of row indexes added since the last update.
604
- * @return the rangeset of rows added
605
- */
606
- get added():RangeSet;
607
- get columns():Array<Column>;
733
+ export class ConnectOptions {
608
734
  /**
609
- * The ordered set of row indexes updated since the last update
610
- * @return the rnageset of modified rows
735
+ * Optional map of http header names and values to send to the server with each request.
611
736
  */
612
- get modified():RangeSet;
737
+ headers?:{ [key: string]: string; }|null;
613
738
  /**
614
- * A lazily computed array of all rows available on the client.
739
+ * True to enable debug logging. At this time, only enables logging for gRPC calls.
615
740
  */
616
- get rows():Array<Row>;
617
- }
618
- /**
619
- * Represents statistics for a given table column.
620
- */
621
- export interface ColumnStatistics {
741
+ debug?:boolean|null;
622
742
  /**
623
- * Gets the type of formatting that should be used for given statistic.
743
+ * Set this to true to force the use of websockets when connecting to the deephaven instance, false to force the use
744
+ * of `fetch`. Ignored if {@link dh.transportFactory} is set.
624
745
  * <p>
625
- * the format type for a statistic. A null return value means that the column formatting should be used.
626
- * @param name - the display name of the statistic
627
- * @return String
628
- */
629
- getType(name:string):string;
630
- /**
631
- * 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
632
- * name to the count of how many times it occurred in the column. This map will be empty for tables containing more
633
- * than 19 unique values.
634
- * @return Map of String double
746
+ * Defaults to null, indicating that the server URL should be checked to see if we connect with fetch or websockets.
635
747
  */
636
- get uniqueValues():Map<string, number>;
748
+ useWebsockets?:boolean|null;
637
749
  /**
638
- * Gets a map with the display name of statistics as keys and the numeric stat as a value.
750
+ * The transport factory to use for creating gRPC streams. If specified, the JS API will ignore
751
+ * {@link dh.useWebsockets} and its own internal logic for determining the appropriate transport to use.
639
752
  * <p>
640
- * A map of each statistic's name to its value.
641
- * @return Map of String and Object
753
+ * Defaults to null, indicating that the JS API should determine the appropriate transport to use. If
754
+ * `useWebsockets` is set to true, the JS API will use websockets, otherwise if the server url begins with
755
+ * https, it will use fetch, otherwise it will use websockets.
642
756
  */
643
- get statisticsMap():Map<string, object>;
644
- }
645
- export interface LayoutHints {
646
- readonly searchDisplayMode?:SearchDisplayModeType|null;
757
+ transportFactory?:dh.grpc.GrpcTransportFactory|null;
647
758
 
648
- get hiddenColumns():string[]|null;
649
- get frozenColumns():string[]|null;
650
- get columnGroups():ColumnGroup[]|null;
651
- get areSavedLayoutsAllowed():boolean;
652
- get frontColumns():string[]|null;
653
- get backColumns():string[]|null;
654
- }
655
- /**
656
- * Wrap LocalDate values for use in JS. Provides text formatting for display and access to the underlying value.
657
- */
658
- export interface LocalDateWrapper {
659
- valueOf():string;
660
- getYear():number;
661
- getMonthValue():number;
662
- getDayOfMonth():number;
663
- toString():string;
664
- }
665
- /**
666
- * Wrap LocalTime values for use in JS. Provides text formatting for display and access to the underlying value.
667
- */
668
- export interface LocalTimeWrapper {
669
- valueOf():string;
670
- getHour():number;
671
- getMinute():number;
672
- getSecond():number;
673
- getNano():number;
674
- toString():string;
759
+ constructor();
675
760
  }
676
761
 
677
762
  /**
@@ -768,620 +853,95 @@ export namespace dh {
768
853
  removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
769
854
  }
770
855
 
771
- export class DateWrapper extends LongWrapper {
772
- protected constructor();
773
-
774
- static ofJsDate(date:Date):DateWrapper;
775
- asDate():Date;
776
- }
777
-
778
856
  /**
779
- * Describes a grouping and aggregations for a roll-up table. Pass to the <b>Table.rollup</b> function to create a
780
- * roll-up table.
857
+ * Describes the structure of the column, and if desired can be used to get access to the data to be rendered in this
858
+ * column.
781
859
  */
782
- export class RollupConfig {
783
- /**
784
- * Ordered list of columns to group by to form the hierarchy of the resulting roll-up table.
785
- */
786
- groupingColumns:Array<String>;
787
- /**
788
- * Mapping from each aggregation name to the ordered list of columns it should be applied to in the resulting
789
- * roll-up table.
790
- */
791
- aggregations:{ [key: string]: Array<string>; };
792
- /**
793
- * Optional parameter indicating if an extra leaf node should be added at the bottom of the hierarchy, showing the
794
- * rows in the underlying table which make up that grouping. Since these values might be a different type from the
795
- * rest of the column, any client code must check if TreeRow.hasChildren = false, and if so, interpret those values
796
- * as if they were Column.constituentType instead of Column.type. Defaults to false.
797
- */
798
- includeConstituents:boolean;
799
- includeOriginalColumns?:boolean|null;
860
+ export class Column {
800
861
  /**
801
- * Optional parameter indicating if original column descriptions should be included. Defaults to true.
862
+ * If this column is part of a roll-up tree table, represents the type of the row data that can be found in this
863
+ * column for leaf nodes if includeConstituents is enabled. Otherwise, it is <b>null</b>.
864
+ * @return String
802
865
  */
803
- includeDescriptions:boolean;
804
-
805
- constructor();
806
- }
807
-
808
- /**
809
- * Wrap BigInteger values for use in JS. Provides text formatting for display and access to the underlying value.
810
- */
811
- export class BigIntegerWrapper {
812
- protected constructor();
813
-
814
- static ofString(str:string):BigIntegerWrapper;
815
- asNumber():number;
816
- valueOf():string;
817
- toString():string;
818
- }
819
-
820
- export class QueryInfo {
821
- static readonly EVENT_TABLE_OPENED:string;
822
- static readonly EVENT_DISCONNECT:string;
823
- static readonly EVENT_RECONNECT:string;
824
- static readonly EVENT_CONNECT:string;
825
-
826
- protected constructor();
827
- }
828
-
829
- export class IdeSession implements HasEventHandling {
830
- static readonly EVENT_COMMANDSTARTED:string;
831
- static readonly EVENT_REQUEST_FAILED:string;
866
+ readonly constituentType?:string|null;
867
+ readonly description?:string|null;
832
868
 
833
869
  protected constructor();
834
870
 
835
871
  /**
836
- * Load the named table, with columns and size information already fully populated.
837
- * @param name -
838
- * @param applyPreviewColumns - optional boolean
839
- * @return {@link Promise} of {@link dh.Table}
872
+ * the value for this column in the given row. Type will be consistent with the type of the Column.
873
+ * @param row -
874
+ * @return Any
840
875
  */
841
- getTable(name:string, applyPreviewColumns?:boolean):Promise<Table>;
876
+ get(row:Row):any;
877
+ getFormat(row:Row):Format;
842
878
  /**
843
- * Load the named Figure, including its tables and tablemaps as needed.
844
- * @param name -
845
- * @return promise of dh.plot.Figure
879
+ * Creates a sort builder object, to be used when sorting by this column.
880
+ * @return {@link dh.Sort}
846
881
  */
847
- getFigure(name:string):Promise<dh.plot.Figure>;
882
+ sort():Sort;
848
883
  /**
849
- * Loads the named tree table or roll-up table, with column data populated. All nodes are collapsed by default, and
850
- * size is presently not available until the viewport is first set.
851
- * @param name -
852
- * @return {@link Promise} of {@link dh.TreeTable}
853
- */
854
- getTreeTable(name:string):Promise<TreeTable>;
855
- getHierarchicalTable(name:string):Promise<TreeTable>;
856
- getPartitionedTable(name:string):Promise<PartitionedTable>;
857
- getObject(definitionObject:dh.ide.VariableDescriptor):Promise<any>;
858
- newTable(columnNames:string[], types:string[], data:string[][], userTimeZone:string):Promise<Table>;
859
- /**
860
- * Merges the given tables into a single table. Assumes all tables have the same structure.
861
- * @param tables -
862
- * @return {@link Promise} of {@link dh.Table}
863
- */
864
- mergeTables(tables:Table[]):Promise<Table>;
865
- bindTableToVariable(table:Table, name:string):Promise<void>;
866
- subscribeToFieldUpdates(callback:(arg0:dh.ide.VariableChanges)=>void):()=>void;
867
- close():void;
868
- runCode(code:string):Promise<dh.ide.CommandResult>;
869
- onLogMessage(callback:(arg0:dh.ide.LogItem)=>void):()=>void;
870
- openDocument(params:object):void;
871
- changeDocument(params:object):void;
872
- getCompletionItems(params:object):Promise<Array<dh.lsp.CompletionItem>>;
873
- getSignatureHelp(params:object):Promise<Array<dh.lsp.SignatureInformation>>;
874
- getHover(params:object):Promise<dh.lsp.Hover>;
875
- closeDocument(params:object):void;
876
- /**
877
- * Creates an empty table with the specified number of rows. Optionally columns and types may be specified, but all
878
- * values will be null.
879
- * @param size -
880
- * @return {@link Promise} of {@link dh.Table}
881
- */
882
- emptyTable(size:number):Promise<Table>;
883
- /**
884
- * Creates a new table that ticks automatically every "periodNanos" nanoseconds. A start time may be provided; if so
885
- * the table will be populated with the interval from the specified date until now.
886
- * @param periodNanos -
887
- * @param startTime -
888
- * @return {@link Promise} of {@link dh.Table}
889
- */
890
- timeTable(periodNanos:number, startTime?:DateWrapper):Promise<Table>;
891
- addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
892
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<Event<T>>;
893
- hasListeners(name:string):boolean;
894
- removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
895
- }
896
-
897
- /**
898
- * A js type for operating on input tables.
899
- *
900
- * Represents a User Input Table, which can have data added to it from other sources.
901
- *
902
- * You may add rows using dictionaries of key-value tuples (representing columns by name), add tables containing all the
903
- * key/value columns to add, or delete tables containing the keys to delete. Each operation is atomic, and will either
904
- * succeed completely or fail completely. To guarantee order of operations, apply an operation and wait for the response
905
- * before sending the next operation.
906
- *
907
- * Each table has one or more key columns, where each unique combination of keys will appear at most once in the table.
908
- *
909
- * To view the results of the Input Table, you should use standard table operations on the InputTable's source Table
910
- * object.
911
- */
912
- export class InputTable {
913
- protected constructor();
914
-
915
- /**
916
- * Adds a single row to the table. For each key or value column name in the Input Table, we retrieve that javascript
917
- * property at that name and validate it can be put into the given column type.
918
- * @param row -
919
- * @param userTimeZone -
920
- * @return Promise of dh.InputTable
921
- */
922
- addRow(row:{ [key: string]: any; }, userTimeZone?:string):Promise<InputTable>;
923
- /**
924
- * Add multiple rows to a table.
925
- * @param rows -
926
- * @param userTimeZone -
927
- * @return Promise of dh.InputTable
928
- */
929
- addRows(rows:{ [key: string]: any; }[], userTimeZone?:string):Promise<InputTable>;
930
- /**
931
- * Add an entire table to this Input Table. Only column names that match the definition of the input table will be
932
- * copied, and all key columns must have values filled in. This only copies the current state of the source table;
933
- * future updates to the source table will not be reflected in the Input Table. The returned promise will be
934
- * resolved to the same InputTable instance this method was called upon once the server returns.
935
- * @param tableToAdd -
936
- * @return Promise of dh.InputTable
937
- */
938
- addTable(tableToAdd:Table):Promise<InputTable>;
939
- /**
940
- * Add multiple tables to this Input Table.
941
- * @param tablesToAdd -
942
- * @return Promise of dh.InputTable
943
- */
944
- addTables(tablesToAdd:Table[]):Promise<InputTable>;
945
- /**
946
- * Deletes an entire table from this Input Table. Key columns must match the Input Table.
947
- * @param tableToDelete -
948
- * @return Promise of dh.InputTable
949
- */
950
- deleteTable(tableToDelete:Table):Promise<InputTable>;
951
- /**
952
- * Delete multiple tables from this Input Table.
953
- * @param tablesToDelete -
954
- * @return
955
- */
956
- deleteTables(tablesToDelete:Table[]):Promise<InputTable>;
957
- /**
958
- * A list of the key columns, by name
959
- * @return String array.
960
- */
961
- get keys():string[];
962
- /**
963
- * A list of the value columns, by name
964
- * @return String array.
965
- */
966
- get values():string[];
967
- /**
968
- * A list of the key columns.
969
- * @return Column array.
970
- */
971
- get keyColumns():Column[];
972
- /**
973
- * A list of the value Column objects
974
- * @return {@link dh.Column} array.
975
- */
976
- get valueColumns():Column[];
977
- /**
978
- * The source table for this Input Table
979
- * @return dh.table
980
- */
981
- get table():Table;
982
- }
983
-
984
- /**
985
- * Addition optional configuration that can be passed to the {@link dh.CoreClient} constructor.
986
- */
987
- export class ConnectOptions {
988
- /**
989
- * Optional map of http header names and values to send to the server with each request.
990
- */
991
- headers?:{ [key: string]: string; }|null;
992
- /**
993
- * True to enable debug logging. At this time, only enables logging for gRPC calls.
994
- */
995
- debug?:boolean|null;
996
- /**
997
- * Set this to true to force the use of websockets when connecting to the deephaven instance, false to force the use
998
- * of `fetch`.
999
- * <p>
1000
- * Defaults to null, indicating that the server URL should be checked to see if we connect with fetch or websockets.
1001
- */
1002
- useWebsockets?:boolean|null;
1003
-
1004
- constructor();
1005
- }
1006
-
1007
- export class CoreClient implements HasEventHandling {
1008
- static readonly EVENT_CONNECT:string;
1009
- static readonly EVENT_DISCONNECT:string;
1010
- static readonly EVENT_RECONNECT:string;
1011
- static readonly EVENT_RECONNECT_AUTH_FAILED:string;
1012
- static readonly EVENT_REQUEST_FAILED:string;
1013
- static readonly EVENT_REQUEST_STARTED:string;
1014
- static readonly EVENT_REQUEST_SUCCEEDED:string;
1015
- /**
1016
- * @deprecated
1017
- */
1018
- static readonly EVENT_REFRESH_TOKEN_UPDATED:string;
1019
- static readonly LOGIN_TYPE_PASSWORD:string;
1020
- static readonly LOGIN_TYPE_ANONYMOUS:string;
1021
-
1022
- constructor(serverUrl:string, connectOptions?:ConnectOptions);
1023
-
1024
- running():Promise<CoreClient>;
1025
- getServerUrl():string;
1026
- getAuthConfigValues():Promise<string[][]>;
1027
- login(credentials:LoginCredentials):Promise<void>;
1028
- relogin(token:RefreshToken):Promise<void>;
1029
- onConnected(timeoutInMillis?:number):Promise<void>;
1030
- getServerConfigValues():Promise<string[][]>;
1031
- getStorageService():dh.storage.StorageService;
1032
- getAsIdeConnection():Promise<IdeConnection>;
1033
- disconnect():void;
1034
- addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
1035
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<Event<T>>;
1036
- hasListeners(name:string):boolean;
1037
- removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
1038
- }
1039
-
1040
- /**
1041
- * Event fired when a command is issued from the client.
1042
- */
1043
- export class CommandInfo {
1044
- constructor(code:string, result:Promise<dh.ide.CommandResult>);
1045
-
1046
- get result():Promise<dh.ide.CommandResult>;
1047
- get code():string;
1048
- }
1049
-
1050
- /**
1051
- * Behaves like a {@link dh.Table} externally, but data, state, and viewports are managed by an entirely different
1052
- * mechanism, and so reimplemented here.
1053
- * <p>
1054
- * Any time a change is made, we build a new request and send it to the server, and wait for the updated state.
1055
- * <p>
1056
- * Semantics around getting updates from the server are slightly different - we don't "unset" the viewport here after
1057
- * operations are performed, but encourage the client code to re-set them to the desired position.
1058
- * <p>
1059
- * The table size will be -1 until a viewport has been fetched.
1060
- * <p>
1061
- * Similar to a table, a Tree Table provides access to subscribed viewport data on the current hierarchy. A different
1062
- * Row type is used within that viewport, showing the depth of that node within the tree and indicating details about
1063
- * whether it has children or is expanded. The Tree Table itself then provides the ability to change if a row is
1064
- * expanded or not. Methods used to control or check if a row should be expanded or not can be invoked on a TreeRow
1065
- * instance, or on the number of the row (thus allowing for expanding/collapsing rows which are not currently visible in
1066
- * the viewport).
1067
- * <p>
1068
- * Events and viewports are somewhat different from tables, due to the expense of computing the expanded/collapsed rows
1069
- * and count of children at each level of the hierarchy, and differences in the data that is available.
1070
- * <p>
1071
- * <ul>
1072
- * <li>There is no {@link Table.totalSize | totalSize} property.</li>
1073
- * <li>The viewport is not un-set when changes are made to filter or sort, but changes will continue to be streamed in.
1074
- * It is suggested that the viewport be changed to the desired position (usually the first N rows) after any filter/sort
1075
- * change is made. Likewise, {@link getViewportData} will always return the most recent data, and will not wait if a
1076
- * new operation is pending.</li>
1077
- * <li>Custom columns are not directly supported. If the TreeTable was created client-side, the original Table can have
1078
- * custom columns applied, and the TreeTable can be recreated.</li>
1079
- * <li>Whereas Table has a {@link Table.totalsTableConfig} property, it is defined here as a method,
1080
- * {@link getTotalsTableConfig}. This returns a promise so the config can be fetched asynchronously.</li>
1081
- * <li>Totals Tables for trees vary in behavior between tree tables and roll-up tables. This behavior is based on the
1082
- * original flat table used to produce the Tree Table - for a hierarchical table (i.e. Table.treeTable in the query
1083
- * config), the totals will include non-leaf nodes (since they are themselves actual rows in the table), but in a
1084
- * roll-up table, the totals only include leaf nodes (as non-leaf nodes are generated through grouping the contents of
1085
- * the original table). Roll-ups also have the {@link dh.includeConstituents} property, indicating that a
1086
- * {@link dh.Column} in the tree may have a {@link Column.constituentType} property reflecting that the type of cells
1087
- * where {@link TreeRowImpl.hasChildren} is false will be different from usual.</li>
1088
- * </ul>
1089
- */
1090
- export class TreeTable implements HasEventHandling {
1091
- /**
1092
- * event.detail is the currently visible viewport data based on the active viewport configuration.
1093
- */
1094
- static readonly EVENT_UPDATED:string;
1095
- /**
1096
- * event.detail is the currently visible viewport data based on the active viewport configuration.
1097
- */
1098
- static readonly EVENT_DISCONNECT:string;
1099
- /**
1100
- * event.detail is the currently visible viewport data based on the active viewport configuration.
1101
- */
1102
- static readonly EVENT_RECONNECT:string;
1103
- /**
1104
- * event.detail is the currently visible viewport data based on the active viewport configuration.
1105
- */
1106
- static readonly EVENT_RECONNECTFAILED:string;
1107
- /**
1108
- * event.detail is the currently visible viewport data based on the active viewport configuration.
1109
- */
1110
- static readonly EVENT_REQUEST_FAILED:string;
1111
- readonly description?:string|null;
1112
- readonly layoutHints?:null|LayoutHints;
1113
-
1114
- protected constructor();
1115
-
1116
- /**
1117
- * Expands the given node, so that its children are visible when they are in the viewport. The parameter can be the
1118
- * row index, or the row object itself. The second parameter is a boolean value, false by default, specifying if the
1119
- * row and all descendants should be fully expanded. Equivalent to `setExpanded(row, true)` with an optional third
1120
- * boolean parameter.
1121
- * @param row -
1122
- * @param expandDescendants -
1123
- */
1124
- expand(row:TreeRow|number, expandDescendants?:boolean):void;
1125
- /**
1126
- * Collapses the given node, so that its children and descendants are not visible in the size or the viewport. The
1127
- * parameter can be the row index, or the row object itself. Equivalent to <b>setExpanded(row, false, false)</b>.
1128
- * @param row -
1129
- */
1130
- collapse(row:TreeRow|number):void;
1131
- /**
1132
- * Specifies if the given node should be expanded or collapsed. If this node has children, and the value is changed,
1133
- * the size of the table will change. If node is to be expanded and the third parameter, <b>expandDescendants</b>,
1134
- * is true, then its children will also be expanded.
1135
- * @param row - the row to expand or collapse, either the absolute row index or the row object
1136
- * @param isExpanded - true to expand the row, false to collapse
1137
- * @param expandDescendants - true to expand the row and all descendants, false to expand only the row, defaults to
1138
- * false
1139
- */
1140
- setExpanded(row:TreeRow|number, isExpanded:boolean, expandDescendants?:boolean):void;
1141
- expandAll():void;
1142
- collapseAll():void;
1143
- /**
1144
- * Tests if the specified row is expanded.
1145
- * @param row - the row to test, either the absolute row index or the row object
1146
- * @return boolean true if the row is expanded, false otherwise
1147
- */
1148
- isExpanded(row:TreeRow|number):boolean;
1149
- setViewport(firstRow:number, lastRow:number, columns?:Array<Column>|undefined|null, updateInterval?:number|undefined|null):void;
1150
- getViewportData():Promise<TreeViewportData>;
1151
- /**
1152
- * Indicates that the table will no longer be used, and server resources can be freed.
1153
- */
1154
- close():void;
1155
- /**
1156
- * Applies the given sort to all levels of the tree. Returns the previous sort in use.
1157
- * @param sort -
1158
- * @return {@link dh.Sort} array
1159
- */
1160
- applySort(sort:Sort[]):Array<Sort>;
1161
- /**
1162
- * Applies the given filter to the contents of the tree in such a way that if any node is visible, then any parent
1163
- * node will be visible as well even if that parent node would not normally be visible due to the filter's
1164
- * condition. Returns the previous sort in use.
1165
- * @param filter -
1166
- * @return {@link dh.FilterCondition} array
1167
- */
1168
- applyFilter(filter:FilterCondition[]):Array<FilterCondition>;
1169
- /**
1170
- * a column with the given name, or throws an exception if it cannot be found
1171
- * @param key -
1172
- * @return {@link dh.Column}
1173
- */
1174
- findColumn(key:string):Column;
1175
- /**
1176
- * an array with all of the named columns in order, or throws an exception if one cannot be found.
1177
- * @param keys -
1178
- * @return {@link dh.Column} array
1179
- */
1180
- findColumns(keys:string[]):Column[];
1181
- /**
1182
- * Provides Table-like selectDistinct functionality, but with a few quirks, since it is only fetching the distinct
1183
- * values for the given columns in the source table:
1184
- * <ul>
1185
- * <li>Rollups may make no sense, since values are aggregated.</li>
1186
- * <li>Values found on orphaned (and removed) nodes will show up in the resulting table, even though they are not in
1187
- * the tree.</li>
1188
- * <li>Values found on parent nodes which are only present in the tree since a child is visible will not be present
1189
- * in the resulting table.</li>
1190
- * </ul>
1191
- */
1192
- selectDistinct(columns:Column[]):Promise<Table>;
1193
- getTotalsTableConfig():Promise<TotalsTableConfig>;
1194
- getTotalsTable(config?:object):Promise<TotalsTable>;
1195
- getGrandTotalsTable(config?:object):Promise<TotalsTable>;
1196
- /**
1197
- * a new copy of this treetable, so it can be sorted and filtered separately, and maintain a different viewport.
1198
- * Unlike Table, this will _not_ copy the filter or sort, since tree table viewport semantics differ, and without a
1199
- * viewport set, the treetable doesn't evaluate these settings, and they aren't readable on the properties. Expanded
1200
- * state is also not copied.
1201
- * @return Promise of dh.TreeTable
1202
- */
1203
- copy():Promise<TreeTable>;
1204
- /**
1205
- * The current filter configuration of this Tree Table.
1206
- * @return {@link dh.FilterCondition} array
1207
- */
1208
- get filter():Array<FilterCondition>;
1209
- /**
1210
- * True if this is a roll-up and will provide the original rows that make up each grouping.
1211
- * @return boolean
1212
- */
1213
- get includeConstituents():boolean;
1214
- get groupedColumns():Array<Column>;
1215
- /**
1216
- * True if this table has been closed.
1217
- * @return boolean
1218
- */
1219
- get isClosed():boolean;
1220
- /**
1221
- * The current number of rows given the table's contents and the various expand/collapse states of each node. (No
1222
- * totalSize is provided at this time; its definition becomes unclear between roll-up and tree tables, especially
1223
- * when considering collapse/expand states).
1224
- * @return double
1225
- */
1226
- get size():number;
1227
- /**
1228
- * The columns that can be shown in this Tree Table.
1229
- * @return {@link dh.Column} array
1230
- */
1231
- get columns():Array<Column>;
1232
- /**
1233
- * The current sort configuration of this Tree Table
1234
- * @return {@link dh.Sort} array.
1235
- */
1236
- get sort():Array<Sort>;
1237
- /**
1238
- * True if this table may receive updates from the server, including size changed events, updated events after
1239
- * initial snapshot.
1240
- * @return boolean
1241
- */
1242
- get isRefreshing():boolean;
1243
- /**
1244
- * Listen for events on this object.
1245
- * @param name - the name of the event to listen for
1246
- * @param callback - a function to call when the event occurs
1247
- * @return Returns a cleanup function.
1248
- * @typeParam T - the type of the data that the event will provide
1249
- */
1250
- addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
1251
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<Event<T>>;
1252
- hasListeners(name:string):boolean;
1253
- /**
1254
- * Removes an event listener added to this table.
1255
- * @param name -
1256
- * @param callback -
1257
- * @return
1258
- * @typeParam T -
1259
- */
1260
- removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
1261
- }
1262
-
1263
-
1264
- /**
1265
- * Describes a filter which can be applied to a table. Replacing these instances may be more expensive than reusing
1266
- * them. These instances are immutable - all operations that compose them to build bigger expressions return a new
1267
- * instance.
1268
- */
1269
- export class FilterCondition {
1270
- protected constructor();
1271
-
1272
- /**
1273
- * the opposite of this condition
1274
- * @return FilterCondition
1275
- */
1276
- not():FilterCondition;
1277
- /**
1278
- * a condition representing the current condition logically ANDed with the other parameters
1279
- * @param filters -
1280
- * @return FilterCondition
1281
- */
1282
- and(...filters:FilterCondition[]):FilterCondition;
1283
- /**
1284
- * a condition representing the current condition logically ORed with the other parameters
1285
- * @param filters -
1286
- * @return FilterCondition.
1287
- */
1288
- or(...filters:FilterCondition[]):FilterCondition;
1289
- /**
1290
- * a string suitable for debugging showing the details of this condition.
1291
- * @return String.
884
+ * Creates a new value for use in filters based on this column. Used either as a parameter to another filter
885
+ * operation, or as a builder to create a filter operation.
886
+ * @return {@link dh.FilterValue}
1292
887
  */
1293
- toString():string;
1294
- get columns():Array<Column>;
888
+ filter():FilterValue;
1295
889
  /**
1296
- * a filter condition invoking a static function with the given parameters. Currently supported Deephaven static
1297
- * functions:
1298
- * <ul>
1299
- * <li><b>inRange</b>: Given three comparable values, returns true if the first is less than the second but greater
1300
- * than the third</li>
1301
- * <li><b>isInf</b>:Returns true if the given number is <i>infinity</i></li>
1302
- * <li><b>isNaN</b>:Returns true if the given number is <i>not a number</i></li>
1303
- * <li><b>isNormal</b>:Returns true if the given number <i>is not null</i>, <i>is not infinity</i>, and <i>is not
1304
- * "not a number"</i></li>
1305
- * <li><b>startsWith</b>:Returns true if the first string starts with the second string</li>
1306
- * <li><b>endsWith</b>Returns true if the first string ends with the second string</li>
1307
- * <li><b>matches</b>:Returns true if the first string argument matches the second string used as a Java regular
1308
- * expression</li>
1309
- * <li><b>contains</b>:Returns true if the first string argument contains the second string as a substring</li>
1310
- * <li><b>in</b>:Returns true if the first string argument can be found in the second array argument.
1311
- * <p>
1312
- * Note that the array can only be specified as a column reference at this time - typically the `FilterValue.in`
1313
- * method should be used in other cases
1314
- * </p>
1315
- * </li>
1316
- * </ul>
1317
- * @param function -
1318
- * @param args -
1319
- * @return dh.FilterCondition
890
+ * a <b>CustomColumn</b> object to apply using `applyCustomColumns` with the expression specified.
891
+ * @param expression -
892
+ * @return {@link dh.CustomColumn}
1320
893
  */
1321
- static invoke(func:string, ...args:FilterValue[]):FilterCondition;
894
+ formatColor(expression:string):CustomColumn;
1322
895
  /**
1323
- * a filter condition which will check if the given value can be found in any supported column on whatever table
1324
- * this FilterCondition is passed to. This FilterCondition is somewhat unique in that it need not be given a column
1325
- * instance, but will adapt to any table. On numeric columns, with a value passed in which can be parsed as a
1326
- * number, the column will be filtered to numbers which equal, or can be "rounded" effectively to this number. On
1327
- * String columns, the given value will match any column which contains this string in a case-insensitive search. An
1328
- * optional second argument can be passed, an array of `FilterValue` from the columns to limit this search to (see
1329
- * {@link dh.Column.filter}).
1330
- * @param value -
1331
- * @param columns -
1332
- * @return dh.FilterCondition
1333
- */
1334
- static search(value:FilterValue, columns?:FilterValue[]):FilterCondition;
1335
- }
1336
-
1337
- /**
1338
- * This class allows iteration over non-contiguous indexes. In the future, this will support the EcmaScript 2015
1339
- * Iteration protocol, but for now has one method which returns an iterator, and also supports querying the size.
1340
- * Additionally, we may add support for creating RangeSet objects to better serve some use cases.
1341
- */
1342
- export class RangeSet {
1343
- protected constructor();
1344
-
1345
- static ofRange(first:number, last:number):RangeSet;
1346
- static ofItems(rows:number[]):RangeSet;
1347
- static ofRanges(ranges:RangeSet[]):RangeSet;
1348
- static ofSortedRanges(ranges:RangeSet[]):RangeSet;
896
+ * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
897
+ * @param expression -
898
+ * @return {@link dh.CustomColumn}
899
+ */
900
+ formatNumber(expression:string):CustomColumn;
1349
901
  /**
1350
- * a new iterator over all indexes in this collection.
1351
- * @return Iterator of {@link dh.LongWrapper}
902
+ * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
903
+ * @param expression -
904
+ * @return {@link dh.CustomColumn}
1352
905
  */
1353
- iterator():Iterator<LongWrapper>;
906
+ formatDate(expression:string):CustomColumn;
907
+ toString():string;
1354
908
  /**
1355
- * The total count of items contained in this collection. In some cases this can be expensive to compute, and
1356
- * generally should not be needed except for debugging purposes, or preallocating space (i.e., do not call this
1357
- * property each time through a loop).
1358
- * @return double
909
+ * Label for this column.
910
+ * @return String
1359
911
  */
1360
- get size():number;
1361
- }
1362
-
1363
- /**
1364
- * Configuration object for running Table.treeTable to produce a hierarchical view of a given "flat" table.
1365
- *
1366
- * Like TotalsTableConfig, `TreeTableConfig` supports an operation map indicating how to aggregate the data, as well as
1367
- * an array of column names which will be the layers in the roll-up tree, grouped at each level. An additional optional
1368
- * value can be provided describing the strategy the engine should use when grouping the rows.
1369
- */
1370
- export class TreeTableConfig {
912
+ get name():string;
1371
913
  /**
1372
- * The column representing the unique ID for each item
914
+ * True if this column is a partition column. Partition columns are used for filtering uncoalesced tables - see
915
+ * {@link Table.uncoalesced}.
916
+ * @return true if the column is a partition column
1373
917
  */
1374
- idColumn:string;
918
+ get isPartitionColumn():boolean;
1375
919
  /**
1376
- * The column representing the parent ID for each item
920
+ *
921
+ * @deprecated do not use. Internal index of the column in the table, to be used as a key on the Row.
922
+ * @return int
1377
923
  */
1378
- parentColumn:string;
924
+ get index():number;
925
+ get isSortable():boolean;
1379
926
  /**
1380
- * Optional parameter indicating if items with an invalid parent ID should be promoted to root. Defaults to false.
927
+ * Type of the row data that can be found in this column.
928
+ * @return String
1381
929
  */
1382
- promoteOrphansToRoot:boolean;
1383
-
1384
- constructor();
930
+ get type():string;
931
+ /**
932
+ * Format entire rows colors using the expression specified. Returns a <b>CustomColumn</b> object to apply to a
933
+ * table using <b>applyCustomColumns</b> with the parameters specified.
934
+ * @param expression -
935
+ * @return {@link dh.CustomColumn}
936
+ */
937
+ static formatRowColor(expression:string):CustomColumn;
938
+ /**
939
+ * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
940
+ * @param name -
941
+ * @param expression -
942
+ * @return {@link dh.CustomColumn}
943
+ */
944
+ static createCustomColumn(name:string, expression:string):CustomColumn;
1385
945
  }
1386
946
 
1387
947
  /**
@@ -1556,39 +1116,122 @@ export namespace dh {
1556
1116
  static ofBoolean(b:boolean):FilterValue;
1557
1117
  }
1558
1118
 
1119
+
1559
1120
  /**
1560
- * Presently, this is the entrypoint into the Deephaven JS API. By creating an instance of this with the server URL and
1561
- * some options, JS applications can run code on the server, and interact with available exportable objects.
1121
+ * Describes a Sort present on the table. No visible constructor, created through the use of Column.sort(), will be tied
1122
+ * to that particular column data. Sort instances are immutable, and use a builder pattern to make modifications. All
1123
+ * methods return a new Sort instance.
1562
1124
  */
1563
- export class IdeConnection implements HasEventHandling {
1125
+ export class Sort {
1126
+ static readonly ASCENDING:string;
1127
+ static readonly DESCENDING:string;
1128
+ static readonly REVERSE:string;
1129
+
1130
+ protected constructor();
1131
+
1564
1132
  /**
1565
- * @deprecated
1133
+ * Builds a Sort instance to sort values in ascending order.
1134
+ * @return {@link dh.Sort}
1566
1135
  */
1567
- static readonly HACK_CONNECTION_FAILURE:string;
1568
- static readonly EVENT_DISCONNECT:string;
1569
- static readonly EVENT_RECONNECT:string;
1570
- static readonly EVENT_SHUTDOWN:string;
1136
+ asc():Sort;
1137
+ /**
1138
+ * Builds a Sort instance to sort values in descending order.
1139
+ * @return {@link dh.Sort}
1140
+ */
1141
+ desc():Sort;
1142
+ /**
1143
+ * Builds a Sort instance which takes the absolute value before applying order.
1144
+ * @return {@link dh.Sort}
1145
+ */
1146
+ abs():Sort;
1147
+ toString():string;
1148
+ /**
1149
+ * True if the absolute value of the column should be used when sorting; defaults to false.
1150
+ * @return boolean
1151
+ */
1152
+ get isAbs():boolean;
1153
+ /**
1154
+ * The column which is sorted.
1155
+ * @return {@link dh.Column}
1156
+ */
1157
+ get column():Column;
1158
+ /**
1159
+ * The direction of this sort, either <b>ASC</b>, <b>DESC</b>, or <b>REVERSE</b>.
1160
+ * @return String
1161
+ */
1162
+ get direction():string;
1163
+ }
1571
1164
 
1165
+ /**
1166
+ * Wrap BigInteger values for use in JS. Provides text formatting for display and access to the underlying value.
1167
+ */
1168
+ export class BigIntegerWrapper {
1572
1169
  protected constructor();
1573
1170
 
1171
+ static ofString(str:string):BigIntegerWrapper;
1172
+ asNumber():number;
1173
+ valueOf():string;
1174
+ toString():string;
1175
+ }
1176
+
1177
+ /**
1178
+ * Describes a grouping and aggregations for a roll-up table. Pass to the <b>Table.rollup</b> function to create a
1179
+ * roll-up table.
1180
+ */
1181
+ export class RollupConfig {
1574
1182
  /**
1575
- * Closes the current connection, releasing any resources on the server or client.
1183
+ * Ordered list of columns to group by to form the hierarchy of the resulting roll-up table.
1184
+ */
1185
+ groupingColumns:Array<String>;
1186
+ /**
1187
+ * Mapping from each aggregation name to the ordered list of columns it should be applied to in the resulting
1188
+ * roll-up table.
1189
+ */
1190
+ aggregations:{ [key: string]: Array<string>; };
1191
+ /**
1192
+ * Optional parameter indicating if an extra leaf node should be added at the bottom of the hierarchy, showing the
1193
+ * rows in the underlying table which make up that grouping. Since these values might be a different type from the
1194
+ * rest of the column, any client code must check if TreeRow.hasChildren = false, and if so, interpret those values
1195
+ * as if they were Column.constituentType instead of Column.type. Defaults to false.
1196
+ */
1197
+ includeConstituents:boolean;
1198
+ includeOriginalColumns?:boolean|null;
1199
+ /**
1200
+ * Optional parameter indicating if original column descriptions should be included. Defaults to true.
1201
+ */
1202
+ includeDescriptions:boolean;
1203
+
1204
+ constructor();
1205
+ }
1206
+
1207
+ /**
1208
+ * This object serves as a "handle" to a subscription, allowing it to be acted on directly or canceled outright. If you
1209
+ * retain an instance of this, you have two choices - either only use it to call `close()` on it to stop the table's
1210
+ * viewport without creating a new one, or listen directly to this object instead of the table for data events, and
1211
+ * always call `close()` when finished. Calling any method on this object other than close() will result in it
1212
+ * continuing to live on after `setViewport` is called on the original table, or after the table is modified.
1213
+ */
1214
+ export class TableViewportSubscription implements HasEventHandling {
1215
+ protected constructor();
1216
+
1217
+ /**
1218
+ * Changes the rows and columns set on this viewport. This cannot be used to change the update interval.
1219
+ * @param firstRow -
1220
+ * @param lastRow -
1221
+ * @param columns -
1222
+ * @param updateIntervalMs -
1223
+ */
1224
+ setViewport(firstRow:number, lastRow:number, columns?:Column[]|undefined|null, updateIntervalMs?:number|undefined|null, isReverseViewport?:boolean|undefined|null):void;
1225
+ /**
1226
+ * Stops this viewport from running, stopping all events on itself and on the table that created it.
1576
1227
  */
1577
1228
  close():void;
1578
- running():Promise<IdeConnection>;
1579
- getObject(definitionObject:dh.ide.VariableDescriptor):Promise<any>;
1580
- subscribeToFieldUpdates(callback:(arg0:dh.ide.VariableChanges)=>void):()=>void;
1581
1229
  /**
1582
- * Register a callback function to handle any log messages that are emitted on the server. Returns a function ,
1583
- * which can be invoked to remove this log handler. Any log handler registered in this way will receive as many old
1584
- * log messages as are presently available.
1585
- * @param callback -
1586
- * @return {@link io.deephaven.web.shared.fu.JsRunnable}
1230
+ * Gets the data currently visible in this viewport
1231
+ * @return Promise of {@link dh.TableData}.
1587
1232
  */
1588
- onLogMessage(callback:(arg0:dh.ide.LogItem)=>void):()=>void;
1589
- startSession(type:string):Promise<IdeSession>;
1590
- getConsoleTypes():Promise<Array<string>>;
1591
- getWorkerHeapInfo():Promise<WorkerHeapInfo>;
1233
+ getViewportData():Promise<ViewportData>;
1234
+ snapshot(rows:RangeSet, columns:Column[]):Promise<TableData>;
1592
1235
  /**
1593
1236
  * Listen for events on this object.
1594
1237
  * @param name - the name of the event to listen for
@@ -1609,419 +1252,499 @@ export namespace dh {
1609
1252
  removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
1610
1253
  }
1611
1254
 
1612
- export class LongWrapper {
1613
- protected constructor();
1255
+ /**
1256
+ * Configuration object for running Table.treeTable to produce a hierarchical view of a given "flat" table.
1257
+ *
1258
+ * Like TotalsTableConfig, `TreeTableConfig` supports an operation map indicating how to aggregate the data, as well as
1259
+ * an array of column names which will be the layers in the roll-up tree, grouped at each level. An additional optional
1260
+ * value can be provided describing the strategy the engine should use when grouping the rows.
1261
+ */
1262
+ export class TreeTableConfig {
1263
+ /**
1264
+ * The column representing the unique ID for each item
1265
+ */
1266
+ idColumn:string;
1267
+ /**
1268
+ * The column representing the parent ID for each item
1269
+ */
1270
+ parentColumn:string;
1271
+ /**
1272
+ * Optional parameter indicating if items with an invalid parent ID should be promoted to root. Defaults to false.
1273
+ */
1274
+ promoteOrphansToRoot:boolean;
1614
1275
 
1615
- static ofString(str:string):LongWrapper;
1616
- asNumber():number;
1617
- valueOf():string;
1618
- toString():string;
1276
+ constructor();
1619
1277
  }
1620
1278
 
1621
1279
  /**
1622
- * Represents a non-viewport subscription to a table, and all data currently known to be present in the subscribed
1623
- * columns. This class handles incoming snapshots and deltas, and fires events to consumers to notify of data changes.
1624
- *
1625
- * Unlike {@link dh.TableViewportSubscription}, the "original" table does not have a reference to this instance, only the
1626
- * "private" table instance does, since the original cannot modify the subscription, and the private instance must
1627
- * forward data to it.
1280
+ * Describes how a Totals Table will be generated from its parent table. Each table has a default (which may be null)
1281
+ * indicating how that table was configured when it was declared, and each Totals Table has a similar property
1282
+ * describing how it was created. Both the <b>Table.getTotalsTable</b> and <b>Table.getGrandTotalsTable</b> methods take
1283
+ * this config as an optional parameter - without it, the table's default will be used, or if null, a default instance
1284
+ * of <b>TotalsTableConfig</b> will be supplied.
1628
1285
  *
1629
- * Represents a subscription to the table on the server. Changes made to the table will not be reflected here - the
1630
- * subscription must be closed and a new one optioned to see those changes. The event model is slightly different from
1631
- * viewports to make it less expensive to compute for large tables.
1286
+ * This class has a no-arg constructor, allowing an instance to be made with the default values provided. However, any
1287
+ * JS object can be passed in to the methods which accept instances of this type, provided their values adhere to the
1288
+ * expected formats.
1632
1289
  */
1633
- export class TableSubscription implements HasEventHandling {
1634
- protected constructor();
1635
-
1290
+ export class TotalsTableConfig {
1636
1291
  /**
1637
- * Updates the subscription to use the given columns and update interval.
1638
- * @param columns - the new columns to subscribe to
1639
- * @param updateIntervalMs - the new update interval, or null/omit to use the default of one second
1292
+ * @deprecated
1293
+ */
1294
+ static readonly COUNT:string;
1295
+ /**
1296
+ * @deprecated
1297
+ */
1298
+ static readonly MIN:string;
1299
+ /**
1300
+ * @deprecated
1301
+ */
1302
+ static readonly MAX:string;
1303
+ /**
1304
+ * @deprecated
1305
+ */
1306
+ static readonly SUM:string;
1307
+ /**
1308
+ * @deprecated
1309
+ */
1310
+ static readonly ABS_SUM:string;
1311
+ /**
1312
+ * @deprecated
1640
1313
  */
1641
- changeSubscription(columns:Array<Column>, updateIntervalMs:number|undefined|null):void;
1642
- get columns():Array<Column>;
1314
+ static readonly VAR:string;
1643
1315
  /**
1644
- * Listen for events on this object.
1645
- * @param name - the name of the event to listen for
1646
- * @param callback - a function to call when the event occurs
1647
- * @return Returns a cleanup function.
1648
- * @typeParam T - the type of the data that the event will provide
1316
+ * @deprecated
1649
1317
  */
1650
- addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
1651
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<Event<T>>;
1652
- hasListeners(name:string):boolean;
1318
+ static readonly AVG:string;
1653
1319
  /**
1654
- * Removes an event listener added to this table.
1655
- * @param name -
1656
- * @param callback -
1657
- * @return
1658
- * @typeParam T -
1320
+ * @deprecated
1659
1321
  */
1660
- removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
1661
- }
1662
-
1663
- export class CustomColumn {
1664
- static readonly TYPE_FORMAT_COLOR:string;
1665
- static readonly TYPE_FORMAT_NUMBER:string;
1666
- static readonly TYPE_FORMAT_DATE:string;
1667
- static readonly TYPE_NEW:string;
1668
-
1669
- protected constructor();
1670
-
1671
- valueOf():string;
1672
- toString():string;
1322
+ static readonly STD:string;
1673
1323
  /**
1674
- * The expression to evaluate this custom column.
1675
- * @return String
1324
+ * @deprecated
1676
1325
  */
1677
- get expression():string;
1326
+ static readonly FIRST:string;
1678
1327
  /**
1679
- * The name of the column to use.
1680
- * @return String
1328
+ * @deprecated
1681
1329
  */
1682
- get name():string;
1330
+ static readonly LAST:string;
1683
1331
  /**
1684
- * Type of custom column. One of
1685
- *
1686
- * <ul>
1687
- * <li>FORMAT_COLOR</li>
1688
- * <li>FORMAT_NUMBER</li>
1689
- * <li>FORMAT_DATE</li>
1690
- * <li>NEW</li>
1691
- * </ul>
1692
- * @return String
1332
+ * @deprecated
1693
1333
  */
1694
- get type():string;
1695
- }
1696
-
1697
- /**
1698
- * Provides access to data in a table. Note that several methods present their response through Promises. This allows
1699
- * the client to both avoid actually connecting to the server until necessary, and also will permit some changes not to
1700
- * inform the UI right away that they have taken place.
1701
- */
1702
- export class Table implements JoinableTable, HasEventHandling {
1703
- readonly description?:string|null;
1704
- readonly pluginName?:string|null;
1705
- readonly layoutHints?:null|LayoutHints;
1334
+ static readonly SKIP:string;
1706
1335
  /**
1707
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1336
+ * Specifies if a Totals Table should be expanded by default in the UI. Defaults to false.
1708
1337
  */
1709
- static readonly EVENT_SIZECHANGED:string;
1338
+ showTotalsByDefault:boolean;
1710
1339
  /**
1711
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1340
+ * Specifies if a Grand Totals Table should be expanded by default in the UI. Defaults to false.
1712
1341
  */
1713
- static readonly EVENT_UPDATED:string;
1342
+ showGrandTotalsByDefault:boolean;
1714
1343
  /**
1715
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1344
+ * Specifies the default operation for columns that do not have a specific operation applied; defaults to "Sum".
1716
1345
  */
1717
- static readonly EVENT_ROWADDED:string;
1346
+ defaultOperation:AggregationOperationType;
1718
1347
  /**
1719
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1348
+ * Mapping from each column name to the aggregation(s) that should be applied to that column in the resulting Totals
1349
+ * Table. If a column is omitted, the defaultOperation is used.
1720
1350
  */
1721
- static readonly EVENT_ROWREMOVED:string;
1351
+ operationMap:{ [key: string]: Array<AggregationOperationType>; };
1722
1352
  /**
1723
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1353
+ * Groupings to use when generating the Totals Table. One row will exist for each unique set of values observed in
1354
+ * these columns. See also `Table.selectDistinct`.
1724
1355
  */
1725
- static readonly EVENT_ROWUPDATED:string;
1356
+ groupBy:Array<string>;
1357
+
1358
+ constructor();
1359
+
1360
+ toString():string;
1361
+ }
1362
+
1363
+ /**
1364
+ * Deprecated for use in Deephaven Core.
1365
+ * @deprecated
1366
+ */
1367
+ export class Client {
1368
+ static readonly EVENT_REQUEST_FAILED:string;
1369
+ static readonly EVENT_REQUEST_STARTED:string;
1370
+ static readonly EVENT_REQUEST_SUCCEEDED:string;
1371
+
1372
+ constructor();
1373
+ }
1374
+
1375
+ /**
1376
+ * Exists to keep the dh.TableMap namespace so that the web UI can remain compatible with the DHE API, which still calls
1377
+ * this type TableMap.
1378
+ * @deprecated
1379
+ */
1380
+ export class TableMap {
1381
+ static readonly EVENT_KEYADDED:string;
1382
+ static readonly EVENT_DISCONNECT:string;
1383
+ static readonly EVENT_RECONNECT:string;
1384
+ static readonly EVENT_RECONNECTFAILED:string;
1385
+
1386
+ protected constructor();
1387
+ }
1388
+
1389
+ /**
1390
+ * This class allows iteration over non-contiguous indexes. In the future, this will support the EcmaScript 2015
1391
+ * Iteration protocol, but for now has one method which returns an iterator, and also supports querying the size.
1392
+ * Additionally, we may add support for creating RangeSet objects to better serve some use cases.
1393
+ */
1394
+ export class RangeSet {
1395
+ protected constructor();
1396
+
1397
+ static ofRange(first:number, last:number):RangeSet;
1398
+ static ofItems(rows:number[]):RangeSet;
1399
+ static ofRanges(ranges:RangeSet[]):RangeSet;
1400
+ static ofSortedRanges(ranges:RangeSet[]):RangeSet;
1726
1401
  /**
1727
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1402
+ * a new iterator over all indexes in this collection.
1403
+ * @return Iterator of {@link dh.LongWrapper}
1728
1404
  */
1729
- static readonly EVENT_SORTCHANGED:string;
1405
+ iterator():Iterator<LongWrapper>;
1730
1406
  /**
1731
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1407
+ * The total count of items contained in this collection. In some cases this can be expensive to compute, and
1408
+ * generally should not be needed except for debugging purposes, or preallocating space (i.e., do not call this
1409
+ * property each time through a loop).
1410
+ * @return double
1732
1411
  */
1733
- static readonly EVENT_FILTERCHANGED:string;
1412
+ get size():number;
1413
+ }
1414
+
1415
+ /**
1416
+ * Behaves like a {@link dh.Table} externally, but data, state, and viewports are managed by an entirely different
1417
+ * mechanism, and so reimplemented here.
1418
+ * <p>
1419
+ * Any time a change is made, we build a new request and send it to the server, and wait for the updated state.
1420
+ * <p>
1421
+ * Semantics around getting updates from the server are slightly different - we don't "unset" the viewport here after
1422
+ * operations are performed, but encourage the client code to re-set them to the desired position.
1423
+ * <p>
1424
+ * The table size will be -1 until a viewport has been fetched.
1425
+ * <p>
1426
+ * Similar to a table, a Tree Table provides access to subscribed viewport data on the current hierarchy. A different
1427
+ * Row type is used within that viewport, showing the depth of that node within the tree and indicating details about
1428
+ * whether it has children or is expanded. The Tree Table itself then provides the ability to change if a row is
1429
+ * expanded or not. Methods used to control or check if a row should be expanded or not can be invoked on a TreeRow
1430
+ * instance, or on the number of the row (thus allowing for expanding/collapsing rows which are not currently visible in
1431
+ * the viewport).
1432
+ * <p>
1433
+ * Events and viewports are somewhat different from tables, due to the expense of computing the expanded/collapsed rows
1434
+ * and count of children at each level of the hierarchy, and differences in the data that is available.
1435
+ * <p>
1436
+ * <ul>
1437
+ * <li>There is no {@link Table.totalSize | totalSize} property.</li>
1438
+ * <li>The viewport is not un-set when changes are made to filter or sort, but changes will continue to be streamed in.
1439
+ * It is suggested that the viewport be changed to the desired position (usually the first N rows) after any filter/sort
1440
+ * change is made. Likewise, {@link getViewportData} will always return the most recent data, and will not wait if a
1441
+ * new operation is pending.</li>
1442
+ * <li>Custom columns are not directly supported. If the TreeTable was created client-side, the original Table can have
1443
+ * custom columns applied, and the TreeTable can be recreated.</li>
1444
+ * <li>Whereas Table has a {@link Table.totalsTableConfig} property, it is defined here as a method,
1445
+ * {@link getTotalsTableConfig}. This returns a promise so the config can be fetched asynchronously.</li>
1446
+ * <li>Totals Tables for trees vary in behavior between tree tables and roll-up tables. This behavior is based on the
1447
+ * original flat table used to produce the Tree Table - for a hierarchical table (i.e. Table.treeTable in the query
1448
+ * config), the totals will include non-leaf nodes (since they are themselves actual rows in the table), but in a
1449
+ * roll-up table, the totals only include leaf nodes (as non-leaf nodes are generated through grouping the contents of
1450
+ * the original table). Roll-ups also have the {@link dh.includeConstituents} property, indicating that a
1451
+ * {@link dh.Column} in the tree may have a {@link Column.constituentType} property reflecting that the type of cells
1452
+ * where {@link TreeRowImpl.hasChildren} is false will be different from usual.</li>
1453
+ * </ul>
1454
+ */
1455
+ export class TreeTable implements HasEventHandling {
1734
1456
  /**
1735
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1457
+ * event.detail is the currently visible viewport data based on the active viewport configuration.
1736
1458
  */
1737
- static readonly EVENT_CUSTOMCOLUMNSCHANGED:string;
1459
+ static readonly EVENT_UPDATED:string;
1738
1460
  /**
1739
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1461
+ * event.detail is the currently visible viewport data based on the active viewport configuration.
1740
1462
  */
1741
1463
  static readonly EVENT_DISCONNECT:string;
1742
1464
  /**
1743
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1465
+ * event.detail is the currently visible viewport data based on the active viewport configuration.
1744
1466
  */
1745
1467
  static readonly EVENT_RECONNECT:string;
1746
1468
  /**
1747
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1469
+ * event.detail is the currently visible viewport data based on the active viewport configuration.
1748
1470
  */
1749
1471
  static readonly EVENT_RECONNECTFAILED:string;
1750
1472
  /**
1751
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1473
+ * event.detail is the currently visible viewport data based on the active viewport configuration.
1752
1474
  */
1753
1475
  static readonly EVENT_REQUEST_FAILED:string;
1754
- /**
1755
- * The table size has updated, so live scrollbars and the like can be updated accordingly.
1756
- */
1757
- static readonly EVENT_REQUEST_SUCCEEDED:string;
1758
- /**
1759
- * The size the table will have if it is uncoalesced.
1760
- */
1761
- static readonly SIZE_UNCOALESCED:number;
1476
+ readonly description?:string|null;
1477
+ readonly layoutHints?:null|LayoutHints;
1762
1478
 
1763
1479
  protected constructor();
1764
1480
 
1765
- batch(userCode:(arg0:unknown)=>void):Promise<Table>;
1766
1481
  /**
1767
- * Retrieve a column by the given name. You should prefer to always retrieve a new Column instance instead of
1768
- * caching a returned value.
1769
- * @param key -
1770
- * @return {@link dh.Column}
1482
+ * Expands the given node, so that its children are visible when they are in the viewport. The parameter can be the
1483
+ * row index, or the row object itself. The second parameter is a boolean value, false by default, specifying if the
1484
+ * row and all descendants should be fully expanded. Equivalent to `setExpanded(row, true)` with an optional third
1485
+ * boolean parameter.
1486
+ * @param row -
1487
+ * @param expandDescendants -
1771
1488
  */
1772
- findColumn(key:string):Column;
1489
+ expand(row:TreeRow|number, expandDescendants?:boolean):void;
1773
1490
  /**
1774
- * Retrieve multiple columns specified by the given names.
1775
- * @param keys -
1776
- * @return {@link dh.Column} array
1491
+ * Collapses the given node, so that its children and descendants are not visible in the size or the viewport. The
1492
+ * parameter can be the row index, or the row object itself. Equivalent to <b>setExpanded(row, false, false)</b>.
1493
+ * @param row -
1777
1494
  */
1778
- findColumns(keys:string[]):Column[];
1779
- isBlinkTable():boolean;
1495
+ collapse(row:TreeRow|number):void;
1780
1496
  /**
1781
- * If .hasInputTable is true, you may call this method to gain access to an InputTable object which can be used to
1782
- * mutate the data within the table. If the table is not an Input Table, the promise will be immediately rejected.
1783
- * @return Promise of dh.InputTable
1497
+ * Specifies if the given node should be expanded or collapsed. If this node has children, and the value is changed,
1498
+ * the size of the table will change. If node is to be expanded and the third parameter, <b>expandDescendants</b>,
1499
+ * is true, then its children will also be expanded.
1500
+ * @param row - the row to expand or collapse, either the absolute row index or the row object
1501
+ * @param isExpanded - true to expand the row, false to collapse
1502
+ * @param expandDescendants - true to expand the row and all descendants, false to expand only the row, defaults to
1503
+ * false
1784
1504
  */
1785
- inputTable():Promise<InputTable>;
1505
+ setExpanded(row:TreeRow|number, isExpanded:boolean, expandDescendants?:boolean):void;
1506
+ expandAll():void;
1507
+ collapseAll():void;
1786
1508
  /**
1787
- * Indicates that this Table instance will no longer be used, and its connection to the server can be cleaned up.
1509
+ * Tests if the specified row is expanded.
1510
+ * @param row - the row to test, either the absolute row index or the row object
1511
+ * @return boolean true if the row is expanded, false otherwise
1788
1512
  */
1789
- close():void;
1790
- getAttributes():string[];
1513
+ isExpanded(row:TreeRow|number):boolean;
1514
+ setViewport(firstRow:number, lastRow:number, columns?:Array<Column>|undefined|null, updateInterval?:number|undefined|null):void;
1515
+ getViewportData():Promise<TreeViewportData>;
1791
1516
  /**
1792
- * null if no property exists, a string if it is an easily serializable property, or a ```Promise
1793
- * &lt;Table&gt;``` that will either resolve with a table or error out if the object can't be passed to JS.
1794
- * @param attributeName -
1795
- * @return Object
1517
+ * Indicates that the table will no longer be used, and server resources can be freed.
1796
1518
  */
1797
- getAttribute(attributeName:string):unknown|undefined|null;
1519
+ close():void;
1798
1520
  /**
1799
- * Replace the currently set sort on this table. Returns the previously set value. Note that the sort property will
1800
- * immediately return the new value, but you may receive update events using the old sort before the new sort is
1801
- * applied, and the <b>sortchanged</b> event fires. Reusing existing, applied sorts may enable this to perform
1802
- * better on the server. The <b>updated</b> event will also fire, but <b>rowadded</b> and <b>rowremoved</b> will
1803
- * not.
1521
+ * Applies the given sort to all levels of the tree. Returns the previous sort in use.
1804
1522
  * @param sort -
1805
1523
  * @return {@link dh.Sort} array
1806
1524
  */
1807
1525
  applySort(sort:Sort[]):Array<Sort>;
1808
1526
  /**
1809
- * Replace the currently set filters on the table. Returns the previously set value. Note that the filter property
1810
- * will immediately return the new value, but you may receive update events using the old filter before the new one
1811
- * is applied, and the <b>filterchanged</b> event fires. Reusing existing, applied filters may enable this to
1812
- * perform better on the server. The <b>updated</b> event will also fire, but <b>rowadded</b> and <b>rowremoved</b>
1813
- * will not.
1527
+ * Applies the given filter to the contents of the tree in such a way that if any node is visible, then any parent
1528
+ * node will be visible as well even if that parent node would not normally be visible due to the filter's
1529
+ * condition. Returns the previous sort in use.
1814
1530
  * @param filter -
1815
1531
  * @return {@link dh.FilterCondition} array
1816
1532
  */
1817
1533
  applyFilter(filter:FilterCondition[]):Array<FilterCondition>;
1818
1534
  /**
1819
- * used when adding new filter and sort operations to the table, as long as they are present.
1820
- * @param customColumns -
1821
- * @return {@link dh.CustomColumn} array
1535
+ * a column with the given name, or throws an exception if it cannot be found
1536
+ * @param key -
1537
+ * @return {@link dh.Column}
1822
1538
  */
1823
- applyCustomColumns(customColumns:Array<string|CustomColumn>):Array<CustomColumn>;
1539
+ findColumn(key:string):Column;
1824
1540
  /**
1825
- * If the columns parameter is not provided, all columns will be used. If the updateIntervalMs parameter is not
1826
- * provided, a default of one second will be used. Until this is called, no data will be available. Invoking this
1827
- * will result in events to be fired once data becomes available, starting with an `updated` event and a
1828
- * <b>rowadded</b> event per row in that range. The returned object allows the viewport to be closed when no longer
1829
- * needed.
1830
- * @param firstRow -
1831
- * @param lastRow -
1832
- * @param columns -
1833
- * @param updateIntervalMs -
1834
- * @return {@link dh.TableViewportSubscription}
1541
+ * an array with all of the named columns in order, or throws an exception if one cannot be found.
1542
+ * @param keys -
1543
+ * @return {@link dh.Column} array
1835
1544
  */
1836
- setViewport(firstRow:number, lastRow:number, columns?:Array<Column>|undefined|null, updateIntervalMs?:number|undefined|null, isReverseViewport?:boolean|undefined|null):TableViewportSubscription;
1545
+ findColumns(keys:string[]):Column[];
1837
1546
  /**
1838
- * Gets the currently visible viewport. If the current set of operations has not yet resulted in data, it will not
1839
- * resolve until that data is ready. If this table is closed before the promise resolves, it will be rejected - to
1840
- * separate the lifespan of this promise from the table itself, call
1841
- * {@link TableViewportSubscription.getViewportData} on the result from {@link Table.setViewport}.
1842
- * @return Promise of {@link dh.TableData}
1547
+ * Provides Table-like selectDistinct functionality, but with a few quirks, since it is only fetching the distinct
1548
+ * values for the given columns in the source table:
1549
+ * <ul>
1550
+ * <li>Rollups may make no sense, since values are aggregated.</li>
1551
+ * <li>Values found on orphaned (and removed) nodes will show up in the resulting table, even though they are not in
1552
+ * the tree.</li>
1553
+ * <li>Values found on parent nodes which are only present in the tree since a child is visible will not be present
1554
+ * in the resulting table.</li>
1555
+ * </ul>
1843
1556
  */
1844
- getViewportData():Promise<ViewportData>;
1557
+ selectDistinct(columns:Column[]):Promise<Table>;
1558
+ getTotalsTableConfig():Promise<TotalsTableConfig>;
1559
+ getTotalsTable(config?:object):Promise<TotalsTable>;
1560
+ getGrandTotalsTable(config?:object):Promise<TotalsTable>;
1845
1561
  /**
1846
- * Creates a subscription to the specified columns, across all rows in the table. The optional parameter
1847
- * updateIntervalMs may be specified to indicate how often the server should send updates, defaulting to one second
1848
- * if omitted. Useful for charts or taking a snapshot of the table atomically. The initial snapshot will arrive in a
1849
- * single event, but later changes will be sent as updates. However, this may still be very expensive to run from a
1850
- * browser for very large tables. Each call to subscribe creates a new subscription, which must have <b>close()</b>
1851
- * called on it to stop it, and all events are fired from the TableSubscription instance.
1852
- * @param columns -
1853
- * @param updateIntervalMs -
1854
- * @return {@link dh.TableSubscription}
1562
+ * a new copy of this treetable, so it can be sorted and filtered separately, and maintain a different viewport.
1563
+ * Unlike Table, this will _not_ copy the filter or sort, since tree table viewport semantics differ, and without a
1564
+ * viewport set, the treetable doesn't evaluate these settings, and they aren't readable on the properties. Expanded
1565
+ * state is also not copied.
1566
+ * @return Promise of dh.TreeTable
1855
1567
  */
1856
- subscribe(columns:Array<Column>, updateIntervalMs?:number):TableSubscription;
1568
+ copy():Promise<TreeTable>;
1857
1569
  /**
1858
- * a new table containing the distinct tuples of values from the given columns that are present in the original
1859
- * table. This table can be manipulated as any other table. Sorting is often desired as the default sort is the
1860
- * order of appearance of values from the original table.
1861
- * @param columns -
1862
- * @return Promise of dh.Table
1570
+ * The current filter configuration of this Tree Table.
1571
+ * @return {@link dh.FilterCondition} array
1863
1572
  */
1864
- selectDistinct(columns:Column[]):Promise<Table>;
1573
+ get filter():Array<FilterCondition>;
1865
1574
  /**
1866
- * Creates a new copy of this table, so it can be sorted and filtered separately, and maintain a different viewport.
1867
- * @return Promise of dh.Table
1575
+ * True if this is a roll-up and will provide the original rows that make up each grouping.
1576
+ * @return boolean
1868
1577
  */
1869
- copy():Promise<Table>;
1578
+ get includeConstituents():boolean;
1579
+ get groupedColumns():Array<Column>;
1870
1580
  /**
1871
- * a promise that will resolve to a Totals Table of this table. This table will obey the configurations provided as
1872
- * a parameter, or will use the table's default if no parameter is provided, and be updated once per second as
1873
- * necessary. Note that multiple calls to this method will each produce a new TotalsTable which must have close()
1874
- * called on it when not in use.
1875
- * @param config -
1876
- * @return Promise of dh.TotalsTable
1581
+ * True if this table has been closed.
1582
+ * @return boolean
1877
1583
  */
1878
- getTotalsTable(config?:TotalsTableConfig|undefined|null):Promise<TotalsTable>;
1584
+ get isClosed():boolean;
1879
1585
  /**
1880
- * a promise that will resolve to a Totals Table of this table, ignoring any filters. See <b>getTotalsTable()</b>
1881
- * above for more specifics.
1882
- * @param config -
1883
- * @return promise of dh.TotalsTable
1586
+ * The current number of rows given the table's contents and the various expand/collapse states of each node. (No
1587
+ * totalSize is provided at this time; its definition becomes unclear between roll-up and tree tables, especially
1588
+ * when considering collapse/expand states).
1589
+ * @return double
1884
1590
  */
1885
- getGrandTotalsTable(config?:TotalsTableConfig|undefined|null):Promise<TotalsTable>;
1591
+ get size():number;
1886
1592
  /**
1887
- * a promise that will resolve to a new roll-up <b>TreeTable</b> of this table. Multiple calls to this method will
1888
- * each produce a new <b>TreeTable</b> which must have close() called on it when not in use.
1889
- * @param configObject -
1890
- * @return Promise of dh.TreeTable
1593
+ * The columns that can be shown in this Tree Table.
1594
+ * @return {@link dh.Column} array
1891
1595
  */
1892
- rollup(configObject:RollupConfig):Promise<TreeTable>;
1596
+ get columns():Array<Column>;
1893
1597
  /**
1894
- * a promise that will resolve to a new `TreeTable` of this table. Multiple calls to this method will each produce a
1895
- * new `TreeTable` which must have close() called on it when not in use.
1896
- * @param configObject -
1897
- * @return Promise dh.TreeTable
1598
+ * The current sort configuration of this Tree Table
1599
+ * @return {@link dh.Sort} array.
1898
1600
  */
1899
- treeTable(configObject:TreeTableConfig):Promise<TreeTable>;
1601
+ get sort():Array<Sort>;
1900
1602
  /**
1901
- * a "frozen" version of this table (a server-side snapshot of the entire source table). Viewports on the frozen
1902
- * table will not update. This does not change the original table, and the new table will not have any of the client
1903
- * side sorts/filters/columns. New client side sorts/filters/columns can be added to the frozen copy.
1904
- * @return Promise of dh.Table
1603
+ * True if this table may receive updates from the server, including size changed events, updated events after
1604
+ * initial snapshot.
1605
+ * @return boolean
1905
1606
  */
1906
- freeze():Promise<Table>;
1907
- snapshot(baseTable:Table, doInitialSnapshot?:boolean, stampColumns?:string[]):Promise<Table>;
1607
+ get isRefreshing():boolean;
1908
1608
  /**
1909
- *
1910
- * @inheritDoc
1911
- * @deprecated
1609
+ * Listen for events on this object.
1610
+ * @param name - the name of the event to listen for
1611
+ * @param callback - a function to call when the event occurs
1612
+ * @return Returns a cleanup function.
1613
+ * @typeParam T - the type of the data that the event will provide
1912
1614
  */
1913
- join(joinType:string, rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:string|undefined|null):Promise<Table>;
1914
- asOfJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:string|undefined|null):Promise<Table>;
1915
- crossJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, reserveBits?:number|undefined|null):Promise<Table>;
1916
- exactJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
1917
- naturalJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
1918
- byExternal(keys:object, dropKeys?:boolean):Promise<PartitionedTable>;
1615
+ addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
1616
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<Event<T>>;
1617
+ hasListeners(name:string):boolean;
1919
1618
  /**
1920
- * Creates a new PartitionedTable from the contents of the current table, partitioning data based on the specified
1921
- * keys.
1922
- * @param keys -
1923
- * @param dropKeys -
1924
- * @return Promise dh.PartitionedTable
1619
+ * Removes an event listener added to this table.
1620
+ * @param name -
1621
+ * @param callback -
1622
+ * @return
1623
+ * @typeParam T -
1925
1624
  */
1926
- partitionBy(keys:object, dropKeys?:boolean):Promise<PartitionedTable>;
1625
+ removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
1626
+ }
1627
+
1628
+ /**
1629
+ * A js type for operating on input tables.
1630
+ *
1631
+ * Represents a User Input Table, which can have data added to it from other sources.
1632
+ *
1633
+ * You may add rows using dictionaries of key-value tuples (representing columns by name), add tables containing all the
1634
+ * key/value columns to add, or delete tables containing the keys to delete. Each operation is atomic, and will either
1635
+ * succeed completely or fail completely. To guarantee order of operations, apply an operation and wait for the response
1636
+ * before sending the next operation.
1637
+ *
1638
+ * Each table has one or more key columns, where each unique combination of keys will appear at most once in the table.
1639
+ *
1640
+ * To view the results of the Input Table, you should use standard table operations on the InputTable's source Table
1641
+ * object.
1642
+ */
1643
+ export class InputTable {
1644
+ protected constructor();
1645
+
1927
1646
  /**
1928
- * a promise that will resolve to ColumnStatistics for the column of this table.
1929
- * @param column -
1930
- * @return Promise of dh.ColumnStatistics
1647
+ * Adds a single row to the table. For each key or value column name in the Input Table, we retrieve that javascript
1648
+ * property at that name and validate it can be put into the given column type.
1649
+ * @param row -
1650
+ * @param userTimeZone -
1651
+ * @return Promise of dh.InputTable
1931
1652
  */
1932
- getColumnStatistics(column:Column):Promise<ColumnStatistics>;
1653
+ addRow(row:{ [key: string]: any; }, userTimeZone?:string):Promise<InputTable>;
1933
1654
  /**
1934
- * Seek the row matching the data provided
1935
- * @param startingRow - Row to start the seek from
1936
- * @param column - Column to seek for value on
1937
- * @param valueType - Type of value provided
1938
- * @param seekValue - Value to seek
1939
- * @param insensitive - Optional value to flag a search as case-insensitive. Defaults to `false`.
1940
- * @param contains - Optional value to have the seek value do a contains search instead of exact equality. Defaults to
1941
- * `false`.
1942
- * @param isBackwards - Optional value to seek backwards through the table instead of forwards. Defaults to `false`.
1943
- * @return A promise that resolves to the row value found.
1655
+ * Add multiple rows to a table.
1656
+ * @param rows -
1657
+ * @param userTimeZone -
1658
+ * @return Promise of dh.InputTable
1944
1659
  */
1945
- seekRow(startingRow:number, column:Column, valueType:ValueTypeType, seekValue:any, insensitive?:boolean|undefined|null, contains?:boolean|undefined|null, isBackwards?:boolean|undefined|null):Promise<number>;
1946
- toString():string;
1660
+ addRows(rows:{ [key: string]: any; }[], userTimeZone?:string):Promise<InputTable>;
1947
1661
  /**
1948
- * True if this table represents a user Input Table (created by InputTable.newInputTable). When true, you may call
1949
- * .inputTable() to add or remove data from the underlying table.
1950
- * @return boolean
1662
+ * Add an entire table to this Input Table. Only column names that match the definition of the input table will be
1663
+ * copied, and all key columns must have values filled in. This only copies the current state of the source table;
1664
+ * future updates to the source table will not be reflected in the Input Table. The returned promise will be
1665
+ * resolved to the same InputTable instance this method was called upon once the server returns.
1666
+ * @param tableToAdd -
1667
+ * @return Promise of dh.InputTable
1951
1668
  */
1952
- get hasInputTable():boolean;
1669
+ addTable(tableToAdd:Table):Promise<InputTable>;
1953
1670
  /**
1954
- * The columns that are present on this table. This is always all possible columns. If you specify fewer columns in
1955
- * .setViewport(), you will get only those columns in your ViewportData. <b>Number size</b> The total count of rows
1956
- * in the table. The size can and will change; see the <b>sizechanged</b> event for details. Size will be negative
1957
- * in exceptional cases (eg. the table is uncoalesced, see the <b>isUncoalesced</b> property for details).
1958
- * @return {@link dh.Column} array
1671
+ * Add multiple tables to this Input Table.
1672
+ * @param tablesToAdd -
1673
+ * @return Promise of dh.InputTable
1959
1674
  */
1960
- get columns():Array<Column>;
1675
+ addTables(tablesToAdd:Table[]):Promise<InputTable>;
1961
1676
  /**
1962
- * The default configuration to be used when building a <b>TotalsTable</b> for this table.
1963
- * @return dh.TotalsTableConfig
1677
+ * Deletes an entire table from this Input Table. Key columns must match the Input Table.
1678
+ * @param tableToDelete -
1679
+ * @return Promise of dh.InputTable
1964
1680
  */
1965
- get totalsTableConfig():TotalsTableConfig;
1681
+ deleteTable(tableToDelete:Table):Promise<InputTable>;
1966
1682
  /**
1967
- * An ordered list of Sorts to apply to the table. To update, call <b>applySort()</b>. Note that this getter will
1968
- * return the new value immediately, even though it may take a little time to update on the server. You may listen
1969
- * for the <b>sortchanged</b> event to know when to update the UI.
1970
- * @return {@link dh.Sort} array
1683
+ * Delete multiple tables from this Input Table.
1684
+ * @param tablesToDelete -
1685
+ * @return
1686
+ */
1687
+ deleteTables(tablesToDelete:Table[]):Promise<InputTable>;
1688
+ /**
1689
+ * A list of the key columns, by name
1690
+ * @return String array.
1971
1691
  */
1972
- get sort():Array<Sort>;
1692
+ get keys():string[];
1973
1693
  /**
1974
- * An ordered list of custom column formulas to add to the table, either adding new columns or replacing existing
1975
- * ones. To update, call <b>applyCustomColumns()</b>.
1976
- * @return {@link dh.CustomColumn} array
1694
+ * A list of the value columns, by name
1695
+ * @return String array.
1977
1696
  */
1978
- get customColumns():Array<CustomColumn>;
1697
+ get values():string[];
1979
1698
  /**
1980
- * True if this table may receive updates from the server, including size changed events, updated events after
1981
- * initial snapshot.
1982
- * @return boolean
1699
+ * A list of the key columns.
1700
+ * @return Column array.
1983
1701
  */
1984
- get isRefreshing():boolean;
1702
+ get keyColumns():Column[];
1985
1703
  /**
1986
- * An ordered list of Filters to apply to the table. To update, call applyFilter(). Note that this getter will
1987
- * return the new value immediately, even though it may take a little time to update on the server. You may listen
1988
- * for the <b>filterchanged</b> event to know when to update the UI.
1989
- * @return {@link dh.FilterCondition} array
1704
+ * A list of the value Column objects
1705
+ * @return {@link dh.Column} array.
1990
1706
  */
1991
- get filter():Array<FilterCondition>;
1707
+ get valueColumns():Column[];
1992
1708
  /**
1993
- * The total count of the rows in the table, excluding any filters. Unlike {@link Table.size}, changes to this value
1994
- * will not result in any event. If the table is unfiltered, this will return the same size as {@link Table.size}.
1995
- * If this table was uncoalesced before it was filtered, this will return {@link dh.Table.SIZE_UNCOALESCED}.
1996
- * @return the size of the table before filters, or {@link dh.Table.SIZE_UNCOALESCED}
1709
+ * The source table for this Input Table
1710
+ * @return dh.table
1997
1711
  */
1998
- get totalSize():number;
1712
+ get table():Table;
1713
+ }
1714
+
1715
+ /**
1716
+ * Presently, this is the entrypoint into the Deephaven JS API. By creating an instance of this with the server URL and
1717
+ * some options, JS applications can run code on the server, and interact with available exportable objects.
1718
+ */
1719
+ export class IdeConnection implements HasEventHandling {
1999
1720
  /**
2000
- * The total count of rows in the table. If there is a viewport subscription active, this size will be updated when
2001
- * the subscription updates. If not, and {@link Table.uncoalesced} is true, the size will be
2002
- * {@link dh.Table.SIZE_UNCOALESCED}. Otherwise, the size will be updated when the server's update graph processes changes.
2003
- * <p>
2004
- * When the size changes, the {@link dh.Table.EVENT_SIZECHANGED} event will be fired.
2005
- * @return the size of the table, or {@link dh.Table.SIZE_UNCOALESCED} if there is no subscription and the table is
2006
- * uncoalesced.
1721
+ * @deprecated
2007
1722
  */
2008
- get size():number;
1723
+ static readonly HACK_CONNECTION_FAILURE:string;
1724
+ static readonly EVENT_DISCONNECT:string;
1725
+ static readonly EVENT_RECONNECT:string;
1726
+ static readonly EVENT_SHUTDOWN:string;
1727
+
1728
+ protected constructor();
1729
+
2009
1730
  /**
2010
- * True if this table has been closed.
2011
- * @return boolean
1731
+ * Closes the current connection, releasing any resources on the server or client.
2012
1732
  */
2013
- get isClosed():boolean;
1733
+ close():void;
1734
+ running():Promise<IdeConnection>;
1735
+ getObject(definitionObject:dh.ide.VariableDescriptor):Promise<any>;
1736
+ subscribeToFieldUpdates(callback:(arg0:dh.ide.VariableChanges)=>void):()=>void;
2014
1737
  /**
2015
- * Read-only. True if this table is uncoalesced, indicating that work must be done before the table can be used.
2016
- * <p>
2017
- * Uncoalesced tables are expensive to operate on - filter to a single partition or range of partitions before
2018
- * subscribing to access only the desired data efficiently. A subscription can be specified without a filter, but
2019
- * this can be very expensive. To see which partitions are available, check each column on the table to see which
2020
- * have {@link Column.isPartitionColumn} as `true`, and filter those columns. To read the possible values
2021
- * for those columns, use {@link Table.selectDistinct}.
2022
- * @return True if the table is uncoaleced and should be filtered before operating on it, otherwise false.
1738
+ * Register a callback function to handle any log messages that are emitted on the server. Returns a function ,
1739
+ * which can be invoked to remove this log handler. Any log handler registered in this way will receive as many old
1740
+ * log messages as are presently available.
1741
+ * @param callback -
1742
+ * @return {@link io.deephaven.web.shared.fu.JsRunnable}
2023
1743
  */
2024
- get isUncoalesced():boolean;
1744
+ onLogMessage(callback:(arg0:dh.ide.LogItem)=>void):()=>void;
1745
+ startSession(type:string):Promise<IdeSession>;
1746
+ getConsoleTypes():Promise<Array<string>>;
1747
+ getWorkerHeapInfo():Promise<WorkerHeapInfo>;
2025
1748
  /**
2026
1749
  * Listen for events on this object.
2027
1750
  * @param name - the name of the event to listen for
@@ -2040,105 +1763,162 @@ export namespace dh {
2040
1763
  * @typeParam T -
2041
1764
  */
2042
1765
  removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
1766
+ }
1767
+
1768
+ export class CoreClient implements HasEventHandling {
1769
+ static readonly EVENT_CONNECT:string;
1770
+ static readonly EVENT_DISCONNECT:string;
1771
+ static readonly EVENT_RECONNECT:string;
1772
+ static readonly EVENT_RECONNECT_AUTH_FAILED:string;
1773
+ static readonly EVENT_REQUEST_FAILED:string;
1774
+ static readonly EVENT_REQUEST_STARTED:string;
1775
+ static readonly EVENT_REQUEST_SUCCEEDED:string;
2043
1776
  /**
2044
- * a Sort than can be used to reverse a table. This can be passed into n array in applySort. Note that Tree Tables
2045
- * do not support reverse.
2046
- * @return {@link dh.Sort}
1777
+ * @deprecated
2047
1778
  */
2048
- static reverse():Sort;
1779
+ static readonly EVENT_REFRESH_TOKEN_UPDATED:string;
1780
+ static readonly LOGIN_TYPE_PASSWORD:string;
1781
+ static readonly LOGIN_TYPE_ANONYMOUS:string;
1782
+
1783
+ constructor(serverUrl:string, connectOptions?:ConnectOptions);
1784
+
1785
+ running():Promise<CoreClient>;
1786
+ getServerUrl():string;
1787
+ getAuthConfigValues():Promise<string[][]>;
1788
+ login(credentials:LoginCredentials):Promise<void>;
1789
+ relogin(token:RefreshToken):Promise<void>;
1790
+ onConnected(timeoutInMillis?:number):Promise<void>;
1791
+ getServerConfigValues():Promise<string[][]>;
1792
+ getStorageService():dh.storage.StorageService;
1793
+ getAsIdeConnection():Promise<IdeConnection>;
1794
+ disconnect():void;
1795
+ addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
1796
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<Event<T>>;
1797
+ hasListeners(name:string):boolean;
1798
+ removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
2049
1799
  }
2050
1800
 
2051
1801
  /**
2052
- * Describes a Sort present on the table. No visible constructor, created through the use of Column.sort(), will be tied
2053
- * to that particular column data. Sort instances are immutable, and use a builder pattern to make modifications. All
2054
- * methods return a new Sort instance.
1802
+ * Describes a filter which can be applied to a table. Replacing these instances may be more expensive than reusing
1803
+ * them. These instances are immutable - all operations that compose them to build bigger expressions return a new
1804
+ * instance.
2055
1805
  */
2056
- export class Sort {
2057
- static readonly ASCENDING:string;
2058
- static readonly DESCENDING:string;
2059
- static readonly REVERSE:string;
2060
-
1806
+ export class FilterCondition {
2061
1807
  protected constructor();
2062
1808
 
2063
1809
  /**
2064
- * Builds a Sort instance to sort values in ascending order.
2065
- * @return {@link dh.Sort}
1810
+ * the opposite of this condition
1811
+ * @return FilterCondition
2066
1812
  */
2067
- asc():Sort;
1813
+ not():FilterCondition;
2068
1814
  /**
2069
- * Builds a Sort instance to sort values in descending order.
2070
- * @return {@link dh.Sort}
1815
+ * a condition representing the current condition logically ANDed with the other parameters
1816
+ * @param filters -
1817
+ * @return FilterCondition
2071
1818
  */
2072
- desc():Sort;
1819
+ and(...filters:FilterCondition[]):FilterCondition;
2073
1820
  /**
2074
- * Builds a Sort instance which takes the absolute value before applying order.
2075
- * @return {@link dh.Sort}
1821
+ * a condition representing the current condition logically ORed with the other parameters
1822
+ * @param filters -
1823
+ * @return FilterCondition.
2076
1824
  */
2077
- abs():Sort;
2078
- toString():string;
1825
+ or(...filters:FilterCondition[]):FilterCondition;
2079
1826
  /**
2080
- * True if the absolute value of the column should be used when sorting; defaults to false.
2081
- * @return boolean
1827
+ * a string suitable for debugging showing the details of this condition.
1828
+ * @return String.
2082
1829
  */
2083
- get isAbs():boolean;
1830
+ toString():string;
1831
+ get columns():Array<Column>;
2084
1832
  /**
2085
- * The column which is sorted.
2086
- * @return {@link dh.Column}
1833
+ * a filter condition invoking a static function with the given parameters. Currently supported Deephaven static
1834
+ * functions:
1835
+ * <ul>
1836
+ * <li><b>inRange</b>: Given three comparable values, returns true if the first is less than the second but greater
1837
+ * than the third</li>
1838
+ * <li><b>isInf</b>:Returns true if the given number is <i>infinity</i></li>
1839
+ * <li><b>isNaN</b>:Returns true if the given number is <i>not a number</i></li>
1840
+ * <li><b>isNormal</b>:Returns true if the given number <i>is not null</i>, <i>is not infinity</i>, and <i>is not
1841
+ * "not a number"</i></li>
1842
+ * <li><b>startsWith</b>:Returns true if the first string starts with the second string</li>
1843
+ * <li><b>endsWith</b>Returns true if the first string ends with the second string</li>
1844
+ * <li><b>matches</b>:Returns true if the first string argument matches the second string used as a Java regular
1845
+ * expression</li>
1846
+ * <li><b>contains</b>:Returns true if the first string argument contains the second string as a substring</li>
1847
+ * <li><b>in</b>:Returns true if the first string argument can be found in the second array argument.
1848
+ * <p>
1849
+ * Note that the array can only be specified as a column reference at this time - typically the `FilterValue.in`
1850
+ * method should be used in other cases
1851
+ * </p>
1852
+ * </li>
1853
+ * </ul>
1854
+ * @param function -
1855
+ * @param args -
1856
+ * @return dh.FilterCondition
2087
1857
  */
2088
- get column():Column;
1858
+ static invoke(func:string, ...args:FilterValue[]):FilterCondition;
2089
1859
  /**
2090
- * The direction of this sort, either <b>ASC</b>, <b>DESC</b>, or <b>REVERSE</b>.
2091
- * @return String
1860
+ * a filter condition which will check if the given value can be found in any supported column on whatever table
1861
+ * this FilterCondition is passed to. This FilterCondition is somewhat unique in that it need not be given a column
1862
+ * instance, but will adapt to any table. On numeric columns, with a value passed in which can be parsed as a
1863
+ * number, the column will be filtered to numbers which equal, or can be "rounded" effectively to this number. On
1864
+ * String columns, the given value will match any column which contains this string in a case-insensitive search. An
1865
+ * optional second argument can be passed, an array of `FilterValue` from the columns to limit this search to (see
1866
+ * {@link dh.Column.filter}).
1867
+ * @param value -
1868
+ * @param columns -
1869
+ * @return dh.FilterCondition
2092
1870
  */
2093
- get direction():string;
1871
+ static search(value:FilterValue, columns?:FilterValue[]):FilterCondition;
2094
1872
  }
2095
1873
 
2096
- /**
2097
- * This object serves as a "handle" to a subscription, allowing it to be acted on directly or canceled outright. If you
2098
- * retain an instance of this, you have two choices - either only use it to call `close()` on it to stop the table's
2099
- * viewport without creating a new one, or listen directly to this object instead of the table for data events, and
2100
- * always call `close()` when finished. Calling any method on this object other than close() will result in it
2101
- * continuing to live on after `setViewport` is called on the original table, or after the table is modified.
2102
- */
2103
- export class TableViewportSubscription implements HasEventHandling {
1874
+ export class CustomColumn {
1875
+ static readonly TYPE_FORMAT_COLOR:string;
1876
+ static readonly TYPE_FORMAT_NUMBER:string;
1877
+ static readonly TYPE_FORMAT_DATE:string;
1878
+ static readonly TYPE_NEW:string;
1879
+
2104
1880
  protected constructor();
2105
1881
 
1882
+ valueOf():string;
1883
+ toString():string;
2106
1884
  /**
2107
- * Changes the rows and columns set on this viewport. This cannot be used to change the update interval.
2108
- * @param firstRow -
2109
- * @param lastRow -
2110
- * @param columns -
2111
- * @param updateIntervalMs -
2112
- */
2113
- setViewport(firstRow:number, lastRow:number, columns?:Column[]|undefined|null, updateIntervalMs?:number|undefined|null, isReverseViewport?:boolean|undefined|null):void;
2114
- /**
2115
- * Stops this viewport from running, stopping all events on itself and on the table that created it.
2116
- */
2117
- close():void;
2118
- /**
2119
- * Gets the data currently visible in this viewport
2120
- * @return Promise of {@link dh.TableData}.
1885
+ * The expression to evaluate this custom column.
1886
+ * @return String
2121
1887
  */
2122
- getViewportData():Promise<ViewportData>;
2123
- snapshot(rows:RangeSet, columns:Column[]):Promise<TableData>;
1888
+ get expression():string;
2124
1889
  /**
2125
- * Listen for events on this object.
2126
- * @param name - the name of the event to listen for
2127
- * @param callback - a function to call when the event occurs
2128
- * @return Returns a cleanup function.
2129
- * @typeParam T - the type of the data that the event will provide
1890
+ * The name of the column to use.
1891
+ * @return String
2130
1892
  */
2131
- addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
2132
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<Event<T>>;
2133
- hasListeners(name:string):boolean;
1893
+ get name():string;
2134
1894
  /**
2135
- * Removes an event listener added to this table.
2136
- * @param name -
2137
- * @param callback -
2138
- * @return
2139
- * @typeParam T -
1895
+ * Type of custom column. One of
1896
+ *
1897
+ * <ul>
1898
+ * <li>FORMAT_COLOR</li>
1899
+ * <li>FORMAT_NUMBER</li>
1900
+ * <li>FORMAT_DATE</li>
1901
+ * <li>NEW</li>
1902
+ * </ul>
1903
+ * @return String
2140
1904
  */
2141
- removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
1905
+ get type():string;
1906
+ }
1907
+
1908
+ export class LongWrapper {
1909
+ protected constructor();
1910
+
1911
+ static ofString(str:string):LongWrapper;
1912
+ asNumber():number;
1913
+ valueOf():string;
1914
+ toString():string;
1915
+ }
1916
+
1917
+ export class DateWrapper extends LongWrapper {
1918
+ protected constructor();
1919
+
1920
+ static ofJsDate(date:Date):DateWrapper;
1921
+ asDate():Date;
2142
1922
  }
2143
1923
 
2144
1924
  /**
@@ -2232,224 +2012,456 @@ export namespace dh {
2232
2012
  get type():string;
2233
2013
  }
2234
2014
 
2235
- /**
2236
- * Deprecated for use in Deephaven Core.
2237
- * @deprecated
2238
- */
2239
- export class Client {
2240
- static readonly EVENT_REQUEST_FAILED:string;
2241
- static readonly EVENT_REQUEST_STARTED:string;
2242
- static readonly EVENT_REQUEST_SUCCEEDED:string;
2015
+ export class QueryInfo {
2016
+ static readonly EVENT_TABLE_OPENED:string;
2017
+ static readonly EVENT_DISCONNECT:string;
2018
+ static readonly EVENT_RECONNECT:string;
2019
+ static readonly EVENT_CONNECT:string;
2243
2020
 
2244
- constructor();
2021
+ protected constructor();
2245
2022
  }
2246
2023
 
2247
2024
  /**
2248
- * Wrap BigDecimal values for use in JS. Provides text formatting for display and access to the underlying value.
2025
+ * Event fired when a command is issued from the client.
2249
2026
  */
2250
- export class BigDecimalWrapper {
2251
- protected constructor();
2027
+ export class CommandInfo {
2028
+ constructor(code:string, result:Promise<dh.ide.CommandResult>);
2252
2029
 
2253
- static ofString(value:string):BigDecimalWrapper;
2254
- asNumber():number;
2255
- valueOf():string;
2256
- toString():string;
2030
+ get result():Promise<dh.ide.CommandResult>;
2031
+ get code():string;
2257
2032
  }
2258
2033
 
2259
2034
  /**
2260
- * Exists to keep the dh.TableMap namespace so that the web UI can remain compatible with the DHE API, which still calls
2261
- * this type TableMap.
2262
- * @deprecated
2035
+ * Provides access to data in a table. Note that several methods present their response through Promises. This allows
2036
+ * the client to both avoid actually connecting to the server until necessary, and also will permit some changes not to
2037
+ * inform the UI right away that they have taken place.
2263
2038
  */
2264
- export class TableMap {
2265
- static readonly EVENT_KEYADDED:string;
2039
+ export class Table implements JoinableTable, HasEventHandling {
2040
+ readonly description?:string|null;
2041
+ readonly pluginName?:string|null;
2042
+ readonly layoutHints?:null|LayoutHints;
2043
+ /**
2044
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2045
+ */
2046
+ static readonly EVENT_SIZECHANGED:string;
2047
+ /**
2048
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2049
+ */
2050
+ static readonly EVENT_UPDATED:string;
2051
+ /**
2052
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2053
+ */
2054
+ static readonly EVENT_ROWADDED:string;
2055
+ /**
2056
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2057
+ */
2058
+ static readonly EVENT_ROWREMOVED:string;
2059
+ /**
2060
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2061
+ */
2062
+ static readonly EVENT_ROWUPDATED:string;
2063
+ /**
2064
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2065
+ */
2066
+ static readonly EVENT_SORTCHANGED:string;
2067
+ /**
2068
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2069
+ */
2070
+ static readonly EVENT_FILTERCHANGED:string;
2071
+ /**
2072
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2073
+ */
2074
+ static readonly EVENT_CUSTOMCOLUMNSCHANGED:string;
2075
+ /**
2076
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2077
+ */
2266
2078
  static readonly EVENT_DISCONNECT:string;
2079
+ /**
2080
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2081
+ */
2267
2082
  static readonly EVENT_RECONNECT:string;
2083
+ /**
2084
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2085
+ */
2268
2086
  static readonly EVENT_RECONNECTFAILED:string;
2269
-
2270
- protected constructor();
2271
- }
2272
-
2273
- export class LoginCredentials {
2274
- type?:string|null;
2275
- username?:string|null;
2276
- token?:string|null;
2277
-
2278
- constructor();
2279
- }
2280
-
2281
- /**
2282
- * Describes the structure of the column, and if desired can be used to get access to the data to be rendered in this
2283
- * column.
2284
- */
2285
- export class Column {
2286
2087
  /**
2287
- * If this column is part of a roll-up tree table, represents the type of the row data that can be found in this
2288
- * column for leaf nodes if includeConstituents is enabled. Otherwise, it is <b>null</b>.
2289
- * @return String
2088
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2290
2089
  */
2291
- readonly constituentType?:string|null;
2292
- readonly description?:string|null;
2090
+ static readonly EVENT_REQUEST_FAILED:string;
2091
+ /**
2092
+ * The table size has updated, so live scrollbars and the like can be updated accordingly.
2093
+ */
2094
+ static readonly EVENT_REQUEST_SUCCEEDED:string;
2095
+ /**
2096
+ * The size the table will have if it is uncoalesced.
2097
+ */
2098
+ static readonly SIZE_UNCOALESCED:number;
2293
2099
 
2294
2100
  protected constructor();
2295
2101
 
2102
+ batch(userCode:(arg0:unknown)=>void):Promise<Table>;
2296
2103
  /**
2297
- * the value for this column in the given row. Type will be consistent with the type of the Column.
2298
- * @param row -
2299
- * @return Any
2104
+ * Retrieve a column by the given name. You should prefer to always retrieve a new Column instance instead of
2105
+ * caching a returned value.
2106
+ * @param key -
2107
+ * @return {@link dh.Column}
2300
2108
  */
2301
- get(row:Row):any;
2302
- getFormat(row:Row):Format;
2109
+ findColumn(key:string):Column;
2110
+ /**
2111
+ * Retrieve multiple columns specified by the given names.
2112
+ * @param keys -
2113
+ * @return {@link dh.Column} array
2114
+ */
2115
+ findColumns(keys:string[]):Column[];
2116
+ isBlinkTable():boolean;
2117
+ /**
2118
+ * If .hasInputTable is true, you may call this method to gain access to an InputTable object which can be used to
2119
+ * mutate the data within the table. If the table is not an Input Table, the promise will be immediately rejected.
2120
+ * @return Promise of dh.InputTable
2121
+ */
2122
+ inputTable():Promise<InputTable>;
2123
+ /**
2124
+ * Indicates that this Table instance will no longer be used, and its connection to the server can be cleaned up.
2125
+ */
2126
+ close():void;
2127
+ getAttributes():string[];
2128
+ /**
2129
+ * null if no property exists, a string if it is an easily serializable property, or a ```Promise
2130
+ * &lt;Table&gt;``` that will either resolve with a table or error out if the object can't be passed to JS.
2131
+ * @param attributeName -
2132
+ * @return Object
2133
+ */
2134
+ getAttribute(attributeName:string):unknown|undefined|null;
2135
+ /**
2136
+ * Replace the currently set sort on this table. Returns the previously set value. Note that the sort property will
2137
+ * immediately return the new value, but you may receive update events using the old sort before the new sort is
2138
+ * applied, and the <b>sortchanged</b> event fires. Reusing existing, applied sorts may enable this to perform
2139
+ * better on the server. The <b>updated</b> event will also fire, but <b>rowadded</b> and <b>rowremoved</b> will
2140
+ * not.
2141
+ * @param sort -
2142
+ * @return {@link dh.Sort} array
2143
+ */
2144
+ applySort(sort:Sort[]):Array<Sort>;
2145
+ /**
2146
+ * Replace the currently set filters on the table. Returns the previously set value. Note that the filter property
2147
+ * will immediately return the new value, but you may receive update events using the old filter before the new one
2148
+ * is applied, and the <b>filterchanged</b> event fires. Reusing existing, applied filters may enable this to
2149
+ * perform better on the server. The <b>updated</b> event will also fire, but <b>rowadded</b> and <b>rowremoved</b>
2150
+ * will not.
2151
+ * @param filter -
2152
+ * @return {@link dh.FilterCondition} array
2153
+ */
2154
+ applyFilter(filter:FilterCondition[]):Array<FilterCondition>;
2155
+ /**
2156
+ * used when adding new filter and sort operations to the table, as long as they are present.
2157
+ * @param customColumns -
2158
+ * @return {@link dh.CustomColumn} array
2159
+ */
2160
+ applyCustomColumns(customColumns:Array<string|CustomColumn>):Array<CustomColumn>;
2161
+ /**
2162
+ * If the columns parameter is not provided, all columns will be used. If the updateIntervalMs parameter is not
2163
+ * provided, a default of one second will be used. Until this is called, no data will be available. Invoking this
2164
+ * will result in events to be fired once data becomes available, starting with an `updated` event and a
2165
+ * <b>rowadded</b> event per row in that range. The returned object allows the viewport to be closed when no longer
2166
+ * needed.
2167
+ * @param firstRow -
2168
+ * @param lastRow -
2169
+ * @param columns -
2170
+ * @param updateIntervalMs -
2171
+ * @return {@link dh.TableViewportSubscription}
2172
+ */
2173
+ setViewport(firstRow:number, lastRow:number, columns?:Array<Column>|undefined|null, updateIntervalMs?:number|undefined|null, isReverseViewport?:boolean|undefined|null):TableViewportSubscription;
2174
+ /**
2175
+ * Gets the currently visible viewport. If the current set of operations has not yet resulted in data, it will not
2176
+ * resolve until that data is ready. If this table is closed before the promise resolves, it will be rejected - to
2177
+ * separate the lifespan of this promise from the table itself, call
2178
+ * {@link TableViewportSubscription.getViewportData} on the result from {@link Table.setViewport}.
2179
+ * @return Promise of {@link dh.TableData}
2180
+ */
2181
+ getViewportData():Promise<ViewportData>;
2182
+ /**
2183
+ * Creates a subscription to the specified columns, across all rows in the table. The optional parameter
2184
+ * updateIntervalMs may be specified to indicate how often the server should send updates, defaulting to one second
2185
+ * if omitted. Useful for charts or taking a snapshot of the table atomically. The initial snapshot will arrive in a
2186
+ * single event, but later changes will be sent as updates. However, this may still be very expensive to run from a
2187
+ * browser for very large tables. Each call to subscribe creates a new subscription, which must have <b>close()</b>
2188
+ * called on it to stop it, and all events are fired from the TableSubscription instance.
2189
+ * @param columns -
2190
+ * @param updateIntervalMs -
2191
+ * @return {@link dh.TableSubscription}
2192
+ */
2193
+ subscribe(columns:Array<Column>, updateIntervalMs?:number):TableSubscription;
2194
+ /**
2195
+ * a new table containing the distinct tuples of values from the given columns that are present in the original
2196
+ * table. This table can be manipulated as any other table. Sorting is often desired as the default sort is the
2197
+ * order of appearance of values from the original table.
2198
+ * @param columns -
2199
+ * @return Promise of dh.Table
2200
+ */
2201
+ selectDistinct(columns:Column[]):Promise<Table>;
2202
+ /**
2203
+ * Creates a new copy of this table, so it can be sorted and filtered separately, and maintain a different viewport.
2204
+ * @return Promise of dh.Table
2205
+ */
2206
+ copy():Promise<Table>;
2207
+ /**
2208
+ * a promise that will resolve to a Totals Table of this table. This table will obey the configurations provided as
2209
+ * a parameter, or will use the table's default if no parameter is provided, and be updated once per second as
2210
+ * necessary. Note that multiple calls to this method will each produce a new TotalsTable which must have close()
2211
+ * called on it when not in use.
2212
+ * @param config -
2213
+ * @return Promise of dh.TotalsTable
2214
+ */
2215
+ getTotalsTable(config?:TotalsTableConfig|undefined|null):Promise<TotalsTable>;
2216
+ /**
2217
+ * a promise that will resolve to a Totals Table of this table, ignoring any filters. See <b>getTotalsTable()</b>
2218
+ * above for more specifics.
2219
+ * @param config -
2220
+ * @return promise of dh.TotalsTable
2221
+ */
2222
+ getGrandTotalsTable(config?:TotalsTableConfig|undefined|null):Promise<TotalsTable>;
2303
2223
  /**
2304
- * Creates a sort builder object, to be used when sorting by this column.
2305
- * @return {@link dh.Sort}
2224
+ * a promise that will resolve to a new roll-up <b>TreeTable</b> of this table. Multiple calls to this method will
2225
+ * each produce a new <b>TreeTable</b> which must have close() called on it when not in use.
2226
+ * @param configObject -
2227
+ * @return Promise of dh.TreeTable
2306
2228
  */
2307
- sort():Sort;
2229
+ rollup(configObject:RollupConfig):Promise<TreeTable>;
2308
2230
  /**
2309
- * Creates a new value for use in filters based on this column. Used either as a parameter to another filter
2310
- * operation, or as a builder to create a filter operation.
2311
- * @return {@link dh.FilterValue}
2231
+ * a promise that will resolve to a new `TreeTable` of this table. Multiple calls to this method will each produce a
2232
+ * new `TreeTable` which must have close() called on it when not in use.
2233
+ * @param configObject -
2234
+ * @return Promise dh.TreeTable
2312
2235
  */
2313
- filter():FilterValue;
2236
+ treeTable(configObject:TreeTableConfig):Promise<TreeTable>;
2314
2237
  /**
2315
- * a <b>CustomColumn</b> object to apply using `applyCustomColumns` with the expression specified.
2316
- * @param expression -
2317
- * @return {@link dh.CustomColumn}
2238
+ * a "frozen" version of this table (a server-side snapshot of the entire source table). Viewports on the frozen
2239
+ * table will not update. This does not change the original table, and the new table will not have any of the client
2240
+ * side sorts/filters/columns. New client side sorts/filters/columns can be added to the frozen copy.
2241
+ * @return Promise of dh.Table
2318
2242
  */
2319
- formatColor(expression:string):CustomColumn;
2243
+ freeze():Promise<Table>;
2244
+ snapshot(baseTable:Table, doInitialSnapshot?:boolean, stampColumns?:string[]):Promise<Table>;
2320
2245
  /**
2321
- * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
2322
- * @param expression -
2323
- * @return {@link dh.CustomColumn}
2246
+ *
2247
+ * @inheritDoc
2248
+ * @deprecated
2324
2249
  */
2325
- formatNumber(expression:string):CustomColumn;
2250
+ join(joinType:string, rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:string|undefined|null):Promise<Table>;
2251
+ asOfJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, asOfMatchRule?:string|undefined|null):Promise<Table>;
2252
+ crossJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null, reserveBits?:number|undefined|null):Promise<Table>;
2253
+ exactJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
2254
+ naturalJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>):Promise<Table>;
2255
+ byExternal(keys:object, dropKeys?:boolean):Promise<PartitionedTable>;
2326
2256
  /**
2327
- * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
2328
- * @param expression -
2329
- * @return {@link dh.CustomColumn}
2257
+ * Creates a new PartitionedTable from the contents of the current table, partitioning data based on the specified
2258
+ * keys.
2259
+ * @param keys -
2260
+ * @param dropKeys -
2261
+ * @return Promise dh.PartitionedTable
2330
2262
  */
2331
- formatDate(expression:string):CustomColumn;
2332
- toString():string;
2263
+ partitionBy(keys:object, dropKeys?:boolean):Promise<PartitionedTable>;
2333
2264
  /**
2334
- * Label for this column.
2335
- * @return String
2265
+ * a promise that will resolve to ColumnStatistics for the column of this table.
2266
+ * @param column -
2267
+ * @return Promise of dh.ColumnStatistics
2336
2268
  */
2337
- get name():string;
2269
+ getColumnStatistics(column:Column):Promise<ColumnStatistics>;
2338
2270
  /**
2339
- * True if this column is a partition column. Partition columns are used for filtering uncoalesced tables - see
2340
- * {@link Table.uncoalesced}.
2341
- * @return true if the column is a partition column
2271
+ * Seek the row matching the data provided
2272
+ * @param startingRow - Row to start the seek from
2273
+ * @param column - Column to seek for value on
2274
+ * @param valueType - Type of value provided
2275
+ * @param seekValue - Value to seek
2276
+ * @param insensitive - Optional value to flag a search as case-insensitive. Defaults to `false`.
2277
+ * @param contains - Optional value to have the seek value do a contains search instead of exact equality. Defaults to
2278
+ * `false`.
2279
+ * @param isBackwards - Optional value to seek backwards through the table instead of forwards. Defaults to `false`.
2280
+ * @return A promise that resolves to the row value found.
2342
2281
  */
2343
- get isPartitionColumn():boolean;
2282
+ seekRow(startingRow:number, column:Column, valueType:ValueTypeType, seekValue:any, insensitive?:boolean|undefined|null, contains?:boolean|undefined|null, isBackwards?:boolean|undefined|null):Promise<number>;
2283
+ toString():string;
2344
2284
  /**
2345
- *
2346
- * @deprecated do not use. Internal index of the column in the table, to be used as a key on the Row.
2347
- * @return int
2285
+ * True if this table represents a user Input Table (created by InputTable.newInputTable). When true, you may call
2286
+ * .inputTable() to add or remove data from the underlying table.
2287
+ * @return boolean
2348
2288
  */
2349
- get index():number;
2350
- get isSortable():boolean;
2289
+ get hasInputTable():boolean;
2351
2290
  /**
2352
- * Type of the row data that can be found in this column.
2353
- * @return String
2291
+ * The columns that are present on this table. This is always all possible columns. If you specify fewer columns in
2292
+ * .setViewport(), you will get only those columns in your ViewportData. <b>Number size</b> The total count of rows
2293
+ * in the table. The size can and will change; see the <b>sizechanged</b> event for details. Size will be negative
2294
+ * in exceptional cases (eg. the table is uncoalesced, see the <b>isUncoalesced</b> property for details).
2295
+ * @return {@link dh.Column} array
2354
2296
  */
2355
- get type():string;
2297
+ get columns():Array<Column>;
2356
2298
  /**
2357
- * Format entire rows colors using the expression specified. Returns a <b>CustomColumn</b> object to apply to a
2358
- * table using <b>applyCustomColumns</b> with the parameters specified.
2359
- * @param expression -
2360
- * @return {@link dh.CustomColumn}
2299
+ * The default configuration to be used when building a <b>TotalsTable</b> for this table.
2300
+ * @return dh.TotalsTableConfig
2361
2301
  */
2362
- static formatRowColor(expression:string):CustomColumn;
2302
+ get totalsTableConfig():TotalsTableConfig;
2363
2303
  /**
2364
- * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
2365
- * @param name -
2366
- * @param expression -
2367
- * @return {@link dh.CustomColumn}
2304
+ * An ordered list of Sorts to apply to the table. To update, call <b>applySort()</b>. Note that this getter will
2305
+ * return the new value immediately, even though it may take a little time to update on the server. You may listen
2306
+ * for the <b>sortchanged</b> event to know when to update the UI.
2307
+ * @return {@link dh.Sort} array
2368
2308
  */
2369
- static createCustomColumn(name:string, expression:string):CustomColumn;
2370
- }
2371
-
2372
- /**
2373
- * Describes how a Totals Table will be generated from its parent table. Each table has a default (which may be null)
2374
- * indicating how that table was configured when it was declared, and each Totals Table has a similar property
2375
- * describing how it was created. Both the <b>Table.getTotalsTable</b> and <b>Table.getGrandTotalsTable</b> methods take
2376
- * this config as an optional parameter - without it, the table's default will be used, or if null, a default instance
2377
- * of <b>TotalsTableConfig</b> will be supplied.
2378
- *
2379
- * This class has a no-arg constructor, allowing an instance to be made with the default values provided. However, any
2380
- * JS object can be passed in to the methods which accept instances of this type, provided their values adhere to the
2381
- * expected formats.
2382
- */
2383
- export class TotalsTableConfig {
2309
+ get sort():Array<Sort>;
2384
2310
  /**
2385
- * @deprecated
2311
+ * An ordered list of custom column formulas to add to the table, either adding new columns or replacing existing
2312
+ * ones. To update, call <b>applyCustomColumns()</b>.
2313
+ * @return {@link dh.CustomColumn} array
2386
2314
  */
2387
- static readonly COUNT:string;
2315
+ get customColumns():Array<CustomColumn>;
2388
2316
  /**
2389
- * @deprecated
2317
+ * True if this table may receive updates from the server, including size changed events, updated events after
2318
+ * initial snapshot.
2319
+ * @return boolean
2390
2320
  */
2391
- static readonly MIN:string;
2321
+ get isRefreshing():boolean;
2392
2322
  /**
2393
- * @deprecated
2323
+ * An ordered list of Filters to apply to the table. To update, call applyFilter(). Note that this getter will
2324
+ * return the new value immediately, even though it may take a little time to update on the server. You may listen
2325
+ * for the <b>filterchanged</b> event to know when to update the UI.
2326
+ * @return {@link dh.FilterCondition} array
2394
2327
  */
2395
- static readonly MAX:string;
2328
+ get filter():Array<FilterCondition>;
2396
2329
  /**
2397
- * @deprecated
2330
+ * The total count of the rows in the table, excluding any filters. Unlike {@link Table.size}, changes to this value
2331
+ * will not result in any event. If the table is unfiltered, this will return the same size as {@link Table.size}.
2332
+ * If this table was uncoalesced before it was filtered, this will return {@link dh.Table.SIZE_UNCOALESCED}.
2333
+ * @return the size of the table before filters, or {@link dh.Table.SIZE_UNCOALESCED}
2398
2334
  */
2399
- static readonly SUM:string;
2335
+ get totalSize():number;
2400
2336
  /**
2401
- * @deprecated
2337
+ * The total count of rows in the table. If there is a viewport subscription active, this size will be updated when
2338
+ * the subscription updates. If not, and {@link Table.uncoalesced} is true, the size will be
2339
+ * {@link dh.Table.SIZE_UNCOALESCED}. Otherwise, the size will be updated when the server's update graph processes changes.
2340
+ * <p>
2341
+ * When the size changes, the {@link dh.Table.EVENT_SIZECHANGED} event will be fired.
2342
+ * @return the size of the table, or {@link dh.Table.SIZE_UNCOALESCED} if there is no subscription and the table is
2343
+ * uncoalesced.
2402
2344
  */
2403
- static readonly ABS_SUM:string;
2345
+ get size():number;
2404
2346
  /**
2405
- * @deprecated
2347
+ * True if this table has been closed.
2348
+ * @return boolean
2406
2349
  */
2407
- static readonly VAR:string;
2350
+ get isClosed():boolean;
2408
2351
  /**
2409
- * @deprecated
2352
+ * Read-only. True if this table is uncoalesced, indicating that work must be done before the table can be used.
2353
+ * <p>
2354
+ * Uncoalesced tables are expensive to operate on - filter to a single partition or range of partitions before
2355
+ * subscribing to access only the desired data efficiently. A subscription can be specified without a filter, but
2356
+ * this can be very expensive. To see which partitions are available, check each column on the table to see which
2357
+ * have {@link Column.isPartitionColumn} as `true`, and filter those columns. To read the possible values
2358
+ * for those columns, use {@link Table.selectDistinct}.
2359
+ * @return True if the table is uncoaleced and should be filtered before operating on it, otherwise false.
2410
2360
  */
2411
- static readonly AVG:string;
2361
+ get isUncoalesced():boolean;
2412
2362
  /**
2413
- * @deprecated
2363
+ * Listen for events on this object.
2364
+ * @param name - the name of the event to listen for
2365
+ * @param callback - a function to call when the event occurs
2366
+ * @return Returns a cleanup function.
2367
+ * @typeParam T - the type of the data that the event will provide
2414
2368
  */
2415
- static readonly STD:string;
2369
+ addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
2370
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<Event<T>>;
2371
+ hasListeners(name:string):boolean;
2416
2372
  /**
2417
- * @deprecated
2373
+ * Removes an event listener added to this table.
2374
+ * @param name -
2375
+ * @param callback -
2376
+ * @return
2377
+ * @typeParam T -
2418
2378
  */
2419
- static readonly FIRST:string;
2379
+ removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
2420
2380
  /**
2421
- * @deprecated
2381
+ * a Sort than can be used to reverse a table. This can be passed into n array in applySort. Note that Tree Tables
2382
+ * do not support reverse.
2383
+ * @return {@link dh.Sort}
2422
2384
  */
2423
- static readonly LAST:string;
2385
+ static reverse():Sort;
2386
+ }
2387
+
2388
+ export class IdeSession implements HasEventHandling {
2389
+ static readonly EVENT_COMMANDSTARTED:string;
2390
+ static readonly EVENT_REQUEST_FAILED:string;
2391
+
2392
+ protected constructor();
2393
+
2424
2394
  /**
2425
- * @deprecated
2395
+ * Load the named table, with columns and size information already fully populated.
2396
+ * @param name -
2397
+ * @param applyPreviewColumns - optional boolean
2398
+ * @return {@link Promise} of {@link dh.Table}
2426
2399
  */
2427
- static readonly SKIP:string;
2400
+ getTable(name:string, applyPreviewColumns?:boolean):Promise<Table>;
2428
2401
  /**
2429
- * Specifies if a Totals Table should be expanded by default in the UI. Defaults to false.
2402
+ * Load the named Figure, including its tables and tablemaps as needed.
2403
+ * @param name -
2404
+ * @return promise of dh.plot.Figure
2430
2405
  */
2431
- showTotalsByDefault:boolean;
2406
+ getFigure(name:string):Promise<dh.plot.Figure>;
2432
2407
  /**
2433
- * Specifies if a Grand Totals Table should be expanded by default in the UI. Defaults to false.
2408
+ * Loads the named tree table or roll-up table, with column data populated. All nodes are collapsed by default, and
2409
+ * size is presently not available until the viewport is first set.
2410
+ * @param name -
2411
+ * @return {@link Promise} of {@link dh.TreeTable}
2434
2412
  */
2435
- showGrandTotalsByDefault:boolean;
2413
+ getTreeTable(name:string):Promise<TreeTable>;
2414
+ getHierarchicalTable(name:string):Promise<TreeTable>;
2415
+ getPartitionedTable(name:string):Promise<PartitionedTable>;
2416
+ getObject(definitionObject:dh.ide.VariableDescriptor):Promise<any>;
2417
+ newTable(columnNames:string[], types:string[], data:string[][], userTimeZone:string):Promise<Table>;
2436
2418
  /**
2437
- * Specifies the default operation for columns that do not have a specific operation applied; defaults to "Sum".
2419
+ * Merges the given tables into a single table. Assumes all tables have the same structure.
2420
+ * @param tables -
2421
+ * @return {@link Promise} of {@link dh.Table}
2438
2422
  */
2439
- defaultOperation:AggregationOperationType;
2423
+ mergeTables(tables:Table[]):Promise<Table>;
2424
+ bindTableToVariable(table:Table, name:string):Promise<void>;
2425
+ subscribeToFieldUpdates(callback:(arg0:dh.ide.VariableChanges)=>void):()=>void;
2426
+ close():void;
2427
+ runCode(code:string):Promise<dh.ide.CommandResult>;
2428
+ onLogMessage(callback:(arg0:dh.ide.LogItem)=>void):()=>void;
2429
+ openDocument(params:object):void;
2430
+ changeDocument(params:object):void;
2431
+ getCompletionItems(params:object):Promise<Array<dh.lsp.CompletionItem>>;
2432
+ getSignatureHelp(params:object):Promise<Array<dh.lsp.SignatureInformation>>;
2433
+ getHover(params:object):Promise<dh.lsp.Hover>;
2434
+ closeDocument(params:object):void;
2440
2435
  /**
2441
- * Mapping from each column name to the aggregation(s) that should be applied to that column in the resulting Totals
2442
- * Table. If a column is omitted, the defaultOperation is used.
2436
+ * Creates an empty table with the specified number of rows. Optionally columns and types may be specified, but all
2437
+ * values will be null.
2438
+ * @param size -
2439
+ * @return {@link Promise} of {@link dh.Table}
2443
2440
  */
2444
- operationMap:{ [key: string]: Array<AggregationOperationType>; };
2441
+ emptyTable(size:number):Promise<Table>;
2445
2442
  /**
2446
- * Groupings to use when generating the Totals Table. One row will exist for each unique set of values observed in
2447
- * these columns. See also `Table.selectDistinct`.
2443
+ * Creates a new table that ticks automatically every "periodNanos" nanoseconds. A start time may be provided; if so
2444
+ * the table will be populated with the interval from the specified date until now.
2445
+ * @param periodNanos -
2446
+ * @param startTime -
2447
+ * @return {@link Promise} of {@link dh.Table}
2448
2448
  */
2449
- groupBy:Array<string>;
2449
+ timeTable(periodNanos:number, startTime?:DateWrapper):Promise<Table>;
2450
+ addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
2451
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<Event<T>>;
2452
+ hasListeners(name:string):boolean;
2453
+ removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
2454
+ }
2450
2455
 
2451
- constructor();
2456
+ /**
2457
+ * Wrap BigDecimal values for use in JS. Provides text formatting for display and access to the underlying value.
2458
+ */
2459
+ export class BigDecimalWrapper {
2460
+ protected constructor();
2452
2461
 
2462
+ static ofString(value:string):BigDecimalWrapper;
2463
+ asNumber():number;
2464
+ valueOf():string;
2453
2465
  toString():string;
2454
2466
  }
2455
2467
 
@@ -2464,20 +2476,11 @@ export namespace dh {
2464
2476
  static readonly BOOLEAN:ValueTypeType;
2465
2477
  }
2466
2478
 
2467
- /**
2468
- * A set of string constants that can be used to describe the different objects the JS API can export.
2469
- */
2470
- type VariableTypeType = string;
2471
- export class VariableType {
2472
- static readonly TABLE:VariableTypeType;
2473
- static readonly TREETABLE:VariableTypeType;
2474
- static readonly HIERARCHICALTABLE:VariableTypeType;
2475
- static readonly TABLEMAP:VariableTypeType;
2476
- static readonly PARTITIONEDTABLE:VariableTypeType;
2477
- static readonly FIGURE:VariableTypeType;
2478
- static readonly OTHERWIDGET:VariableTypeType;
2479
- static readonly PANDAS:VariableTypeType;
2480
- static readonly TREEMAP:VariableTypeType;
2479
+ type SearchDisplayModeType = string;
2480
+ export class SearchDisplayMode {
2481
+ static readonly SEARCH_DISPLAY_DEFAULT:SearchDisplayModeType;
2482
+ static readonly SEARCH_DISPLAY_HIDE:SearchDisplayModeType;
2483
+ static readonly SEARCH_DISPLAY_SHOW:SearchDisplayModeType;
2481
2484
  }
2482
2485
 
2483
2486
  /**
@@ -2501,129 +2504,249 @@ export namespace dh {
2501
2504
  static readonly SKIP:AggregationOperationType;
2502
2505
  }
2503
2506
 
2504
- type SearchDisplayModeType = string;
2505
- export class SearchDisplayMode {
2506
- static readonly SEARCH_DISPLAY_DEFAULT:SearchDisplayModeType;
2507
- static readonly SEARCH_DISPLAY_HIDE:SearchDisplayModeType;
2508
- static readonly SEARCH_DISPLAY_SHOW:SearchDisplayModeType;
2507
+ /**
2508
+ * A set of string constants that can be used to describe the different objects the JS API can export.
2509
+ */
2510
+ type VariableTypeType = string;
2511
+ export class VariableType {
2512
+ static readonly TABLE:VariableTypeType;
2513
+ static readonly TREETABLE:VariableTypeType;
2514
+ static readonly HIERARCHICALTABLE:VariableTypeType;
2515
+ static readonly TABLEMAP:VariableTypeType;
2516
+ static readonly PARTITIONEDTABLE:VariableTypeType;
2517
+ static readonly FIGURE:VariableTypeType;
2518
+ static readonly OTHERWIDGET:VariableTypeType;
2519
+ static readonly PANDAS:VariableTypeType;
2520
+ static readonly TREEMAP:VariableTypeType;
2509
2521
  }
2510
2522
 
2511
2523
  }
2512
2524
 
2513
2525
  export namespace dh.ide {
2514
2526
 
2527
+ /**
2528
+ * Represents a serialized fishlib LogRecord, suitable for display on javascript clients. A log entry sent from the
2529
+ * server.
2530
+ */
2531
+ export interface LogItem {
2532
+ /**
2533
+ * The level of the log message, enabling the client to ignore messages.
2534
+ * @return String
2535
+ */
2536
+ get logLevel():string;
2537
+ /**
2538
+ * Timestamp of the message in microseconds since Jan 1, 1970 UTC.
2539
+ * @return double
2540
+ */
2541
+ get micros():number;
2542
+ /**
2543
+ * The log message written on the server.
2544
+ * @return String
2545
+ */
2546
+ get message():string;
2547
+ }
2515
2548
  /**
2516
2549
  * Indicates the result of code run on the server.
2517
2550
  */
2518
- export interface CommandResult {
2519
- /**
2520
- * Describes changes made in the course of this command.
2521
- * @return {@link dh.ide.VariableChanges}.
2522
- */
2523
- get changes():VariableChanges;
2551
+ export interface CommandResult {
2552
+ /**
2553
+ * Describes changes made in the course of this command.
2554
+ * @return {@link dh.ide.VariableChanges}.
2555
+ */
2556
+ get changes():VariableChanges;
2557
+ /**
2558
+ * If the command failed, the error message will be provided here.
2559
+ * @return String
2560
+ */
2561
+ get error():string;
2562
+ }
2563
+ /**
2564
+ * Describes changes in the current set of variables in the script session. Note that variables that changed value
2565
+ * without changing type will be included as <b>updated</b>, but if a new value with one type replaces an old value with
2566
+ * a different type, this will be included as an entry in both <b>removed</b> and <b>created</b> to indicate the old and
2567
+ * new types.
2568
+ */
2569
+ export interface VariableChanges {
2570
+ /**
2571
+ *
2572
+ * @return The variables that no longer exist after this operation, or were replaced by some variable with a
2573
+ * different type.
2574
+ */
2575
+ get removed():Array<VariableDefinition>;
2576
+ /**
2577
+ *
2578
+ * @return The variables that were created by this operation, or have a new type.
2579
+ */
2580
+ get created():Array<VariableDefinition>;
2581
+ /**
2582
+ *
2583
+ * @return The variables that changed value during this operation.
2584
+ */
2585
+ get updated():Array<VariableDefinition>;
2586
+ }
2587
+ /**
2588
+ * Specifies a type and either id or name (but not both).
2589
+ */
2590
+ export interface VariableDescriptor {
2591
+ type:string;
2592
+ id?:string|null;
2593
+ name?:string|null;
2594
+ }
2595
+ /**
2596
+ * A format to describe a variable available to be read from the server. Application fields are optional, and only
2597
+ * populated when a variable is provided by application mode.
2598
+ * <p>
2599
+ * APIs which take a VariableDefinition must at least be provided an object with a <b>type</b> and <b>id</b> field.
2600
+ */
2601
+ export interface VariableDefinition {
2602
+ get name():string;
2603
+ /**
2604
+ * Optional description for the variable's contents, typically used to provide more detail that wouldn't be
2605
+ * reasonable to put in the title
2606
+ * @return String
2607
+ */
2608
+ get description():string;
2609
+ /**
2610
+ * An opaque identifier for this variable
2611
+ * @return String
2612
+ */
2613
+ get id():string;
2614
+ /**
2615
+ * The type of the variable, one of <b>dh.VariableType</b>
2616
+ * @return dh.VariableType.
2617
+ */
2618
+ get type():dh.VariableTypeType;
2619
+ /**
2620
+ * The name of the variable, to be used when rendering it to a user
2621
+ * @return String
2622
+ */
2623
+ get title():string;
2624
+ /**
2625
+ * Optional description for the variable's contents, typically used to provide more detail that wouldn't be
2626
+ * reasonable to put in the title
2627
+ * @return String
2628
+ */
2629
+ get applicationId():string;
2630
+ /**
2631
+ * The name of the application which provided this variable
2632
+ * @return String
2633
+ */
2634
+ get applicationName():string;
2635
+ }
2636
+ }
2637
+
2638
+ export namespace dh.i18n {
2639
+
2640
+ /**
2641
+ * Represents the timezones supported by Deephaven. Can be used to format dates, taking into account the offset changing
2642
+ * throughout the year (potentially changing each year). These instances mostly are useful at this time to pass to the
2643
+ * <b>DateTimeFormat.format()</b> methods, though also support a few properties at this time to see details about each
2644
+ * instance.
2645
+ *
2646
+ *
2647
+ * The following timezone codes are supported when getting a timezone object - instances appearing in the same line will
2648
+ * return the same details:
2649
+ *
2650
+ * <ul>
2651
+ * <li>GMT/UTC</li>
2652
+ * <li>Asia/Tokyo</li>
2653
+ * <li>Asia/Seoul</li>
2654
+ * <li>Asia/Hong_Kong</li>
2655
+ * <li>Asia/Singapore</li>
2656
+ * <li>Asia/Calcutta/Asia/Kolkata</li>
2657
+ * <li>Europe/Berlin</li>
2658
+ * <li>Europe/London</li>
2659
+ * <li>America/Sao_Paulo</li>
2660
+ * <li>America/St_Johns</li>
2661
+ * <li>America/Halifax</li>
2662
+ * <li>America/New_York</li>
2663
+ * <li>America/Chicago</li>
2664
+ * <li>America/Denver</li>
2665
+ * <li>America/Los_Angeles</li>
2666
+ * <li>America/Anchorage</li>
2667
+ * <li>Pacific/Honolulu</li>
2668
+ * </ul>
2669
+ *
2670
+ * A Timezone object can also be created from an abbreviation. The following abbreviations are supported:
2671
+ *
2672
+ * <ul>
2673
+ * <li>UTC</li>
2674
+ * <li>GMT</li>
2675
+ * <li>Z</li>
2676
+ * <li>NY</li>
2677
+ * <li>ET</li>
2678
+ * <li>EST</li>
2679
+ * <li>EDT</li>
2680
+ * <li>MN</li>
2681
+ * <li>CT</li>
2682
+ * <li>CST</li>
2683
+ * <li>CDT</li>
2684
+ * <li>MT</li>
2685
+ * <li>MST</li>
2686
+ * <li>MDT</li>
2687
+ * <li>PT</li>
2688
+ * <li>PST</li>
2689
+ * <li>PDT</li>
2690
+ * <li>HI</li>
2691
+ * <li>HST</li>
2692
+ * <li>HDT</li>
2693
+ * <li>BT</li>
2694
+ * <li>BRST</li>
2695
+ * <li>BRT</li>
2696
+ * <li>KR</li>
2697
+ * <li>KST</li>
2698
+ * <li>HK</li>
2699
+ * <li>HKT</li>
2700
+ * <li>JP</li>
2701
+ * <li>JST</li>
2702
+ * <li>AT</li>
2703
+ * <li>AST</li>
2704
+ * <li>ADT</li>
2705
+ * <li>NF</li>
2706
+ * <li>NST</li>
2707
+ * <li>NDT</li>
2708
+ * <li>AL</li>
2709
+ * <li>AKST</li>
2710
+ * <li>AKDT</li>
2711
+ * <li>IN</li>
2712
+ * <li>IST</li>
2713
+ * <li>CE</li>
2714
+ * <li>CET</li>
2715
+ * <li>CEST</li>
2716
+ * <li>SG</li>
2717
+ * <li>SGT</li>
2718
+ * <li>LON</li>
2719
+ * <li>BST</li>
2720
+ * <li>MOS</li>
2721
+ * <li>SHG</li>
2722
+ * <li>CH</li>
2723
+ * <li>NL</li>
2724
+ * <li>TW</li>
2725
+ * <li>SYD</li>
2726
+ * <li>AEST</li>
2727
+ * <li>AEDT</li>
2728
+ * </ul>
2729
+ */
2730
+ export class TimeZone {
2731
+ protected constructor();
2732
+
2524
2733
  /**
2525
- * If the command failed, the error message will be provided here.
2526
- * @return String
2734
+ * Factory method which creates timezone instances from one of the supported keys.
2735
+ * @param tzCode -
2736
+ * @return dh.i18n.TimeZone
2527
2737
  */
2528
- get error():string;
2529
- }
2530
- /**
2531
- * A format to describe a variable available to be read from the server. Application fields are optional, and only
2532
- * populated when a variable is provided by application mode.
2533
- * <p>
2534
- * APIs which take a VariableDefinition must at least be provided an object with a <b>type</b> and <b>id</b> field.
2535
- */
2536
- export interface VariableDefinition {
2537
- get name():string;
2738
+ static getTimeZone(tzCode:string):TimeZone;
2538
2739
  /**
2539
- * Optional description for the variable's contents, typically used to provide more detail that wouldn't be
2540
- * reasonable to put in the title
2541
- * @return String
2740
+ * the standard offset of this timezone, in minutes
2741
+ * @return int
2542
2742
  */
2543
- get description():string;
2743
+ get standardOffset():number;
2544
2744
  /**
2545
- * An opaque identifier for this variable
2745
+ * the timezone code that represents this `TimeZone`, usually the same key as was use to create this instance
2546
2746
  * @return String
2547
2747
  */
2548
2748
  get id():string;
2549
- /**
2550
- * The type of the variable, one of <b>dh.VariableType</b>
2551
- * @return dh.VariableType.
2552
- */
2553
- get type():dh.VariableTypeType;
2554
- /**
2555
- * The name of the variable, to be used when rendering it to a user
2556
- * @return String
2557
- */
2558
- get title():string;
2559
- /**
2560
- * Optional description for the variable's contents, typically used to provide more detail that wouldn't be
2561
- * reasonable to put in the title
2562
- * @return String
2563
- */
2564
- get applicationId():string;
2565
- /**
2566
- * The name of the application which provided this variable
2567
- * @return String
2568
- */
2569
- get applicationName():string;
2570
- }
2571
- /**
2572
- * Represents a serialized fishlib LogRecord, suitable for display on javascript clients. A log entry sent from the
2573
- * server.
2574
- */
2575
- export interface LogItem {
2576
- /**
2577
- * The level of the log message, enabling the client to ignore messages.
2578
- * @return String
2579
- */
2580
- get logLevel():string;
2581
- /**
2582
- * Timestamp of the message in microseconds since Jan 1, 1970 UTC.
2583
- * @return double
2584
- */
2585
- get micros():number;
2586
- /**
2587
- * The log message written on the server.
2588
- * @return String
2589
- */
2590
- get message():string;
2591
- }
2592
- /**
2593
- * Specifies a type and either id or name (but not both).
2594
- */
2595
- export interface VariableDescriptor {
2596
- type:string;
2597
- id?:string|null;
2598
- name?:string|null;
2599
- }
2600
- /**
2601
- * Describes changes in the current set of variables in the script session. Note that variables that changed value
2602
- * without changing type will be included as <b>updated</b>, but if a new value with one type replaces an old value with
2603
- * a different type, this will be included as an entry in both <b>removed</b> and <b>created</b> to indicate the old and
2604
- * new types.
2605
- */
2606
- export interface VariableChanges {
2607
- /**
2608
- *
2609
- * @return The variables that no longer exist after this operation, or were replaced by some variable with a
2610
- * different type.
2611
- */
2612
- get removed():Array<VariableDefinition>;
2613
- /**
2614
- *
2615
- * @return The variables that were created by this operation, or have a new type.
2616
- */
2617
- get created():Array<VariableDefinition>;
2618
- /**
2619
- *
2620
- * @return The variables that changed value during this operation.
2621
- */
2622
- get updated():Array<VariableDefinition>;
2623
2749
  }
2624
- }
2625
-
2626
- export namespace dh.i18n {
2627
2750
 
2628
2751
  /**
2629
2752
  * Exported wrapper of the GWT NumberFormat, plus LongWrapper support
@@ -2737,161 +2860,159 @@ export namespace dh.i18n {
2737
2860
  * Parses the given input string using the provided pattern, and returns a JS `Date` object in milliseconds.
2738
2861
  * @param pattern -
2739
2862
  * @param text -
2740
- * @return
2741
- */
2742
- static parseAsDate(pattern:string, text:string):Date;
2743
- /**
2744
- * Parses the given input string using the provided pattern, and returns a wrapped Java `long` value in nanoseconds.
2745
- * A `TimeZone` object can optionally be provided to parse to a desired timezone.
2746
- * @param pattern -
2747
- * @param text -
2748
- * @param tz -
2749
- * @return
2750
- */
2751
- static parse(pattern:string, text:string, tz?:TimeZone):dh.DateWrapper;
2752
- /**
2753
- * Takes a variety of objects to interpret as a date, and formats them using this instance's pattern. Inputs can
2754
- * include a <b>String</b> value of a number expressed in nanoseconds, a <b>Number</b> value expressed in
2755
- * nanoseconds, a JS <b>Date</b> object (necessarily in milliseconds), or a wrapped Java <b>long</b> value,
2756
- * expressed in nanoseconds. A <b>TimeZone</b> object can optionally be provided to format this date as the current
2757
- * date/time in that timezone.
2758
- * @param date -
2759
- * @param timeZone -
2760
- * @return String
2761
- */
2762
- format(date:any, timeZone?:TimeZone):string;
2763
- /**
2764
- * Parses the given string using this instance's pattern, and returns a wrapped Java <b>long</b> value in
2765
- * nanoseconds. A <b>TimeZone</b> object can optionally be provided to parse to a desired timezone.
2766
- * @param text -
2767
- * @param tz -
2768
- * @return
2769
- */
2770
- parse(text:string, tz?:TimeZone):dh.DateWrapper;
2771
- /**
2772
- * Parses the given string using this instance's pattern, and returns a JS <b>Date</b> object in milliseconds.
2773
- * @param text -
2774
- * @return
2775
- */
2776
- parseAsDate(text:string):Date;
2777
- toString():string;
2778
- }
2779
-
2780
- /**
2781
- * Represents the timezones supported by Deephaven. Can be used to format dates, taking into account the offset changing
2782
- * throughout the year (potentially changing each year). These instances mostly are useful at this time to pass to the
2783
- * <b>DateTimeFormat.format()</b> methods, though also support a few properties at this time to see details about each
2784
- * instance.
2785
- *
2786
- *
2787
- * The following timezone codes are supported when getting a timezone object - instances appearing in the same line will
2788
- * return the same details:
2789
- *
2790
- * <ul>
2791
- * <li>GMT/UTC</li>
2792
- * <li>Asia/Tokyo</li>
2793
- * <li>Asia/Seoul</li>
2794
- * <li>Asia/Hong_Kong</li>
2795
- * <li>Asia/Singapore</li>
2796
- * <li>Asia/Calcutta/Asia/Kolkata</li>
2797
- * <li>Europe/Berlin</li>
2798
- * <li>Europe/London</li>
2799
- * <li>America/Sao_Paulo</li>
2800
- * <li>America/St_Johns</li>
2801
- * <li>America/Halifax</li>
2802
- * <li>America/New_York</li>
2803
- * <li>America/Chicago</li>
2804
- * <li>America/Denver</li>
2805
- * <li>America/Los_Angeles</li>
2806
- * <li>America/Anchorage</li>
2807
- * <li>Pacific/Honolulu</li>
2808
- * </ul>
2809
- *
2810
- * A Timezone object can also be created from an abbreviation. The following abbreviations are supported:
2811
- *
2812
- * <ul>
2813
- * <li>UTC</li>
2814
- * <li>GMT</li>
2815
- * <li>Z</li>
2816
- * <li>NY</li>
2817
- * <li>ET</li>
2818
- * <li>EST</li>
2819
- * <li>EDT</li>
2820
- * <li>MN</li>
2821
- * <li>CT</li>
2822
- * <li>CST</li>
2823
- * <li>CDT</li>
2824
- * <li>MT</li>
2825
- * <li>MST</li>
2826
- * <li>MDT</li>
2827
- * <li>PT</li>
2828
- * <li>PST</li>
2829
- * <li>PDT</li>
2830
- * <li>HI</li>
2831
- * <li>HST</li>
2832
- * <li>HDT</li>
2833
- * <li>BT</li>
2834
- * <li>BRST</li>
2835
- * <li>BRT</li>
2836
- * <li>KR</li>
2837
- * <li>KST</li>
2838
- * <li>HK</li>
2839
- * <li>HKT</li>
2840
- * <li>JP</li>
2841
- * <li>JST</li>
2842
- * <li>AT</li>
2843
- * <li>AST</li>
2844
- * <li>ADT</li>
2845
- * <li>NF</li>
2846
- * <li>NST</li>
2847
- * <li>NDT</li>
2848
- * <li>AL</li>
2849
- * <li>AKST</li>
2850
- * <li>AKDT</li>
2851
- * <li>IN</li>
2852
- * <li>IST</li>
2853
- * <li>CE</li>
2854
- * <li>CET</li>
2855
- * <li>CEST</li>
2856
- * <li>SG</li>
2857
- * <li>SGT</li>
2858
- * <li>LON</li>
2859
- * <li>BST</li>
2860
- * <li>MOS</li>
2861
- * <li>SHG</li>
2862
- * <li>CH</li>
2863
- * <li>NL</li>
2864
- * <li>TW</li>
2865
- * <li>SYD</li>
2866
- * <li>AEST</li>
2867
- * <li>AEDT</li>
2868
- * </ul>
2869
- */
2870
- export class TimeZone {
2871
- protected constructor();
2872
-
2873
- /**
2874
- * Factory method which creates timezone instances from one of the supported keys.
2875
- * @param tzCode -
2876
- * @return dh.i18n.TimeZone
2863
+ * @return
2877
2864
  */
2878
- static getTimeZone(tzCode:string):TimeZone;
2865
+ static parseAsDate(pattern:string, text:string):Date;
2879
2866
  /**
2880
- * the standard offset of this timezone, in minutes
2881
- * @return int
2867
+ * Parses the given input string using the provided pattern, and returns a wrapped Java `long` value in nanoseconds.
2868
+ * A `TimeZone` object can optionally be provided to parse to a desired timezone.
2869
+ * @param pattern -
2870
+ * @param text -
2871
+ * @param tz -
2872
+ * @return
2882
2873
  */
2883
- get standardOffset():number;
2874
+ static parse(pattern:string, text:string, tz?:TimeZone):dh.DateWrapper;
2884
2875
  /**
2885
- * the timezone code that represents this `TimeZone`, usually the same key as was use to create this instance
2876
+ * Takes a variety of objects to interpret as a date, and formats them using this instance's pattern. Inputs can
2877
+ * include a <b>String</b> value of a number expressed in nanoseconds, a <b>Number</b> value expressed in
2878
+ * nanoseconds, a JS <b>Date</b> object (necessarily in milliseconds), or a wrapped Java <b>long</b> value,
2879
+ * expressed in nanoseconds. A <b>TimeZone</b> object can optionally be provided to format this date as the current
2880
+ * date/time in that timezone.
2881
+ * @param date -
2882
+ * @param timeZone -
2886
2883
  * @return String
2887
2884
  */
2888
- get id():string;
2885
+ format(date:any, timeZone?:TimeZone):string;
2886
+ /**
2887
+ * Parses the given string using this instance's pattern, and returns a wrapped Java <b>long</b> value in
2888
+ * nanoseconds. A <b>TimeZone</b> object can optionally be provided to parse to a desired timezone.
2889
+ * @param text -
2890
+ * @param tz -
2891
+ * @return
2892
+ */
2893
+ parse(text:string, tz?:TimeZone):dh.DateWrapper;
2894
+ /**
2895
+ * Parses the given string using this instance's pattern, and returns a JS <b>Date</b> object in milliseconds.
2896
+ * @param text -
2897
+ * @return
2898
+ */
2899
+ parseAsDate(text:string):Date;
2900
+ toString():string;
2889
2901
  }
2890
2902
 
2891
2903
  }
2892
2904
 
2905
+ export namespace dh.grpc {
2906
+
2907
+ /**
2908
+ * Factory for creating gRPC transports.
2909
+ */
2910
+ export interface GrpcTransportFactory {
2911
+ /**
2912
+ * Create a new transport instance.
2913
+ * @param options - options for creating the transport
2914
+ * @return a transport instance to use for gRPC communication
2915
+ */
2916
+ create(options:GrpcTransportOptions):GrpcTransport;
2917
+ /**
2918
+ * Return true to signal that created transports may have {@link GrpcTransport.sendMessage} called on it
2919
+ * more than once before {@link GrpcTransport.finishSend} should be called.
2920
+ * @return true to signal that the implementation can stream multiple messages, false otherwise indicating that
2921
+ * Open/Next gRPC calls should be used
2922
+ */
2923
+ get supportsClientStreaming():boolean;
2924
+ }
2925
+ /**
2926
+ * gRPC transport implementation.
2927
+ */
2928
+ export interface GrpcTransport {
2929
+ /**
2930
+ * Starts the stream, sending metadata to the server.
2931
+ * @param metadata - the headers to send the server when opening the connection
2932
+ */
2933
+ start(metadata:{ [key: string]: string|Array<string>; }):void;
2934
+ /**
2935
+ * Sends a message to the server.
2936
+ * @param msgBytes - bytes to send to the server
2937
+ */
2938
+ sendMessage(msgBytes:Uint8Array):void;
2939
+ /**
2940
+ * "Half close" the stream, signaling to the server that no more messages will be sent, but that the client is still
2941
+ * open to receiving messages.
2942
+ */
2943
+ finishSend():void;
2944
+ /**
2945
+ * End the stream, both notifying the server that no more messages will be sent nor received, and preventing the
2946
+ * client from receiving any more events.
2947
+ */
2948
+ cancel():void;
2949
+ }
2950
+ /**
2951
+ * Options for creating a gRPC stream transport instance.
2952
+ */
2953
+ export interface GrpcTransportOptions {
2954
+ /**
2955
+ * The gRPC method URL.
2956
+ */
2957
+ url:URL;
2958
+ /**
2959
+ * True to enable debug logging for this stream.
2960
+ */
2961
+ debug:boolean;
2962
+ /**
2963
+ * Callback for when headers and status are received. The headers are a map of header names to values, and the
2964
+ * status is the HTTP status code. If the connection could not be made, the status should be 0.
2965
+ */
2966
+ onHeaders:(headers:{ [key: string]: string|Array<string>; },status:number)=>void;
2967
+ /**
2968
+ * Callback for when a chunk of data is received.
2969
+ */
2970
+ onChunk:(chunk:Uint8Array)=>void;
2971
+ /**
2972
+ * Callback for when the stream ends, with an error instance if it can be provided. Note that the present
2973
+ * implementation does not consume errors, even if provided.
2974
+ */
2975
+ onEnd:(error?:Error|undefined|null)=>void;
2976
+ }
2977
+ }
2978
+
2893
2979
  export namespace dh.plot {
2894
2980
 
2981
+ /**
2982
+ * Describes a template that will be used to make new series instances when a new table added to a plotBy.
2983
+ */
2984
+ export interface MultiSeries {
2985
+ /**
2986
+ * The name for this multi-series.
2987
+ * @return String
2988
+ */
2989
+ get name():string;
2990
+ /**
2991
+ * The plotting style to use for the series that will be created. See <b>SeriesPlotStyle</b> enum for more details.
2992
+ * @return int
2993
+ */
2994
+ get plotStyle():SeriesPlotStyleType;
2995
+ }
2996
+ /**
2997
+ * Describes how to access and display data required within a series.
2998
+ */
2999
+ export interface SeriesDataSource {
3000
+ /**
3001
+ * the type of data stored in the underlying table's Column.
3002
+ * @return String
3003
+ */
3004
+ get columnType():string;
3005
+ /**
3006
+ * the axis that this source should be drawn on.
3007
+ * @return dh.plot.Axis
3008
+ */
3009
+ get axis():Axis;
3010
+ /**
3011
+ * the feature of this series represented by this source. See the <b>SourceType</b> enum for more details.
3012
+ * @return int
3013
+ */
3014
+ get type():SourceTypeType;
3015
+ }
2895
3016
  export interface OneClick {
2896
3017
  setValueForColumn(columnName:string, value:any):void;
2897
3018
  getValueForColumn(columName:string):any;
@@ -3014,41 +3135,6 @@ export namespace dh.plot {
3014
3135
  get multiSeries():MultiSeries;
3015
3136
  get shapeLabel():string;
3016
3137
  }
3017
- /**
3018
- * Describes a template that will be used to make new series instances when a new table added to a plotBy.
3019
- */
3020
- export interface MultiSeries {
3021
- /**
3022
- * The name for this multi-series.
3023
- * @return String
3024
- */
3025
- get name():string;
3026
- /**
3027
- * The plotting style to use for the series that will be created. See <b>SeriesPlotStyle</b> enum for more details.
3028
- * @return int
3029
- */
3030
- get plotStyle():SeriesPlotStyleType;
3031
- }
3032
- /**
3033
- * Describes how to access and display data required within a series.
3034
- */
3035
- export interface SeriesDataSource {
3036
- /**
3037
- * the type of data stored in the underlying table's Column.
3038
- * @return String
3039
- */
3040
- get columnType():string;
3041
- /**
3042
- * the axis that this source should be drawn on.
3043
- * @return dh.plot.Axis
3044
- */
3045
- get axis():Axis;
3046
- /**
3047
- * the feature of this series represented by this source. See the <b>SourceType</b> enum for more details.
3048
- * @return int
3049
- */
3050
- get type():SourceTypeType;
3051
- }
3052
3138
 
3053
3139
  export class Figure implements dh.HasEventHandling {
3054
3140
  /**
@@ -3134,23 +3220,6 @@ export namespace dh.plot {
3134
3220
  removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
3135
3221
  }
3136
3222
 
3137
- /**
3138
- * A descriptor used with JsFigureFactory.create to create a figure from JS.
3139
- */
3140
- export class FigureDescriptor {
3141
- title?:string|null;
3142
- titleFont?:string|null;
3143
- titleColor?:string|null;
3144
- isResizable?:boolean|null;
3145
- isDefaultTheme?:boolean|null;
3146
- updateInterval?:number|null;
3147
- cols?:number|null;
3148
- rows?:number|null;
3149
- charts:Array<ChartDescriptor>;
3150
-
3151
- constructor();
3152
- }
3153
-
3154
3223
  export class ChartDescriptor {
3155
3224
  colspan?:number|null;
3156
3225
  rowspan?:number|null;
@@ -3168,97 +3237,23 @@ export namespace dh.plot {
3168
3237
  constructor();
3169
3238
  }
3170
3239
 
3171
- export class FigureFetchError {
3172
- error:object;
3173
- errors:Array<string>;
3174
-
3175
- protected constructor();
3176
- }
3177
-
3178
3240
  /**
3179
- * Provide the details for a chart.
3241
+ * A descriptor used with JsFigureFactory.create to create a figure from JS.
3180
3242
  */
3181
- export class Chart implements dh.HasEventHandling {
3182
- /**
3183
- * a new series was added to this chart as part of a multi-series. The series instance is the detail for this event.
3184
- */
3185
- static readonly EVENT_SERIES_ADDED:string;
3186
- /**
3187
- * The title of the chart.
3188
- * @return String
3189
- */
3190
- readonly title?:string|null;
3191
-
3192
- protected constructor();
3193
-
3194
- addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
3195
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<dh.Event<T>>;
3196
- hasListeners(name:string):boolean;
3197
- removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
3198
- get column():number;
3199
- get showLegend():boolean;
3200
- /**
3201
- * The axes used in this chart.
3202
- * @return dh.plot.Axis
3203
- */
3204
- get axes():Axis[];
3205
- get is3d():boolean;
3206
- get titleFont():string;
3207
- get colspan():number;
3208
- get titleColor():string;
3209
- get series():Series[];
3210
- get rowspan():number;
3211
- /**
3212
- * The type of this chart, see <b>ChartType</b> enum for more details.
3213
- * @return int
3214
- */
3215
- get chartType():ChartTypeType;
3216
- get row():number;
3217
- get legendColor():string;
3218
- get legendFont():string;
3219
- get multiSeries():MultiSeries[];
3220
- }
3221
-
3222
- export class AxisDescriptor {
3223
- formatType:string;
3224
- type:string;
3225
- position:string;
3226
- log?:boolean|null;
3227
- label?:string|null;
3228
- labelFont?:string|null;
3229
- ticksFont?:string|null;
3230
- formatPattern?:string|null;
3231
- color?:string|null;
3232
- minRange?:number|null;
3233
- maxRange?:number|null;
3234
- minorTicksVisible?:boolean|null;
3235
- majorTicksVisible?:boolean|null;
3236
- minorTickCount?:number|null;
3237
- gapBetweenMajorTicks?:number|null;
3238
- majorTickLocations?:Array<number>|null;
3239
- tickLabelAngle?:number|null;
3240
- invert?:boolean|null;
3241
- isTimeAxis?:boolean|null;
3242
-
3243
- constructor();
3244
- }
3245
-
3246
- export class SourceDescriptor {
3247
- axis:AxisDescriptor;
3248
- table:dh.Table;
3249
- columnName:string;
3250
- type:string;
3243
+ export class FigureDescriptor {
3244
+ title?:string|null;
3245
+ titleFont?:string|null;
3246
+ titleColor?:string|null;
3247
+ isResizable?:boolean|null;
3248
+ isDefaultTheme?:boolean|null;
3249
+ updateInterval?:number|null;
3250
+ cols?:number|null;
3251
+ rows?:number|null;
3252
+ charts:Array<ChartDescriptor>;
3251
3253
 
3252
3254
  constructor();
3253
3255
  }
3254
3256
 
3255
- export class SeriesDataSourceException {
3256
- protected constructor();
3257
-
3258
- get source():SeriesDataSource;
3259
- get message():string;
3260
- }
3261
-
3262
3257
  export class SeriesDescriptor {
3263
3258
  plotStyle:string;
3264
3259
  name?:string|null;
@@ -3278,11 +3273,13 @@ export namespace dh.plot {
3278
3273
  constructor();
3279
3274
  }
3280
3275
 
3281
- export class FigureSourceException {
3276
+ export class SourceDescriptor {
3277
+ axis:AxisDescriptor;
3282
3278
  table:dh.Table;
3283
- source:SeriesDataSource;
3279
+ columnName:string;
3280
+ type:string;
3284
3281
 
3285
- protected constructor();
3282
+ constructor();
3286
3283
  }
3287
3284
 
3288
3285
  export class DownsampleOptions {
@@ -3328,6 +3325,50 @@ export namespace dh.plot {
3328
3325
  removeColumn(columnName:string, mappingFunc:(arg0:any)=>any):void;
3329
3326
  }
3330
3327
 
3328
+ /**
3329
+ * Provide the details for a chart.
3330
+ */
3331
+ export class Chart implements dh.HasEventHandling {
3332
+ /**
3333
+ * a new series was added to this chart as part of a multi-series. The series instance is the detail for this event.
3334
+ */
3335
+ static readonly EVENT_SERIES_ADDED:string;
3336
+ /**
3337
+ * The title of the chart.
3338
+ * @return String
3339
+ */
3340
+ readonly title?:string|null;
3341
+
3342
+ protected constructor();
3343
+
3344
+ addEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):()=>void;
3345
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<dh.Event<T>>;
3346
+ hasListeners(name:string):boolean;
3347
+ removeEventListener<T>(name:string, callback:(e:dh.Event<T>)=>void):boolean;
3348
+ get column():number;
3349
+ get showLegend():boolean;
3350
+ /**
3351
+ * The axes used in this chart.
3352
+ * @return dh.plot.Axis
3353
+ */
3354
+ get axes():Axis[];
3355
+ get is3d():boolean;
3356
+ get titleFont():string;
3357
+ get colspan():number;
3358
+ get titleColor():string;
3359
+ get series():Series[];
3360
+ get rowspan():number;
3361
+ /**
3362
+ * The type of this chart, see <b>ChartType</b> enum for more details.
3363
+ * @return int
3364
+ */
3365
+ get chartType():ChartTypeType;
3366
+ get row():number;
3367
+ get legendColor():string;
3368
+ get legendFont():string;
3369
+ get multiSeries():MultiSeries[];
3370
+ }
3371
+
3331
3372
  /**
3332
3373
  * Helper class for plot downsampling methods.
3333
3374
  */
@@ -3347,23 +3388,52 @@ export namespace dh.plot {
3347
3388
  static runChartDownsample(table:dh.Table, xCol:string, yCols:string[], width:number, xRange?:dh.LongWrapper[]|undefined|null):Promise<dh.Table>;
3348
3389
  }
3349
3390
 
3391
+ export class AxisDescriptor {
3392
+ formatType:string;
3393
+ type:string;
3394
+ position:string;
3395
+ log?:boolean|null;
3396
+ label?:string|null;
3397
+ labelFont?:string|null;
3398
+ ticksFont?:string|null;
3399
+ formatPattern?:string|null;
3400
+ color?:string|null;
3401
+ minRange?:number|null;
3402
+ maxRange?:number|null;
3403
+ minorTicksVisible?:boolean|null;
3404
+ majorTicksVisible?:boolean|null;
3405
+ minorTickCount?:number|null;
3406
+ gapBetweenMajorTicks?:number|null;
3407
+ majorTickLocations?:Array<number>|null;
3408
+ tickLabelAngle?:number|null;
3409
+ invert?:boolean|null;
3410
+ isTimeAxis?:boolean|null;
3411
+
3412
+ constructor();
3413
+ }
3414
+
3415
+ export class FigureFetchError {
3416
+ error:object;
3417
+ errors:Array<string>;
3350
3418
 
3351
- type SeriesPlotStyleType = number;
3352
- export class SeriesPlotStyle {
3353
- static readonly BAR:SeriesPlotStyleType;
3354
- static readonly STACKED_BAR:SeriesPlotStyleType;
3355
- static readonly LINE:SeriesPlotStyleType;
3356
- static readonly AREA:SeriesPlotStyleType;
3357
- static readonly STACKED_AREA:SeriesPlotStyleType;
3358
- static readonly PIE:SeriesPlotStyleType;
3359
- static readonly HISTOGRAM:SeriesPlotStyleType;
3360
- static readonly OHLC:SeriesPlotStyleType;
3361
- static readonly SCATTER:SeriesPlotStyleType;
3362
- static readonly STEP:SeriesPlotStyleType;
3363
- static readonly ERROR_BAR:SeriesPlotStyleType;
3364
- static readonly TREEMAP:SeriesPlotStyleType;
3419
+ protected constructor();
3420
+ }
3421
+
3422
+ export class SeriesDataSourceException {
3423
+ protected constructor();
3424
+
3425
+ get source():SeriesDataSource;
3426
+ get message():string;
3427
+ }
3428
+
3429
+ export class FigureSourceException {
3430
+ table:dh.Table;
3431
+ source:SeriesDataSource;
3432
+
3433
+ protected constructor();
3365
3434
  }
3366
3435
 
3436
+
3367
3437
  /**
3368
3438
  * This enum describes the source it is in, and how this aspect of the data in the series should be used to render the
3369
3439
  * 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
@@ -3393,10 +3463,19 @@ export namespace dh.plot {
3393
3463
  static readonly HOVER_TEXT:SourceTypeType;
3394
3464
  }
3395
3465
 
3396
- type AxisFormatTypeType = number;
3397
- export class AxisFormatType {
3398
- static readonly CATEGORY:AxisFormatTypeType;
3399
- static readonly NUMBER:AxisFormatTypeType;
3466
+ /**
3467
+ * This enum describes what kind of chart is being drawn. This may limit what kinds of series can be found on it, or how
3468
+ * those series should be rendered.
3469
+ */
3470
+ type ChartTypeType = number;
3471
+ export class ChartType {
3472
+ static readonly XY:ChartTypeType;
3473
+ static readonly PIE:ChartTypeType;
3474
+ static readonly OHLC:ChartTypeType;
3475
+ static readonly CATEGORY:ChartTypeType;
3476
+ static readonly XYZ:ChartTypeType;
3477
+ static readonly CATEGORY_3D:ChartTypeType;
3478
+ static readonly TREEMAP:ChartTypeType;
3400
3479
  }
3401
3480
 
3402
3481
  type AxisTypeType = number;
@@ -3409,6 +3488,22 @@ export namespace dh.plot {
3409
3488
  static readonly COLOR:AxisTypeType;
3410
3489
  }
3411
3490
 
3491
+ type SeriesPlotStyleType = number;
3492
+ export class SeriesPlotStyle {
3493
+ static readonly BAR:SeriesPlotStyleType;
3494
+ static readonly STACKED_BAR:SeriesPlotStyleType;
3495
+ static readonly LINE:SeriesPlotStyleType;
3496
+ static readonly AREA:SeriesPlotStyleType;
3497
+ static readonly STACKED_AREA:SeriesPlotStyleType;
3498
+ static readonly PIE:SeriesPlotStyleType;
3499
+ static readonly HISTOGRAM:SeriesPlotStyleType;
3500
+ static readonly OHLC:SeriesPlotStyleType;
3501
+ static readonly SCATTER:SeriesPlotStyleType;
3502
+ static readonly STEP:SeriesPlotStyleType;
3503
+ static readonly ERROR_BAR:SeriesPlotStyleType;
3504
+ static readonly TREEMAP:SeriesPlotStyleType;
3505
+ }
3506
+
3412
3507
  type AxisPositionType = number;
3413
3508
  export class AxisPosition {
3414
3509
  static readonly TOP:AxisPositionType;
@@ -3418,33 +3513,16 @@ export namespace dh.plot {
3418
3513
  static readonly NONE:AxisPositionType;
3419
3514
  }
3420
3515
 
3421
- /**
3422
- * This enum describes what kind of chart is being drawn. This may limit what kinds of series can be found on it, or how
3423
- * those series should be rendered.
3424
- */
3425
- type ChartTypeType = number;
3426
- export class ChartType {
3427
- static readonly XY:ChartTypeType;
3428
- static readonly PIE:ChartTypeType;
3429
- static readonly OHLC:ChartTypeType;
3430
- static readonly CATEGORY:ChartTypeType;
3431
- static readonly XYZ:ChartTypeType;
3432
- static readonly CATEGORY_3D:ChartTypeType;
3433
- static readonly TREEMAP:ChartTypeType;
3516
+ type AxisFormatTypeType = number;
3517
+ export class AxisFormatType {
3518
+ static readonly CATEGORY:AxisFormatTypeType;
3519
+ static readonly NUMBER:AxisFormatTypeType;
3434
3520
  }
3435
3521
 
3436
3522
  }
3437
3523
 
3438
3524
  export namespace dh.lsp {
3439
3525
 
3440
- export class TextDocumentContentChangeEvent {
3441
- range:Range;
3442
- rangeLength:number;
3443
- text:string;
3444
-
3445
- constructor();
3446
- }
3447
-
3448
3526
  export class MarkupContent {
3449
3527
  kind:string;
3450
3528
  value:string;
@@ -3452,33 +3530,27 @@ export namespace dh.lsp {
3452
3530
  constructor();
3453
3531
  }
3454
3532
 
3455
- export class Hover {
3456
- contents:MarkupContent;
3457
- range:Range;
3533
+ export class SignatureInformation {
3534
+ label:string;
3535
+ documentation:MarkupContent;
3536
+ parameters:Array<ParameterInformation>;
3537
+ activeParameter:number;
3458
3538
 
3459
3539
  constructor();
3460
3540
  }
3461
3541
 
3462
- export class ParameterInformation {
3463
- label:string;
3464
- documentation:MarkupContent;
3542
+ export class Range {
3543
+ start:Position;
3544
+ end:Position;
3465
3545
 
3466
3546
  constructor();
3547
+
3548
+ isInside(innerStart:Position, innerEnd:Position):boolean;
3467
3549
  }
3468
3550
 
3469
- export class CompletionItem {
3470
- label:string;
3471
- kind:number;
3472
- detail:string;
3473
- documentation:MarkupContent;
3474
- deprecated:boolean;
3475
- preselect:boolean;
3476
- textEdit:TextEdit;
3477
- sortText:string;
3478
- filterText:string;
3479
- insertTextFormat:number;
3480
- additionalTextEdits:Array<TextEdit>;
3481
- commitCharacters:Array<string>;
3551
+ export class Hover {
3552
+ contents:MarkupContent;
3553
+ range:Range;
3482
3554
 
3483
3555
  constructor();
3484
3556
  }
@@ -3496,27 +3568,41 @@ export namespace dh.lsp {
3496
3568
  copy():Position;
3497
3569
  }
3498
3570
 
3499
- export class TextEdit {
3571
+ export class TextDocumentContentChangeEvent {
3500
3572
  range:Range;
3573
+ rangeLength:number;
3501
3574
  text:string;
3502
3575
 
3503
3576
  constructor();
3504
3577
  }
3505
3578
 
3506
- export class Range {
3507
- start:Position;
3508
- end:Position;
3579
+ export class TextEdit {
3580
+ range:Range;
3581
+ text:string;
3509
3582
 
3510
3583
  constructor();
3584
+ }
3511
3585
 
3512
- isInside(innerStart:Position, innerEnd:Position):boolean;
3586
+ export class ParameterInformation {
3587
+ label:string;
3588
+ documentation:MarkupContent;
3589
+
3590
+ constructor();
3513
3591
  }
3514
3592
 
3515
- export class SignatureInformation {
3593
+ export class CompletionItem {
3516
3594
  label:string;
3595
+ kind:number;
3596
+ detail:string;
3517
3597
  documentation:MarkupContent;
3518
- parameters:Array<ParameterInformation>;
3519
- activeParameter:number;
3598
+ deprecated:boolean;
3599
+ preselect:boolean;
3600
+ textEdit:TextEdit;
3601
+ sortText:string;
3602
+ filterText:string;
3603
+ insertTextFormat:number;
3604
+ additionalTextEdits:Array<TextEdit>;
3605
+ commitCharacters:Array<string>;
3520
3606
 
3521
3607
  constructor();
3522
3608
  }
@@ -3525,17 +3611,9 @@ export namespace dh.lsp {
3525
3611
 
3526
3612
  export namespace dh.calendar {
3527
3613
 
3528
- export interface Holiday {
3529
- /**
3530
- * The date of the Holiday.
3531
- * @return {@link dh.LocalDateWrapper}
3532
- */
3533
- get date():dh.LocalDateWrapper;
3534
- /**
3535
- * The business periods that are open on the holiday.
3536
- * @return dh.calendar.BusinessPeriod
3537
- */
3538
- get businessPeriods():Array<BusinessPeriod>;
3614
+ export interface BusinessPeriod {
3615
+ get close():string;
3616
+ get open():string;
3539
3617
  }
3540
3618
  /**
3541
3619
  * Defines a calendar with business hours and holidays.
@@ -3567,9 +3645,17 @@ export namespace dh.calendar {
3567
3645
  */
3568
3646
  get businessPeriods():Array<BusinessPeriod>;
3569
3647
  }
3570
- export interface BusinessPeriod {
3571
- get close():string;
3572
- get open():string;
3648
+ export interface Holiday {
3649
+ /**
3650
+ * The date of the Holiday.
3651
+ * @return {@link dh.LocalDateWrapper}
3652
+ */
3653
+ get date():dh.LocalDateWrapper;
3654
+ /**
3655
+ * The business periods that are open on the holiday.
3656
+ * @return dh.calendar.BusinessPeriod
3657
+ */
3658
+ get businessPeriods():Array<BusinessPeriod>;
3573
3659
  }
3574
3660
 
3575
3661
  type DayOfWeekType = string;