@odoo/o-spreadsheet 16.1.18 → 16.1.20
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 +72 -35
- package/dist/o-spreadsheet.d.ts +11 -3
- package/dist/o-spreadsheet.esm.js +72 -35
- package/dist/o-spreadsheet.iife.js +72 -35
- package/dist/o-spreadsheet.iife.min.js +230 -230
- package/package.json +1 -1
|
@@ -4827,6 +4827,7 @@
|
|
|
4827
4827
|
this.labelsAsText = definition.labelsAsText;
|
|
4828
4828
|
this.stacked = definition.stacked;
|
|
4829
4829
|
this.aggregated = definition.aggregated;
|
|
4830
|
+
this.cumulative = definition.cumulative;
|
|
4830
4831
|
}
|
|
4831
4832
|
static validateChartDefinition(validator, definition) {
|
|
4832
4833
|
return validator.checkValidations(definition, checkDataset, checkLabelRange);
|
|
@@ -4847,6 +4848,7 @@
|
|
|
4847
4848
|
labelRange: context.auxiliaryRange || undefined,
|
|
4848
4849
|
stacked: false,
|
|
4849
4850
|
aggregated: false,
|
|
4851
|
+
cumulative: false,
|
|
4850
4852
|
};
|
|
4851
4853
|
}
|
|
4852
4854
|
getDefinition() {
|
|
@@ -4867,6 +4869,7 @@
|
|
|
4867
4869
|
labelsAsText: this.labelsAsText,
|
|
4868
4870
|
stacked: this.stacked,
|
|
4869
4871
|
aggregated: this.aggregated,
|
|
4872
|
+
cumulative: this.cumulative,
|
|
4870
4873
|
};
|
|
4871
4874
|
}
|
|
4872
4875
|
getContextCreation() {
|
|
@@ -5060,6 +5063,16 @@
|
|
|
5060
5063
|
if (chart.stacked) {
|
|
5061
5064
|
backgroundRGBA.a = LINE_FILL_TRANSPARENCY;
|
|
5062
5065
|
}
|
|
5066
|
+
if (chart.cumulative) {
|
|
5067
|
+
let accumulator = 0;
|
|
5068
|
+
data = data.map((value) => {
|
|
5069
|
+
if (!isNaN(value)) {
|
|
5070
|
+
accumulator += parseFloat(value);
|
|
5071
|
+
return accumulator;
|
|
5072
|
+
}
|
|
5073
|
+
return value;
|
|
5074
|
+
});
|
|
5075
|
+
}
|
|
5063
5076
|
const backgroundColor = rgbaToHex(backgroundRGBA);
|
|
5064
5077
|
const dataset = {
|
|
5065
5078
|
label,
|
|
@@ -6401,6 +6414,7 @@
|
|
|
6401
6414
|
labelsAsText: false,
|
|
6402
6415
|
stacked: false,
|
|
6403
6416
|
aggregated: false,
|
|
6417
|
+
cumulative: false,
|
|
6404
6418
|
labelRange: labelRangeXc,
|
|
6405
6419
|
type: "line",
|
|
6406
6420
|
dataSetsHaveTitle,
|
|
@@ -6754,6 +6768,13 @@
|
|
|
6754
6768
|
elements: rows,
|
|
6755
6769
|
});
|
|
6756
6770
|
};
|
|
6771
|
+
const CAN_REMOVE_COLUMNS_ROWS = (dimension, env) => {
|
|
6772
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
6773
|
+
const selectedElements = env.model.getters.getElementsFromSelection(dimension);
|
|
6774
|
+
const includesAllVisibleHeaders = env.model.getters.checkElementsIncludeAllVisibleHeaders(sheetId, dimension, selectedElements);
|
|
6775
|
+
const includesAllNonFrozenHeaders = env.model.getters.checkElementsIncludeAllNonFrozenHeaders(sheetId, dimension, selectedElements);
|
|
6776
|
+
return !includesAllVisibleHeaders && !includesAllNonFrozenHeaders;
|
|
6777
|
+
};
|
|
6757
6778
|
const REMOVE_COLUMNS_NAME = (env) => {
|
|
6758
6779
|
if (env.model.getters.getSelectedZones().length > 1) {
|
|
6759
6780
|
return _lt("Delete columns");
|
|
@@ -7344,11 +7365,7 @@
|
|
|
7344
7365
|
name: REMOVE_COLUMNS_NAME,
|
|
7345
7366
|
sequence: 90,
|
|
7346
7367
|
action: REMOVE_COLUMNS_ACTION,
|
|
7347
|
-
isVisible: (env) =>
|
|
7348
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
7349
|
-
const selectedCols = env.model.getters.getElementsFromSelection("COL");
|
|
7350
|
-
return env.model.getters.canRemoveHeaders(sheetId, "COL", selectedCols);
|
|
7351
|
-
},
|
|
7368
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("COL", env),
|
|
7352
7369
|
})
|
|
7353
7370
|
.add("clear_column", {
|
|
7354
7371
|
name: DELETE_CONTENT_COLUMNS_NAME,
|
|
@@ -7362,7 +7379,7 @@
|
|
|
7362
7379
|
isVisible: (env) => {
|
|
7363
7380
|
const sheetId = env.model.getters.getActiveSheetId();
|
|
7364
7381
|
const selectedCols = env.model.getters.getElementsFromSelection("COL");
|
|
7365
|
-
return env.model.getters.
|
|
7382
|
+
return !env.model.getters.checkElementsIncludeAllVisibleHeaders(sheetId, "COL", selectedCols);
|
|
7366
7383
|
},
|
|
7367
7384
|
separator: true,
|
|
7368
7385
|
})
|
|
@@ -7436,11 +7453,7 @@
|
|
|
7436
7453
|
name: REMOVE_ROWS_NAME,
|
|
7437
7454
|
sequence: 70,
|
|
7438
7455
|
action: REMOVE_ROWS_ACTION,
|
|
7439
|
-
isVisible: (env) =>
|
|
7440
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
7441
|
-
const selectedRows = env.model.getters.getElementsFromSelection("ROW");
|
|
7442
|
-
return env.model.getters.canRemoveHeaders(sheetId, "ROW", selectedRows);
|
|
7443
|
-
},
|
|
7456
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("ROW", env),
|
|
7444
7457
|
})
|
|
7445
7458
|
.add("clear_row", {
|
|
7446
7459
|
name: DELETE_CONTENT_ROWS_NAME,
|
|
@@ -7454,7 +7467,7 @@
|
|
|
7454
7467
|
isVisible: (env) => {
|
|
7455
7468
|
const sheetId = env.model.getters.getActiveSheetId();
|
|
7456
7469
|
const selectedRows = env.model.getters.getElementsFromSelection("ROW");
|
|
7457
|
-
return env.model.getters.
|
|
7470
|
+
return !env.model.getters.checkElementsIncludeAllVisibleHeaders(sheetId, "ROW", selectedRows);
|
|
7458
7471
|
},
|
|
7459
7472
|
separator: true,
|
|
7460
7473
|
})
|
|
@@ -7478,34 +7491,25 @@
|
|
|
7478
7491
|
});
|
|
7479
7492
|
|
|
7480
7493
|
function startDnd(onMouseMove, onMouseUp, onMouseDown = () => { }) {
|
|
7481
|
-
const _onMouseDown = (ev) => {
|
|
7482
|
-
ev.preventDefault();
|
|
7483
|
-
onMouseDown(ev);
|
|
7484
|
-
};
|
|
7485
|
-
const _onMouseMove = (ev) => {
|
|
7486
|
-
ev.preventDefault();
|
|
7487
|
-
onMouseMove(ev);
|
|
7488
|
-
};
|
|
7489
7494
|
const _onMouseUp = (ev) => {
|
|
7490
|
-
ev.preventDefault();
|
|
7491
7495
|
onMouseUp(ev);
|
|
7492
|
-
window.removeEventListener("mousedown",
|
|
7496
|
+
window.removeEventListener("mousedown", onMouseDown);
|
|
7493
7497
|
window.removeEventListener("mouseup", _onMouseUp);
|
|
7494
7498
|
window.removeEventListener("dragstart", _onDragStart);
|
|
7495
|
-
window.removeEventListener("mousemove",
|
|
7496
|
-
window.removeEventListener("wheel",
|
|
7499
|
+
window.removeEventListener("mousemove", onMouseMove);
|
|
7500
|
+
window.removeEventListener("wheel", onMouseMove);
|
|
7497
7501
|
};
|
|
7498
7502
|
function _onDragStart(ev) {
|
|
7499
7503
|
ev.preventDefault();
|
|
7500
7504
|
}
|
|
7501
|
-
window.addEventListener("mousedown",
|
|
7505
|
+
window.addEventListener("mousedown", onMouseDown);
|
|
7502
7506
|
window.addEventListener("mouseup", _onMouseUp);
|
|
7503
7507
|
window.addEventListener("dragstart", _onDragStart);
|
|
7504
|
-
window.addEventListener("mousemove",
|
|
7508
|
+
window.addEventListener("mousemove", onMouseMove);
|
|
7505
7509
|
// mouse wheel on window is by default a passive event.
|
|
7506
7510
|
// preventDefault() is not allowed in passive event handler.
|
|
7507
7511
|
// https://chromestatus.com/feature/6662647093133312
|
|
7508
|
-
window.addEventListener("wheel",
|
|
7512
|
+
window.addEventListener("wheel", onMouseMove, { passive: false });
|
|
7509
7513
|
}
|
|
7510
7514
|
/**
|
|
7511
7515
|
* Function to be used during a mousedown event, this function allows to
|
|
@@ -19340,11 +19344,13 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
19340
19344
|
name: REMOVE_ROWS_NAME,
|
|
19341
19345
|
sequence: 80,
|
|
19342
19346
|
action: REMOVE_ROWS_ACTION,
|
|
19347
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("ROW", env),
|
|
19343
19348
|
})
|
|
19344
19349
|
.addChild("edit_delete_column", ["edit"], {
|
|
19345
19350
|
name: REMOVE_COLUMNS_NAME,
|
|
19346
19351
|
sequence: 90,
|
|
19347
19352
|
action: REMOVE_COLUMNS_ACTION,
|
|
19353
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("COL", env),
|
|
19348
19354
|
})
|
|
19349
19355
|
.addChild("edit_delete_cell_shift_up", ["edit"], {
|
|
19350
19356
|
name: _lt("Delete cell and shift up"),
|
|
@@ -20524,6 +20530,11 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
20524
20530
|
aggregated: ev.target.checked,
|
|
20525
20531
|
});
|
|
20526
20532
|
}
|
|
20533
|
+
onUpdateCumulative(ev) {
|
|
20534
|
+
this.props.updateChart(this.props.figureId, {
|
|
20535
|
+
cumulative: ev.target.checked,
|
|
20536
|
+
});
|
|
20537
|
+
}
|
|
20527
20538
|
}
|
|
20528
20539
|
LineConfigPanel.template = "o-spreadsheet-LineConfigPanel";
|
|
20529
20540
|
|
|
@@ -23855,7 +23866,8 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
23855
23866
|
}
|
|
23856
23867
|
let prevCol = col;
|
|
23857
23868
|
let prevRow = row;
|
|
23858
|
-
const onMouseMove = (col, row) => {
|
|
23869
|
+
const onMouseMove = (col, row, ev) => {
|
|
23870
|
+
ev.preventDefault();
|
|
23859
23871
|
if ((col !== prevCol && col != -1) || (row !== prevRow && row != -1)) {
|
|
23860
23872
|
prevCol = col === -1 ? prevCol : col;
|
|
23861
23873
|
prevRow = row === -1 ? prevRow : row;
|
|
@@ -25493,6 +25505,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
25493
25505
|
legendPosition: chartData.legendPosition,
|
|
25494
25506
|
stacked: chartData.stacked || false,
|
|
25495
25507
|
aggregated: false,
|
|
25508
|
+
cumulative: chartData.cumulative || false,
|
|
25496
25509
|
labelsAsText: false,
|
|
25497
25510
|
};
|
|
25498
25511
|
}
|
|
@@ -30057,7 +30070,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
30057
30070
|
if (!this.getters.tryGetSheet(cmd.sheetId)) {
|
|
30058
30071
|
return 27 /* CommandResult.InvalidSheetId */;
|
|
30059
30072
|
}
|
|
30060
|
-
if (
|
|
30073
|
+
if (this.checkElementsIncludeAllVisibleHeaders(cmd.sheetId, cmd.dimension, cmd.elements)) {
|
|
30061
30074
|
return 8 /* CommandResult.NotEnoughElements */;
|
|
30062
30075
|
}
|
|
30063
30076
|
return 0 /* CommandResult.Success */;
|
|
@@ -30107,9 +30120,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
30107
30120
|
}
|
|
30108
30121
|
return;
|
|
30109
30122
|
}
|
|
30110
|
-
|
|
30123
|
+
checkElementsIncludeAllVisibleHeaders(sheetId, dimension, elements) {
|
|
30111
30124
|
const visibleHeaders = this.getAllVisibleHeaders(sheetId, dimension);
|
|
30112
|
-
return
|
|
30125
|
+
return includesAll(elements, visibleHeaders);
|
|
30113
30126
|
}
|
|
30114
30127
|
isRowHiddenByUser(sheetId, index) {
|
|
30115
30128
|
return this.hiddenHeaders[sheetId].ROW[index];
|
|
@@ -30205,7 +30218,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
30205
30218
|
}
|
|
30206
30219
|
}
|
|
30207
30220
|
HeaderVisibilityPlugin.getters = [
|
|
30208
|
-
"
|
|
30221
|
+
"checkElementsIncludeAllVisibleHeaders",
|
|
30209
30222
|
"getHiddenColsGroups",
|
|
30210
30223
|
"getHiddenRowsGroups",
|
|
30211
30224
|
"isRowHiddenByUser",
|
|
@@ -31233,6 +31246,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
31233
31246
|
if (Math.min(...cmd.elements) < 0 || Math.max(...cmd.elements) > elements) {
|
|
31234
31247
|
return 86 /* CommandResult.InvalidHeaderIndex */;
|
|
31235
31248
|
}
|
|
31249
|
+
else if (this.checkElementsIncludeAllNonFrozenHeaders(cmd.sheetId, cmd.dimension, cmd.elements)) {
|
|
31250
|
+
return 8 /* CommandResult.NotEnoughElements */;
|
|
31251
|
+
}
|
|
31236
31252
|
else {
|
|
31237
31253
|
return 0 /* CommandResult.Success */;
|
|
31238
31254
|
}
|
|
@@ -31519,6 +31535,20 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
31519
31535
|
}
|
|
31520
31536
|
this.history.update("sheets", sheetId, "panes", panes);
|
|
31521
31537
|
}
|
|
31538
|
+
/**
|
|
31539
|
+
* Checks if all non-frozen header indices are present in the provided elements of selected rows/columns.
|
|
31540
|
+
* This validation ensures that all rows or columns cannot be deleted when frozen panes exist.
|
|
31541
|
+
*/
|
|
31542
|
+
checkElementsIncludeAllNonFrozenHeaders(sheetId, dimension, elements) {
|
|
31543
|
+
const paneDivisions = this.getters.getPaneDivisions(sheetId);
|
|
31544
|
+
const startIndex = dimension === "ROW" ? paneDivisions.ySplit : paneDivisions.xSplit;
|
|
31545
|
+
const endIndex = this.getters.getNumberHeaders(sheetId, dimension);
|
|
31546
|
+
if (!startIndex) {
|
|
31547
|
+
return false;
|
|
31548
|
+
}
|
|
31549
|
+
const indicesToCheck = range(startIndex, endIndex);
|
|
31550
|
+
return includesAll(elements, indicesToCheck);
|
|
31551
|
+
}
|
|
31522
31552
|
// ---------------------------------------------------------------------------
|
|
31523
31553
|
// Row/Col manipulation
|
|
31524
31554
|
// ---------------------------------------------------------------------------
|
|
@@ -32051,6 +32081,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
32051
32081
|
"getSheetSize",
|
|
32052
32082
|
"getSheetZone",
|
|
32053
32083
|
"getPaneDivisions",
|
|
32084
|
+
"checkElementsIncludeAllNonFrozenHeaders",
|
|
32054
32085
|
];
|
|
32055
32086
|
|
|
32056
32087
|
/**
|
|
@@ -33469,6 +33500,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
33469
33500
|
const sheetId = this.sheetId;
|
|
33470
33501
|
this.left = this.searchHeaderIndex("COL", this.offsetScrollbarX, this.boundaries.left);
|
|
33471
33502
|
this.right = Math.min(this.boundaries.right, this.searchHeaderIndex("COL", this.viewportWidth, this.left));
|
|
33503
|
+
if (this.left === -1) {
|
|
33504
|
+
this.left = this.boundaries.left;
|
|
33505
|
+
}
|
|
33472
33506
|
if (this.right === -1) {
|
|
33473
33507
|
this.right = this.getters.getNumberCols(sheetId) - 1;
|
|
33474
33508
|
}
|
|
@@ -33482,6 +33516,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
33482
33516
|
const sheetId = this.sheetId;
|
|
33483
33517
|
this.top = this.searchHeaderIndex("ROW", this.offsetScrollbarY, this.boundaries.top);
|
|
33484
33518
|
this.bottom = Math.min(this.boundaries.bottom, this.searchHeaderIndex("ROW", this.viewportHeight, this.top));
|
|
33519
|
+
if (this.top === -1) {
|
|
33520
|
+
this.top = this.boundaries.top;
|
|
33521
|
+
}
|
|
33485
33522
|
if (this.bottom === -1) {
|
|
33486
33523
|
this.bottom = this.getters.getNumberRows(sheetId) - 1;
|
|
33487
33524
|
}
|
|
@@ -44312,9 +44349,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
44312
44349
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
44313
44350
|
|
|
44314
44351
|
|
|
44315
|
-
__info__.version = '16.1.
|
|
44316
|
-
__info__.date = '2023-
|
|
44317
|
-
__info__.hash = '
|
|
44352
|
+
__info__.version = '16.1.20';
|
|
44353
|
+
__info__.date = '2023-09-12T11:43:40.624Z';
|
|
44354
|
+
__info__.hash = '7d7b841';
|
|
44318
44355
|
|
|
44319
44356
|
|
|
44320
44357
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|