@dxos/lit-grid 0.6.14-staging.8758a12 → 0.6.14-staging.934c9de

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 +1 @@
1
- {"version":3,"file":"dx-grid-axis-resize-handle.d.ts","sourceRoot":"","sources":["../../src/dx-grid-axis-resize-handle.ts"],"names":[],"mappings":"AAQA,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAIvC,OAAO,EAAwB,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAExF,qBACa,sBAAuB,SAAQ,UAAU;IAEpD,IAAI,EAAE,UAAU,CAAS;IAGzB,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAU;IAG3C,KAAK,EAAE,MAAM,CAAQ;IAGrB,IAAI,EAAE,MAAM,CAAO;IAEnB,OAAO,CAAC,aAAa,CAAe;IAE3B,MAAM;IAWf,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,KAAK;IA2BJ,oBAAoB;IAKpB,gBAAgB;CAG1B"}
1
+ {"version":3,"file":"dx-grid-axis-resize-handle.d.ts","sourceRoot":"","sources":["../../src/dx-grid-axis-resize-handle.ts"],"names":[],"mappings":"AAQA,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAIvC,OAAO,EAAwB,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAExF,qBACa,sBAAuB,SAAQ,UAAU;IAEpD,IAAI,EAAE,UAAU,CAAS;IAGzB,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAU;IAG3C,KAAK,EAAE,MAAM,CAAQ;IAGrB,IAAI,EAAE,MAAM,CAAO;IAEnB,OAAO,CAAC,aAAa,CAAe;IAE3B,MAAM;IAMf,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,KAAK;IA2BJ,oBAAoB;IAKpB,gBAAgB;CAG1B"}
@@ -25,12 +25,7 @@ let DxGridAxisResizeHandle = class DxGridAxisResizeHandle extends LitElement {
25
25
  this.cleanup = null;
26
26
  }
27
27
  render() {
28
- return html `<button
29
- class="dx-grid__resize-handle"
30
- data-dx-grid-axis=${this.axis}
31
- data-dx-grid-action="resize"
32
- ${ref(this.mount)}
33
- >
28
+ return html `<button class="dx-grid__resize-handle" data-dx-grid-axis=${this.axis} ${ref(this.mount)}>
34
29
  <span class="sr-only">Resize</span>
35
30
  </button>`;
36
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dx-grid-axis-resize-handle.js","sourceRoot":"","sources":["../../src/dx-grid-axis-resize-handle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dx-grid-axis-resize-handle.js","sourceRoot":"","sources":["../../src/dx-grid-axis-resize-handle.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
2
  import './dx-grid-axis-resize-handle';
3
- import { type DxGridAxisMetaProps, type DxGridAxisMeta, type DxGridCells, type DxGridFrozenAxes, type DxGridFrozenColsPlane, type DxGridFrozenRowsPlane, type DxGridMode, type DxGridPlane, type DxGridPlaneCells, type DxGridPlaneRange, type DxGridPlaneRecord, type DxGridPosition, type DxGridRange } from './types';
3
+ import { type DxGridAxisMetaProps, type DxGridAxisMeta, type DxGridCells, type DxGridFrozenAxes, type DxGridFrozenColsPlane, type DxGridFrozenRowsPlane, type DxGridMode, type DxGridPlane, type DxGridPlaneCells, type DxGridPlaneRange, type DxGridPlaneRecord, type DxGridPosition, type DxGridPositionNullable } from './types';
4
+ export declare const closestCell: (target: EventTarget | null, actionEl?: HTMLElement | null) => DxGridPositionNullable;
4
5
  export declare class DxGrid extends LitElement {
5
6
  constructor();
6
7
  gridId: string;
@@ -13,11 +14,11 @@ export declare class DxGrid extends LitElement {
13
14
  limitColumns: number;
14
15
  limitRows: number;
15
16
  frozen: DxGridFrozenAxes;
16
- overscroll: 'inline' | 'block' | 'trap' | undefined;
17
+ overscroll: 'inline' | 'block' | undefined;
17
18
  activeRefs: string;
18
19
  /**
19
- * When this function is defined, it is used first to try to get a value for a cell,
20
- * and otherwise will fall back to `cells`.
20
+ * When this function is defined, it is used first to try to get a value for a cell, and otherwise will fall back
21
+ * to `cells`.
21
22
  */
22
23
  getCells: ((nextRange: DxGridPlaneRange, plane: DxGridPlane) => DxGridPlaneCells) | null;
23
24
  private cells;
@@ -25,8 +26,8 @@ export declare class DxGrid extends LitElement {
25
26
  private posBlock;
26
27
  private sizeInline;
27
28
  private sizeBlock;
28
- private visColMinStart;
29
- private visRowMinStart;
29
+ private overscanInlineStart;
30
+ private overscanBlockStart;
30
31
  private binInlineMin;
31
32
  private binInlineMax;
32
33
  private binBlockMin;
@@ -74,7 +75,6 @@ export declare class DxGrid extends LitElement {
74
75
  private cellActive;
75
76
  private setFocusedCell;
76
77
  private setSelectionEnd;
77
- setSelection(range: DxGridRange): void;
78
78
  private focusedCellBox;
79
79
  private observer;
80
80
  private gridRef;
@@ -102,12 +102,11 @@ export declare class DxGrid extends LitElement {
102
102
  private focusedCellRowOutOfVis;
103
103
  private focusedCellColOutOfVis;
104
104
  private focusedCellOutOfVis;
105
- private clampCol;
106
- private clampRow;
105
+ private focusPlaneElement;
107
106
  /**
108
107
  * Moves focus to the cell with actual focus, otherwise moves focus to the viewport.
109
108
  */
110
- refocus(increment?: 'col' | 'row' | undefined, delta?: 1 | -1 | 0): void;
109
+ refocus(increment?: 'col' | 'row', delta?: 1 | -1 | 0): void;
111
110
  private clampPosInline;
112
111
  private clampPosBlock;
113
112
  /**
@@ -120,7 +119,6 @@ export declare class DxGrid extends LitElement {
120
119
  set scrollTop(nextValue: number);
121
120
  private axisResizeable;
122
121
  private handleAxisResizeInternal;
123
- private renderPresentationLayer;
124
122
  private renderFixed;
125
123
  private renderFrozenRows;
126
124
  private renderFrozenColumns;
@@ -142,6 +140,6 @@ export declare class DxGrid extends LitElement {
142
140
  disconnectedCallback(): void;
143
141
  createRenderRoot(): this;
144
142
  }
145
- export { rowToA1Notation, colToA1Notation, closestAction, closestCell } from './util';
143
+ export { rowToA1Notation, colToA1Notation } from './util';
146
144
  export declare const commentedClassName = "dx-grid__cell--commented";
147
145
  //# sourceMappingURL=dx-grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dx-grid.d.ts","sourceRoot":"","sources":["../../src/dx-grid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dx-grid.d.ts","sourceRoot":"","sources":["../../src/dx-grid.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,138 @@ import { unsafeStatic, html as staticHtml } from 'lit/static-html.js';
15
15
  // eslint-disable-next-line unused-imports/no-unused-imports
16
16
  import './dx-grid-axis-resize-handle';
17
17
  import { DxAxisResize, DxEditRequest, DxGridCellsSelect, } from './types';
18
- import { separator, toCellIndex, gap, resizeTolerance, defaultSizeCol, defaultSizeRow, sizeColMin, sizeColMax, sizeRowMin, sizeRowMax, shouldSelect, selectionProps, cellSelected, closestAction, closestCell, targetIsPlane, resolveRowPlane, resolveColPlane, resolveFrozenPlane, isSameCell, } from './util';
18
+ import { separator, toCellIndex } from './util';
19
+ /**
20
+ * The size in pixels of the gap between cells
21
+ */
22
+ const gap = 1;
23
+ /**
24
+ * ResizeObserver notices even subpixel changes, only respond to changes of at least 1px.
25
+ */
26
+ const resizeTolerance = 1;
27
+ /**
28
+ * The amount of pixels the primary pointer has to move after PointerDown to engage in selection.
29
+ */
30
+ const selectTolerance = 4;
31
+ //
32
+ // `defaultSize`, the final fallbacks
33
+ //
34
+ const defaultSizeRow = 32;
35
+ const defaultSizeCol = 180;
36
+ //
37
+ // `size`, when suffixed with ‘row’ or ‘col’, are limits on size applied when resizing
38
+ //
39
+ const sizeColMin = 32;
40
+ const sizeColMax = 1024;
41
+ const sizeRowMin = 32;
42
+ const sizeRowMax = 1024;
43
+ const shouldSelect = (pointer, { pageX, pageY }) => {
44
+ if ((pointer === null || pointer === void 0 ? void 0 : pointer.state) === 'maybeSelecting') {
45
+ return Math.hypot(Math.abs(pointer.pageX - pageX), Math.abs(pointer.pageY - pageY)) >= selectTolerance;
46
+ }
47
+ else {
48
+ return false;
49
+ }
50
+ };
51
+ const selectionProps = (selectionStart, selectionEnd) => {
52
+ const colMin = Math.min(selectionStart.col, selectionEnd.col);
53
+ const colMax = Math.max(selectionStart.col, selectionEnd.col);
54
+ const rowMin = Math.min(selectionStart.row, selectionEnd.row);
55
+ const rowMax = Math.max(selectionStart.row, selectionEnd.row);
56
+ const plane = selectionStart.plane;
57
+ const visible = colMin !== colMax || rowMin !== rowMax;
58
+ return { colMin, colMax, rowMin, rowMax, plane, visible };
59
+ };
60
+ const cellSelected = (col, row, plane, selection) => {
61
+ return (plane === selection.plane &&
62
+ col >= selection.colMin &&
63
+ col <= selection.colMax &&
64
+ row >= selection.rowMin &&
65
+ row <= selection.rowMax);
66
+ };
67
+ const closestAction = (target) => {
68
+ var _a, _b;
69
+ const actionEl = (_a = target === null || target === void 0 ? void 0 : target.closest('[data-dx-grid-action]')) !== null && _a !== void 0 ? _a : null;
70
+ return { actionEl, action: (_b = actionEl === null || actionEl === void 0 ? void 0 : actionEl.getAttribute('data-dx-grid-action')) !== null && _b !== void 0 ? _b : null };
71
+ };
72
+ export const closestCell = (target, actionEl) => {
73
+ var _a, _b, _c, _d;
74
+ let cellElement = actionEl;
75
+ if (!cellElement) {
76
+ const { action, actionEl } = closestAction(target);
77
+ if (action === 'cell') {
78
+ cellElement = actionEl;
79
+ }
80
+ }
81
+ if (cellElement) {
82
+ const col = parseInt((_a = cellElement.getAttribute('aria-colindex')) !== null && _a !== void 0 ? _a : 'never');
83
+ const row = parseInt((_b = cellElement.getAttribute('aria-rowindex')) !== null && _b !== void 0 ? _b : 'never');
84
+ const plane = ((_d = (_c = cellElement.closest('[data-dx-grid-plane]')) === null || _c === void 0 ? void 0 : _c.getAttribute('data-dx-grid-plane')) !== null && _d !== void 0 ? _d : 'grid');
85
+ return { plane, col, row };
86
+ }
87
+ else {
88
+ return null;
89
+ }
90
+ };
91
+ const targetIsPlane = (target) => {
92
+ var _a;
93
+ return (_a = target === null || target === void 0 ? void 0 : target.getAttribute('data-dx-grid-plane')) !== null && _a !== void 0 ? _a : null;
94
+ };
95
+ const resolveRowPlane = (plane) => {
96
+ switch (plane) {
97
+ case 'fixedStartStart':
98
+ case 'fixedStartEnd':
99
+ case 'frozenRowsStart':
100
+ return 'frozenRowsStart';
101
+ case 'fixedEndStart':
102
+ case 'fixedEndEnd':
103
+ case 'frozenRowsEnd':
104
+ return 'frozenRowsEnd';
105
+ default:
106
+ return 'grid';
107
+ }
108
+ };
109
+ const resolveColPlane = (plane) => {
110
+ switch (plane) {
111
+ case 'fixedStartStart':
112
+ case 'fixedEndStart':
113
+ case 'frozenColsStart':
114
+ return 'frozenColsStart';
115
+ case 'fixedStartEnd':
116
+ case 'fixedEndEnd':
117
+ case 'frozenColsEnd':
118
+ return 'frozenColsEnd';
119
+ default:
120
+ return 'grid';
121
+ }
122
+ };
123
+ const resolveFrozenPlane = (axis, cellPlane) => {
124
+ switch (cellPlane) {
125
+ case 'fixedStartStart':
126
+ return axis === 'col' ? 'frozenColsStart' : 'frozenRowsStart';
127
+ case 'fixedStartEnd':
128
+ return axis === 'col' ? 'frozenColsEnd' : 'frozenRowsStart';
129
+ case 'fixedEndStart':
130
+ return axis === 'col' ? 'frozenColsStart' : 'frozenRowsEnd';
131
+ case 'fixedEndEnd':
132
+ return axis === 'col' ? 'frozenColsEnd' : 'frozenRowsEnd';
133
+ case 'frozenColsStart':
134
+ case 'frozenColsEnd':
135
+ return axis === 'col' ? cellPlane : 'grid';
136
+ case 'frozenRowsStart':
137
+ case 'frozenRowsEnd':
138
+ return axis === 'row' ? cellPlane : 'grid';
139
+ default:
140
+ return cellPlane;
141
+ }
142
+ };
143
+ const isSameCell = (a, b) => a &&
144
+ b &&
145
+ a.plane === b.plane &&
146
+ Number.isFinite(a.col) &&
147
+ Number.isFinite(a.row) &&
148
+ a.col === b.col &&
149
+ a.row === b.row;
19
150
  let DxGrid = class DxGrid extends LitElement {
20
151
  constructor() {
21
152
  var _a;
@@ -37,8 +168,8 @@ let DxGrid = class DxGrid extends LitElement {
37
168
  this.overscroll = undefined;
38
169
  this.activeRefs = '';
39
170
  /**
40
- * When this function is defined, it is used first to try to get a value for a cell,
41
- * and otherwise will fall back to `cells`.
171
+ * When this function is defined, it is used first to try to get a value for a cell, and otherwise will fall back
172
+ * to `cells`.
42
173
  */
43
174
  this.getCells = null;
44
175
  this.cells = { grid: {} };
@@ -55,8 +186,8 @@ let DxGrid = class DxGrid extends LitElement {
55
186
  //
56
187
  // `overscan` is the amount in pixels to offset the grid content due to the number of overscanned columns or rows.
57
188
  //
58
- this.visColMinStart = 0;
59
- this.visRowMinStart = 0;
189
+ this.overscanInlineStart = 0;
190
+ this.overscanBlockStart = 0;
60
191
  //
61
192
  // `bin`, not short for anything, is the range in pixels within which virtualization does not need to reassess.
62
193
  //
@@ -100,10 +231,9 @@ let DxGrid = class DxGrid extends LitElement {
100
231
  if (event.isPrimary) {
101
232
  const { action, actionEl } = closestAction(event.target);
102
233
  if (action && action === 'cell') {
103
- if (event.shiftKey && this.mode === 'browse') {
234
+ if (event.shiftKey) {
104
235
  // Prevent focus moving so the pointerup handler can move selectionEnd.
105
236
  event.preventDefault();
106
- this.pointer = { state: 'selecting' };
107
237
  }
108
238
  else {
109
239
  const cellCoords = closestCell(event.target, actionEl);
@@ -119,8 +249,10 @@ let DxGrid = class DxGrid extends LitElement {
119
249
  // Prevent focus moving when editing while selection is possible
120
250
  event.preventDefault();
121
251
  }
122
- else if (this.focusActive && isSameCell(this.focusedCell, cellCoords)) {
123
- this.dispatchEditRequest();
252
+ else {
253
+ if (this.focusActive && isSameCell(this.focusedCell, cellCoords)) {
254
+ this.dispatchEditRequest();
255
+ }
124
256
  }
125
257
  }
126
258
  }
@@ -179,14 +311,10 @@ let DxGrid = class DxGrid extends LitElement {
179
311
  }
180
312
  };
181
313
  this.handleTopLevelWheel = (event) => {
182
- var _a;
183
- if (event.gridId === ((_a = this.gridId) !== null && _a !== void 0 ? _a : 'never')) {
184
- if (this.overscroll === 'trap' ||
185
- (this.overscroll === 'inline' && event.overscrollInline === 0) ||
186
- (this.overscroll === 'block' && event.overscrollBlock === 0)) {
187
- event.preventDefault();
188
- event.stopPropagation();
189
- }
314
+ if ((Number.isFinite(event.overscrollInline) && this.overscroll === 'inline' && event.overscrollInline === 0) ||
315
+ (Number.isFinite(event.overscrollBlock) && this.overscroll === 'block' && event.overscrollBlock === 0)) {
316
+ event.preventDefault();
317
+ event.stopPropagation();
190
318
  }
191
319
  };
192
320
  this.handleWheel = (event) => {
@@ -200,7 +328,6 @@ let DxGrid = class DxGrid extends LitElement {
200
328
  nextPosInline <= 0 ? nextPosInline : nextPosInline > maxPosInline ? nextPosInline - maxPosInline : 0;
201
329
  event.overscrollBlock =
202
330
  nextPosBlock <= 0 ? nextPosBlock : nextPosBlock > maxPosBlock ? nextPosBlock - maxPosBlock : 0;
203
- event.gridId = this.gridId;
204
331
  }
205
332
  };
206
333
  // Wheel, top-level and element-level
@@ -274,8 +401,12 @@ let DxGrid = class DxGrid extends LitElement {
274
401
  const current = event.shiftKey ? this.selectionEnd : this.focusedCell;
275
402
  const deltaCol = event.key === 'ArrowLeft' ? -1 : event.key === 'ArrowRight' ? 1 : 0;
276
403
  const deltaRow = event.key === 'ArrowUp' ? -1 : event.key === 'ArrowDown' ? 1 : 0;
277
- const nextCol = this.clampCol(current, deltaCol);
278
- const nextRow = this.clampRow(current, deltaRow);
404
+ const colPlane = resolveColPlane(current.plane);
405
+ const colMax = (colPlane === 'grid' ? this.limitColumns : this.frozen[colPlane]) - 1;
406
+ const nextCol = Math.max(0, Math.min(colMax, current.col + deltaCol));
407
+ const rowPlane = resolveRowPlane(current.plane);
408
+ const rowMax = (rowPlane === 'grid' ? this.limitRows : this.frozen[rowPlane]) - 1;
409
+ const nextRow = Math.max(0, Math.min(rowMax, current.row + deltaRow));
279
410
  if (event.shiftKey) {
280
411
  this.setSelectionEnd({ ...this.selectionEnd, col: nextCol, row: nextRow });
281
412
  }
@@ -388,7 +519,7 @@ let DxGrid = class DxGrid extends LitElement {
388
519
  return (_c = (_b = (_a = this.cells) === null || _a === void 0 ? void 0 : _a[plane]) === null || _b === void 0 ? void 0 : _b[index]) !== null && _c !== void 0 ? _c : (_e = (_d = this.initialCells) === null || _d === void 0 ? void 0 : _d[plane]) === null || _e === void 0 ? void 0 : _e[index];
389
520
  }
390
521
  cellActive(c, r, plane) {
391
- return this.focusedCell.plane === plane && this.focusedCell.col === c && this.focusedCell.row === r;
522
+ return (this.focusActive && this.focusedCell.plane === plane && this.focusedCell.col === c && this.focusedCell.row === r);
392
523
  }
393
524
  setFocusedCell(nextCoords) {
394
525
  if (this.focusedCell.plane !== nextCoords.plane ||
@@ -401,7 +532,6 @@ let DxGrid = class DxGrid extends LitElement {
401
532
  this.dispatchSelectionChange();
402
533
  }
403
534
  }
404
- // Internal utility for setting selection end.
405
535
  setSelectionEnd(nextCoords) {
406
536
  if (this.selectionEnd.plane !== nextCoords.plane ||
407
537
  this.selectionEnd.col !== nextCoords.col ||
@@ -410,14 +540,6 @@ let DxGrid = class DxGrid extends LitElement {
410
540
  this.dispatchSelectionChange();
411
541
  }
412
542
  }
413
- // Selection setter for consumers
414
- setSelection(range) {
415
- if (this.mode !== 'edit') {
416
- this.selectionStart = range.start;
417
- this.selectionEnd = range.end;
418
- this.dispatchSelectionChange();
419
- }
420
- }
421
543
  focusedCellBox() {
422
544
  const cellElement = this.focusedCellElement();
423
545
  const cellSize = {
@@ -467,24 +589,24 @@ let DxGrid = class DxGrid extends LitElement {
467
589
  pxCursor += this.colSize(axisCursor, 'grid') + gap;
468
590
  }
469
591
  this.visColMin = axisCursor;
470
- this.visColMinStart = pxCursor - this.colSize(axisCursor, 'grid') - gap;
471
- const visColMinEnd = pxCursor;
592
+ this.overscanInlineStart = pxCursor - this.colSize(axisCursor, 'grid') - gap;
593
+ const bifurcateStart = pxCursor;
472
594
  while (pxCursor < this.posInline + this.sizeInline) {
473
595
  axisCursor += 1;
474
596
  pxCursor += this.colSize(axisCursor, 'grid') + gap;
475
597
  }
476
- this.visColMax = Math.min(this.limitColumns, axisCursor + 1);
477
- const visColMaxStart = pxCursor - this.colSize(axisCursor, 'grid') - gap;
478
- const visColMaxEnd = pxCursor;
479
- const bifurcateStart = visColMaxStart - this.sizeInline;
480
- const bifurcateEnd = visColMaxEnd - this.sizeInline;
481
- const bounds = [this.visColMinStart, visColMinEnd, bifurcateStart, bifurcateEnd].sort((a, b) => a - b);
482
- let boundsCursor = 1;
483
- while (bounds[boundsCursor] < this.posInline && boundsCursor < 3) {
484
- boundsCursor += 1;
598
+ const bifurcateEnd = pxCursor - this.sizeInline;
599
+ const bifurcateMin = Math.min(bifurcateStart, bifurcateEnd);
600
+ const bifurcateMax = Math.max(bifurcateStart, bifurcateEnd);
601
+ if (this.posInline < bifurcateMin) {
602
+ this.binInlineMin = this.overscanInlineStart;
603
+ this.binInlineMax = bifurcateMin + gap;
604
+ }
605
+ else {
606
+ this.binInlineMin = bifurcateMin;
607
+ this.binInlineMax = bifurcateMax;
485
608
  }
486
- this.binInlineMin = bounds[boundsCursor - 1];
487
- this.binInlineMax = bounds[boundsCursor];
609
+ this.visColMax = Math.min(this.limitColumns, axisCursor + 1);
488
610
  this.templateGridColumns = [...Array(this.visColMax - this.visColMin)]
489
611
  .map((_, c0) => `${this.colSize(this.visColMin + c0, 'grid')}px`)
490
612
  .join(' ');
@@ -505,24 +627,24 @@ let DxGrid = class DxGrid extends LitElement {
505
627
  pxCursor += this.rowSize(axisCursor, 'grid') + gap;
506
628
  }
507
629
  this.visRowMin = axisCursor;
508
- this.visRowMinStart = pxCursor - this.rowSize(axisCursor, 'grid') - gap;
509
- const visRowMinEnd = pxCursor;
630
+ this.overscanBlockStart = pxCursor - this.rowSize(axisCursor, 'grid') - gap;
631
+ const bifurcateStart = pxCursor;
510
632
  while (pxCursor < this.posBlock + this.sizeBlock) {
511
633
  axisCursor += 1;
512
634
  pxCursor += this.rowSize(axisCursor, 'grid') + gap;
513
635
  }
514
- this.visRowMax = Math.min(this.limitRows, axisCursor + 1);
515
- const visRowMaxStart = pxCursor - this.rowSize(axisCursor, 'grid') - gap;
516
- const visRowMaxEnd = pxCursor;
517
- const bifurcateStart = visRowMaxStart - this.sizeBlock;
518
- const bifurcateEnd = visRowMaxEnd - this.sizeBlock;
519
- const bounds = [this.visRowMinStart, visRowMinEnd, bifurcateStart, bifurcateEnd].sort((a, b) => a - b);
520
- let boundsCursor = 1;
521
- while (bounds[boundsCursor] < this.posBlock && boundsCursor < 3) {
522
- boundsCursor += 1;
636
+ const bifurcateEnd = pxCursor - this.sizeBlock;
637
+ const bifurcateMin = Math.min(bifurcateStart, bifurcateEnd);
638
+ const bifurcateMax = Math.max(bifurcateStart, bifurcateEnd);
639
+ if (this.posBlock < bifurcateMin) {
640
+ this.binBlockMin = this.overscanBlockStart;
641
+ this.binBlockMax = bifurcateMin + gap;
523
642
  }
524
- this.binBlockMin = bounds[boundsCursor - 1];
525
- this.binBlockMax = bounds[boundsCursor];
643
+ else {
644
+ this.binInlineMin = bifurcateMin;
645
+ this.binInlineMax = bifurcateMax;
646
+ }
647
+ this.visRowMax = Math.min(this.limitRows, axisCursor + 1);
526
648
  this.templateGridRows = [...Array(this.visRowMax - this.visRowMin)]
527
649
  .map((_, r0) => `${this.rowSize(this.visRowMin + r0, 'grid')}px`)
528
650
  .join(' ');
@@ -593,7 +715,7 @@ let DxGrid = class DxGrid extends LitElement {
593
715
  }
594
716
  handleFocus(event) {
595
717
  const cellCoords = closestCell(event.target);
596
- if (cellCoords) {
718
+ if (cellCoords && !this.cellReadonly(cellCoords.col, cellCoords.row, cellCoords.plane)) {
597
719
  this.focusActive = true;
598
720
  this.setFocusedCell(cellCoords);
599
721
  }
@@ -650,28 +772,19 @@ let DxGrid = class DxGrid extends LitElement {
650
772
  return { col: 0, row: 0 };
651
773
  }
652
774
  }
653
- clampCol(coords, deltaCol = 0) {
654
- const colPlane = resolveColPlane(coords.plane);
655
- const colMax = (colPlane === 'grid' ? this.limitColumns : this.frozen[colPlane]) - 1;
656
- return Math.max(0, Math.min(colMax, coords.col + deltaCol));
657
- }
658
- clampRow(coords, deltaRow = 0) {
659
- const rowPlane = resolveRowPlane(coords.plane);
660
- const rowMax = (rowPlane === 'grid' ? this.limitRows : this.frozen[rowPlane]) - 1;
661
- return Math.max(0, Math.min(rowMax, coords.row + deltaRow));
662
- }
775
+ focusPlaneElement() { }
663
776
  /**
664
777
  * Moves focus to the cell with actual focus, otherwise moves focus to the viewport.
665
778
  */
666
- refocus(increment = undefined, delta = 1) {
779
+ refocus(increment, delta = 1) {
667
780
  if (increment) {
668
781
  switch (increment) {
669
782
  case 'col': {
670
- this.focusedCell.col = this.clampCol(this.focusedCell, delta);
783
+ this.focusedCell.col += delta;
671
784
  break;
672
785
  }
673
786
  case 'row': {
674
- this.focusedCell.row = this.clampRow(this.focusedCell, delta);
787
+ this.focusedCell.row += delta;
675
788
  break;
676
789
  }
677
790
  }
@@ -782,44 +895,6 @@ let DxGrid = class DxGrid extends LitElement {
782
895
  //
783
896
  // Render and other lifecycle methods
784
897
  //
785
- // TODO(thure): This is for rendering presentational objects superimposed onto the canonical grid (e.g. DnD drop line for #8108).
786
- renderPresentationLayer(offsetInline, offsetBlock) {
787
- var _a, _b, _c, _d, _e, _f;
788
- const visibleCols = this.visColMax - this.visColMin;
789
- const visibleRows = this.visRowMax - this.visRowMin;
790
- return html `<div
791
- role="none"
792
- class="dx-grid-layer--presentation"
793
- style=${styleMap({
794
- gridTemplateColumns: [
795
- ...[...Array((_a = this.frozen.frozenColsStart) !== null && _a !== void 0 ? _a : 0)].map((_, c0) => `${this.colSize(c0, 'frozenColsStart')}px`),
796
- ...[...Array(visibleCols)].map((_, c0) => c0 === visibleCols - 1
797
- ? '1fr'
798
- : `${this.colSize(this.visColMin + c0, 'grid') + (c0 === 0 ? offsetInline : 0)}px`),
799
- ...[...Array((_b = this.frozen.frozenColsEnd) !== null && _b !== void 0 ? _b : 0)].map((_, c0) => `${this.colSize(c0, 'frozenColsEnd')}px`),
800
- ].join(' '),
801
- gridTemplateRows: [
802
- ...[...Array((_c = this.frozen.frozenRowsStart) !== null && _c !== void 0 ? _c : 0)].map((_, r0) => `${this.rowSize(r0, 'frozenRowsStart')}px`),
803
- ...[...Array(visibleRows)].map((_, r0) => r0 === visibleRows - 1
804
- ? '1fr'
805
- : `${this.rowSize(this.visRowMin + r0, 'grid') + (r0 === 0 ? offsetBlock : 0)}px`),
806
- ...[...Array((_d = this.frozen.frozenRowsEnd) !== null && _d !== void 0 ? _d : 0)].map((_, r0) => `${this.rowSize(r0, 'frozenRowsEnd')}px`),
807
- ].join(' '),
808
- })}
809
- >
810
- ${
811
- /* TODO(thure): These are debug cells, remove when rendering actual overlay content. */ [
812
- ...Array(((_e = this.frozen.frozenRowsStart) !== null && _e !== void 0 ? _e : 0) + visibleRows + ((_f = this.frozen.frozenRowsEnd) !== null && _f !== void 0 ? _f : 0)),
813
- ].map((_, r0) => {
814
- var _a, _b;
815
- return [...Array(((_a = this.frozen.frozenColsStart) !== null && _a !== void 0 ? _a : 0) + visibleCols + ((_b = this.frozen.frozenColsEnd) !== null && _b !== void 0 ? _b : 0))].map((_, c0) => html `<div
816
- role="none"
817
- class="dx-grid-layer--presentation__cell"
818
- style="grid-column:${c0 + 1};grid-row:${r0 + 1}"
819
- ></div>`);
820
- })}
821
- </div>`;
822
- }
823
898
  renderFixed(plane, selection) {
824
899
  const colPlane = resolveColPlane(plane);
825
900
  const rowPlane = resolveRowPlane(plane);
@@ -924,6 +999,7 @@ let DxGrid = class DxGrid extends LitElement {
924
999
  return html `<div
925
1000
  role="gridcell"
926
1001
  tabindex="0"
1002
+ ?inert=${col < 0 || row < 0}
927
1003
  aria-selected=${selected ? 'true' : nothing}
928
1004
  aria-readonly=${readonly ? 'true' : nothing}
929
1005
  class=${(_a = cell === null || cell === void 0 ? void 0 : cell.className) !== null && _a !== void 0 ? _a : nothing}
@@ -951,16 +1027,14 @@ let DxGrid = class DxGrid extends LitElement {
951
1027
  render() {
952
1028
  const visibleCols = this.visColMax - this.visColMin;
953
1029
  const visibleRows = this.visRowMax - this.visRowMin;
954
- const offsetInline = this.visColMinStart - this.posInline + gap;
955
- const offsetBlock = this.visRowMinStart - this.posBlock + gap;
1030
+ const offsetInline = this.overscanInlineStart - this.posInline + gap;
1031
+ const offsetBlock = this.overscanBlockStart - this.posBlock + gap;
956
1032
  const selection = selectionProps(this.selectionStart, this.selectionEnd);
957
1033
  return html `<style>
958
1034
  ${this.activeRefs
959
1035
  .split(' ')
960
1036
  .filter((value) => value)
961
- .map(
962
- // TODO(burdon): Consistent camelCase?
963
- (activeRef) => `[data-refs~="${activeRef}"] { background: var(--dx-grid-commented-active, var(--dx-gridCommentedActive)) !important; }`)
1037
+ .map((activeRef) => `[data-refs~="${activeRef}"] { background: var(--dx-grid-commented-active, var(--dx-gridCommentedActive)) !important; }`)
964
1038
  .join('\n')}
965
1039
  </style>
966
1040
  <div
@@ -1053,20 +1127,6 @@ let DxGrid = class DxGrid extends LitElement {
1053
1127
  this.updateIntrinsicSizes();
1054
1128
  }
1055
1129
  willUpdate(changedProperties) {
1056
- if (changedProperties.has('rowDefault') || changedProperties.has('rows') || changedProperties.has('limitRows')) {
1057
- this.computeRowSizes();
1058
- this.updateIntrinsicBlockSize();
1059
- this.updatePosBlock();
1060
- this.updateVisBlock();
1061
- }
1062
- if (changedProperties.has('columnDefault') ||
1063
- changedProperties.has('columns') ||
1064
- changedProperties.has('limitColumns')) {
1065
- this.computeColSizes();
1066
- this.updateIntrinsicInlineSize();
1067
- this.updatePosInline();
1068
- this.updateVisInline();
1069
- }
1070
1130
  if (this.getCells &&
1071
1131
  (changedProperties.has('initialCells') ||
1072
1132
  changedProperties.has('visColMin') ||
@@ -1079,6 +1139,26 @@ let DxGrid = class DxGrid extends LitElement {
1079
1139
  changedProperties.has('limitRows'))) {
1080
1140
  this.updateCells(true);
1081
1141
  }
1142
+ if (changedProperties.has('rowDefault') || changedProperties.has('rows') || changedProperties.has('limitRows')) {
1143
+ this.updateIntrinsicBlockSize();
1144
+ this.updatePosBlock();
1145
+ this.updateVisBlock();
1146
+ }
1147
+ if (changedProperties.has('colDefault') ||
1148
+ changedProperties.has('columns') ||
1149
+ changedProperties.has('limitColumns')) {
1150
+ this.updateIntrinsicInlineSize();
1151
+ this.updatePosInline();
1152
+ this.updateVisInline();
1153
+ }
1154
+ if (changedProperties.has('columns')) {
1155
+ this.computeColSizes();
1156
+ this.updateIntrinsicInlineSize();
1157
+ }
1158
+ if (changedProperties.has('rows')) {
1159
+ this.computeRowSizes();
1160
+ this.updateIntrinsicBlockSize();
1161
+ }
1082
1162
  }
1083
1163
  updated(changedProperties) {
1084
1164
  // Update the focused element if there is a change in bounds (otherwise Lit keeps focus on the relative element).
@@ -1163,10 +1243,10 @@ __decorate([
1163
1243
  ], DxGrid.prototype, "sizeBlock", void 0);
1164
1244
  __decorate([
1165
1245
  state()
1166
- ], DxGrid.prototype, "visColMinStart", void 0);
1246
+ ], DxGrid.prototype, "overscanInlineStart", void 0);
1167
1247
  __decorate([
1168
1248
  state()
1169
- ], DxGrid.prototype, "visRowMinStart", void 0);
1249
+ ], DxGrid.prototype, "overscanBlockStart", void 0);
1170
1250
  __decorate([
1171
1251
  state()
1172
1252
  ], DxGrid.prototype, "binInlineMin", void 0);
@@ -1243,6 +1323,6 @@ DxGrid = __decorate([
1243
1323
  customElement('dx-grid')
1244
1324
  ], DxGrid);
1245
1325
  export { DxGrid };
1246
- export { rowToA1Notation, colToA1Notation, closestAction, closestCell } from './util';
1326
+ export { rowToA1Notation, colToA1Notation } from './util';
1247
1327
  export const commentedClassName = 'dx-grid__cell--commented';
1248
1328
  //# sourceMappingURL=dx-grid.js.map