@odoo/o-spreadsheet 16.0.62 → 16.0.64
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 +168 -95
- package/dist/o-spreadsheet.d.ts +3 -1
- package/dist/o-spreadsheet.esm.js +168 -95
- package/dist/o-spreadsheet.iife.js +168 -95
- package/dist/o-spreadsheet.iife.min.js +216 -216
- package/dist/o_spreadsheet.xml +18 -11
- package/package.json +2 -1
|
@@ -2396,11 +2396,12 @@
|
|
|
2396
2396
|
if (this.isFastIdStrategy) {
|
|
2397
2397
|
this.fastIdStart++;
|
|
2398
2398
|
return String(this.fastIdStart);
|
|
2399
|
-
//@ts-ignore
|
|
2400
2399
|
}
|
|
2401
|
-
else if (window.crypto
|
|
2402
|
-
|
|
2403
|
-
|
|
2400
|
+
else if (window.crypto) {
|
|
2401
|
+
return "10000000-1000".replace(/[01]/g, (c) => {
|
|
2402
|
+
const n = Number(c);
|
|
2403
|
+
return (n ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (n / 4)))).toString(16);
|
|
2404
|
+
});
|
|
2404
2405
|
}
|
|
2405
2406
|
else {
|
|
2406
2407
|
// mainly for jest and other browsers that do not have the crypto functionality
|
|
@@ -2418,11 +2419,12 @@
|
|
|
2418
2419
|
if (this.isFastIdStrategy) {
|
|
2419
2420
|
this.fastIdStart++;
|
|
2420
2421
|
return String(this.fastIdStart);
|
|
2421
|
-
//@ts-ignore
|
|
2422
2422
|
}
|
|
2423
|
-
else if (window.crypto
|
|
2424
|
-
|
|
2425
|
-
|
|
2423
|
+
else if (window.crypto) {
|
|
2424
|
+
return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c) => {
|
|
2425
|
+
const n = Number(c);
|
|
2426
|
+
return (n ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (n / 4)))).toString(16);
|
|
2427
|
+
});
|
|
2426
2428
|
}
|
|
2427
2429
|
else {
|
|
2428
2430
|
// mainly for jest and other browsers that do not have the crypto functionality
|
|
@@ -3579,10 +3581,13 @@
|
|
|
3579
3581
|
})
|
|
3580
3582
|
.add("increment_number", {
|
|
3581
3583
|
condition: (cell) => cell.evaluated.type === CellValueType.number,
|
|
3582
|
-
generateRule: (cell, cells) => {
|
|
3584
|
+
generateRule: (cell, cells, direction) => {
|
|
3583
3585
|
const group = getGroup(cell, cells);
|
|
3584
3586
|
let increment = 1;
|
|
3585
|
-
if (group.length
|
|
3587
|
+
if (group.length === 1 && ["up", "left"].includes(direction)) {
|
|
3588
|
+
increment = -1;
|
|
3589
|
+
}
|
|
3590
|
+
else if (group.length == 2) {
|
|
3586
3591
|
increment = (group[1] - group[0]) * 2;
|
|
3587
3592
|
}
|
|
3588
3593
|
else if (group.length > 2) {
|
|
@@ -22182,6 +22187,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22182
22187
|
this.MAX_SIZE_MARGIN = 90;
|
|
22183
22188
|
this.MIN_ELEMENT_SIZE = MIN_COL_WIDTH;
|
|
22184
22189
|
}
|
|
22190
|
+
get sheetId() {
|
|
22191
|
+
return this.env.model.getters.getActiveSheetId();
|
|
22192
|
+
}
|
|
22185
22193
|
_getEvOffset(ev) {
|
|
22186
22194
|
return ev.offsetX;
|
|
22187
22195
|
}
|
|
@@ -22204,10 +22212,10 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22204
22212
|
return this.env.model.getters.getEdgeScrollCol(position, position, position);
|
|
22205
22213
|
}
|
|
22206
22214
|
_getDimensionsInViewport(index) {
|
|
22207
|
-
return this.env.model.getters.getColDimensionsInViewport(this.
|
|
22215
|
+
return this.env.model.getters.getColDimensionsInViewport(this.sheetId, index);
|
|
22208
22216
|
}
|
|
22209
22217
|
_getElementSize(index) {
|
|
22210
|
-
return this.env.model.getters.getColSize(this.
|
|
22218
|
+
return this.env.model.getters.getColSize(this.sheetId, index);
|
|
22211
22219
|
}
|
|
22212
22220
|
_getMaxSize() {
|
|
22213
22221
|
return this.colResizerRef.el.clientWidth;
|
|
@@ -22218,7 +22226,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22218
22226
|
const cols = this.env.model.getters.getActiveCols();
|
|
22219
22227
|
this.env.model.dispatch("RESIZE_COLUMNS_ROWS", {
|
|
22220
22228
|
dimension: "COL",
|
|
22221
|
-
sheetId: this.
|
|
22229
|
+
sheetId: this.sheetId,
|
|
22222
22230
|
elements: cols.has(index) ? [...cols] : [index],
|
|
22223
22231
|
size,
|
|
22224
22232
|
});
|
|
@@ -22231,7 +22239,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22231
22239
|
elements.push(colIndex);
|
|
22232
22240
|
}
|
|
22233
22241
|
const result = this.env.model.dispatch("MOVE_COLUMNS_ROWS", {
|
|
22234
|
-
sheetId: this.
|
|
22242
|
+
sheetId: this.sheetId,
|
|
22235
22243
|
dimension: "COL",
|
|
22236
22244
|
base: this.state.base,
|
|
22237
22245
|
elements,
|
|
@@ -22250,7 +22258,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22250
22258
|
_fitElementSize(index) {
|
|
22251
22259
|
const cols = this.env.model.getters.getActiveCols();
|
|
22252
22260
|
this.env.model.dispatch("AUTORESIZE_COLUMNS", {
|
|
22253
|
-
sheetId: this.
|
|
22261
|
+
sheetId: this.sheetId,
|
|
22254
22262
|
cols: cols.has(index) ? [...cols] : [index],
|
|
22255
22263
|
});
|
|
22256
22264
|
}
|
|
@@ -22261,7 +22269,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22261
22269
|
return this.env.model.getters.getActiveCols();
|
|
22262
22270
|
}
|
|
22263
22271
|
_getPreviousVisibleElement(index) {
|
|
22264
|
-
const sheetId = this.
|
|
22272
|
+
const sheetId = this.sheetId;
|
|
22265
22273
|
let row;
|
|
22266
22274
|
for (row = index - 1; row >= 0; row--) {
|
|
22267
22275
|
if (!this.env.model.getters.isColHidden(sheetId, row)) {
|
|
@@ -22272,7 +22280,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22272
22280
|
}
|
|
22273
22281
|
unhide(hiddenElements) {
|
|
22274
22282
|
this.env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
22275
|
-
sheetId: this.
|
|
22283
|
+
sheetId: this.sheetId,
|
|
22276
22284
|
elements: hiddenElements,
|
|
22277
22285
|
dimension: "COL",
|
|
22278
22286
|
});
|
|
@@ -22289,7 +22297,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22289
22297
|
left: 0;
|
|
22290
22298
|
right: 0;
|
|
22291
22299
|
width: ${HEADER_WIDTH}px;
|
|
22292
|
-
height: 100
|
|
22300
|
+
height: calc(100% - ${HEADER_HEIGHT + SCROLLBAR_WIDTH}px);
|
|
22293
22301
|
&.o-dragging {
|
|
22294
22302
|
cursor: grabbing;
|
|
22295
22303
|
}
|
|
@@ -22352,6 +22360,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22352
22360
|
this.MAX_SIZE_MARGIN = 60;
|
|
22353
22361
|
this.MIN_ELEMENT_SIZE = MIN_ROW_HEIGHT;
|
|
22354
22362
|
}
|
|
22363
|
+
get sheetId() {
|
|
22364
|
+
return this.env.model.getters.getActiveSheetId();
|
|
22365
|
+
}
|
|
22355
22366
|
_getEvOffset(ev) {
|
|
22356
22367
|
return ev.offsetY;
|
|
22357
22368
|
}
|
|
@@ -22374,10 +22385,10 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22374
22385
|
return this.env.model.getters.getEdgeScrollRow(position, position, position);
|
|
22375
22386
|
}
|
|
22376
22387
|
_getDimensionsInViewport(index) {
|
|
22377
|
-
return this.env.model.getters.getRowDimensionsInViewport(this.
|
|
22388
|
+
return this.env.model.getters.getRowDimensionsInViewport(this.sheetId, index);
|
|
22378
22389
|
}
|
|
22379
22390
|
_getElementSize(index) {
|
|
22380
|
-
return this.env.model.getters.getRowSize(this.
|
|
22391
|
+
return this.env.model.getters.getRowSize(this.sheetId, index);
|
|
22381
22392
|
}
|
|
22382
22393
|
_getMaxSize() {
|
|
22383
22394
|
return this.rowResizerRef.el.clientHeight;
|
|
@@ -22388,7 +22399,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22388
22399
|
const rows = this.env.model.getters.getActiveRows();
|
|
22389
22400
|
this.env.model.dispatch("RESIZE_COLUMNS_ROWS", {
|
|
22390
22401
|
dimension: "ROW",
|
|
22391
|
-
sheetId: this.
|
|
22402
|
+
sheetId: this.sheetId,
|
|
22392
22403
|
elements: rows.has(index) ? [...rows] : [index],
|
|
22393
22404
|
size,
|
|
22394
22405
|
});
|
|
@@ -22401,7 +22412,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22401
22412
|
elements.push(rowIndex);
|
|
22402
22413
|
}
|
|
22403
22414
|
const result = this.env.model.dispatch("MOVE_COLUMNS_ROWS", {
|
|
22404
|
-
sheetId: this.
|
|
22415
|
+
sheetId: this.sheetId,
|
|
22405
22416
|
dimension: "ROW",
|
|
22406
22417
|
base: this.state.base,
|
|
22407
22418
|
elements,
|
|
@@ -22420,7 +22431,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22420
22431
|
_fitElementSize(index) {
|
|
22421
22432
|
const rows = this.env.model.getters.getActiveRows();
|
|
22422
22433
|
this.env.model.dispatch("AUTORESIZE_ROWS", {
|
|
22423
|
-
sheetId: this.
|
|
22434
|
+
sheetId: this.sheetId,
|
|
22424
22435
|
rows: rows.has(index) ? [...rows] : [index],
|
|
22425
22436
|
});
|
|
22426
22437
|
}
|
|
@@ -22431,7 +22442,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22431
22442
|
return this.env.model.getters.getActiveRows();
|
|
22432
22443
|
}
|
|
22433
22444
|
_getPreviousVisibleElement(index) {
|
|
22434
|
-
const sheetId = this.
|
|
22445
|
+
const sheetId = this.sheetId;
|
|
22435
22446
|
let row;
|
|
22436
22447
|
for (row = index - 1; row >= 0; row--) {
|
|
22437
22448
|
if (!this.env.model.getters.isRowHidden(sheetId, row)) {
|
|
@@ -22442,7 +22453,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
22442
22453
|
}
|
|
22443
22454
|
unhide(hiddenElements) {
|
|
22444
22455
|
this.env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
22445
|
-
sheetId: this.
|
|
22456
|
+
sheetId: this.sheetId,
|
|
22446
22457
|
dimension: "ROW",
|
|
22447
22458
|
elements: hiddenElements,
|
|
22448
22459
|
});
|
|
@@ -25520,29 +25531,33 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
25520
25531
|
* In all the sheets, replace the table-only references in the formula cells with standard references.
|
|
25521
25532
|
*/
|
|
25522
25533
|
function convertTableFormulaReferences(convertedSheets, xlsxSheets) {
|
|
25523
|
-
for (let
|
|
25524
|
-
const tables = xlsxSheets.find((s) => s.sheetName ===
|
|
25534
|
+
for (let tableSheet of convertedSheets) {
|
|
25535
|
+
const tables = xlsxSheets.find((s) => s.sheetName === tableSheet.name).tables;
|
|
25525
25536
|
for (let table of tables) {
|
|
25526
25537
|
const tabRef = table.name + "[";
|
|
25527
|
-
for (let
|
|
25528
|
-
|
|
25529
|
-
|
|
25530
|
-
|
|
25531
|
-
|
|
25532
|
-
|
|
25533
|
-
|
|
25534
|
-
|
|
25535
|
-
|
|
25536
|
-
|
|
25537
|
-
|
|
25538
|
-
|
|
25538
|
+
for (let sheet of convertedSheets) {
|
|
25539
|
+
for (let xc in sheet.cells) {
|
|
25540
|
+
const cell = sheet.cells[xc];
|
|
25541
|
+
if (cell && cell.content && cell.content.startsWith("=")) {
|
|
25542
|
+
let refIndex;
|
|
25543
|
+
while ((refIndex = cell.content.indexOf(tabRef)) !== -1) {
|
|
25544
|
+
let endIndex = refIndex + tabRef.length;
|
|
25545
|
+
let openBrackets = 1;
|
|
25546
|
+
while (openBrackets > 0 && endIndex < cell.content.length) {
|
|
25547
|
+
if (cell.content[endIndex] === "[") {
|
|
25548
|
+
openBrackets++;
|
|
25549
|
+
}
|
|
25550
|
+
else if (cell.content[endIndex] === "]") {
|
|
25551
|
+
openBrackets--;
|
|
25552
|
+
}
|
|
25553
|
+
endIndex++;
|
|
25554
|
+
}
|
|
25555
|
+
let reference = cell.content.slice(refIndex + tabRef.length, endIndex - 1);
|
|
25556
|
+
const sheetPrefix = tableSheet.id === sheet.id ? "" : tableSheet.name + "!";
|
|
25557
|
+
const convertedRef = convertTableReference(sheetPrefix, reference, table, xc);
|
|
25558
|
+
cell.content =
|
|
25559
|
+
cell.content.slice(0, refIndex) + convertedRef + cell.content.slice(endIndex);
|
|
25539
25560
|
}
|
|
25540
|
-
reference = reference.slice(0, endIndex);
|
|
25541
|
-
const convertedRef = convertTableReference(reference, table, xc);
|
|
25542
|
-
cell.content =
|
|
25543
|
-
cell.content.slice(0, refIndex) +
|
|
25544
|
-
convertedRef +
|
|
25545
|
-
cell.content.slice(tabRef.length + refIndex + endIndex + 1);
|
|
25546
25561
|
}
|
|
25547
25562
|
}
|
|
25548
25563
|
}
|
|
@@ -25550,11 +25565,17 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
25550
25565
|
}
|
|
25551
25566
|
}
|
|
25552
25567
|
/**
|
|
25553
|
-
* Convert table-specific references in formulas into standard references.
|
|
25568
|
+
* Convert table-specific references in formulas into standard references. A table reference is composed of columns names,
|
|
25569
|
+
* and of keywords determining the rows of the table to reference.
|
|
25554
25570
|
*
|
|
25555
25571
|
* A reference in a table can have the form (only the part between brackets should be given to this function):
|
|
25556
25572
|
* - tableName[colName] : reference to the whole column "colName"
|
|
25573
|
+
* - tableName[#keyword] : reference to the whatever row the keyword refers to
|
|
25557
25574
|
* - tableName[[#keyword], [colName]] : reference to some of the element(s) of the column colName
|
|
25575
|
+
* - tableName[[#keyword], [colName]:[col2Name]] : reference to some of the element(s) of the columns colName to col2Name
|
|
25576
|
+
* - tableName[[#keyword1], [#keyword2], [colName]] : reference to all the rows referenced by the keywords in the column colName
|
|
25577
|
+
* - tableName[[#keyword1], [colName], [#keyword2]]: the keywords and colName can be in any order
|
|
25578
|
+
*
|
|
25558
25579
|
*
|
|
25559
25580
|
* The available keywords are :
|
|
25560
25581
|
* - #All : all the column (including totals)
|
|
@@ -25562,58 +25583,109 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
25562
25583
|
* - #Headers : only the header of the column
|
|
25563
25584
|
* - #Totals : only the totals of the column
|
|
25564
25585
|
* - #This Row : only the element in the same row as the cell
|
|
25586
|
+
*
|
|
25587
|
+
* Note that the only valid combination of multiple keywords are #Data + #Totals and #Headers + #Data.
|
|
25565
25588
|
*/
|
|
25566
|
-
function convertTableReference(expr, table, cellXc) {
|
|
25567
|
-
|
|
25589
|
+
function convertTableReference(sheetPrefix, expr, table, cellXc) {
|
|
25590
|
+
// TODO: Ideally we'd want to make a real tokenizer, this simple approach won't work if for example the column name
|
|
25591
|
+
// contain # or , characters. But that's probably an edge case that we can ignore for now.
|
|
25592
|
+
const parts = expr.split(",").map((part) => part.trim());
|
|
25568
25593
|
const tableZone = toZone(table.ref);
|
|
25569
|
-
const
|
|
25570
|
-
|
|
25571
|
-
|
|
25572
|
-
|
|
25573
|
-
|
|
25574
|
-
|
|
25575
|
-
|
|
25576
|
-
|
|
25577
|
-
|
|
25578
|
-
|
|
25579
|
-
|
|
25594
|
+
const colIndexes = [];
|
|
25595
|
+
const rowIndexes = [];
|
|
25596
|
+
const foundKeywords = [];
|
|
25597
|
+
for (const part of parts) {
|
|
25598
|
+
if (removeBrackets(part).startsWith("#")) {
|
|
25599
|
+
const keyWord = removeBrackets(part);
|
|
25600
|
+
foundKeywords.push(keyWord);
|
|
25601
|
+
switch (keyWord) {
|
|
25602
|
+
case "#All":
|
|
25603
|
+
rowIndexes.push(tableZone.top, tableZone.bottom);
|
|
25604
|
+
break;
|
|
25605
|
+
case "#Data":
|
|
25606
|
+
const top = table.headerRowCount ? tableZone.top + table.headerRowCount : tableZone.top;
|
|
25607
|
+
const bottom = table.totalsRowCount
|
|
25608
|
+
? tableZone.bottom - table.totalsRowCount
|
|
25609
|
+
: tableZone.bottom;
|
|
25610
|
+
rowIndexes.push(top, bottom);
|
|
25611
|
+
break;
|
|
25612
|
+
case "#This Row":
|
|
25613
|
+
rowIndexes.push(toCartesian(cellXc).row);
|
|
25614
|
+
break;
|
|
25615
|
+
case "#Headers":
|
|
25616
|
+
if (!table.headerRowCount) {
|
|
25617
|
+
return INCORRECT_RANGE_STRING;
|
|
25618
|
+
}
|
|
25619
|
+
rowIndexes.push(tableZone.top);
|
|
25620
|
+
break;
|
|
25621
|
+
case "#Totals":
|
|
25622
|
+
if (!table.totalsRowCount) {
|
|
25623
|
+
return INCORRECT_RANGE_STRING;
|
|
25624
|
+
}
|
|
25625
|
+
rowIndexes.push(tableZone.bottom);
|
|
25626
|
+
break;
|
|
25627
|
+
}
|
|
25580
25628
|
}
|
|
25581
|
-
|
|
25582
|
-
|
|
25583
|
-
|
|
25584
|
-
|
|
25585
|
-
|
|
25586
|
-
|
|
25587
|
-
|
|
25588
|
-
|
|
25589
|
-
|
|
25590
|
-
|
|
25591
|
-
|
|
25592
|
-
|
|
25593
|
-
|
|
25594
|
-
|
|
25595
|
-
|
|
25596
|
-
|
|
25597
|
-
|
|
25598
|
-
if (!table.headerRowCount) {
|
|
25599
|
-
isReferencedZoneValid = false;
|
|
25600
|
-
}
|
|
25601
|
-
break;
|
|
25602
|
-
case "#Totals":
|
|
25603
|
-
refZone.top = refZone.bottom = tableZone.bottom;
|
|
25604
|
-
if (!table.totalsRowCount) {
|
|
25605
|
-
isReferencedZoneValid = false;
|
|
25629
|
+
else {
|
|
25630
|
+
const columns = part
|
|
25631
|
+
.split(":")
|
|
25632
|
+
.map((part) => part.trim())
|
|
25633
|
+
.map(removeBrackets);
|
|
25634
|
+
if (colIndexes.length) {
|
|
25635
|
+
return INCORRECT_RANGE_STRING;
|
|
25636
|
+
}
|
|
25637
|
+
const colRelativeIndex = table.cols.findIndex((col) => col.name === columns[0]);
|
|
25638
|
+
if (colRelativeIndex === -1) {
|
|
25639
|
+
return INCORRECT_RANGE_STRING;
|
|
25640
|
+
}
|
|
25641
|
+
colIndexes.push(colRelativeIndex + tableZone.left);
|
|
25642
|
+
if (columns[1]) {
|
|
25643
|
+
const colRelativeIndex2 = table.cols.findIndex((col) => col.name === columns[1]);
|
|
25644
|
+
if (colRelativeIndex2 === -1) {
|
|
25645
|
+
return INCORRECT_RANGE_STRING;
|
|
25606
25646
|
}
|
|
25607
|
-
|
|
25647
|
+
colIndexes.push(colRelativeIndex2 + tableZone.left);
|
|
25648
|
+
}
|
|
25608
25649
|
}
|
|
25609
|
-
const colRef = refElements[1].slice(1, refElements[1].length - 1);
|
|
25610
|
-
const colRelativeIndex = table.cols.findIndex((col) => col.name === colRef);
|
|
25611
|
-
refZone.left = refZone.right = colRelativeIndex + tableZone.left;
|
|
25612
25650
|
}
|
|
25613
|
-
if (!
|
|
25651
|
+
if (!areKeywordsCompatible(foundKeywords)) {
|
|
25614
25652
|
return INCORRECT_RANGE_STRING;
|
|
25615
25653
|
}
|
|
25616
|
-
|
|
25654
|
+
if (rowIndexes.length === 0) {
|
|
25655
|
+
const top = table.headerRowCount ? tableZone.top + table.headerRowCount : tableZone.top;
|
|
25656
|
+
const bottom = table.totalsRowCount
|
|
25657
|
+
? tableZone.bottom - table.totalsRowCount
|
|
25658
|
+
: tableZone.bottom;
|
|
25659
|
+
rowIndexes.push(top, bottom);
|
|
25660
|
+
}
|
|
25661
|
+
if (colIndexes.length === 0) {
|
|
25662
|
+
colIndexes.push(tableZone.left, tableZone.right);
|
|
25663
|
+
}
|
|
25664
|
+
const refZone = {
|
|
25665
|
+
top: Math.min(...rowIndexes),
|
|
25666
|
+
left: Math.min(...colIndexes),
|
|
25667
|
+
bottom: Math.max(...rowIndexes),
|
|
25668
|
+
right: Math.max(...colIndexes),
|
|
25669
|
+
};
|
|
25670
|
+
return sheetPrefix + zoneToXc(refZone);
|
|
25671
|
+
}
|
|
25672
|
+
function removeBrackets(str) {
|
|
25673
|
+
return str.startsWith("[") && str.endsWith("]") ? str.slice(1, str.length - 1) : str;
|
|
25674
|
+
}
|
|
25675
|
+
function areKeywordsCompatible(keywords) {
|
|
25676
|
+
if (keywords.length < 2) {
|
|
25677
|
+
return true;
|
|
25678
|
+
}
|
|
25679
|
+
else if (keywords.length > 2) {
|
|
25680
|
+
return false;
|
|
25681
|
+
}
|
|
25682
|
+
else if (keywords.includes("#Data") && keywords.includes("#Totals")) {
|
|
25683
|
+
return true;
|
|
25684
|
+
}
|
|
25685
|
+
else if (keywords.includes("#Headers") && keywords.includes("#Data")) {
|
|
25686
|
+
return true;
|
|
25687
|
+
}
|
|
25688
|
+
return false;
|
|
25617
25689
|
}
|
|
25618
25690
|
|
|
25619
25691
|
// -------------------------------------
|
|
@@ -31591,7 +31663,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
31591
31663
|
getRule(cell, cells) {
|
|
31592
31664
|
const rules = autofillRulesRegistry.getAll().sort((a, b) => a.sequence - b.sequence);
|
|
31593
31665
|
const rule = rules.find((rule) => rule.condition(cell, cells));
|
|
31594
|
-
return rule && rule.generateRule(cell, cells);
|
|
31666
|
+
return rule && this.direction && rule.generateRule(cell, cells, this.direction);
|
|
31595
31667
|
}
|
|
31596
31668
|
/**
|
|
31597
31669
|
* Create the generator to be able to autofill the next cells.
|
|
@@ -37493,7 +37565,8 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
37493
37565
|
? this.getters.getSheetViewVisibleCols()
|
|
37494
37566
|
: this.getters.getSheetViewVisibleRows();
|
|
37495
37567
|
const startIndex = visibleHeaders.findIndex((header) => referenceHeaderIndex >= header);
|
|
37496
|
-
|
|
37568
|
+
let endIndex = visibleHeaders.findIndex((header) => targetHeaderIndex <= header);
|
|
37569
|
+
endIndex = endIndex === -1 ? visibleHeaders.length : endIndex;
|
|
37497
37570
|
const relevantIndexes = visibleHeaders.slice(startIndex, endIndex);
|
|
37498
37571
|
let offset = 0;
|
|
37499
37572
|
for (const i of relevantIndexes) {
|
|
@@ -43688,9 +43761,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
43688
43761
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
43689
43762
|
|
|
43690
43763
|
|
|
43691
|
-
__info__.version = '16.0.
|
|
43692
|
-
__info__.date = '2025-
|
|
43693
|
-
__info__.hash = '
|
|
43764
|
+
__info__.version = '16.0.64';
|
|
43765
|
+
__info__.date = '2025-03-07T10:29:50.957Z';
|
|
43766
|
+
__info__.hash = '20def15';
|
|
43694
43767
|
|
|
43695
43768
|
|
|
43696
43769
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|