@deephaven/grid 0.7.0 → 0.7.1-beta.13

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.
@@ -1,171 +1,250 @@
1
- export default GridRange;
1
+ export declare type GridRangeIndex = number | null;
2
+ declare type LeftIndex = GridRangeIndex;
3
+ declare type RightIndex = GridRangeIndex;
4
+ declare type TopIndex = GridRangeIndex;
5
+ declare type BottomIndex = GridRangeIndex;
6
+ export declare type GridCell = {
7
+ column: number;
8
+ row: number;
9
+ };
10
+ export interface BoundedGridRange extends GridRange {
11
+ startColumn: number;
12
+ startRow: number;
13
+ endColumn: number;
14
+ endRow: number;
15
+ }
16
+ export declare enum SELECTION_DIRECTION {
17
+ DOWN = "DOWN",
18
+ UP = "UP",
19
+ LEFT = "LEFT",
20
+ RIGHT = "RIGHT"
21
+ }
2
22
  declare class GridRange {
3
- static SELECTION_DIRECTION: Readonly<{
4
- DOWN: string;
5
- UP: string;
6
- LEFT: string;
7
- RIGHT: string;
8
- }>;
9
- static normalize(startColumn: any, startRow: any, endColumn: any, endRow: any): any[];
10
- /** Make a GridRange, but ensure startColumn <= endColumn, startRow <= endRow */
11
- static makeNormalized(...coordinates: any[]): GridRange;
12
- static makeCell(column: any, row: any): GridRange;
13
- static makeColumn(column: any): GridRange;
14
- static makeRow(row: any): GridRange;
15
- static minOrNull(value1: any, value2: any): number | null;
16
- static maxOrNull(value1: any, value2: any): number | null;
23
+ startColumn: GridRangeIndex;
24
+ startRow: GridRangeIndex;
25
+ endColumn: GridRangeIndex;
26
+ endRow: GridRangeIndex;
27
+ static SELECTION_DIRECTION: typeof SELECTION_DIRECTION;
28
+ /**
29
+ * Returns a normalized array of indexes ensuring left <= right and top <= bottom
30
+ * @param startColumn Start column index
31
+ * @param startRow Start row index
32
+ * @param endColumn End column index
33
+ * @param endRow End row index
34
+ * @returns Array containing normalized indexes [left, top, right, bottom]
35
+ */
36
+ static normalize(startColumn: GridRangeIndex, startRow: GridRangeIndex, endColumn: GridRangeIndex, endRow: GridRangeIndex): [LeftIndex, TopIndex, RightIndex, BottomIndex];
37
+ /**
38
+ * Makes a GridRange ensuring startColumn <= endColumn, startRow <= endRow
39
+ * @param startColumn Start column index
40
+ * @param startRow Start row index
41
+ * @param endColumn End column index
42
+ * @param endRow End row index
43
+ * @returns Normalized GridRange
44
+ */
45
+ static makeNormalized(startColumn: GridRangeIndex, startRow: GridRangeIndex, endColumn: GridRangeIndex, endRow: GridRangeIndex): GridRange;
46
+ /**
47
+ * Creates a GridRange representing a single cell
48
+ * @param column Column index
49
+ * @param row Row index
50
+ * @returns GridRange representing the cell
51
+ */
52
+ static makeCell(column: GridRangeIndex, row: GridRangeIndex): GridRange;
53
+ /**
54
+ * Creates a GridRange representing an infinite length column
55
+ * @param column Column index
56
+ * @returns GridRange representing the column
57
+ */
58
+ static makeColumn(column: GridRangeIndex): GridRange;
59
+ /**
60
+ * Creates a GridRange representing an infinite length row
61
+ * @param row Row index
62
+ * @returns GridRange representing the row
63
+ */
64
+ static makeRow(row: GridRangeIndex): GridRange;
65
+ /**
66
+ * Returns the minimum value between 2 range indexes or null if at least 1 is null
67
+ * @param index1 First grid range index
68
+ * @param index2 Second grid range index
69
+ * @returns Minimum index or null if either index is null
70
+ */
71
+ static minOrNull(index1: GridRangeIndex, index2: GridRangeIndex): number | null;
72
+ /**
73
+ * Returns the maximum value between 2 range indexes or null if at least 1 is null
74
+ * @param index1 First grid range index
75
+ * @param index2 Second grid range index
76
+ * @returns Maximum index or null if either index is null
77
+ */
78
+ static maxOrNull(index1: GridRangeIndex, index2: GridRangeIndex): number | null;
17
79
  /**
18
80
  * Consolidate the passed in ranges to the minimum set, merging overlapping ranges.
19
- * @param {[GridRange]} ranges The ranges to consolidate
81
+ * @param ranges The ranges to consolidate
82
+ * @returns Consolidated ranges
83
+ */
84
+ static consolidate(ranges: GridRange[]): GridRange[];
85
+ /**
86
+ * Checks if the 1-D ranges between 2 index pairs overlap or are continuous.
87
+ * For example ranges [0, 1] and [2, 3] are continuous and will return true.
88
+ * [0, 1] and [1, 3] overlap and return true.
89
+ * [0, 1] and [3, 4] do not overlap and have a gap so this will return false.
90
+ * @param start1 Start of 1st range
91
+ * @param end1 End of 1st range
92
+ * @param start2 Start of 2nd range
93
+ * @param end2 End of 2nd range
94
+ * @returns True if the ranges overlap or touch, else false
95
+ */
96
+ static isAxisRangeTouching(start1: GridRangeIndex, end1: GridRangeIndex, start2: GridRangeIndex, end2: GridRangeIndex): boolean;
97
+ /**
98
+ * Checks if 2 arrays of ranges are the same ranges
99
+ * @param ranges1 First array of ranges
100
+ * @param ranges2 Second array of ranges
101
+ * @returns True if the arrays contain the same ranges in the same order
20
102
  */
21
- static consolidate(ranges: [GridRange]): GridRange[];
22
- static isAxisRangeTouching(start: any, end: any, otherStart: any, otherEnd: any): boolean;
23
- static rangeArraysEqual(ranges1: any, ranges2: any): boolean;
103
+ static rangeArraysEqual(ranges1: GridRange[], ranges2: GridRange[]): boolean;
24
104
  /**
25
105
  * Get the intersection (overlapping area) of two ranges
26
- * @param {GridRange} range One range to check for the intersection
27
- * @param {GridRange} otherRange The other range to check for the intersection
28
- * @returns {GridRange|null} Intersection of the two ranges. If they do not intersect, returns `null`.
106
+ * @param range One range to check for the intersection
107
+ * @param otherRange The other range to check for the intersection
108
+ * @returns Intersection of the two ranges. If they do not intersect, returns `null`.
29
109
  */
30
110
  static intersection(range: GridRange, otherRange: GridRange): GridRange | null;
31
111
  /**
32
- * @param {GridRange} range The range to be subtracted from
33
- * @param {GridRange} subtractRange The range to subtract from within this range
34
- * @returns {GridRange[]} The ranges needed to represent the remaining
112
+ * Subtracts 1 range from another
113
+ * @param range The range to be subtracted from
114
+ * @param subtractRange The range to subtract from within this range
115
+ * @returns The ranges needed to represent the remaining
35
116
  */
36
117
  static subtractFromRange(range: GridRange, subtractRange: GridRange): GridRange[];
37
118
  /**
38
119
  * Subtract a range from multiple ranges
39
- * @param {GridRange[]} ranges The ranges to be subtracted from
40
- * @param {GridRange} subtractRange The range to subtract from within these ranges
41
- * @returns {GridRange[]} The ranges needed to represent the remaining
120
+ * @param ranges The ranges to be subtracted from
121
+ * @param subtractRange The range to subtract from within these ranges
122
+ * @returns The ranges needed to represent the remaining
42
123
  */
43
124
  static subtractFromRanges(ranges: GridRange[], subtractRange: GridRange): GridRange[];
44
125
  /**
45
126
  * Subtract multiple ranges from multiple ranges
46
- * @param {GridRange[]} ranges The ranges to be subtracted from
47
- * @param {GridRange[]} subtractRanges The ranges to subtract from within these ranges
48
- * @returns {GridRange[]} The ranges needed to represent the remaining
127
+ * @param ranges The ranges to be subtracted from
128
+ * @param subtractRanges The ranges to subtract from within these ranges
129
+ * @returns The ranges needed to represent the remaining
49
130
  */
50
131
  static subtractRangesFromRanges(ranges: GridRange[], subtractRanges: GridRange[]): GridRange[];
51
132
  /**
52
133
  * Test if a given range is bounded (all values are non-null)
53
- * @param {GridRange} range The range to test
54
- * @returns {boolean} True if this range is bounded, false otherwise
134
+ * @param range The range to test
135
+ * @returns True if this range is bounded, false otherwise
55
136
  */
56
- static isBounded(range: GridRange): boolean;
137
+ static isBounded(range: GridRange): range is BoundedGridRange;
57
138
  /**
58
139
  * Converts any GridRange passed in that is a full row or column selection to be bound
59
140
  * to the `columnCount` and `rowCount` passed in
60
141
  *
61
- * @param {GridRange} range The range to get the bounded range of
62
- * @param {number} columnCount The number of columns
63
- * @param {number} rowCount The number of rows
64
- * @returns {GridRange} The passed in GridRange with any null values filled in
142
+ * @param range The range to get the bounded range of
143
+ * @param columnCount The number of columns
144
+ * @param rowCount The number of rows
145
+ * @returns The passed in GridRange with any null values filled in
65
146
  */
66
147
  static boundedRange(range: GridRange, columnCount: number, rowCount: number): GridRange;
67
148
  /**
68
149
  * Converts the GridRanges passed in to be bound to the `columnCount` and `rowCount` passed in
69
150
  *
70
- * @param {GridRange[]} ranges The ranges to get the bounded ranges of
71
- * @param {number} columnCount The number of columns
72
- * @param {number} rowCount The number of rows
73
- * @returns {GridRange} The passed in GridRange with any null values filled in
151
+ * @param ranges The ranges to get the bounded ranges of
152
+ * @param columnCount The number of columns
153
+ * @param rowCount The number of rows
154
+ * @returns The passed in GridRange with any null values filled in
74
155
  */
75
- static boundedRanges(ranges: GridRange[], columnCount: number, rowCount: number): GridRange;
156
+ static boundedRanges(ranges: GridRange[], columnCount: number, rowCount: number): GridRange[];
76
157
  /**
77
158
  * Offsets a GridRange by the specified amount in the x and y directions
78
159
  *
79
- * @param {GridRange} range The range to offset
80
- * @param {number} columnOffset The number of columns to offset
81
- * @param {number} rowOffset The number of rows to offset
82
- * @returns {GridRange} The new grid range offset from the original
160
+ * @param range The range to offset
161
+ * @param columnOffset The number of columns to offset
162
+ * @param rowOffset The number of rows to offset
163
+ * @returns The new grid range offset from the original
83
164
  */
84
165
  static offset(range: GridRange, columnOffset: number, rowOffset: number): GridRange;
85
166
  /**
86
167
  * Get the next cell given the selected ranges and the current cell
87
- * @param {GridRange[]} ranges The selected bounded ranges within the grid
88
- * @param {number|null} column The cursor column, or null if none focused
89
- * @param {number|null} row The cursor row, or null if none focused
90
- * @param {SELECTION_DIRECTION} direction The direction in which to select next
91
- * @returns {Cell} The next cell to focus, or null if there should be no more focus
168
+ * @param ranges The selected bounded ranges within the grid
169
+ * @param column The cursor column, or null if none focused
170
+ * @param row The cursor row, or null if none focused
171
+ * @param direction The direction in which to select next
172
+ * @returns The next cell to focus, or null if there should be no more focus
92
173
  */
93
- static nextCell(ranges: GridRange[], column?: number | null, row?: number | null, direction?: any): any;
174
+ static nextCell(ranges: GridRange[], column?: GridRangeIndex, row?: GridRangeIndex, direction?: SELECTION_DIRECTION): GridCell | null;
94
175
  /**
95
176
  * Count the number of cells in the provided grid ranges
96
- * @param {GridRange[]} ranges The ranges to count the rows of
97
- * @returns {number|NaN} The number of cells in the ranges, or `NaN` if any of the ranges were unbounded
177
+ * @param ranges The ranges to count the rows of
178
+ * @returns The number of cells in the ranges, or `NaN` if any of the ranges were unbounded
98
179
  */
99
- static cellCount(ranges: GridRange[]): number | number;
180
+ static cellCount(ranges: GridRange[]): number;
100
181
  /**
101
182
  * Count the number of rows in the provided grid ranges
102
- * @param {GridRange[]} ranges The ranges to count the rows of
103
- * @returns {number|NaN} The number of rows in the ranges, or `NaN` if any of the ranges were unbounded
183
+ * @param ranges The ranges to count the rows of
184
+ * @returns The number of rows in the ranges, or `NaN` if any of the ranges were unbounded
104
185
  */
105
- static rowCount(ranges: GridRange[]): number | number;
186
+ static rowCount(ranges: GridRange[]): number;
106
187
  /**
107
188
  * Count the number of columns in the provided grid ranges
108
- * @param {GridRange[]} ranges The ranges to count the columns of
109
- * @returns {number|NaN} The number of columns in the ranges, or `NaN` if any of the ranges were unbounded
189
+ * @param ranges The ranges to count the columns of
190
+ * @returns The number of columns in the ranges, or `NaN` if any of the ranges were unbounded
110
191
  */
111
- static columnCount(ranges: GridRange[]): number | number;
192
+ static columnCount(ranges: GridRange[]): number;
112
193
  /**
113
194
  * Check if the provided ranges contain the provided cell
114
- * @param {GridRange[]} ranges The ranges to check
115
- * @param {number} column The column index
116
- * @param {number} row The row index
117
- * @returns {boolean} True if the cell is within the provided ranges, false otherwise.
195
+ * @param ranges The ranges to check
196
+ * @param column The column index
197
+ * @param row The row index
198
+ * @returns True if the cell is within the provided ranges, false otherwise.
118
199
  */
119
200
  static containsCell(ranges: GridRange[], column: number, row: number): boolean;
120
201
  /**
121
202
  * Iterate through each cell in the provided ranges
122
- * @param {GridRange[]} ranges The ranges to iterate through
203
+ * @param ranges The ranges to iterate through
123
204
  * @param {(column: number, row: number, index: number) => void} callback The callback to execute. `index` is the index within that range
124
205
  * @param {GridRange.SELECTION_DIRECTION} direction The direction to iterate in
125
206
  */
126
- static forEachCell(ranges: GridRange[], callback: (column: number, row: number, index: number) => void, direction?: Readonly<{
127
- DOWN: string;
128
- UP: string;
129
- LEFT: string;
130
- RIGHT: string;
131
- }>): void;
132
- constructor(startColumn: any, startRow: any, endColumn: any, endRow: any);
133
- startColumn: any;
134
- startRow: any;
135
- endColumn: any;
136
- endRow: any;
137
- equals(other: any): boolean;
138
- /** @returns {boolean} true if this GridRange completely contains `other` */
139
- contains(other: any): boolean;
207
+ static forEachCell(ranges: GridRange[], callback: (column: number, row: number, index: number) => void, direction?: SELECTION_DIRECTION): void;
208
+ constructor(startColumn: GridRangeIndex, startRow: GridRangeIndex, endColumn: GridRangeIndex, endRow: GridRangeIndex);
209
+ /**
210
+ * Checks if the provided range is equivalent to this range (same start and end column/row indexes)
211
+ * @param other Grid range to check against
212
+ * @returns True if the ranges cover the same area
213
+ */
214
+ equals(other: GridRange): boolean;
215
+ /**
216
+ * Checks if this GridRange contains another range
217
+ * @param other The range to check
218
+ * @returns True if this GridRange completely contains `other`
219
+ * */
220
+ contains(other: GridRange): boolean;
140
221
  /**
141
222
  * Check if the provided cell is in this range
142
- * @param {number} column The column to check
143
- * @param {number} row The row to check
144
- * @returns {boolean} True if this cell is within this range
223
+ * @param column The column to check
224
+ * @param row The row to check
225
+ * @returns True if this cell is within this range
145
226
  */
146
- containsCell(column: number, row: number): boolean;
147
- /** @returns {boolean} true if this GridRange touches `other` */
148
- touches(other: any): boolean;
227
+ containsCell(column: GridRangeIndex, row: GridRangeIndex): boolean;
228
+ /**
229
+ * Check if the provided range touches (or overlaps) this GridRange
230
+ * Effectively checks if the 2 ranges could be represented by 1 continuous range
231
+ * @param other The range to check
232
+ * @returns True if this GridRange touches `other`
233
+ * */
234
+ touches(other: GridRange): boolean;
149
235
  /**
150
- * @param {GridRange} other The range to deselect from within this range
151
- * @returns {[GridRange]} The ranges needed to represent the remaining
236
+ * Subtracts a range from this range
237
+ * @param other The range to deselect from within this range
238
+ * @returns The ranges needed to represent the remaining
152
239
  */
153
- subtract(other: GridRange): [GridRange];
240
+ subtract(other: GridRange): GridRange[];
154
241
  /**
155
242
  * Get the first cell in this range. Throws if this range is unbounded.
156
243
  *
157
- * @param {GridRange.SELECTION_DIRECTION?} direction The direction to get the starting cell in. Defaults to DOWN
158
- * @returns {{column: number, row: number}} The first cell in this range in the direction specified
159
- */
160
- startCell(direction?: Readonly<{
161
- DOWN: string;
162
- UP: string;
163
- LEFT: string;
164
- RIGHT: string;
165
- }> | null): {
166
- column: number;
167
- row: number;
168
- };
244
+ * @param direction The direction to get the starting cell in. Defaults to DOWN
245
+ * @returns The first cell in this range in the direction specified
246
+ */
247
+ startCell(direction?: SELECTION_DIRECTION): GridCell;
169
248
  /**
170
249
  * Get the next cell in the direction specified. Throws if this range is unbounded.
171
250
  * If already at the bounds of the range in that direction, wrap to the next column or row
@@ -177,17 +256,13 @@ declare class GridRange {
177
256
  * @param {SELECTION_DIRECTION} direction The direction to go in
178
257
  * @returns {GridCell|null} The next cell in the direction specified, or `null` if at the end of the range
179
258
  */
180
- nextCell(column: number, row: number, direction: any): any | null;
259
+ nextCell(column: GridRangeIndex, row: GridRangeIndex, direction: SELECTION_DIRECTION): GridCell | null;
181
260
  /**
182
261
  * Iterate through each cell in the range
183
- * @param {(column:number, row:number, index:number) => void} callback Callback to execute. `index` is the index within this range
184
- * @param {GridRange.SELECTION_DIRECTION} direction The direction to iterate in
262
+ * @param callback Callback to execute. `index` is the index within this range
263
+ * @param direction The direction to iterate in
185
264
  */
186
- forEach(callback: (column: number, row: number, index: number) => void, direction?: Readonly<{
187
- DOWN: string;
188
- UP: string;
189
- LEFT: string;
190
- RIGHT: string;
191
- }>): void;
265
+ forEach(callback: (column: number, row: number, index: number) => void, direction?: SELECTION_DIRECTION): void;
192
266
  }
267
+ export default GridRange;
193
268
  //# sourceMappingURL=GridRange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridRange.d.ts","sourceRoot":"","sources":["../src/GridRange.js"],"names":[],"mappings":";AAAA;IACE;;;;;OAKG;IAEH,sFAiBC;IAED,gFAAgF;IAChF,wDAEC;IAED,kDAEC;IAED,0CAEC;IAED,oCAEC;IAED,0DAMC;IAED,0DAMC;IAED;;;OAGG;IACH,2BAFW,CAAC,SAAS,CAAC,eA4ErB;IAED,0FAsCC;IAED,6DAoBC;IAED;;;;;OAKG;IACH,2BAJW,SAAS,cACT,SAAS,GACP,SAAS,GAAC,IAAI,CAiC1B;IAED;;;;OAIG;IACH,gCAJW,SAAS,iBACT,SAAS,GACP,SAAS,EAAE,CAyEvB;IAED;;;;;OAKG;IACH,kCAJW,SAAS,EAAE,iBACX,SAAS,GACP,SAAS,EAAE,CASvB;IAED;;;;;OAKG;IACH,wCAJW,SAAS,EAAE,kBACX,SAAS,EAAE,GACT,SAAS,EAAE,CAavB;IAED;;;;OAIG;IACH,wBAHW,SAAS,GACP,OAAO,CASnB;IAED;;;;;;;;OAQG;IACH,2BALW,SAAS,eACT,MAAM,YACN,MAAM,GACJ,SAAS,CAarB;IAED;;;;;;;OAOG;IACH,6BALW,SAAS,EAAE,eACX,MAAM,YACN,MAAM,GACJ,SAAS,CAIrB;IAED;;;;;;;OAOG;IACH,qBALW,SAAS,gBACT,MAAM,aACN,MAAM,GACJ,SAAS,CASrB;IAED;;;;;;;OAOG;IACH,wBANW,SAAS,EAAE,WACX,MAAM,GAAC,IAAI,QACX,MAAM,GAAC,IAAI,wBA8CrB;IAED;;;;OAIG;IACH,yBAHW,SAAS,EAAE,GACT,MAAM,SAAI,CAUtB;IAED;;;;OAIG;IACH,wBAHW,SAAS,EAAE,GACT,MAAM,SAAI,CAQtB;IAED;;;;OAIG;IACH,2BAHW,SAAS,EAAE,GACT,MAAM,SAAI,CAQtB;IAED;;;;;;OAMG;IACH,4BALW,SAAS,EAAE,UACX,MAAM,OACN,MAAM,GACJ,OAAO,CAUnB;IAED;;;;;OAKG;IACH,2BAJW,SAAS,EAAE,qBACF,MAAM,OAAO,MAAM,SAAS,MAAM,KAAK,IAAI;;;;;cAW9D;IAED,0EAKC;IAJC,iBAA8B;IAC9B,cAAwB;IACxB,eAA0B;IAC1B,YAAoB;IAGtB,4BAOC;IAED,4EAA4E;IAC5E,sBADc,OAAO,CAYpB;IAED;;;;;OAKG;IACH,qBAJW,MAAM,OACN,MAAM,GACJ,OAAO,CAanB;IAED,gEAAgE;IAChE,qBADc,OAAO,CAgBpB;IAED;;;OAGG;IACH,gBAHW,SAAS,GACP,CAAC,SAAS,CAAC,CAIvB;IAED;;;;;OAKG;IACH;;;;;gBAFa;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,CAkBzC;IAED;;;;;;;;;;OAUG;IACH,iBALW,MAAM,OACN,MAAM,mBAEJ,MAAS,IAAI,CAsDzB;IAED;;;;OAIG;IACH,2BAHmB,MAAM,OAAM,MAAM,SAAQ,MAAM,KAAK,IAAI;;;;;cAY3D;CACF"}
1
+ {"version":3,"file":"GridRange.d.ts","sourceRoot":"","sources":["../src/GridRange.ts"],"names":[],"mappings":"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"}