@odoo/o-spreadsheet 16.0.17 → 16.0.19
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 +108 -47
- package/dist/o-spreadsheet.d.ts +13 -5
- package/dist/o-spreadsheet.esm.js +108 -47
- package/dist/o-spreadsheet.iife.js +108 -47
- package/dist/o-spreadsheet.iife.min.js +238 -237
- package/package.json +1 -1
|
@@ -1007,13 +1007,17 @@
|
|
|
1007
1007
|
return position === "after" ? base + 1 : base;
|
|
1008
1008
|
}
|
|
1009
1009
|
/**
|
|
1010
|
-
*
|
|
1010
|
+
* Compares two objects.
|
|
1011
1011
|
*/
|
|
1012
1012
|
function deepEquals(o1, o2) {
|
|
1013
1013
|
if (o1 === o2)
|
|
1014
1014
|
return true;
|
|
1015
1015
|
if ((o1 && !o2) || (o2 && !o1))
|
|
1016
1016
|
return false;
|
|
1017
|
+
if (typeof o1 !== typeof o2)
|
|
1018
|
+
return false;
|
|
1019
|
+
if (typeof o1 !== "object")
|
|
1020
|
+
return o1 === o2;
|
|
1017
1021
|
// Objects can have different keys if the values are undefined
|
|
1018
1022
|
const keys = new Set();
|
|
1019
1023
|
Object.keys(o1).forEach((key) => keys.add(key));
|
|
@@ -3516,6 +3520,7 @@
|
|
|
3516
3520
|
background-color: white;
|
|
3517
3521
|
border-left: 3px solid red;
|
|
3518
3522
|
padding: 10px;
|
|
3523
|
+
overflow-wrap: break-word;
|
|
3519
3524
|
}
|
|
3520
3525
|
`;
|
|
3521
3526
|
class ErrorToolTip extends owl.Component {
|
|
@@ -5032,6 +5037,13 @@
|
|
|
5032
5037
|
elements: rows,
|
|
5033
5038
|
});
|
|
5034
5039
|
};
|
|
5040
|
+
const CAN_REMOVE_COLUMNS_ROWS = (dimension, env) => {
|
|
5041
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
5042
|
+
const selectedElements = env.model.getters.getElementsFromSelection(dimension);
|
|
5043
|
+
const includesAllVisibleHeaders = env.model.getters.checkElementsIncludeAllVisibleHeaders(sheetId, dimension, selectedElements);
|
|
5044
|
+
const includesAllNonFrozenHeaders = env.model.getters.checkElementsIncludeAllNonFrozenHeaders(sheetId, dimension, selectedElements);
|
|
5045
|
+
return !includesAllVisibleHeaders && !includesAllNonFrozenHeaders;
|
|
5046
|
+
};
|
|
5035
5047
|
const REMOVE_COLUMNS_NAME = (env) => {
|
|
5036
5048
|
if (env.model.getters.getSelectedZones().length > 1) {
|
|
5037
5049
|
return _lt("Delete columns");
|
|
@@ -5636,11 +5648,7 @@
|
|
|
5636
5648
|
name: REMOVE_COLUMNS_NAME,
|
|
5637
5649
|
sequence: 90,
|
|
5638
5650
|
action: REMOVE_COLUMNS_ACTION,
|
|
5639
|
-
isVisible: (env) =>
|
|
5640
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
5641
|
-
const selectedCols = env.model.getters.getElementsFromSelection("COL");
|
|
5642
|
-
return env.model.getters.canRemoveHeaders(sheetId, "COL", selectedCols);
|
|
5643
|
-
},
|
|
5651
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("COL", env),
|
|
5644
5652
|
})
|
|
5645
5653
|
.add("clear_column", {
|
|
5646
5654
|
name: DELETE_CONTENT_COLUMNS_NAME,
|
|
@@ -5654,7 +5662,7 @@
|
|
|
5654
5662
|
isVisible: (env) => {
|
|
5655
5663
|
const sheetId = env.model.getters.getActiveSheetId();
|
|
5656
5664
|
const selectedCols = env.model.getters.getElementsFromSelection("COL");
|
|
5657
|
-
return env.model.getters.
|
|
5665
|
+
return !env.model.getters.checkElementsIncludeAllVisibleHeaders(sheetId, "COL", selectedCols);
|
|
5658
5666
|
},
|
|
5659
5667
|
separator: true,
|
|
5660
5668
|
})
|
|
@@ -5728,11 +5736,7 @@
|
|
|
5728
5736
|
name: REMOVE_ROWS_NAME,
|
|
5729
5737
|
sequence: 70,
|
|
5730
5738
|
action: REMOVE_ROWS_ACTION,
|
|
5731
|
-
isVisible: (env) =>
|
|
5732
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
5733
|
-
const selectedRows = env.model.getters.getElementsFromSelection("ROW");
|
|
5734
|
-
return env.model.getters.canRemoveHeaders(sheetId, "ROW", selectedRows);
|
|
5735
|
-
},
|
|
5739
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("ROW", env),
|
|
5736
5740
|
})
|
|
5737
5741
|
.add("clear_row", {
|
|
5738
5742
|
name: DELETE_CONTENT_ROWS_NAME,
|
|
@@ -5746,7 +5750,7 @@
|
|
|
5746
5750
|
isVisible: (env) => {
|
|
5747
5751
|
const sheetId = env.model.getters.getActiveSheetId();
|
|
5748
5752
|
const selectedRows = env.model.getters.getElementsFromSelection("ROW");
|
|
5749
|
-
return env.model.getters.
|
|
5753
|
+
return !env.model.getters.checkElementsIncludeAllVisibleHeaders(sheetId, "ROW", selectedRows);
|
|
5750
5754
|
},
|
|
5751
5755
|
separator: true,
|
|
5752
5756
|
})
|
|
@@ -6040,11 +6044,13 @@
|
|
|
6040
6044
|
name: REMOVE_ROWS_NAME,
|
|
6041
6045
|
sequence: 80,
|
|
6042
6046
|
action: REMOVE_ROWS_ACTION,
|
|
6047
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("ROW", env),
|
|
6043
6048
|
})
|
|
6044
6049
|
.addChild("edit_delete_column", ["edit"], {
|
|
6045
6050
|
name: REMOVE_COLUMNS_NAME,
|
|
6046
6051
|
sequence: 90,
|
|
6047
6052
|
action: REMOVE_COLUMNS_ACTION,
|
|
6053
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("COL", env),
|
|
6048
6054
|
})
|
|
6049
6055
|
.addChild("edit_delete_cell_shift_up", ["edit"], {
|
|
6050
6056
|
name: _lt("Delete cell and shift up"),
|
|
@@ -7811,6 +7817,7 @@
|
|
|
7811
7817
|
this.legendPosition = definition.legendPosition;
|
|
7812
7818
|
this.labelsAsText = definition.labelsAsText;
|
|
7813
7819
|
this.stacked = definition.stacked;
|
|
7820
|
+
this.cumulative = definition.cumulative;
|
|
7814
7821
|
}
|
|
7815
7822
|
static validateChartDefinition(validator, definition) {
|
|
7816
7823
|
return validator.checkValidations(definition, checkDataset, checkLabelRange);
|
|
@@ -7830,6 +7837,7 @@
|
|
|
7830
7837
|
verticalAxisPosition: "left",
|
|
7831
7838
|
labelRange: context.auxiliaryRange || undefined,
|
|
7832
7839
|
stacked: false,
|
|
7840
|
+
cumulative: false,
|
|
7833
7841
|
};
|
|
7834
7842
|
}
|
|
7835
7843
|
getDefinition() {
|
|
@@ -7849,6 +7857,7 @@
|
|
|
7849
7857
|
title: this.title,
|
|
7850
7858
|
labelsAsText: this.labelsAsText,
|
|
7851
7859
|
stacked: this.stacked,
|
|
7860
|
+
cumulative: this.cumulative,
|
|
7852
7861
|
};
|
|
7853
7862
|
}
|
|
7854
7863
|
getContextCreation() {
|
|
@@ -8033,6 +8042,16 @@
|
|
|
8033
8042
|
if (chart.stacked) {
|
|
8034
8043
|
backgroundRGBA.a = LINE_FILL_TRANSPARENCY;
|
|
8035
8044
|
}
|
|
8045
|
+
if (chart.cumulative) {
|
|
8046
|
+
let accumulator = 0;
|
|
8047
|
+
data = data.map((value) => {
|
|
8048
|
+
if (!isNaN(value)) {
|
|
8049
|
+
accumulator += parseFloat(value);
|
|
8050
|
+
return accumulator;
|
|
8051
|
+
}
|
|
8052
|
+
return value;
|
|
8053
|
+
});
|
|
8054
|
+
}
|
|
8036
8055
|
const backgroundColor = rgbaToHex(backgroundRGBA);
|
|
8037
8056
|
const dataset = {
|
|
8038
8057
|
label,
|
|
@@ -8818,6 +8837,11 @@
|
|
|
8818
8837
|
stacked: ev.target.checked,
|
|
8819
8838
|
});
|
|
8820
8839
|
}
|
|
8840
|
+
onUpdateCumulative(ev) {
|
|
8841
|
+
this.props.updateChart(this.props.figureId, {
|
|
8842
|
+
cumulative: ev.target.checked,
|
|
8843
|
+
});
|
|
8844
|
+
}
|
|
8821
8845
|
}
|
|
8822
8846
|
LineConfigPanel.template = "o-spreadsheet-LineConfigPanel";
|
|
8823
8847
|
|
|
@@ -21277,9 +21301,11 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
21277
21301
|
}
|
|
21278
21302
|
}
|
|
21279
21303
|
function updateMousePosition(e) {
|
|
21280
|
-
|
|
21281
|
-
|
|
21282
|
-
|
|
21304
|
+
if (gridRef.el === e.target) {
|
|
21305
|
+
x = e.offsetX;
|
|
21306
|
+
y = e.offsetY;
|
|
21307
|
+
lastMoved = Date.now();
|
|
21308
|
+
}
|
|
21283
21309
|
}
|
|
21284
21310
|
function recompute() {
|
|
21285
21311
|
const { col, row } = getPosition();
|
|
@@ -24647,6 +24673,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
24647
24673
|
verticalAxisPosition: chartData.verticalAxisPosition,
|
|
24648
24674
|
legendPosition: chartData.legendPosition,
|
|
24649
24675
|
stacked: chartData.stacked || false,
|
|
24676
|
+
cumulative: chartData.cumulative || false,
|
|
24650
24677
|
labelsAsText: false,
|
|
24651
24678
|
};
|
|
24652
24679
|
}
|
|
@@ -28922,7 +28949,11 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
28922
28949
|
let sizes = [...this.sizes[cmd.sheetId][cmd.dimension]];
|
|
28923
28950
|
const addIndex = getAddHeaderStartIndex(cmd.position, cmd.base);
|
|
28924
28951
|
const baseSize = sizes[cmd.base];
|
|
28925
|
-
|
|
28952
|
+
const sizesToInsert = range(0, cmd.quantity).map(() => ({
|
|
28953
|
+
manualSize: baseSize.manualSize,
|
|
28954
|
+
computedSize: lazy(baseSize.computedSize()),
|
|
28955
|
+
}));
|
|
28956
|
+
sizes.splice(addIndex, 0, ...sizesToInsert);
|
|
28926
28957
|
sizes = sizes.map((size, row) => {
|
|
28927
28958
|
if (cmd.dimension === "ROW" && row > cmd.base + cmd.quantity) {
|
|
28928
28959
|
// invalidate sizes
|
|
@@ -29139,7 +29170,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
29139
29170
|
if (!this.getters.tryGetSheet(cmd.sheetId)) {
|
|
29140
29171
|
return 27 /* CommandResult.InvalidSheetId */;
|
|
29141
29172
|
}
|
|
29142
|
-
if (
|
|
29173
|
+
if (this.checkElementsIncludeAllVisibleHeaders(cmd.sheetId, cmd.dimension, cmd.elements)) {
|
|
29143
29174
|
return 8 /* CommandResult.NotEnoughElements */;
|
|
29144
29175
|
}
|
|
29145
29176
|
return 0 /* CommandResult.Success */;
|
|
@@ -29189,9 +29220,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
29189
29220
|
}
|
|
29190
29221
|
return;
|
|
29191
29222
|
}
|
|
29192
|
-
|
|
29223
|
+
checkElementsIncludeAllVisibleHeaders(sheetId, dimension, elements) {
|
|
29193
29224
|
const visibleHeaders = this.getAllVisibleHeaders(sheetId, dimension);
|
|
29194
|
-
return
|
|
29225
|
+
return includesAll(elements, visibleHeaders);
|
|
29195
29226
|
}
|
|
29196
29227
|
isRowHiddenByUser(sheetId, index) {
|
|
29197
29228
|
return this.hiddenHeaders[sheetId].ROW[index];
|
|
@@ -29287,7 +29318,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
29287
29318
|
}
|
|
29288
29319
|
}
|
|
29289
29320
|
HeaderVisibilityPlugin.getters = [
|
|
29290
|
-
"
|
|
29321
|
+
"checkElementsIncludeAllVisibleHeaders",
|
|
29291
29322
|
"getHiddenColsGroups",
|
|
29292
29323
|
"getHiddenRowsGroups",
|
|
29293
29324
|
"isRowHiddenByUser",
|
|
@@ -29806,6 +29837,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
29806
29837
|
if (Math.min(...cmd.elements) < 0 || Math.max(...cmd.elements) > elements) {
|
|
29807
29838
|
return 85 /* CommandResult.InvalidHeaderIndex */;
|
|
29808
29839
|
}
|
|
29840
|
+
else if (this.checkElementsIncludeAllNonFrozenHeaders(cmd.sheetId, cmd.dimension, cmd.elements)) {
|
|
29841
|
+
return 8 /* CommandResult.NotEnoughElements */;
|
|
29842
|
+
}
|
|
29809
29843
|
else {
|
|
29810
29844
|
return 0 /* CommandResult.Success */;
|
|
29811
29845
|
}
|
|
@@ -30105,6 +30139,20 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
30105
30139
|
}
|
|
30106
30140
|
this.history.update("sheets", sheetId, "panes", panes);
|
|
30107
30141
|
}
|
|
30142
|
+
/**
|
|
30143
|
+
* Checks if all non-frozen header indices are present in the provided elements of selected rows/columns.
|
|
30144
|
+
* This validation ensures that all rows or columns cannot be deleted when frozen panes exist.
|
|
30145
|
+
*/
|
|
30146
|
+
checkElementsIncludeAllNonFrozenHeaders(sheetId, dimension, elements) {
|
|
30147
|
+
const paneDivisions = this.getters.getPaneDivisions(sheetId);
|
|
30148
|
+
const startIndex = dimension === "ROW" ? paneDivisions.ySplit : paneDivisions.xSplit;
|
|
30149
|
+
const endIndex = this.getters.getNumberHeaders(sheetId, dimension);
|
|
30150
|
+
if (!startIndex) {
|
|
30151
|
+
return false;
|
|
30152
|
+
}
|
|
30153
|
+
const indicesToCheck = range(startIndex, endIndex);
|
|
30154
|
+
return includesAll(elements, indicesToCheck);
|
|
30155
|
+
}
|
|
30108
30156
|
// ---------------------------------------------------------------------------
|
|
30109
30157
|
// Row/Col manipulation
|
|
30110
30158
|
// ---------------------------------------------------------------------------
|
|
@@ -30639,6 +30687,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
30639
30687
|
"getSheetSize",
|
|
30640
30688
|
"getSheetZone",
|
|
30641
30689
|
"getPaneDivisions",
|
|
30690
|
+
"checkElementsIncludeAllNonFrozenHeaders",
|
|
30642
30691
|
];
|
|
30643
30692
|
|
|
30644
30693
|
/**
|
|
@@ -32020,7 +32069,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
32020
32069
|
allowDispatch(cmd) {
|
|
32021
32070
|
switch (cmd.type) {
|
|
32022
32071
|
case "CUT":
|
|
32023
|
-
const zones =
|
|
32072
|
+
const zones = this.getters.getSelectedZones();
|
|
32024
32073
|
const state = this.getClipboardState(zones, cmd.type);
|
|
32025
32074
|
return state.isCutAllowed(zones);
|
|
32026
32075
|
case "PASTE":
|
|
@@ -32051,7 +32100,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
32051
32100
|
switch (cmd.type) {
|
|
32052
32101
|
case "COPY":
|
|
32053
32102
|
case "CUT":
|
|
32054
|
-
const zones =
|
|
32103
|
+
const zones = this.getters.getSelectedZones();
|
|
32055
32104
|
this.state = this.getClipboardState(zones, cmd.type);
|
|
32056
32105
|
this.status = "visible";
|
|
32057
32106
|
break;
|
|
@@ -32669,6 +32718,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
32669
32718
|
// stores the computed styles in the format of computedStyles.sheetName[col][row] = Style
|
|
32670
32719
|
this.computedStyles = {};
|
|
32671
32720
|
this.computedIcons = {};
|
|
32721
|
+
this.uuidGenerator = new UuidGenerator();
|
|
32672
32722
|
/**
|
|
32673
32723
|
* Execute the predicate to know if a conditional formatting rule should be applied to a cell
|
|
32674
32724
|
*/
|
|
@@ -33020,8 +33070,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
33020
33070
|
this.adaptRules(origin.sheetId, cf, [xc], toRemoveRange);
|
|
33021
33071
|
}
|
|
33022
33072
|
else {
|
|
33023
|
-
this.adaptRules(target.sheetId, cf, [xc], []);
|
|
33024
33073
|
this.adaptRules(origin.sheetId, cf, [], toRemoveRange);
|
|
33074
|
+
const cfToCopyTo = this.getCFToCopyTo(target.sheetId, cf);
|
|
33075
|
+
this.adaptRules(target.sheetId, cfToCopyTo, [xc], []);
|
|
33025
33076
|
}
|
|
33026
33077
|
}
|
|
33027
33078
|
}
|
|
@@ -33030,6 +33081,12 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
33030
33081
|
isCellValueNumber(value) {
|
|
33031
33082
|
return typeof value === "number";
|
|
33032
33083
|
}
|
|
33084
|
+
getCFToCopyTo(targetSheetId, originCF) {
|
|
33085
|
+
const cfInTarget = this.getters
|
|
33086
|
+
.getConditionalFormats(targetSheetId)
|
|
33087
|
+
.find((cf) => cf.stopIfTrue === originCF.stopIfTrue && deepEquals(cf.rule, originCF.rule));
|
|
33088
|
+
return cfInTarget ? cfInTarget : { ...originCF, id: this.uuidGenerator.uuidv4(), ranges: [] };
|
|
33089
|
+
}
|
|
33033
33090
|
}
|
|
33034
33091
|
EvaluationConditionalFormatPlugin.getters = ["getConditionalIcon", "getCellComputedStyle"];
|
|
33035
33092
|
|
|
@@ -34797,26 +34854,24 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
34797
34854
|
const isBasedBefore = cmd.base < start;
|
|
34798
34855
|
const deltaCol = isBasedBefore && isCol ? thickness : 0;
|
|
34799
34856
|
const deltaRow = isBasedBefore && !isCol ? thickness : 0;
|
|
34800
|
-
|
|
34801
|
-
|
|
34802
|
-
|
|
34803
|
-
|
|
34804
|
-
|
|
34805
|
-
|
|
34806
|
-
|
|
34807
|
-
|
|
34808
|
-
|
|
34809
|
-
|
|
34810
|
-
|
|
34811
|
-
|
|
34812
|
-
|
|
34813
|
-
|
|
34814
|
-
|
|
34815
|
-
|
|
34816
|
-
|
|
34817
|
-
|
|
34818
|
-
],
|
|
34819
|
-
});
|
|
34857
|
+
const target = [
|
|
34858
|
+
{
|
|
34859
|
+
left: isCol ? start + deltaCol : 0,
|
|
34860
|
+
right: isCol ? end + deltaCol : this.getters.getNumberCols(cmd.sheetId) - 1,
|
|
34861
|
+
top: !isCol ? start + deltaRow : 0,
|
|
34862
|
+
bottom: !isCol ? end + deltaRow : this.getters.getNumberRows(cmd.sheetId) - 1,
|
|
34863
|
+
},
|
|
34864
|
+
];
|
|
34865
|
+
const state = new ClipboardCellsState(target, "CUT", this.getters, this.dispatch, this.selection);
|
|
34866
|
+
const pasteTarget = [
|
|
34867
|
+
{
|
|
34868
|
+
left: isCol ? cmd.base : 0,
|
|
34869
|
+
right: isCol ? cmd.base + thickness - 1 : this.getters.getNumberCols(cmd.sheetId) - 1,
|
|
34870
|
+
top: !isCol ? cmd.base : 0,
|
|
34871
|
+
bottom: !isCol ? cmd.base + thickness - 1 : this.getters.getNumberRows(cmd.sheetId) - 1,
|
|
34872
|
+
},
|
|
34873
|
+
];
|
|
34874
|
+
state.paste(pasteTarget, { selectTarget: true });
|
|
34820
34875
|
const toRemove = isBasedBefore ? cmd.elements.map((el) => el + thickness) : cmd.elements;
|
|
34821
34876
|
let currentIndex = cmd.base;
|
|
34822
34877
|
for (const element of toRemove) {
|
|
@@ -36432,6 +36487,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
36432
36487
|
const sheetId = this.sheetId;
|
|
36433
36488
|
this.left = this.searchHeaderIndex("COL", this.offsetScrollbarX, this.boundaries.left);
|
|
36434
36489
|
this.right = Math.min(this.boundaries.right, this.searchHeaderIndex("COL", this.viewportWidth, this.left));
|
|
36490
|
+
if (this.left === -1) {
|
|
36491
|
+
this.left = this.boundaries.left;
|
|
36492
|
+
}
|
|
36435
36493
|
if (this.right === -1) {
|
|
36436
36494
|
this.right = this.getters.getNumberCols(sheetId) - 1;
|
|
36437
36495
|
}
|
|
@@ -36445,6 +36503,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
36445
36503
|
const sheetId = this.sheetId;
|
|
36446
36504
|
this.top = this.searchHeaderIndex("ROW", this.offsetScrollbarY, this.boundaries.top);
|
|
36447
36505
|
this.bottom = Math.min(this.boundaries.bottom, this.searchHeaderIndex("ROW", this.viewportHeight, this.top));
|
|
36506
|
+
if (this.top === -1) {
|
|
36507
|
+
this.top = this.boundaries.top;
|
|
36508
|
+
}
|
|
36448
36509
|
if (this.bottom === -1) {
|
|
36449
36510
|
this.bottom = this.getters.getNumberRows(sheetId) - 1;
|
|
36450
36511
|
}
|
|
@@ -42860,9 +42921,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
42860
42921
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
42861
42922
|
|
|
42862
42923
|
|
|
42863
|
-
__info__.version = '16.0.
|
|
42864
|
-
__info__.date = '2023-
|
|
42865
|
-
__info__.hash = '
|
|
42924
|
+
__info__.version = '16.0.19';
|
|
42925
|
+
__info__.date = '2023-09-21T15:56:31.776Z';
|
|
42926
|
+
__info__.hash = '229c563';
|
|
42866
42927
|
|
|
42867
42928
|
|
|
42868
42929
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|