@odoo/o-spreadsheet 16.0.59 → 16.0.60
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.
- package/dist/o-spreadsheet.cjs.js +95 -73
- package/dist/o-spreadsheet.d.ts +6 -12
- package/dist/o-spreadsheet.esm.js +95 -73
- package/dist/o-spreadsheet.iife.js +95 -73
- package/dist/o-spreadsheet.iife.min.js +3 -3
- package/dist/o_spreadsheet.xml +3 -3
- package/package.json +1 -1
|
@@ -22428,6 +22428,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22428
22428
|
canvas.width = width * dpr;
|
|
22429
22429
|
canvas.height = height * dpr;
|
|
22430
22430
|
canvas.setAttribute("style", `width:${width}px;height:${height}px;`);
|
|
22431
|
+
if (width === 0 || height === 0) {
|
|
22432
|
+
return;
|
|
22433
|
+
}
|
|
22431
22434
|
// Imagine each pixel as a large square. The whole-number coordinates (0, 1, 2…)
|
|
22432
22435
|
// are the edges of the squares. If you draw a one-unit-wide line between whole-number
|
|
22433
22436
|
// coordinates, it will overlap opposite sides of the pixel square, and the resulting
|
|
@@ -34631,10 +34634,8 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
34631
34634
|
const { ctx, thinLineWidth } = renderingContext;
|
|
34632
34635
|
const visibleCols = this.getters.getSheetViewVisibleCols();
|
|
34633
34636
|
const left = visibleCols[0];
|
|
34634
|
-
const right = visibleCols[visibleCols.length - 1];
|
|
34635
34637
|
const visibleRows = this.getters.getSheetViewVisibleRows();
|
|
34636
34638
|
const top = visibleRows[0];
|
|
34637
|
-
const bottom = visibleRows[visibleRows.length - 1];
|
|
34638
34639
|
const { width, height } = this.getters.getSheetViewDimensionWithHeaders();
|
|
34639
34640
|
const selection = this.getters.getSelectedZones();
|
|
34640
34641
|
const selectedCols = getZonesCols(selection);
|
|
@@ -34650,7 +34651,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
34650
34651
|
ctx.lineWidth = thinLineWidth;
|
|
34651
34652
|
ctx.strokeStyle = "#333";
|
|
34652
34653
|
// Columns headers background
|
|
34653
|
-
for (
|
|
34654
|
+
for (const col of visibleCols) {
|
|
34654
34655
|
const colZone = { left: col, right: col, top: 0, bottom: numberOfRows - 1 };
|
|
34655
34656
|
const { x, width } = this.getters.getVisibleRect(colZone);
|
|
34656
34657
|
const colHasFilter = this.getters.doesZonesContainFilter(sheetId, [colZone]);
|
|
@@ -34670,7 +34671,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
34670
34671
|
ctx.fillRect(x, 0, width, HEADER_HEIGHT);
|
|
34671
34672
|
}
|
|
34672
34673
|
// Rows headers background
|
|
34673
|
-
for (
|
|
34674
|
+
for (const row of visibleRows) {
|
|
34674
34675
|
const rowZone = { top: row, bottom: row, left: 0, right: numberOfCols - 1 };
|
|
34675
34676
|
const { y, height } = this.getters.getVisibleRect(rowZone);
|
|
34676
34677
|
const rowHasFilter = this.getters.doesZonesContainFilter(sheetId, [rowZone]);
|
|
@@ -34699,21 +34700,21 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
34699
34700
|
ctx.stroke();
|
|
34700
34701
|
ctx.beginPath();
|
|
34701
34702
|
// column text + separator
|
|
34702
|
-
for (const
|
|
34703
|
-
const colSize = this.getters.getColSize(sheetId,
|
|
34704
|
-
const colName = numberToLetters(
|
|
34705
|
-
ctx.fillStyle = activeCols.has(
|
|
34706
|
-
let colStart = this.getHeaderOffset("COL", left,
|
|
34703
|
+
for (const col of visibleCols) {
|
|
34704
|
+
const colSize = this.getters.getColSize(sheetId, col);
|
|
34705
|
+
const colName = numberToLetters(col);
|
|
34706
|
+
ctx.fillStyle = activeCols.has(col) ? "#fff" : TEXT_HEADER_COLOR;
|
|
34707
|
+
let colStart = this.getHeaderOffset("COL", left, col);
|
|
34707
34708
|
ctx.fillText(colName, colStart + colSize / 2, HEADER_HEIGHT / 2);
|
|
34708
34709
|
ctx.moveTo(colStart + colSize, 0);
|
|
34709
34710
|
ctx.lineTo(colStart + colSize, HEADER_HEIGHT);
|
|
34710
34711
|
}
|
|
34711
34712
|
// row text + separator
|
|
34712
|
-
for (const
|
|
34713
|
-
const rowSize = this.getters.getRowSize(sheetId,
|
|
34714
|
-
ctx.fillStyle = activeRows.has(
|
|
34715
|
-
let rowStart = this.getHeaderOffset("ROW", top,
|
|
34716
|
-
ctx.fillText(String(
|
|
34713
|
+
for (const row of visibleRows) {
|
|
34714
|
+
const rowSize = this.getters.getRowSize(sheetId, row);
|
|
34715
|
+
ctx.fillStyle = activeRows.has(row) ? "#fff" : TEXT_HEADER_COLOR;
|
|
34716
|
+
let rowStart = this.getHeaderOffset("ROW", top, row);
|
|
34717
|
+
ctx.fillText(String(row + 1), HEADER_WIDTH / 2, rowStart + rowSize / 2);
|
|
34717
34718
|
ctx.moveTo(0, rowStart + rowSize);
|
|
34718
34719
|
ctx.lineTo(HEADER_WIDTH, rowStart + rowSize);
|
|
34719
34720
|
}
|
|
@@ -36801,8 +36802,17 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
36801
36802
|
this.getters = getters;
|
|
36802
36803
|
this.sheetId = sheetId;
|
|
36803
36804
|
this.boundaries = boundaries;
|
|
36804
|
-
|
|
36805
|
-
|
|
36805
|
+
if (sizeInGrid.width < 0 || sizeInGrid.height < 0) {
|
|
36806
|
+
throw new Error("Viewport size cannot be negative");
|
|
36807
|
+
}
|
|
36808
|
+
this.viewportWidth = sizeInGrid.height && sizeInGrid.width;
|
|
36809
|
+
this.viewportHeight = sizeInGrid.width && sizeInGrid.height;
|
|
36810
|
+
this.top = boundaries.top;
|
|
36811
|
+
this.bottom = boundaries.bottom;
|
|
36812
|
+
this.left = boundaries.left;
|
|
36813
|
+
this.right = boundaries.right;
|
|
36814
|
+
this.offsetX = offsets.x;
|
|
36815
|
+
this.offsetY = offsets.y;
|
|
36806
36816
|
this.offsetScrollbarX = offsets.x;
|
|
36807
36817
|
this.offsetScrollbarY = offsets.y;
|
|
36808
36818
|
this.canScrollVertically = options.canScrollVertically;
|
|
@@ -36991,6 +37001,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
36991
37001
|
}
|
|
36992
37002
|
// PRIVATE
|
|
36993
37003
|
searchHeaderIndex(dimension, position, startIndex = 0, absolute = false) {
|
|
37004
|
+
if (this.viewportWidth <= 0 || this.viewportHeight <= 0) {
|
|
37005
|
+
return -1;
|
|
37006
|
+
}
|
|
36994
37007
|
let size = 0;
|
|
36995
37008
|
const sheetId = this.sheetId;
|
|
36996
37009
|
const headers = this.getters.getNumberHeaders(sheetId, dimension);
|
|
@@ -37029,7 +37042,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37029
37042
|
this.adjustViewportZoneY();
|
|
37030
37043
|
}
|
|
37031
37044
|
/** Corrects the viewport's horizontal offset based on the current structure
|
|
37032
|
-
* To make sure that at least
|
|
37045
|
+
* To make sure that at least one column is visible inside the viewport.
|
|
37033
37046
|
*/
|
|
37034
37047
|
adjustViewportOffsetX() {
|
|
37035
37048
|
if (this.canScrollHorizontally) {
|
|
@@ -37046,7 +37059,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37046
37059
|
this.adjustViewportZoneX();
|
|
37047
37060
|
}
|
|
37048
37061
|
/** Corrects the viewport's vertical offset based on the current structure
|
|
37049
|
-
* To make sure that at least
|
|
37062
|
+
* To make sure that at least one row is visible inside the viewport.
|
|
37050
37063
|
*/
|
|
37051
37064
|
adjustViewportOffsetY() {
|
|
37052
37065
|
if (this.canScrollVertically) {
|
|
@@ -37068,11 +37081,14 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37068
37081
|
const sheetId = this.sheetId;
|
|
37069
37082
|
this.left = this.searchHeaderIndex("COL", this.offsetScrollbarX, this.boundaries.left);
|
|
37070
37083
|
this.right = Math.min(this.boundaries.right, this.searchHeaderIndex("COL", this.viewportWidth, this.left));
|
|
37084
|
+
if (!this.viewportWidth) {
|
|
37085
|
+
return;
|
|
37086
|
+
}
|
|
37071
37087
|
if (this.left === -1) {
|
|
37072
37088
|
this.left = this.boundaries.left;
|
|
37073
37089
|
}
|
|
37074
37090
|
if (this.right === -1) {
|
|
37075
|
-
this.right = this.
|
|
37091
|
+
this.right = this.boundaries.right;
|
|
37076
37092
|
}
|
|
37077
37093
|
this.offsetX =
|
|
37078
37094
|
this.getters.getColDimensions(sheetId, this.left).start -
|
|
@@ -37084,11 +37100,14 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37084
37100
|
const sheetId = this.sheetId;
|
|
37085
37101
|
this.top = this.searchHeaderIndex("ROW", this.offsetScrollbarY, this.boundaries.top);
|
|
37086
37102
|
this.bottom = Math.min(this.boundaries.bottom, this.searchHeaderIndex("ROW", this.viewportHeight, this.top));
|
|
37103
|
+
if (!this.viewportHeight) {
|
|
37104
|
+
return;
|
|
37105
|
+
}
|
|
37087
37106
|
if (this.top === -1) {
|
|
37088
37107
|
this.top = this.boundaries.top;
|
|
37089
37108
|
}
|
|
37090
37109
|
if (this.bottom === -1) {
|
|
37091
|
-
this.bottom = this.
|
|
37110
|
+
this.bottom = this.boundaries.bottom;
|
|
37092
37111
|
}
|
|
37093
37112
|
this.offsetY =
|
|
37094
37113
|
this.getters.getRowDimensions(sheetId, this.top).start -
|
|
@@ -37340,12 +37359,12 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37340
37359
|
getSheetViewVisibleCols() {
|
|
37341
37360
|
const sheetId = this.getters.getActiveSheetId();
|
|
37342
37361
|
const viewports = this.getSubViewports(sheetId);
|
|
37343
|
-
return [...new Set(viewports.map((v) => range(v.left, v.right + 1)).flat())].filter((col) => !this.getters.isHeaderHidden(sheetId, "COL", col));
|
|
37362
|
+
return [...new Set(viewports.map((v) => range(v.left, v.right + 1)).flat())].filter((col) => col >= 0 && !this.getters.isHeaderHidden(sheetId, "COL", col));
|
|
37344
37363
|
}
|
|
37345
37364
|
getSheetViewVisibleRows() {
|
|
37346
37365
|
const sheetId = this.getters.getActiveSheetId();
|
|
37347
37366
|
const viewports = this.getSubViewports(sheetId);
|
|
37348
|
-
return [...new Set(viewports.map((v) => range(v.top, v.bottom + 1)).flat())].filter((row) => !this.getters.isHeaderHidden(sheetId, "ROW", row));
|
|
37367
|
+
return [...new Set(viewports.map((v) => range(v.top, v.bottom + 1)).flat())].filter((row) => row >= 0 && !this.getters.isHeaderHidden(sheetId, "ROW", row));
|
|
37349
37368
|
}
|
|
37350
37369
|
/**
|
|
37351
37370
|
* Return the main viewport maximum size relative to the client size.
|
|
@@ -37368,19 +37387,19 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37368
37387
|
maxOffsetY: Math.max(0, height - viewport.viewportHeight + 1),
|
|
37369
37388
|
};
|
|
37370
37389
|
}
|
|
37371
|
-
getColRowOffsetInViewport(dimension,
|
|
37372
|
-
|
|
37373
|
-
|
|
37374
|
-
const visibleRows = this.getters.getSheetViewVisibleRows();
|
|
37375
|
-
if (index < referenceIndex) {
|
|
37376
|
-
return -this.getColRowOffsetInViewport(dimension, index, referenceIndex);
|
|
37390
|
+
getColRowOffsetInViewport(dimension, referenceHeaderIndex, targetHeaderIndex) {
|
|
37391
|
+
if (targetHeaderIndex < referenceHeaderIndex) {
|
|
37392
|
+
return -this.getColRowOffsetInViewport(dimension, targetHeaderIndex, referenceHeaderIndex);
|
|
37377
37393
|
}
|
|
37394
|
+
const sheetId = this.getters.getActiveSheetId();
|
|
37395
|
+
const visibleHeaders = dimension === "COL"
|
|
37396
|
+
? this.getters.getSheetViewVisibleCols()
|
|
37397
|
+
: this.getters.getSheetViewVisibleRows();
|
|
37398
|
+
const startIndex = visibleHeaders.findIndex((header) => referenceHeaderIndex >= header);
|
|
37399
|
+
const endIndex = visibleHeaders.findIndex((header) => targetHeaderIndex <= header);
|
|
37400
|
+
const relevantIndexes = visibleHeaders.slice(startIndex, endIndex);
|
|
37378
37401
|
let offset = 0;
|
|
37379
|
-
const
|
|
37380
|
-
for (let i = referenceIndex; i < index; i++) {
|
|
37381
|
-
if (!visibleIndexes.includes(i)) {
|
|
37382
|
-
continue;
|
|
37383
|
-
}
|
|
37402
|
+
for (const i of relevantIndexes) {
|
|
37384
37403
|
offset +=
|
|
37385
37404
|
dimension === "COL"
|
|
37386
37405
|
? this.getters.getColSize(sheetId, i)
|
|
@@ -37430,7 +37449,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37430
37449
|
}
|
|
37431
37450
|
return { canEdgeScroll, direction, delay };
|
|
37432
37451
|
}
|
|
37433
|
-
getEdgeScrollRow(y, previousY,
|
|
37452
|
+
getEdgeScrollRow(y, previousY, startingY) {
|
|
37434
37453
|
let canEdgeScroll = false;
|
|
37435
37454
|
let direction = 0;
|
|
37436
37455
|
let delay = 0;
|
|
@@ -37451,7 +37470,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37451
37470
|
delay = scrollDelay(y - height);
|
|
37452
37471
|
direction = 1;
|
|
37453
37472
|
}
|
|
37454
|
-
else if (y < offsetCorrectionY &&
|
|
37473
|
+
else if (y < offsetCorrectionY && startingY >= offsetCorrectionY && currentOffsetY > 0) {
|
|
37455
37474
|
// 2
|
|
37456
37475
|
canEdgeScroll = true;
|
|
37457
37476
|
delay = scrollDelay(offsetCorrectionY - y);
|
|
@@ -37470,13 +37489,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37470
37489
|
*/
|
|
37471
37490
|
getVisibleRect(zone) {
|
|
37472
37491
|
const sheetId = this.getters.getActiveSheetId();
|
|
37473
|
-
|
|
37474
|
-
.map((viewport) => viewport.getVisibleRect(zone))
|
|
37475
|
-
.filter(isDefined$1);
|
|
37476
|
-
if (viewportRects.length === 0) {
|
|
37477
|
-
return { x: 0, y: 0, width: 0, height: 0 };
|
|
37478
|
-
}
|
|
37479
|
-
return this.recomposeRect(viewportRects);
|
|
37492
|
+
return this.mapViewportsToRect(sheetId, (viewport) => viewport.getVisibleRect(zone));
|
|
37480
37493
|
}
|
|
37481
37494
|
/**
|
|
37482
37495
|
* Computes the actual size and position (:Rect) of the zone on the canvas
|
|
@@ -37484,13 +37497,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37484
37497
|
*/
|
|
37485
37498
|
getRect(zone) {
|
|
37486
37499
|
const sheetId = this.getters.getActiveSheetId();
|
|
37487
|
-
|
|
37488
|
-
.map((viewport) => viewport.getFullRect(zone))
|
|
37489
|
-
.filter(isDefined$1);
|
|
37490
|
-
if (viewportRects.length === 0) {
|
|
37491
|
-
return { x: 0, y: 0, width: 0, height: 0 };
|
|
37492
|
-
}
|
|
37493
|
-
return this.recomposeRect(viewportRects);
|
|
37500
|
+
return this.mapViewportsToRect(sheetId, (viewport) => viewport.getFullRect(zone));
|
|
37494
37501
|
}
|
|
37495
37502
|
/**
|
|
37496
37503
|
* Returns the position of the MainViewport relatively to the start of the grid (without headers)
|
|
@@ -37559,12 +37566,11 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37559
37566
|
}
|
|
37560
37567
|
/** gets rid of deprecated sheetIds */
|
|
37561
37568
|
cleanViewports() {
|
|
37562
|
-
const
|
|
37563
|
-
for (
|
|
37564
|
-
|
|
37565
|
-
delete this.viewports[sheetId];
|
|
37566
|
-
}
|
|
37569
|
+
const newViewport = {};
|
|
37570
|
+
for (const sheetId of this.getters.getSheetIds()) {
|
|
37571
|
+
newViewport[sheetId] = this.viewports[sheetId];
|
|
37567
37572
|
}
|
|
37573
|
+
this.viewports = newViewport;
|
|
37568
37574
|
}
|
|
37569
37575
|
resetSheetViews() {
|
|
37570
37576
|
this.cleanViewports();
|
|
@@ -37585,14 +37591,14 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37585
37591
|
this.recomputeViewports();
|
|
37586
37592
|
}
|
|
37587
37593
|
recomputeViewports() {
|
|
37588
|
-
for (
|
|
37594
|
+
for (const sheetId of this.getters.getSheetIds()) {
|
|
37589
37595
|
this.resetViewports(sheetId);
|
|
37590
37596
|
}
|
|
37591
37597
|
}
|
|
37592
37598
|
setSheetViewOffset(offsetX, offsetY) {
|
|
37593
37599
|
const sheetId = this.getters.getActiveSheetId();
|
|
37594
37600
|
const { maxOffsetX, maxOffsetY } = this.getMaximumSheetOffset();
|
|
37595
|
-
|
|
37601
|
+
this.getSubViewports(sheetId).forEach((viewport) => viewport.setViewportOffset(clip(offsetX, 0, maxOffsetX), clip(offsetY, 0, maxOffsetY)));
|
|
37596
37602
|
}
|
|
37597
37603
|
getViewportOffset(sheetId) {
|
|
37598
37604
|
var _a, _b;
|
|
@@ -37608,8 +37614,10 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37608
37614
|
const { xSplit, ySplit } = this.getters.getPaneDivisions(sheetId);
|
|
37609
37615
|
const nCols = this.getters.getNumberCols(sheetId);
|
|
37610
37616
|
const nRows = this.getters.getNumberRows(sheetId);
|
|
37611
|
-
const colOffset = this.getters.getColRowOffset("COL", 0, xSplit, sheetId);
|
|
37612
|
-
const rowOffset = this.getters.getColRowOffset("ROW", 0, ySplit, sheetId);
|
|
37617
|
+
const colOffset = Math.min(this.getters.getColRowOffset("COL", 0, xSplit, sheetId), this.sheetViewWidth);
|
|
37618
|
+
const rowOffset = Math.min(this.getters.getColRowOffset("ROW", 0, ySplit, sheetId), this.sheetViewHeight);
|
|
37619
|
+
const unfrozenWidth = Math.max(this.sheetViewWidth - colOffset, 0);
|
|
37620
|
+
const unfrozenHeight = Math.max(this.sheetViewHeight - rowOffset, 0);
|
|
37613
37621
|
const { xRatio, yRatio } = this.getFrozenSheetViewRatio(sheetId);
|
|
37614
37622
|
const canScrollHorizontally = xRatio < 1.0;
|
|
37615
37623
|
const canScrollVertically = yRatio < 1.0;
|
|
@@ -37620,14 +37628,14 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37620
37628
|
new InternalViewport(this.getters, sheetId, { left: 0, right: xSplit - 1, top: 0, bottom: ySplit - 1 }, { width: colOffset, height: rowOffset }, { canScrollHorizontally: false, canScrollVertically: false }, { x: 0, y: 0 })) ||
|
|
37621
37629
|
undefined,
|
|
37622
37630
|
topRight: (ySplit &&
|
|
37623
|
-
new InternalViewport(this.getters, sheetId, { left: xSplit, right: nCols - 1, top: 0, bottom: ySplit - 1 }, { width:
|
|
37631
|
+
new InternalViewport(this.getters, sheetId, { left: xSplit, right: nCols - 1, top: 0, bottom: ySplit - 1 }, { width: unfrozenWidth, height: rowOffset }, { canScrollHorizontally, canScrollVertically: false }, { x: canScrollHorizontally ? previousOffset.x : 0, y: 0 })) ||
|
|
37624
37632
|
undefined,
|
|
37625
37633
|
bottomLeft: (xSplit &&
|
|
37626
|
-
new InternalViewport(this.getters, sheetId, { left: 0, right: xSplit - 1, top: ySplit, bottom: nRows - 1 }, { width: colOffset, height:
|
|
37634
|
+
new InternalViewport(this.getters, sheetId, { left: 0, right: xSplit - 1, top: ySplit, bottom: nRows - 1 }, { width: colOffset, height: unfrozenHeight }, { canScrollHorizontally: false, canScrollVertically }, { x: 0, y: canScrollVertically ? previousOffset.y : 0 })) ||
|
|
37627
37635
|
undefined,
|
|
37628
37636
|
bottomRight: new InternalViewport(this.getters, sheetId, { left: xSplit, right: nCols - 1, top: ySplit, bottom: nRows - 1 }, {
|
|
37629
|
-
width:
|
|
37630
|
-
height:
|
|
37637
|
+
width: unfrozenWidth,
|
|
37638
|
+
height: unfrozenHeight,
|
|
37631
37639
|
}, { canScrollHorizontally, canScrollVertically }, {
|
|
37632
37640
|
x: canScrollHorizontally ? previousOffset.x : 0,
|
|
37633
37641
|
y: canScrollVertically ? previousOffset.y : 0,
|
|
@@ -37639,7 +37647,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37639
37647
|
* Adjust the viewport such that the anchor position is visible
|
|
37640
37648
|
*/
|
|
37641
37649
|
refreshViewport(sheetId, anchorPosition) {
|
|
37642
|
-
|
|
37650
|
+
this.getSubViewports(sheetId).forEach((viewport) => {
|
|
37643
37651
|
viewport.adjustViewportZone();
|
|
37644
37652
|
viewport.adjustPosition(anchorPosition);
|
|
37645
37653
|
});
|
|
@@ -37690,16 +37698,30 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37690
37698
|
const height = this.sheetViewHeight + this.gridOffsetY;
|
|
37691
37699
|
return { xRatio: offsetCorrectionX / width, yRatio: offsetCorrectionY / height };
|
|
37692
37700
|
}
|
|
37693
|
-
|
|
37694
|
-
|
|
37695
|
-
|
|
37696
|
-
|
|
37697
|
-
|
|
37701
|
+
mapViewportsToRect(sheetId, rectCallBack) {
|
|
37702
|
+
let x = Infinity;
|
|
37703
|
+
let y = Infinity;
|
|
37704
|
+
let width = 0;
|
|
37705
|
+
let height = 0;
|
|
37706
|
+
let hasViewports = false;
|
|
37707
|
+
for (const viewport of this.getSubViewports(sheetId)) {
|
|
37708
|
+
const rect = rectCallBack(viewport);
|
|
37709
|
+
if (rect) {
|
|
37710
|
+
hasViewports = true;
|
|
37711
|
+
x = Math.min(x, rect.x);
|
|
37712
|
+
y = Math.min(y, rect.y);
|
|
37713
|
+
width = Math.max(width, rect.x + rect.width);
|
|
37714
|
+
height = Math.max(height, rect.y + rect.height);
|
|
37715
|
+
}
|
|
37716
|
+
}
|
|
37717
|
+
if (!hasViewports) {
|
|
37718
|
+
return { x: 0, y: 0, width: 0, height: 0 };
|
|
37719
|
+
}
|
|
37698
37720
|
return {
|
|
37699
37721
|
x: x + this.gridOffsetX,
|
|
37700
37722
|
y: y + this.gridOffsetY,
|
|
37701
|
-
width,
|
|
37702
|
-
height,
|
|
37723
|
+
width: width - x,
|
|
37724
|
+
height: height - y,
|
|
37703
37725
|
};
|
|
37704
37726
|
}
|
|
37705
37727
|
}
|
|
@@ -43567,9 +43589,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
43567
43589
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
43568
43590
|
|
|
43569
43591
|
|
|
43570
|
-
__info__.version = '16.0.
|
|
43571
|
-
__info__.date = '2025-
|
|
43572
|
-
__info__.hash = '
|
|
43592
|
+
__info__.version = '16.0.60';
|
|
43593
|
+
__info__.date = '2025-02-05T06:44:04.651Z';
|
|
43594
|
+
__info__.hash = 'd098699';
|
|
43573
43595
|
|
|
43574
43596
|
|
|
43575
43597
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|