@deephaven/jsapi-types 1.0.0-dev0.35.0 → 1.0.0-dev0.35.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.d.ts +1426 -1390
  2. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,10 +1,6 @@
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
- }
8
4
  /**
9
5
  * This is part of EcmaScript 2015, documented here for completeness. It supports a single method, <b>next()</b>, which
10
6
  * returns an object with a <b>boolean</b> named <b>done</b> (true if there are no more items to return; false
@@ -15,8 +11,28 @@ export interface Iterator<T> {
15
11
  hasNext():boolean;
16
12
  next():IIterableResult<T>;
17
13
  }
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
  */
@@ -90,22 +106,6 @@ export namespace dh.storage {
90
106
  get dirname():string;
91
107
  }
92
108
 
93
- /**
94
- * Represents a file's contents loaded from the server. If an etag was specified when loading, client should first test
95
- * if the etag of this instance matches - if so, the contents will be empty, and the client's existing contents should
96
- * be used.
97
- */
98
- export class FileContents {
99
- protected constructor();
100
-
101
- static blob(blob:Blob):FileContents;
102
- static text(...text:string[]):FileContents;
103
- static arrayBuffers(...buffers:ArrayBuffer[]):FileContents;
104
- text():Promise<string>;
105
- arrayBuffer():Promise<ArrayBuffer>;
106
- get etag():string;
107
- }
108
-
109
109
 
110
110
  type ItemTypeType = string;
111
111
  export class ItemType {
@@ -117,17 +117,6 @@ export namespace dh.storage {
117
117
 
118
118
  export namespace dh {
119
119
 
120
- /**
121
- * Wrap LocalTime values for use in JS. Provides text formatting for display and access to the underlying value.
122
- */
123
- export interface LocalTimeWrapper {
124
- valueOf():string;
125
- getHour():number;
126
- getMinute():number;
127
- getSecond():number;
128
- getNano():number;
129
- toString():string;
130
- }
131
120
  /**
132
121
  * Contains data in the current viewport. Also contains the offset to this data, so that the actual row number may be
133
122
  * determined. Do not assume that the first row in `rows` is the first visible row, because extra rows may be provided
@@ -150,6 +139,17 @@ export namespace dh {
150
139
  */
151
140
  get rows():Array<ViewportRow>;
152
141
  }
142
+ /**
143
+ * Wrap LocalTime values for use in JS. Provides text formatting for display and access to the underlying value.
144
+ */
145
+ export interface LocalTimeWrapper {
146
+ valueOf():string;
147
+ getHour():number;
148
+ getMinute():number;
149
+ getSecond():number;
150
+ getNano():number;
151
+ toString():string;
152
+ }
153
153
  export interface LayoutHints {
154
154
  readonly searchDisplayMode?:SearchDisplayModeType|null;
155
155
 
@@ -160,34 +160,11 @@ export namespace dh {
160
160
  get frontColumns():string[]|null;
161
161
  get backColumns():string[]|null;
162
162
  }
163
- export interface ColumnGroup {
164
- get name():string|null;
165
- get children():string[]|null;
166
- get color():string|null;
167
- }
168
- /**
169
- * Common interface for various ways of accessing table data and formatting.
170
- *
171
- * Java note: this interface contains some extra overloads that aren't available in JS. Implementations are expected to
172
- * implement only abstract methods, and default methods present in this interface will dispatch accordingly.
173
- */
174
- export interface TableData {
175
- get(index:LongWrapper|number):Row;
176
- getData(index:LongWrapper|number, column:Column):any;
177
- getFormat(index:LongWrapper|number, column:Column):Format;
178
- get columns():Array<Column>;
179
- get rows():Array<Row>;
180
- }
181
163
  export interface Row {
182
164
  get(column:Column):any;
183
165
  getFormat(column:Column):Format;
184
166
  get index():LongWrapper;
185
167
  }
186
- export interface TreeViewportData extends TableData {
187
- get offset():number;
188
- get columns():Array<Column>;
189
- get rows():Array<TreeRow>;
190
- }
191
168
  /**
192
169
  * Represents a table which can be joined to another table. Current implementations are {@link dh.Table} and
193
170
  * {@link dh.TotalsTable}.
@@ -277,58 +254,95 @@ export namespace dh {
277
254
  */
278
255
  naturalJoin(rightTable:JoinableTable, columnsToMatch:Array<string>, columnsToAdd?:Array<string>|undefined|null):Promise<Table>;
279
256
  }
280
- export interface HasEventHandling {
257
+ /**
258
+ * Common interface for various ways of accessing table data and formatting.
259
+ *
260
+ * Java note: this interface contains some extra overloads that aren't available in JS. Implementations are expected to
261
+ * implement only abstract methods, and default methods present in this interface will dispatch accordingly.
262
+ */
263
+ export interface TableData {
264
+ get(index:LongWrapper|number):Row;
265
+ getData(index:LongWrapper|number, column:Column):any;
266
+ getFormat(index:LongWrapper|number, column:Column):Format;
267
+ get columns():Array<Column>;
268
+ get rows():Array<Row>;
269
+ }
270
+ /**
271
+ * Represents a server-side object that may not yet have been fetched by the client. When this object will no longer be
272
+ * used, if {@link fetch} is not called on this object, then {@link close} must be to ensure server-side resources
273
+ * are correctly freed.
274
+ */
275
+ export interface WidgetExportedObject {
281
276
  /**
282
- * Listen for events on this object.
283
- * @param name - the name of the event to listen for
284
- * @param callback - a function to call when the event occurs
285
- * @return Returns a cleanup function.
286
- * @typeParam T - the type of the data that the event will provide
277
+ * Returns the type of this export, typically one of {@link dh.VariableType}, but may also include plugin types. If
278
+ * null, this object cannot be fetched, but can be passed to the server, such as via
279
+ * {@link Widget.sendMessage}.
280
+ * @return the string type of this server-side object, or null.
287
281
  */
288
- addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
289
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
290
- hasListeners(name:string):boolean;
282
+ readonly type?:string|null;
283
+
291
284
  /**
292
- * Removes an event listener added to this table.
293
- * @param name -
294
- * @param callback -
295
- * @return
296
- * @typeParam T -
285
+ * Exports another copy of this reference, allowing it to be fetched separately. Results in rejection if the ticket
286
+ * was already closed (either by calling {@link WidgetExportedObject.close} or closing the object returned from {@link WidgetExportedObject.fetch}).
287
+ * @return a promise returning a reexported copy of this object, still referencing the same server-side object.
297
288
  */
298
- removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
289
+ reexport():Promise<WidgetExportedObject>;
290
+ /**
291
+ * Returns a promise that will fetch the object represented by this reference. Multiple calls to this will return
292
+ * the same instance.
293
+ * @return a promise that will resolve to a client side object that represents the reference on the server.
294
+ */
295
+ fetch():Promise<any>;
296
+ /**
297
+ * Releases the server-side resources associated with this object, regardless of whether other client-side objects
298
+ * exist that also use that object. Should not be called after fetch() has been invoked.
299
+ */
300
+ close():void;
299
301
  }
300
302
  /**
301
- * Row implementation that also provides additional read-only properties. represents visible rows in the table,
302
- * but with additional properties to reflect the tree structure.
303
+ * Encapsulates event handling around table subscriptions by "cheating" and wrapping up a JsTable instance to do the
304
+ * real dirty work. This allows a viewport to stay open on the old table if desired, while this one remains open.
305
+ * <p>
306
+ * As this just wraps a JsTable (and thus a CTS), it holds its own flattened, pUT'd handle to get deltas from the
307
+ * server. The setViewport method can be used to adjust this table instead of creating a new one.
308
+ * <p>
309
+ * Existing methods on JsTable like setViewport and getViewportData are intended to proxy to this, which then will talk
310
+ * to the underlying handle and accumulated data.
311
+ * <p>
312
+ * As long as we keep the existing methods/events on JsTable, close() is not required if no other method is called, with
313
+ * the idea then that the caller did not actually use this type. This means that for every exported method (which then
314
+ * will mark the instance of "actually being used, please don't automatically close me"), there must be an internal
315
+ * version called by those existing JsTable method, which will allow this instance to be cleaned up once the JsTable
316
+ * deems it no longer in use.
317
+ * <p>
318
+ * Note that if the caller does close an instance, this shuts down the JsTable's use of this (while the converse is not
319
+ * true), providing a way to stop the server from streaming updates to the client.
320
+ *
321
+ * This object serves as a "handle" to a subscription, allowing it to be acted on directly or canceled outright. If you
322
+ * retain an instance of this, you have two choices - either only use it to call `close()` on it to stop the table's
323
+ * viewport without creating a new one, or listen directly to this object instead of the table for data events, and
324
+ * always call `close()` when finished. Calling any method on this object other than close() will result in it
325
+ * continuing to live on after `setViewport` is called on the original table, or after the table is modified.
303
326
  */
304
- export interface TreeRow extends ViewportRow {
305
- /**
306
- * True if this node is currently expanded to show its children; false otherwise. Those children will be the
307
- * rows below this one with a greater depth than this one
308
- * @return boolean
309
- */
310
- get isExpanded():boolean;
327
+ export interface TableViewportSubscription extends HasEventHandling {
311
328
  /**
312
- * The number of levels above this node; zero for top level nodes. Generally used by the UI to indent the
313
- * row and its expand/collapse icon
314
- * @return int
329
+ * Changes the rows and columns set on this viewport. This cannot be used to change the update interval.
330
+ * @param firstRow -
331
+ * @param lastRow -
332
+ * @param columns -
333
+ * @param updateIntervalMs -
315
334
  */
316
- get depth():number;
335
+ setViewport(firstRow:number, lastRow:number, columns?:Column[]|undefined|null, updateIntervalMs?:number|undefined|null):void;
317
336
  /**
318
- * True if this node has children and can be expanded; false otherwise. Note that this value may change when
319
- * the table updates, depending on the table's configuration
320
- * @return boolean
337
+ * Stops this viewport from running, stopping all events on itself and on the table that created it.
321
338
  */
322
- get hasChildren():boolean;
323
- get index():LongWrapper;
324
- }
325
- export interface WorkerHeapInfo {
339
+ close():void;
326
340
  /**
327
- * Total heap size available for this worker.
341
+ * Gets the data currently visible in this viewport
342
+ * @return Promise of {@link dh.TableData}.
328
343
  */
329
- get totalHeapSize():number;
330
- get freeMemory():number;
331
- get maximumHeapSize():number;
344
+ getViewportData():Promise<TableData>;
345
+ snapshot(rows:RangeSet, columns:Column[]):Promise<TableData>;
332
346
  }
333
347
  /**
334
348
  * Javascript wrapper for {@link io.deephaven.web.shared.data.ColumnStatistics} This class holds the results of a call to generate statistics on a
@@ -359,6 +373,33 @@ export namespace dh {
359
373
  get statisticsMap():Map<string, object>;
360
374
  }
361
375
  /**
376
+ * Represents the contents of a single widget data message from the server, with a binary data paylod and exported
377
+ * objects. Implemented both by Widget itself and by the `event.details` when data is received by the client.
378
+ *
379
+ * Terminology note: the name of this type should probably use "Data" instead of "Message", and the methods should use
380
+ * "payload" rather than "data" to match other platforms and the protobuf itself. These names are instead used for
381
+ * backwards compatibility and to better follow JS expectations.
382
+ */
383
+ export interface WidgetMessageDetails {
384
+ /**
385
+ * Returns the data from this message as a base64-encoded string.
386
+ */
387
+ getDataAsBase64():string;
388
+ /**
389
+ * Returns the data from this message as a Uint8Array.
390
+ */
391
+ getDataAsU8():Uint8Array;
392
+ /**
393
+ * Returns the data from this message as a utf-8 string.
394
+ */
395
+ getDataAsString():string;
396
+ /**
397
+ * Returns an array of exported objects sent from the server. The plugin implementation is now responsible for these
398
+ * objects, and should close them when no longer needed.
399
+ */
400
+ get exportedObjects():WidgetExportedObject[];
401
+ }
402
+ /**
362
403
  * Behaves like a Table, but doesn't expose all of its API for changing the internal state. Instead, state is driven by
363
404
  * the upstream table - when it changes handle, this listens and updates its own handle accordingly.
364
405
  *
@@ -487,66 +528,103 @@ export namespace dh {
487
528
  */
488
529
  get isRefreshing():boolean;
489
530
  }
531
+ export interface RefreshToken {
532
+ get bytes():string;
533
+ get expiry():number;
534
+ }
490
535
  /**
491
- * Event data, describing the indexes that were added/removed/updated, and providing access to Rows (and thus data
492
- * in columns) either by index, or scanning the complete present index.
493
- *
494
- * This class supports two ways of reading the table - checking the changes made since the last update, and reading
495
- * all data currently in the table. While it is more expensive to always iterate over every single row in the table,
496
- * it may in some cases actually be cheaper than maintaining state separately and updating only the changes, though
497
- * both options should be considered.
498
- *
499
- * The RangeSet objects allow iterating over the LongWrapper indexes in the table. Note that these "indexes" are not
500
- * necessarily contiguous and may be negative, and represent some internal state on the server, allowing it to keep
501
- * track of data efficiently. Those LongWrapper objects can be passed to the various methods on this instance to
502
- * read specific rows or cells out of the table.
536
+ * This object may be pooled internally or discarded and not updated. Do not retain references to it.
503
537
  */
504
- export interface SubscriptionTableData extends TableData {
505
- get fullIndex():RangeSet;
538
+ export interface Format {
506
539
  /**
507
- * The ordered set of row indexes removed since the last update
508
- * @return dh.RangeSet
540
+ * The format string to apply to the value of this cell.
541
+ * @return String
509
542
  */
510
- get removed():RangeSet;
543
+ readonly formatString?:string|null;
511
544
  /**
512
- * The ordered set of row indexes added since the last update
513
- * @return dh.RangeSet
514
- */
515
- get added():RangeSet;
516
- get columns():Array<Column>;
545
+ * Color to apply to the cell's background, in <b>#rrggbb</b> format.
546
+ * @return String
547
+ */
548
+ readonly backgroundColor?:string|null;
517
549
  /**
518
- * The ordered set of row indexes updated since the last update
519
- * @return dh.RangeSet
550
+ * Color to apply to the text, in <b>#rrggbb</b> format.
551
+ * @return String
520
552
  */
521
- get modified():RangeSet;
522
- get rows():Array<Row>;
553
+ readonly color?:string|null;
554
+ /**
555
+ *
556
+ * @deprecated Prefer formatString. Number format string to apply to the value in this cell.
557
+ */
558
+ readonly numberFormat?:string|null;
523
559
  }
524
560
  /**
525
- * Represents the contents of a single widget data message from the server, with a binary data paylod and exported
526
- * objects. Implemented both by Widget itself and by the `event.details` when data is received by the client.
561
+ * Wrap LocalDate values for use in JS. Provides text formatting for display and access to the underlying value.
562
+ */
563
+ export interface LocalDateWrapper {
564
+ valueOf():string;
565
+ getYear():number;
566
+ getMonthValue():number;
567
+ getDayOfMonth():number;
568
+ toString():string;
569
+ }
570
+ /**
571
+ * Event data, describing the indexes that were added/removed/updated, and providing access to Rows (and thus data
572
+ * in columns) either by index, or scanning the complete present index.
527
573
  *
528
- * Terminology note: the name of this type should probably use "Data" instead of "Message", and the methods should use
529
- * "payload" rather than "data" to match other platforms and the protobuf itself. These names are instead used for
530
- * backwards compatibility and to better follow JS expectations.
574
+ * This class supports two ways of reading the table - checking the changes made since the last update, and reading
575
+ * all data currently in the table. While it is more expensive to always iterate over every single row in the table,
576
+ * it may in some cases actually be cheaper than maintaining state separately and updating only the changes, though
577
+ * both options should be considered.
578
+ *
579
+ * The RangeSet objects allow iterating over the LongWrapper indexes in the table. Note that these "indexes" are not
580
+ * necessarily contiguous and may be negative, and represent some internal state on the server, allowing it to keep
581
+ * track of data efficiently. Those LongWrapper objects can be passed to the various methods on this instance to
582
+ * read specific rows or cells out of the table.
531
583
  */
532
- export interface WidgetMessageDetails {
584
+ export interface SubscriptionTableData extends TableData {
585
+ get fullIndex():RangeSet;
533
586
  /**
534
- * Returns the data from this message as a base64-encoded string.
587
+ * The ordered set of row indexes removed since the last update
588
+ * @return dh.RangeSet
535
589
  */
536
- getDataAsBase64():string;
590
+ get removed():RangeSet;
537
591
  /**
538
- * Returns the data from this message as a Uint8Array.
592
+ * The ordered set of row indexes added since the last update
593
+ * @return dh.RangeSet
539
594
  */
540
- getDataAsU8():Uint8Array;
595
+ get added():RangeSet;
596
+ get columns():Array<Column>;
541
597
  /**
542
- * Returns the data from this message as a utf-8 string.
598
+ * The ordered set of row indexes updated since the last update
599
+ * @return dh.RangeSet
543
600
  */
544
- getDataAsString():string;
601
+ get modified():RangeSet;
602
+ get rows():Array<Row>;
603
+ }
604
+ export interface HasEventHandling {
545
605
  /**
546
- * Returns an array of exported objects sent from the server. The plugin implementation is now responsible for these
547
- * objects, and should close them when no longer needed.
606
+ * Listen for events on this object.
607
+ * @param name - the name of the event to listen for
608
+ * @param callback - a function to call when the event occurs
609
+ * @return Returns a cleanup function.
610
+ * @typeParam T - the type of the data that the event will provide
548
611
  */
549
- get exportedObjects():WidgetExportedObject[];
612
+ addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
613
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
614
+ hasListeners(name:string):boolean;
615
+ /**
616
+ * Removes an event listener added to this table.
617
+ * @param name -
618
+ * @param callback -
619
+ * @return
620
+ * @typeParam T -
621
+ */
622
+ removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
623
+ }
624
+ export interface TreeViewportData extends TableData {
625
+ get offset():number;
626
+ get columns():Array<Column>;
627
+ get rows():Array<TreeRow>;
550
628
  }
551
629
  /**
552
630
  * This object may be pooled internally or discarded and not updated. Do not retain references to it. Instead, request
@@ -556,141 +634,310 @@ export namespace dh {
556
634
  get index():LongWrapper;
557
635
  }
558
636
  /**
559
- * Represents a server-side object that may not yet have been fetched by the client. When this object will no longer be
560
- * used, if {@link fetch} is not called on this object, then {@link close} must be to ensure server-side resources
561
- * are correctly freed.
637
+ * Row implementation that also provides additional read-only properties. represents visible rows in the table,
638
+ * but with additional properties to reflect the tree structure.
562
639
  */
563
- export interface WidgetExportedObject {
640
+ export interface TreeRow extends ViewportRow {
564
641
  /**
565
- * Returns the type of this export, typically one of {@link dh.VariableType}, but may also include plugin types. If
566
- * null, this object cannot be fetched, but can be passed to the server, such as via
567
- * {@link Widget.sendMessage}.
568
- * @return the string type of this server-side object, or null.
642
+ * True if this node is currently expanded to show its children; false otherwise. Those children will be the
643
+ * rows below this one with a greater depth than this one
644
+ * @return boolean
569
645
  */
570
- readonly type?:string|null;
571
-
646
+ get isExpanded():boolean;
572
647
  /**
573
- * Exports another copy of this reference, allowing it to be fetched separately. Results in rejection if the ticket
574
- * was already closed (either by calling {@link WidgetExportedObject.close} or closing the object returned from {@link WidgetExportedObject.fetch}).
575
- * @return a promise returning a reexported copy of this object, still referencing the same server-side object.
648
+ * The number of levels above this node; zero for top level nodes. Generally used by the UI to indent the
649
+ * row and its expand/collapse icon
650
+ * @return int
576
651
  */
577
- reexport():Promise<WidgetExportedObject>;
652
+ get depth():number;
578
653
  /**
579
- * Returns a promise that will fetch the object represented by this reference. Multiple calls to this will return
580
- * the same instance.
581
- * @return a promise that will resolve to a client side object that represents the reference on the server.
654
+ * True if this node has children and can be expanded; false otherwise. Note that this value may change when
655
+ * the table updates, depending on the table's configuration
656
+ * @return boolean
582
657
  */
583
- fetch():Promise<any>;
658
+ get hasChildren():boolean;
659
+ get index():LongWrapper;
660
+ }
661
+ export interface WorkerHeapInfo {
584
662
  /**
585
- * Releases the server-side resources associated with this object, regardless of whether other client-side objects
586
- * exist that also use that object. Should not be called after fetch() has been invoked.
663
+ * Total heap size available for this worker.
587
664
  */
588
- close():void;
589
- }
590
- /**
591
- * Wrap LocalDate values for use in JS. Provides text formatting for display and access to the underlying value.
592
- */
593
- export interface LocalDateWrapper {
594
- valueOf():string;
595
- getYear():number;
596
- getMonthValue():number;
597
- getDayOfMonth():number;
598
- toString():string;
665
+ get totalHeapSize():number;
666
+ get freeMemory():number;
667
+ get maximumHeapSize():number;
599
668
  }
600
- export interface RefreshToken {
601
- get bytes():string;
602
- get expiry():number;
669
+ export interface ColumnGroup {
670
+ get name():string|null;
671
+ get children():string[]|null;
672
+ get color():string|null;
603
673
  }
674
+
604
675
  /**
605
- * This object may be pooled internally or discarded and not updated. Do not retain references to it.
676
+ * Describes a Sort present on the table. No visible constructor, created through the use of Column.sort(), will be tied
677
+ * to that particular column data. Sort instances are immutable, and use a builder pattern to make modifications. All
678
+ * methods return a new Sort instance.
606
679
  */
607
- export interface Format {
608
- /**
609
- * The format string to apply to the value of this cell.
610
- * @return String
611
- */
612
- readonly formatString?:string|null;
680
+ export class Sort {
681
+ static readonly ASCENDING:string;
682
+ static readonly DESCENDING:string;
683
+ static readonly REVERSE:string;
684
+
685
+ protected constructor();
686
+
613
687
  /**
614
- * Color to apply to the cell's background, in <b>#rrggbb</b> format.
615
- * @return String
688
+ * Builds a Sort instance to sort values in ascending order.
689
+ * @return {@link dh.Sort}
616
690
  */
617
- readonly backgroundColor?:string|null;
691
+ asc():Sort;
618
692
  /**
619
- * Color to apply to the text, in <b>#rrggbb</b> format.
620
- * @return String
693
+ * Builds a Sort instance to sort values in descending order.
694
+ * @return {@link dh.Sort}
621
695
  */
622
- readonly color?:string|null;
696
+ desc():Sort;
623
697
  /**
624
- *
625
- * @deprecated Prefer formatString. Number format string to apply to the value in this cell.
698
+ * Builds a Sort instance which takes the absolute value before applying order.
699
+ * @return {@link dh.Sort}
626
700
  */
627
- readonly numberFormat?:string|null;
628
- }
629
- /**
630
- * Encapsulates event handling around table subscriptions by "cheating" and wrapping up a JsTable instance to do the
631
- * real dirty work. This allows a viewport to stay open on the old table if desired, while this one remains open.
632
- * <p>
633
- * As this just wraps a JsTable (and thus a CTS), it holds its own flattened, pUT'd handle to get deltas from the
634
- * server. The setViewport method can be used to adjust this table instead of creating a new one.
635
- * <p>
636
- * Existing methods on JsTable like setViewport and getViewportData are intended to proxy to this, which then will talk
637
- * to the underlying handle and accumulated data.
638
- * <p>
639
- * As long as we keep the existing methods/events on JsTable, close() is not required if no other method is called, with
640
- * the idea then that the caller did not actually use this type. This means that for every exported method (which then
641
- * will mark the instance of "actually being used, please don't automatically close me"), there must be an internal
642
- * version called by those existing JsTable method, which will allow this instance to be cleaned up once the JsTable
643
- * deems it no longer in use.
644
- * <p>
645
- * Note that if the caller does close an instance, this shuts down the JsTable's use of this (while the converse is not
646
- * true), providing a way to stop the server from streaming updates to the client.
647
- *
648
- * This object serves as a "handle" to a subscription, allowing it to be acted on directly or canceled outright. If you
649
- * retain an instance of this, you have two choices - either only use it to call `close()` on it to stop the table's
650
- * viewport without creating a new one, or listen directly to this object instead of the table for data events, and
651
- * always call `close()` when finished. Calling any method on this object other than close() will result in it
652
- * continuing to live on after `setViewport` is called on the original table, or after the table is modified.
653
- */
654
- export interface TableViewportSubscription extends HasEventHandling {
701
+ abs():Sort;
702
+ toString():string;
655
703
  /**
656
- * Changes the rows and columns set on this viewport. This cannot be used to change the update interval.
657
- * @param firstRow -
658
- * @param lastRow -
659
- * @param columns -
660
- * @param updateIntervalMs -
704
+ * True if the absolute value of the column should be used when sorting; defaults to false.
705
+ * @return boolean
661
706
  */
662
- setViewport(firstRow:number, lastRow:number, columns?:Column[]|undefined|null, updateIntervalMs?:number|undefined|null):void;
707
+ get isAbs():boolean;
663
708
  /**
664
- * Stops this viewport from running, stopping all events on itself and on the table that created it.
709
+ * The column which is sorted.
710
+ * @return {@link dh.Column}
665
711
  */
666
- close():void;
712
+ get column():Column;
667
713
  /**
668
- * Gets the data currently visible in this viewport
669
- * @return Promise of {@link dh.TableData}.
714
+ * The direction of this sort, either <b>ASC</b>, <b>DESC</b>, or <b>REVERSE</b>.
715
+ * @return String
670
716
  */
671
- getViewportData():Promise<TableData>;
672
- snapshot(rows:RangeSet, columns:Column[]):Promise<TableData>;
717
+ get direction():string;
673
718
  }
674
719
 
675
720
  /**
676
- * Exists to keep the dh.TableMap namespace so that the web UI can remain compatible with the DHE API, which still calls
677
- * this type TableMap.
678
- * @deprecated
721
+ * Wrap BigInteger values for use in JS. Provides text formatting for display and access to the underlying value.
679
722
  */
680
- export class TableMap {
681
- static readonly EVENT_KEYADDED:string;
682
- static readonly EVENT_DISCONNECT:string;
683
- static readonly EVENT_RECONNECT:string;
684
- static readonly EVENT_RECONNECTFAILED:string;
685
-
723
+ export class BigIntegerWrapper {
686
724
  protected constructor();
687
- }
688
725
 
689
- export class IdeSession implements HasEventHandling {
690
- static readonly EVENT_COMMANDSTARTED:string;
691
- static readonly EVENT_REQUEST_FAILED:string;
726
+ static ofString(str:string):BigIntegerWrapper;
727
+ asNumber():number;
728
+ valueOf():string;
729
+ toString():string;
730
+ }
692
731
 
693
- protected constructor();
732
+ /**
733
+ * Event fired when a command is issued from the client.
734
+ */
735
+ export class CommandInfo {
736
+ constructor(code:string, result:Promise<dh.ide.CommandResult>);
737
+
738
+ get result():Promise<dh.ide.CommandResult>;
739
+ get code():string;
740
+ }
741
+
742
+ /**
743
+ * Describes data that can be filtered, either a column reference or a literal value. Used this way, the type of a value
744
+ * can be specified so that values which are ambiguous or not well supported in JS will not be confused with Strings or
745
+ * imprecise numbers (e.g., nanosecond-precision date values). Additionally, once wrapped in this way, methods can be
746
+ * called on these value literal instances. These instances are immutable - any method called on them returns a new
747
+ * instance.
748
+ */
749
+ export class FilterValue {
750
+ protected constructor();
751
+
752
+ /**
753
+ * Constructs a number for the filter API from the given parameter. Can also be used on the values returned from
754
+ * {@link TableData.get} for DateTime values. To create
755
+ * a filter with a date, use <b>dh.DateWrapper.ofJsDate</b> or
756
+ * {@link i18n.DateTimeFormat.parse}. To create a filter with a
757
+ * 64-bit long integer, use {@link LongWrapper.ofString}.
758
+ * @param input - the number to wrap as a FilterValue
759
+ * @return an immutable FilterValue that can be built into a filter
760
+ */
761
+ static ofNumber(input:LongWrapper|number):FilterValue;
762
+ /**
763
+ * a filter condition checking if the current value is equal to the given parameter
764
+ * @param term -
765
+ * @return {@link dh.FilterCondition}
766
+ */
767
+ eq(term:FilterValue):FilterCondition;
768
+ /**
769
+ * a filter condition checking if the current value is equal to the given parameter, ignoring differences of upper
770
+ * vs lower case
771
+ * @param term -
772
+ * @return {@link dh.FilterCondition}
773
+ */
774
+ eqIgnoreCase(term:FilterValue):FilterCondition;
775
+ /**
776
+ * a filter condition checking if the current value is not equal to the given parameter
777
+ * @param term -
778
+ * @return {@link dh.FilterCondition}
779
+ */
780
+ notEq(term:FilterValue):FilterCondition;
781
+ /**
782
+ * a filter condition checking if the current value is not equal to the given parameter, ignoring differences of
783
+ * upper vs lower case
784
+ * @param term -
785
+ * @return {@link dh.FilterCondition}
786
+ */
787
+ notEqIgnoreCase(term:FilterValue):FilterCondition;
788
+ /**
789
+ * a filter condition checking if the current value is greater than the given parameter
790
+ * @param term -
791
+ * @return {@link dh.FilterCondition}
792
+ */
793
+ greaterThan(term:FilterValue):FilterCondition;
794
+ /**
795
+ * a filter condition checking if the current value is less than the given parameter
796
+ * @param term -
797
+ * @return {@link dh.FilterCondition}
798
+ */
799
+ lessThan(term:FilterValue):FilterCondition;
800
+ /**
801
+ * a filter condition checking if the current value is greater than or equal to the given parameter
802
+ * @param term -
803
+ * @return {@link dh.FilterCondition}
804
+ */
805
+ greaterThanOrEqualTo(term:FilterValue):FilterCondition;
806
+ /**
807
+ * a filter condition checking if the current value is less than or equal to the given parameter
808
+ * @param term -
809
+ * @return {@link dh.FilterCondition}
810
+ */
811
+ lessThanOrEqualTo(term:FilterValue):FilterCondition;
812
+ /**
813
+ * a filter condition checking if the current value is in the given set of values
814
+ * @param terms -
815
+ * @return {@link dh.FilterCondition}
816
+ */
817
+ in(terms:FilterValue[]):FilterCondition;
818
+ /**
819
+ * a filter condition checking if the current value is in the given set of values, ignoring differences of upper vs
820
+ * lower case
821
+ * @param terms -
822
+ * @return {@link dh.FilterCondition}
823
+ */
824
+ inIgnoreCase(terms:FilterValue[]):FilterCondition;
825
+ /**
826
+ * a filter condition checking that the current value is not in the given set of values
827
+ * @param terms -
828
+ * @return {@link dh.FilterCondition}
829
+ */
830
+ notIn(terms:FilterValue[]):FilterCondition;
831
+ /**
832
+ * a filter condition checking that the current value is not in the given set of values, ignoring differences of
833
+ * upper vs lower case
834
+ * @param terms -
835
+ * @return {@link dh.FilterCondition}
836
+ */
837
+ notInIgnoreCase(terms:FilterValue[]):FilterCondition;
838
+ /**
839
+ * a filter condition checking if the given value contains the given string value
840
+ * @param term -
841
+ * @return {@link dh.FilterCondition}
842
+ */
843
+ contains(term:FilterValue):FilterCondition;
844
+ /**
845
+ * a filter condition checking if the given value contains the given string value, ignoring differences of upper vs
846
+ * lower case
847
+ * @param term -
848
+ * @return {@link dh.FilterCondition}
849
+ */
850
+ containsIgnoreCase(term:FilterValue):FilterCondition;
851
+ /**
852
+ * a filter condition checking if the given value matches the provided regular expressions string. Regex patterns
853
+ * use Java regex syntax
854
+ * @param pattern -
855
+ * @return {@link dh.FilterCondition}
856
+ */
857
+ matches(pattern:FilterValue):FilterCondition;
858
+ /**
859
+ * a filter condition checking if the given value matches the provided regular expressions string, ignoring
860
+ * differences of upper vs lower case. Regex patterns use Java regex syntax
861
+ * @param pattern -
862
+ * @return {@link dh.FilterCondition}
863
+ */
864
+ matchesIgnoreCase(pattern:FilterValue):FilterCondition;
865
+ /**
866
+ * a filter condition checking if the current value is a true boolean
867
+ * @return {@link dh.FilterCondition}
868
+ */
869
+ isTrue():FilterCondition;
870
+ /**
871
+ * a filter condition checking if the current value is a false boolean
872
+ * @return {@link dh.FilterCondition}
873
+ */
874
+ isFalse():FilterCondition;
875
+ /**
876
+ * a filter condition checking if the current value is a null value
877
+ * @return {@link dh.FilterCondition}
878
+ */
879
+ isNull():FilterCondition;
880
+ /**
881
+ * a filter condition invoking the given method on the current value, with the given parameters. Currently supported
882
+ * functions that can be invoked on a String:
883
+ * <ul>
884
+ * <li><b>startsWith</b>: Returns true if the current string value starts with the supplied string argument</li>
885
+ * <li><b>endsWith</b>: Returns true if the current string value ends with the supplied string argument</li>
886
+ * <li><b>matches</b>: Returns true if the current string value matches the supplied string argument used as a Java
887
+ * regular expression</li>
888
+ * <li><b>contains</b>: Returns true if the current string value contains the supplied string argument
889
+ * <p>
890
+ * When invoking against a constant, this should be avoided in favor of FilterValue.contains
891
+ * </p>
892
+ * </li>
893
+ * </ul>
894
+ * @param method -
895
+ * @param args -
896
+ * @return
897
+ */
898
+ invoke(method:string, ...args:FilterValue[]):FilterCondition;
899
+ toString():string;
900
+ /**
901
+ * Constructs a string for the filter API from the given parameter.
902
+ * @param input -
903
+ * @return
904
+ */
905
+ static ofString(input:any):FilterValue;
906
+ /**
907
+ * Constructs a boolean for the filter API from the given parameter.
908
+ * @param b -
909
+ * @return
910
+ */
911
+ static ofBoolean(b:boolean):FilterValue;
912
+ }
913
+
914
+
915
+ export class LongWrapper {
916
+ protected constructor();
917
+
918
+ static ofString(str:string):LongWrapper;
919
+ asNumber():number;
920
+ valueOf():string;
921
+ toString():string;
922
+ }
923
+
924
+ /**
925
+ * Deprecated for use in Deephaven Core.
926
+ * @deprecated
927
+ */
928
+ export class Client {
929
+ static readonly EVENT_REQUEST_FAILED:string;
930
+ static readonly EVENT_REQUEST_STARTED:string;
931
+ static readonly EVENT_REQUEST_SUCCEEDED:string;
932
+
933
+ constructor();
934
+ }
935
+
936
+ export class IdeSession implements HasEventHandling {
937
+ static readonly EVENT_COMMANDSTARTED:string;
938
+ static readonly EVENT_REQUEST_FAILED:string;
939
+
940
+ protected constructor();
694
941
 
695
942
  /**
696
943
  * Load the named table, with columns and size information already fully populated.
@@ -754,107 +1001,14 @@ export namespace dh {
754
1001
  removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
755
1002
  }
756
1003
 
757
- /**
758
- * Represents a set of Tables each corresponding to some key. The keys are available locally, but a call must be made to
759
- * the server to get each Table. All tables will have the same structure.
760
- */
761
- export class PartitionedTable implements HasEventHandling {
762
- /**
763
- * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
764
- */
765
- static readonly EVENT_KEYADDED:string;
766
- /**
767
- * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
768
- */
1004
+ export class QueryInfo {
1005
+ static readonly EVENT_TABLE_OPENED:string;
769
1006
  static readonly EVENT_DISCONNECT:string;
770
- /**
771
- * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
772
- */
773
1007
  static readonly EVENT_RECONNECT:string;
774
- /**
775
- * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
776
- */
777
- static readonly EVENT_RECONNECTFAILED:string;
1008
+ static readonly EVENT_CONNECT:string;
778
1009
 
779
1010
  protected constructor();
780
-
781
- typedTicket():dhinternal.io.deephaven.proto.ticket_pb.TypedTicket;
782
- /**
783
- * Fetch the table with the given key. If the key does not exist, returns `null`.
784
- * @param key - The key to fetch. An array of values for each key column, in the same order as the key columns are.
785
- * @return Promise of dh.Table, or `null` if the key does not exist.
786
- */
787
- getTable(key:object):Promise<Table|undefined|null>;
788
- /**
789
- * Open a new table that is the result of merging all constituent tables. See
790
- * {@link io.deephaven.engine.table.PartitionedTable#merge()} for details.
791
- * @return A merged representation of the constituent tables.
792
- */
793
- getMergedTable():Promise<Table>;
794
- /**
795
- * The set of all currently known keys. This is kept up to date, so getting the list after adding an event listener
796
- * for <b>keyadded</b> will ensure no keys are missed.
797
- * @return Set of Object
798
- */
799
- getKeys():Set<object>;
800
- /**
801
- * Fetch a table containing all the valid keys of the partitioned table.
802
- * @return Promise of a Table
803
- */
804
- getKeyTable():Promise<Table>;
805
- /**
806
- * Indicates that this PartitionedTable will no longer be used, removing subcriptions to updated keys, etc. This
807
- * will not affect tables in use.
808
- */
809
- close():void;
810
- /**
811
- * The count of known keys.
812
- * @return int
813
- */
814
- get size():number;
815
- /**
816
- * An array of the columns in the tables that can be retrieved from this partitioned table, including both key and
817
- * non-key columns.
818
- * @return Array of Column
819
- */
820
- get columns():Column[];
821
- /**
822
- * An array of all the key columns that the tables are partitioned by.
823
- * @return Array of Column
824
- */
825
- get keyColumns():Column[];
826
- /**
827
- * Listen for events on this object.
828
- * @param name - the name of the event to listen for
829
- * @param callback - a function to call when the event occurs
830
- * @return Returns a cleanup function.
831
- * @typeParam T - the type of the data that the event will provide
832
- */
833
- addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
834
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
835
- hasListeners(name:string):boolean;
836
- /**
837
- * Removes an event listener added to this table.
838
- * @param name -
839
- * @param callback -
840
- * @return
841
- * @typeParam T -
842
- */
843
- removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
844
- }
845
-
846
- export class Ide {
847
- constructor();
848
-
849
- /**
850
- * @deprecated
851
- */
852
- getExistingSession(websocketUrl:string, authToken:string, serviceId:string, language:string):Promise<IdeSession>;
853
- /**
854
- * @deprecated
855
- */
856
- static getExistingSession(websocketUrl:string, authToken:string, serviceId:string, language:string):Promise<IdeSession>;
857
- }
1011
+ }
858
1012
 
859
1013
  /**
860
1014
  * A Widget represents a server side object that sends one or more responses to the client. The client can then
@@ -947,6 +1101,113 @@ export namespace dh {
947
1101
  get type():string;
948
1102
  }
949
1103
 
1104
+ /**
1105
+ * Describes how a Totals Table will be generated from its parent table. Each table has a default (which may be null)
1106
+ * indicating how that table was configured when it was declared, and each Totals Table has a similar property
1107
+ * describing how it was created. Both the <b>Table.getTotalsTable</b> and <b>Table.getGrandTotalsTable</b> methods take
1108
+ * this config as an optional parameter - without it, the table's default will be used, or if null, a default instance
1109
+ * of <b>TotalsTableConfig</b> will be supplied.
1110
+ *
1111
+ * This class has a no-arg constructor, allowing an instance to be made with the default values provided. However, any
1112
+ * JS object can be passed in to the methods which accept instances of this type, provided their values adhere to the
1113
+ * expected formats.
1114
+ */
1115
+ export class TotalsTableConfig {
1116
+ /**
1117
+ * @deprecated
1118
+ */
1119
+ static readonly COUNT:string;
1120
+ /**
1121
+ * @deprecated
1122
+ */
1123
+ static readonly MIN:string;
1124
+ /**
1125
+ * @deprecated
1126
+ */
1127
+ static readonly MAX:string;
1128
+ /**
1129
+ * @deprecated
1130
+ */
1131
+ static readonly SUM:string;
1132
+ /**
1133
+ * @deprecated
1134
+ */
1135
+ static readonly ABS_SUM:string;
1136
+ /**
1137
+ * @deprecated
1138
+ */
1139
+ static readonly VAR:string;
1140
+ /**
1141
+ * @deprecated
1142
+ */
1143
+ static readonly AVG:string;
1144
+ /**
1145
+ * @deprecated
1146
+ */
1147
+ static readonly STD:string;
1148
+ /**
1149
+ * @deprecated
1150
+ */
1151
+ static readonly FIRST:string;
1152
+ /**
1153
+ * @deprecated
1154
+ */
1155
+ static readonly LAST:string;
1156
+ /**
1157
+ * @deprecated
1158
+ */
1159
+ static readonly SKIP:string;
1160
+ /**
1161
+ * Specifies if a Totals Table should be expanded by default in the UI. Defaults to false.
1162
+ */
1163
+ showTotalsByDefault:boolean;
1164
+ /**
1165
+ * Specifies if a Grand Totals Table should be expanded by default in the UI. Defaults to false.
1166
+ */
1167
+ showGrandTotalsByDefault:boolean;
1168
+ /**
1169
+ * Specifies the default operation for columns that do not have a specific operation applied; defaults to "Sum".
1170
+ */
1171
+ defaultOperation:AggregationOperationType;
1172
+ /**
1173
+ * Mapping from each column name to the aggregation(s) that should be applied to that column in the resulting Totals
1174
+ * Table. If a column is omitted, the defaultOperation is used.
1175
+ */
1176
+ operationMap:{ [key: string]: Array<AggregationOperationType>; };
1177
+ /**
1178
+ * Groupings to use when generating the Totals Table. One row will exist for each unique set of values observed in
1179
+ * these columns. See also `Table.selectDistinct`.
1180
+ */
1181
+ groupBy:Array<string>;
1182
+
1183
+ constructor();
1184
+
1185
+ toString():string;
1186
+ }
1187
+
1188
+ /**
1189
+ * Configuration object for running Table.treeTable to produce a hierarchical view of a given "flat" table.
1190
+ *
1191
+ * Like TotalsTableConfig, `TreeTableConfig` supports an operation map indicating how to aggregate the data, as well as
1192
+ * an array of column names which will be the layers in the roll-up tree, grouped at each level. An additional optional
1193
+ * value can be provided describing the strategy the engine should use when grouping the rows.
1194
+ */
1195
+ export class TreeTableConfig {
1196
+ /**
1197
+ * The column representing the unique ID for each item
1198
+ */
1199
+ idColumn:string;
1200
+ /**
1201
+ * The column representing the parent ID for each item
1202
+ */
1203
+ parentColumn:string;
1204
+ /**
1205
+ * Optional parameter indicating if items with an invalid parent ID should be promoted to root. Defaults to false.
1206
+ */
1207
+ promoteOrphansToRoot:boolean;
1208
+
1209
+ constructor();
1210
+ }
950
1211
 
951
1212
  /**
952
1213
  * Describes a grouping and aggregations for a roll-up table. Pass to the <b>Table.rollup</b> function to create a
@@ -979,45 +1240,86 @@ export namespace dh {
979
1240
  }
980
1241
 
981
1242
  /**
982
- * Presently, this is the entrypoint into the Deephaven JS API. By creating an instance of this with the server URL and
983
- * some options, JS applications can run code on the server, and interact with available exportable objects.
1243
+ * Wrap BigDecimal values for use in JS. Provides text formatting for display and access to the underlying value.
984
1244
  */
985
- export class IdeConnection implements HasEventHandling {
1245
+ export class BigDecimalWrapper {
1246
+ protected constructor();
1247
+
1248
+ static ofString(value:string):BigDecimalWrapper;
1249
+ asNumber():number;
1250
+ valueOf():string;
1251
+ toString():string;
1252
+ }
1253
+
1254
+ /**
1255
+ * Represents a set of Tables each corresponding to some key. The keys are available locally, but a call must be made to
1256
+ * the server to get each Table. All tables will have the same structure.
1257
+ */
1258
+ export class PartitionedTable implements HasEventHandling {
986
1259
  /**
987
- * @deprecated
1260
+ * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
1261
+ */
1262
+ static readonly EVENT_KEYADDED:string;
1263
+ /**
1264
+ * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
988
1265
  */
989
- static readonly HACK_CONNECTION_FAILURE:string;
990
1266
  static readonly EVENT_DISCONNECT:string;
1267
+ /**
1268
+ * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
1269
+ */
991
1270
  static readonly EVENT_RECONNECT:string;
992
- static readonly EVENT_SHUTDOWN:string;
993
-
994
1271
  /**
995
- * creates a new instance, from which console sessions can be made. <b>options</b> are optional.
996
- * @param serverUrl - The url used when connecting to the server. Read-only.
997
- * @param connectOptions - Optional Object
998
- * @param fromJava - Optional boolean
999
- * @deprecated
1272
+ * Indicates that a new key has been added to the array of keys, which can now be fetched with getTable.
1000
1273
  */
1001
- constructor(serverUrl:string, connectOptions?:ConnectOptions, fromJava?:boolean);
1274
+ static readonly EVENT_RECONNECTFAILED:string;
1275
+
1276
+ protected constructor();
1002
1277
 
1278
+ typedTicket():dhinternal.io.deephaven.proto.ticket_pb.TypedTicket;
1003
1279
  /**
1004
- * closes the current connection, releasing any resources on the server or client.
1280
+ * Fetch the table with the given key. If the key does not exist, returns `null`.
1281
+ * @param key - The key to fetch. An array of values for each key column, in the same order as the key columns are.
1282
+ * @return Promise of dh.Table, or `null` if the key does not exist.
1283
+ */
1284
+ getTable(key:object):Promise<Table|undefined|null>;
1285
+ /**
1286
+ * Open a new table that is the result of merging all constituent tables. See
1287
+ * {@link io.deephaven.engine.table.PartitionedTable#merge()} for details.
1288
+ * @return A merged representation of the constituent tables.
1289
+ */
1290
+ getMergedTable():Promise<Table>;
1291
+ /**
1292
+ * The set of all currently known keys. This is kept up to date, so getting the list after adding an event listener
1293
+ * for <b>keyadded</b> will ensure no keys are missed.
1294
+ * @return Set of Object
1295
+ */
1296
+ getKeys():Set<object>;
1297
+ /**
1298
+ * Fetch a table containing all the valid keys of the partitioned table.
1299
+ * @return Promise of a Table
1300
+ */
1301
+ getKeyTable():Promise<Table>;
1302
+ /**
1303
+ * Indicates that this PartitionedTable will no longer be used, removing subcriptions to updated keys, etc. This
1304
+ * will not affect tables in use.
1005
1305
  */
1006
1306
  close():void;
1007
- running():Promise<IdeConnection>;
1008
- getObject(definitionObject:dh.ide.VariableDescriptor):Promise<any>;
1009
- subscribeToFieldUpdates(callback:(arg0:dh.ide.VariableChanges)=>void):()=>void;
1010
1307
  /**
1011
- * Register a callback function to handle any log messages that are emitted on the server. Returns a function ,
1012
- * which can be invoked to remove this log handler. Any log handler registered in this way will receive as many old
1013
- * log messages as are presently available.
1014
- * @param callback -
1015
- * @return {@link io.deephaven.web.shared.fu.JsRunnable}
1308
+ * The count of known keys.
1309
+ * @return int
1016
1310
  */
1017
- onLogMessage(callback:(arg0:dh.ide.LogItem)=>void):()=>void;
1018
- startSession(type:string):Promise<IdeSession>;
1019
- getConsoleTypes():Promise<Array<string>>;
1020
- getWorkerHeapInfo():Promise<WorkerHeapInfo>;
1311
+ get size():number;
1312
+ /**
1313
+ * An array of the columns in the tables that can be retrieved from this partitioned table, including both key and
1314
+ * non-key columns.
1315
+ * @return Array of Column
1316
+ */
1317
+ get columns():Column[];
1318
+ /**
1319
+ * An array of all the key columns that the tables are partitioned by.
1320
+ * @return Array of Column
1321
+ */
1322
+ get keyColumns():Column[];
1021
1323
  /**
1022
1324
  * Listen for events on this object.
1023
1325
  * @param name - the name of the event to listen for
@@ -1039,102 +1341,29 @@ export namespace dh {
1039
1341
  }
1040
1342
 
1041
1343
  /**
1042
- * Describes the structure of the column, and if desired can be used to get access to the data to be rendered in this
1043
- * column.
1344
+ * This class allows iteration over non-contiguous indexes. In the future, this will support the EcmaScript 2015
1345
+ * Iteration protocol, but for now has one method which returns an iterator, and also supports querying the size.
1346
+ * Additionally, we may add support for creating RangeSet objects to better serve some use cases.
1044
1347
  */
1045
- export class Column {
1046
- /**
1047
- * If this column is part of a roll-up tree table, represents the type of the row data that can be found in this
1048
- * column for leaf nodes if includeConstituents is enabled. Otherwise, it is <b>null</b>.
1049
- * @return String
1050
- */
1051
- readonly constituentType?:string|null;
1052
- readonly description?:string|null;
1053
-
1348
+ export class RangeSet {
1054
1349
  protected constructor();
1055
1350
 
1351
+ static ofRange(first:number, last:number):RangeSet;
1352
+ static ofItems(rows:number[]):RangeSet;
1353
+ static ofRanges(ranges:RangeSet[]):RangeSet;
1354
+ static ofSortedRanges(ranges:RangeSet[]):RangeSet;
1056
1355
  /**
1057
- * the value for this column in the given row. Type will be consistent with the type of the Column.
1058
- * @param row -
1059
- * @return Any
1060
- */
1061
- get(row:Row):any;
1062
- getFormat(row:Row):Format;
1063
- /**
1064
- * Creates a sort builder object, to be used when sorting by this column.
1065
- * @return {@link dh.Sort}
1066
- */
1067
- sort():Sort;
1068
- /**
1069
- * Creates a new value for use in filters based on this column. Used either as a parameter to another filter
1070
- * operation, or as a builder to create a filter operation.
1071
- * @return {@link dh.FilterValue}
1072
- */
1073
- filter():FilterValue;
1074
- /**
1075
- * a <b>CustomColumn</b> object to apply using `applyCustomColumns` with the expression specified.
1076
- * @param expression -
1077
- * @return {@link dh.CustomColumn}
1078
- */
1079
- formatColor(expression:string):CustomColumn;
1080
- /**
1081
- * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
1082
- * @param expression -
1083
- * @return {@link dh.CustomColumn}
1084
- */
1085
- formatNumber(expression:string):CustomColumn;
1086
- /**
1087
- * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
1088
- * @param expression -
1089
- * @return {@link dh.CustomColumn}
1090
- */
1091
- formatDate(expression:string):CustomColumn;
1092
- toString():string;
1093
- /**
1094
- * Label for this column.
1095
- * @return String
1096
- */
1097
- get name():string;
1098
- /**
1099
- * True if this column is a partition column. Partition columns are used for filtering uncoalesced tables (see
1100
- * <b>isUncoalesced</b> property on <b>Table</b>)
1101
- * @return boolean
1102
- */
1103
- get isPartitionColumn():boolean;
1104
- /**
1105
- *
1106
- * @deprecated do not use. Internal index of the column in the table, to be used as a key on the Row.
1107
- * @return int
1108
- */
1109
- get index():number;
1110
- get isSortable():boolean;
1111
- /**
1112
- * Type of the row data that can be found in this column.
1113
- * @return String
1114
- */
1115
- get type():string;
1116
- /**
1117
- * Format entire rows colors using the expression specified. Returns a <b>CustomColumn</b> object to apply to a
1118
- * table using <b>applyCustomColumns</b> with the parameters specified.
1119
- * @param expression -
1120
- * @return {@link dh.CustomColumn}
1356
+ * a new iterator over all indexes in this collection.
1357
+ * @return Iterator of {@link dh.LongWrapper}
1121
1358
  */
1122
- static formatRowColor(expression:string):CustomColumn;
1359
+ iterator():Iterator<LongWrapper>;
1123
1360
  /**
1124
- * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
1125
- * @param name -
1126
- * @param expression -
1127
- * @return {@link dh.CustomColumn}
1361
+ * The total count of items contained in this collection. In some cases this can be expensive to compute, and
1362
+ * generally should not be needed except for debugging purposes, or preallocating space (i.e., do not call this
1363
+ * property each time through a loop).
1364
+ * @return double
1128
1365
  */
1129
- static createCustomColumn(name:string, expression:string):CustomColumn;
1130
- }
1131
-
1132
- export class LoginCredentials {
1133
- type?:string|null;
1134
- username?:string|null;
1135
- token?:string|null;
1136
-
1137
- constructor();
1366
+ get size():number;
1138
1367
  }
1139
1368
 
1140
1369
  export class DateWrapper extends LongWrapper {
@@ -1145,100 +1374,13 @@ export namespace dh {
1145
1374
  }
1146
1375
 
1147
1376
  /**
1148
- * Event fired when a command is issued from the client.
1149
- */
1150
- export class CommandInfo {
1151
- constructor(code:string, result:Promise<dh.ide.CommandResult>);
1152
-
1153
- get result():Promise<dh.ide.CommandResult>;
1154
- get code():string;
1155
- }
1156
-
1157
- /**
1158
- * A js type for operating on input tables.
1159
- *
1160
- * Represents a User Input Table, which can have data added to it from other sources.
1161
- *
1162
- * You may add rows using dictionaries of key-value tuples (representing columns by name), add tables containing all the
1163
- * key/value columns to add, or delete tables containing the keys to delete. Each operation is atomic, and will either
1164
- * succeed completely or fail completely. To guarantee order of operations, apply an operation and wait for the response
1165
- * before sending the next operation.
1166
- *
1167
- * Each table has one or more key columns, where each unique combination of keys will appear at most once in the table.
1168
- *
1169
- * To view the results of the Input Table, you should use standard table operations on the InputTable's source Table
1170
- * object.
1377
+ * Presently optional and not used by the server, this allows the client to specify some authentication details. String
1378
+ * authToken <i>- base 64 encoded auth token. String serviceId -</i> The service ID to use for the connection.
1171
1379
  */
1172
- export class InputTable {
1173
- protected constructor();
1380
+ export class ConnectOptions {
1381
+ headers:{ [key: string]: string; };
1174
1382
 
1175
- /**
1176
- * Adds a single row to the table. For each key or value column name in the Input Table, we retrieve that javascript
1177
- * property at that name and validate it can be put into the given column type.
1178
- * @param row -
1179
- * @param userTimeZone -
1180
- * @return Promise of dh.InputTable
1181
- */
1182
- addRow(row:{ [key: string]: any; }, userTimeZone?:string):Promise<InputTable>;
1183
- /**
1184
- * Add multiple rows to a table.
1185
- * @param rows -
1186
- * @param userTimeZone -
1187
- * @return Promise of dh.InputTable
1188
- */
1189
- addRows(rows:{ [key: string]: any; }[], userTimeZone?:string):Promise<InputTable>;
1190
- /**
1191
- * Add an entire table to this Input Table. Only column names that match the definition of the input table will be
1192
- * copied, and all key columns must have values filled in. This only copies the current state of the source table;
1193
- * future updates to the source table will not be reflected in the Input Table. The returned promise will be
1194
- * resolved to the same InputTable instance this method was called upon once the server returns.
1195
- * @param tableToAdd -
1196
- * @return Promise of dh.InputTable
1197
- */
1198
- addTable(tableToAdd:Table):Promise<InputTable>;
1199
- /**
1200
- * Add multiple tables to this Input Table.
1201
- * @param tablesToAdd -
1202
- * @return Promise of dh.InputTable
1203
- */
1204
- addTables(tablesToAdd:Table[]):Promise<InputTable>;
1205
- /**
1206
- * Deletes an entire table from this Input Table. Key columns must match the Input Table.
1207
- * @param tableToDelete -
1208
- * @return Promise of dh.InputTable
1209
- */
1210
- deleteTable(tableToDelete:Table):Promise<InputTable>;
1211
- /**
1212
- * Delete multiple tables from this Input Table.
1213
- * @param tablesToDelete -
1214
- * @return
1215
- */
1216
- deleteTables(tablesToDelete:Table[]):Promise<InputTable>;
1217
- /**
1218
- * A list of the key columns, by name
1219
- * @return String array.
1220
- */
1221
- get keys():string[];
1222
- /**
1223
- * A list of the value columns, by name
1224
- * @return String array.
1225
- */
1226
- get values():string[];
1227
- /**
1228
- * A list of the key columns.
1229
- * @return Column array.
1230
- */
1231
- get keyColumns():Column[];
1232
- /**
1233
- * A list of the value Column objects
1234
- * @return {@link dh.Column} array.
1235
- */
1236
- get valueColumns():Column[];
1237
- /**
1238
- * The source table for this Input Table
1239
- * @return dh.table
1240
- */
1241
- get table():Table;
1383
+ constructor();
1242
1384
  }
1243
1385
 
1244
1386
  /**
@@ -1376,355 +1518,83 @@ export namespace dh {
1376
1518
  /**
1377
1519
  * Provides Table-like selectDistinct functionality, but with a few quirks, since it is only fetching the distinct
1378
1520
  * values for the given columns in the source table:
1379
- * <ul>
1380
- * <li>Rollups may make no sense, since values are aggregated.</li>
1381
- * <li>Values found on orphaned (and removed) nodes will show up in the resulting table, even though they are not in
1382
- * the tree.</li>
1383
- * <li>Values found on parent nodes which are only present in the tree since a child is visible will not be present
1384
- * in the resulting table.</li>
1385
- * </ul>
1386
- */
1387
- selectDistinct(columns:Column[]):Promise<Table>;
1388
- getTotalsTableConfig():Promise<TotalsTableConfig>;
1389
- getTotalsTable(config?:object):Promise<TotalsTable>;
1390
- getGrandTotalsTable(config?:object):Promise<TotalsTable>;
1391
- /**
1392
- * a new copy of this treetable, so it can be sorted and filtered separately, and maintain a different viewport.
1393
- * Unlike Table, this will _not_ copy the filter or sort, since tree table viewport semantics differ, and without a
1394
- * viewport set, the treetable doesn't evaluate these settings, and they aren't readable on the properties. Expanded
1395
- * state is also not copied.
1396
- * @return Promise of dh.TreeTable
1397
- */
1398
- copy():Promise<TreeTable>;
1399
- /**
1400
- * The current filter configuration of this Tree Table.
1401
- * @return {@link dh.FilterCondition} array
1402
- */
1403
- get filter():Array<FilterCondition>;
1404
- /**
1405
- * True if this is a roll-up and will provide the original rows that make up each grouping.
1406
- * @return boolean
1407
- */
1408
- get includeConstituents():boolean;
1409
- get groupedColumns():Array<Column>;
1410
- /**
1411
- * True if this table has been closed.
1412
- * @return boolean
1413
- */
1414
- get isClosed():boolean;
1415
- /**
1416
- * The current number of rows given the table's contents and the various expand/collapse states of each node. (No
1417
- * totalSize is provided at this time; its definition becomes unclear between roll-up and tree tables, especially
1418
- * when considering collapse/expand states).
1419
- * @return double
1420
- */
1421
- get size():number;
1422
- /**
1423
- * The columns that can be shown in this Tree Table.
1424
- * @return {@link dh.Column} array
1425
- */
1426
- get columns():Array<Column>;
1427
- /**
1428
- * The current sort configuration of this Tree Table
1429
- * @return {@link dh.Sort} array.
1430
- */
1431
- get sort():Array<Sort>;
1432
- /**
1433
- * True if this table may receive updates from the server, including size changed events, updated events after
1434
- * initial snapshot.
1435
- * @return boolean
1436
- */
1437
- get isRefreshing():boolean;
1438
- /**
1439
- * Listen for events on this object.
1440
- * @param name - the name of the event to listen for
1441
- * @param callback - a function to call when the event occurs
1442
- * @return Returns a cleanup function.
1443
- * @typeParam T - the type of the data that the event will provide
1444
- */
1445
- addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
1446
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
1447
- hasListeners(name:string):boolean;
1448
- /**
1449
- * Removes an event listener added to this table.
1450
- * @param name -
1451
- * @param callback -
1452
- * @return
1453
- * @typeParam T -
1454
- */
1455
- removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
1456
- }
1457
-
1458
- /**
1459
- * Describes data that can be filtered, either a column reference or a literal value. Used this way, the type of a value
1460
- * can be specified so that values which are ambiguous or not well supported in JS will not be confused with Strings or
1461
- * imprecise numbers (e.g., nanosecond-precision date values). Additionally, once wrapped in this way, methods can be
1462
- * called on these value literal instances. These instances are immutable - any method called on them returns a new
1463
- * instance.
1464
- */
1465
- export class FilterValue {
1466
- protected constructor();
1467
-
1468
- /**
1469
- * Constructs a number for the filter API from the given parameter. Can also be used on the values returned from
1470
- * {@link TableData.get} for DateTime values. To create
1471
- * a filter with a date, use <b>dh.DateWrapper.ofJsDate</b> or
1472
- * {@link i18n.DateTimeFormat.parse}. To create a filter with a
1473
- * 64-bit long integer, use {@link LongWrapper.ofString}.
1474
- * @param input - the number to wrap as a FilterValue
1475
- * @return an immutable FilterValue that can be built into a filter
1476
- */
1477
- static ofNumber(input:LongWrapper|number):FilterValue;
1478
- /**
1479
- * a filter condition checking if the current value is equal to the given parameter
1480
- * @param term -
1481
- * @return {@link dh.FilterCondition}
1482
- */
1483
- eq(term:FilterValue):FilterCondition;
1484
- /**
1485
- * a filter condition checking if the current value is equal to the given parameter, ignoring differences of upper
1486
- * vs lower case
1487
- * @param term -
1488
- * @return {@link dh.FilterCondition}
1489
- */
1490
- eqIgnoreCase(term:FilterValue):FilterCondition;
1491
- /**
1492
- * a filter condition checking if the current value is not equal to the given parameter
1493
- * @param term -
1494
- * @return {@link dh.FilterCondition}
1495
- */
1496
- notEq(term:FilterValue):FilterCondition;
1497
- /**
1498
- * a filter condition checking if the current value is not equal to the given parameter, ignoring differences of
1499
- * upper vs lower case
1500
- * @param term -
1501
- * @return {@link dh.FilterCondition}
1502
- */
1503
- notEqIgnoreCase(term:FilterValue):FilterCondition;
1504
- /**
1505
- * a filter condition checking if the current value is greater than the given parameter
1506
- * @param term -
1507
- * @return {@link dh.FilterCondition}
1508
- */
1509
- greaterThan(term:FilterValue):FilterCondition;
1510
- /**
1511
- * a filter condition checking if the current value is less than the given parameter
1512
- * @param term -
1513
- * @return {@link dh.FilterCondition}
1514
- */
1515
- lessThan(term:FilterValue):FilterCondition;
1516
- /**
1517
- * a filter condition checking if the current value is greater than or equal to the given parameter
1518
- * @param term -
1519
- * @return {@link dh.FilterCondition}
1520
- */
1521
- greaterThanOrEqualTo(term:FilterValue):FilterCondition;
1522
- /**
1523
- * a filter condition checking if the current value is less than or equal to the given parameter
1524
- * @param term -
1525
- * @return {@link dh.FilterCondition}
1526
- */
1527
- lessThanOrEqualTo(term:FilterValue):FilterCondition;
1528
- /**
1529
- * a filter condition checking if the current value is in the given set of values
1530
- * @param terms -
1531
- * @return {@link dh.FilterCondition}
1532
- */
1533
- in(terms:FilterValue[]):FilterCondition;
1534
- /**
1535
- * a filter condition checking if the current value is in the given set of values, ignoring differences of upper vs
1536
- * lower case
1537
- * @param terms -
1538
- * @return {@link dh.FilterCondition}
1539
- */
1540
- inIgnoreCase(terms:FilterValue[]):FilterCondition;
1541
- /**
1542
- * a filter condition checking that the current value is not in the given set of values
1543
- * @param terms -
1544
- * @return {@link dh.FilterCondition}
1545
- */
1546
- notIn(terms:FilterValue[]):FilterCondition;
1547
- /**
1548
- * a filter condition checking that the current value is not in the given set of values, ignoring differences of
1549
- * upper vs lower case
1550
- * @param terms -
1551
- * @return {@link dh.FilterCondition}
1552
- */
1553
- notInIgnoreCase(terms:FilterValue[]):FilterCondition;
1554
- /**
1555
- * a filter condition checking if the given value contains the given string value
1556
- * @param term -
1557
- * @return {@link dh.FilterCondition}
1558
- */
1559
- contains(term:FilterValue):FilterCondition;
1560
- /**
1561
- * a filter condition checking if the given value contains the given string value, ignoring differences of upper vs
1562
- * lower case
1563
- * @param term -
1564
- * @return {@link dh.FilterCondition}
1565
- */
1566
- containsIgnoreCase(term:FilterValue):FilterCondition;
1567
- /**
1568
- * a filter condition checking if the given value matches the provided regular expressions string. Regex patterns
1569
- * use Java regex syntax
1570
- * @param pattern -
1571
- * @return {@link dh.FilterCondition}
1572
- */
1573
- matches(pattern:FilterValue):FilterCondition;
1574
- /**
1575
- * a filter condition checking if the given value matches the provided regular expressions string, ignoring
1576
- * differences of upper vs lower case. Regex patterns use Java regex syntax
1577
- * @param pattern -
1578
- * @return {@link dh.FilterCondition}
1579
- */
1580
- matchesIgnoreCase(pattern:FilterValue):FilterCondition;
1581
- /**
1582
- * a filter condition checking if the current value is a true boolean
1583
- * @return {@link dh.FilterCondition}
1584
- */
1585
- isTrue():FilterCondition;
1586
- /**
1587
- * a filter condition checking if the current value is a false boolean
1588
- * @return {@link dh.FilterCondition}
1589
- */
1590
- isFalse():FilterCondition;
1591
- /**
1592
- * a filter condition checking if the current value is a null value
1593
- * @return {@link dh.FilterCondition}
1594
- */
1595
- isNull():FilterCondition;
1596
- /**
1597
- * a filter condition invoking the given method on the current value, with the given parameters. Currently supported
1598
- * functions that can be invoked on a String:
1599
- * <ul>
1600
- * <li><b>startsWith</b>: Returns true if the current string value starts with the supplied string argument</li>
1601
- * <li><b>endsWith</b>: Returns true if the current string value ends with the supplied string argument</li>
1602
- * <li><b>matches</b>: Returns true if the current string value matches the supplied string argument used as a Java
1603
- * regular expression</li>
1604
- * <li><b>contains</b>: Returns true if the current string value contains the supplied string argument
1605
- * <p>
1606
- * When invoking against a constant, this should be avoided in favor of FilterValue.contains
1607
- * </p>
1608
- * </li>
1609
- * </ul>
1610
- * @param method -
1611
- * @param args -
1612
- * @return
1613
- */
1614
- invoke(method:string, ...args:FilterValue[]):FilterCondition;
1615
- toString():string;
1616
- /**
1617
- * Constructs a string for the filter API from the given parameter.
1618
- * @param input -
1619
- * @return
1620
- */
1621
- static ofString(input:any):FilterValue;
1622
- /**
1623
- * Constructs a boolean for the filter API from the given parameter.
1624
- * @param b -
1625
- * @return
1626
- */
1627
- static ofBoolean(b:boolean):FilterValue;
1628
- }
1629
-
1630
- /**
1631
- * Deprecated for use in Deephaven Core.
1632
- * @deprecated
1633
- */
1634
- export class Client {
1635
- static readonly EVENT_REQUEST_FAILED:string;
1636
- static readonly EVENT_REQUEST_STARTED:string;
1637
- static readonly EVENT_REQUEST_SUCCEEDED:string;
1638
-
1639
- constructor();
1640
- }
1641
-
1642
- /**
1643
- * Presently optional and not used by the server, this allows the client to specify some authentication details. String
1644
- * authToken <i>- base 64 encoded auth token. String serviceId -</i> The service ID to use for the connection.
1645
- */
1646
- export class ConnectOptions {
1647
- headers:{ [key: string]: string; };
1648
-
1649
- constructor();
1650
- }
1651
-
1652
- /**
1653
- * Describes a Sort present on the table. No visible constructor, created through the use of Column.sort(), will be tied
1654
- * to that particular column data. Sort instances are immutable, and use a builder pattern to make modifications. All
1655
- * methods return a new Sort instance.
1656
- */
1657
- export class Sort {
1658
- static readonly ASCENDING:string;
1659
- static readonly DESCENDING:string;
1660
- static readonly REVERSE:string;
1661
-
1662
- protected constructor();
1663
-
1521
+ * <ul>
1522
+ * <li>Rollups may make no sense, since values are aggregated.</li>
1523
+ * <li>Values found on orphaned (and removed) nodes will show up in the resulting table, even though they are not in
1524
+ * the tree.</li>
1525
+ * <li>Values found on parent nodes which are only present in the tree since a child is visible will not be present
1526
+ * in the resulting table.</li>
1527
+ * </ul>
1528
+ */
1529
+ selectDistinct(columns:Column[]):Promise<Table>;
1530
+ getTotalsTableConfig():Promise<TotalsTableConfig>;
1531
+ getTotalsTable(config?:object):Promise<TotalsTable>;
1532
+ getGrandTotalsTable(config?:object):Promise<TotalsTable>;
1664
1533
  /**
1665
- * Builds a Sort instance to sort values in ascending order.
1666
- * @return {@link dh.Sort}
1534
+ * a new copy of this treetable, so it can be sorted and filtered separately, and maintain a different viewport.
1535
+ * Unlike Table, this will _not_ copy the filter or sort, since tree table viewport semantics differ, and without a
1536
+ * viewport set, the treetable doesn't evaluate these settings, and they aren't readable on the properties. Expanded
1537
+ * state is also not copied.
1538
+ * @return Promise of dh.TreeTable
1667
1539
  */
1668
- asc():Sort;
1540
+ copy():Promise<TreeTable>;
1669
1541
  /**
1670
- * Builds a Sort instance to sort values in descending order.
1671
- * @return {@link dh.Sort}
1542
+ * The current filter configuration of this Tree Table.
1543
+ * @return {@link dh.FilterCondition} array
1672
1544
  */
1673
- desc():Sort;
1545
+ get filter():Array<FilterCondition>;
1674
1546
  /**
1675
- * Builds a Sort instance which takes the absolute value before applying order.
1676
- * @return {@link dh.Sort}
1547
+ * True if this is a roll-up and will provide the original rows that make up each grouping.
1548
+ * @return boolean
1677
1549
  */
1678
- abs():Sort;
1679
- toString():string;
1550
+ get includeConstituents():boolean;
1551
+ get groupedColumns():Array<Column>;
1680
1552
  /**
1681
- * True if the absolute value of the column should be used when sorting; defaults to false.
1553
+ * True if this table has been closed.
1682
1554
  * @return boolean
1683
1555
  */
1684
- get isAbs():boolean;
1556
+ get isClosed():boolean;
1685
1557
  /**
1686
- * The column which is sorted.
1687
- * @return {@link dh.Column}
1558
+ * The current number of rows given the table's contents and the various expand/collapse states of each node. (No
1559
+ * totalSize is provided at this time; its definition becomes unclear between roll-up and tree tables, especially
1560
+ * when considering collapse/expand states).
1561
+ * @return double
1688
1562
  */
1689
- get column():Column;
1563
+ get size():number;
1690
1564
  /**
1691
- * The direction of this sort, either <b>ASC</b>, <b>DESC</b>, or <b>REVERSE</b>.
1692
- * @return String
1565
+ * The columns that can be shown in this Tree Table.
1566
+ * @return {@link dh.Column} array
1693
1567
  */
1694
- get direction():string;
1695
- }
1696
-
1697
- export class QueryInfo {
1698
- static readonly EVENT_TABLE_OPENED:string;
1699
- static readonly EVENT_DISCONNECT:string;
1700
- static readonly EVENT_RECONNECT:string;
1701
- static readonly EVENT_CONNECT:string;
1702
-
1703
- protected constructor();
1704
- }
1705
-
1706
- /**
1707
- * Configuration object for running Table.treeTable to produce a hierarchical view of a given "flat" table.
1708
- *
1709
- * Like TotalsTableConfig, `TreeTableConfig` supports an operation map indicating how to aggregate the data, as well as
1710
- * an array of column names which will be the layers in the roll-up tree, grouped at each level. An additional optional
1711
- * value can be provided describing the strategy the engine should use when grouping the rows.
1712
- */
1713
- export class TreeTableConfig {
1568
+ get columns():Array<Column>;
1714
1569
  /**
1715
- * The column representing the unique ID for each item
1570
+ * The current sort configuration of this Tree Table
1571
+ * @return {@link dh.Sort} array.
1716
1572
  */
1717
- idColumn:string;
1573
+ get sort():Array<Sort>;
1718
1574
  /**
1719
- * The column representing the parent ID for each item
1575
+ * True if this table may receive updates from the server, including size changed events, updated events after
1576
+ * initial snapshot.
1577
+ * @return boolean
1720
1578
  */
1721
- parentColumn:string;
1579
+ get isRefreshing():boolean;
1722
1580
  /**
1723
- * Optional parameter indicating if items with an invalid parent ID should be promoted to root. Defaults to false.
1581
+ * Listen for events on this object.
1582
+ * @param name - the name of the event to listen for
1583
+ * @param callback - a function to call when the event occurs
1584
+ * @return Returns a cleanup function.
1585
+ * @typeParam T - the type of the data that the event will provide
1724
1586
  */
1725
- promoteOrphansToRoot:boolean;
1726
-
1727
- constructor();
1587
+ addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
1588
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
1589
+ hasListeners(name:string):boolean;
1590
+ /**
1591
+ * Removes an event listener added to this table.
1592
+ * @param name -
1593
+ * @param callback -
1594
+ * @return
1595
+ * @typeParam T -
1596
+ */
1597
+ removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
1728
1598
  }
1729
1599
 
1730
1600
  /**
@@ -1764,146 +1634,115 @@ export namespace dh {
1764
1634
  get columns():Array<Column>;
1765
1635
  }
1766
1636
 
1767
- /**
1768
- * Wrap BigInteger values for use in JS. Provides text formatting for display and access to the underlying value.
1769
- */
1770
- export class BigIntegerWrapper {
1771
- protected constructor();
1772
-
1773
- static ofString(str:string):BigIntegerWrapper;
1774
- asNumber():number;
1775
- valueOf():string;
1776
- toString():string;
1777
- }
1778
-
1779
- export class CustomColumn {
1780
- static readonly TYPE_FORMAT_COLOR:string;
1781
- static readonly TYPE_FORMAT_NUMBER:string;
1782
- static readonly TYPE_FORMAT_DATE:string;
1783
- static readonly TYPE_NEW:string;
1784
-
1785
- protected constructor();
1637
+ export class Ide {
1638
+ constructor();
1786
1639
 
1787
- valueOf():string;
1788
- toString():string;
1789
- /**
1790
- * The expression to evaluate this custom column.
1791
- * @return String
1792
- */
1793
- get expression():string;
1794
1640
  /**
1795
- * The name of the column to use.
1796
- * @return String
1641
+ * @deprecated
1797
1642
  */
1798
- get name():string;
1643
+ getExistingSession(websocketUrl:string, authToken:string, serviceId:string, language:string):Promise<IdeSession>;
1799
1644
  /**
1800
- * Type of custom column. One of
1801
- *
1802
- * <ul>
1803
- * <li>FORMAT_COLOR</li>
1804
- * <li>FORMAT_NUMBER</li>
1805
- * <li>FORMAT_DATE</li>
1806
- * <li>NEW</li>
1807
- * </ul>
1808
- * @return String
1645
+ * @deprecated
1809
1646
  */
1810
- get type():string;
1647
+ static getExistingSession(websocketUrl:string, authToken:string, serviceId:string, language:string):Promise<IdeSession>;
1811
1648
  }
1812
1649
 
1813
- /**
1814
- * Wrap BigDecimal values for use in JS. Provides text formatting for display and access to the underlying value.
1815
- */
1816
- export class BigDecimalWrapper {
1817
- protected constructor();
1650
+ export class LoginCredentials {
1651
+ type?:string|null;
1652
+ username?:string|null;
1653
+ token?:string|null;
1818
1654
 
1819
- static ofString(value:string):BigDecimalWrapper;
1820
- asNumber():number;
1821
- valueOf():string;
1822
- toString():string;
1655
+ constructor();
1656
+ }
1657
+
1658
+ export class CoreClient implements HasEventHandling {
1659
+ static readonly EVENT_CONNECT:string;
1660
+ static readonly EVENT_DISCONNECT:string;
1661
+ static readonly EVENT_RECONNECT:string;
1662
+ static readonly EVENT_RECONNECT_AUTH_FAILED:string;
1663
+ static readonly EVENT_REFRESH_TOKEN_UPDATED:string;
1664
+ static readonly EVENT_REQUEST_FAILED:string;
1665
+ static readonly EVENT_REQUEST_STARTED:string;
1666
+ static readonly EVENT_REQUEST_SUCCEEDED:string;
1667
+ static readonly LOGIN_TYPE_PASSWORD:string;
1668
+ static readonly LOGIN_TYPE_ANONYMOUS:string;
1669
+
1670
+ constructor(serverUrl:string, connectOptions?:ConnectOptions);
1671
+
1672
+ running():Promise<CoreClient>;
1673
+ getServerUrl():string;
1674
+ getAuthConfigValues():Promise<string[][]>;
1675
+ login(credentials:LoginCredentials):Promise<void>;
1676
+ relogin(token:RefreshToken):Promise<void>;
1677
+ onConnected(timeoutInMillis?:number):Promise<void>;
1678
+ getServerConfigValues():Promise<string[][]>;
1679
+ getStorageService():dh.storage.StorageService;
1680
+ getAsIdeConnection():Promise<IdeConnection>;
1681
+ disconnect():void;
1682
+ addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
1683
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
1684
+ hasListeners(name:string):boolean;
1685
+ removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
1823
1686
  }
1824
1687
 
1825
1688
  /**
1826
- * Describes how a Totals Table will be generated from its parent table. Each table has a default (which may be null)
1827
- * indicating how that table was configured when it was declared, and each Totals Table has a similar property
1828
- * describing how it was created. Both the <b>Table.getTotalsTable</b> and <b>Table.getGrandTotalsTable</b> methods take
1829
- * this config as an optional parameter - without it, the table's default will be used, or if null, a default instance
1830
- * of <b>TotalsTableConfig</b> will be supplied.
1831
- *
1832
- * This class has a no-arg constructor, allowing an instance to be made with the default values provided. However, any
1833
- * JS object can be passed in to the methods which accept instances of this type, provided their values adhere to the
1834
- * expected formats.
1689
+ * Presently, this is the entrypoint into the Deephaven JS API. By creating an instance of this with the server URL and
1690
+ * some options, JS applications can run code on the server, and interact with available exportable objects.
1835
1691
  */
1836
- export class TotalsTableConfig {
1837
- /**
1838
- * @deprecated
1839
- */
1840
- static readonly COUNT:string;
1841
- /**
1842
- * @deprecated
1843
- */
1844
- static readonly MIN:string;
1845
- /**
1846
- * @deprecated
1847
- */
1848
- static readonly MAX:string;
1849
- /**
1850
- * @deprecated
1851
- */
1852
- static readonly SUM:string;
1853
- /**
1854
- * @deprecated
1855
- */
1856
- static readonly ABS_SUM:string;
1857
- /**
1858
- * @deprecated
1859
- */
1860
- static readonly VAR:string;
1861
- /**
1862
- * @deprecated
1863
- */
1864
- static readonly AVG:string;
1865
- /**
1866
- * @deprecated
1867
- */
1868
- static readonly STD:string;
1869
- /**
1870
- * @deprecated
1871
- */
1872
- static readonly FIRST:string;
1873
- /**
1874
- * @deprecated
1875
- */
1876
- static readonly LAST:string;
1692
+ export class IdeConnection implements HasEventHandling {
1877
1693
  /**
1878
1694
  * @deprecated
1879
1695
  */
1880
- static readonly SKIP:string;
1696
+ static readonly HACK_CONNECTION_FAILURE:string;
1697
+ static readonly EVENT_DISCONNECT:string;
1698
+ static readonly EVENT_RECONNECT:string;
1699
+ static readonly EVENT_SHUTDOWN:string;
1700
+
1881
1701
  /**
1882
- * Specifies if a Totals Table should be expanded by default in the UI. Defaults to false.
1702
+ * creates a new instance, from which console sessions can be made. <b>options</b> are optional.
1703
+ * @param serverUrl - The url used when connecting to the server. Read-only.
1704
+ * @param connectOptions - Optional Object
1705
+ * @param fromJava - Optional boolean
1706
+ * @deprecated
1883
1707
  */
1884
- showTotalsByDefault:boolean;
1708
+ constructor(serverUrl:string, connectOptions?:ConnectOptions, fromJava?:boolean);
1709
+
1885
1710
  /**
1886
- * Specifies if a Grand Totals Table should be expanded by default in the UI. Defaults to false.
1711
+ * closes the current connection, releasing any resources on the server or client.
1887
1712
  */
1888
- showGrandTotalsByDefault:boolean;
1713
+ close():void;
1714
+ running():Promise<IdeConnection>;
1715
+ getObject(definitionObject:dh.ide.VariableDescriptor):Promise<any>;
1716
+ subscribeToFieldUpdates(callback:(arg0:dh.ide.VariableChanges)=>void):()=>void;
1889
1717
  /**
1890
- * Specifies the default operation for columns that do not have a specific operation applied; defaults to "Sum".
1718
+ * Register a callback function to handle any log messages that are emitted on the server. Returns a function ,
1719
+ * which can be invoked to remove this log handler. Any log handler registered in this way will receive as many old
1720
+ * log messages as are presently available.
1721
+ * @param callback -
1722
+ * @return {@link io.deephaven.web.shared.fu.JsRunnable}
1891
1723
  */
1892
- defaultOperation:AggregationOperationType;
1724
+ onLogMessage(callback:(arg0:dh.ide.LogItem)=>void):()=>void;
1725
+ startSession(type:string):Promise<IdeSession>;
1726
+ getConsoleTypes():Promise<Array<string>>;
1727
+ getWorkerHeapInfo():Promise<WorkerHeapInfo>;
1893
1728
  /**
1894
- * Mapping from each column name to the aggregation(s) that should be applied to that column in the resulting Totals
1895
- * Table. If a column is omitted, the defaultOperation is used.
1729
+ * Listen for events on this object.
1730
+ * @param name - the name of the event to listen for
1731
+ * @param callback - a function to call when the event occurs
1732
+ * @return Returns a cleanup function.
1733
+ * @typeParam T - the type of the data that the event will provide
1896
1734
  */
1897
- operationMap:{ [key: string]: Array<AggregationOperationType>; };
1735
+ addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
1736
+ nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
1737
+ hasListeners(name:string):boolean;
1898
1738
  /**
1899
- * Groupings to use when generating the Totals Table. One row will exist for each unique set of values observed in
1900
- * these columns. See also `Table.selectDistinct`.
1739
+ * Removes an event listener added to this table.
1740
+ * @param name -
1741
+ * @param callback -
1742
+ * @return
1743
+ * @typeParam T -
1901
1744
  */
1902
- groupBy:Array<string>;
1903
-
1904
- constructor();
1905
-
1906
- toString():string;
1745
+ removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
1907
1746
  }
1908
1747
 
1909
1748
  /**
@@ -1979,6 +1818,20 @@ export namespace dh {
1979
1818
  static search(value:FilterValue, columns?:FilterValue[]):FilterCondition;
1980
1819
  }
1981
1820
 
1821
+ /**
1822
+ * Exists to keep the dh.TableMap namespace so that the web UI can remain compatible with the DHE API, which still calls
1823
+ * this type TableMap.
1824
+ * @deprecated
1825
+ */
1826
+ export class TableMap {
1827
+ static readonly EVENT_KEYADDED:string;
1828
+ static readonly EVENT_DISCONNECT:string;
1829
+ static readonly EVENT_RECONNECT:string;
1830
+ static readonly EVENT_RECONNECTFAILED:string;
1831
+
1832
+ protected constructor();
1833
+ }
1834
+
1982
1835
  /**
1983
1836
  * Provides access to data in a table. Note that several methods present their response through Promises. This allows
1984
1837
  * the client to both avoid actually connecting to the server until necessary, and also will permit some changes not to
@@ -2286,71 +2139,235 @@ export namespace dh {
2286
2139
  }
2287
2140
 
2288
2141
  /**
2289
- * This class allows iteration over non-contiguous indexes. In the future, this will support the EcmaScript 2015
2290
- * Iteration protocol, but for now has one method which returns an iterator, and also supports querying the size.
2291
- * Additionally, we may add support for creating RangeSet objects to better serve some use cases.
2142
+ * Describes the structure of the column, and if desired can be used to get access to the data to be rendered in this
2143
+ * column.
2292
2144
  */
2293
- export class RangeSet {
2145
+ export class Column {
2146
+ /**
2147
+ * If this column is part of a roll-up tree table, represents the type of the row data that can be found in this
2148
+ * column for leaf nodes if includeConstituents is enabled. Otherwise, it is <b>null</b>.
2149
+ * @return String
2150
+ */
2151
+ readonly constituentType?:string|null;
2152
+ readonly description?:string|null;
2153
+
2294
2154
  protected constructor();
2295
2155
 
2296
- static ofRange(first:number, last:number):RangeSet;
2297
- static ofItems(rows:number[]):RangeSet;
2298
- static ofRanges(ranges:RangeSet[]):RangeSet;
2299
- static ofSortedRanges(ranges:RangeSet[]):RangeSet;
2300
2156
  /**
2301
- * a new iterator over all indexes in this collection.
2302
- * @return Iterator of {@link dh.LongWrapper}
2157
+ * the value for this column in the given row. Type will be consistent with the type of the Column.
2158
+ * @param row -
2159
+ * @return Any
2160
+ */
2161
+ get(row:Row):any;
2162
+ getFormat(row:Row):Format;
2163
+ /**
2164
+ * Creates a sort builder object, to be used when sorting by this column.
2165
+ * @return {@link dh.Sort}
2166
+ */
2167
+ sort():Sort;
2168
+ /**
2169
+ * Creates a new value for use in filters based on this column. Used either as a parameter to another filter
2170
+ * operation, or as a builder to create a filter operation.
2171
+ * @return {@link dh.FilterValue}
2172
+ */
2173
+ filter():FilterValue;
2174
+ /**
2175
+ * a <b>CustomColumn</b> object to apply using `applyCustomColumns` with the expression specified.
2176
+ * @param expression -
2177
+ * @return {@link dh.CustomColumn}
2178
+ */
2179
+ formatColor(expression:string):CustomColumn;
2180
+ /**
2181
+ * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
2182
+ * @param expression -
2183
+ * @return {@link dh.CustomColumn}
2184
+ */
2185
+ formatNumber(expression:string):CustomColumn;
2186
+ /**
2187
+ * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
2188
+ * @param expression -
2189
+ * @return {@link dh.CustomColumn}
2190
+ */
2191
+ formatDate(expression:string):CustomColumn;
2192
+ toString():string;
2193
+ /**
2194
+ * Label for this column.
2195
+ * @return String
2196
+ */
2197
+ get name():string;
2198
+ /**
2199
+ * True if this column is a partition column. Partition columns are used for filtering uncoalesced tables (see
2200
+ * <b>isUncoalesced</b> property on <b>Table</b>)
2201
+ * @return boolean
2202
+ */
2203
+ get isPartitionColumn():boolean;
2204
+ /**
2205
+ *
2206
+ * @deprecated do not use. Internal index of the column in the table, to be used as a key on the Row.
2207
+ * @return int
2208
+ */
2209
+ get index():number;
2210
+ get isSortable():boolean;
2211
+ /**
2212
+ * Type of the row data that can be found in this column.
2213
+ * @return String
2214
+ */
2215
+ get type():string;
2216
+ /**
2217
+ * Format entire rows colors using the expression specified. Returns a <b>CustomColumn</b> object to apply to a
2218
+ * table using <b>applyCustomColumns</b> with the parameters specified.
2219
+ * @param expression -
2220
+ * @return {@link dh.CustomColumn}
2221
+ */
2222
+ static formatRowColor(expression:string):CustomColumn;
2223
+ /**
2224
+ * a <b>CustomColumn</b> object to apply using <b>applyCustomColumns</b> with the expression specified.
2225
+ * @param name -
2226
+ * @param expression -
2227
+ * @return {@link dh.CustomColumn}
2228
+ */
2229
+ static createCustomColumn(name:string, expression:string):CustomColumn;
2230
+ }
2231
+
2232
+ export class CustomColumn {
2233
+ static readonly TYPE_FORMAT_COLOR:string;
2234
+ static readonly TYPE_FORMAT_NUMBER:string;
2235
+ static readonly TYPE_FORMAT_DATE:string;
2236
+ static readonly TYPE_NEW:string;
2237
+
2238
+ protected constructor();
2239
+
2240
+ valueOf():string;
2241
+ toString():string;
2242
+ /**
2243
+ * The expression to evaluate this custom column.
2244
+ * @return String
2245
+ */
2246
+ get expression():string;
2247
+ /**
2248
+ * The name of the column to use.
2249
+ * @return String
2250
+ */
2251
+ get name():string;
2252
+ /**
2253
+ * Type of custom column. One of
2254
+ *
2255
+ * <ul>
2256
+ * <li>FORMAT_COLOR</li>
2257
+ * <li>FORMAT_NUMBER</li>
2258
+ * <li>FORMAT_DATE</li>
2259
+ * <li>NEW</li>
2260
+ * </ul>
2261
+ * @return String
2262
+ */
2263
+ get type():string;
2264
+ }
2265
+
2266
+ /**
2267
+ * A js type for operating on input tables.
2268
+ *
2269
+ * Represents a User Input Table, which can have data added to it from other sources.
2270
+ *
2271
+ * You may add rows using dictionaries of key-value tuples (representing columns by name), add tables containing all the
2272
+ * key/value columns to add, or delete tables containing the keys to delete. Each operation is atomic, and will either
2273
+ * succeed completely or fail completely. To guarantee order of operations, apply an operation and wait for the response
2274
+ * before sending the next operation.
2275
+ *
2276
+ * Each table has one or more key columns, where each unique combination of keys will appear at most once in the table.
2277
+ *
2278
+ * To view the results of the Input Table, you should use standard table operations on the InputTable's source Table
2279
+ * object.
2280
+ */
2281
+ export class InputTable {
2282
+ protected constructor();
2283
+
2284
+ /**
2285
+ * Adds a single row to the table. For each key or value column name in the Input Table, we retrieve that javascript
2286
+ * property at that name and validate it can be put into the given column type.
2287
+ * @param row -
2288
+ * @param userTimeZone -
2289
+ * @return Promise of dh.InputTable
2290
+ */
2291
+ addRow(row:{ [key: string]: any; }, userTimeZone?:string):Promise<InputTable>;
2292
+ /**
2293
+ * Add multiple rows to a table.
2294
+ * @param rows -
2295
+ * @param userTimeZone -
2296
+ * @return Promise of dh.InputTable
2297
+ */
2298
+ addRows(rows:{ [key: string]: any; }[], userTimeZone?:string):Promise<InputTable>;
2299
+ /**
2300
+ * Add an entire table to this Input Table. Only column names that match the definition of the input table will be
2301
+ * copied, and all key columns must have values filled in. This only copies the current state of the source table;
2302
+ * future updates to the source table will not be reflected in the Input Table. The returned promise will be
2303
+ * resolved to the same InputTable instance this method was called upon once the server returns.
2304
+ * @param tableToAdd -
2305
+ * @return Promise of dh.InputTable
2306
+ */
2307
+ addTable(tableToAdd:Table):Promise<InputTable>;
2308
+ /**
2309
+ * Add multiple tables to this Input Table.
2310
+ * @param tablesToAdd -
2311
+ * @return Promise of dh.InputTable
2312
+ */
2313
+ addTables(tablesToAdd:Table[]):Promise<InputTable>;
2314
+ /**
2315
+ * Deletes an entire table from this Input Table. Key columns must match the Input Table.
2316
+ * @param tableToDelete -
2317
+ * @return Promise of dh.InputTable
2318
+ */
2319
+ deleteTable(tableToDelete:Table):Promise<InputTable>;
2320
+ /**
2321
+ * Delete multiple tables from this Input Table.
2322
+ * @param tablesToDelete -
2323
+ * @return
2324
+ */
2325
+ deleteTables(tablesToDelete:Table[]):Promise<InputTable>;
2326
+ /**
2327
+ * A list of the key columns, by name
2328
+ * @return String array.
2329
+ */
2330
+ get keys():string[];
2331
+ /**
2332
+ * A list of the value columns, by name
2333
+ * @return String array.
2334
+ */
2335
+ get values():string[];
2336
+ /**
2337
+ * A list of the key columns.
2338
+ * @return Column array.
2303
2339
  */
2304
- iterator():Iterator<LongWrapper>;
2340
+ get keyColumns():Column[];
2305
2341
  /**
2306
- * The total count of items contained in this collection. In some cases this can be expensive to compute, and
2307
- * generally should not be needed except for debugging purposes, or preallocating space (i.e., do not call this
2308
- * property each time through a loop).
2309
- * @return double
2342
+ * A list of the value Column objects
2343
+ * @return {@link dh.Column} array.
2310
2344
  */
2311
- get size():number;
2345
+ get valueColumns():Column[];
2346
+ /**
2347
+ * The source table for this Input Table
2348
+ * @return dh.table
2349
+ */
2350
+ get table():Table;
2312
2351
  }
2313
2352
 
2314
- export class LongWrapper {
2315
- protected constructor();
2316
2353
 
2317
- static ofString(str:string):LongWrapper;
2318
- asNumber():number;
2319
- valueOf():string;
2320
- toString():string;
2354
+ type SearchDisplayModeType = string;
2355
+ export class SearchDisplayMode {
2356
+ static readonly SEARCH_DISPLAY_DEFAULT:SearchDisplayModeType;
2357
+ static readonly SEARCH_DISPLAY_HIDE:SearchDisplayModeType;
2358
+ static readonly SEARCH_DISPLAY_SHOW:SearchDisplayModeType;
2321
2359
  }
2322
2360
 
2323
- export class CoreClient implements HasEventHandling {
2324
- static readonly EVENT_CONNECT:string;
2325
- static readonly EVENT_DISCONNECT:string;
2326
- static readonly EVENT_RECONNECT:string;
2327
- static readonly EVENT_RECONNECT_AUTH_FAILED:string;
2328
- static readonly EVENT_REFRESH_TOKEN_UPDATED:string;
2329
- static readonly EVENT_REQUEST_FAILED:string;
2330
- static readonly EVENT_REQUEST_STARTED:string;
2331
- static readonly EVENT_REQUEST_SUCCEEDED:string;
2332
- static readonly LOGIN_TYPE_PASSWORD:string;
2333
- static readonly LOGIN_TYPE_ANONYMOUS:string;
2334
-
2335
- constructor(serverUrl:string, connectOptions?:ConnectOptions);
2336
-
2337
- running():Promise<CoreClient>;
2338
- getServerUrl():string;
2339
- getAuthConfigValues():Promise<string[][]>;
2340
- login(credentials:LoginCredentials):Promise<void>;
2341
- relogin(token:RefreshToken):Promise<void>;
2342
- onConnected(timeoutInMillis?:number):Promise<void>;
2343
- getServerConfigValues():Promise<string[][]>;
2344
- getStorageService():dh.storage.StorageService;
2345
- getAsIdeConnection():Promise<IdeConnection>;
2346
- disconnect():void;
2347
- addEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):()=>void;
2348
- nextEvent<T>(eventName:string, timeoutInMillis?:number):Promise<CustomEvent<T>>;
2349
- hasListeners(name:string):boolean;
2350
- removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
2361
+ type ValueTypeType = string;
2362
+ export class ValueType {
2363
+ static readonly STRING:ValueTypeType;
2364
+ static readonly NUMBER:ValueTypeType;
2365
+ static readonly DOUBLE:ValueTypeType;
2366
+ static readonly LONG:ValueTypeType;
2367
+ static readonly DATETIME:ValueTypeType;
2368
+ static readonly BOOLEAN:ValueTypeType;
2351
2369
  }
2352
2370
 
2353
-
2354
2371
  /**
2355
2372
  * This enum describes the name of each supported operation/aggregation type when creating a `TreeTable`.
2356
2373
  */
@@ -2372,23 +2389,6 @@ export namespace dh {
2372
2389
  static readonly SKIP:AggregationOperationType;
2373
2390
  }
2374
2391
 
2375
- type ValueTypeType = string;
2376
- export class ValueType {
2377
- static readonly STRING:ValueTypeType;
2378
- static readonly NUMBER:ValueTypeType;
2379
- static readonly DOUBLE:ValueTypeType;
2380
- static readonly LONG:ValueTypeType;
2381
- static readonly DATETIME:ValueTypeType;
2382
- static readonly BOOLEAN:ValueTypeType;
2383
- }
2384
-
2385
- type SearchDisplayModeType = string;
2386
- export class SearchDisplayMode {
2387
- static readonly SEARCH_DISPLAY_DEFAULT:SearchDisplayModeType;
2388
- static readonly SEARCH_DISPLAY_HIDE:SearchDisplayModeType;
2389
- static readonly SEARCH_DISPLAY_SHOW:SearchDisplayModeType;
2390
- }
2391
-
2392
2392
  /**
2393
2393
  * A set of string constants that can be used to describe the different objects the JS API can export.
2394
2394
  */
@@ -2431,21 +2431,6 @@ export namespace dh.ide {
2431
2431
  get message():string;
2432
2432
  }
2433
2433
  /**
2434
- * Indicates the result of code run on the server.
2435
- */
2436
- export interface CommandResult {
2437
- /**
2438
- * Describes changes made in the course of this command.
2439
- * @return {@link dh.ide.VariableChanges}.
2440
- */
2441
- get changes():VariableChanges;
2442
- /**
2443
- * If the command failed, the error message will be provided here.
2444
- * @return String
2445
- */
2446
- get error():string;
2447
- }
2448
- /**
2449
2434
  * Specifies a type and either id or name (but not both).
2450
2435
  */
2451
2436
  export interface VariableDescriptor {
@@ -2518,121 +2503,79 @@ export namespace dh.ide {
2518
2503
  */
2519
2504
  get updated():Array<VariableDefinition>;
2520
2505
  }
2506
+ /**
2507
+ * Indicates the result of code run on the server.
2508
+ */
2509
+ export interface CommandResult {
2510
+ /**
2511
+ * Describes changes made in the course of this command.
2512
+ * @return {@link dh.ide.VariableChanges}.
2513
+ */
2514
+ get changes():VariableChanges;
2515
+ /**
2516
+ * If the command failed, the error message will be provided here.
2517
+ * @return String
2518
+ */
2519
+ get error():string;
2520
+ }
2521
2521
  }
2522
2522
 
2523
2523
  export namespace dh.i18n {
2524
2524
 
2525
2525
  /**
2526
- * Represents the timezones supported by Deephaven. Can be used to format dates, taking into account the offset changing
2527
- * throughout the year (potentially changing each year). These instances mostly are useful at this time to pass to the
2528
- * <b>DateTimeFormat.format()</b> methods, though also support a few properties at this time to see details about each
2529
- * instance.
2530
- *
2531
- *
2532
- * The following timezone codes are supported when getting a timezone object - instances appearing in the same line will
2533
- * return the same details:
2534
- *
2535
- * <ul>
2536
- * <li>GMT/UTC</li>
2537
- * <li>Asia/Tokyo</li>
2538
- * <li>Asia/Seoul</li>
2539
- * <li>Asia/Hong_Kong</li>
2540
- * <li>Asia/Singapore</li>
2541
- * <li>Asia/Calcutta/Asia/Kolkata</li>
2542
- * <li>Europe/Berlin</li>
2543
- * <li>Europe/London</li>
2544
- * <li>America/Sao_Paulo</li>
2545
- * <li>America/St_Johns</li>
2546
- * <li>America/Halifax</li>
2547
- * <li>America/New_York</li>
2548
- * <li>America/Chicago</li>
2549
- * <li>America/Denver</li>
2550
- * <li>America/Los_Angeles</li>
2551
- * <li>America/Anchorage</li>
2552
- * <li>Pacific/Honolulu</li>
2553
- * </ul>
2554
- *
2555
- * A Timezone object can also be created from an abbreviation. The following abbreviations are supported:
2526
+ * Exported wrapper of the GWT NumberFormat, plus LongWrapper support
2556
2527
  *
2557
- * <ul>
2558
- * <li>UTC</li>
2559
- * <li>GMT</li>
2560
- * <li>Z</li>
2561
- * <li>NY</li>
2562
- * <li>ET</li>
2563
- * <li>EST</li>
2564
- * <li>EDT</li>
2565
- * <li>MN</li>
2566
- * <li>CT</li>
2567
- * <li>CST</li>
2568
- * <li>CDT</li>
2569
- * <li>MT</li>
2570
- * <li>MST</li>
2571
- * <li>MDT</li>
2572
- * <li>PT</li>
2573
- * <li>PST</li>
2574
- * <li>PDT</li>
2575
- * <li>HI</li>
2576
- * <li>HST</li>
2577
- * <li>HDT</li>
2578
- * <li>BT</li>
2579
- * <li>BRST</li>
2580
- * <li>BRT</li>
2581
- * <li>KR</li>
2582
- * <li>KST</li>
2583
- * <li>HK</li>
2584
- * <li>HKT</li>
2585
- * <li>JP</li>
2586
- * <li>JST</li>
2587
- * <li>AT</li>
2588
- * <li>AST</li>
2589
- * <li>ADT</li>
2590
- * <li>NF</li>
2591
- * <li>NST</li>
2592
- * <li>NDT</li>
2593
- * <li>AL</li>
2594
- * <li>AKST</li>
2595
- * <li>AKDT</li>
2596
- * <li>IN</li>
2597
- * <li>IST</li>
2598
- * <li>CE</li>
2599
- * <li>CET</li>
2600
- * <li>CEST</li>
2601
- * <li>SG</li>
2602
- * <li>SGT</li>
2603
- * <li>LON</li>
2604
- * <li>BST</li>
2605
- * <li>MOS</li>
2606
- * <li>SHG</li>
2607
- * <li>CH</li>
2608
- * <li>NL</li>
2609
- * <li>TW</li>
2610
- * <li>SYD</li>
2611
- * <li>AEST</li>
2612
- * <li>AEDT</li>
2613
- * </ul>
2528
+ * Utility class to parse and format numbers, using the same format patterns as are supported by the standard Java
2529
+ * implementation used in the Deephaven server and swing client. Works for numeric types including BigInteger and
2530
+ * BigDecimal.
2614
2531
  */
2615
- export class TimeZone {
2616
- protected constructor();
2532
+ export class NumberFormat {
2533
+ /**
2534
+ * Creates a new number format instance. This generally should be avoided in favor of the static `getFormat`
2535
+ * function, which will create and cache an instance so that later calls share the same instance.
2536
+ * @param pattern -
2537
+ */
2538
+ constructor(pattern:string);
2617
2539
 
2618
2540
  /**
2619
- * Factory method which creates timezone instances from one of the supported keys.
2620
- * @param tzCode -
2621
- * @return dh.i18n.TimeZone
2541
+ * a number format instance matching the specified format. If this format has not been specified before, a new
2542
+ * instance will be created and cached for later reuse. Prefer this method to calling the constructor directly to
2543
+ * take advantage of caching
2544
+ * @param pattern -
2545
+ * @return dh.i18n.NumberFormat
2622
2546
  */
2623
- static getTimeZone(tzCode:string):TimeZone;
2547
+ static getFormat(pattern:string):NumberFormat;
2624
2548
  /**
2625
- * the standard offset of this timezone, in minutes
2626
- * @return int
2549
+ * Parses the given text using the cached format matching the given pattern.
2550
+ * @param pattern -
2551
+ * @param text -
2552
+ * @return double
2627
2553
  */
2628
- get standardOffset():number;
2554
+ static parse(pattern:string, text:string):number;
2629
2555
  /**
2630
- * the timezone code that represents this `TimeZone`, usually the same key as was use to create this instance
2556
+ * Formats the specified number (or Java <b>long</b>, <b>BigInteger</b> or <b>BigDecimal</b> value) using the cached
2557
+ * format matching the given pattern string.
2558
+ * @param pattern -
2559
+ * @param number -
2631
2560
  * @return String
2632
2561
  */
2633
- get id():string;
2562
+ static format(pattern:string, number:number|dh.BigIntegerWrapper|dh.BigDecimalWrapper|dh.LongWrapper):string;
2563
+ /**
2564
+ * Parses the given text using this instance's pattern into a JS Number.
2565
+ * @param text -
2566
+ * @return double
2567
+ */
2568
+ parse(text:string):number;
2569
+ /**
2570
+ * Formats the specified number (or Java `long`, `BigInteger` or `BigDecimal` value) using this instance's pattern.
2571
+ * @param number -
2572
+ * @return String
2573
+ */
2574
+ format(number:number|dh.BigIntegerWrapper|dh.BigDecimalWrapper|dh.LongWrapper):string;
2575
+ toString():string;
2634
2576
  }
2635
2577
 
2578
+
2636
2579
  /**
2637
2580
  * Largely an exported wrapper for the GWT DateFormat, but also includes support for formatting nanoseconds as an
2638
2581
  * additional 6 decimal places after the rest of the number.
@@ -2732,59 +2675,116 @@ export namespace dh.i18n {
2732
2675
  }
2733
2676
 
2734
2677
  /**
2735
- * Exported wrapper of the GWT NumberFormat, plus LongWrapper support
2678
+ * Represents the timezones supported by Deephaven. Can be used to format dates, taking into account the offset changing
2679
+ * throughout the year (potentially changing each year). These instances mostly are useful at this time to pass to the
2680
+ * <b>DateTimeFormat.format()</b> methods, though also support a few properties at this time to see details about each
2681
+ * instance.
2736
2682
  *
2737
- * Utility class to parse and format numbers, using the same format patterns as are supported by the standard Java
2738
- * implementation used in the Deephaven server and swing client. Works for numeric types including BigInteger and
2739
- * BigDecimal.
2683
+ *
2684
+ * The following timezone codes are supported when getting a timezone object - instances appearing in the same line will
2685
+ * return the same details:
2686
+ *
2687
+ * <ul>
2688
+ * <li>GMT/UTC</li>
2689
+ * <li>Asia/Tokyo</li>
2690
+ * <li>Asia/Seoul</li>
2691
+ * <li>Asia/Hong_Kong</li>
2692
+ * <li>Asia/Singapore</li>
2693
+ * <li>Asia/Calcutta/Asia/Kolkata</li>
2694
+ * <li>Europe/Berlin</li>
2695
+ * <li>Europe/London</li>
2696
+ * <li>America/Sao_Paulo</li>
2697
+ * <li>America/St_Johns</li>
2698
+ * <li>America/Halifax</li>
2699
+ * <li>America/New_York</li>
2700
+ * <li>America/Chicago</li>
2701
+ * <li>America/Denver</li>
2702
+ * <li>America/Los_Angeles</li>
2703
+ * <li>America/Anchorage</li>
2704
+ * <li>Pacific/Honolulu</li>
2705
+ * </ul>
2706
+ *
2707
+ * A Timezone object can also be created from an abbreviation. The following abbreviations are supported:
2708
+ *
2709
+ * <ul>
2710
+ * <li>UTC</li>
2711
+ * <li>GMT</li>
2712
+ * <li>Z</li>
2713
+ * <li>NY</li>
2714
+ * <li>ET</li>
2715
+ * <li>EST</li>
2716
+ * <li>EDT</li>
2717
+ * <li>MN</li>
2718
+ * <li>CT</li>
2719
+ * <li>CST</li>
2720
+ * <li>CDT</li>
2721
+ * <li>MT</li>
2722
+ * <li>MST</li>
2723
+ * <li>MDT</li>
2724
+ * <li>PT</li>
2725
+ * <li>PST</li>
2726
+ * <li>PDT</li>
2727
+ * <li>HI</li>
2728
+ * <li>HST</li>
2729
+ * <li>HDT</li>
2730
+ * <li>BT</li>
2731
+ * <li>BRST</li>
2732
+ * <li>BRT</li>
2733
+ * <li>KR</li>
2734
+ * <li>KST</li>
2735
+ * <li>HK</li>
2736
+ * <li>HKT</li>
2737
+ * <li>JP</li>
2738
+ * <li>JST</li>
2739
+ * <li>AT</li>
2740
+ * <li>AST</li>
2741
+ * <li>ADT</li>
2742
+ * <li>NF</li>
2743
+ * <li>NST</li>
2744
+ * <li>NDT</li>
2745
+ * <li>AL</li>
2746
+ * <li>AKST</li>
2747
+ * <li>AKDT</li>
2748
+ * <li>IN</li>
2749
+ * <li>IST</li>
2750
+ * <li>CE</li>
2751
+ * <li>CET</li>
2752
+ * <li>CEST</li>
2753
+ * <li>SG</li>
2754
+ * <li>SGT</li>
2755
+ * <li>LON</li>
2756
+ * <li>BST</li>
2757
+ * <li>MOS</li>
2758
+ * <li>SHG</li>
2759
+ * <li>CH</li>
2760
+ * <li>NL</li>
2761
+ * <li>TW</li>
2762
+ * <li>SYD</li>
2763
+ * <li>AEST</li>
2764
+ * <li>AEDT</li>
2765
+ * </ul>
2740
2766
  */
2741
- export class NumberFormat {
2742
- /**
2743
- * Creates a new number format instance. This generally should be avoided in favor of the static `getFormat`
2744
- * function, which will create and cache an instance so that later calls share the same instance.
2745
- * @param pattern -
2746
- */
2747
- constructor(pattern:string);
2767
+ export class TimeZone {
2768
+ protected constructor();
2748
2769
 
2749
2770
  /**
2750
- * a number format instance matching the specified format. If this format has not been specified before, a new
2751
- * instance will be created and cached for later reuse. Prefer this method to calling the constructor directly to
2752
- * take advantage of caching
2753
- * @param pattern -
2754
- * @return dh.i18n.NumberFormat
2755
- */
2756
- static getFormat(pattern:string):NumberFormat;
2757
- /**
2758
- * Parses the given text using the cached format matching the given pattern.
2759
- * @param pattern -
2760
- * @param text -
2761
- * @return double
2762
- */
2763
- static parse(pattern:string, text:string):number;
2764
- /**
2765
- * Formats the specified number (or Java <b>long</b>, <b>BigInteger</b> or <b>BigDecimal</b> value) using the cached
2766
- * format matching the given pattern string.
2767
- * @param pattern -
2768
- * @param number -
2769
- * @return String
2771
+ * Factory method which creates timezone instances from one of the supported keys.
2772
+ * @param tzCode -
2773
+ * @return dh.i18n.TimeZone
2770
2774
  */
2771
- static format(pattern:string, number:number|dh.BigIntegerWrapper|dh.BigDecimalWrapper|dh.LongWrapper):string;
2775
+ static getTimeZone(tzCode:string):TimeZone;
2772
2776
  /**
2773
- * Parses the given text using this instance's pattern into a JS Number.
2774
- * @param text -
2775
- * @return double
2777
+ * the standard offset of this timezone, in minutes
2778
+ * @return int
2776
2779
  */
2777
- parse(text:string):number;
2780
+ get standardOffset():number;
2778
2781
  /**
2779
- * Formats the specified number (or Java `long`, `BigInteger` or `BigDecimal` value) using this instance's pattern.
2780
- * @param number -
2782
+ * the timezone code that represents this `TimeZone`, usually the same key as was use to create this instance
2781
2783
  * @return String
2782
2784
  */
2783
- format(number:number|dh.BigIntegerWrapper|dh.BigDecimalWrapper|dh.LongWrapper):string;
2784
- toString():string;
2785
+ get id():string;
2785
2786
  }
2786
2787
 
2787
-
2788
2788
  }
2789
2789
 
2790
2790
  export namespace dh.plot {
@@ -2793,32 +2793,6 @@ export namespace dh.plot {
2793
2793
  getArray(series:Series, sourceType:number, mappingFunc?:(arg0:any)=>any):Array<any>;
2794
2794
  get series():Series[];
2795
2795
  }
2796
- export interface OneClick {
2797
- setValueForColumn(columnName:string, value:any):void;
2798
- getValueForColumn(columName:string):any;
2799
- get requireAllFiltersToDisplay():boolean;
2800
- get columns():dh.Column[];
2801
- }
2802
- /**
2803
- * Describes how to access and display data required within a series.
2804
- */
2805
- export interface SeriesDataSource {
2806
- /**
2807
- * the type of data stored in the underlying table's Column.
2808
- * @return String
2809
- */
2810
- get columnType():string;
2811
- /**
2812
- * the axis that this source should be drawn on.
2813
- * @return dh.plot.Axis
2814
- */
2815
- get axis():Axis;
2816
- /**
2817
- * the feature of this series represented by this source. See the <b>SourceType</b> enum for more details.
2818
- * @return int
2819
- */
2820
- get type():SourceTypeType;
2821
- }
2822
2796
  /**
2823
2797
  * Defines one axis used with by series. These instances will be found both on the Chart and the Series instances, and
2824
2798
  * may be shared between Series instances.
@@ -2903,6 +2877,26 @@ export namespace dh.plot {
2903
2877
  get plotStyle():SeriesPlotStyleType;
2904
2878
  }
2905
2879
  /**
2880
+ * Describes how to access and display data required within a series.
2881
+ */
2882
+ export interface SeriesDataSource {
2883
+ /**
2884
+ * the type of data stored in the underlying table's Column.
2885
+ * @return String
2886
+ */
2887
+ get columnType():string;
2888
+ /**
2889
+ * the axis that this source should be drawn on.
2890
+ * @return dh.plot.Axis
2891
+ */
2892
+ get axis():Axis;
2893
+ /**
2894
+ * the feature of this series represented by this source. See the <b>SourceType</b> enum for more details.
2895
+ * @return int
2896
+ */
2897
+ get type():SourceTypeType;
2898
+ }
2899
+ /**
2906
2900
  * Provides access to the data for displaying in a figure.
2907
2901
  */
2908
2902
  export interface Series {
@@ -2946,40 +2940,83 @@ export namespace dh.plot {
2946
2940
  get multiSeries():MultiSeries;
2947
2941
  get shapeLabel():string;
2948
2942
  }
2943
+ export interface OneClick {
2944
+ setValueForColumn(columnName:string, value:any):void;
2945
+ getValueForColumn(columName:string):any;
2946
+ get requireAllFiltersToDisplay():boolean;
2947
+ get columns():dh.Column[];
2948
+ }
2949
2949
 
2950
- export class SourceDescriptor {
2951
- axis:AxisDescriptor;
2952
- table:dh.Table;
2953
- columnName:string;
2954
- type:string;
2950
+ export class SeriesDescriptor {
2951
+ plotStyle:string;
2952
+ name?:string|null;
2953
+ linesVisible?:boolean|null;
2954
+ shapesVisible?:boolean|null;
2955
+ gradientVisible?:boolean|null;
2956
+ lineColor?:string|null;
2957
+ pointLabelFormat?:string|null;
2958
+ xToolTipPattern?:string|null;
2959
+ yToolTipPattern?:string|null;
2960
+ shapeLabel?:string|null;
2961
+ shapeSize?:number|null;
2962
+ shapeColor?:string|null;
2963
+ shape?:string|null;
2964
+ dataSources:Array<SourceDescriptor>;
2955
2965
 
2956
2966
  constructor();
2957
2967
  }
2958
2968
 
2959
- export class AxisDescriptor {
2960
- formatType:string;
2961
- type:string;
2962
- position:string;
2963
- log?:boolean|null;
2964
- label?:string|null;
2965
- labelFont?:string|null;
2966
- ticksFont?:string|null;
2967
- formatPattern?:string|null;
2968
- color?:string|null;
2969
- minRange?:number|null;
2970
- maxRange?:number|null;
2971
- minorTicksVisible?:boolean|null;
2972
- majorTicksVisible?:boolean|null;
2973
- minorTickCount?:number|null;
2974
- gapBetweenMajorTicks?:number|null;
2975
- majorTickLocations?:Array<number>|null;
2976
- tickLabelAngle?:number|null;
2977
- invert?:boolean|null;
2978
- isTimeAxis?:boolean|null;
2969
+ /**
2970
+ * Helper class to manage snapshots and deltas and keep not only a contiguous JS array of data per column in the
2971
+ * underlying table, but also support a mapping function to let client code translate data in some way for display and
2972
+ * keep that cached as well.
2973
+ */
2974
+ export class ChartData {
2975
+ constructor(table:dh.Table);
2979
2976
 
2980
- constructor();
2977
+ update(tableData:dh.SubscriptionTableData):void;
2978
+ getColumn(columnName:string, mappingFunc:(arg0:any)=>any, currentUpdate:dh.TableData):Array<any>;
2979
+ /**
2980
+ * Removes some column from the cache, avoiding extra computation on incoming events, and possibly freeing some
2981
+ * memory. If this pair of column name and map function are requested again, it will be recomputed from scratch.
2982
+ */
2983
+ removeColumn(columnName:string, mappingFunc:(arg0:any)=>any):void;
2981
2984
  }
2982
2985
 
2986
+ /**
2987
+ * Provides the details for a figure.
2988
+ *
2989
+ * The Deephaven JS API supports automatic lossless downsampling of time-series data, when that data is plotted in one
2990
+ * or more line series. Using a scatter plot or a X-axis of some type other than DateTime will prevent this feature from
2991
+ * being applied to a series. To enable this feature, invoke <b>Axis.range(...)</b> to specify the length in pixels of
2992
+ * the axis on the screen, and the range of values that are visible, and the server will use that width (and range, if
2993
+ * any) to reduce the number of points sent to the client.
2994
+ *
2995
+ * Downsampling can also be controlled when calling either <b>Figure.subscribe()</b> or <b>Series.subscribe()</b> - both
2996
+ * can be given an optional <b>dh.plot.DownsampleOptions</b> argument. Presently only two valid values exist,
2997
+ * <b>DEFAULT</b>, and <b>DISABLE</b>, and if no argument is specified, <b>DEFAULT</b> is assumed. If there are more
2998
+ * than 30,000 rows in a table, downsampling will be encouraged - data will not load without calling
2999
+ * <b>subscribe(DISABLE)</b> or enabling downsampling via <b>Axis.range(...)</b>. If there are more than 200,000 rows,
3000
+ * data will refuse to load without downsampling and <b>subscribe(DISABLE)</b> would have no effect.
3001
+ *
3002
+ * Downsampled data looks like normal data, except that select items have been removed if they would be redundant in the
3003
+ * UI given the current configuration. Individual rows are intact, so that a tooltip or some other UI item is sure to be
3004
+ * accurate and consistent, and at least the highest and lowest value for each axis will be retained as well, to ensure
3005
+ * that the "important" values are visible.
3006
+ *
3007
+ * Four events exist to help with interacting with downsampled data, all fired from the <b>Figure</b> instance itself.
3008
+ * First, <b>downsampleneeded</b> indicates that more than 30,000 rows would be fetched, and so specifying downsampling
3009
+ * is no longer optional - it must either be enabled (calling <b>axis.range(...)</b>), or disabled. If the figure is
3010
+ * configured for downsampling, when a change takes place that requires that the server perform some downsampling work,
3011
+ * the <b>downsamplestarted</b> event will first be fired, which can be used to present a brief loading message,
3012
+ * indicating to the user why data is not ready yet - when the server side process is complete,
3013
+ * <b>downsamplefinished</b> will be fired. These events will repeat when the range changes, such as when zooming,
3014
+ * panning, or resizing the figure. Finally, <b>downsamplefailed</b> indicates that something when wrong when
3015
+ * downsampling, or possibly that downsampling cannot be disabled due to the number of rows in the table.
3016
+ *
3017
+ * At this time, not marked as a ServerObject, due to internal implementation issues which leave the door open to
3018
+ * client-created figures.
3019
+ */
2983
3020
  export class Figure implements dh.HasEventHandling {
2984
3021
  /**
2985
3022
  * The title of the figure.
@@ -3023,7 +3060,8 @@ export namespace dh.plot {
3023
3060
  */
3024
3061
  static readonly EVENT_DOWNSAMPLENEEDED:string;
3025
3062
 
3026
- static create(config:FigureDescriptor):Promise<Figure>;
3063
+ protected constructor();
3064
+
3027
3065
  subscribe(forceDisableDownsample?:DownsampleOptions):void;
3028
3066
  /**
3029
3067
  * Disable updates for all series in this figure.
@@ -3062,66 +3100,7 @@ export namespace dh.plot {
3062
3100
  * @typeParam T -
3063
3101
  */
3064
3102
  removeEventListener<T>(name:string, callback:(e:CustomEvent<T>)=>void):boolean;
3065
- }
3066
-
3067
- export class FigureFetchError {
3068
- error:object;
3069
- errors:Array<string>;
3070
-
3071
- protected constructor();
3072
- }
3073
-
3074
- export class ChartDescriptor {
3075
- colspan?:number|null;
3076
- rowspan?:number|null;
3077
- series:Array<SeriesDescriptor>;
3078
- axes:Array<AxisDescriptor>;
3079
- chartType:string;
3080
- title?:string|null;
3081
- titleFont?:string|null;
3082
- titleColor?:string|null;
3083
- showLegend?:boolean|null;
3084
- legendFont?:string|null;
3085
- legendColor?:string|null;
3086
- is3d?:boolean|null;
3087
-
3088
- constructor();
3089
- }
3090
-
3091
- export class SeriesDescriptor {
3092
- plotStyle:string;
3093
- name?:string|null;
3094
- linesVisible?:boolean|null;
3095
- shapesVisible?:boolean|null;
3096
- gradientVisible?:boolean|null;
3097
- lineColor?:string|null;
3098
- pointLabelFormat?:string|null;
3099
- xToolTipPattern?:string|null;
3100
- yToolTipPattern?:string|null;
3101
- shapeLabel?:string|null;
3102
- shapeSize?:number|null;
3103
- shapeColor?:string|null;
3104
- shape?:string|null;
3105
- dataSources:Array<SourceDescriptor>;
3106
-
3107
- constructor();
3108
- }
3109
-
3110
- /**
3111
- * Helper class to manage snapshots and deltas and keep not only a contiguous JS array of data per column in the
3112
- * underlying table, but also support a mapping function to let client code translate data in some way for display and
3113
- * keep that cached as well.
3114
- */
3115
- export class ChartData {
3116
- constructor(table:dh.Table);
3117
-
3118
- update(tableData:dh.SubscriptionTableData):void;
3119
- getColumn(columnName:string, mappingFunc:(arg0:any)=>any, currentUpdate:dh.TableData):Array<any>;
3120
- /**
3121
- * Removes some column from the cache, avoiding extra computation on incoming events, and possibly freeing some
3122
- * memory. If this pair of column name and map function are requested again, it will be recomputed from scratch.
3123
- */
3124
- removeColumn(columnName:string, mappingFunc:(arg0:any)=>any):void;
3103
+ static create(config:FigureDescriptor):Promise<Figure>;
3125
3104
  }
3126
3105
 
3127
3106
  export class DownsampleOptions {
@@ -3150,6 +3129,47 @@ export namespace dh.plot {
3150
3129
  protected constructor();
3151
3130
  }
3152
3131
 
3132
+ export class FigureFetchError {
3133
+ error:object;
3134
+ errors:Array<string>;
3135
+
3136
+ protected constructor();
3137
+ }
3138
+
3139
+ /**
3140
+ * A descriptor used with JsFigureFactory.create to create a figure from JS.
3141
+ */
3142
+ export class FigureDescriptor {
3143
+ title?:string|null;
3144
+ titleFont?:string|null;
3145
+ titleColor?:string|null;
3146
+ isResizable?:boolean|null;
3147
+ isDefaultTheme?:boolean|null;
3148
+ updateInterval?:number|null;
3149
+ cols?:number|null;
3150
+ rows?:number|null;
3151
+ charts:Array<ChartDescriptor>;
3152
+
3153
+ constructor();
3154
+ }
3155
+
3156
+ export class ChartDescriptor {
3157
+ colspan?:number|null;
3158
+ rowspan?:number|null;
3159
+ series:Array<SeriesDescriptor>;
3160
+ axes:Array<AxisDescriptor>;
3161
+ chartType:string;
3162
+ title?:string|null;
3163
+ titleFont?:string|null;
3164
+ titleColor?:string|null;
3165
+ showLegend?:boolean|null;
3166
+ legendFont?:string|null;
3167
+ legendColor?:string|null;
3168
+ is3d?:boolean|null;
3169
+
3170
+ constructor();
3171
+ }
3172
+
3153
3173
  /**
3154
3174
  * Provide the details for a chart.
3155
3175
  */
@@ -3194,26 +3214,26 @@ export namespace dh.plot {
3194
3214
  get multiSeries():MultiSeries[];
3195
3215
  }
3196
3216
 
3197
- export class FigureSourceException {
3198
- table:dh.Table;
3199
- source:SeriesDataSource;
3200
-
3201
- protected constructor();
3202
- }
3203
-
3204
- /**
3205
- * A descriptor used with JsFigureFactory.create to create a figure from JS.
3206
- */
3207
- export class FigureDescriptor {
3208
- title?:string|null;
3209
- titleFont?:string|null;
3210
- titleColor?:string|null;
3211
- isResizable?:boolean|null;
3212
- isDefaultTheme?:boolean|null;
3213
- updateInterval?:number|null;
3214
- cols?:number|null;
3215
- rows?:number|null;
3216
- charts:Array<ChartDescriptor>;
3217
+ export class AxisDescriptor {
3218
+ formatType:string;
3219
+ type:string;
3220
+ position:string;
3221
+ log?:boolean|null;
3222
+ label?:string|null;
3223
+ labelFont?:string|null;
3224
+ ticksFont?:string|null;
3225
+ formatPattern?:string|null;
3226
+ color?:string|null;
3227
+ minRange?:number|null;
3228
+ maxRange?:number|null;
3229
+ minorTicksVisible?:boolean|null;
3230
+ majorTicksVisible?:boolean|null;
3231
+ minorTickCount?:number|null;
3232
+ gapBetweenMajorTicks?:number|null;
3233
+ majorTickLocations?:Array<number>|null;
3234
+ tickLabelAngle?:number|null;
3235
+ invert?:boolean|null;
3236
+ isTimeAxis?:boolean|null;
3217
3237
 
3218
3238
  constructor();
3219
3239
  }
@@ -3225,6 +3245,15 @@ export namespace dh.plot {
3225
3245
  get message():string;
3226
3246
  }
3227
3247
 
3248
+ export class SourceDescriptor {
3249
+ axis:AxisDescriptor;
3250
+ table:dh.Table;
3251
+ columnName:string;
3252
+ type:string;
3253
+
3254
+ constructor();
3255
+ }
3256
+
3228
3257
  /**
3229
3258
  * Helper class for plot downsampling methods.
3230
3259
  */
@@ -3244,6 +3273,22 @@ export namespace dh.plot {
3244
3273
  static runChartDownsample(table:dh.Table, xCol:string, yCols:string[], width:number, xRange?:dh.LongWrapper[]|undefined|null):Promise<dh.Table>;
3245
3274
  }
3246
3275
 
3276
+ export class FigureSourceException {
3277
+ table:dh.Table;
3278
+ source:SeriesDataSource;
3279
+
3280
+ protected constructor();
3281
+ }
3282
+
3283
+
3284
+ type AxisPositionType = number;
3285
+ export class AxisPosition {
3286
+ static readonly TOP:AxisPositionType;
3287
+ static readonly BOTTOM:AxisPositionType;
3288
+ static readonly LEFT:AxisPositionType;
3289
+ static readonly RIGHT:AxisPositionType;
3290
+ static readonly NONE:AxisPositionType;
3291
+ }
3247
3292
 
3248
3293
  type AxisTypeType = number;
3249
3294
  export class AxisType {
@@ -3270,21 +3315,6 @@ export namespace dh.plot {
3270
3315
  static readonly TREEMAP:ChartTypeType;
3271
3316
  }
3272
3317
 
3273
- type AxisFormatTypeType = number;
3274
- export class AxisFormatType {
3275
- static readonly CATEGORY:AxisFormatTypeType;
3276
- static readonly NUMBER:AxisFormatTypeType;
3277
- }
3278
-
3279
- type AxisPositionType = number;
3280
- export class AxisPosition {
3281
- static readonly TOP:AxisPositionType;
3282
- static readonly BOTTOM:AxisPositionType;
3283
- static readonly LEFT:AxisPositionType;
3284
- static readonly RIGHT:AxisPositionType;
3285
- static readonly NONE:AxisPositionType;
3286
- }
3287
-
3288
3318
  type SeriesPlotStyleType = number;
3289
3319
  export class SeriesPlotStyle {
3290
3320
  static readonly BAR:SeriesPlotStyleType;
@@ -3301,6 +3331,12 @@ export namespace dh.plot {
3301
3331
  static readonly TREEMAP:SeriesPlotStyleType;
3302
3332
  }
3303
3333
 
3334
+ type AxisFormatTypeType = number;
3335
+ export class AxisFormatType {
3336
+ static readonly CATEGORY:AxisFormatTypeType;
3337
+ static readonly NUMBER:AxisFormatTypeType;
3338
+ }
3339
+
3304
3340
  /**
3305
3341
  * This enum describes the source it is in, and how this aspect of the data in the series should be used to render the
3306
3342
  * 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
@@ -3334,9 +3370,11 @@ export namespace dh.plot {
3334
3370
 
3335
3371
  export namespace dh.lsp {
3336
3372
 
3337
- export class MarkupContent {
3338
- kind:string;
3339
- value:string;
3373
+ export class SignatureInformation {
3374
+ label:string;
3375
+ documentation:MarkupContent;
3376
+ parameters:Array<ParameterInformation>;
3377
+ activeParameter:number;
3340
3378
 
3341
3379
  constructor();
3342
3380
  }
@@ -3350,10 +3388,26 @@ export namespace dh.lsp {
3350
3388
  isInside(innerStart:Position, innerEnd:Position):boolean;
3351
3389
  }
3352
3390
 
3353
- export class TextDocumentContentChangeEvent {
3354
- range:Range;
3355
- rangeLength:number;
3356
- text:string;
3391
+ export class MarkupContent {
3392
+ kind:string;
3393
+ value:string;
3394
+
3395
+ constructor();
3396
+ }
3397
+
3398
+ export class CompletionItem {
3399
+ label:string;
3400
+ kind:number;
3401
+ detail:string;
3402
+ documentation:MarkupContent;
3403
+ deprecated:boolean;
3404
+ preselect:boolean;
3405
+ textEdit:TextEdit;
3406
+ sortText:string;
3407
+ filterText:string;
3408
+ insertTextFormat:number;
3409
+ additionalTextEdits:Array<TextEdit>;
3410
+ commitCharacters:Array<string>;
3357
3411
 
3358
3412
  constructor();
3359
3413
  }
@@ -3371,26 +3425,9 @@ export namespace dh.lsp {
3371
3425
  copy():Position;
3372
3426
  }
3373
3427
 
3374
- export class TextEdit {
3428
+ export class Hover {
3429
+ contents:MarkupContent;
3375
3430
  range:Range;
3376
- text:string;
3377
-
3378
- constructor();
3379
- }
3380
-
3381
- export class CompletionItem {
3382
- label:string;
3383
- kind:number;
3384
- detail:string;
3385
- documentation:MarkupContent;
3386
- deprecated:boolean;
3387
- preselect:boolean;
3388
- textEdit:TextEdit;
3389
- sortText:string;
3390
- filterText:string;
3391
- insertTextFormat:number;
3392
- additionalTextEdits:Array<TextEdit>;
3393
- commitCharacters:Array<string>;
3394
3431
 
3395
3432
  constructor();
3396
3433
  }
@@ -3402,24 +3439,24 @@ export namespace dh.lsp {
3402
3439
  constructor();
3403
3440
  }
3404
3441
 
3405
- export class SignatureInformation {
3406
- label:string;
3407
- documentation:MarkupContent;
3408
- parameters:Array<ParameterInformation>;
3409
- activeParameter:number;
3442
+ export class TextDocumentContentChangeEvent {
3443
+ range:Range;
3444
+ rangeLength:number;
3445
+ text:string;
3410
3446
 
3411
3447
  constructor();
3412
3448
  }
3413
3449
 
3414
- export class Hover {
3415
- contents:MarkupContent;
3450
+ export class TextEdit {
3416
3451
  range:Range;
3452
+ text:string;
3417
3453
 
3418
3454
  constructor();
3419
3455
  }
3420
3456
 
3421
3457
  }
3422
3458
 
3459
+
3423
3460
  export namespace dh.calendar {
3424
3461
 
3425
3462
  /**
@@ -3483,4 +3520,3 @@ export namespace dh.calendar {
3483
3520
  }
3484
3521
 
3485
3522
  }
3486
-